diff --git a/package-lock.json b/package-lock.json index e538495..20b4479 100644 --- a/package-lock.json +++ b/package-lock.json @@ -584,39 +584,28 @@ } }, "node_modules/@fink/larix": { - "version": "18.0.1", - "resolved": "https://registry.npmjs.org/@fink/larix/-/larix-18.0.1.tgz", - "integrity": "sha512-CkUMMpGR6GuVs3NYNNkCUfl4f3oCLqax2U5WYd7MsXa10xDq4ngefEpP80Mz8JzLleH0mRCgUEk0KaB4up/SWw==", + "version": "18.1.0", + "resolved": "https://registry.npmjs.org/@fink/larix/-/larix-18.1.0.tgz", + "integrity": "sha512-rAV78XQG+EUrOPWc4fVWz43sYeLIBvMLIHOE1+W0t1AQi75zOdpw+aLbeQHS0zxce3n1Db5DdNtf8J2a6Wd1qQ==", "dependencies": { "@fink/prattler": "^7.0.0", - "@fink/std-lib": "7.0.1" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@fink/larix/node_modules/@fink/std-lib": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@fink/std-lib/-/std-lib-7.0.1.tgz", - "integrity": "sha512-bV0RYDnCdhO8M3xdVWAtHl5UmXPHCrBe8Ahan4KcYI/BC4ivnFS1lzMfcHDZGeWm+yK9JLHm5I4wpkL0p+oc7w==", - "dependencies": { - "@fink/js-interop": "^2.2.0" + "@fink/std-lib": "^8.0.1" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@fink/loxia": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/@fink/loxia/-/loxia-21.1.1.tgz", - "integrity": "sha512-674n7qiV57rSGyzRJ8K/iufLqgU0/Yn6LZ0/5b+r7NmWvtallHkVpGdNUyXwfOY9vxYuoPwhQZaZA7zNoRYiHw==", + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/@fink/loxia/-/loxia-21.2.0.tgz", + "integrity": "sha512-Cx2y0NkiB9SdmX/plNvWyn9JRToYg18F7k6pk07RJecBRSrcC7hO/f5Lk+2DYeU1YjzoztYCR8xR2XIwNmJwrw==", "dependencies": { "@babel/core": "^7.10.5", "@babel/traverse": "^7.10.5", "@babel/types": "^7.10.5", "@fink/js-interop": "^2.2.0", "@fink/snippet": "^2.2.0", - "@fink/std-lib": "^7.0.0" + "@fink/std-lib": "^8.0.1" }, "engines": { "node": ">=14.0.0" @@ -625,48 +614,26 @@ "@fink/js-interop": ">2.2" } }, - "node_modules/@fink/loxia/node_modules/@fink/std-lib": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@fink/std-lib/-/std-lib-7.0.1.tgz", - "integrity": "sha512-bV0RYDnCdhO8M3xdVWAtHl5UmXPHCrBe8Ahan4KcYI/BC4ivnFS1lzMfcHDZGeWm+yK9JLHm5I4wpkL0p+oc7w==", - "dependencies": { - "@fink/js-interop": "^2.2.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, "node_modules/@fink/prattler": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@fink/prattler/-/prattler-7.0.0.tgz", - "integrity": "sha512-LMWP9mGHaOWDx2Epeb3l0wV0j6pK3Jw+YoEBI5vsZsGGnzFVhZjW8Eukoru2J1SiApS8hCKK9I0ONYt6dyI5FA==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@fink/prattler/-/prattler-7.1.0.tgz", + "integrity": "sha512-rUVjsaLmirjvc7GQfV00WPa5mzqyTklgI5Xi5RAaW/iz55GoQjDhXQZXFITm92wm8bUjz/Lba1sz7HYgVMlxWg==", "dependencies": { "@fink/require-hook": "^6.2.0", "@fink/snippet": "^2.2.0", - "@fink/std-lib": "^7.0.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@fink/prattler/node_modules/@fink/std-lib": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@fink/std-lib/-/std-lib-7.0.1.tgz", - "integrity": "sha512-bV0RYDnCdhO8M3xdVWAtHl5UmXPHCrBe8Ahan4KcYI/BC4ivnFS1lzMfcHDZGeWm+yK9JLHm5I4wpkL0p+oc7w==", - "dependencies": { - "@fink/js-interop": "^2.2.0" + "@fink/std-lib": "^8.0.1" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@fink/require-hook": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/@fink/require-hook/-/require-hook-6.2.0.tgz", - "integrity": "sha512-rpBb1c3Q50xwhTZoBYdaDwVAi4Qv73TOa3DIDuQhLak9nQA9VrleaZaPOQgp4kKnBIEBIObQP3hCU6gft3ORiA==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/@fink/require-hook/-/require-hook-6.3.0.tgz", + "integrity": "sha512-lH1DGYiqiDbCgXISy/vkVeiy8Cw9+xPuPkv/6qkcW2k/Us8RVfQHliJcpPeFoeG5+/ZjNYCUTf6dEOIWYefnOg==", "dependencies": { "@fink/js-interop": "^2.3.1", - "@fink/std-lib": "^7.0.1", + "@fink/std-lib": "^8.0.1", "pirates": "^4.0.1", "source-map-support": "^0.5.16" }, @@ -678,34 +645,12 @@ "@fink/loxia": ">=14.0.0" } }, - "node_modules/@fink/require-hook/node_modules/@fink/std-lib": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@fink/std-lib/-/std-lib-7.0.1.tgz", - "integrity": "sha512-bV0RYDnCdhO8M3xdVWAtHl5UmXPHCrBe8Ahan4KcYI/BC4ivnFS1lzMfcHDZGeWm+yK9JLHm5I4wpkL0p+oc7w==", - "dependencies": { - "@fink/js-interop": "^2.2.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, "node_modules/@fink/snippet": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@fink/snippet/-/snippet-2.2.1.tgz", - "integrity": "sha512-2T0J0Ld41uS6OL3+hI3MgZb7yPo8lV8baD2Kk0B++XHbbww0EPf3+C9KHfbGnGdNieZDfDduf0MM+GwxFC+IHw==", - "dependencies": { - "@fink/std-lib": "^7.0.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@fink/snippet/node_modules/@fink/std-lib": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@fink/std-lib/-/std-lib-7.0.1.tgz", - "integrity": "sha512-bV0RYDnCdhO8M3xdVWAtHl5UmXPHCrBe8Ahan4KcYI/BC4ivnFS1lzMfcHDZGeWm+yK9JLHm5I4wpkL0p+oc7w==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@fink/snippet/-/snippet-2.2.2.tgz", + "integrity": "sha512-J+pwfwABLP3nKH9uRHeENveewHNw0IjyOY6WGp1QLG6cwRshAjKZcajG0IzJFztKvyLSW4TFmmv7oNeUPju/Kg==", "dependencies": { - "@fink/js-interop": "^2.2.0" + "@fink/std-lib": "^8.0.1" }, "engines": { "node": ">=14.0.0" @@ -16440,11 +16385,6 @@ "safer-buffer": "^2.0.2", "tweetnacl": "~0.14.0" }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, "engines": { "node": ">=0.10.0" } @@ -18353,104 +18293,54 @@ "integrity": "sha512-so72Fzpoukfe/0TvrcFj1EzLVOa4Od/E0dGDKNeq2Rh1GTOXGKNmqgyp4onkM2y714d4LVa2VWYGxiXuuxlvvw==" }, "@fink/larix": { - "version": "18.0.1", - "resolved": "https://registry.npmjs.org/@fink/larix/-/larix-18.0.1.tgz", - "integrity": "sha512-CkUMMpGR6GuVs3NYNNkCUfl4f3oCLqax2U5WYd7MsXa10xDq4ngefEpP80Mz8JzLleH0mRCgUEk0KaB4up/SWw==", + "version": "18.1.0", + "resolved": "https://registry.npmjs.org/@fink/larix/-/larix-18.1.0.tgz", + "integrity": "sha512-rAV78XQG+EUrOPWc4fVWz43sYeLIBvMLIHOE1+W0t1AQi75zOdpw+aLbeQHS0zxce3n1Db5DdNtf8J2a6Wd1qQ==", "requires": { "@fink/prattler": "^7.0.0", - "@fink/std-lib": "7.0.1" - }, - "dependencies": { - "@fink/std-lib": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@fink/std-lib/-/std-lib-7.0.1.tgz", - "integrity": "sha512-bV0RYDnCdhO8M3xdVWAtHl5UmXPHCrBe8Ahan4KcYI/BC4ivnFS1lzMfcHDZGeWm+yK9JLHm5I4wpkL0p+oc7w==", - "requires": { - "@fink/js-interop": "^2.2.0" - } - } + "@fink/std-lib": "^8.0.1" } }, "@fink/loxia": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/@fink/loxia/-/loxia-21.1.1.tgz", - "integrity": "sha512-674n7qiV57rSGyzRJ8K/iufLqgU0/Yn6LZ0/5b+r7NmWvtallHkVpGdNUyXwfOY9vxYuoPwhQZaZA7zNoRYiHw==", + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/@fink/loxia/-/loxia-21.2.0.tgz", + "integrity": "sha512-Cx2y0NkiB9SdmX/plNvWyn9JRToYg18F7k6pk07RJecBRSrcC7hO/f5Lk+2DYeU1YjzoztYCR8xR2XIwNmJwrw==", "requires": { "@babel/core": "^7.10.5", "@babel/traverse": "^7.10.5", "@babel/types": "^7.10.5", "@fink/js-interop": "^2.2.0", "@fink/snippet": "^2.2.0", - "@fink/std-lib": "^7.0.0" - }, - "dependencies": { - "@fink/std-lib": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@fink/std-lib/-/std-lib-7.0.1.tgz", - "integrity": "sha512-bV0RYDnCdhO8M3xdVWAtHl5UmXPHCrBe8Ahan4KcYI/BC4ivnFS1lzMfcHDZGeWm+yK9JLHm5I4wpkL0p+oc7w==", - "requires": { - "@fink/js-interop": "^2.2.0" - } - } + "@fink/std-lib": "^8.0.1" } }, "@fink/prattler": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@fink/prattler/-/prattler-7.0.0.tgz", - "integrity": "sha512-LMWP9mGHaOWDx2Epeb3l0wV0j6pK3Jw+YoEBI5vsZsGGnzFVhZjW8Eukoru2J1SiApS8hCKK9I0ONYt6dyI5FA==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@fink/prattler/-/prattler-7.1.0.tgz", + "integrity": "sha512-rUVjsaLmirjvc7GQfV00WPa5mzqyTklgI5Xi5RAaW/iz55GoQjDhXQZXFITm92wm8bUjz/Lba1sz7HYgVMlxWg==", "requires": { "@fink/require-hook": "^6.2.0", "@fink/snippet": "^2.2.0", - "@fink/std-lib": "^7.0.0" - }, - "dependencies": { - "@fink/std-lib": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@fink/std-lib/-/std-lib-7.0.1.tgz", - "integrity": "sha512-bV0RYDnCdhO8M3xdVWAtHl5UmXPHCrBe8Ahan4KcYI/BC4ivnFS1lzMfcHDZGeWm+yK9JLHm5I4wpkL0p+oc7w==", - "requires": { - "@fink/js-interop": "^2.2.0" - } - } + "@fink/std-lib": "^8.0.1" } }, "@fink/require-hook": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/@fink/require-hook/-/require-hook-6.2.0.tgz", - "integrity": "sha512-rpBb1c3Q50xwhTZoBYdaDwVAi4Qv73TOa3DIDuQhLak9nQA9VrleaZaPOQgp4kKnBIEBIObQP3hCU6gft3ORiA==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/@fink/require-hook/-/require-hook-6.3.0.tgz", + "integrity": "sha512-lH1DGYiqiDbCgXISy/vkVeiy8Cw9+xPuPkv/6qkcW2k/Us8RVfQHliJcpPeFoeG5+/ZjNYCUTf6dEOIWYefnOg==", "requires": { "@fink/js-interop": "^2.3.1", - "@fink/std-lib": "^7.0.1", + "@fink/std-lib": "^8.0.1", "pirates": "^4.0.1", "source-map-support": "^0.5.16" - }, - "dependencies": { - "@fink/std-lib": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@fink/std-lib/-/std-lib-7.0.1.tgz", - "integrity": "sha512-bV0RYDnCdhO8M3xdVWAtHl5UmXPHCrBe8Ahan4KcYI/BC4ivnFS1lzMfcHDZGeWm+yK9JLHm5I4wpkL0p+oc7w==", - "requires": { - "@fink/js-interop": "^2.2.0" - } - } } }, "@fink/snippet": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@fink/snippet/-/snippet-2.2.1.tgz", - "integrity": "sha512-2T0J0Ld41uS6OL3+hI3MgZb7yPo8lV8baD2Kk0B++XHbbww0EPf3+C9KHfbGnGdNieZDfDduf0MM+GwxFC+IHw==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@fink/snippet/-/snippet-2.2.2.tgz", + "integrity": "sha512-J+pwfwABLP3nKH9uRHeENveewHNw0IjyOY6WGp1QLG6cwRshAjKZcajG0IzJFztKvyLSW4TFmmv7oNeUPju/Kg==", "requires": { - "@fink/std-lib": "^7.0.0" - }, - "dependencies": { - "@fink/std-lib": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/@fink/std-lib/-/std-lib-7.0.1.tgz", - "integrity": "sha512-bV0RYDnCdhO8M3xdVWAtHl5UmXPHCrBe8Ahan4KcYI/BC4ivnFS1lzMfcHDZGeWm+yK9JLHm5I4wpkL0p+oc7w==", - "requires": { - "@fink/js-interop": "^2.2.0" - } - } + "@fink/std-lib": "^8.0.1" } }, "@fink/std-lib": { diff --git a/src/ast/analyze.fnk b/src/ast/analyze.fnk index 3d3e684..bed4fc5 100644 --- a/src/ast/analyze.fnk +++ b/src/ast/analyze.fnk @@ -117,6 +117,17 @@ is_binding_ident = fn expr, ctx: false +has_kv_parent = fn expr, ctx: + parent = get_parent expr, ctx + match parent: + {type: 'rec:kv', left: expr}: + true + {type: 'member'}: + has_kv_parent parent, ctx + else: + false + + is_referencing = fn expr, ctx: match expr: @@ -128,6 +139,7 @@ is_referencing = fn expr, ctx: {type: 'rec:kv', left: expr, right: false}: true {type: 'rec:kv', left: expr}: false {type: 'member', right: expr}: false + {type: 'member', left: expr}: not has_kv_parent parent, ctx {type: 'jsx:attr', name: expr, value: ? != false}: false else: true diff --git a/src/ast/analyze.test.fnk b/src/ast/analyze.test.fnk index 8366772..f878391 100644 --- a/src/ast/analyze.test.fnk +++ b/src/ast/analyze.test.fnk @@ -61,7 +61,7 @@ source = ' ni + undef {ni, na: {nu}} = {foo} - {(ni): nini=nu} = {foo: bar, (ni): nu} + {(ni): nini=nu, foo.bar: spam} = {foo: bar, (ni): nu, foo.bar.spam: 134} match bar foo: nu: @@ -80,8 +80,8 @@ source = ' try: foo - [ni] = [1234, "spam"] - na = [...ni] + [ni, ..., nu] = [1234, "spam"] + na = [...ni, false, true] fn foo: {foo} map await ham: diff --git a/src/ast/analyze.test.fnk.snap b/src/ast/analyze.test.fnk.snap index ca3511d..0f0ec7c 100644 --- a/src/ast/analyze.test.fnk.snap +++ b/src/ast/analyze.test.fnk.snap @@ -10,10 +10,12 @@ Array [ "ident:ni@7:1-7:3", "ident:nu@7:10-7:12", "ident:nini@8:7-8:11", + "ident:spam@8:25-8:29", "ident:ni@12:4-12:6", "ident:Spam@18:0-18:4", "ident:children@18:11-18:19", "ident:ni@27:1-27:3", + "ident:nu@27:10-27:12", "ident:na@28:0-28:2", "ident:foo@29:3-29:6", "ident:ham@31:10-31:13", @@ -23,6 +25,7 @@ Array [ exports[`analyze gets duplicate bindings 1`] = ` Array [ "ident:ni@27:1-27:3 module@1:0-33:0", + "ident:nu@27:10-27:12 module@1:0-33:0", ] `; @@ -33,7 +36,7 @@ Array [ "ident:foo@10:10-10:13 -> ident:foo@1:0-1:3", "ident:foo@12:9-12:12 -> ident:foo@1:0-1:3", "ident:foo@25:2-25:5 -> ident:foo@1:0-1:3", - "ident:bar@8:24-8:27 -> ident:bar@3:0-3:3", + "ident:bar@8:39-8:42 -> ident:bar@3:0-3:3", "ident:bar@10:6-10:9 -> ident:bar@3:0-3:3", "ident:spam@4:7-4:11 -> ident:spam@3:9-3:13", "ident:ham@4:20-4:23 -> ident:ham@3:19-3:22", @@ -42,10 +45,10 @@ Array [ "ident:div@16:1-16:4 -> unbound", "ident:ham@21:24-21:27 -> unbound", "ident:ni@8:2-8:4 -> ident:ni@7:1-7:3", - "ident:ni@8:30-8:32 -> ident:ni@7:1-7:3", + "ident:ni@8:45-8:47 -> ident:ni@7:1-7:3", "ident:ni@21:6-21:8 -> ident:ni@7:1-7:3", "ident:nu@8:12-8:14 -> ident:nu@7:10-7:12", - "ident:nu@8:35-8:37 -> ident:nu@7:10-7:12", + "ident:nu@8:50-8:52 -> ident:nu@7:10-7:12", "ident:nu@11:2-11:4 -> ident:nu@7:10-7:12", "ident:nu@21:15-21:17 -> ident:nu@7:10-7:12", "ident:ni@13:8-13:10 -> ident:ni@12:4-12:6", @@ -67,10 +70,12 @@ Array [ "ident:ni@7:1-7:3 module@1:0-33:0", "ident:nu@7:10-7:12 module@1:0-33:0", "ident:nini@8:7-8:11 module@1:0-33:0", + "ident:spam@8:25-8:29 module@1:0-33:0", "ident:ni@12:4-12:6 match:expr@11:2-13:11", "ident:Spam@18:0-18:4 module@1:0-33:0", "ident:children@18:11-18:19 block:fn@18:7-19:17", "ident:ni@27:1-27:3 module@1:0-33:0", + "ident:nu@27:10-27:12 module@1:0-33:0", "ident:na@28:0-28:2 module@1:0-33:0", "ident:foo@29:3-29:6 block:fn@29:0-29:13", "ident:ham@31:10-31:13 block:map@31:0-33:0", diff --git a/src/ast/traverse.fnk b/src/ast/traverse.fnk index 227fe85..3597fe9 100644 --- a/src/ast/traverse.fnk +++ b/src/ast/traverse.fnk @@ -34,10 +34,13 @@ get_child_exprs = fn expr: {type: 'rec:kv', right: false}: [expr.left] + {type: 'spread', right: false}: + [] + {left: {}, right: {}}: [expr.left, expr.right] - # spread + # spread, await {right: {}}: [expr.right] diff --git a/src/lang/literals/keywords.test.fnk b/src/lang/literals/keywords.test.fnk index 1161bfc..f391b5e 100644 --- a/src/lang/literals/keywords.test.fnk +++ b/src/lang/literals/keywords.test.fnk @@ -20,3 +20,12 @@ describe 'keywords', fn: bar = falseish ' to_match_snapshot + + + it 'parses inside exprs', fn: + expect + parse ' + [false, true] + {false: true, true: false} + ' + to_match_snapshot diff --git a/src/lang/literals/keywords.test.fnk.snap b/src/lang/literals/keywords.test.fnk.snap index 3942c9c..870986b 100644 --- a/src/lang/literals/keywords.test.fnk.snap +++ b/src/lang/literals/keywords.test.fnk.snap @@ -10,6 +10,20 @@ module (1:0-3:0) ident (2:6-2:14) falseish `; +exports[`keywords parses inside exprs 1`] = ` +module (1:0-3:0) + list (1:0-1:13) + literal (1:1-1:6) false + literal (1:8-1:12) true + rec (2:0-2:26) + rec:kv (2:1-2:12) + ident (2:1-2:6) false + literal (2:8-2:12) true + rec:kv (2:14-2:25) + ident (2:14-2:18) true + literal (2:20-2:25) false +`; + exports[`keywords parses true 1`] = ` module (1:0-3:0) assign = (1:0-1:10) diff --git a/src/lang/prop-access/init.test.fnk.snap b/src/lang/prop-access/init.test.fnk.snap index fda7e14..571b154 100644 --- a/src/lang/prop-access/init.test.fnk.snap +++ b/src/lang/prop-access/init.test.fnk.snap @@ -253,5 +253,5 @@ block fn (1:0-1:22) ident (1:7-1:10) rec ident (1:11-1:15) list : - ident (1:17-1:22) false + literal (1:17-1:22) false `; diff --git a/src/lexer/tokens.fnk b/src/lexer/tokens.fnk index bc021b8..4b973f7 100644 --- a/src/lexer/tokens.fnk +++ b/src/lexer/tokens.fnk @@ -23,11 +23,12 @@ get_loc = fn start, text: fink_lex = rx' ^( - (?( + (?( fn|match|fold|unfold|else|map|filter|while|until - |await|import|try|throw|rec|list|true|false|pipe - |in|or|and|not + |await|import|try|throw|rec|list|pipe )(?=\s|:)) + |(?(in|or|and|not)(?=\s)) + |(?(true|false)\b) |(?\s+) |(?#.*?(?=\n)) |(?---[\s\S]*?---) @@ -97,6 +98,8 @@ jsx_elem_lex = rx' |(?#.*?(?=\n)) |(?---[\s\S]*?---) + |(?(true|false)\b) + |(?\'|") |(?/>) diff --git a/src/lexer/tokens.test.fnk b/src/lexer/tokens.test.fnk index 13900b5..9db3bcd 100644 --- a/src/lexer/tokens.test.fnk +++ b/src/lexer/tokens.test.fnk @@ -36,6 +36,10 @@ describe 'tokenizer', fn: "shrub" "ni \${ham} spam" foo.bar ...ni + [true, false] + true, false + a not b + foo in bar ' to_match_snapshot diff --git a/src/lexer/tokens.test.fnk.snap b/src/lexer/tokens.test.fnk.snap index c3c6c89..75a37cb 100644 --- a/src/lexer/tokens.test.fnk.snap +++ b/src/lexer/tokens.test.fnk.snap @@ -255,7 +255,45 @@ ident (97-99) (8:11-8:13) \\"ni\\" ignorable (99-100) (8:13-9:0) \\"\\\\n\\" -end (100-100) (9:0-9:0) +[ (100-101) (9:0-9:1) +true (101-105) (9:1-9:5) +, (105-106) (9:5-9:6) +ignorable (106-107) (9:6-9:7) + \\" \\" +false (107-112) (9:7-9:12) +] (112-113) (9:12-9:13) +ignorable (113-114) (9:13-10:0) + \\"\\\\n\\" +true (114-118) (10:0-10:4) +, (118-119) (10:4-10:5) +ignorable (119-120) (10:5-10:6) + \\" \\" +false (120-125) (10:6-10:11) +ignorable (125-126) (10:11-11:0) + \\"\\\\n\\" +ident (126-127) (11:0-11:1) + \\"a\\" +ignorable (127-128) (11:1-11:2) + \\" \\" +not (128-131) (11:2-11:5) +ignorable (131-132) (11:5-11:6) + \\" \\" +ident (132-133) (11:6-11:7) + \\"b\\" +ignorable (133-134) (11:7-12:0) + \\"\\\\n\\" +ident (134-137) (12:0-12:3) + \\"foo\\" +ignorable (137-138) (12:3-12:4) + \\" \\" +in (138-140) (12:4-12:6) +ignorable (140-141) (12:6-12:7) + \\" \\" +ident (141-144) (12:7-12:10) + \\"bar\\" +ignorable (144-145) (12:10-13:0) + \\"\\\\n\\" +end (145-145) (13:0-13:0) \\"\\"" `;