From 94d11ab99654c2e657f69a1197c98606befcf632 Mon Sep 17 00:00:00 2001
From: Anthony Martin <38542602+anthony-c-martin@users.noreply.github.com>
Date: Sat, 16 Sep 2023 18:29:47 -0400
Subject: [PATCH] Update Bicep grammar with recent additions (#850)
---
lexers/embedded/bicep.xml | 84 +-
.../bicep/bicep-coalesce-operator.expected | 16 +-
lexers/testdata/bicep/bicep-comments.actual | 15 +-
lexers/testdata/bicep/bicep-comments.expected | 99 +-
lexers/testdata/bicep/bicep-directives.actual | 24 +
.../testdata/bicep/bicep-directives.expected | 154 +++
.../bicep/bicep-function-any.expected | 10 +-
.../bicep/bicep-function-deployment.expected | 4 +-
.../bicep/bicep-function-logical.expected | 24 +-
lexers/testdata/bicep/bicep-lambdas.actual | 66 ++
lexers/testdata/bicep/bicep-lambdas.expected | 937 ++++++++++++++++++
lexers/testdata/bicep/bicep-module.expected | 91 +-
.../bicep/bicep-newlinesensitivity.actual | 65 ++
.../bicep/bicep-newlinesensitivity.expected | 348 +++++++
lexers/testdata/bicep/bicep-output.expected | 10 +-
.../bicep/bicep-parameter-decoration.expected | 15 +-
.../bicep/bicep-resource-conditional.expected | 32 +-
.../bicep/bicep-resource-multiple.expected | 38 +-
...bicep-string-singleline-multiline.expected | 18 +-
.../testdata/bicep/bicep-targetScope.expected | 16 +-
lexers/testdata/bicep/bicep-types.actual | 7 +
lexers/testdata/bicep/bicep-types.expected | 37 +
...cep-variable-string-interpolation.expected | 19 +-
23 files changed, 1932 insertions(+), 197 deletions(-)
create mode 100644 lexers/testdata/bicep/bicep-directives.actual
create mode 100644 lexers/testdata/bicep/bicep-directives.expected
create mode 100644 lexers/testdata/bicep/bicep-lambdas.actual
create mode 100644 lexers/testdata/bicep/bicep-lambdas.expected
create mode 100644 lexers/testdata/bicep/bicep-newlinesensitivity.actual
create mode 100644 lexers/testdata/bicep/bicep-newlinesensitivity.expected
create mode 100644 lexers/testdata/bicep/bicep-types.actual
create mode 100644 lexers/testdata/bicep/bicep-types.expected
diff --git a/lexers/embedded/bicep.xml b/lexers/embedded/bicep.xml
index 1efc9c8ae..db90f31b3 100644
--- a/lexers/embedded/bicep.xml
+++ b/lexers/embedded/bicep.xml
@@ -5,63 +5,79 @@
*.bicep
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
+
+
-
-
+
+
+
+
-
+
-
-
+
+
+
-
-
+
+
-
+
-
-
-
-
-
-
-
-
-
-
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
diff --git a/lexers/testdata/bicep/bicep-coalesce-operator.expected b/lexers/testdata/bicep/bicep-coalesce-operator.expected
index e63bab154..58f2cb210 100644
--- a/lexers/testdata/bicep/bicep-coalesce-operator.expected
+++ b/lexers/testdata/bicep/bicep-coalesce-operator.expected
@@ -1,25 +1,25 @@
[
{"type":"KeywordDeclaration","value":"output"},
{"type":"TextWhitespace","value":" "},
- {"type":"Text","value":"nonNullStr"},
+ {"type":"NameVariable","value":"nonNullStr"},
{"type":"TextWhitespace","value":" "},
- {"type":"NameFunction","value":"string"},
+ {"type":"NameVariable","value":"string"},
{"type":"TextWhitespace","value":" "},
{"type":"Punctuation","value":"="},
{"type":"TextWhitespace","value":" "},
- {"type":"Text","value":"myObject"},
+ {"type":"NameVariable","value":"myObject"},
{"type":"Punctuation","value":"."},
- {"type":"Text","value":"isnull1"},
+ {"type":"NameVariable","value":"isnull1"},
{"type":"TextWhitespace","value":" "},
{"type":"Operator","value":"??"},
{"type":"TextWhitespace","value":" "},
- {"type":"Text","value":"myObject"},
+ {"type":"NameVariable","value":"myObject"},
{"type":"Punctuation","value":"."},
- {"type":"NameFunction","value":"string"},
+ {"type":"NameVariable","value":"string"},
{"type":"TextWhitespace","value":" "},
{"type":"Operator","value":"??"},
{"type":"TextWhitespace","value":" "},
- {"type":"Text","value":"myObject"},
+ {"type":"NameVariable","value":"myObject"},
{"type":"Punctuation","value":"."},
- {"type":"Text","value":"isnull2"}
+ {"type":"NameVariable","value":"isnull2"}
]
diff --git a/lexers/testdata/bicep/bicep-comments.actual b/lexers/testdata/bicep/bicep-comments.actual
index ffd4c8aa4..efaab1d01 100644
--- a/lexers/testdata/bicep/bicep-comments.actual
+++ b/lexers/testdata/bicep/bicep-comments.actual
@@ -6,4 +6,17 @@ resource nic1 'Microsoft.Network/networkInterfaces@2020-06-01' = {
This Bicep file assumes the key vault already exists and
is in same subscription and resource group as the deployment.
*/
-param existingKeyVaultName string
\ No newline at end of file
+param existingKeyVaultName string
+
+resource test 'Microsoft.AAD/domainServices@2021-03-01' = {
+ name: 'asdfsdf'
+ // this is a comment
+ properties: {/*comment*/
+ domainConfigurationType/*comment*/:/*comment*/'as//notacomment!d/* also not a comment */fsdf'// test!/*
+ /* multi
+ line
+ comment */ domainName: /*
+ asdf*/'test'
+ // comment
+ }
+}
\ No newline at end of file
diff --git a/lexers/testdata/bicep/bicep-comments.expected b/lexers/testdata/bicep/bicep-comments.expected
index f769fe688..46b1a11e2 100644
--- a/lexers/testdata/bicep/bicep-comments.expected
+++ b/lexers/testdata/bicep/bicep-comments.expected
@@ -3,7 +3,7 @@
{"type":"TextWhitespace","value":"\n"},
{"type":"KeywordDeclaration","value":"resource"},
{"type":"TextWhitespace","value":" "},
- {"type":"Text","value":"nic1"},
+ {"type":"NameVariable","value":"nic1"},
{"type":"TextWhitespace","value":" "},
{"type":"LiteralString","value":"'Microsoft.Network/networkInterfaces@2020-06-01'"},
{"type":"TextWhitespace","value":" "},
@@ -15,52 +15,107 @@
{"type":"TextWhitespace","value":"\n\n"},
{"type":"Operator","value":"/*"},
{"type":"TextWhitespace","value":"\n "},
- {"type":"Text","value":"This"},
+ {"type":"NameVariable","value":"This"},
{"type":"TextWhitespace","value":" "},
- {"type":"Text","value":"Bicep"},
+ {"type":"NameVariable","value":"Bicep"},
{"type":"TextWhitespace","value":" "},
- {"type":"Text","value":"file"},
+ {"type":"NameVariable","value":"file"},
{"type":"TextWhitespace","value":" "},
- {"type":"Text","value":"assumes"},
+ {"type":"NameVariable","value":"assumes"},
{"type":"TextWhitespace","value":" "},
- {"type":"Text","value":"the"},
+ {"type":"NameVariable","value":"the"},
{"type":"TextWhitespace","value":" "},
- {"type":"Text","value":"key"},
+ {"type":"NameVariable","value":"key"},
{"type":"TextWhitespace","value":" "},
- {"type":"Text","value":"vault"},
+ {"type":"NameVariable","value":"vault"},
{"type":"TextWhitespace","value":" "},
- {"type":"Text","value":"already"},
+ {"type":"NameVariable","value":"already"},
{"type":"TextWhitespace","value":" "},
- {"type":"Text","value":"exists"},
+ {"type":"NameVariable","value":"exists"},
{"type":"TextWhitespace","value":" "},
- {"type":"Text","value":"and"},
+ {"type":"NameVariable","value":"and"},
{"type":"TextWhitespace","value":"\n "},
- {"type":"Text","value":"is"},
+ {"type":"NameVariable","value":"is"},
{"type":"TextWhitespace","value":" "},
- {"type":"Keyword","value":"in"},
+ {"type":"KeywordDeclaration","value":"in"},
{"type":"TextWhitespace","value":" "},
- {"type":"Text","value":"same"},
+ {"type":"NameVariable","value":"same"},
{"type":"TextWhitespace","value":" "},
- {"type":"NameFunction","value":"subscription"},
+ {"type":"NameVariable","value":"subscription"},
{"type":"TextWhitespace","value":" "},
- {"type":"Text","value":"and"},
+ {"type":"NameVariable","value":"and"},
{"type":"TextWhitespace","value":" "},
{"type":"KeywordDeclaration","value":"resource"},
{"type":"TextWhitespace","value":" "},
- {"type":"Text","value":"group"},
+ {"type":"NameVariable","value":"group"},
{"type":"TextWhitespace","value":" "},
- {"type":"Text","value":"as"},
+ {"type":"KeywordDeclaration","value":"as"},
{"type":"TextWhitespace","value":" "},
- {"type":"Text","value":"the"},
+ {"type":"NameVariable","value":"the"},
{"type":"TextWhitespace","value":" "},
- {"type":"NameFunction","value":"deployment"},
+ {"type":"NameVariable","value":"deployment"},
{"type":"Punctuation","value":"."},
{"type":"TextWhitespace","value":"\n"},
{"type":"Operator","value":"*/"},
{"type":"TextWhitespace","value":"\n"},
{"type":"KeywordDeclaration","value":"param"},
{"type":"TextWhitespace","value":" "},
- {"type":"Text","value":"existingKeyVaultName"},
+ {"type":"NameVariable","value":"existingKeyVaultName"},
{"type":"TextWhitespace","value":" "},
- {"type":"NameFunction","value":"string"}
+ {"type":"NameVariable","value":"string"},
+ {"type":"TextWhitespace","value":"\n\n"},
+ {"type":"KeywordDeclaration","value":"resource"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"test"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"LiteralString","value":"'Microsoft.AAD/domainServices@2021-03-01'"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"="},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"{"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"NameVariable","value":"name"},
+ {"type":"Punctuation","value":":"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"LiteralString","value":"'asdfsdf'"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"CommentSingle","value":"// this is a comment"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"NameVariable","value":"properties"},
+ {"type":"Punctuation","value":":"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"{"},
+ {"type":"CommentMultiline","value":"/*comment*/"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"NameVariable","value":"domainConfigurationType"},
+ {"type":"CommentMultiline","value":"/*comment*/"},
+ {"type":"Punctuation","value":":"},
+ {"type":"CommentMultiline","value":"/*comment*/"},
+ {"type":"LiteralString","value":"'as//notacomment!d/* also not a comment */fsdf'"},
+ {"type":"CommentSingle","value":"// test!/*"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"Operator","value":"/*"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"multi"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"NameVariable","value":"line"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"NameVariable","value":"comment"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Operator","value":"*/"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"domainName"},
+ {"type":"Punctuation","value":":"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Operator","value":"/*"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"NameVariable","value":"asdf"},
+ {"type":"Operator","value":"*/"},
+ {"type":"LiteralString","value":"'test'"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"CommentSingle","value":"// comment"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"Punctuation","value":"}"},
+ {"type":"TextWhitespace","value":"\n"},
+ {"type":"Punctuation","value":"}"}
]
diff --git a/lexers/testdata/bicep/bicep-directives.actual b/lexers/testdata/bicep/bicep-directives.actual
new file mode 100644
index 000000000..75f84b49a
--- /dev/null
+++ b/lexers/testdata/bicep/bicep-directives.actual
@@ -0,0 +1,24 @@
+var vmProperties = {
+ diagnosticsProfile: {
+ bootDiagnostics: {
+ enabled: 123
+ storageUri: true
+ unknownProp: 'asdf'
+ }
+ }
+ evictionPolicy: 'Deallocate'
+}
+resource vm 'Microsoft.Compute/virtualMachines@2020-12-01' = {
+ name: 'vm'
+ location: 'West US'
+#disable-next-line BCP036 BCP037
+ properties: vmProperties
+}
+#disable-next-line no-unused-params
+param storageAccount1 string = 'testStorageAccount'
+#disable-next-line no-unused-params
+param storageAccount2 string = 'testStorageAccount'
+#disable-next-line no-unused-params /* Test comment 1 */
+param storageAccount3 string = 'testStorageAccount'
+ #disable-next-line no-unused-params // Test comment 2
+param storageAccount5 string = 'testStorageAccount'
\ No newline at end of file
diff --git a/lexers/testdata/bicep/bicep-directives.expected b/lexers/testdata/bicep/bicep-directives.expected
new file mode 100644
index 000000000..67d0e5fd2
--- /dev/null
+++ b/lexers/testdata/bicep/bicep-directives.expected
@@ -0,0 +1,154 @@
+[
+ {"type":"KeywordDeclaration","value":"var"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"vmProperties"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"="},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"{"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"NameVariable","value":"diagnosticsProfile"},
+ {"type":"Punctuation","value":":"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"{"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"NameVariable","value":"bootDiagnostics"},
+ {"type":"Punctuation","value":":"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"{"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"NameVariable","value":"enabled"},
+ {"type":"Punctuation","value":":"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"123"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"NameVariable","value":"storageUri"},
+ {"type":"Punctuation","value":":"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"KeywordConstant","value":"true"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"NameVariable","value":"unknownProp"},
+ {"type":"Punctuation","value":":"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"LiteralString","value":"'asdf'"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"Punctuation","value":"}"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"Punctuation","value":"}"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"NameVariable","value":"evictionPolicy"},
+ {"type":"Punctuation","value":":"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"LiteralString","value":"'Deallocate'"},
+ {"type":"TextWhitespace","value":"\n"},
+ {"type":"Punctuation","value":"}"},
+ {"type":"TextWhitespace","value":"\n"},
+ {"type":"KeywordDeclaration","value":"resource"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"vm"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"LiteralString","value":"'Microsoft.Compute/virtualMachines@2020-12-01'"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"="},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"{"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"NameVariable","value":"name"},
+ {"type":"Punctuation","value":":"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"LiteralString","value":"'vm'"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"NameVariable","value":"location"},
+ {"type":"Punctuation","value":":"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"LiteralString","value":"'West US'"},
+ {"type":"TextWhitespace","value":"\n"},
+ {"type":"CommentPreproc","value":"#disable-next-line"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"BCP036"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"BCP037"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"NameVariable","value":"properties"},
+ {"type":"Punctuation","value":":"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"vmProperties"},
+ {"type":"TextWhitespace","value":"\n"},
+ {"type":"Punctuation","value":"}"},
+ {"type":"TextWhitespace","value":"\n"},
+ {"type":"CommentPreproc","value":"#disable-next-line"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"no"},
+ {"type":"Operator","value":"-"},
+ {"type":"NameVariable","value":"unused"},
+ {"type":"Operator","value":"-"},
+ {"type":"NameVariable","value":"params"},
+ {"type":"TextWhitespace","value":"\n"},
+ {"type":"KeywordDeclaration","value":"param"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"storageAccount1"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"string"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"="},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"LiteralString","value":"'testStorageAccount'"},
+ {"type":"TextWhitespace","value":"\n"},
+ {"type":"CommentPreproc","value":"#disable-next-line"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"no"},
+ {"type":"Operator","value":"-"},
+ {"type":"NameVariable","value":"unused"},
+ {"type":"Operator","value":"-"},
+ {"type":"NameVariable","value":"params"},
+ {"type":"TextWhitespace","value":"\n"},
+ {"type":"KeywordDeclaration","value":"param"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"storageAccount2"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"string"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"="},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"LiteralString","value":"'testStorageAccount'"},
+ {"type":"TextWhitespace","value":"\n"},
+ {"type":"CommentPreproc","value":"#disable-next-line"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"no"},
+ {"type":"Operator","value":"-"},
+ {"type":"NameVariable","value":"unused"},
+ {"type":"Operator","value":"-"},
+ {"type":"NameVariable","value":"params"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"CommentMultiline","value":"/* Test comment 1 */"},
+ {"type":"TextWhitespace","value":"\n"},
+ {"type":"KeywordDeclaration","value":"param"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"storageAccount3"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"string"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"="},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"LiteralString","value":"'testStorageAccount'"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"CommentPreproc","value":"#disable-next-line"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"no"},
+ {"type":"Operator","value":"-"},
+ {"type":"NameVariable","value":"unused"},
+ {"type":"Operator","value":"-"},
+ {"type":"NameVariable","value":"params"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"CommentSingle","value":"// Test comment 2"},
+ {"type":"TextWhitespace","value":"\n"},
+ {"type":"KeywordDeclaration","value":"param"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"storageAccount5"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"string"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"="},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"LiteralString","value":"'testStorageAccount'"}
+]
diff --git a/lexers/testdata/bicep/bicep-function-any.expected b/lexers/testdata/bicep/bicep-function-any.expected
index 79a5902cb..d041143d6 100644
--- a/lexers/testdata/bicep/bicep-function-any.expected
+++ b/lexers/testdata/bicep/bicep-function-any.expected
@@ -1,10 +1,10 @@
[
- {"type":"NameProperty","value":"publicIPAddress"},
+ {"type":"NameVariable","value":"publicIPAddress"},
{"type":"Punctuation","value":":"},
{"type":"TextWhitespace","value":" "},
{"type":"NameFunction","value":"any"},
{"type":"Punctuation","value":"(("},
- {"type":"Text","value":"pipId"},
+ {"type":"NameVariable","value":"pipId"},
{"type":"TextWhitespace","value":" "},
{"type":"Operator","value":"=="},
{"type":"TextWhitespace","value":" "},
@@ -13,16 +13,16 @@
{"type":"TextWhitespace","value":" "},
{"type":"Punctuation","value":"?"},
{"type":"TextWhitespace","value":" "},
- {"type":"Text","value":"null"},
+ {"type":"KeywordConstant","value":"null"},
{"type":"TextWhitespace","value":" "},
{"type":"Punctuation","value":":"},
{"type":"TextWhitespace","value":" "},
{"type":"Punctuation","value":"{"},
{"type":"TextWhitespace","value":"\n "},
- {"type":"NameProperty","value":"id"},
+ {"type":"NameVariable","value":"id"},
{"type":"Punctuation","value":":"},
{"type":"TextWhitespace","value":" "},
- {"type":"Text","value":"pipId"},
+ {"type":"NameVariable","value":"pipId"},
{"type":"TextWhitespace","value":"\n"},
{"type":"Punctuation","value":"})"}
]
diff --git a/lexers/testdata/bicep/bicep-function-deployment.expected b/lexers/testdata/bicep/bicep-function-deployment.expected
index 395e883a8..954f84e56 100644
--- a/lexers/testdata/bicep/bicep-function-deployment.expected
+++ b/lexers/testdata/bicep/bicep-function-deployment.expected
@@ -1,9 +1,9 @@
[
{"type":"KeywordDeclaration","value":"output"},
{"type":"TextWhitespace","value":" "},
- {"type":"Text","value":"deploymentOutput"},
+ {"type":"NameVariable","value":"deploymentOutput"},
{"type":"TextWhitespace","value":" "},
- {"type":"KeywordType","value":"object"},
+ {"type":"NameVariable","value":"object"},
{"type":"TextWhitespace","value":" "},
{"type":"Punctuation","value":"="},
{"type":"TextWhitespace","value":" "},
diff --git a/lexers/testdata/bicep/bicep-function-logical.expected b/lexers/testdata/bicep/bicep-function-logical.expected
index 48d2fd482..0d9f3b343 100644
--- a/lexers/testdata/bicep/bicep-function-logical.expected
+++ b/lexers/testdata/bicep/bicep-function-logical.expected
@@ -1,53 +1,53 @@
[
{"type":"KeywordDeclaration","value":"output"},
{"type":"TextWhitespace","value":" "},
- {"type":"Text","value":"trueString"},
+ {"type":"NameVariable","value":"trueString"},
{"type":"TextWhitespace","value":" "},
- {"type":"KeywordType","value":"bool"},
+ {"type":"NameVariable","value":"bool"},
{"type":"TextWhitespace","value":" "},
{"type":"Punctuation","value":"="},
{"type":"TextWhitespace","value":" "},
{"type":"NameFunction","value":"bool"},
{"type":"Punctuation","value":"("},
- {"type":"LiteralStringInterpol","value":"'true'"},
+ {"type":"LiteralString","value":"'true'"},
{"type":"Punctuation","value":")"},
{"type":"TextWhitespace","value":"\n"},
{"type":"KeywordDeclaration","value":"output"},
{"type":"TextWhitespace","value":" "},
- {"type":"Text","value":"falseString"},
+ {"type":"NameVariable","value":"falseString"},
{"type":"TextWhitespace","value":" "},
- {"type":"KeywordType","value":"bool"},
+ {"type":"NameVariable","value":"bool"},
{"type":"TextWhitespace","value":" "},
{"type":"Punctuation","value":"="},
{"type":"TextWhitespace","value":" "},
{"type":"NameFunction","value":"bool"},
{"type":"Punctuation","value":"("},
- {"type":"LiteralStringInterpol","value":"'false'"},
+ {"type":"LiteralString","value":"'false'"},
{"type":"Punctuation","value":")"},
{"type":"TextWhitespace","value":"\n"},
{"type":"KeywordDeclaration","value":"output"},
{"type":"TextWhitespace","value":" "},
- {"type":"Text","value":"trueInt"},
+ {"type":"NameVariable","value":"trueInt"},
{"type":"TextWhitespace","value":" "},
- {"type":"KeywordType","value":"bool"},
+ {"type":"NameVariable","value":"bool"},
{"type":"TextWhitespace","value":" "},
{"type":"Punctuation","value":"="},
{"type":"TextWhitespace","value":" "},
{"type":"NameFunction","value":"bool"},
{"type":"Punctuation","value":"("},
- {"type":"Text","value":"1"},
+ {"type":"NameVariable","value":"1"},
{"type":"Punctuation","value":")"},
{"type":"TextWhitespace","value":"\n"},
{"type":"KeywordDeclaration","value":"output"},
{"type":"TextWhitespace","value":" "},
- {"type":"Text","value":"falseInt"},
+ {"type":"NameVariable","value":"falseInt"},
{"type":"TextWhitespace","value":" "},
- {"type":"KeywordType","value":"bool"},
+ {"type":"NameVariable","value":"bool"},
{"type":"TextWhitespace","value":" "},
{"type":"Punctuation","value":"="},
{"type":"TextWhitespace","value":" "},
{"type":"NameFunction","value":"bool"},
{"type":"Punctuation","value":"("},
- {"type":"Text","value":"0"},
+ {"type":"NameVariable","value":"0"},
{"type":"Punctuation","value":")"}
]
diff --git a/lexers/testdata/bicep/bicep-lambdas.actual b/lexers/testdata/bicep/bicep-lambdas.actual
new file mode 100644
index 000000000..84b18fa07
--- /dev/null
+++ b/lexers/testdata/bicep/bicep-lambdas.actual
@@ -0,0 +1,66 @@
+var doggos = [
+ 'Evie'
+ 'Casper'
+ 'Indy'
+ 'Kira'
+]
+
+var numbers = range(0, 4)
+
+var sayHello = map(doggos, i => 'Hello ${i}!')
+
+var isEven = filter(numbers, i => 0 == i % 2)
+
+var evenDoggosNestedLambdas = map(filter(numbers, i => contains(filter(numbers, j => 0 == j % 2), i)), x => doggos[x])
+
+var flattenedArrayOfArrays = flatten([[0, 1], [2, 3], [4, 5]])
+var flattenedEmptyArray = flatten([])
+
+var mapSayHi = map(['abc', 'def', 'ghi'], foo => 'Hi ${foo}!')
+var mapEmpty = map([], foo => 'Hi ${foo}!')
+var mapObject = map(range(0, length(doggos)), i => {
+ i: i
+ doggo: doggos[i]
+ greeting: 'Ahoy, ${doggos[i]}!'
+})
+var mapArray = flatten(map(range(1, 3), i => [i * 2, (i * 2) + 1]))
+var mapMultiLineArray = flatten(map(range(1, 3), i => [
+ i * 3
+ (i * 3) + 1
+ (i * 3) + 2
+]))
+
+var filterEqualityCheck = filter(['abc', 'def', 'ghi'], foo => 'def' == foo)
+var filterEmpty = filter([], foo => 'def' == foo)
+
+var sortNumeric = sort([8, 3, 10, -13, 5], (x, y) => x < y)
+var sortAlpha = sort(['ghi', 'abc', 'def'], (x, y) => x < y)
+var sortAlphaReverse = sort(['ghi', 'abc', 'def'], (x, y) => x > y)
+var sortByObjectKey = sort([
+ { key: 124, name: 'Second' }
+ { key: 298, name: 'Third' }
+ { key: 24, name: 'First' }
+ { key: 1232, name: 'Fourth' }
+], (x, y) => int(x.key) < int(y.key))
+var sortEmpty = sort([], (x, y) => int(x) < int(y))
+
+var reduceStringConcat = reduce(['abc', 'def', 'ghi'], '', (cur, next) => concat(cur, next))
+var reduceFactorial = reduce(range(1, 5), 1, (cur, next) => cur * next)
+var reduceObjectUnion = reduce([
+ { foo: 123 }
+ { bar: 456 }
+ { baz: 789 }
+], {}, (cur, next) => union(cur, next))
+var reduceEmpty = reduce([], 0, (cur, next) => cur)
+
+var itemForLoop = [for item in range(0, 10): item]
+var filteredLoop = filter(itemForLoop, i => i > 5)
+
+output doggoGreetings array = [for item in mapObject: item.greeting]
+
+resource storageAcc 'Microsoft.Storage/storageAccounts@2021-09-01' existing = {
+ name: 'asdfsadf'
+}
+var mappedResProps = map(items(storageAcc.properties.secondaryEndpoints), item => item.value)
+
+var parentheses = map([123], (i => '${i}'))
\ No newline at end of file
diff --git a/lexers/testdata/bicep/bicep-lambdas.expected b/lexers/testdata/bicep/bicep-lambdas.expected
new file mode 100644
index 000000000..51ae5caaf
--- /dev/null
+++ b/lexers/testdata/bicep/bicep-lambdas.expected
@@ -0,0 +1,937 @@
+[
+ {"type":"KeywordDeclaration","value":"var"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"doggos"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"="},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"["},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"LiteralString","value":"'Evie'"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"LiteralString","value":"'Casper'"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"LiteralString","value":"'Indy'"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"LiteralString","value":"'Kira'"},
+ {"type":"TextWhitespace","value":"\n"},
+ {"type":"Punctuation","value":"]"},
+ {"type":"TextWhitespace","value":"\n\n"},
+ {"type":"KeywordDeclaration","value":"var"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"numbers"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"="},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameFunction","value":"range"},
+ {"type":"Punctuation","value":"("},
+ {"type":"NameVariable","value":"0"},
+ {"type":"Punctuation","value":","},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"4"},
+ {"type":"Punctuation","value":")"},
+ {"type":"TextWhitespace","value":"\n\n"},
+ {"type":"KeywordDeclaration","value":"var"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"sayHello"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"="},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameFunction","value":"map"},
+ {"type":"Punctuation","value":"("},
+ {"type":"NameVariable","value":"doggos"},
+ {"type":"Punctuation","value":","},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"i"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"=\u003e"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"LiteralString","value":"'Hello "},
+ {"type":"LiteralStringInterpol","value":"${"},
+ {"type":"NameVariable","value":"i"},
+ {"type":"LiteralStringInterpol","value":"}"},
+ {"type":"LiteralString","value":"!'"},
+ {"type":"Punctuation","value":")"},
+ {"type":"TextWhitespace","value":"\n\n"},
+ {"type":"KeywordDeclaration","value":"var"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"isEven"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"="},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameFunction","value":"filter"},
+ {"type":"Punctuation","value":"("},
+ {"type":"NameVariable","value":"numbers"},
+ {"type":"Punctuation","value":","},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"i"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"=\u003e"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"0"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Operator","value":"=="},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"i"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Operator","value":"%"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"2"},
+ {"type":"Punctuation","value":")"},
+ {"type":"TextWhitespace","value":"\n\n"},
+ {"type":"KeywordDeclaration","value":"var"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"evenDoggosNestedLambdas"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"="},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameFunction","value":"map"},
+ {"type":"Punctuation","value":"("},
+ {"type":"NameFunction","value":"filter"},
+ {"type":"Punctuation","value":"("},
+ {"type":"NameVariable","value":"numbers"},
+ {"type":"Punctuation","value":","},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"i"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"=\u003e"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameFunction","value":"contains"},
+ {"type":"Punctuation","value":"("},
+ {"type":"NameFunction","value":"filter"},
+ {"type":"Punctuation","value":"("},
+ {"type":"NameVariable","value":"numbers"},
+ {"type":"Punctuation","value":","},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"j"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"=\u003e"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"0"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Operator","value":"=="},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"j"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Operator","value":"%"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"2"},
+ {"type":"Punctuation","value":"),"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"i"},
+ {"type":"Punctuation","value":")),"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"x"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"=\u003e"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"doggos"},
+ {"type":"Punctuation","value":"["},
+ {"type":"NameVariable","value":"x"},
+ {"type":"Punctuation","value":"])"},
+ {"type":"TextWhitespace","value":"\n\n"},
+ {"type":"KeywordDeclaration","value":"var"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"flattenedArrayOfArrays"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"="},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameFunction","value":"flatten"},
+ {"type":"Punctuation","value":"([["},
+ {"type":"NameVariable","value":"0"},
+ {"type":"Punctuation","value":","},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"1"},
+ {"type":"Punctuation","value":"],"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"["},
+ {"type":"NameVariable","value":"2"},
+ {"type":"Punctuation","value":","},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"3"},
+ {"type":"Punctuation","value":"],"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"["},
+ {"type":"NameVariable","value":"4"},
+ {"type":"Punctuation","value":","},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"5"},
+ {"type":"Punctuation","value":"]])"},
+ {"type":"TextWhitespace","value":"\n"},
+ {"type":"KeywordDeclaration","value":"var"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"flattenedEmptyArray"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"="},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameFunction","value":"flatten"},
+ {"type":"Punctuation","value":"([])"},
+ {"type":"TextWhitespace","value":"\n\n"},
+ {"type":"KeywordDeclaration","value":"var"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"mapSayHi"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"="},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameFunction","value":"map"},
+ {"type":"Punctuation","value":"(["},
+ {"type":"LiteralString","value":"'abc'"},
+ {"type":"Punctuation","value":","},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"LiteralString","value":"'def'"},
+ {"type":"Punctuation","value":","},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"LiteralString","value":"'ghi'"},
+ {"type":"Punctuation","value":"],"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"foo"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"=\u003e"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"LiteralString","value":"'Hi "},
+ {"type":"LiteralStringInterpol","value":"${"},
+ {"type":"NameVariable","value":"foo"},
+ {"type":"LiteralStringInterpol","value":"}"},
+ {"type":"LiteralString","value":"!'"},
+ {"type":"Punctuation","value":")"},
+ {"type":"TextWhitespace","value":"\n"},
+ {"type":"KeywordDeclaration","value":"var"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"mapEmpty"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"="},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameFunction","value":"map"},
+ {"type":"Punctuation","value":"([],"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"foo"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"=\u003e"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"LiteralString","value":"'Hi "},
+ {"type":"LiteralStringInterpol","value":"${"},
+ {"type":"NameVariable","value":"foo"},
+ {"type":"LiteralStringInterpol","value":"}"},
+ {"type":"LiteralString","value":"!'"},
+ {"type":"Punctuation","value":")"},
+ {"type":"TextWhitespace","value":"\n"},
+ {"type":"KeywordDeclaration","value":"var"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"mapObject"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"="},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameFunction","value":"map"},
+ {"type":"Punctuation","value":"("},
+ {"type":"NameFunction","value":"range"},
+ {"type":"Punctuation","value":"("},
+ {"type":"NameVariable","value":"0"},
+ {"type":"Punctuation","value":","},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameFunction","value":"length"},
+ {"type":"Punctuation","value":"("},
+ {"type":"NameVariable","value":"doggos"},
+ {"type":"Punctuation","value":")),"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"i"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"=\u003e"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"{"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"NameVariable","value":"i"},
+ {"type":"Punctuation","value":":"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"i"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"NameVariable","value":"doggo"},
+ {"type":"Punctuation","value":":"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"doggos"},
+ {"type":"Punctuation","value":"["},
+ {"type":"NameVariable","value":"i"},
+ {"type":"Punctuation","value":"]"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"NameVariable","value":"greeting"},
+ {"type":"Punctuation","value":":"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"LiteralString","value":"'Ahoy, "},
+ {"type":"LiteralStringInterpol","value":"${"},
+ {"type":"NameVariable","value":"doggos"},
+ {"type":"Punctuation","value":"["},
+ {"type":"NameVariable","value":"i"},
+ {"type":"Punctuation","value":"]"},
+ {"type":"LiteralStringInterpol","value":"}"},
+ {"type":"LiteralString","value":"!'"},
+ {"type":"TextWhitespace","value":"\n"},
+ {"type":"Punctuation","value":"})"},
+ {"type":"TextWhitespace","value":"\n"},
+ {"type":"KeywordDeclaration","value":"var"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"mapArray"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"="},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameFunction","value":"flatten"},
+ {"type":"Punctuation","value":"("},
+ {"type":"NameFunction","value":"map"},
+ {"type":"Punctuation","value":"("},
+ {"type":"NameFunction","value":"range"},
+ {"type":"Punctuation","value":"("},
+ {"type":"NameVariable","value":"1"},
+ {"type":"Punctuation","value":","},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"3"},
+ {"type":"Punctuation","value":"),"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"i"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"=\u003e"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"["},
+ {"type":"NameVariable","value":"i"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"2"},
+ {"type":"Punctuation","value":","},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"("},
+ {"type":"NameVariable","value":"i"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"2"},
+ {"type":"Punctuation","value":")"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Operator","value":"+"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"1"},
+ {"type":"Punctuation","value":"]))"},
+ {"type":"TextWhitespace","value":"\n"},
+ {"type":"KeywordDeclaration","value":"var"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"mapMultiLineArray"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"="},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameFunction","value":"flatten"},
+ {"type":"Punctuation","value":"("},
+ {"type":"NameFunction","value":"map"},
+ {"type":"Punctuation","value":"("},
+ {"type":"NameFunction","value":"range"},
+ {"type":"Punctuation","value":"("},
+ {"type":"NameVariable","value":"1"},
+ {"type":"Punctuation","value":","},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"3"},
+ {"type":"Punctuation","value":"),"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"i"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"=\u003e"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"["},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"NameVariable","value":"i"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"3"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"Punctuation","value":"("},
+ {"type":"NameVariable","value":"i"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"3"},
+ {"type":"Punctuation","value":")"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Operator","value":"+"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"1"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"Punctuation","value":"("},
+ {"type":"NameVariable","value":"i"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"3"},
+ {"type":"Punctuation","value":")"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Operator","value":"+"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"2"},
+ {"type":"TextWhitespace","value":"\n"},
+ {"type":"Punctuation","value":"]))"},
+ {"type":"TextWhitespace","value":"\n\n"},
+ {"type":"KeywordDeclaration","value":"var"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"filterEqualityCheck"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"="},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameFunction","value":"filter"},
+ {"type":"Punctuation","value":"(["},
+ {"type":"LiteralString","value":"'abc'"},
+ {"type":"Punctuation","value":","},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"LiteralString","value":"'def'"},
+ {"type":"Punctuation","value":","},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"LiteralString","value":"'ghi'"},
+ {"type":"Punctuation","value":"],"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"foo"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"=\u003e"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"LiteralString","value":"'def'"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Operator","value":"=="},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"foo"},
+ {"type":"Punctuation","value":")"},
+ {"type":"TextWhitespace","value":"\n"},
+ {"type":"KeywordDeclaration","value":"var"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"filterEmpty"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"="},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameFunction","value":"filter"},
+ {"type":"Punctuation","value":"([],"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"foo"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"=\u003e"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"LiteralString","value":"'def'"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Operator","value":"=="},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"foo"},
+ {"type":"Punctuation","value":")"},
+ {"type":"TextWhitespace","value":"\n\n"},
+ {"type":"KeywordDeclaration","value":"var"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"sortNumeric"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"="},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameFunction","value":"sort"},
+ {"type":"Punctuation","value":"(["},
+ {"type":"NameVariable","value":"8"},
+ {"type":"Punctuation","value":","},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"3"},
+ {"type":"Punctuation","value":","},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"10"},
+ {"type":"Punctuation","value":","},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Operator","value":"-"},
+ {"type":"NameVariable","value":"13"},
+ {"type":"Punctuation","value":","},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"5"},
+ {"type":"Punctuation","value":"],"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"("},
+ {"type":"NameVariable","value":"x"},
+ {"type":"Punctuation","value":","},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"y"},
+ {"type":"Punctuation","value":")"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"=\u003e"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"x"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"y"},
+ {"type":"Punctuation","value":")"},
+ {"type":"TextWhitespace","value":"\n"},
+ {"type":"KeywordDeclaration","value":"var"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"sortAlpha"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"="},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameFunction","value":"sort"},
+ {"type":"Punctuation","value":"(["},
+ {"type":"LiteralString","value":"'ghi'"},
+ {"type":"Punctuation","value":","},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"LiteralString","value":"'abc'"},
+ {"type":"Punctuation","value":","},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"LiteralString","value":"'def'"},
+ {"type":"Punctuation","value":"],"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"("},
+ {"type":"NameVariable","value":"x"},
+ {"type":"Punctuation","value":","},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"y"},
+ {"type":"Punctuation","value":")"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"=\u003e"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"x"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"y"},
+ {"type":"Punctuation","value":")"},
+ {"type":"TextWhitespace","value":"\n"},
+ {"type":"KeywordDeclaration","value":"var"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"sortAlphaReverse"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"="},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameFunction","value":"sort"},
+ {"type":"Punctuation","value":"(["},
+ {"type":"LiteralString","value":"'ghi'"},
+ {"type":"Punctuation","value":","},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"LiteralString","value":"'abc'"},
+ {"type":"Punctuation","value":","},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"LiteralString","value":"'def'"},
+ {"type":"Punctuation","value":"],"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"("},
+ {"type":"NameVariable","value":"x"},
+ {"type":"Punctuation","value":","},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"y"},
+ {"type":"Punctuation","value":")"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"=\u003e"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"x"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"y"},
+ {"type":"Punctuation","value":")"},
+ {"type":"TextWhitespace","value":"\n"},
+ {"type":"KeywordDeclaration","value":"var"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"sortByObjectKey"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"="},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameFunction","value":"sort"},
+ {"type":"Punctuation","value":"(["},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"Punctuation","value":"{"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"key"},
+ {"type":"Punctuation","value":":"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"124"},
+ {"type":"Punctuation","value":","},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"name"},
+ {"type":"Punctuation","value":":"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"LiteralString","value":"'Second'"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"}"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"Punctuation","value":"{"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"key"},
+ {"type":"Punctuation","value":":"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"298"},
+ {"type":"Punctuation","value":","},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"name"},
+ {"type":"Punctuation","value":":"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"LiteralString","value":"'Third'"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"}"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"Punctuation","value":"{"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"key"},
+ {"type":"Punctuation","value":":"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"24"},
+ {"type":"Punctuation","value":","},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"name"},
+ {"type":"Punctuation","value":":"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"LiteralString","value":"'First'"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"}"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"Punctuation","value":"{"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"key"},
+ {"type":"Punctuation","value":":"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"1232"},
+ {"type":"Punctuation","value":","},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"name"},
+ {"type":"Punctuation","value":":"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"LiteralString","value":"'Fourth'"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"}"},
+ {"type":"TextWhitespace","value":"\n"},
+ {"type":"Punctuation","value":"],"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"("},
+ {"type":"NameVariable","value":"x"},
+ {"type":"Punctuation","value":","},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"y"},
+ {"type":"Punctuation","value":")"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"=\u003e"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameFunction","value":"int"},
+ {"type":"Punctuation","value":"("},
+ {"type":"NameVariable","value":"x"},
+ {"type":"Punctuation","value":"."},
+ {"type":"NameVariable","value":"key"},
+ {"type":"Punctuation","value":")"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameFunction","value":"int"},
+ {"type":"Punctuation","value":"("},
+ {"type":"NameVariable","value":"y"},
+ {"type":"Punctuation","value":"."},
+ {"type":"NameVariable","value":"key"},
+ {"type":"Punctuation","value":"))"},
+ {"type":"TextWhitespace","value":"\n"},
+ {"type":"KeywordDeclaration","value":"var"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"sortEmpty"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"="},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameFunction","value":"sort"},
+ {"type":"Punctuation","value":"([],"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"("},
+ {"type":"NameVariable","value":"x"},
+ {"type":"Punctuation","value":","},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"y"},
+ {"type":"Punctuation","value":")"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"=\u003e"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameFunction","value":"int"},
+ {"type":"Punctuation","value":"("},
+ {"type":"NameVariable","value":"x"},
+ {"type":"Punctuation","value":")"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Operator","value":"\u003c"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameFunction","value":"int"},
+ {"type":"Punctuation","value":"("},
+ {"type":"NameVariable","value":"y"},
+ {"type":"Punctuation","value":"))"},
+ {"type":"TextWhitespace","value":"\n\n"},
+ {"type":"KeywordDeclaration","value":"var"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"reduceStringConcat"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"="},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameFunction","value":"reduce"},
+ {"type":"Punctuation","value":"(["},
+ {"type":"LiteralString","value":"'abc'"},
+ {"type":"Punctuation","value":","},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"LiteralString","value":"'def'"},
+ {"type":"Punctuation","value":","},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"LiteralString","value":"'ghi'"},
+ {"type":"Punctuation","value":"],"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"LiteralString","value":"''"},
+ {"type":"Punctuation","value":","},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"("},
+ {"type":"NameVariable","value":"cur"},
+ {"type":"Punctuation","value":","},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"next"},
+ {"type":"Punctuation","value":")"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"=\u003e"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameFunction","value":"concat"},
+ {"type":"Punctuation","value":"("},
+ {"type":"NameVariable","value":"cur"},
+ {"type":"Punctuation","value":","},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"next"},
+ {"type":"Punctuation","value":"))"},
+ {"type":"TextWhitespace","value":"\n"},
+ {"type":"KeywordDeclaration","value":"var"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"reduceFactorial"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"="},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameFunction","value":"reduce"},
+ {"type":"Punctuation","value":"("},
+ {"type":"NameFunction","value":"range"},
+ {"type":"Punctuation","value":"("},
+ {"type":"NameVariable","value":"1"},
+ {"type":"Punctuation","value":","},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"5"},
+ {"type":"Punctuation","value":"),"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"1"},
+ {"type":"Punctuation","value":","},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"("},
+ {"type":"NameVariable","value":"cur"},
+ {"type":"Punctuation","value":","},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"next"},
+ {"type":"Punctuation","value":")"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"=\u003e"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"cur"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Operator","value":"*"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"next"},
+ {"type":"Punctuation","value":")"},
+ {"type":"TextWhitespace","value":"\n"},
+ {"type":"KeywordDeclaration","value":"var"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"reduceObjectUnion"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"="},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameFunction","value":"reduce"},
+ {"type":"Punctuation","value":"(["},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"Punctuation","value":"{"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"foo"},
+ {"type":"Punctuation","value":":"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"123"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"}"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"Punctuation","value":"{"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"bar"},
+ {"type":"Punctuation","value":":"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"456"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"}"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"Punctuation","value":"{"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"baz"},
+ {"type":"Punctuation","value":":"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"789"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"}"},
+ {"type":"TextWhitespace","value":"\n"},
+ {"type":"Punctuation","value":"],"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"{},"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"("},
+ {"type":"NameVariable","value":"cur"},
+ {"type":"Punctuation","value":","},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"next"},
+ {"type":"Punctuation","value":")"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"=\u003e"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameFunction","value":"union"},
+ {"type":"Punctuation","value":"("},
+ {"type":"NameVariable","value":"cur"},
+ {"type":"Punctuation","value":","},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"next"},
+ {"type":"Punctuation","value":"))"},
+ {"type":"TextWhitespace","value":"\n"},
+ {"type":"KeywordDeclaration","value":"var"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"reduceEmpty"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"="},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameFunction","value":"reduce"},
+ {"type":"Punctuation","value":"([],"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"0"},
+ {"type":"Punctuation","value":","},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"("},
+ {"type":"NameVariable","value":"cur"},
+ {"type":"Punctuation","value":","},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"next"},
+ {"type":"Punctuation","value":")"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"=\u003e"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"cur"},
+ {"type":"Punctuation","value":")"},
+ {"type":"TextWhitespace","value":"\n\n"},
+ {"type":"KeywordDeclaration","value":"var"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"itemForLoop"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"="},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"["},
+ {"type":"KeywordDeclaration","value":"for"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"item"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"KeywordDeclaration","value":"in"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameFunction","value":"range"},
+ {"type":"Punctuation","value":"("},
+ {"type":"NameVariable","value":"0"},
+ {"type":"Punctuation","value":","},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"10"},
+ {"type":"Punctuation","value":"):"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"item"},
+ {"type":"Punctuation","value":"]"},
+ {"type":"TextWhitespace","value":"\n"},
+ {"type":"KeywordDeclaration","value":"var"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"filteredLoop"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"="},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameFunction","value":"filter"},
+ {"type":"Punctuation","value":"("},
+ {"type":"NameVariable","value":"itemForLoop"},
+ {"type":"Punctuation","value":","},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"i"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"=\u003e"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"i"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Operator","value":"\u003e"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"5"},
+ {"type":"Punctuation","value":")"},
+ {"type":"TextWhitespace","value":"\n\n"},
+ {"type":"KeywordDeclaration","value":"output"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"doggoGreetings"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"array"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"="},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"["},
+ {"type":"KeywordDeclaration","value":"for"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"item"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"KeywordDeclaration","value":"in"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"mapObject"},
+ {"type":"Punctuation","value":":"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"item"},
+ {"type":"Punctuation","value":"."},
+ {"type":"NameVariable","value":"greeting"},
+ {"type":"Punctuation","value":"]"},
+ {"type":"TextWhitespace","value":"\n\n"},
+ {"type":"KeywordDeclaration","value":"resource"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"storageAcc"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"LiteralString","value":"'Microsoft.Storage/storageAccounts@2021-09-01'"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"KeywordDeclaration","value":"existing"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"="},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"{"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"NameVariable","value":"name"},
+ {"type":"Punctuation","value":":"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"LiteralString","value":"'asdfsadf'"},
+ {"type":"TextWhitespace","value":"\n"},
+ {"type":"Punctuation","value":"}"},
+ {"type":"TextWhitespace","value":"\n"},
+ {"type":"KeywordDeclaration","value":"var"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"mappedResProps"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"="},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameFunction","value":"map"},
+ {"type":"Punctuation","value":"("},
+ {"type":"NameFunction","value":"items"},
+ {"type":"Punctuation","value":"("},
+ {"type":"NameVariable","value":"storageAcc"},
+ {"type":"Punctuation","value":"."},
+ {"type":"NameVariable","value":"properties"},
+ {"type":"Punctuation","value":"."},
+ {"type":"NameVariable","value":"secondaryEndpoints"},
+ {"type":"Punctuation","value":"),"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"item"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"=\u003e"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"item"},
+ {"type":"Punctuation","value":"."},
+ {"type":"NameVariable","value":"value"},
+ {"type":"Punctuation","value":")"},
+ {"type":"TextWhitespace","value":"\n\n"},
+ {"type":"KeywordDeclaration","value":"var"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"parentheses"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"="},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameFunction","value":"map"},
+ {"type":"Punctuation","value":"(["},
+ {"type":"NameVariable","value":"123"},
+ {"type":"Punctuation","value":"],"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"("},
+ {"type":"NameVariable","value":"i"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"=\u003e"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"LiteralString","value":"'"},
+ {"type":"LiteralStringInterpol","value":"${"},
+ {"type":"NameVariable","value":"i"},
+ {"type":"LiteralStringInterpol","value":"}"},
+ {"type":"LiteralString","value":"'"},
+ {"type":"Punctuation","value":"))"}
+]
diff --git a/lexers/testdata/bicep/bicep-module.expected b/lexers/testdata/bicep/bicep-module.expected
index cd8824887..d4c8e9ffb 100644
--- a/lexers/testdata/bicep/bicep-module.expected
+++ b/lexers/testdata/bicep/bicep-module.expected
@@ -1,55 +1,66 @@
[
{"type":"Punctuation","value":"@"},
- {"type":"NameDecorator","value":"minLength"},
+ {"type":"NameFunction","value":"minLength"},
{"type":"Punctuation","value":"("},
- {"type":"Text","value":"3"},
+ {"type":"NameVariable","value":"3"},
{"type":"Punctuation","value":")"},
{"type":"TextWhitespace","value":"\n"},
{"type":"Punctuation","value":"@"},
- {"type":"NameDecorator","value":"maxLength"},
+ {"type":"NameFunction","value":"maxLength"},
{"type":"Punctuation","value":"("},
- {"type":"Text","value":"11"},
+ {"type":"NameVariable","value":"11"},
{"type":"Punctuation","value":")"},
{"type":"TextWhitespace","value":"\n"},
{"type":"KeywordDeclaration","value":"param"},
{"type":"TextWhitespace","value":" "},
- {"type":"Text","value":"storagePrefix"},
+ {"type":"NameVariable","value":"storagePrefix"},
{"type":"TextWhitespace","value":" "},
- {"type":"NameFunction","value":"string"},
+ {"type":"NameVariable","value":"string"},
{"type":"TextWhitespace","value":"\n\n"},
{"type":"KeywordDeclaration","value":"param"},
{"type":"TextWhitespace","value":" "},
- {"type":"Text","value":"storageSKU"},
+ {"type":"NameVariable","value":"storageSKU"},
{"type":"TextWhitespace","value":" "},
- {"type":"NameFunction","value":"string"},
+ {"type":"NameVariable","value":"string"},
{"type":"TextWhitespace","value":" "},
{"type":"Punctuation","value":"="},
{"type":"TextWhitespace","value":" "},
- {"type":"LiteralStringInterpol","value":"'Standard_LRS'"},
+ {"type":"LiteralString","value":"'Standard_LRS'"},
{"type":"TextWhitespace","value":"\n"},
{"type":"KeywordDeclaration","value":"param"},
{"type":"TextWhitespace","value":" "},
- {"type":"Text","value":"location"},
+ {"type":"NameVariable","value":"location"},
{"type":"TextWhitespace","value":" "},
- {"type":"NameFunction","value":"string"},
+ {"type":"NameVariable","value":"string"},
{"type":"TextWhitespace","value":" "},
{"type":"Punctuation","value":"="},
{"type":"TextWhitespace","value":" "},
{"type":"NameFunction","value":"resourceGroup"},
{"type":"Punctuation","value":"()."},
- {"type":"Text","value":"location"},
+ {"type":"NameVariable","value":"location"},
{"type":"TextWhitespace","value":"\n\n"},
{"type":"KeywordDeclaration","value":"var"},
{"type":"TextWhitespace","value":" "},
- {"type":"Text","value":"uniqueStorageName"},
+ {"type":"NameVariable","value":"uniqueStorageName"},
{"type":"TextWhitespace","value":" "},
{"type":"Punctuation","value":"="},
{"type":"TextWhitespace","value":" "},
- {"type":"LiteralStringInterpol","value":"'${storagePrefix}${uniqueString(resourceGroup().id)}'"},
+ {"type":"LiteralString","value":"'"},
+ {"type":"LiteralStringInterpol","value":"${"},
+ {"type":"NameVariable","value":"storagePrefix"},
+ {"type":"LiteralStringInterpol","value":"}${"},
+ {"type":"NameFunction","value":"uniqueString"},
+ {"type":"Punctuation","value":"("},
+ {"type":"NameFunction","value":"resourceGroup"},
+ {"type":"Punctuation","value":"()."},
+ {"type":"NameVariable","value":"id"},
+ {"type":"Punctuation","value":")"},
+ {"type":"LiteralStringInterpol","value":"}"},
+ {"type":"LiteralString","value":"'"},
{"type":"TextWhitespace","value":"\n\n"},
{"type":"KeywordDeclaration","value":"resource"},
{"type":"TextWhitespace","value":" "},
- {"type":"Text","value":"stg"},
+ {"type":"NameVariable","value":"stg"},
{"type":"TextWhitespace","value":" "},
{"type":"LiteralString","value":"'Microsoft.Storage/storageAccounts@2019-04-01'"},
{"type":"TextWhitespace","value":" "},
@@ -57,42 +68,42 @@
{"type":"TextWhitespace","value":" "},
{"type":"Punctuation","value":"{"},
{"type":"TextWhitespace","value":"\n "},
- {"type":"NameProperty","value":"name"},
+ {"type":"NameVariable","value":"name"},
{"type":"Punctuation","value":":"},
{"type":"TextWhitespace","value":" "},
- {"type":"Text","value":"uniqueStorageName"},
+ {"type":"NameVariable","value":"uniqueStorageName"},
{"type":"TextWhitespace","value":"\n "},
- {"type":"NameProperty","value":"location"},
+ {"type":"NameVariable","value":"location"},
{"type":"Punctuation","value":":"},
{"type":"TextWhitespace","value":" "},
- {"type":"Text","value":"location"},
+ {"type":"NameVariable","value":"location"},
{"type":"TextWhitespace","value":"\n "},
- {"type":"NameProperty","value":"sku"},
+ {"type":"NameVariable","value":"sku"},
{"type":"Punctuation","value":":"},
{"type":"TextWhitespace","value":" "},
{"type":"Punctuation","value":"{"},
{"type":"TextWhitespace","value":"\n "},
- {"type":"NameProperty","value":"name"},
+ {"type":"NameVariable","value":"name"},
{"type":"Punctuation","value":":"},
{"type":"TextWhitespace","value":" "},
- {"type":"Text","value":"storageSKU"},
+ {"type":"NameVariable","value":"storageSKU"},
{"type":"TextWhitespace","value":"\n "},
{"type":"Punctuation","value":"}"},
{"type":"TextWhitespace","value":"\n "},
- {"type":"NameProperty","value":"kind"},
+ {"type":"NameVariable","value":"kind"},
{"type":"Punctuation","value":":"},
{"type":"TextWhitespace","value":" "},
- {"type":"LiteralStringInterpol","value":"'StorageV2'"},
+ {"type":"LiteralString","value":"'StorageV2'"},
{"type":"TextWhitespace","value":"\n "},
- {"type":"NameProperty","value":"properties"},
+ {"type":"NameVariable","value":"properties"},
{"type":"Punctuation","value":":"},
{"type":"TextWhitespace","value":" "},
{"type":"Punctuation","value":"{"},
{"type":"TextWhitespace","value":"\n "},
- {"type":"NameProperty","value":"supportsHttpsTrafficOnly"},
+ {"type":"NameVariable","value":"supportsHttpsTrafficOnly"},
{"type":"Punctuation","value":":"},
{"type":"TextWhitespace","value":" "},
- {"type":"Text","value":"true"},
+ {"type":"KeywordConstant","value":"true"},
{"type":"TextWhitespace","value":"\n "},
{"type":"Punctuation","value":"}"},
{"type":"TextWhitespace","value":"\n"},
@@ -100,7 +111,7 @@
{"type":"TextWhitespace","value":"\n\n"},
{"type":"KeywordDeclaration","value":"module"},
{"type":"TextWhitespace","value":" "},
- {"type":"Text","value":"webModule"},
+ {"type":"NameVariable","value":"webModule"},
{"type":"TextWhitespace","value":" "},
{"type":"LiteralString","value":"'./webApp.bicep'"},
{"type":"TextWhitespace","value":" "},
@@ -108,25 +119,25 @@
{"type":"TextWhitespace","value":" "},
{"type":"Punctuation","value":"{"},
{"type":"TextWhitespace","value":"\n "},
- {"type":"NameProperty","value":"'name'"},
+ {"type":"LiteralString","value":"'name'"},
{"type":"Punctuation","value":":"},
{"type":"TextWhitespace","value":" "},
- {"type":"LiteralStringInterpol","value":"'webDeploy'"},
+ {"type":"LiteralString","value":"'webDeploy'"},
{"type":"TextWhitespace","value":"\n "},
- {"type":"NameProperty","value":"'params'"},
+ {"type":"LiteralString","value":"'params'"},
{"type":"Punctuation","value":":"},
{"type":"TextWhitespace","value":" "},
{"type":"Punctuation","value":"{"},
{"type":"TextWhitespace","value":"\n "},
- {"type":"NameProperty","value":"'skuName'"},
+ {"type":"LiteralString","value":"'skuName'"},
{"type":"Punctuation","value":":"},
{"type":"TextWhitespace","value":" "},
- {"type":"LiteralStringInterpol","value":"'S1'"},
+ {"type":"LiteralString","value":"'S1'"},
{"type":"TextWhitespace","value":"\n "},
- {"type":"NameProperty","value":"'location'"},
+ {"type":"LiteralString","value":"'location'"},
{"type":"Punctuation","value":":"},
{"type":"TextWhitespace","value":" "},
- {"type":"Text","value":"location"},
+ {"type":"NameVariable","value":"location"},
{"type":"TextWhitespace","value":"\n "},
{"type":"Punctuation","value":"}"},
{"type":"TextWhitespace","value":"\n"},
@@ -134,15 +145,15 @@
{"type":"TextWhitespace","value":"\n\n"},
{"type":"KeywordDeclaration","value":"output"},
{"type":"TextWhitespace","value":" "},
- {"type":"Text","value":"storageEndpoint"},
+ {"type":"NameVariable","value":"storageEndpoint"},
{"type":"TextWhitespace","value":" "},
- {"type":"KeywordType","value":"object"},
+ {"type":"NameVariable","value":"object"},
{"type":"TextWhitespace","value":" "},
{"type":"Punctuation","value":"="},
{"type":"TextWhitespace","value":" "},
- {"type":"Text","value":"stg"},
+ {"type":"NameVariable","value":"stg"},
{"type":"Punctuation","value":"."},
- {"type":"Text","value":"properties"},
+ {"type":"NameVariable","value":"properties"},
{"type":"Punctuation","value":"."},
- {"type":"Text","value":"primaryEndpoints"}
+ {"type":"NameVariable","value":"primaryEndpoints"}
]
diff --git a/lexers/testdata/bicep/bicep-newlinesensitivity.actual b/lexers/testdata/bicep/bicep-newlinesensitivity.actual
new file mode 100644
index 000000000..4a44dcaa4
--- /dev/null
+++ b/lexers/testdata/bicep/bicep-newlinesensitivity.actual
@@ -0,0 +1,65 @@
+@allowed(['abc', 'def', 'ghi'])
+param foo string
+
+var singleLineFunction = concat('abc', 'def')
+
+var multiLineFunction = concat(
+ 'abc',
+ 'def'
+)
+
+var multiLineFunctionUnusualFormatting = concat(
+ 'abc', any(['hello']),
+'def')
+
+var nestedTest = concat(
+concat(
+concat(
+concat(
+concat(
+'level',
+'one'),
+'two'),
+'three'),
+'four'),
+'five')
+
+var singleLineArray = ['abc', 'def']
+var singleLineArrayTrailingCommas = ['abc', 'def',]
+
+var multiLineArray = [
+ 'abc'
+ 'def'
+]
+
+var mixedArray = ['abc', 'def'
+'ghi', 'jkl'
+'lmn']
+
+var singleLineObject = { abc: 'def', ghi: 'jkl'}
+var singleLineObjectTrailingCommas = { abc: 'def', ghi: 'jkl',}
+var multiLineObject = {
+ abc: 'def'
+ ghi: 'jkl'
+}
+var mixedObject = { abc: 'abc', def: 'def'
+ghi: 'ghi', jkl: 'jkl'
+lmn: 'lmn' }
+
+var nestedMixed = {
+ abc: { 'def': 'ghi', abc: 'def', foo: [
+ 'bar', 'blah'
+ ] }
+}
+
+var brokenFormatting = [ /*foo */ 'bar' /*
+
+hello
+
+*/, 'asdfdsf', 12324, /* asdf*/ '', '''
+
+
+'''
+123, 233535
+true
+ ]
diff --git a/lexers/testdata/bicep/bicep-newlinesensitivity.expected b/lexers/testdata/bicep/bicep-newlinesensitivity.expected
new file mode 100644
index 000000000..69c9a73a4
--- /dev/null
+++ b/lexers/testdata/bicep/bicep-newlinesensitivity.expected
@@ -0,0 +1,348 @@
+[
+ {"type":"Punctuation","value":"@"},
+ {"type":"NameFunction","value":"allowed"},
+ {"type":"Punctuation","value":"(["},
+ {"type":"LiteralString","value":"'abc'"},
+ {"type":"Punctuation","value":","},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"LiteralString","value":"'def'"},
+ {"type":"Punctuation","value":","},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"LiteralString","value":"'ghi'"},
+ {"type":"Punctuation","value":"])"},
+ {"type":"TextWhitespace","value":"\n"},
+ {"type":"KeywordDeclaration","value":"param"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"foo"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"string"},
+ {"type":"TextWhitespace","value":"\n\n"},
+ {"type":"KeywordDeclaration","value":"var"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"singleLineFunction"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"="},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameFunction","value":"concat"},
+ {"type":"Punctuation","value":"("},
+ {"type":"LiteralString","value":"'abc'"},
+ {"type":"Punctuation","value":","},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"LiteralString","value":"'def'"},
+ {"type":"Punctuation","value":")"},
+ {"type":"TextWhitespace","value":"\n\n"},
+ {"type":"KeywordDeclaration","value":"var"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"multiLineFunction"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"="},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameFunction","value":"concat"},
+ {"type":"Punctuation","value":"("},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"LiteralString","value":"'abc'"},
+ {"type":"Punctuation","value":","},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"LiteralString","value":"'def'"},
+ {"type":"TextWhitespace","value":"\n"},
+ {"type":"Punctuation","value":")"},
+ {"type":"TextWhitespace","value":"\n\n"},
+ {"type":"KeywordDeclaration","value":"var"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"multiLineFunctionUnusualFormatting"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"="},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameFunction","value":"concat"},
+ {"type":"Punctuation","value":"("},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"LiteralString","value":"'abc'"},
+ {"type":"Punctuation","value":","},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameFunction","value":"any"},
+ {"type":"Punctuation","value":"(["},
+ {"type":"LiteralString","value":"'hello'"},
+ {"type":"Punctuation","value":"]),"},
+ {"type":"TextWhitespace","value":"\n"},
+ {"type":"LiteralString","value":"'def'"},
+ {"type":"Punctuation","value":")"},
+ {"type":"TextWhitespace","value":"\n\n"},
+ {"type":"KeywordDeclaration","value":"var"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"nestedTest"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"="},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameFunction","value":"concat"},
+ {"type":"Punctuation","value":"("},
+ {"type":"TextWhitespace","value":"\n"},
+ {"type":"NameFunction","value":"concat"},
+ {"type":"Punctuation","value":"("},
+ {"type":"TextWhitespace","value":"\n"},
+ {"type":"NameFunction","value":"concat"},
+ {"type":"Punctuation","value":"("},
+ {"type":"TextWhitespace","value":"\n"},
+ {"type":"NameFunction","value":"concat"},
+ {"type":"Punctuation","value":"("},
+ {"type":"TextWhitespace","value":"\n"},
+ {"type":"NameFunction","value":"concat"},
+ {"type":"Punctuation","value":"("},
+ {"type":"TextWhitespace","value":"\n"},
+ {"type":"LiteralString","value":"'level'"},
+ {"type":"Punctuation","value":","},
+ {"type":"TextWhitespace","value":"\n"},
+ {"type":"LiteralString","value":"'one'"},
+ {"type":"Punctuation","value":"),"},
+ {"type":"TextWhitespace","value":"\n"},
+ {"type":"LiteralString","value":"'two'"},
+ {"type":"Punctuation","value":"),"},
+ {"type":"TextWhitespace","value":"\n"},
+ {"type":"LiteralString","value":"'three'"},
+ {"type":"Punctuation","value":"),"},
+ {"type":"TextWhitespace","value":"\n"},
+ {"type":"LiteralString","value":"'four'"},
+ {"type":"Punctuation","value":"),"},
+ {"type":"TextWhitespace","value":"\n"},
+ {"type":"LiteralString","value":"'five'"},
+ {"type":"Punctuation","value":")"},
+ {"type":"TextWhitespace","value":"\n\n"},
+ {"type":"KeywordDeclaration","value":"var"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"singleLineArray"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"="},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"["},
+ {"type":"LiteralString","value":"'abc'"},
+ {"type":"Punctuation","value":","},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"LiteralString","value":"'def'"},
+ {"type":"Punctuation","value":"]"},
+ {"type":"TextWhitespace","value":"\n"},
+ {"type":"KeywordDeclaration","value":"var"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"singleLineArrayTrailingCommas"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"="},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"["},
+ {"type":"LiteralString","value":"'abc'"},
+ {"type":"Punctuation","value":","},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"LiteralString","value":"'def'"},
+ {"type":"Punctuation","value":",]"},
+ {"type":"TextWhitespace","value":"\n\n"},
+ {"type":"KeywordDeclaration","value":"var"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"multiLineArray"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"="},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"["},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"LiteralString","value":"'abc'"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"LiteralString","value":"'def'"},
+ {"type":"TextWhitespace","value":"\n"},
+ {"type":"Punctuation","value":"]"},
+ {"type":"TextWhitespace","value":"\n\n"},
+ {"type":"KeywordDeclaration","value":"var"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"mixedArray"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"="},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"["},
+ {"type":"LiteralString","value":"'abc'"},
+ {"type":"Punctuation","value":","},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"LiteralString","value":"'def'"},
+ {"type":"TextWhitespace","value":"\n"},
+ {"type":"LiteralString","value":"'ghi'"},
+ {"type":"Punctuation","value":","},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"LiteralString","value":"'jkl'"},
+ {"type":"TextWhitespace","value":"\n"},
+ {"type":"LiteralString","value":"'lmn'"},
+ {"type":"Punctuation","value":"]"},
+ {"type":"TextWhitespace","value":"\n\n"},
+ {"type":"KeywordDeclaration","value":"var"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"singleLineObject"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"="},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"{"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"abc"},
+ {"type":"Punctuation","value":":"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"LiteralString","value":"'def'"},
+ {"type":"Punctuation","value":","},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"ghi"},
+ {"type":"Punctuation","value":":"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"LiteralString","value":"'jkl'"},
+ {"type":"Punctuation","value":"}"},
+ {"type":"TextWhitespace","value":"\n"},
+ {"type":"KeywordDeclaration","value":"var"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"singleLineObjectTrailingCommas"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"="},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"{"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"abc"},
+ {"type":"Punctuation","value":":"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"LiteralString","value":"'def'"},
+ {"type":"Punctuation","value":","},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"ghi"},
+ {"type":"Punctuation","value":":"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"LiteralString","value":"'jkl'"},
+ {"type":"Punctuation","value":",}"},
+ {"type":"TextWhitespace","value":"\n"},
+ {"type":"KeywordDeclaration","value":"var"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"multiLineObject"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"="},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"{"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"NameVariable","value":"abc"},
+ {"type":"Punctuation","value":":"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"LiteralString","value":"'def'"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"NameVariable","value":"ghi"},
+ {"type":"Punctuation","value":":"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"LiteralString","value":"'jkl'"},
+ {"type":"TextWhitespace","value":"\n"},
+ {"type":"Punctuation","value":"}"},
+ {"type":"TextWhitespace","value":"\n"},
+ {"type":"KeywordDeclaration","value":"var"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"mixedObject"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"="},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"{"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"abc"},
+ {"type":"Punctuation","value":":"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"LiteralString","value":"'abc'"},
+ {"type":"Punctuation","value":","},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"def"},
+ {"type":"Punctuation","value":":"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"LiteralString","value":"'def'"},
+ {"type":"TextWhitespace","value":"\n"},
+ {"type":"NameVariable","value":"ghi"},
+ {"type":"Punctuation","value":":"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"LiteralString","value":"'ghi'"},
+ {"type":"Punctuation","value":","},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"jkl"},
+ {"type":"Punctuation","value":":"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"LiteralString","value":"'jkl'"},
+ {"type":"TextWhitespace","value":"\n"},
+ {"type":"NameVariable","value":"lmn"},
+ {"type":"Punctuation","value":":"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"LiteralString","value":"'lmn'"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"}"},
+ {"type":"TextWhitespace","value":"\n\n"},
+ {"type":"KeywordDeclaration","value":"var"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"nestedMixed"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"="},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"{"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"NameVariable","value":"abc"},
+ {"type":"Punctuation","value":":"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"{"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"LiteralString","value":"'def'"},
+ {"type":"Punctuation","value":":"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"LiteralString","value":"'ghi'"},
+ {"type":"Punctuation","value":","},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"abc"},
+ {"type":"Punctuation","value":":"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"LiteralString","value":"'def'"},
+ {"type":"Punctuation","value":","},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"foo"},
+ {"type":"Punctuation","value":":"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"["},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"LiteralString","value":"'bar'"},
+ {"type":"Punctuation","value":","},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"LiteralString","value":"'blah'"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"Punctuation","value":"]"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"}"},
+ {"type":"TextWhitespace","value":"\n"},
+ {"type":"Punctuation","value":"}"},
+ {"type":"TextWhitespace","value":"\n\n"},
+ {"type":"KeywordDeclaration","value":"var"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"brokenFormatting"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"="},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"["},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"CommentMultiline","value":"/*foo */"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"LiteralString","value":"'bar'"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Operator","value":"/*"},
+ {"type":"TextWhitespace","value":"\n\n"},
+ {"type":"NameVariable","value":"hello"},
+ {"type":"TextWhitespace","value":"\n\n"},
+ {"type":"Operator","value":"*/"},
+ {"type":"Punctuation","value":","},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"LiteralString","value":"'asdfdsf'"},
+ {"type":"Punctuation","value":","},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"12324"},
+ {"type":"Punctuation","value":","},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"CommentMultiline","value":"/* asdf*/"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"LiteralString","value":"''"},
+ {"type":"Punctuation","value":","},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"LiteralString","value":"'''\n\n\n'''"},
+ {"type":"TextWhitespace","value":"\n"},
+ {"type":"NameVariable","value":"123"},
+ {"type":"Punctuation","value":","},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"233535"},
+ {"type":"TextWhitespace","value":"\n"},
+ {"type":"KeywordConstant","value":"true"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"Punctuation","value":"]"},
+ {"type":"TextWhitespace","value":"\n"}
+]
diff --git a/lexers/testdata/bicep/bicep-output.expected b/lexers/testdata/bicep/bicep-output.expected
index f0f0a9858..8e832dd40 100644
--- a/lexers/testdata/bicep/bicep-output.expected
+++ b/lexers/testdata/bicep/bicep-output.expected
@@ -1,15 +1,15 @@
[
{"type":"KeywordDeclaration","value":"output"},
{"type":"TextWhitespace","value":" "},
- {"type":"Text","value":"storageEndpoint"},
+ {"type":"NameVariable","value":"storageEndpoint"},
{"type":"TextWhitespace","value":" "},
- {"type":"KeywordType","value":"object"},
+ {"type":"NameVariable","value":"object"},
{"type":"TextWhitespace","value":" "},
{"type":"Punctuation","value":"="},
{"type":"TextWhitespace","value":" "},
- {"type":"Text","value":"stg"},
+ {"type":"NameVariable","value":"stg"},
{"type":"Punctuation","value":"."},
- {"type":"Text","value":"properties"},
+ {"type":"NameVariable","value":"properties"},
{"type":"Punctuation","value":"."},
- {"type":"Text","value":"primaryEndpoints"}
+ {"type":"NameVariable","value":"primaryEndpoints"}
]
diff --git a/lexers/testdata/bicep/bicep-parameter-decoration.expected b/lexers/testdata/bicep/bicep-parameter-decoration.expected
index fe15b864f..778149b79 100644
--- a/lexers/testdata/bicep/bicep-parameter-decoration.expected
+++ b/lexers/testdata/bicep/bicep-parameter-decoration.expected
@@ -1,26 +1,27 @@
[
{"type":"Punctuation","value":"@"},
- {"type":"NameDecorator","value":"description"},
+ {"type":"NameFunction","value":"description"},
{"type":"Punctuation","value":"("},
{"type":"LiteralString","value":"'The name of the instance.'"},
{"type":"Punctuation","value":")"},
{"type":"TextWhitespace","value":"\n"},
{"type":"KeywordDeclaration","value":"param"},
{"type":"TextWhitespace","value":" "},
- {"type":"Text","value":"name"},
+ {"type":"NameVariable","value":"name"},
{"type":"TextWhitespace","value":" "},
- {"type":"NameFunction","value":"string"},
+ {"type":"NameVariable","value":"string"},
{"type":"TextWhitespace","value":"\n"},
{"type":"Punctuation","value":"@"},
- {"type":"NameNamespace","value":"sys."},
- {"type":"NameDecorator","value":"description"},
+ {"type":"NameVariable","value":"sys"},
+ {"type":"Punctuation","value":"."},
+ {"type":"NameFunction","value":"description"},
{"type":"Punctuation","value":"("},
{"type":"LiteralString","value":"'The description of the instance to display.'"},
{"type":"Punctuation","value":")"},
{"type":"TextWhitespace","value":"\n"},
{"type":"KeywordDeclaration","value":"param"},
{"type":"TextWhitespace","value":" "},
- {"type":"NameDecorator","value":"description"},
+ {"type":"NameVariable","value":"description"},
{"type":"TextWhitespace","value":" "},
- {"type":"NameFunction","value":"string"}
+ {"type":"NameVariable","value":"string"}
]
diff --git a/lexers/testdata/bicep/bicep-resource-conditional.expected b/lexers/testdata/bicep/bicep-resource-conditional.expected
index 577487610..af212feaf 100644
--- a/lexers/testdata/bicep/bicep-resource-conditional.expected
+++ b/lexers/testdata/bicep/bicep-resource-conditional.expected
@@ -1,60 +1,60 @@
[
{"type":"KeywordDeclaration","value":"resource"},
{"type":"TextWhitespace","value":" "},
- {"type":"Text","value":"sa"},
+ {"type":"NameVariable","value":"sa"},
{"type":"TextWhitespace","value":" "},
{"type":"LiteralString","value":"'Microsoft.Storage/storageAccounts@2019-06-01'"},
{"type":"TextWhitespace","value":" "},
{"type":"Punctuation","value":"="},
{"type":"TextWhitespace","value":" "},
- {"type":"Keyword","value":"if"},
+ {"type":"KeywordDeclaration","value":"if"},
{"type":"TextWhitespace","value":" "},
{"type":"Punctuation","value":"("},
- {"type":"Text","value":"newOrExisting"},
+ {"type":"NameVariable","value":"newOrExisting"},
{"type":"TextWhitespace","value":" "},
{"type":"Operator","value":"=="},
{"type":"TextWhitespace","value":" "},
- {"type":"LiteralStringInterpol","value":"'new'"},
+ {"type":"LiteralString","value":"'new'"},
{"type":"Punctuation","value":")"},
{"type":"TextWhitespace","value":" "},
{"type":"Punctuation","value":"{"},
{"type":"TextWhitespace","value":"\n "},
- {"type":"NameProperty","value":"name"},
+ {"type":"NameVariable","value":"name"},
{"type":"Punctuation","value":":"},
{"type":"TextWhitespace","value":" "},
- {"type":"Text","value":"uniqueStorageName"},
+ {"type":"NameVariable","value":"uniqueStorageName"},
{"type":"TextWhitespace","value":"\n "},
- {"type":"NameProperty","value":"location"},
+ {"type":"NameVariable","value":"location"},
{"type":"Punctuation","value":":"},
{"type":"TextWhitespace","value":" "},
- {"type":"Text","value":"location"},
+ {"type":"NameVariable","value":"location"},
{"type":"TextWhitespace","value":"\n "},
- {"type":"NameProperty","value":"sku"},
+ {"type":"NameVariable","value":"sku"},
{"type":"Punctuation","value":":"},
{"type":"TextWhitespace","value":" "},
{"type":"Punctuation","value":"{"},
{"type":"TextWhitespace","value":"\n "},
- {"type":"NameProperty","value":"name"},
+ {"type":"NameVariable","value":"name"},
{"type":"Punctuation","value":":"},
{"type":"TextWhitespace","value":" "},
- {"type":"Text","value":"storageSKU"},
+ {"type":"NameVariable","value":"storageSKU"},
{"type":"TextWhitespace","value":"\n "},
{"type":"Punctuation","value":"}"},
{"type":"TextWhitespace","value":"\n "},
- {"type":"NameProperty","value":"kind"},
+ {"type":"NameVariable","value":"kind"},
{"type":"Punctuation","value":":"},
{"type":"TextWhitespace","value":" "},
- {"type":"LiteralStringInterpol","value":"'StorageV2'"},
+ {"type":"LiteralString","value":"'StorageV2'"},
{"type":"TextWhitespace","value":"\n "},
- {"type":"NameProperty","value":"properties"},
+ {"type":"NameVariable","value":"properties"},
{"type":"Punctuation","value":":"},
{"type":"TextWhitespace","value":" "},
{"type":"Punctuation","value":"{"},
{"type":"TextWhitespace","value":"\n "},
- {"type":"NameProperty","value":"supportsHttpsTrafficOnly"},
+ {"type":"NameVariable","value":"supportsHttpsTrafficOnly"},
{"type":"Punctuation","value":":"},
{"type":"TextWhitespace","value":" "},
- {"type":"Text","value":"true"},
+ {"type":"KeywordConstant","value":"true"},
{"type":"TextWhitespace","value":"\n "},
{"type":"Punctuation","value":"}"},
{"type":"TextWhitespace","value":"\n"},
diff --git a/lexers/testdata/bicep/bicep-resource-multiple.expected b/lexers/testdata/bicep/bicep-resource-multiple.expected
index 071782580..09c42221d 100644
--- a/lexers/testdata/bicep/bicep-resource-multiple.expected
+++ b/lexers/testdata/bicep/bicep-resource-multiple.expected
@@ -1,66 +1,66 @@
[
{"type":"Punctuation","value":"@"},
- {"type":"NameDecorator","value":"batchSize"},
+ {"type":"NameFunction","value":"batchSize"},
{"type":"Punctuation","value":"("},
- {"type":"Text","value":"3"},
+ {"type":"NameVariable","value":"3"},
{"type":"Punctuation","value":")"},
{"type":"TextWhitespace","value":"\n"},
{"type":"KeywordDeclaration","value":"resource"},
{"type":"TextWhitespace","value":" "},
- {"type":"Text","value":"sa"},
+ {"type":"NameVariable","value":"sa"},
{"type":"TextWhitespace","value":" "},
{"type":"LiteralString","value":"'Microsoft.Storage/storageAccounts@2019-06-01'"},
{"type":"TextWhitespace","value":" "},
{"type":"Punctuation","value":"="},
{"type":"TextWhitespace","value":" "},
{"type":"Punctuation","value":"["},
- {"type":"Keyword","value":"for"},
+ {"type":"KeywordDeclaration","value":"for"},
{"type":"TextWhitespace","value":" "},
- {"type":"Text","value":"storageName"},
+ {"type":"NameVariable","value":"storageName"},
{"type":"TextWhitespace","value":" "},
- {"type":"Keyword","value":"in"},
+ {"type":"KeywordDeclaration","value":"in"},
{"type":"TextWhitespace","value":" "},
- {"type":"NameProperty","value":"storageAccounts"},
+ {"type":"NameVariable","value":"storageAccounts"},
{"type":"Punctuation","value":":"},
{"type":"TextWhitespace","value":" "},
{"type":"Punctuation","value":"{"},
{"type":"TextWhitespace","value":"\n "},
- {"type":"NameProperty","value":"name"},
+ {"type":"NameVariable","value":"name"},
{"type":"Punctuation","value":":"},
{"type":"TextWhitespace","value":" "},
- {"type":"Text","value":"storageName"},
+ {"type":"NameVariable","value":"storageName"},
{"type":"TextWhitespace","value":"\n "},
- {"type":"NameProperty","value":"location"},
+ {"type":"NameVariable","value":"location"},
{"type":"Punctuation","value":":"},
{"type":"TextWhitespace","value":" "},
- {"type":"Text","value":"location"},
+ {"type":"NameVariable","value":"location"},
{"type":"TextWhitespace","value":"\n "},
- {"type":"NameProperty","value":"sku"},
+ {"type":"NameVariable","value":"sku"},
{"type":"Punctuation","value":":"},
{"type":"TextWhitespace","value":" "},
{"type":"Punctuation","value":"{"},
{"type":"TextWhitespace","value":"\n "},
- {"type":"NameProperty","value":"name"},
+ {"type":"NameVariable","value":"name"},
{"type":"Punctuation","value":":"},
{"type":"TextWhitespace","value":" "},
- {"type":"Text","value":"storageSKU"},
+ {"type":"NameVariable","value":"storageSKU"},
{"type":"TextWhitespace","value":"\n "},
{"type":"Punctuation","value":"}"},
{"type":"TextWhitespace","value":"\n "},
- {"type":"NameProperty","value":"kind"},
+ {"type":"NameVariable","value":"kind"},
{"type":"Punctuation","value":":"},
{"type":"TextWhitespace","value":" "},
- {"type":"LiteralStringInterpol","value":"'StorageV2'"},
+ {"type":"LiteralString","value":"'StorageV2'"},
{"type":"TextWhitespace","value":"\n "},
- {"type":"NameProperty","value":"properties"},
+ {"type":"NameVariable","value":"properties"},
{"type":"Punctuation","value":":"},
{"type":"TextWhitespace","value":" "},
{"type":"Punctuation","value":"{"},
{"type":"TextWhitespace","value":"\n "},
- {"type":"NameProperty","value":"supportsHttpsTrafficOnly"},
+ {"type":"NameVariable","value":"supportsHttpsTrafficOnly"},
{"type":"Punctuation","value":":"},
{"type":"TextWhitespace","value":" "},
- {"type":"Text","value":"true"},
+ {"type":"KeywordConstant","value":"true"},
{"type":"TextWhitespace","value":"\n "},
{"type":"Punctuation","value":"}"},
{"type":"TextWhitespace","value":"\n"},
diff --git a/lexers/testdata/bicep/bicep-string-singleline-multiline.expected b/lexers/testdata/bicep/bicep-string-singleline-multiline.expected
index 21510c0d5..d69535dea 100644
--- a/lexers/testdata/bicep/bicep-string-singleline-multiline.expected
+++ b/lexers/testdata/bicep/bicep-string-singleline-multiline.expected
@@ -1,9 +1,9 @@
[
{"type":"KeywordDeclaration","value":"param"},
{"type":"TextWhitespace","value":" "},
- {"type":"Text","value":"exampleString"},
+ {"type":"NameVariable","value":"exampleString"},
{"type":"TextWhitespace","value":" "},
- {"type":"NameFunction","value":"string"},
+ {"type":"NameVariable","value":"string"},
{"type":"TextWhitespace","value":" "},
{"type":"Punctuation","value":"="},
{"type":"TextWhitespace","value":" "},
@@ -11,19 +11,9 @@
{"type":"TextWhitespace","value":"\n\n"},
{"type":"KeywordDeclaration","value":"var"},
{"type":"TextWhitespace","value":" "},
- {"type":"Text","value":"comments"},
+ {"type":"NameVariable","value":"comments"},
{"type":"TextWhitespace","value":" "},
{"type":"Punctuation","value":"="},
{"type":"TextWhitespace","value":" "},
- {"type":"LiteralString","value":"''"},
- {"type":"Error","value":"'"},
- {"type":"TextWhitespace","value":"\n"},
- {"type":"Text","value":"comments"},
- {"type":"TextWhitespace","value":" "},
- {"type":"CommentSingle","value":"// are included"},
- {"type":"TextWhitespace","value":"\n"},
- {"type":"CommentMultiline","value":"/* because everything is read as-is */"},
- {"type":"TextWhitespace","value":"\n"},
- {"type":"LiteralString","value":"''"},
- {"type":"Error","value":"'"}
+ {"type":"LiteralString","value":"'''\ncomments // are included\n/* because everything is read as-is */\n'''"}
]
diff --git a/lexers/testdata/bicep/bicep-targetScope.expected b/lexers/testdata/bicep/bicep-targetScope.expected
index 443b547cd..4d7da8954 100644
--- a/lexers/testdata/bicep/bicep-targetScope.expected
+++ b/lexers/testdata/bicep/bicep-targetScope.expected
@@ -1,25 +1,25 @@
[
- {"type":"Text","value":"targetScope"},
+ {"type":"KeywordDeclaration","value":"targetScope"},
{"type":"TextWhitespace","value":" "},
{"type":"Punctuation","value":"="},
{"type":"TextWhitespace","value":" "},
- {"type":"LiteralStringInterpol","value":"'resourceGroup'"},
+ {"type":"LiteralString","value":"'resourceGroup'"},
{"type":"TextWhitespace","value":"\n\n"},
- {"type":"Text","value":"targetScope"},
+ {"type":"KeywordDeclaration","value":"targetScope"},
{"type":"TextWhitespace","value":" "},
{"type":"Punctuation","value":"="},
{"type":"TextWhitespace","value":" "},
- {"type":"LiteralStringInterpol","value":"'subscription'"},
+ {"type":"LiteralString","value":"'subscription'"},
{"type":"TextWhitespace","value":"\n\n"},
- {"type":"Text","value":"targetScope"},
+ {"type":"KeywordDeclaration","value":"targetScope"},
{"type":"TextWhitespace","value":" "},
{"type":"Punctuation","value":"="},
{"type":"TextWhitespace","value":" "},
- {"type":"LiteralStringInterpol","value":"'managementGroup'"},
+ {"type":"LiteralString","value":"'managementGroup'"},
{"type":"TextWhitespace","value":"\n\n"},
- {"type":"Text","value":"targetScope"},
+ {"type":"KeywordDeclaration","value":"targetScope"},
{"type":"TextWhitespace","value":" "},
{"type":"Punctuation","value":"="},
{"type":"TextWhitespace","value":" "},
- {"type":"LiteralStringInterpol","value":"'tenant'"}
+ {"type":"LiteralString","value":"'tenant'"}
]
diff --git a/lexers/testdata/bicep/bicep-types.actual b/lexers/testdata/bicep/bicep-types.actual
new file mode 100644
index 000000000..5d799f382
--- /dev/null
+++ b/lexers/testdata/bicep/bicep-types.actual
@@ -0,0 +1,7 @@
+type fizz = string
+
+type buzz = fizz[]
+
+type pop = {
+ krispies: 'snap'|'crackle'|'pop'
+}
\ No newline at end of file
diff --git a/lexers/testdata/bicep/bicep-types.expected b/lexers/testdata/bicep/bicep-types.expected
new file mode 100644
index 000000000..dab280d97
--- /dev/null
+++ b/lexers/testdata/bicep/bicep-types.expected
@@ -0,0 +1,37 @@
+[
+ {"type":"KeywordDeclaration","value":"type"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"fizz"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"="},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"string"},
+ {"type":"TextWhitespace","value":"\n\n"},
+ {"type":"KeywordDeclaration","value":"type"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"buzz"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"="},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"fizz"},
+ {"type":"Punctuation","value":"[]"},
+ {"type":"TextWhitespace","value":"\n\n"},
+ {"type":"KeywordDeclaration","value":"type"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"NameVariable","value":"pop"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"="},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"Punctuation","value":"{"},
+ {"type":"TextWhitespace","value":"\n "},
+ {"type":"NameVariable","value":"krispies"},
+ {"type":"Punctuation","value":":"},
+ {"type":"TextWhitespace","value":" "},
+ {"type":"LiteralString","value":"'snap'"},
+ {"type":"Punctuation","value":"|"},
+ {"type":"LiteralString","value":"'crackle'"},
+ {"type":"Punctuation","value":"|"},
+ {"type":"LiteralString","value":"'pop'"},
+ {"type":"TextWhitespace","value":"\n"},
+ {"type":"Punctuation","value":"}"}
+]
diff --git a/lexers/testdata/bicep/bicep-variable-string-interpolation.expected b/lexers/testdata/bicep/bicep-variable-string-interpolation.expected
index b63a48de2..f2e8b6985 100644
--- a/lexers/testdata/bicep/bicep-variable-string-interpolation.expected
+++ b/lexers/testdata/bicep/bicep-variable-string-interpolation.expected
@@ -1,17 +1,28 @@
[
{"type":"KeywordDeclaration","value":"var"},
{"type":"TextWhitespace","value":" "},
- {"type":"Text","value":"storagePrefix"},
+ {"type":"NameVariable","value":"storagePrefix"},
{"type":"TextWhitespace","value":" "},
{"type":"Punctuation","value":"="},
{"type":"TextWhitespace","value":" "},
- {"type":"LiteralStringInterpol","value":"'dev'"},
+ {"type":"LiteralString","value":"'dev'"},
{"type":"TextWhitespace","value":"\n"},
{"type":"KeywordDeclaration","value":"var"},
{"type":"TextWhitespace","value":" "},
- {"type":"Text","value":"uniqueStorageName"},
+ {"type":"NameVariable","value":"uniqueStorageName"},
{"type":"TextWhitespace","value":" "},
{"type":"Punctuation","value":"="},
{"type":"TextWhitespace","value":" "},
- {"type":"LiteralStringInterpol","value":"'${storagePrefix}${uniqueString(resourceGroup().id)}'"}
+ {"type":"LiteralString","value":"'"},
+ {"type":"LiteralStringInterpol","value":"${"},
+ {"type":"NameVariable","value":"storagePrefix"},
+ {"type":"LiteralStringInterpol","value":"}${"},
+ {"type":"NameFunction","value":"uniqueString"},
+ {"type":"Punctuation","value":"("},
+ {"type":"NameFunction","value":"resourceGroup"},
+ {"type":"Punctuation","value":"()."},
+ {"type":"NameVariable","value":"id"},
+ {"type":"Punctuation","value":")"},
+ {"type":"LiteralStringInterpol","value":"}"},
+ {"type":"LiteralString","value":"'"}
]