diff --git a/grammar.js b/grammar.js
index 88553f9..1453cf6 100644
--- a/grammar.js
+++ b/grammar.js
@@ -7,11 +7,116 @@
///
// @ts-check
+const regexp = {
+ ascii_whitespace: /[\u0009\u000A\u000B\u000C\u000D\u0020]/,
+ symbol_seq: /[^()\[\]{};"'`~:.\d\u0009\u000A\u000B\u000C\u000D\u0020][^()\[\]{};"'`~.\u0009\u000A\u000B\u000C\u000D\u0020]*/
+}
+const symbol_seq_immediate = token.immediate(regexp.symbol_seq)
+const digitpart = seq(/\d/, repeat(/_*\d+/))
+const pointfloat = choice(
+ seq(optional(digitpart), '.', digitpart),
+ seq(digitpart, '.'),
+)
+const exponentfloat = seq(
+ choice(digitpart, pointfloat),
+ seq(/[eE]/, optional(/[+-]/), digitpart),
+)
+
module.exports = grammar({
- name: "hy",
+ name: 'hy',
+
+ extras: $ => [
+ regexp.ascii_whitespace,
+ $.comment,
+ ],
+
+ // word: $ => $.symbol,
rules: {
- // TODO: add the actual grammar rules
- source_file: $ => "hello"
+ source_file: $ => seq(optional($.shebang), repeat($._element)),
+
+ shebang: _ => token(seq('#!', /.*/)),
+ _element: $ => choice($._form, $.discard, $.comment),
+
+ _form: $ => seq(optional($._sugar), choice($._identifier, $._sequence, $._string)),
+ discard: $ => seq('#_', $._form),
+ comment: _ => token(seq(';', /.*/)),
+
+ _sugar: _ => choice(
+ field('quote', '\''),
+ field('quasiquote', '`'),
+ field('unqoute', '~'),
+ field('unqoute_splice', '~@'),
+ field('unpack_iterable', '#*'),
+ field('unpack_mapping', '#**'),
+ ),
+ _identifier: $ => choice(
+ $._numeric_literal,
+ $.keyword,
+ $.symbol,
+ $.dotted_identifier,
+ ),
+ _sequence: $ => choice($.expression, $.list, $.tuple, $.set, $.dictionary),
+ _string: $ => choice($.string, $.bracket_string),
+
+ _numeric_literal: $ => choice($.integer, $.float, $.complex),
+ keyword: _ => token(seq(':', optional(regexp.symbol_seq))),
+ dotted_identifier: _ => prec(1, choice(
+ seq(
+ /[.]+/,
+ symbol_seq_immediate,
+ repeat(seq(token.immediate('.'), symbol_seq_immediate)),
+ ),
+ seq(
+ regexp.symbol_seq,
+ repeat1((seq(token.immediate('.'), symbol_seq_immediate)))),
+ )),
+ symbol: _ => choice(
+ /[.]+/,
+ regexp.symbol_seq,
+ ),
+
+ expression: $ => seq('(', repeat1($._element), ')'),
+ list: $ => seq('[', repeat($._element), ']'),
+ tuple: $ => seq('#(', repeat($._element), ')'),
+ set: $ => seq('#{', repeat($._element), '}'),
+ dictionary: $ => seq(
+ '{',
+ repeat(
+ seq(
+ field("key", $._element),
+ field("value", $._element),
+ ),
+ ),
+ '}'
+ ),
+
+ string: _ => token(seq(
+ /[rbf]{0,3}/,
+ '"',
+ /[^"]*/,
+ '"'
+ )),
+ bracket_string: _ => token(seq('#[[', /[^\]]*/, ']]')),
+
+ integer: $ => choice($._decinteger, $._bininteger, $._octinteger, $._hexinteger),
+ float: _ => token(prec(1, seq(
+ optional(/[+-]/),
+ choice(pointfloat, exponentfloat, 'Inf', 'NaN'),
+ ))),
+ complex: _ => token(prec(1, seq(
+ optional(/[+-]/),
+ choice(pointfloat, exponentfloat, digitpart, 'Inf', 'NaN'),
+ /[+-]/,
+ seq(
+ choice(pointfloat, exponentfloat, digitpart, 'NaN', 'Inf'),
+ /[jJ]/,
+ ),
+ ))),
+
+ _decinteger: _ => token(prec(1, seq(optional(/[+-]/), /\d/, repeat(/[,_]*\d+/)))),
+ _bininteger: _ => token(prec(1, seq('0', /[bB]/, repeat(/[,_]*[01]+/)))),
+ _octinteger: _ => token(prec(1, seq('0', /[oO]/, repeat(/[,_]*[0-7]+/)))),
+ _hexinteger: _ => token(prec(1, seq('0', /[xX]/, repeat(/[,_]*[\da-fA-F]+/)))),
}
});
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 0000000..81f207d
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,369 @@
+{
+ "name": "tree-sitter-hy",
+ "version": "0.1.0",
+ "lockfileVersion": 3,
+ "requires": true,
+ "packages": {
+ "": {
+ "name": "tree-sitter-hy",
+ "version": "0.1.0",
+ "hasInstallScript": true,
+ "license": "MIT",
+ "dependencies": {
+ "node-addon-api": "^8.2.1",
+ "node-gyp-build": "^4.8.2"
+ },
+ "devDependencies": {
+ "prebuildify": "^6.0.1",
+ "tree-sitter-cli": "^0.25.3"
+ },
+ "peerDependencies": {
+ "tree-sitter": "^0.21.1"
+ },
+ "peerDependenciesMeta": {
+ "tree-sitter": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/base64-js": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/bl": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
+ "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "buffer": "^5.5.0",
+ "inherits": "^2.0.4",
+ "readable-stream": "^3.4.0"
+ }
+ },
+ "node_modules/buffer": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.1.13"
+ }
+ },
+ "node_modules/chownr": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
+ "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/end-of-stream": {
+ "version": "1.4.4",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
+ "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "once": "^1.4.0"
+ }
+ },
+ "node_modules/fs-constants": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
+ "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/ieee754": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/minimist": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/mkdirp-classic": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
+ "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/node-abi": {
+ "version": "3.74.0",
+ "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.74.0.tgz",
+ "integrity": "sha512-c5XK0MjkGBrQPGYG24GBADZud0NCbznxNx0ZkS+ebUTrmV1qTDxPxSL8zEAPURXSbLRWVexxmP4986BziahL5w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "semver": "^7.3.5"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/node-addon-api": {
+ "version": "8.3.1",
+ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-8.3.1.tgz",
+ "integrity": "sha512-lytcDEdxKjGJPTLEfW4mYMigRezMlyJY8W4wxJK8zE533Jlb8L8dRuObJFWg2P+AuOIxoCgKF+2Oq4d4Zd0OUA==",
+ "license": "MIT",
+ "engines": {
+ "node": "^18 || ^20 || >= 21"
+ }
+ },
+ "node_modules/node-gyp-build": {
+ "version": "4.8.4",
+ "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.4.tgz",
+ "integrity": "sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==",
+ "license": "MIT",
+ "bin": {
+ "node-gyp-build": "bin.js",
+ "node-gyp-build-optional": "optional.js",
+ "node-gyp-build-test": "build-test.js"
+ }
+ },
+ "node_modules/npm-run-path": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-3.1.0.tgz",
+ "integrity": "sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "path-key": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "wrappy": "1"
+ }
+ },
+ "node_modules/path-key": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/prebuildify": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/prebuildify/-/prebuildify-6.0.1.tgz",
+ "integrity": "sha512-8Y2oOOateom/s8dNBsGIcnm6AxPmLH4/nanQzL5lQMU+sC0CMhzARZHizwr36pUPLdvBnOkCNQzxg4djuFSgIw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "minimist": "^1.2.5",
+ "mkdirp-classic": "^0.5.3",
+ "node-abi": "^3.3.0",
+ "npm-run-path": "^3.1.0",
+ "pump": "^3.0.0",
+ "tar-fs": "^2.1.0"
+ },
+ "bin": {
+ "prebuildify": "bin.js"
+ }
+ },
+ "node_modules/pump": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz",
+ "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "node_modules/readable-stream": {
+ "version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/semver": {
+ "version": "7.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz",
+ "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/string_decoder": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
+ "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "safe-buffer": "~5.2.0"
+ }
+ },
+ "node_modules/tar-fs": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.2.tgz",
+ "integrity": "sha512-EsaAXwxmx8UB7FRKqeozqEPop69DXcmYwTQwXvyAPF352HJsPdkVhvTaDPYqfNgruveJIJy3TA2l+2zj8LJIJA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "chownr": "^1.1.1",
+ "mkdirp-classic": "^0.5.2",
+ "pump": "^3.0.0",
+ "tar-stream": "^2.1.4"
+ }
+ },
+ "node_modules/tar-stream": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
+ "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "bl": "^4.0.3",
+ "end-of-stream": "^1.4.1",
+ "fs-constants": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^3.1.1"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/tree-sitter-cli": {
+ "version": "0.25.3",
+ "resolved": "https://registry.npmjs.org/tree-sitter-cli/-/tree-sitter-cli-0.25.3.tgz",
+ "integrity": "sha512-Bk6ZUXG+cKnwZpfR/te4NDrKld90p6350eqWlbLwSpV9/8vmL/x8LCw+3k7quY9oMDaYoMXHMvokXJbkM5A7bA==",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "MIT",
+ "bin": {
+ "tree-sitter": "cli.js"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
+ "node_modules/util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
+ "dev": true,
+ "license": "ISC"
+ }
+ }
+}
diff --git a/queries/highlights.scm b/queries/highlights.scm
new file mode 100644
index 0000000..d7e5a43
--- /dev/null
+++ b/queries/highlights.scm
@@ -0,0 +1,26 @@
+; highlights.scm
+
+; identifiers
+(symbol) @variable
+
+; literals
+(string) @string
+(bracket_string) @string
+(integer) @number
+(complex) @number
+(float) @number.float
+
+; types
+(keyword) @property
+
+; functions
+
+; keywords
+(shebang) @keyword.directive
+
+; punctuation
+(dotted_identifier "." @punctuation.delimiter)
+["(" ")" "[" "]" "{" "}"] @punctuation.bracket
+
+; comments
+(comment) @comment
diff --git a/src/grammar.json b/src/grammar.json
new file mode 100644
index 0000000..dd39f89
--- /dev/null
+++ b/src/grammar.json
@@ -0,0 +1,1479 @@
+{
+ "$schema": "https://tree-sitter.github.io/tree-sitter/assets/schemas/grammar.schema.json",
+ "name": "hy",
+ "rules": {
+ "source_file": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "shebang"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "SYMBOL",
+ "name": "_element"
+ }
+ }
+ ]
+ },
+ "shebang": {
+ "type": "TOKEN",
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "#!"
+ },
+ {
+ "type": "PATTERN",
+ "value": ".*"
+ }
+ ]
+ }
+ },
+ "_element": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "_form"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "discard"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "comment"
+ }
+ ]
+ },
+ "_form": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "_sugar"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "_identifier"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_sequence"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_string"
+ }
+ ]
+ }
+ ]
+ },
+ "discard": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "#_"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_form"
+ }
+ ]
+ },
+ "comment": {
+ "type": "TOKEN",
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ";"
+ },
+ {
+ "type": "PATTERN",
+ "value": ".*"
+ }
+ ]
+ }
+ },
+ "_sugar": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "quote",
+ "content": {
+ "type": "STRING",
+ "value": "'"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "quasiquote",
+ "content": {
+ "type": "STRING",
+ "value": "`"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "unqoute",
+ "content": {
+ "type": "STRING",
+ "value": "~"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "unqoute_splice",
+ "content": {
+ "type": "STRING",
+ "value": "~@"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "unpack_iterable",
+ "content": {
+ "type": "STRING",
+ "value": "#*"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "unpack_mapping",
+ "content": {
+ "type": "STRING",
+ "value": "#**"
+ }
+ }
+ ]
+ },
+ "_identifier": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "_numeric_literal"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "keyword"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "symbol"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "dotted_identifier"
+ }
+ ]
+ },
+ "_sequence": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "expression"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "list"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "tuple"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "set"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "dictionary"
+ }
+ ]
+ },
+ "_string": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "string"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "bracket_string"
+ }
+ ]
+ },
+ "_numeric_literal": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "integer"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "float"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "complex"
+ }
+ ]
+ },
+ "keyword": {
+ "type": "TOKEN",
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": ":"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "PATTERN",
+ "value": "[^()\\[\\]{};\"'`~:.\\d\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020][^()\\[\\]{};\"'`~.\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020]*"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "dotted_identifier": {
+ "type": "PREC",
+ "value": 1,
+ "content": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "PATTERN",
+ "value": "[.]+"
+ },
+ {
+ "type": "IMMEDIATE_TOKEN",
+ "content": {
+ "type": "PATTERN",
+ "value": "[^()\\[\\]{};\"'`~:.\\d\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020][^()\\[\\]{};\"'`~.\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020]*"
+ }
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "IMMEDIATE_TOKEN",
+ "content": {
+ "type": "STRING",
+ "value": "."
+ }
+ },
+ {
+ "type": "IMMEDIATE_TOKEN",
+ "content": {
+ "type": "PATTERN",
+ "value": "[^()\\[\\]{};\"'`~:.\\d\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020][^()\\[\\]{};\"'`~.\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020]*"
+ }
+ }
+ ]
+ }
+ }
+ ]
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "PATTERN",
+ "value": "[^()\\[\\]{};\"'`~:.\\d\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020][^()\\[\\]{};\"'`~.\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020]*"
+ },
+ {
+ "type": "REPEAT1",
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "IMMEDIATE_TOKEN",
+ "content": {
+ "type": "STRING",
+ "value": "."
+ }
+ },
+ {
+ "type": "IMMEDIATE_TOKEN",
+ "content": {
+ "type": "PATTERN",
+ "value": "[^()\\[\\]{};\"'`~:.\\d\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020][^()\\[\\]{};\"'`~.\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020]*"
+ }
+ }
+ ]
+ }
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "symbol": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "PATTERN",
+ "value": "[.]+"
+ },
+ {
+ "type": "PATTERN",
+ "value": "[^()\\[\\]{};\"'`~:.\\d\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020][^()\\[\\]{};\"'`~.\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020]*"
+ }
+ ]
+ },
+ "expression": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "("
+ },
+ {
+ "type": "REPEAT1",
+ "content": {
+ "type": "SYMBOL",
+ "name": "_element"
+ }
+ },
+ {
+ "type": "STRING",
+ "value": ")"
+ }
+ ]
+ },
+ "list": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "["
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "SYMBOL",
+ "name": "_element"
+ }
+ },
+ {
+ "type": "STRING",
+ "value": "]"
+ }
+ ]
+ },
+ "tuple": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "#("
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "SYMBOL",
+ "name": "_element"
+ }
+ },
+ {
+ "type": "STRING",
+ "value": ")"
+ }
+ ]
+ },
+ "set": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "#{"
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "SYMBOL",
+ "name": "_element"
+ }
+ },
+ {
+ "type": "STRING",
+ "value": "}"
+ }
+ ]
+ },
+ "dictionary": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "{"
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "FIELD",
+ "name": "key",
+ "content": {
+ "type": "SYMBOL",
+ "name": "_element"
+ }
+ },
+ {
+ "type": "FIELD",
+ "name": "value",
+ "content": {
+ "type": "SYMBOL",
+ "name": "_element"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "type": "STRING",
+ "value": "}"
+ }
+ ]
+ },
+ "string": {
+ "type": "TOKEN",
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "PATTERN",
+ "value": "[rbf]{0,3}"
+ },
+ {
+ "type": "STRING",
+ "value": "\""
+ },
+ {
+ "type": "PATTERN",
+ "value": "[^\"]*"
+ },
+ {
+ "type": "STRING",
+ "value": "\""
+ }
+ ]
+ }
+ },
+ "bracket_string": {
+ "type": "TOKEN",
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "#[["
+ },
+ {
+ "type": "PATTERN",
+ "value": "[^\\]]*"
+ },
+ {
+ "type": "STRING",
+ "value": "]]"
+ }
+ ]
+ }
+ },
+ "integer": {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SYMBOL",
+ "name": "_decinteger"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_bininteger"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_octinteger"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "_hexinteger"
+ }
+ ]
+ },
+ "float": {
+ "type": "TOKEN",
+ "content": {
+ "type": "PREC",
+ "value": 1,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "PATTERN",
+ "value": "[+-]"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "PATTERN",
+ "value": "\\d"
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "PATTERN",
+ "value": "_*\\d+"
+ }
+ }
+ ]
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": "."
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "PATTERN",
+ "value": "\\d"
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "PATTERN",
+ "value": "_*\\d+"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "PATTERN",
+ "value": "\\d"
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "PATTERN",
+ "value": "_*\\d+"
+ }
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": "."
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "PATTERN",
+ "value": "\\d"
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "PATTERN",
+ "value": "_*\\d+"
+ }
+ }
+ ]
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "PATTERN",
+ "value": "\\d"
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "PATTERN",
+ "value": "_*\\d+"
+ }
+ }
+ ]
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": "."
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "PATTERN",
+ "value": "\\d"
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "PATTERN",
+ "value": "_*\\d+"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "PATTERN",
+ "value": "\\d"
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "PATTERN",
+ "value": "_*\\d+"
+ }
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": "."
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "PATTERN",
+ "value": "[eE]"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "PATTERN",
+ "value": "[+-]"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "PATTERN",
+ "value": "\\d"
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "PATTERN",
+ "value": "_*\\d+"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": "Inf"
+ },
+ {
+ "type": "STRING",
+ "value": "NaN"
+ }
+ ]
+ }
+ ]
+ }
+ }
+ },
+ "complex": {
+ "type": "TOKEN",
+ "content": {
+ "type": "PREC",
+ "value": 1,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "PATTERN",
+ "value": "[+-]"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "PATTERN",
+ "value": "\\d"
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "PATTERN",
+ "value": "_*\\d+"
+ }
+ }
+ ]
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": "."
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "PATTERN",
+ "value": "\\d"
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "PATTERN",
+ "value": "_*\\d+"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "PATTERN",
+ "value": "\\d"
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "PATTERN",
+ "value": "_*\\d+"
+ }
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": "."
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "PATTERN",
+ "value": "\\d"
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "PATTERN",
+ "value": "_*\\d+"
+ }
+ }
+ ]
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "PATTERN",
+ "value": "\\d"
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "PATTERN",
+ "value": "_*\\d+"
+ }
+ }
+ ]
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": "."
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "PATTERN",
+ "value": "\\d"
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "PATTERN",
+ "value": "_*\\d+"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "PATTERN",
+ "value": "\\d"
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "PATTERN",
+ "value": "_*\\d+"
+ }
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": "."
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "PATTERN",
+ "value": "[eE]"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "PATTERN",
+ "value": "[+-]"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "PATTERN",
+ "value": "\\d"
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "PATTERN",
+ "value": "_*\\d+"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "PATTERN",
+ "value": "\\d"
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "PATTERN",
+ "value": "_*\\d+"
+ }
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": "Inf"
+ },
+ {
+ "type": "STRING",
+ "value": "NaN"
+ }
+ ]
+ },
+ {
+ "type": "PATTERN",
+ "value": "[+-]"
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "PATTERN",
+ "value": "\\d"
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "PATTERN",
+ "value": "_*\\d+"
+ }
+ }
+ ]
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": "."
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "PATTERN",
+ "value": "\\d"
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "PATTERN",
+ "value": "_*\\d+"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "PATTERN",
+ "value": "\\d"
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "PATTERN",
+ "value": "_*\\d+"
+ }
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": "."
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "PATTERN",
+ "value": "\\d"
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "PATTERN",
+ "value": "_*\\d+"
+ }
+ }
+ ]
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "PATTERN",
+ "value": "\\d"
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "PATTERN",
+ "value": "_*\\d+"
+ }
+ }
+ ]
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": "."
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "PATTERN",
+ "value": "\\d"
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "PATTERN",
+ "value": "_*\\d+"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "PATTERN",
+ "value": "\\d"
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "PATTERN",
+ "value": "_*\\d+"
+ }
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": "."
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "PATTERN",
+ "value": "[eE]"
+ },
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "PATTERN",
+ "value": "[+-]"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "PATTERN",
+ "value": "\\d"
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "PATTERN",
+ "value": "_*\\d+"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "PATTERN",
+ "value": "\\d"
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "PATTERN",
+ "value": "_*\\d+"
+ }
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": "NaN"
+ },
+ {
+ "type": "STRING",
+ "value": "Inf"
+ }
+ ]
+ },
+ {
+ "type": "PATTERN",
+ "value": "[jJ]"
+ }
+ ]
+ }
+ ]
+ }
+ }
+ },
+ "_decinteger": {
+ "type": "TOKEN",
+ "content": {
+ "type": "PREC",
+ "value": 1,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "CHOICE",
+ "members": [
+ {
+ "type": "PATTERN",
+ "value": "[+-]"
+ },
+ {
+ "type": "BLANK"
+ }
+ ]
+ },
+ {
+ "type": "PATTERN",
+ "value": "\\d"
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "PATTERN",
+ "value": "[,_]*\\d+"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "_bininteger": {
+ "type": "TOKEN",
+ "content": {
+ "type": "PREC",
+ "value": 1,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "0"
+ },
+ {
+ "type": "PATTERN",
+ "value": "[bB]"
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "PATTERN",
+ "value": "[,_]*[01]+"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "_octinteger": {
+ "type": "TOKEN",
+ "content": {
+ "type": "PREC",
+ "value": 1,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "0"
+ },
+ {
+ "type": "PATTERN",
+ "value": "[oO]"
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "PATTERN",
+ "value": "[,_]*[0-7]+"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "_hexinteger": {
+ "type": "TOKEN",
+ "content": {
+ "type": "PREC",
+ "value": 1,
+ "content": {
+ "type": "SEQ",
+ "members": [
+ {
+ "type": "STRING",
+ "value": "0"
+ },
+ {
+ "type": "PATTERN",
+ "value": "[xX]"
+ },
+ {
+ "type": "REPEAT",
+ "content": {
+ "type": "PATTERN",
+ "value": "[,_]*[\\da-fA-F]+"
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "extras": [
+ {
+ "type": "PATTERN",
+ "value": "[\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020]"
+ },
+ {
+ "type": "SYMBOL",
+ "name": "comment"
+ }
+ ],
+ "conflicts": [],
+ "precedences": [],
+ "externals": [],
+ "inline": [],
+ "supertypes": [],
+ "reserved": {}
+}
\ No newline at end of file
diff --git a/src/node-types.json b/src/node-types.json
new file mode 100644
index 0000000..9189fbd
--- /dev/null
+++ b/src/node-types.json
@@ -0,0 +1,1145 @@
+[
+ {
+ "type": "dictionary",
+ "named": true,
+ "fields": {
+ "key": {
+ "multiple": true,
+ "required": false,
+ "types": [
+ {
+ "type": "#*",
+ "named": false
+ },
+ {
+ "type": "#**",
+ "named": false
+ },
+ {
+ "type": "'",
+ "named": false
+ },
+ {
+ "type": "`",
+ "named": false
+ },
+ {
+ "type": "bracket_string",
+ "named": true
+ },
+ {
+ "type": "comment",
+ "named": true
+ },
+ {
+ "type": "complex",
+ "named": true
+ },
+ {
+ "type": "dictionary",
+ "named": true
+ },
+ {
+ "type": "discard",
+ "named": true
+ },
+ {
+ "type": "dotted_identifier",
+ "named": true
+ },
+ {
+ "type": "expression",
+ "named": true
+ },
+ {
+ "type": "float",
+ "named": true
+ },
+ {
+ "type": "integer",
+ "named": true
+ },
+ {
+ "type": "keyword",
+ "named": true
+ },
+ {
+ "type": "list",
+ "named": true
+ },
+ {
+ "type": "set",
+ "named": true
+ },
+ {
+ "type": "string",
+ "named": true
+ },
+ {
+ "type": "symbol",
+ "named": true
+ },
+ {
+ "type": "tuple",
+ "named": true
+ },
+ {
+ "type": "~",
+ "named": false
+ },
+ {
+ "type": "~@",
+ "named": false
+ }
+ ]
+ },
+ "quasiquote": {
+ "multiple": true,
+ "required": false,
+ "types": [
+ {
+ "type": "`",
+ "named": false
+ }
+ ]
+ },
+ "quote": {
+ "multiple": true,
+ "required": false,
+ "types": [
+ {
+ "type": "'",
+ "named": false
+ }
+ ]
+ },
+ "unpack_iterable": {
+ "multiple": true,
+ "required": false,
+ "types": [
+ {
+ "type": "#*",
+ "named": false
+ }
+ ]
+ },
+ "unpack_mapping": {
+ "multiple": true,
+ "required": false,
+ "types": [
+ {
+ "type": "#**",
+ "named": false
+ }
+ ]
+ },
+ "unqoute": {
+ "multiple": true,
+ "required": false,
+ "types": [
+ {
+ "type": "~",
+ "named": false
+ }
+ ]
+ },
+ "unqoute_splice": {
+ "multiple": true,
+ "required": false,
+ "types": [
+ {
+ "type": "~@",
+ "named": false
+ }
+ ]
+ },
+ "value": {
+ "multiple": true,
+ "required": false,
+ "types": [
+ {
+ "type": "#*",
+ "named": false
+ },
+ {
+ "type": "#**",
+ "named": false
+ },
+ {
+ "type": "'",
+ "named": false
+ },
+ {
+ "type": "`",
+ "named": false
+ },
+ {
+ "type": "bracket_string",
+ "named": true
+ },
+ {
+ "type": "comment",
+ "named": true
+ },
+ {
+ "type": "complex",
+ "named": true
+ },
+ {
+ "type": "dictionary",
+ "named": true
+ },
+ {
+ "type": "discard",
+ "named": true
+ },
+ {
+ "type": "dotted_identifier",
+ "named": true
+ },
+ {
+ "type": "expression",
+ "named": true
+ },
+ {
+ "type": "float",
+ "named": true
+ },
+ {
+ "type": "integer",
+ "named": true
+ },
+ {
+ "type": "keyword",
+ "named": true
+ },
+ {
+ "type": "list",
+ "named": true
+ },
+ {
+ "type": "set",
+ "named": true
+ },
+ {
+ "type": "string",
+ "named": true
+ },
+ {
+ "type": "symbol",
+ "named": true
+ },
+ {
+ "type": "tuple",
+ "named": true
+ },
+ {
+ "type": "~",
+ "named": false
+ },
+ {
+ "type": "~@",
+ "named": false
+ }
+ ]
+ }
+ }
+ },
+ {
+ "type": "discard",
+ "named": true,
+ "fields": {
+ "quasiquote": {
+ "multiple": false,
+ "required": false,
+ "types": [
+ {
+ "type": "`",
+ "named": false
+ }
+ ]
+ },
+ "quote": {
+ "multiple": false,
+ "required": false,
+ "types": [
+ {
+ "type": "'",
+ "named": false
+ }
+ ]
+ },
+ "unpack_iterable": {
+ "multiple": false,
+ "required": false,
+ "types": [
+ {
+ "type": "#*",
+ "named": false
+ }
+ ]
+ },
+ "unpack_mapping": {
+ "multiple": false,
+ "required": false,
+ "types": [
+ {
+ "type": "#**",
+ "named": false
+ }
+ ]
+ },
+ "unqoute": {
+ "multiple": false,
+ "required": false,
+ "types": [
+ {
+ "type": "~",
+ "named": false
+ }
+ ]
+ },
+ "unqoute_splice": {
+ "multiple": false,
+ "required": false,
+ "types": [
+ {
+ "type": "~@",
+ "named": false
+ }
+ ]
+ }
+ },
+ "children": {
+ "multiple": false,
+ "required": false,
+ "types": [
+ {
+ "type": "bracket_string",
+ "named": true
+ },
+ {
+ "type": "complex",
+ "named": true
+ },
+ {
+ "type": "dictionary",
+ "named": true
+ },
+ {
+ "type": "dotted_identifier",
+ "named": true
+ },
+ {
+ "type": "expression",
+ "named": true
+ },
+ {
+ "type": "float",
+ "named": true
+ },
+ {
+ "type": "integer",
+ "named": true
+ },
+ {
+ "type": "keyword",
+ "named": true
+ },
+ {
+ "type": "list",
+ "named": true
+ },
+ {
+ "type": "set",
+ "named": true
+ },
+ {
+ "type": "string",
+ "named": true
+ },
+ {
+ "type": "symbol",
+ "named": true
+ },
+ {
+ "type": "tuple",
+ "named": true
+ }
+ ]
+ }
+ },
+ {
+ "type": "dotted_identifier",
+ "named": true,
+ "fields": {}
+ },
+ {
+ "type": "expression",
+ "named": true,
+ "fields": {
+ "quasiquote": {
+ "multiple": true,
+ "required": false,
+ "types": [
+ {
+ "type": "`",
+ "named": false
+ }
+ ]
+ },
+ "quote": {
+ "multiple": true,
+ "required": false,
+ "types": [
+ {
+ "type": "'",
+ "named": false
+ }
+ ]
+ },
+ "unpack_iterable": {
+ "multiple": true,
+ "required": false,
+ "types": [
+ {
+ "type": "#*",
+ "named": false
+ }
+ ]
+ },
+ "unpack_mapping": {
+ "multiple": true,
+ "required": false,
+ "types": [
+ {
+ "type": "#**",
+ "named": false
+ }
+ ]
+ },
+ "unqoute": {
+ "multiple": true,
+ "required": false,
+ "types": [
+ {
+ "type": "~",
+ "named": false
+ }
+ ]
+ },
+ "unqoute_splice": {
+ "multiple": true,
+ "required": false,
+ "types": [
+ {
+ "type": "~@",
+ "named": false
+ }
+ ]
+ }
+ },
+ "children": {
+ "multiple": true,
+ "required": false,
+ "types": [
+ {
+ "type": "bracket_string",
+ "named": true
+ },
+ {
+ "type": "comment",
+ "named": true
+ },
+ {
+ "type": "complex",
+ "named": true
+ },
+ {
+ "type": "dictionary",
+ "named": true
+ },
+ {
+ "type": "discard",
+ "named": true
+ },
+ {
+ "type": "dotted_identifier",
+ "named": true
+ },
+ {
+ "type": "expression",
+ "named": true
+ },
+ {
+ "type": "float",
+ "named": true
+ },
+ {
+ "type": "integer",
+ "named": true
+ },
+ {
+ "type": "keyword",
+ "named": true
+ },
+ {
+ "type": "list",
+ "named": true
+ },
+ {
+ "type": "set",
+ "named": true
+ },
+ {
+ "type": "string",
+ "named": true
+ },
+ {
+ "type": "symbol",
+ "named": true
+ },
+ {
+ "type": "tuple",
+ "named": true
+ }
+ ]
+ }
+ },
+ {
+ "type": "integer",
+ "named": true,
+ "fields": {}
+ },
+ {
+ "type": "list",
+ "named": true,
+ "fields": {
+ "quasiquote": {
+ "multiple": true,
+ "required": false,
+ "types": [
+ {
+ "type": "`",
+ "named": false
+ }
+ ]
+ },
+ "quote": {
+ "multiple": true,
+ "required": false,
+ "types": [
+ {
+ "type": "'",
+ "named": false
+ }
+ ]
+ },
+ "unpack_iterable": {
+ "multiple": true,
+ "required": false,
+ "types": [
+ {
+ "type": "#*",
+ "named": false
+ }
+ ]
+ },
+ "unpack_mapping": {
+ "multiple": true,
+ "required": false,
+ "types": [
+ {
+ "type": "#**",
+ "named": false
+ }
+ ]
+ },
+ "unqoute": {
+ "multiple": true,
+ "required": false,
+ "types": [
+ {
+ "type": "~",
+ "named": false
+ }
+ ]
+ },
+ "unqoute_splice": {
+ "multiple": true,
+ "required": false,
+ "types": [
+ {
+ "type": "~@",
+ "named": false
+ }
+ ]
+ }
+ },
+ "children": {
+ "multiple": true,
+ "required": false,
+ "types": [
+ {
+ "type": "bracket_string",
+ "named": true
+ },
+ {
+ "type": "comment",
+ "named": true
+ },
+ {
+ "type": "complex",
+ "named": true
+ },
+ {
+ "type": "dictionary",
+ "named": true
+ },
+ {
+ "type": "discard",
+ "named": true
+ },
+ {
+ "type": "dotted_identifier",
+ "named": true
+ },
+ {
+ "type": "expression",
+ "named": true
+ },
+ {
+ "type": "float",
+ "named": true
+ },
+ {
+ "type": "integer",
+ "named": true
+ },
+ {
+ "type": "keyword",
+ "named": true
+ },
+ {
+ "type": "list",
+ "named": true
+ },
+ {
+ "type": "set",
+ "named": true
+ },
+ {
+ "type": "string",
+ "named": true
+ },
+ {
+ "type": "symbol",
+ "named": true
+ },
+ {
+ "type": "tuple",
+ "named": true
+ }
+ ]
+ }
+ },
+ {
+ "type": "set",
+ "named": true,
+ "fields": {
+ "quasiquote": {
+ "multiple": true,
+ "required": false,
+ "types": [
+ {
+ "type": "`",
+ "named": false
+ }
+ ]
+ },
+ "quote": {
+ "multiple": true,
+ "required": false,
+ "types": [
+ {
+ "type": "'",
+ "named": false
+ }
+ ]
+ },
+ "unpack_iterable": {
+ "multiple": true,
+ "required": false,
+ "types": [
+ {
+ "type": "#*",
+ "named": false
+ }
+ ]
+ },
+ "unpack_mapping": {
+ "multiple": true,
+ "required": false,
+ "types": [
+ {
+ "type": "#**",
+ "named": false
+ }
+ ]
+ },
+ "unqoute": {
+ "multiple": true,
+ "required": false,
+ "types": [
+ {
+ "type": "~",
+ "named": false
+ }
+ ]
+ },
+ "unqoute_splice": {
+ "multiple": true,
+ "required": false,
+ "types": [
+ {
+ "type": "~@",
+ "named": false
+ }
+ ]
+ }
+ },
+ "children": {
+ "multiple": true,
+ "required": false,
+ "types": [
+ {
+ "type": "bracket_string",
+ "named": true
+ },
+ {
+ "type": "comment",
+ "named": true
+ },
+ {
+ "type": "complex",
+ "named": true
+ },
+ {
+ "type": "dictionary",
+ "named": true
+ },
+ {
+ "type": "discard",
+ "named": true
+ },
+ {
+ "type": "dotted_identifier",
+ "named": true
+ },
+ {
+ "type": "expression",
+ "named": true
+ },
+ {
+ "type": "float",
+ "named": true
+ },
+ {
+ "type": "integer",
+ "named": true
+ },
+ {
+ "type": "keyword",
+ "named": true
+ },
+ {
+ "type": "list",
+ "named": true
+ },
+ {
+ "type": "set",
+ "named": true
+ },
+ {
+ "type": "string",
+ "named": true
+ },
+ {
+ "type": "symbol",
+ "named": true
+ },
+ {
+ "type": "tuple",
+ "named": true
+ }
+ ]
+ }
+ },
+ {
+ "type": "source_file",
+ "named": true,
+ "root": true,
+ "fields": {
+ "quasiquote": {
+ "multiple": true,
+ "required": false,
+ "types": [
+ {
+ "type": "`",
+ "named": false
+ }
+ ]
+ },
+ "quote": {
+ "multiple": true,
+ "required": false,
+ "types": [
+ {
+ "type": "'",
+ "named": false
+ }
+ ]
+ },
+ "unpack_iterable": {
+ "multiple": true,
+ "required": false,
+ "types": [
+ {
+ "type": "#*",
+ "named": false
+ }
+ ]
+ },
+ "unpack_mapping": {
+ "multiple": true,
+ "required": false,
+ "types": [
+ {
+ "type": "#**",
+ "named": false
+ }
+ ]
+ },
+ "unqoute": {
+ "multiple": true,
+ "required": false,
+ "types": [
+ {
+ "type": "~",
+ "named": false
+ }
+ ]
+ },
+ "unqoute_splice": {
+ "multiple": true,
+ "required": false,
+ "types": [
+ {
+ "type": "~@",
+ "named": false
+ }
+ ]
+ }
+ },
+ "children": {
+ "multiple": true,
+ "required": false,
+ "types": [
+ {
+ "type": "bracket_string",
+ "named": true
+ },
+ {
+ "type": "comment",
+ "named": true
+ },
+ {
+ "type": "complex",
+ "named": true
+ },
+ {
+ "type": "dictionary",
+ "named": true
+ },
+ {
+ "type": "discard",
+ "named": true
+ },
+ {
+ "type": "dotted_identifier",
+ "named": true
+ },
+ {
+ "type": "expression",
+ "named": true
+ },
+ {
+ "type": "float",
+ "named": true
+ },
+ {
+ "type": "integer",
+ "named": true
+ },
+ {
+ "type": "keyword",
+ "named": true
+ },
+ {
+ "type": "list",
+ "named": true
+ },
+ {
+ "type": "set",
+ "named": true
+ },
+ {
+ "type": "shebang",
+ "named": true
+ },
+ {
+ "type": "string",
+ "named": true
+ },
+ {
+ "type": "symbol",
+ "named": true
+ },
+ {
+ "type": "tuple",
+ "named": true
+ }
+ ]
+ }
+ },
+ {
+ "type": "symbol",
+ "named": true,
+ "fields": {}
+ },
+ {
+ "type": "tuple",
+ "named": true,
+ "fields": {
+ "quasiquote": {
+ "multiple": true,
+ "required": false,
+ "types": [
+ {
+ "type": "`",
+ "named": false
+ }
+ ]
+ },
+ "quote": {
+ "multiple": true,
+ "required": false,
+ "types": [
+ {
+ "type": "'",
+ "named": false
+ }
+ ]
+ },
+ "unpack_iterable": {
+ "multiple": true,
+ "required": false,
+ "types": [
+ {
+ "type": "#*",
+ "named": false
+ }
+ ]
+ },
+ "unpack_mapping": {
+ "multiple": true,
+ "required": false,
+ "types": [
+ {
+ "type": "#**",
+ "named": false
+ }
+ ]
+ },
+ "unqoute": {
+ "multiple": true,
+ "required": false,
+ "types": [
+ {
+ "type": "~",
+ "named": false
+ }
+ ]
+ },
+ "unqoute_splice": {
+ "multiple": true,
+ "required": false,
+ "types": [
+ {
+ "type": "~@",
+ "named": false
+ }
+ ]
+ }
+ },
+ "children": {
+ "multiple": true,
+ "required": false,
+ "types": [
+ {
+ "type": "bracket_string",
+ "named": true
+ },
+ {
+ "type": "comment",
+ "named": true
+ },
+ {
+ "type": "complex",
+ "named": true
+ },
+ {
+ "type": "dictionary",
+ "named": true
+ },
+ {
+ "type": "discard",
+ "named": true
+ },
+ {
+ "type": "dotted_identifier",
+ "named": true
+ },
+ {
+ "type": "expression",
+ "named": true
+ },
+ {
+ "type": "float",
+ "named": true
+ },
+ {
+ "type": "integer",
+ "named": true
+ },
+ {
+ "type": "keyword",
+ "named": true
+ },
+ {
+ "type": "list",
+ "named": true
+ },
+ {
+ "type": "set",
+ "named": true
+ },
+ {
+ "type": "string",
+ "named": true
+ },
+ {
+ "type": "symbol",
+ "named": true
+ },
+ {
+ "type": "tuple",
+ "named": true
+ }
+ ]
+ }
+ },
+ {
+ "type": "#(",
+ "named": false
+ },
+ {
+ "type": "#*",
+ "named": false
+ },
+ {
+ "type": "#**",
+ "named": false
+ },
+ {
+ "type": "#_",
+ "named": false
+ },
+ {
+ "type": "#{",
+ "named": false
+ },
+ {
+ "type": "'",
+ "named": false
+ },
+ {
+ "type": "(",
+ "named": false
+ },
+ {
+ "type": ")",
+ "named": false
+ },
+ {
+ "type": ".",
+ "named": false
+ },
+ {
+ "type": "[",
+ "named": false
+ },
+ {
+ "type": "]",
+ "named": false
+ },
+ {
+ "type": "`",
+ "named": false
+ },
+ {
+ "type": "bracket_string",
+ "named": true
+ },
+ {
+ "type": "comment",
+ "named": true,
+ "extra": true
+ },
+ {
+ "type": "complex",
+ "named": true
+ },
+ {
+ "type": "float",
+ "named": true
+ },
+ {
+ "type": "keyword",
+ "named": true
+ },
+ {
+ "type": "shebang",
+ "named": true
+ },
+ {
+ "type": "string",
+ "named": true
+ },
+ {
+ "type": "{",
+ "named": false
+ },
+ {
+ "type": "}",
+ "named": false
+ },
+ {
+ "type": "~",
+ "named": false
+ },
+ {
+ "type": "~@",
+ "named": false
+ }
+]
\ No newline at end of file
diff --git a/src/parser.c b/src/parser.c
new file mode 100644
index 0000000..e4f990d
--- /dev/null
+++ b/src/parser.c
@@ -0,0 +1,4885 @@
+/* Automatically generated by tree-sitter v0.25.3 (2a835ee029dca1c325e6f1c01dbce40396f6123e) */
+
+#include "tree_sitter/parser.h"
+
+#if defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic ignored "-Wmissing-field-initializers"
+#endif
+
+#define LANGUAGE_VERSION 15
+#define STATE_COUNT 89
+#define LARGE_STATE_COUNT 63
+#define SYMBOL_COUNT 51
+#define ALIAS_COUNT 0
+#define TOKEN_COUNT 31
+#define EXTERNAL_TOKEN_COUNT 0
+#define FIELD_COUNT 8
+#define MAX_ALIAS_SEQUENCE_LENGTH 3
+#define MAX_RESERVED_WORD_SET_SIZE 0
+#define PRODUCTION_ID_COUNT 13
+#define SUPERTYPE_COUNT 0
+
+enum ts_symbol_identifiers {
+ sym_shebang = 1,
+ anon_sym_POUND_ = 2,
+ sym_comment = 3,
+ anon_sym_SQUOTE = 4,
+ anon_sym_BQUOTE = 5,
+ anon_sym_TILDE = 6,
+ anon_sym_TILDE_AT = 7,
+ anon_sym_POUND_STAR = 8,
+ anon_sym_POUND_STAR_STAR = 9,
+ sym_keyword = 10,
+ aux_sym_dotted_identifier_token1 = 11,
+ aux_sym_dotted_identifier_token2 = 12,
+ anon_sym_DOT = 13,
+ aux_sym_dotted_identifier_token3 = 14,
+ anon_sym_LPAREN = 15,
+ anon_sym_RPAREN = 16,
+ anon_sym_LBRACK = 17,
+ anon_sym_RBRACK = 18,
+ anon_sym_POUND_LPAREN = 19,
+ anon_sym_POUND_LBRACE = 20,
+ anon_sym_RBRACE = 21,
+ anon_sym_LBRACE = 22,
+ sym_string = 23,
+ sym_bracket_string = 24,
+ sym_float = 25,
+ sym_complex = 26,
+ sym__decinteger = 27,
+ sym__bininteger = 28,
+ sym__octinteger = 29,
+ sym__hexinteger = 30,
+ sym_source_file = 31,
+ sym__element = 32,
+ sym__form = 33,
+ sym_discard = 34,
+ sym__sugar = 35,
+ sym__identifier = 36,
+ sym__sequence = 37,
+ sym__string = 38,
+ sym__numeric_literal = 39,
+ sym_dotted_identifier = 40,
+ sym_symbol = 41,
+ sym_expression = 42,
+ sym_list = 43,
+ sym_tuple = 44,
+ sym_set = 45,
+ sym_dictionary = 46,
+ sym_integer = 47,
+ aux_sym_source_file_repeat1 = 48,
+ aux_sym_dotted_identifier_repeat1 = 49,
+ aux_sym_dictionary_repeat1 = 50,
+};
+
+static const char * const ts_symbol_names[] = {
+ [ts_builtin_sym_end] = "end",
+ [sym_shebang] = "shebang",
+ [anon_sym_POUND_] = "#_",
+ [sym_comment] = "comment",
+ [anon_sym_SQUOTE] = "'",
+ [anon_sym_BQUOTE] = "`",
+ [anon_sym_TILDE] = "~",
+ [anon_sym_TILDE_AT] = "~@",
+ [anon_sym_POUND_STAR] = "#*",
+ [anon_sym_POUND_STAR_STAR] = "#**",
+ [sym_keyword] = "keyword",
+ [aux_sym_dotted_identifier_token1] = "dotted_identifier_token1",
+ [aux_sym_dotted_identifier_token2] = "dotted_identifier_token2",
+ [anon_sym_DOT] = ".",
+ [aux_sym_dotted_identifier_token3] = "dotted_identifier_token3",
+ [anon_sym_LPAREN] = "(",
+ [anon_sym_RPAREN] = ")",
+ [anon_sym_LBRACK] = "[",
+ [anon_sym_RBRACK] = "]",
+ [anon_sym_POUND_LPAREN] = "#(",
+ [anon_sym_POUND_LBRACE] = "#{",
+ [anon_sym_RBRACE] = "}",
+ [anon_sym_LBRACE] = "{",
+ [sym_string] = "string",
+ [sym_bracket_string] = "bracket_string",
+ [sym_float] = "float",
+ [sym_complex] = "complex",
+ [sym__decinteger] = "_decinteger",
+ [sym__bininteger] = "_bininteger",
+ [sym__octinteger] = "_octinteger",
+ [sym__hexinteger] = "_hexinteger",
+ [sym_source_file] = "source_file",
+ [sym__element] = "_element",
+ [sym__form] = "_form",
+ [sym_discard] = "discard",
+ [sym__sugar] = "_sugar",
+ [sym__identifier] = "_identifier",
+ [sym__sequence] = "_sequence",
+ [sym__string] = "_string",
+ [sym__numeric_literal] = "_numeric_literal",
+ [sym_dotted_identifier] = "dotted_identifier",
+ [sym_symbol] = "symbol",
+ [sym_expression] = "expression",
+ [sym_list] = "list",
+ [sym_tuple] = "tuple",
+ [sym_set] = "set",
+ [sym_dictionary] = "dictionary",
+ [sym_integer] = "integer",
+ [aux_sym_source_file_repeat1] = "source_file_repeat1",
+ [aux_sym_dotted_identifier_repeat1] = "dotted_identifier_repeat1",
+ [aux_sym_dictionary_repeat1] = "dictionary_repeat1",
+};
+
+static const TSSymbol ts_symbol_map[] = {
+ [ts_builtin_sym_end] = ts_builtin_sym_end,
+ [sym_shebang] = sym_shebang,
+ [anon_sym_POUND_] = anon_sym_POUND_,
+ [sym_comment] = sym_comment,
+ [anon_sym_SQUOTE] = anon_sym_SQUOTE,
+ [anon_sym_BQUOTE] = anon_sym_BQUOTE,
+ [anon_sym_TILDE] = anon_sym_TILDE,
+ [anon_sym_TILDE_AT] = anon_sym_TILDE_AT,
+ [anon_sym_POUND_STAR] = anon_sym_POUND_STAR,
+ [anon_sym_POUND_STAR_STAR] = anon_sym_POUND_STAR_STAR,
+ [sym_keyword] = sym_keyword,
+ [aux_sym_dotted_identifier_token1] = aux_sym_dotted_identifier_token1,
+ [aux_sym_dotted_identifier_token2] = aux_sym_dotted_identifier_token2,
+ [anon_sym_DOT] = anon_sym_DOT,
+ [aux_sym_dotted_identifier_token3] = aux_sym_dotted_identifier_token3,
+ [anon_sym_LPAREN] = anon_sym_LPAREN,
+ [anon_sym_RPAREN] = anon_sym_RPAREN,
+ [anon_sym_LBRACK] = anon_sym_LBRACK,
+ [anon_sym_RBRACK] = anon_sym_RBRACK,
+ [anon_sym_POUND_LPAREN] = anon_sym_POUND_LPAREN,
+ [anon_sym_POUND_LBRACE] = anon_sym_POUND_LBRACE,
+ [anon_sym_RBRACE] = anon_sym_RBRACE,
+ [anon_sym_LBRACE] = anon_sym_LBRACE,
+ [sym_string] = sym_string,
+ [sym_bracket_string] = sym_bracket_string,
+ [sym_float] = sym_float,
+ [sym_complex] = sym_complex,
+ [sym__decinteger] = sym__decinteger,
+ [sym__bininteger] = sym__bininteger,
+ [sym__octinteger] = sym__octinteger,
+ [sym__hexinteger] = sym__hexinteger,
+ [sym_source_file] = sym_source_file,
+ [sym__element] = sym__element,
+ [sym__form] = sym__form,
+ [sym_discard] = sym_discard,
+ [sym__sugar] = sym__sugar,
+ [sym__identifier] = sym__identifier,
+ [sym__sequence] = sym__sequence,
+ [sym__string] = sym__string,
+ [sym__numeric_literal] = sym__numeric_literal,
+ [sym_dotted_identifier] = sym_dotted_identifier,
+ [sym_symbol] = sym_symbol,
+ [sym_expression] = sym_expression,
+ [sym_list] = sym_list,
+ [sym_tuple] = sym_tuple,
+ [sym_set] = sym_set,
+ [sym_dictionary] = sym_dictionary,
+ [sym_integer] = sym_integer,
+ [aux_sym_source_file_repeat1] = aux_sym_source_file_repeat1,
+ [aux_sym_dotted_identifier_repeat1] = aux_sym_dotted_identifier_repeat1,
+ [aux_sym_dictionary_repeat1] = aux_sym_dictionary_repeat1,
+};
+
+static const TSSymbolMetadata ts_symbol_metadata[] = {
+ [ts_builtin_sym_end] = {
+ .visible = false,
+ .named = true,
+ },
+ [sym_shebang] = {
+ .visible = true,
+ .named = true,
+ },
+ [anon_sym_POUND_] = {
+ .visible = true,
+ .named = false,
+ },
+ [sym_comment] = {
+ .visible = true,
+ .named = true,
+ },
+ [anon_sym_SQUOTE] = {
+ .visible = true,
+ .named = false,
+ },
+ [anon_sym_BQUOTE] = {
+ .visible = true,
+ .named = false,
+ },
+ [anon_sym_TILDE] = {
+ .visible = true,
+ .named = false,
+ },
+ [anon_sym_TILDE_AT] = {
+ .visible = true,
+ .named = false,
+ },
+ [anon_sym_POUND_STAR] = {
+ .visible = true,
+ .named = false,
+ },
+ [anon_sym_POUND_STAR_STAR] = {
+ .visible = true,
+ .named = false,
+ },
+ [sym_keyword] = {
+ .visible = true,
+ .named = true,
+ },
+ [aux_sym_dotted_identifier_token1] = {
+ .visible = false,
+ .named = false,
+ },
+ [aux_sym_dotted_identifier_token2] = {
+ .visible = false,
+ .named = false,
+ },
+ [anon_sym_DOT] = {
+ .visible = true,
+ .named = false,
+ },
+ [aux_sym_dotted_identifier_token3] = {
+ .visible = false,
+ .named = false,
+ },
+ [anon_sym_LPAREN] = {
+ .visible = true,
+ .named = false,
+ },
+ [anon_sym_RPAREN] = {
+ .visible = true,
+ .named = false,
+ },
+ [anon_sym_LBRACK] = {
+ .visible = true,
+ .named = false,
+ },
+ [anon_sym_RBRACK] = {
+ .visible = true,
+ .named = false,
+ },
+ [anon_sym_POUND_LPAREN] = {
+ .visible = true,
+ .named = false,
+ },
+ [anon_sym_POUND_LBRACE] = {
+ .visible = true,
+ .named = false,
+ },
+ [anon_sym_RBRACE] = {
+ .visible = true,
+ .named = false,
+ },
+ [anon_sym_LBRACE] = {
+ .visible = true,
+ .named = false,
+ },
+ [sym_string] = {
+ .visible = true,
+ .named = true,
+ },
+ [sym_bracket_string] = {
+ .visible = true,
+ .named = true,
+ },
+ [sym_float] = {
+ .visible = true,
+ .named = true,
+ },
+ [sym_complex] = {
+ .visible = true,
+ .named = true,
+ },
+ [sym__decinteger] = {
+ .visible = false,
+ .named = true,
+ },
+ [sym__bininteger] = {
+ .visible = false,
+ .named = true,
+ },
+ [sym__octinteger] = {
+ .visible = false,
+ .named = true,
+ },
+ [sym__hexinteger] = {
+ .visible = false,
+ .named = true,
+ },
+ [sym_source_file] = {
+ .visible = true,
+ .named = true,
+ },
+ [sym__element] = {
+ .visible = false,
+ .named = true,
+ },
+ [sym__form] = {
+ .visible = false,
+ .named = true,
+ },
+ [sym_discard] = {
+ .visible = true,
+ .named = true,
+ },
+ [sym__sugar] = {
+ .visible = false,
+ .named = true,
+ },
+ [sym__identifier] = {
+ .visible = false,
+ .named = true,
+ },
+ [sym__sequence] = {
+ .visible = false,
+ .named = true,
+ },
+ [sym__string] = {
+ .visible = false,
+ .named = true,
+ },
+ [sym__numeric_literal] = {
+ .visible = false,
+ .named = true,
+ },
+ [sym_dotted_identifier] = {
+ .visible = true,
+ .named = true,
+ },
+ [sym_symbol] = {
+ .visible = true,
+ .named = true,
+ },
+ [sym_expression] = {
+ .visible = true,
+ .named = true,
+ },
+ [sym_list] = {
+ .visible = true,
+ .named = true,
+ },
+ [sym_tuple] = {
+ .visible = true,
+ .named = true,
+ },
+ [sym_set] = {
+ .visible = true,
+ .named = true,
+ },
+ [sym_dictionary] = {
+ .visible = true,
+ .named = true,
+ },
+ [sym_integer] = {
+ .visible = true,
+ .named = true,
+ },
+ [aux_sym_source_file_repeat1] = {
+ .visible = false,
+ .named = false,
+ },
+ [aux_sym_dotted_identifier_repeat1] = {
+ .visible = false,
+ .named = false,
+ },
+ [aux_sym_dictionary_repeat1] = {
+ .visible = false,
+ .named = false,
+ },
+};
+
+enum ts_field_identifiers {
+ field_key = 1,
+ field_quasiquote = 2,
+ field_quote = 3,
+ field_unpack_iterable = 4,
+ field_unpack_mapping = 5,
+ field_unqoute = 6,
+ field_unqoute_splice = 7,
+ field_value = 8,
+};
+
+static const char * const ts_field_names[] = {
+ [0] = NULL,
+ [field_key] = "key",
+ [field_quasiquote] = "quasiquote",
+ [field_quote] = "quote",
+ [field_unpack_iterable] = "unpack_iterable",
+ [field_unpack_mapping] = "unpack_mapping",
+ [field_unqoute] = "unqoute",
+ [field_unqoute_splice] = "unqoute_splice",
+ [field_value] = "value",
+};
+
+static const TSMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = {
+ [1] = {.index = 0, .length = 1},
+ [2] = {.index = 1, .length = 1},
+ [3] = {.index = 2, .length = 1},
+ [4] = {.index = 3, .length = 1},
+ [5] = {.index = 4, .length = 1},
+ [6] = {.index = 5, .length = 1},
+ [7] = {.index = 6, .length = 6},
+ [8] = {.index = 12, .length = 6},
+ [9] = {.index = 18, .length = 12},
+ [10] = {.index = 30, .length = 14},
+ [11] = {.index = 44, .length = 8},
+ [12] = {.index = 52, .length = 16},
+};
+
+static const TSFieldMapEntry ts_field_map_entries[] = {
+ [0] =
+ {field_quote, 0},
+ [1] =
+ {field_quasiquote, 0},
+ [2] =
+ {field_unqoute, 0},
+ [3] =
+ {field_unqoute_splice, 0},
+ [4] =
+ {field_unpack_iterable, 0},
+ [5] =
+ {field_unpack_mapping, 0},
+ [6] =
+ {field_quasiquote, 0, .inherited = true},
+ {field_quote, 0, .inherited = true},
+ {field_unpack_iterable, 0, .inherited = true},
+ {field_unpack_mapping, 0, .inherited = true},
+ {field_unqoute, 0, .inherited = true},
+ {field_unqoute_splice, 0, .inherited = true},
+ [12] =
+ {field_quasiquote, 1, .inherited = true},
+ {field_quote, 1, .inherited = true},
+ {field_unpack_iterable, 1, .inherited = true},
+ {field_unpack_mapping, 1, .inherited = true},
+ {field_unqoute, 1, .inherited = true},
+ {field_unqoute_splice, 1, .inherited = true},
+ [18] =
+ {field_quasiquote, 0, .inherited = true},
+ {field_quasiquote, 1, .inherited = true},
+ {field_quote, 0, .inherited = true},
+ {field_quote, 1, .inherited = true},
+ {field_unpack_iterable, 0, .inherited = true},
+ {field_unpack_iterable, 1, .inherited = true},
+ {field_unpack_mapping, 0, .inherited = true},
+ {field_unpack_mapping, 1, .inherited = true},
+ {field_unqoute, 0, .inherited = true},
+ {field_unqoute, 1, .inherited = true},
+ {field_unqoute_splice, 0, .inherited = true},
+ {field_unqoute_splice, 1, .inherited = true},
+ [30] =
+ {field_key, 0},
+ {field_quasiquote, 0, .inherited = true},
+ {field_quasiquote, 1, .inherited = true},
+ {field_quote, 0, .inherited = true},
+ {field_quote, 1, .inherited = true},
+ {field_unpack_iterable, 0, .inherited = true},
+ {field_unpack_iterable, 1, .inherited = true},
+ {field_unpack_mapping, 0, .inherited = true},
+ {field_unpack_mapping, 1, .inherited = true},
+ {field_unqoute, 0, .inherited = true},
+ {field_unqoute, 1, .inherited = true},
+ {field_unqoute_splice, 0, .inherited = true},
+ {field_unqoute_splice, 1, .inherited = true},
+ {field_value, 1},
+ [44] =
+ {field_key, 1, .inherited = true},
+ {field_quasiquote, 1, .inherited = true},
+ {field_quote, 1, .inherited = true},
+ {field_unpack_iterable, 1, .inherited = true},
+ {field_unpack_mapping, 1, .inherited = true},
+ {field_unqoute, 1, .inherited = true},
+ {field_unqoute_splice, 1, .inherited = true},
+ {field_value, 1, .inherited = true},
+ [52] =
+ {field_key, 0, .inherited = true},
+ {field_key, 1, .inherited = true},
+ {field_quasiquote, 0, .inherited = true},
+ {field_quasiquote, 1, .inherited = true},
+ {field_quote, 0, .inherited = true},
+ {field_quote, 1, .inherited = true},
+ {field_unpack_iterable, 0, .inherited = true},
+ {field_unpack_iterable, 1, .inherited = true},
+ {field_unpack_mapping, 0, .inherited = true},
+ {field_unpack_mapping, 1, .inherited = true},
+ {field_unqoute, 0, .inherited = true},
+ {field_unqoute, 1, .inherited = true},
+ {field_unqoute_splice, 0, .inherited = true},
+ {field_unqoute_splice, 1, .inherited = true},
+ {field_value, 0, .inherited = true},
+ {field_value, 1, .inherited = true},
+};
+
+static const TSSymbol ts_alias_sequences[PRODUCTION_ID_COUNT][MAX_ALIAS_SEQUENCE_LENGTH] = {
+ [0] = {0},
+};
+
+static const uint16_t ts_non_terminal_alias_map[] = {
+ 0,
+};
+
+static const TSStateId ts_primary_state_ids[STATE_COUNT] = {
+ [0] = 0,
+ [1] = 1,
+ [2] = 2,
+ [3] = 3,
+ [4] = 4,
+ [5] = 5,
+ [6] = 6,
+ [7] = 7,
+ [8] = 8,
+ [9] = 9,
+ [10] = 3,
+ [11] = 11,
+ [12] = 12,
+ [13] = 13,
+ [14] = 2,
+ [15] = 15,
+ [16] = 16,
+ [17] = 4,
+ [18] = 5,
+ [19] = 6,
+ [20] = 9,
+ [21] = 16,
+ [22] = 11,
+ [23] = 12,
+ [24] = 13,
+ [25] = 25,
+ [26] = 26,
+ [27] = 26,
+ [28] = 28,
+ [29] = 29,
+ [30] = 29,
+ [31] = 31,
+ [32] = 32,
+ [33] = 33,
+ [34] = 33,
+ [35] = 35,
+ [36] = 36,
+ [37] = 37,
+ [38] = 38,
+ [39] = 39,
+ [40] = 31,
+ [41] = 36,
+ [42] = 42,
+ [43] = 43,
+ [44] = 44,
+ [45] = 45,
+ [46] = 35,
+ [47] = 32,
+ [48] = 48,
+ [49] = 49,
+ [50] = 50,
+ [51] = 51,
+ [52] = 52,
+ [53] = 53,
+ [54] = 54,
+ [55] = 37,
+ [56] = 56,
+ [57] = 57,
+ [58] = 58,
+ [59] = 59,
+ [60] = 60,
+ [61] = 38,
+ [62] = 39,
+ [63] = 51,
+ [64] = 56,
+ [65] = 57,
+ [66] = 58,
+ [67] = 59,
+ [68] = 42,
+ [69] = 69,
+ [70] = 48,
+ [71] = 60,
+ [72] = 43,
+ [73] = 45,
+ [74] = 52,
+ [75] = 49,
+ [76] = 54,
+ [77] = 50,
+ [78] = 53,
+ [79] = 44,
+ [80] = 80,
+ [81] = 81,
+ [82] = 82,
+ [83] = 83,
+ [84] = 84,
+ [85] = 85,
+ [86] = 86,
+ [87] = 87,
+ [88] = 86,
+};
+
+static const TSCharacterRange sym_keyword_character_set_1[] = {
+ {0, 0x08}, {0x0e, 0x1f}, {'!', '!'}, {'#', '&'}, {'*', '-'}, {'/', '/'}, {'<', 'Z'}, {'\\', '\\'},
+ {'^', '_'}, {'a', 'z'}, {'|', '|'}, {0x7f, 0x10ffff},
+};
+
+static const TSCharacterRange sym_keyword_character_set_2[] = {
+ {0, 0x08}, {0x0e, 0x1f}, {'!', '!'}, {'#', '&'}, {'*', '-'}, {'/', ':'}, {'<', 'Z'}, {'\\', '\\'},
+ {'^', '_'}, {'a', 'z'}, {'|', '|'}, {0x7f, 0x10ffff},
+};
+
+static bool ts_lex(TSLexer *lexer, TSStateId state) {
+ START_LEXER();
+ eof = lexer->eof(lexer);
+ switch (state) {
+ case 0:
+ if (eof) ADVANCE(39);
+ ADVANCE_MAP(
+ '"', 3,
+ '#', 60,
+ '\'', 45,
+ '(', 115,
+ ')', 116,
+ '.', 84,
+ '0', 133,
+ ':', 53,
+ ';', 44,
+ 'I', 75,
+ 'N', 71,
+ '[', 117,
+ ']', 118,
+ '`', 46,
+ '{', 122,
+ '}', 121,
+ '~', 47,
+ '+', 62,
+ '-', 62,
+ 'b', 58,
+ 'f', 58,
+ 'r', 58,
+ );
+ if (('\t' <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') SKIP(37);
+ if (('1' <= lookahead && lookahead <= '9')) ADVANCE(134);
+ if (lookahead != 0) ADVANCE(83);
+ END_STATE();
+ case 1:
+ ADVANCE_MAP(
+ '"', 3,
+ '#', 90,
+ '\'', 45,
+ '(', 115,
+ '.', 56,
+ '0', 133,
+ ':', 53,
+ ';', 44,
+ 'I', 106,
+ 'N', 102,
+ '[', 117,
+ '`', 46,
+ '{', 122,
+ '~', 47,
+ '+', 93,
+ '-', 93,
+ 'b', 87,
+ 'f', 87,
+ 'r', 87,
+ );
+ if (('\t' <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') SKIP(1);
+ if (('1' <= lookahead && lookahead <= '9')) ADVANCE(134);
+ if (lookahead != 0 &&
+ (lookahead < '\'' || ')' < lookahead) &&
+ lookahead != ']' &&
+ lookahead != '}' &&
+ lookahead != '~') ADVANCE(114);
+ END_STATE();
+ case 2:
+ ADVANCE_MAP(
+ '"', 3,
+ '#', 91,
+ '(', 115,
+ '.', 56,
+ '0', 133,
+ ':', 53,
+ ';', 44,
+ 'I', 106,
+ 'N', 102,
+ '[', 117,
+ '{', 122,
+ '+', 93,
+ '-', 93,
+ 'b', 87,
+ 'f', 87,
+ 'r', 87,
+ );
+ if (('\t' <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') SKIP(2);
+ if (('1' <= lookahead && lookahead <= '9')) ADVANCE(134);
+ if (lookahead != 0 &&
+ (lookahead < '\'' || ')' < lookahead) &&
+ lookahead != ']' &&
+ lookahead != '`' &&
+ lookahead != '}' &&
+ lookahead != '~') ADVANCE(114);
+ END_STATE();
+ case 3:
+ if (lookahead == '"') ADVANCE(123);
+ if (lookahead != 0) ADVANCE(3);
+ END_STATE();
+ case 4:
+ if (lookahead == ',') ADVANCE(25);
+ if (lookahead == '_') ADVANCE(4);
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(134);
+ END_STATE();
+ case 5:
+ if (lookahead == '.') ADVANCE(29);
+ if (lookahead == '_') ADVANCE(14);
+ if (lookahead == 'E' ||
+ lookahead == 'e') ADVANCE(24);
+ if (lookahead == 'J' ||
+ lookahead == 'j') ADVANCE(132);
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(5);
+ END_STATE();
+ case 6:
+ if (lookahead == '.') ADVANCE(33);
+ if (lookahead == 'I') ADVANCE(22);
+ if (lookahead == 'N') ADVANCE(20);
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(5);
+ END_STATE();
+ case 7:
+ if (lookahead == ';') ADVANCE(44);
+ if (('\t' <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') SKIP(7);
+ END_STATE();
+ case 8:
+ if (lookahead == ';') ADVANCE(44);
+ if (('\t' <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') SKIP(7);
+ if ((!eof && set_contains(sym_keyword_character_set_1, 12, lookahead))) ADVANCE(83);
+ END_STATE();
+ case 9:
+ if (lookahead == 'N') ADVANCE(30);
+ END_STATE();
+ case 10:
+ if (lookahead == '[') ADVANCE(11);
+ END_STATE();
+ case 11:
+ if (lookahead == ']') ADVANCE(12);
+ if (lookahead != 0) ADVANCE(11);
+ END_STATE();
+ case 12:
+ if (lookahead == ']') ADVANCE(124);
+ END_STATE();
+ case 13:
+ if (lookahead == '_') ADVANCE(13);
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(125);
+ END_STATE();
+ case 14:
+ if (lookahead == '_') ADVANCE(14);
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(5);
+ END_STATE();
+ case 15:
+ if (lookahead == '_') ADVANCE(15);
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(128);
+ END_STATE();
+ case 16:
+ if (lookahead == '_') ADVANCE(17);
+ if (lookahead == 'E' ||
+ lookahead == 'e') ADVANCE(24);
+ if (lookahead == 'J' ||
+ lookahead == 'j') ADVANCE(132);
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(16);
+ END_STATE();
+ case 17:
+ if (lookahead == '_') ADVANCE(17);
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(16);
+ END_STATE();
+ case 18:
+ if (lookahead == '_') ADVANCE(19);
+ if (lookahead == 'J' ||
+ lookahead == 'j') ADVANCE(132);
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(18);
+ END_STATE();
+ case 19:
+ if (lookahead == '_') ADVANCE(19);
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(18);
+ END_STATE();
+ case 20:
+ if (lookahead == 'a') ADVANCE(9);
+ END_STATE();
+ case 21:
+ if (lookahead == 'f') ADVANCE(30);
+ END_STATE();
+ case 22:
+ if (lookahead == 'n') ADVANCE(21);
+ END_STATE();
+ case 23:
+ if (lookahead == '+' ||
+ lookahead == '-') ADVANCE(32);
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(128);
+ END_STATE();
+ case 24:
+ if (lookahead == '+' ||
+ lookahead == '-') ADVANCE(34);
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(18);
+ END_STATE();
+ case 25:
+ if (lookahead == ',' ||
+ lookahead == '_') ADVANCE(25);
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(137);
+ END_STATE();
+ case 26:
+ if (lookahead == ',' ||
+ lookahead == '_') ADVANCE(26);
+ if (lookahead == '0' ||
+ lookahead == '1') ADVANCE(140);
+ END_STATE();
+ case 27:
+ if (lookahead == ',' ||
+ lookahead == '_') ADVANCE(27);
+ if (('0' <= lookahead && lookahead <= '7')) ADVANCE(141);
+ END_STATE();
+ case 28:
+ if (lookahead == ',' ||
+ lookahead == '_') ADVANCE(28);
+ if (('0' <= lookahead && lookahead <= '9') ||
+ ('A' <= lookahead && lookahead <= 'F') ||
+ ('a' <= lookahead && lookahead <= 'f')) ADVANCE(142);
+ END_STATE();
+ case 29:
+ if (lookahead == 'E' ||
+ lookahead == 'e') ADVANCE(24);
+ if (lookahead == 'J' ||
+ lookahead == 'j') ADVANCE(132);
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(16);
+ END_STATE();
+ case 30:
+ if (lookahead == 'J' ||
+ lookahead == 'j') ADVANCE(132);
+ END_STATE();
+ case 31:
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(125);
+ END_STATE();
+ case 32:
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(128);
+ END_STATE();
+ case 33:
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(16);
+ END_STATE();
+ case 34:
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(18);
+ END_STATE();
+ case 35:
+ if (eof) ADVANCE(39);
+ ADVANCE_MAP(
+ '"', 3,
+ '#', 60,
+ '\'', 45,
+ '(', 115,
+ ')', 116,
+ '.', 56,
+ '0', 133,
+ ':', 53,
+ ';', 44,
+ 'I', 75,
+ 'N', 71,
+ '[', 117,
+ ']', 118,
+ '`', 46,
+ '{', 122,
+ '}', 121,
+ '~', 47,
+ '+', 62,
+ '-', 62,
+ 'b', 58,
+ 'f', 58,
+ 'r', 58,
+ );
+ if (('\t' <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') SKIP(37);
+ if (('1' <= lookahead && lookahead <= '9')) ADVANCE(134);
+ if (lookahead != 0) ADVANCE(83);
+ END_STATE();
+ case 36:
+ if (eof) ADVANCE(39);
+ ADVANCE_MAP(
+ '"', 3,
+ '#', 89,
+ '\'', 45,
+ '(', 115,
+ ')', 116,
+ '.', 84,
+ '0', 133,
+ ':', 53,
+ ';', 44,
+ 'I', 106,
+ 'N', 102,
+ '[', 117,
+ ']', 118,
+ '`', 46,
+ '{', 122,
+ '}', 121,
+ '~', 47,
+ '+', 93,
+ '-', 93,
+ 'b', 87,
+ 'f', 87,
+ 'r', 87,
+ );
+ if (('\t' <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') SKIP(37);
+ if (('1' <= lookahead && lookahead <= '9')) ADVANCE(134);
+ if (lookahead != 0) ADVANCE(114);
+ END_STATE();
+ case 37:
+ if (eof) ADVANCE(39);
+ ADVANCE_MAP(
+ '"', 3,
+ '#', 89,
+ '\'', 45,
+ '(', 115,
+ ')', 116,
+ '.', 56,
+ '0', 133,
+ ':', 53,
+ ';', 44,
+ 'I', 106,
+ 'N', 102,
+ '[', 117,
+ ']', 118,
+ '`', 46,
+ '{', 122,
+ '}', 121,
+ '~', 47,
+ '+', 93,
+ '-', 93,
+ 'b', 87,
+ 'f', 87,
+ 'r', 87,
+ );
+ if (('\t' <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') SKIP(37);
+ if (('1' <= lookahead && lookahead <= '9')) ADVANCE(134);
+ if (lookahead != 0) ADVANCE(114);
+ END_STATE();
+ case 38:
+ if (eof) ADVANCE(39);
+ ADVANCE_MAP(
+ '"', 3,
+ '#', 85,
+ '\'', 45,
+ '(', 115,
+ '.', 56,
+ '0', 133,
+ ':', 53,
+ ';', 44,
+ 'I', 106,
+ 'N', 102,
+ '[', 117,
+ '`', 46,
+ '{', 122,
+ '~', 47,
+ '+', 93,
+ '-', 93,
+ 'b', 87,
+ 'f', 87,
+ 'r', 87,
+ );
+ if (('\t' <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ') SKIP(38);
+ if (('1' <= lookahead && lookahead <= '9')) ADVANCE(134);
+ if (lookahead != 0 &&
+ (lookahead < '\'' || ')' < lookahead) &&
+ lookahead != ']' &&
+ lookahead != '}' &&
+ lookahead != '~') ADVANCE(114);
+ END_STATE();
+ case 39:
+ ACCEPT_TOKEN(ts_builtin_sym_end);
+ END_STATE();
+ case 40:
+ ACCEPT_TOKEN(sym_shebang);
+ if (lookahead == '\t' ||
+ (0x0b <= lookahead && lookahead <= '\r') ||
+ lookahead == ' ' ||
+ lookahead == '"' ||
+ ('\'' <= lookahead && lookahead <= ')') ||
+ lookahead == '.' ||
+ lookahead == ';' ||
+ lookahead == '[' ||
+ lookahead == ']' ||
+ lookahead == '`' ||
+ lookahead == '{' ||
+ lookahead == '}' ||
+ lookahead == '~') ADVANCE(41);
+ if (lookahead != 0 &&
+ (lookahead < '\t' || '\r' < lookahead)) ADVANCE(40);
+ END_STATE();
+ case 41:
+ ACCEPT_TOKEN(sym_shebang);
+ if (lookahead != 0 &&
+ lookahead != '\n') ADVANCE(41);
+ END_STATE();
+ case 42:
+ ACCEPT_TOKEN(anon_sym_POUND_);
+ if ((!eof && set_contains(sym_keyword_character_set_2, 12, lookahead))) ADVANCE(83);
+ END_STATE();
+ case 43:
+ ACCEPT_TOKEN(anon_sym_POUND_);
+ if ((!eof && set_contains(sym_keyword_character_set_2, 12, lookahead))) ADVANCE(114);
+ END_STATE();
+ case 44:
+ ACCEPT_TOKEN(sym_comment);
+ if (lookahead != 0 &&
+ lookahead != '\n') ADVANCE(44);
+ END_STATE();
+ case 45:
+ ACCEPT_TOKEN(anon_sym_SQUOTE);
+ END_STATE();
+ case 46:
+ ACCEPT_TOKEN(anon_sym_BQUOTE);
+ END_STATE();
+ case 47:
+ ACCEPT_TOKEN(anon_sym_TILDE);
+ if (lookahead == '@') ADVANCE(48);
+ END_STATE();
+ case 48:
+ ACCEPT_TOKEN(anon_sym_TILDE_AT);
+ END_STATE();
+ case 49:
+ ACCEPT_TOKEN(anon_sym_POUND_STAR);
+ if (lookahead == '*') ADVANCE(51);
+ if ((!eof && set_contains(sym_keyword_character_set_2, 12, lookahead))) ADVANCE(83);
+ END_STATE();
+ case 50:
+ ACCEPT_TOKEN(anon_sym_POUND_STAR);
+ if (lookahead == '*') ADVANCE(52);
+ if ((!eof && set_contains(sym_keyword_character_set_2, 12, lookahead))) ADVANCE(114);
+ END_STATE();
+ case 51:
+ ACCEPT_TOKEN(anon_sym_POUND_STAR_STAR);
+ if ((!eof && set_contains(sym_keyword_character_set_2, 12, lookahead))) ADVANCE(83);
+ END_STATE();
+ case 52:
+ ACCEPT_TOKEN(anon_sym_POUND_STAR_STAR);
+ if ((!eof && set_contains(sym_keyword_character_set_2, 12, lookahead))) ADVANCE(114);
+ END_STATE();
+ case 53:
+ ACCEPT_TOKEN(sym_keyword);
+ if ((!eof && set_contains(sym_keyword_character_set_1, 12, lookahead))) ADVANCE(54);
+ END_STATE();
+ case 54:
+ ACCEPT_TOKEN(sym_keyword);
+ if ((!eof && set_contains(sym_keyword_character_set_2, 12, lookahead))) ADVANCE(54);
+ END_STATE();
+ case 55:
+ ACCEPT_TOKEN(aux_sym_dotted_identifier_token1);
+ if (lookahead == '.') ADVANCE(55);
+ END_STATE();
+ case 56:
+ ACCEPT_TOKEN(aux_sym_dotted_identifier_token1);
+ if (lookahead == '.') ADVANCE(55);
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(125);
+ END_STATE();
+ case 57:
+ ACCEPT_TOKEN(aux_sym_dotted_identifier_token2);
+ if (lookahead == '"') ADVANCE(3);
+ if (lookahead == 'b' ||
+ lookahead == 'f' ||
+ lookahead == 'r') ADVANCE(59);
+ if ((!eof && set_contains(sym_keyword_character_set_2, 12, lookahead))) ADVANCE(83);
+ END_STATE();
+ case 58:
+ ACCEPT_TOKEN(aux_sym_dotted_identifier_token2);
+ if (lookahead == '"') ADVANCE(3);
+ if (lookahead == 'b' ||
+ lookahead == 'f' ||
+ lookahead == 'r') ADVANCE(57);
+ if ((!eof && set_contains(sym_keyword_character_set_2, 12, lookahead))) ADVANCE(83);
+ END_STATE();
+ case 59:
+ ACCEPT_TOKEN(aux_sym_dotted_identifier_token2);
+ if (lookahead == '"') ADVANCE(3);
+ if ((!eof && set_contains(sym_keyword_character_set_2, 12, lookahead))) ADVANCE(83);
+ END_STATE();
+ case 60:
+ ACCEPT_TOKEN(aux_sym_dotted_identifier_token2);
+ if (lookahead == '(') ADVANCE(119);
+ if (lookahead == '*') ADVANCE(49);
+ if (lookahead == '[') ADVANCE(10);
+ if (lookahead == '_') ADVANCE(42);
+ if (lookahead == '{') ADVANCE(120);
+ if ((!eof && set_contains(sym_keyword_character_set_2, 12, lookahead))) ADVANCE(83);
+ END_STATE();
+ case 61:
+ ACCEPT_TOKEN(aux_sym_dotted_identifier_token2);
+ if (lookahead == ',') ADVANCE(79);
+ if (lookahead == '_') ADVANCE(61);
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(135);
+ if ((!eof && set_contains(sym_keyword_character_set_2, 12, lookahead))) ADVANCE(83);
+ END_STATE();
+ case 62:
+ ACCEPT_TOKEN(aux_sym_dotted_identifier_token2);
+ if (lookahead == '.') ADVANCE(31);
+ if (lookahead == 'I') ADVANCE(75);
+ if (lookahead == 'N') ADVANCE(71);
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(135);
+ if ((!eof && set_contains(sym_keyword_character_set_2, 12, lookahead))) ADVANCE(83);
+ END_STATE();
+ case 63:
+ ACCEPT_TOKEN(aux_sym_dotted_identifier_token2);
+ if (lookahead == '.') ADVANCE(29);
+ if (lookahead == '_') ADVANCE(67);
+ if (lookahead == 'E' ||
+ lookahead == 'e') ADVANCE(78);
+ if (lookahead == 'J' ||
+ lookahead == 'j') ADVANCE(132);
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(63);
+ if ((!eof && set_contains(sym_keyword_character_set_2, 12, lookahead))) ADVANCE(83);
+ END_STATE();
+ case 64:
+ ACCEPT_TOKEN(aux_sym_dotted_identifier_token2);
+ if (lookahead == '.') ADVANCE(33);
+ if (lookahead == 'I') ADVANCE(76);
+ if (lookahead == 'N') ADVANCE(72);
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(63);
+ if ((!eof && set_contains(sym_keyword_character_set_2, 12, lookahead))) ADVANCE(83);
+ END_STATE();
+ case 65:
+ ACCEPT_TOKEN(aux_sym_dotted_identifier_token2);
+ if (lookahead == 'N') ADVANCE(130);
+ if ((!eof && set_contains(sym_keyword_character_set_2, 12, lookahead))) ADVANCE(83);
+ END_STATE();
+ case 66:
+ ACCEPT_TOKEN(aux_sym_dotted_identifier_token2);
+ if (lookahead == 'N') ADVANCE(80);
+ if ((!eof && set_contains(sym_keyword_character_set_2, 12, lookahead))) ADVANCE(83);
+ END_STATE();
+ case 67:
+ ACCEPT_TOKEN(aux_sym_dotted_identifier_token2);
+ if (lookahead == '_') ADVANCE(67);
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(63);
+ if ((!eof && set_contains(sym_keyword_character_set_2, 12, lookahead))) ADVANCE(83);
+ END_STATE();
+ case 68:
+ ACCEPT_TOKEN(aux_sym_dotted_identifier_token2);
+ if (lookahead == '_') ADVANCE(68);
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(126);
+ if ((!eof && set_contains(sym_keyword_character_set_2, 12, lookahead))) ADVANCE(83);
+ END_STATE();
+ case 69:
+ ACCEPT_TOKEN(aux_sym_dotted_identifier_token2);
+ if (lookahead == '_') ADVANCE(70);
+ if (lookahead == 'J' ||
+ lookahead == 'j') ADVANCE(132);
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(69);
+ if ((!eof && set_contains(sym_keyword_character_set_2, 12, lookahead))) ADVANCE(83);
+ END_STATE();
+ case 70:
+ ACCEPT_TOKEN(aux_sym_dotted_identifier_token2);
+ if (lookahead == '_') ADVANCE(70);
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(69);
+ if ((!eof && set_contains(sym_keyword_character_set_2, 12, lookahead))) ADVANCE(83);
+ END_STATE();
+ case 71:
+ ACCEPT_TOKEN(aux_sym_dotted_identifier_token2);
+ if (lookahead == 'a') ADVANCE(65);
+ if ((!eof && set_contains(sym_keyword_character_set_2, 12, lookahead))) ADVANCE(83);
+ END_STATE();
+ case 72:
+ ACCEPT_TOKEN(aux_sym_dotted_identifier_token2);
+ if (lookahead == 'a') ADVANCE(66);
+ if ((!eof && set_contains(sym_keyword_character_set_2, 12, lookahead))) ADVANCE(83);
+ END_STATE();
+ case 73:
+ ACCEPT_TOKEN(aux_sym_dotted_identifier_token2);
+ if (lookahead == 'f') ADVANCE(130);
+ if ((!eof && set_contains(sym_keyword_character_set_2, 12, lookahead))) ADVANCE(83);
+ END_STATE();
+ case 74:
+ ACCEPT_TOKEN(aux_sym_dotted_identifier_token2);
+ if (lookahead == 'f') ADVANCE(80);
+ if ((!eof && set_contains(sym_keyword_character_set_2, 12, lookahead))) ADVANCE(83);
+ END_STATE();
+ case 75:
+ ACCEPT_TOKEN(aux_sym_dotted_identifier_token2);
+ if (lookahead == 'n') ADVANCE(73);
+ if ((!eof && set_contains(sym_keyword_character_set_2, 12, lookahead))) ADVANCE(83);
+ END_STATE();
+ case 76:
+ ACCEPT_TOKEN(aux_sym_dotted_identifier_token2);
+ if (lookahead == 'n') ADVANCE(74);
+ if ((!eof && set_contains(sym_keyword_character_set_2, 12, lookahead))) ADVANCE(83);
+ END_STATE();
+ case 77:
+ ACCEPT_TOKEN(aux_sym_dotted_identifier_token2);
+ if (lookahead == '+' ||
+ lookahead == '-') ADVANCE(82);
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(126);
+ if ((!eof && set_contains(sym_keyword_character_set_2, 12, lookahead))) ADVANCE(83);
+ END_STATE();
+ case 78:
+ ACCEPT_TOKEN(aux_sym_dotted_identifier_token2);
+ if (lookahead == '+' ||
+ lookahead == '-') ADVANCE(81);
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(69);
+ if ((!eof && set_contains(sym_keyword_character_set_2, 12, lookahead))) ADVANCE(83);
+ END_STATE();
+ case 79:
+ ACCEPT_TOKEN(aux_sym_dotted_identifier_token2);
+ if (lookahead == ',' ||
+ lookahead == '_') ADVANCE(79);
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(138);
+ if ((!eof && set_contains(sym_keyword_character_set_2, 12, lookahead))) ADVANCE(83);
+ END_STATE();
+ case 80:
+ ACCEPT_TOKEN(aux_sym_dotted_identifier_token2);
+ if (lookahead == 'J' ||
+ lookahead == 'j') ADVANCE(132);
+ if ((!eof && set_contains(sym_keyword_character_set_2, 12, lookahead))) ADVANCE(83);
+ END_STATE();
+ case 81:
+ ACCEPT_TOKEN(aux_sym_dotted_identifier_token2);
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(69);
+ if ((!eof && set_contains(sym_keyword_character_set_2, 12, lookahead))) ADVANCE(83);
+ END_STATE();
+ case 82:
+ ACCEPT_TOKEN(aux_sym_dotted_identifier_token2);
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(126);
+ if ((!eof && set_contains(sym_keyword_character_set_2, 12, lookahead))) ADVANCE(83);
+ END_STATE();
+ case 83:
+ ACCEPT_TOKEN(aux_sym_dotted_identifier_token2);
+ if ((!eof && set_contains(sym_keyword_character_set_2, 12, lookahead))) ADVANCE(83);
+ END_STATE();
+ case 84:
+ ACCEPT_TOKEN(anon_sym_DOT);
+ if (lookahead == '.') ADVANCE(55);
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(125);
+ END_STATE();
+ case 85:
+ ACCEPT_TOKEN(aux_sym_dotted_identifier_token3);
+ if (lookahead == '!') ADVANCE(40);
+ if (lookahead == '(') ADVANCE(119);
+ if (lookahead == '*') ADVANCE(50);
+ if (lookahead == '[') ADVANCE(10);
+ if (lookahead == '_') ADVANCE(43);
+ if (lookahead == '{') ADVANCE(120);
+ if ((!eof && set_contains(sym_keyword_character_set_2, 12, lookahead))) ADVANCE(114);
+ END_STATE();
+ case 86:
+ ACCEPT_TOKEN(aux_sym_dotted_identifier_token3);
+ if (lookahead == '"') ADVANCE(3);
+ if (lookahead == 'b' ||
+ lookahead == 'f' ||
+ lookahead == 'r') ADVANCE(88);
+ if ((!eof && set_contains(sym_keyword_character_set_2, 12, lookahead))) ADVANCE(114);
+ END_STATE();
+ case 87:
+ ACCEPT_TOKEN(aux_sym_dotted_identifier_token3);
+ if (lookahead == '"') ADVANCE(3);
+ if (lookahead == 'b' ||
+ lookahead == 'f' ||
+ lookahead == 'r') ADVANCE(86);
+ if ((!eof && set_contains(sym_keyword_character_set_2, 12, lookahead))) ADVANCE(114);
+ END_STATE();
+ case 88:
+ ACCEPT_TOKEN(aux_sym_dotted_identifier_token3);
+ if (lookahead == '"') ADVANCE(3);
+ if ((!eof && set_contains(sym_keyword_character_set_2, 12, lookahead))) ADVANCE(114);
+ END_STATE();
+ case 89:
+ ACCEPT_TOKEN(aux_sym_dotted_identifier_token3);
+ if (lookahead == '(') ADVANCE(119);
+ if (lookahead == '*') ADVANCE(50);
+ if (lookahead == '[') ADVANCE(10);
+ if (lookahead == '_') ADVANCE(43);
+ if (lookahead == '{') ADVANCE(120);
+ if ((!eof && set_contains(sym_keyword_character_set_2, 12, lookahead))) ADVANCE(114);
+ END_STATE();
+ case 90:
+ ACCEPT_TOKEN(aux_sym_dotted_identifier_token3);
+ if (lookahead == '(') ADVANCE(119);
+ if (lookahead == '*') ADVANCE(50);
+ if (lookahead == '[') ADVANCE(10);
+ if (lookahead == '{') ADVANCE(120);
+ if ((!eof && set_contains(sym_keyword_character_set_2, 12, lookahead))) ADVANCE(114);
+ END_STATE();
+ case 91:
+ ACCEPT_TOKEN(aux_sym_dotted_identifier_token3);
+ if (lookahead == '(') ADVANCE(119);
+ if (lookahead == '[') ADVANCE(10);
+ if (lookahead == '{') ADVANCE(120);
+ if ((!eof && set_contains(sym_keyword_character_set_2, 12, lookahead))) ADVANCE(114);
+ END_STATE();
+ case 92:
+ ACCEPT_TOKEN(aux_sym_dotted_identifier_token3);
+ if (lookahead == ',') ADVANCE(110);
+ if (lookahead == '_') ADVANCE(92);
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(136);
+ if ((!eof && set_contains(sym_keyword_character_set_2, 12, lookahead))) ADVANCE(114);
+ END_STATE();
+ case 93:
+ ACCEPT_TOKEN(aux_sym_dotted_identifier_token3);
+ if (lookahead == '.') ADVANCE(31);
+ if (lookahead == 'I') ADVANCE(106);
+ if (lookahead == 'N') ADVANCE(102);
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(136);
+ if ((!eof && set_contains(sym_keyword_character_set_2, 12, lookahead))) ADVANCE(114);
+ END_STATE();
+ case 94:
+ ACCEPT_TOKEN(aux_sym_dotted_identifier_token3);
+ if (lookahead == '.') ADVANCE(29);
+ if (lookahead == '_') ADVANCE(98);
+ if (lookahead == 'E' ||
+ lookahead == 'e') ADVANCE(109);
+ if (lookahead == 'J' ||
+ lookahead == 'j') ADVANCE(132);
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(94);
+ if ((!eof && set_contains(sym_keyword_character_set_2, 12, lookahead))) ADVANCE(114);
+ END_STATE();
+ case 95:
+ ACCEPT_TOKEN(aux_sym_dotted_identifier_token3);
+ if (lookahead == '.') ADVANCE(33);
+ if (lookahead == 'I') ADVANCE(107);
+ if (lookahead == 'N') ADVANCE(103);
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(94);
+ if ((!eof && set_contains(sym_keyword_character_set_2, 12, lookahead))) ADVANCE(114);
+ END_STATE();
+ case 96:
+ ACCEPT_TOKEN(aux_sym_dotted_identifier_token3);
+ if (lookahead == 'N') ADVANCE(111);
+ if ((!eof && set_contains(sym_keyword_character_set_2, 12, lookahead))) ADVANCE(114);
+ END_STATE();
+ case 97:
+ ACCEPT_TOKEN(aux_sym_dotted_identifier_token3);
+ if (lookahead == 'N') ADVANCE(131);
+ if ((!eof && set_contains(sym_keyword_character_set_2, 12, lookahead))) ADVANCE(114);
+ END_STATE();
+ case 98:
+ ACCEPT_TOKEN(aux_sym_dotted_identifier_token3);
+ if (lookahead == '_') ADVANCE(98);
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(94);
+ if ((!eof && set_contains(sym_keyword_character_set_2, 12, lookahead))) ADVANCE(114);
+ END_STATE();
+ case 99:
+ ACCEPT_TOKEN(aux_sym_dotted_identifier_token3);
+ if (lookahead == '_') ADVANCE(99);
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(127);
+ if ((!eof && set_contains(sym_keyword_character_set_2, 12, lookahead))) ADVANCE(114);
+ END_STATE();
+ case 100:
+ ACCEPT_TOKEN(aux_sym_dotted_identifier_token3);
+ if (lookahead == '_') ADVANCE(101);
+ if (lookahead == 'J' ||
+ lookahead == 'j') ADVANCE(132);
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(100);
+ if ((!eof && set_contains(sym_keyword_character_set_2, 12, lookahead))) ADVANCE(114);
+ END_STATE();
+ case 101:
+ ACCEPT_TOKEN(aux_sym_dotted_identifier_token3);
+ if (lookahead == '_') ADVANCE(101);
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(100);
+ if ((!eof && set_contains(sym_keyword_character_set_2, 12, lookahead))) ADVANCE(114);
+ END_STATE();
+ case 102:
+ ACCEPT_TOKEN(aux_sym_dotted_identifier_token3);
+ if (lookahead == 'a') ADVANCE(97);
+ if ((!eof && set_contains(sym_keyword_character_set_2, 12, lookahead))) ADVANCE(114);
+ END_STATE();
+ case 103:
+ ACCEPT_TOKEN(aux_sym_dotted_identifier_token3);
+ if (lookahead == 'a') ADVANCE(96);
+ if ((!eof && set_contains(sym_keyword_character_set_2, 12, lookahead))) ADVANCE(114);
+ END_STATE();
+ case 104:
+ ACCEPT_TOKEN(aux_sym_dotted_identifier_token3);
+ if (lookahead == 'f') ADVANCE(111);
+ if ((!eof && set_contains(sym_keyword_character_set_2, 12, lookahead))) ADVANCE(114);
+ END_STATE();
+ case 105:
+ ACCEPT_TOKEN(aux_sym_dotted_identifier_token3);
+ if (lookahead == 'f') ADVANCE(131);
+ if ((!eof && set_contains(sym_keyword_character_set_2, 12, lookahead))) ADVANCE(114);
+ END_STATE();
+ case 106:
+ ACCEPT_TOKEN(aux_sym_dotted_identifier_token3);
+ if (lookahead == 'n') ADVANCE(105);
+ if ((!eof && set_contains(sym_keyword_character_set_2, 12, lookahead))) ADVANCE(114);
+ END_STATE();
+ case 107:
+ ACCEPT_TOKEN(aux_sym_dotted_identifier_token3);
+ if (lookahead == 'n') ADVANCE(104);
+ if ((!eof && set_contains(sym_keyword_character_set_2, 12, lookahead))) ADVANCE(114);
+ END_STATE();
+ case 108:
+ ACCEPT_TOKEN(aux_sym_dotted_identifier_token3);
+ if (lookahead == '+' ||
+ lookahead == '-') ADVANCE(113);
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(127);
+ if ((!eof && set_contains(sym_keyword_character_set_2, 12, lookahead))) ADVANCE(114);
+ END_STATE();
+ case 109:
+ ACCEPT_TOKEN(aux_sym_dotted_identifier_token3);
+ if (lookahead == '+' ||
+ lookahead == '-') ADVANCE(112);
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(100);
+ if ((!eof && set_contains(sym_keyword_character_set_2, 12, lookahead))) ADVANCE(114);
+ END_STATE();
+ case 110:
+ ACCEPT_TOKEN(aux_sym_dotted_identifier_token3);
+ if (lookahead == ',' ||
+ lookahead == '_') ADVANCE(110);
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(139);
+ if ((!eof && set_contains(sym_keyword_character_set_2, 12, lookahead))) ADVANCE(114);
+ END_STATE();
+ case 111:
+ ACCEPT_TOKEN(aux_sym_dotted_identifier_token3);
+ if (lookahead == 'J' ||
+ lookahead == 'j') ADVANCE(132);
+ if ((!eof && set_contains(sym_keyword_character_set_2, 12, lookahead))) ADVANCE(114);
+ END_STATE();
+ case 112:
+ ACCEPT_TOKEN(aux_sym_dotted_identifier_token3);
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(100);
+ if ((!eof && set_contains(sym_keyword_character_set_2, 12, lookahead))) ADVANCE(114);
+ END_STATE();
+ case 113:
+ ACCEPT_TOKEN(aux_sym_dotted_identifier_token3);
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(127);
+ if ((!eof && set_contains(sym_keyword_character_set_2, 12, lookahead))) ADVANCE(114);
+ END_STATE();
+ case 114:
+ ACCEPT_TOKEN(aux_sym_dotted_identifier_token3);
+ if ((!eof && set_contains(sym_keyword_character_set_2, 12, lookahead))) ADVANCE(114);
+ END_STATE();
+ case 115:
+ ACCEPT_TOKEN(anon_sym_LPAREN);
+ END_STATE();
+ case 116:
+ ACCEPT_TOKEN(anon_sym_RPAREN);
+ END_STATE();
+ case 117:
+ ACCEPT_TOKEN(anon_sym_LBRACK);
+ END_STATE();
+ case 118:
+ ACCEPT_TOKEN(anon_sym_RBRACK);
+ END_STATE();
+ case 119:
+ ACCEPT_TOKEN(anon_sym_POUND_LPAREN);
+ END_STATE();
+ case 120:
+ ACCEPT_TOKEN(anon_sym_POUND_LBRACE);
+ END_STATE();
+ case 121:
+ ACCEPT_TOKEN(anon_sym_RBRACE);
+ END_STATE();
+ case 122:
+ ACCEPT_TOKEN(anon_sym_LBRACE);
+ END_STATE();
+ case 123:
+ ACCEPT_TOKEN(sym_string);
+ END_STATE();
+ case 124:
+ ACCEPT_TOKEN(sym_bracket_string);
+ END_STATE();
+ case 125:
+ ACCEPT_TOKEN(sym_float);
+ if (lookahead == '_') ADVANCE(13);
+ if (lookahead == '+' ||
+ lookahead == '-') ADVANCE(6);
+ if (lookahead == 'E' ||
+ lookahead == 'e') ADVANCE(23);
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(125);
+ END_STATE();
+ case 126:
+ ACCEPT_TOKEN(sym_float);
+ if (lookahead == '_') ADVANCE(68);
+ if (lookahead == '+' ||
+ lookahead == '-') ADVANCE(64);
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(126);
+ END_STATE();
+ case 127:
+ ACCEPT_TOKEN(sym_float);
+ if (lookahead == '_') ADVANCE(99);
+ if (lookahead == '+' ||
+ lookahead == '-') ADVANCE(95);
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(127);
+ END_STATE();
+ case 128:
+ ACCEPT_TOKEN(sym_float);
+ if (lookahead == '_') ADVANCE(15);
+ if (lookahead == '+' ||
+ lookahead == '-') ADVANCE(6);
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(128);
+ END_STATE();
+ case 129:
+ ACCEPT_TOKEN(sym_float);
+ if (lookahead == '+' ||
+ lookahead == '-') ADVANCE(6);
+ if (lookahead == 'E' ||
+ lookahead == 'e') ADVANCE(23);
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(125);
+ END_STATE();
+ case 130:
+ ACCEPT_TOKEN(sym_float);
+ if (lookahead == '+' ||
+ lookahead == '-') ADVANCE(64);
+ END_STATE();
+ case 131:
+ ACCEPT_TOKEN(sym_float);
+ if (lookahead == '+' ||
+ lookahead == '-') ADVANCE(95);
+ END_STATE();
+ case 132:
+ ACCEPT_TOKEN(sym_complex);
+ END_STATE();
+ case 133:
+ ACCEPT_TOKEN(sym__decinteger);
+ ADVANCE_MAP(
+ ',', 25,
+ '.', 129,
+ '_', 4,
+ '+', 6,
+ '-', 6,
+ 'B', 140,
+ 'b', 140,
+ 'E', 23,
+ 'e', 23,
+ 'O', 141,
+ 'o', 141,
+ 'X', 142,
+ 'x', 142,
+ );
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(134);
+ END_STATE();
+ case 134:
+ ACCEPT_TOKEN(sym__decinteger);
+ if (lookahead == ',') ADVANCE(25);
+ if (lookahead == '.') ADVANCE(129);
+ if (lookahead == '_') ADVANCE(4);
+ if (('+' <= lookahead && lookahead <= '-')) ADVANCE(6);
+ if (lookahead == 'E' ||
+ lookahead == 'e') ADVANCE(23);
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(134);
+ END_STATE();
+ case 135:
+ ACCEPT_TOKEN(sym__decinteger);
+ if (lookahead == ',') ADVANCE(79);
+ if (lookahead == '.') ADVANCE(129);
+ if (lookahead == '_') ADVANCE(61);
+ if (('+' <= lookahead && lookahead <= '-')) ADVANCE(64);
+ if (lookahead == 'E' ||
+ lookahead == 'e') ADVANCE(77);
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(135);
+ END_STATE();
+ case 136:
+ ACCEPT_TOKEN(sym__decinteger);
+ if (lookahead == ',') ADVANCE(110);
+ if (lookahead == '.') ADVANCE(129);
+ if (lookahead == '_') ADVANCE(92);
+ if (('+' <= lookahead && lookahead <= '-')) ADVANCE(95);
+ if (lookahead == 'E' ||
+ lookahead == 'e') ADVANCE(108);
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(136);
+ END_STATE();
+ case 137:
+ ACCEPT_TOKEN(sym__decinteger);
+ if (lookahead == ',' ||
+ lookahead == '_') ADVANCE(25);
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(137);
+ END_STATE();
+ case 138:
+ ACCEPT_TOKEN(sym__decinteger);
+ if (lookahead == ',' ||
+ lookahead == '_') ADVANCE(79);
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(138);
+ END_STATE();
+ case 139:
+ ACCEPT_TOKEN(sym__decinteger);
+ if (lookahead == ',' ||
+ lookahead == '_') ADVANCE(110);
+ if (('0' <= lookahead && lookahead <= '9')) ADVANCE(139);
+ END_STATE();
+ case 140:
+ ACCEPT_TOKEN(sym__bininteger);
+ if (lookahead == ',' ||
+ lookahead == '_') ADVANCE(26);
+ if (lookahead == '0' ||
+ lookahead == '1') ADVANCE(140);
+ END_STATE();
+ case 141:
+ ACCEPT_TOKEN(sym__octinteger);
+ if (lookahead == ',' ||
+ lookahead == '_') ADVANCE(27);
+ if (('0' <= lookahead && lookahead <= '7')) ADVANCE(141);
+ END_STATE();
+ case 142:
+ ACCEPT_TOKEN(sym__hexinteger);
+ if (lookahead == ',' ||
+ lookahead == '_') ADVANCE(28);
+ if (('0' <= lookahead && lookahead <= '9') ||
+ ('A' <= lookahead && lookahead <= 'F') ||
+ ('a' <= lookahead && lookahead <= 'f')) ADVANCE(142);
+ END_STATE();
+ default:
+ return false;
+ }
+}
+
+static const TSLexerMode ts_lex_modes[STATE_COUNT] = {
+ [0] = {.lex_state = 0},
+ [1] = {.lex_state = 38},
+ [2] = {.lex_state = 37},
+ [3] = {.lex_state = 37},
+ [4] = {.lex_state = 37},
+ [5] = {.lex_state = 37},
+ [6] = {.lex_state = 37},
+ [7] = {.lex_state = 37},
+ [8] = {.lex_state = 37},
+ [9] = {.lex_state = 37},
+ [10] = {.lex_state = 37},
+ [11] = {.lex_state = 37},
+ [12] = {.lex_state = 37},
+ [13] = {.lex_state = 37},
+ [14] = {.lex_state = 37},
+ [15] = {.lex_state = 37},
+ [16] = {.lex_state = 37},
+ [17] = {.lex_state = 37},
+ [18] = {.lex_state = 37},
+ [19] = {.lex_state = 37},
+ [20] = {.lex_state = 37},
+ [21] = {.lex_state = 37},
+ [22] = {.lex_state = 37},
+ [23] = {.lex_state = 37},
+ [24] = {.lex_state = 37},
+ [25] = {.lex_state = 37},
+ [26] = {.lex_state = 37},
+ [27] = {.lex_state = 37},
+ [28] = {.lex_state = 37},
+ [29] = {.lex_state = 1},
+ [30] = {.lex_state = 1},
+ [31] = {.lex_state = 36},
+ [32] = {.lex_state = 36},
+ [33] = {.lex_state = 2},
+ [34] = {.lex_state = 2},
+ [35] = {.lex_state = 36},
+ [36] = {.lex_state = 36},
+ [37] = {.lex_state = 36},
+ [38] = {.lex_state = 35},
+ [39] = {.lex_state = 36},
+ [40] = {.lex_state = 36},
+ [41] = {.lex_state = 36},
+ [42] = {.lex_state = 37},
+ [43] = {.lex_state = 37},
+ [44] = {.lex_state = 37},
+ [45] = {.lex_state = 37},
+ [46] = {.lex_state = 36},
+ [47] = {.lex_state = 36},
+ [48] = {.lex_state = 37},
+ [49] = {.lex_state = 37},
+ [50] = {.lex_state = 37},
+ [51] = {.lex_state = 37},
+ [52] = {.lex_state = 37},
+ [53] = {.lex_state = 37},
+ [54] = {.lex_state = 37},
+ [55] = {.lex_state = 36},
+ [56] = {.lex_state = 37},
+ [57] = {.lex_state = 37},
+ [58] = {.lex_state = 37},
+ [59] = {.lex_state = 37},
+ [60] = {.lex_state = 37},
+ [61] = {.lex_state = 35},
+ [62] = {.lex_state = 36},
+ [63] = {.lex_state = 37},
+ [64] = {.lex_state = 37},
+ [65] = {.lex_state = 37},
+ [66] = {.lex_state = 37},
+ [67] = {.lex_state = 37},
+ [68] = {.lex_state = 37},
+ [69] = {.lex_state = 37},
+ [70] = {.lex_state = 37},
+ [71] = {.lex_state = 37},
+ [72] = {.lex_state = 37},
+ [73] = {.lex_state = 37},
+ [74] = {.lex_state = 37},
+ [75] = {.lex_state = 37},
+ [76] = {.lex_state = 37},
+ [77] = {.lex_state = 37},
+ [78] = {.lex_state = 37},
+ [79] = {.lex_state = 37},
+ [80] = {.lex_state = 2},
+ [81] = {.lex_state = 2},
+ [82] = {.lex_state = 2},
+ [83] = {.lex_state = 2},
+ [84] = {.lex_state = 2},
+ [85] = {.lex_state = 2},
+ [86] = {.lex_state = 8},
+ [87] = {.lex_state = 0},
+ [88] = {.lex_state = 8},
+};
+
+static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = {
+ [STATE(0)] = {
+ [ts_builtin_sym_end] = ACTIONS(1),
+ [anon_sym_POUND_] = ACTIONS(1),
+ [sym_comment] = ACTIONS(3),
+ [anon_sym_SQUOTE] = ACTIONS(1),
+ [anon_sym_BQUOTE] = ACTIONS(1),
+ [anon_sym_TILDE] = ACTIONS(1),
+ [anon_sym_TILDE_AT] = ACTIONS(1),
+ [anon_sym_POUND_STAR] = ACTIONS(1),
+ [anon_sym_POUND_STAR_STAR] = ACTIONS(1),
+ [sym_keyword] = ACTIONS(1),
+ [aux_sym_dotted_identifier_token1] = ACTIONS(1),
+ [aux_sym_dotted_identifier_token2] = ACTIONS(1),
+ [anon_sym_DOT] = ACTIONS(1),
+ [aux_sym_dotted_identifier_token3] = ACTIONS(1),
+ [anon_sym_LPAREN] = ACTIONS(1),
+ [anon_sym_RPAREN] = ACTIONS(1),
+ [anon_sym_LBRACK] = ACTIONS(1),
+ [anon_sym_RBRACK] = ACTIONS(1),
+ [anon_sym_POUND_LPAREN] = ACTIONS(1),
+ [anon_sym_POUND_LBRACE] = ACTIONS(1),
+ [anon_sym_RBRACE] = ACTIONS(1),
+ [anon_sym_LBRACE] = ACTIONS(1),
+ [sym_string] = ACTIONS(1),
+ [sym_bracket_string] = ACTIONS(1),
+ [sym_float] = ACTIONS(1),
+ [sym_complex] = ACTIONS(1),
+ [sym__decinteger] = ACTIONS(1),
+ [sym__bininteger] = ACTIONS(1),
+ [sym__octinteger] = ACTIONS(1),
+ [sym__hexinteger] = ACTIONS(1),
+ },
+ [STATE(1)] = {
+ [sym_source_file] = STATE(87),
+ [sym__element] = STATE(73),
+ [sym__form] = STATE(72),
+ [sym_discard] = STATE(73),
+ [sym__sugar] = STATE(33),
+ [sym__identifier] = STATE(72),
+ [sym__sequence] = STATE(72),
+ [sym__string] = STATE(72),
+ [sym__numeric_literal] = STATE(72),
+ [sym_dotted_identifier] = STATE(72),
+ [sym_symbol] = STATE(72),
+ [sym_expression] = STATE(72),
+ [sym_list] = STATE(72),
+ [sym_tuple] = STATE(72),
+ [sym_set] = STATE(72),
+ [sym_dictionary] = STATE(72),
+ [sym_integer] = STATE(72),
+ [aux_sym_source_file_repeat1] = STATE(7),
+ [ts_builtin_sym_end] = ACTIONS(5),
+ [sym_shebang] = ACTIONS(7),
+ [anon_sym_POUND_] = ACTIONS(9),
+ [sym_comment] = ACTIONS(11),
+ [anon_sym_SQUOTE] = ACTIONS(13),
+ [anon_sym_BQUOTE] = ACTIONS(15),
+ [anon_sym_TILDE] = ACTIONS(17),
+ [anon_sym_TILDE_AT] = ACTIONS(19),
+ [anon_sym_POUND_STAR] = ACTIONS(21),
+ [anon_sym_POUND_STAR_STAR] = ACTIONS(23),
+ [sym_keyword] = ACTIONS(25),
+ [aux_sym_dotted_identifier_token1] = ACTIONS(27),
+ [aux_sym_dotted_identifier_token3] = ACTIONS(29),
+ [anon_sym_LPAREN] = ACTIONS(31),
+ [anon_sym_LBRACK] = ACTIONS(33),
+ [anon_sym_POUND_LPAREN] = ACTIONS(35),
+ [anon_sym_POUND_LBRACE] = ACTIONS(37),
+ [anon_sym_LBRACE] = ACTIONS(39),
+ [sym_string] = ACTIONS(25),
+ [sym_bracket_string] = ACTIONS(25),
+ [sym_float] = ACTIONS(41),
+ [sym_complex] = ACTIONS(25),
+ [sym__decinteger] = ACTIONS(43),
+ [sym__bininteger] = ACTIONS(45),
+ [sym__octinteger] = ACTIONS(45),
+ [sym__hexinteger] = ACTIONS(45),
+ },
+ [STATE(2)] = {
+ [sym__element] = STATE(45),
+ [sym__form] = STATE(43),
+ [sym_discard] = STATE(45),
+ [sym__sugar] = STATE(34),
+ [sym__identifier] = STATE(43),
+ [sym__sequence] = STATE(43),
+ [sym__string] = STATE(43),
+ [sym__numeric_literal] = STATE(43),
+ [sym_dotted_identifier] = STATE(43),
+ [sym_symbol] = STATE(43),
+ [sym_expression] = STATE(43),
+ [sym_list] = STATE(43),
+ [sym_tuple] = STATE(43),
+ [sym_set] = STATE(43),
+ [sym_dictionary] = STATE(43),
+ [sym_integer] = STATE(43),
+ [aux_sym_source_file_repeat1] = STATE(2),
+ [anon_sym_POUND_] = ACTIONS(47),
+ [sym_comment] = ACTIONS(50),
+ [anon_sym_SQUOTE] = ACTIONS(53),
+ [anon_sym_BQUOTE] = ACTIONS(56),
+ [anon_sym_TILDE] = ACTIONS(59),
+ [anon_sym_TILDE_AT] = ACTIONS(62),
+ [anon_sym_POUND_STAR] = ACTIONS(65),
+ [anon_sym_POUND_STAR_STAR] = ACTIONS(68),
+ [sym_keyword] = ACTIONS(71),
+ [aux_sym_dotted_identifier_token1] = ACTIONS(74),
+ [aux_sym_dotted_identifier_token3] = ACTIONS(77),
+ [anon_sym_LPAREN] = ACTIONS(80),
+ [anon_sym_RPAREN] = ACTIONS(83),
+ [anon_sym_LBRACK] = ACTIONS(85),
+ [anon_sym_RBRACK] = ACTIONS(83),
+ [anon_sym_POUND_LPAREN] = ACTIONS(88),
+ [anon_sym_POUND_LBRACE] = ACTIONS(91),
+ [anon_sym_RBRACE] = ACTIONS(83),
+ [anon_sym_LBRACE] = ACTIONS(94),
+ [sym_string] = ACTIONS(71),
+ [sym_bracket_string] = ACTIONS(71),
+ [sym_float] = ACTIONS(97),
+ [sym_complex] = ACTIONS(71),
+ [sym__decinteger] = ACTIONS(100),
+ [sym__bininteger] = ACTIONS(103),
+ [sym__octinteger] = ACTIONS(103),
+ [sym__hexinteger] = ACTIONS(103),
+ },
+ [STATE(3)] = {
+ [sym__element] = STATE(45),
+ [sym__form] = STATE(43),
+ [sym_discard] = STATE(45),
+ [sym__sugar] = STATE(34),
+ [sym__identifier] = STATE(43),
+ [sym__sequence] = STATE(43),
+ [sym__string] = STATE(43),
+ [sym__numeric_literal] = STATE(43),
+ [sym_dotted_identifier] = STATE(43),
+ [sym_symbol] = STATE(43),
+ [sym_expression] = STATE(43),
+ [sym_list] = STATE(43),
+ [sym_tuple] = STATE(43),
+ [sym_set] = STATE(43),
+ [sym_dictionary] = STATE(43),
+ [sym_integer] = STATE(43),
+ [aux_sym_source_file_repeat1] = STATE(2),
+ [anon_sym_POUND_] = ACTIONS(106),
+ [sym_comment] = ACTIONS(108),
+ [anon_sym_SQUOTE] = ACTIONS(13),
+ [anon_sym_BQUOTE] = ACTIONS(15),
+ [anon_sym_TILDE] = ACTIONS(17),
+ [anon_sym_TILDE_AT] = ACTIONS(19),
+ [anon_sym_POUND_STAR] = ACTIONS(21),
+ [anon_sym_POUND_STAR_STAR] = ACTIONS(23),
+ [sym_keyword] = ACTIONS(110),
+ [aux_sym_dotted_identifier_token1] = ACTIONS(112),
+ [aux_sym_dotted_identifier_token3] = ACTIONS(114),
+ [anon_sym_LPAREN] = ACTIONS(116),
+ [anon_sym_LBRACK] = ACTIONS(118),
+ [anon_sym_RBRACK] = ACTIONS(120),
+ [anon_sym_POUND_LPAREN] = ACTIONS(122),
+ [anon_sym_POUND_LBRACE] = ACTIONS(124),
+ [anon_sym_LBRACE] = ACTIONS(126),
+ [sym_string] = ACTIONS(110),
+ [sym_bracket_string] = ACTIONS(110),
+ [sym_float] = ACTIONS(128),
+ [sym_complex] = ACTIONS(110),
+ [sym__decinteger] = ACTIONS(130),
+ [sym__bininteger] = ACTIONS(132),
+ [sym__octinteger] = ACTIONS(132),
+ [sym__hexinteger] = ACTIONS(132),
+ },
+ [STATE(4)] = {
+ [sym__element] = STATE(45),
+ [sym__form] = STATE(43),
+ [sym_discard] = STATE(45),
+ [sym__sugar] = STATE(34),
+ [sym__identifier] = STATE(43),
+ [sym__sequence] = STATE(43),
+ [sym__string] = STATE(43),
+ [sym__numeric_literal] = STATE(43),
+ [sym_dotted_identifier] = STATE(43),
+ [sym_symbol] = STATE(43),
+ [sym_expression] = STATE(43),
+ [sym_list] = STATE(43),
+ [sym_tuple] = STATE(43),
+ [sym_set] = STATE(43),
+ [sym_dictionary] = STATE(43),
+ [sym_integer] = STATE(43),
+ [aux_sym_source_file_repeat1] = STATE(11),
+ [anon_sym_POUND_] = ACTIONS(106),
+ [sym_comment] = ACTIONS(108),
+ [anon_sym_SQUOTE] = ACTIONS(13),
+ [anon_sym_BQUOTE] = ACTIONS(15),
+ [anon_sym_TILDE] = ACTIONS(17),
+ [anon_sym_TILDE_AT] = ACTIONS(19),
+ [anon_sym_POUND_STAR] = ACTIONS(21),
+ [anon_sym_POUND_STAR_STAR] = ACTIONS(23),
+ [sym_keyword] = ACTIONS(110),
+ [aux_sym_dotted_identifier_token1] = ACTIONS(112),
+ [aux_sym_dotted_identifier_token3] = ACTIONS(114),
+ [anon_sym_LPAREN] = ACTIONS(116),
+ [anon_sym_RPAREN] = ACTIONS(134),
+ [anon_sym_LBRACK] = ACTIONS(118),
+ [anon_sym_POUND_LPAREN] = ACTIONS(122),
+ [anon_sym_POUND_LBRACE] = ACTIONS(124),
+ [anon_sym_LBRACE] = ACTIONS(126),
+ [sym_string] = ACTIONS(110),
+ [sym_bracket_string] = ACTIONS(110),
+ [sym_float] = ACTIONS(128),
+ [sym_complex] = ACTIONS(110),
+ [sym__decinteger] = ACTIONS(130),
+ [sym__bininteger] = ACTIONS(132),
+ [sym__octinteger] = ACTIONS(132),
+ [sym__hexinteger] = ACTIONS(132),
+ },
+ [STATE(5)] = {
+ [sym__element] = STATE(45),
+ [sym__form] = STATE(43),
+ [sym_discard] = STATE(45),
+ [sym__sugar] = STATE(34),
+ [sym__identifier] = STATE(43),
+ [sym__sequence] = STATE(43),
+ [sym__string] = STATE(43),
+ [sym__numeric_literal] = STATE(43),
+ [sym_dotted_identifier] = STATE(43),
+ [sym_symbol] = STATE(43),
+ [sym_expression] = STATE(43),
+ [sym_list] = STATE(43),
+ [sym_tuple] = STATE(43),
+ [sym_set] = STATE(43),
+ [sym_dictionary] = STATE(43),
+ [sym_integer] = STATE(43),
+ [aux_sym_source_file_repeat1] = STATE(12),
+ [anon_sym_POUND_] = ACTIONS(106),
+ [sym_comment] = ACTIONS(108),
+ [anon_sym_SQUOTE] = ACTIONS(13),
+ [anon_sym_BQUOTE] = ACTIONS(15),
+ [anon_sym_TILDE] = ACTIONS(17),
+ [anon_sym_TILDE_AT] = ACTIONS(19),
+ [anon_sym_POUND_STAR] = ACTIONS(21),
+ [anon_sym_POUND_STAR_STAR] = ACTIONS(23),
+ [sym_keyword] = ACTIONS(110),
+ [aux_sym_dotted_identifier_token1] = ACTIONS(112),
+ [aux_sym_dotted_identifier_token3] = ACTIONS(114),
+ [anon_sym_LPAREN] = ACTIONS(116),
+ [anon_sym_LBRACK] = ACTIONS(118),
+ [anon_sym_POUND_LPAREN] = ACTIONS(122),
+ [anon_sym_POUND_LBRACE] = ACTIONS(124),
+ [anon_sym_RBRACE] = ACTIONS(136),
+ [anon_sym_LBRACE] = ACTIONS(126),
+ [sym_string] = ACTIONS(110),
+ [sym_bracket_string] = ACTIONS(110),
+ [sym_float] = ACTIONS(128),
+ [sym_complex] = ACTIONS(110),
+ [sym__decinteger] = ACTIONS(130),
+ [sym__bininteger] = ACTIONS(132),
+ [sym__octinteger] = ACTIONS(132),
+ [sym__hexinteger] = ACTIONS(132),
+ },
+ [STATE(6)] = {
+ [sym__element] = STATE(28),
+ [sym__form] = STATE(43),
+ [sym_discard] = STATE(28),
+ [sym__sugar] = STATE(34),
+ [sym__identifier] = STATE(43),
+ [sym__sequence] = STATE(43),
+ [sym__string] = STATE(43),
+ [sym__numeric_literal] = STATE(43),
+ [sym_dotted_identifier] = STATE(43),
+ [sym_symbol] = STATE(43),
+ [sym_expression] = STATE(43),
+ [sym_list] = STATE(43),
+ [sym_tuple] = STATE(43),
+ [sym_set] = STATE(43),
+ [sym_dictionary] = STATE(43),
+ [sym_integer] = STATE(43),
+ [aux_sym_dictionary_repeat1] = STATE(13),
+ [anon_sym_POUND_] = ACTIONS(106),
+ [sym_comment] = ACTIONS(138),
+ [anon_sym_SQUOTE] = ACTIONS(13),
+ [anon_sym_BQUOTE] = ACTIONS(15),
+ [anon_sym_TILDE] = ACTIONS(17),
+ [anon_sym_TILDE_AT] = ACTIONS(19),
+ [anon_sym_POUND_STAR] = ACTIONS(21),
+ [anon_sym_POUND_STAR_STAR] = ACTIONS(23),
+ [sym_keyword] = ACTIONS(110),
+ [aux_sym_dotted_identifier_token1] = ACTIONS(112),
+ [aux_sym_dotted_identifier_token3] = ACTIONS(114),
+ [anon_sym_LPAREN] = ACTIONS(116),
+ [anon_sym_LBRACK] = ACTIONS(118),
+ [anon_sym_POUND_LPAREN] = ACTIONS(122),
+ [anon_sym_POUND_LBRACE] = ACTIONS(124),
+ [anon_sym_RBRACE] = ACTIONS(140),
+ [anon_sym_LBRACE] = ACTIONS(126),
+ [sym_string] = ACTIONS(110),
+ [sym_bracket_string] = ACTIONS(110),
+ [sym_float] = ACTIONS(128),
+ [sym_complex] = ACTIONS(110),
+ [sym__decinteger] = ACTIONS(130),
+ [sym__bininteger] = ACTIONS(132),
+ [sym__octinteger] = ACTIONS(132),
+ [sym__hexinteger] = ACTIONS(132),
+ },
+ [STATE(7)] = {
+ [sym__element] = STATE(73),
+ [sym__form] = STATE(72),
+ [sym_discard] = STATE(73),
+ [sym__sugar] = STATE(33),
+ [sym__identifier] = STATE(72),
+ [sym__sequence] = STATE(72),
+ [sym__string] = STATE(72),
+ [sym__numeric_literal] = STATE(72),
+ [sym_dotted_identifier] = STATE(72),
+ [sym_symbol] = STATE(72),
+ [sym_expression] = STATE(72),
+ [sym_list] = STATE(72),
+ [sym_tuple] = STATE(72),
+ [sym_set] = STATE(72),
+ [sym_dictionary] = STATE(72),
+ [sym_integer] = STATE(72),
+ [aux_sym_source_file_repeat1] = STATE(14),
+ [ts_builtin_sym_end] = ACTIONS(142),
+ [anon_sym_POUND_] = ACTIONS(9),
+ [sym_comment] = ACTIONS(11),
+ [anon_sym_SQUOTE] = ACTIONS(13),
+ [anon_sym_BQUOTE] = ACTIONS(15),
+ [anon_sym_TILDE] = ACTIONS(17),
+ [anon_sym_TILDE_AT] = ACTIONS(19),
+ [anon_sym_POUND_STAR] = ACTIONS(21),
+ [anon_sym_POUND_STAR_STAR] = ACTIONS(23),
+ [sym_keyword] = ACTIONS(25),
+ [aux_sym_dotted_identifier_token1] = ACTIONS(27),
+ [aux_sym_dotted_identifier_token3] = ACTIONS(29),
+ [anon_sym_LPAREN] = ACTIONS(31),
+ [anon_sym_LBRACK] = ACTIONS(33),
+ [anon_sym_POUND_LPAREN] = ACTIONS(35),
+ [anon_sym_POUND_LBRACE] = ACTIONS(37),
+ [anon_sym_LBRACE] = ACTIONS(39),
+ [sym_string] = ACTIONS(25),
+ [sym_bracket_string] = ACTIONS(25),
+ [sym_float] = ACTIONS(41),
+ [sym_complex] = ACTIONS(25),
+ [sym__decinteger] = ACTIONS(43),
+ [sym__bininteger] = ACTIONS(45),
+ [sym__octinteger] = ACTIONS(45),
+ [sym__hexinteger] = ACTIONS(45),
+ },
+ [STATE(8)] = {
+ [sym__element] = STATE(73),
+ [sym__form] = STATE(72),
+ [sym_discard] = STATE(73),
+ [sym__sugar] = STATE(33),
+ [sym__identifier] = STATE(72),
+ [sym__sequence] = STATE(72),
+ [sym__string] = STATE(72),
+ [sym__numeric_literal] = STATE(72),
+ [sym_dotted_identifier] = STATE(72),
+ [sym_symbol] = STATE(72),
+ [sym_expression] = STATE(72),
+ [sym_list] = STATE(72),
+ [sym_tuple] = STATE(72),
+ [sym_set] = STATE(72),
+ [sym_dictionary] = STATE(72),
+ [sym_integer] = STATE(72),
+ [aux_sym_source_file_repeat1] = STATE(14),
+ [ts_builtin_sym_end] = ACTIONS(144),
+ [anon_sym_POUND_] = ACTIONS(9),
+ [sym_comment] = ACTIONS(11),
+ [anon_sym_SQUOTE] = ACTIONS(13),
+ [anon_sym_BQUOTE] = ACTIONS(15),
+ [anon_sym_TILDE] = ACTIONS(17),
+ [anon_sym_TILDE_AT] = ACTIONS(19),
+ [anon_sym_POUND_STAR] = ACTIONS(21),
+ [anon_sym_POUND_STAR_STAR] = ACTIONS(23),
+ [sym_keyword] = ACTIONS(25),
+ [aux_sym_dotted_identifier_token1] = ACTIONS(27),
+ [aux_sym_dotted_identifier_token3] = ACTIONS(29),
+ [anon_sym_LPAREN] = ACTIONS(31),
+ [anon_sym_LBRACK] = ACTIONS(33),
+ [anon_sym_POUND_LPAREN] = ACTIONS(35),
+ [anon_sym_POUND_LBRACE] = ACTIONS(37),
+ [anon_sym_LBRACE] = ACTIONS(39),
+ [sym_string] = ACTIONS(25),
+ [sym_bracket_string] = ACTIONS(25),
+ [sym_float] = ACTIONS(41),
+ [sym_complex] = ACTIONS(25),
+ [sym__decinteger] = ACTIONS(43),
+ [sym__bininteger] = ACTIONS(45),
+ [sym__octinteger] = ACTIONS(45),
+ [sym__hexinteger] = ACTIONS(45),
+ },
+ [STATE(9)] = {
+ [sym__element] = STATE(45),
+ [sym__form] = STATE(43),
+ [sym_discard] = STATE(45),
+ [sym__sugar] = STATE(34),
+ [sym__identifier] = STATE(43),
+ [sym__sequence] = STATE(43),
+ [sym__string] = STATE(43),
+ [sym__numeric_literal] = STATE(43),
+ [sym_dotted_identifier] = STATE(43),
+ [sym_symbol] = STATE(43),
+ [sym_expression] = STATE(43),
+ [sym_list] = STATE(43),
+ [sym_tuple] = STATE(43),
+ [sym_set] = STATE(43),
+ [sym_dictionary] = STATE(43),
+ [sym_integer] = STATE(43),
+ [aux_sym_source_file_repeat1] = STATE(2),
+ [anon_sym_POUND_] = ACTIONS(106),
+ [sym_comment] = ACTIONS(108),
+ [anon_sym_SQUOTE] = ACTIONS(13),
+ [anon_sym_BQUOTE] = ACTIONS(15),
+ [anon_sym_TILDE] = ACTIONS(17),
+ [anon_sym_TILDE_AT] = ACTIONS(19),
+ [anon_sym_POUND_STAR] = ACTIONS(21),
+ [anon_sym_POUND_STAR_STAR] = ACTIONS(23),
+ [sym_keyword] = ACTIONS(110),
+ [aux_sym_dotted_identifier_token1] = ACTIONS(112),
+ [aux_sym_dotted_identifier_token3] = ACTIONS(114),
+ [anon_sym_LPAREN] = ACTIONS(116),
+ [anon_sym_RPAREN] = ACTIONS(146),
+ [anon_sym_LBRACK] = ACTIONS(118),
+ [anon_sym_POUND_LPAREN] = ACTIONS(122),
+ [anon_sym_POUND_LBRACE] = ACTIONS(124),
+ [anon_sym_LBRACE] = ACTIONS(126),
+ [sym_string] = ACTIONS(110),
+ [sym_bracket_string] = ACTIONS(110),
+ [sym_float] = ACTIONS(128),
+ [sym_complex] = ACTIONS(110),
+ [sym__decinteger] = ACTIONS(130),
+ [sym__bininteger] = ACTIONS(132),
+ [sym__octinteger] = ACTIONS(132),
+ [sym__hexinteger] = ACTIONS(132),
+ },
+ [STATE(10)] = {
+ [sym__element] = STATE(45),
+ [sym__form] = STATE(43),
+ [sym_discard] = STATE(45),
+ [sym__sugar] = STATE(34),
+ [sym__identifier] = STATE(43),
+ [sym__sequence] = STATE(43),
+ [sym__string] = STATE(43),
+ [sym__numeric_literal] = STATE(43),
+ [sym_dotted_identifier] = STATE(43),
+ [sym_symbol] = STATE(43),
+ [sym_expression] = STATE(43),
+ [sym_list] = STATE(43),
+ [sym_tuple] = STATE(43),
+ [sym_set] = STATE(43),
+ [sym_dictionary] = STATE(43),
+ [sym_integer] = STATE(43),
+ [aux_sym_source_file_repeat1] = STATE(2),
+ [anon_sym_POUND_] = ACTIONS(106),
+ [sym_comment] = ACTIONS(108),
+ [anon_sym_SQUOTE] = ACTIONS(13),
+ [anon_sym_BQUOTE] = ACTIONS(15),
+ [anon_sym_TILDE] = ACTIONS(17),
+ [anon_sym_TILDE_AT] = ACTIONS(19),
+ [anon_sym_POUND_STAR] = ACTIONS(21),
+ [anon_sym_POUND_STAR_STAR] = ACTIONS(23),
+ [sym_keyword] = ACTIONS(110),
+ [aux_sym_dotted_identifier_token1] = ACTIONS(112),
+ [aux_sym_dotted_identifier_token3] = ACTIONS(114),
+ [anon_sym_LPAREN] = ACTIONS(116),
+ [anon_sym_LBRACK] = ACTIONS(118),
+ [anon_sym_RBRACK] = ACTIONS(148),
+ [anon_sym_POUND_LPAREN] = ACTIONS(122),
+ [anon_sym_POUND_LBRACE] = ACTIONS(124),
+ [anon_sym_LBRACE] = ACTIONS(126),
+ [sym_string] = ACTIONS(110),
+ [sym_bracket_string] = ACTIONS(110),
+ [sym_float] = ACTIONS(128),
+ [sym_complex] = ACTIONS(110),
+ [sym__decinteger] = ACTIONS(130),
+ [sym__bininteger] = ACTIONS(132),
+ [sym__octinteger] = ACTIONS(132),
+ [sym__hexinteger] = ACTIONS(132),
+ },
+ [STATE(11)] = {
+ [sym__element] = STATE(45),
+ [sym__form] = STATE(43),
+ [sym_discard] = STATE(45),
+ [sym__sugar] = STATE(34),
+ [sym__identifier] = STATE(43),
+ [sym__sequence] = STATE(43),
+ [sym__string] = STATE(43),
+ [sym__numeric_literal] = STATE(43),
+ [sym_dotted_identifier] = STATE(43),
+ [sym_symbol] = STATE(43),
+ [sym_expression] = STATE(43),
+ [sym_list] = STATE(43),
+ [sym_tuple] = STATE(43),
+ [sym_set] = STATE(43),
+ [sym_dictionary] = STATE(43),
+ [sym_integer] = STATE(43),
+ [aux_sym_source_file_repeat1] = STATE(2),
+ [anon_sym_POUND_] = ACTIONS(106),
+ [sym_comment] = ACTIONS(108),
+ [anon_sym_SQUOTE] = ACTIONS(13),
+ [anon_sym_BQUOTE] = ACTIONS(15),
+ [anon_sym_TILDE] = ACTIONS(17),
+ [anon_sym_TILDE_AT] = ACTIONS(19),
+ [anon_sym_POUND_STAR] = ACTIONS(21),
+ [anon_sym_POUND_STAR_STAR] = ACTIONS(23),
+ [sym_keyword] = ACTIONS(110),
+ [aux_sym_dotted_identifier_token1] = ACTIONS(112),
+ [aux_sym_dotted_identifier_token3] = ACTIONS(114),
+ [anon_sym_LPAREN] = ACTIONS(116),
+ [anon_sym_RPAREN] = ACTIONS(150),
+ [anon_sym_LBRACK] = ACTIONS(118),
+ [anon_sym_POUND_LPAREN] = ACTIONS(122),
+ [anon_sym_POUND_LBRACE] = ACTIONS(124),
+ [anon_sym_LBRACE] = ACTIONS(126),
+ [sym_string] = ACTIONS(110),
+ [sym_bracket_string] = ACTIONS(110),
+ [sym_float] = ACTIONS(128),
+ [sym_complex] = ACTIONS(110),
+ [sym__decinteger] = ACTIONS(130),
+ [sym__bininteger] = ACTIONS(132),
+ [sym__octinteger] = ACTIONS(132),
+ [sym__hexinteger] = ACTIONS(132),
+ },
+ [STATE(12)] = {
+ [sym__element] = STATE(45),
+ [sym__form] = STATE(43),
+ [sym_discard] = STATE(45),
+ [sym__sugar] = STATE(34),
+ [sym__identifier] = STATE(43),
+ [sym__sequence] = STATE(43),
+ [sym__string] = STATE(43),
+ [sym__numeric_literal] = STATE(43),
+ [sym_dotted_identifier] = STATE(43),
+ [sym_symbol] = STATE(43),
+ [sym_expression] = STATE(43),
+ [sym_list] = STATE(43),
+ [sym_tuple] = STATE(43),
+ [sym_set] = STATE(43),
+ [sym_dictionary] = STATE(43),
+ [sym_integer] = STATE(43),
+ [aux_sym_source_file_repeat1] = STATE(2),
+ [anon_sym_POUND_] = ACTIONS(106),
+ [sym_comment] = ACTIONS(108),
+ [anon_sym_SQUOTE] = ACTIONS(13),
+ [anon_sym_BQUOTE] = ACTIONS(15),
+ [anon_sym_TILDE] = ACTIONS(17),
+ [anon_sym_TILDE_AT] = ACTIONS(19),
+ [anon_sym_POUND_STAR] = ACTIONS(21),
+ [anon_sym_POUND_STAR_STAR] = ACTIONS(23),
+ [sym_keyword] = ACTIONS(110),
+ [aux_sym_dotted_identifier_token1] = ACTIONS(112),
+ [aux_sym_dotted_identifier_token3] = ACTIONS(114),
+ [anon_sym_LPAREN] = ACTIONS(116),
+ [anon_sym_LBRACK] = ACTIONS(118),
+ [anon_sym_POUND_LPAREN] = ACTIONS(122),
+ [anon_sym_POUND_LBRACE] = ACTIONS(124),
+ [anon_sym_RBRACE] = ACTIONS(152),
+ [anon_sym_LBRACE] = ACTIONS(126),
+ [sym_string] = ACTIONS(110),
+ [sym_bracket_string] = ACTIONS(110),
+ [sym_float] = ACTIONS(128),
+ [sym_complex] = ACTIONS(110),
+ [sym__decinteger] = ACTIONS(130),
+ [sym__bininteger] = ACTIONS(132),
+ [sym__octinteger] = ACTIONS(132),
+ [sym__hexinteger] = ACTIONS(132),
+ },
+ [STATE(13)] = {
+ [sym__element] = STATE(28),
+ [sym__form] = STATE(43),
+ [sym_discard] = STATE(28),
+ [sym__sugar] = STATE(34),
+ [sym__identifier] = STATE(43),
+ [sym__sequence] = STATE(43),
+ [sym__string] = STATE(43),
+ [sym__numeric_literal] = STATE(43),
+ [sym_dotted_identifier] = STATE(43),
+ [sym_symbol] = STATE(43),
+ [sym_expression] = STATE(43),
+ [sym_list] = STATE(43),
+ [sym_tuple] = STATE(43),
+ [sym_set] = STATE(43),
+ [sym_dictionary] = STATE(43),
+ [sym_integer] = STATE(43),
+ [aux_sym_dictionary_repeat1] = STATE(15),
+ [anon_sym_POUND_] = ACTIONS(106),
+ [sym_comment] = ACTIONS(138),
+ [anon_sym_SQUOTE] = ACTIONS(13),
+ [anon_sym_BQUOTE] = ACTIONS(15),
+ [anon_sym_TILDE] = ACTIONS(17),
+ [anon_sym_TILDE_AT] = ACTIONS(19),
+ [anon_sym_POUND_STAR] = ACTIONS(21),
+ [anon_sym_POUND_STAR_STAR] = ACTIONS(23),
+ [sym_keyword] = ACTIONS(110),
+ [aux_sym_dotted_identifier_token1] = ACTIONS(112),
+ [aux_sym_dotted_identifier_token3] = ACTIONS(114),
+ [anon_sym_LPAREN] = ACTIONS(116),
+ [anon_sym_LBRACK] = ACTIONS(118),
+ [anon_sym_POUND_LPAREN] = ACTIONS(122),
+ [anon_sym_POUND_LBRACE] = ACTIONS(124),
+ [anon_sym_RBRACE] = ACTIONS(154),
+ [anon_sym_LBRACE] = ACTIONS(126),
+ [sym_string] = ACTIONS(110),
+ [sym_bracket_string] = ACTIONS(110),
+ [sym_float] = ACTIONS(128),
+ [sym_complex] = ACTIONS(110),
+ [sym__decinteger] = ACTIONS(130),
+ [sym__bininteger] = ACTIONS(132),
+ [sym__octinteger] = ACTIONS(132),
+ [sym__hexinteger] = ACTIONS(132),
+ },
+ [STATE(14)] = {
+ [sym__element] = STATE(73),
+ [sym__form] = STATE(72),
+ [sym_discard] = STATE(73),
+ [sym__sugar] = STATE(33),
+ [sym__identifier] = STATE(72),
+ [sym__sequence] = STATE(72),
+ [sym__string] = STATE(72),
+ [sym__numeric_literal] = STATE(72),
+ [sym_dotted_identifier] = STATE(72),
+ [sym_symbol] = STATE(72),
+ [sym_expression] = STATE(72),
+ [sym_list] = STATE(72),
+ [sym_tuple] = STATE(72),
+ [sym_set] = STATE(72),
+ [sym_dictionary] = STATE(72),
+ [sym_integer] = STATE(72),
+ [aux_sym_source_file_repeat1] = STATE(14),
+ [ts_builtin_sym_end] = ACTIONS(83),
+ [anon_sym_POUND_] = ACTIONS(156),
+ [sym_comment] = ACTIONS(159),
+ [anon_sym_SQUOTE] = ACTIONS(53),
+ [anon_sym_BQUOTE] = ACTIONS(56),
+ [anon_sym_TILDE] = ACTIONS(59),
+ [anon_sym_TILDE_AT] = ACTIONS(62),
+ [anon_sym_POUND_STAR] = ACTIONS(65),
+ [anon_sym_POUND_STAR_STAR] = ACTIONS(68),
+ [sym_keyword] = ACTIONS(162),
+ [aux_sym_dotted_identifier_token1] = ACTIONS(165),
+ [aux_sym_dotted_identifier_token3] = ACTIONS(168),
+ [anon_sym_LPAREN] = ACTIONS(171),
+ [anon_sym_LBRACK] = ACTIONS(174),
+ [anon_sym_POUND_LPAREN] = ACTIONS(177),
+ [anon_sym_POUND_LBRACE] = ACTIONS(180),
+ [anon_sym_LBRACE] = ACTIONS(183),
+ [sym_string] = ACTIONS(162),
+ [sym_bracket_string] = ACTIONS(162),
+ [sym_float] = ACTIONS(186),
+ [sym_complex] = ACTIONS(162),
+ [sym__decinteger] = ACTIONS(189),
+ [sym__bininteger] = ACTIONS(192),
+ [sym__octinteger] = ACTIONS(192),
+ [sym__hexinteger] = ACTIONS(192),
+ },
+ [STATE(15)] = {
+ [sym__element] = STATE(28),
+ [sym__form] = STATE(43),
+ [sym_discard] = STATE(28),
+ [sym__sugar] = STATE(34),
+ [sym__identifier] = STATE(43),
+ [sym__sequence] = STATE(43),
+ [sym__string] = STATE(43),
+ [sym__numeric_literal] = STATE(43),
+ [sym_dotted_identifier] = STATE(43),
+ [sym_symbol] = STATE(43),
+ [sym_expression] = STATE(43),
+ [sym_list] = STATE(43),
+ [sym_tuple] = STATE(43),
+ [sym_set] = STATE(43),
+ [sym_dictionary] = STATE(43),
+ [sym_integer] = STATE(43),
+ [aux_sym_dictionary_repeat1] = STATE(15),
+ [anon_sym_POUND_] = ACTIONS(195),
+ [sym_comment] = ACTIONS(198),
+ [anon_sym_SQUOTE] = ACTIONS(201),
+ [anon_sym_BQUOTE] = ACTIONS(204),
+ [anon_sym_TILDE] = ACTIONS(207),
+ [anon_sym_TILDE_AT] = ACTIONS(210),
+ [anon_sym_POUND_STAR] = ACTIONS(213),
+ [anon_sym_POUND_STAR_STAR] = ACTIONS(216),
+ [sym_keyword] = ACTIONS(219),
+ [aux_sym_dotted_identifier_token1] = ACTIONS(222),
+ [aux_sym_dotted_identifier_token3] = ACTIONS(225),
+ [anon_sym_LPAREN] = ACTIONS(228),
+ [anon_sym_LBRACK] = ACTIONS(231),
+ [anon_sym_POUND_LPAREN] = ACTIONS(234),
+ [anon_sym_POUND_LBRACE] = ACTIONS(237),
+ [anon_sym_RBRACE] = ACTIONS(240),
+ [anon_sym_LBRACE] = ACTIONS(242),
+ [sym_string] = ACTIONS(219),
+ [sym_bracket_string] = ACTIONS(219),
+ [sym_float] = ACTIONS(245),
+ [sym_complex] = ACTIONS(219),
+ [sym__decinteger] = ACTIONS(248),
+ [sym__bininteger] = ACTIONS(251),
+ [sym__octinteger] = ACTIONS(251),
+ [sym__hexinteger] = ACTIONS(251),
+ },
+ [STATE(16)] = {
+ [sym__element] = STATE(45),
+ [sym__form] = STATE(43),
+ [sym_discard] = STATE(45),
+ [sym__sugar] = STATE(34),
+ [sym__identifier] = STATE(43),
+ [sym__sequence] = STATE(43),
+ [sym__string] = STATE(43),
+ [sym__numeric_literal] = STATE(43),
+ [sym_dotted_identifier] = STATE(43),
+ [sym_symbol] = STATE(43),
+ [sym_expression] = STATE(43),
+ [sym_list] = STATE(43),
+ [sym_tuple] = STATE(43),
+ [sym_set] = STATE(43),
+ [sym_dictionary] = STATE(43),
+ [sym_integer] = STATE(43),
+ [aux_sym_source_file_repeat1] = STATE(3),
+ [anon_sym_POUND_] = ACTIONS(106),
+ [sym_comment] = ACTIONS(108),
+ [anon_sym_SQUOTE] = ACTIONS(13),
+ [anon_sym_BQUOTE] = ACTIONS(15),
+ [anon_sym_TILDE] = ACTIONS(17),
+ [anon_sym_TILDE_AT] = ACTIONS(19),
+ [anon_sym_POUND_STAR] = ACTIONS(21),
+ [anon_sym_POUND_STAR_STAR] = ACTIONS(23),
+ [sym_keyword] = ACTIONS(110),
+ [aux_sym_dotted_identifier_token1] = ACTIONS(112),
+ [aux_sym_dotted_identifier_token3] = ACTIONS(114),
+ [anon_sym_LPAREN] = ACTIONS(116),
+ [anon_sym_LBRACK] = ACTIONS(118),
+ [anon_sym_RBRACK] = ACTIONS(254),
+ [anon_sym_POUND_LPAREN] = ACTIONS(122),
+ [anon_sym_POUND_LBRACE] = ACTIONS(124),
+ [anon_sym_LBRACE] = ACTIONS(126),
+ [sym_string] = ACTIONS(110),
+ [sym_bracket_string] = ACTIONS(110),
+ [sym_float] = ACTIONS(128),
+ [sym_complex] = ACTIONS(110),
+ [sym__decinteger] = ACTIONS(130),
+ [sym__bininteger] = ACTIONS(132),
+ [sym__octinteger] = ACTIONS(132),
+ [sym__hexinteger] = ACTIONS(132),
+ },
+ [STATE(17)] = {
+ [sym__element] = STATE(45),
+ [sym__form] = STATE(43),
+ [sym_discard] = STATE(45),
+ [sym__sugar] = STATE(34),
+ [sym__identifier] = STATE(43),
+ [sym__sequence] = STATE(43),
+ [sym__string] = STATE(43),
+ [sym__numeric_literal] = STATE(43),
+ [sym_dotted_identifier] = STATE(43),
+ [sym_symbol] = STATE(43),
+ [sym_expression] = STATE(43),
+ [sym_list] = STATE(43),
+ [sym_tuple] = STATE(43),
+ [sym_set] = STATE(43),
+ [sym_dictionary] = STATE(43),
+ [sym_integer] = STATE(43),
+ [aux_sym_source_file_repeat1] = STATE(22),
+ [anon_sym_POUND_] = ACTIONS(106),
+ [sym_comment] = ACTIONS(108),
+ [anon_sym_SQUOTE] = ACTIONS(13),
+ [anon_sym_BQUOTE] = ACTIONS(15),
+ [anon_sym_TILDE] = ACTIONS(17),
+ [anon_sym_TILDE_AT] = ACTIONS(19),
+ [anon_sym_POUND_STAR] = ACTIONS(21),
+ [anon_sym_POUND_STAR_STAR] = ACTIONS(23),
+ [sym_keyword] = ACTIONS(110),
+ [aux_sym_dotted_identifier_token1] = ACTIONS(112),
+ [aux_sym_dotted_identifier_token3] = ACTIONS(114),
+ [anon_sym_LPAREN] = ACTIONS(116),
+ [anon_sym_RPAREN] = ACTIONS(256),
+ [anon_sym_LBRACK] = ACTIONS(118),
+ [anon_sym_POUND_LPAREN] = ACTIONS(122),
+ [anon_sym_POUND_LBRACE] = ACTIONS(124),
+ [anon_sym_LBRACE] = ACTIONS(126),
+ [sym_string] = ACTIONS(110),
+ [sym_bracket_string] = ACTIONS(110),
+ [sym_float] = ACTIONS(128),
+ [sym_complex] = ACTIONS(110),
+ [sym__decinteger] = ACTIONS(130),
+ [sym__bininteger] = ACTIONS(132),
+ [sym__octinteger] = ACTIONS(132),
+ [sym__hexinteger] = ACTIONS(132),
+ },
+ [STATE(18)] = {
+ [sym__element] = STATE(45),
+ [sym__form] = STATE(43),
+ [sym_discard] = STATE(45),
+ [sym__sugar] = STATE(34),
+ [sym__identifier] = STATE(43),
+ [sym__sequence] = STATE(43),
+ [sym__string] = STATE(43),
+ [sym__numeric_literal] = STATE(43),
+ [sym_dotted_identifier] = STATE(43),
+ [sym_symbol] = STATE(43),
+ [sym_expression] = STATE(43),
+ [sym_list] = STATE(43),
+ [sym_tuple] = STATE(43),
+ [sym_set] = STATE(43),
+ [sym_dictionary] = STATE(43),
+ [sym_integer] = STATE(43),
+ [aux_sym_source_file_repeat1] = STATE(23),
+ [anon_sym_POUND_] = ACTIONS(106),
+ [sym_comment] = ACTIONS(108),
+ [anon_sym_SQUOTE] = ACTIONS(13),
+ [anon_sym_BQUOTE] = ACTIONS(15),
+ [anon_sym_TILDE] = ACTIONS(17),
+ [anon_sym_TILDE_AT] = ACTIONS(19),
+ [anon_sym_POUND_STAR] = ACTIONS(21),
+ [anon_sym_POUND_STAR_STAR] = ACTIONS(23),
+ [sym_keyword] = ACTIONS(110),
+ [aux_sym_dotted_identifier_token1] = ACTIONS(112),
+ [aux_sym_dotted_identifier_token3] = ACTIONS(114),
+ [anon_sym_LPAREN] = ACTIONS(116),
+ [anon_sym_LBRACK] = ACTIONS(118),
+ [anon_sym_POUND_LPAREN] = ACTIONS(122),
+ [anon_sym_POUND_LBRACE] = ACTIONS(124),
+ [anon_sym_RBRACE] = ACTIONS(258),
+ [anon_sym_LBRACE] = ACTIONS(126),
+ [sym_string] = ACTIONS(110),
+ [sym_bracket_string] = ACTIONS(110),
+ [sym_float] = ACTIONS(128),
+ [sym_complex] = ACTIONS(110),
+ [sym__decinteger] = ACTIONS(130),
+ [sym__bininteger] = ACTIONS(132),
+ [sym__octinteger] = ACTIONS(132),
+ [sym__hexinteger] = ACTIONS(132),
+ },
+ [STATE(19)] = {
+ [sym__element] = STATE(28),
+ [sym__form] = STATE(43),
+ [sym_discard] = STATE(28),
+ [sym__sugar] = STATE(34),
+ [sym__identifier] = STATE(43),
+ [sym__sequence] = STATE(43),
+ [sym__string] = STATE(43),
+ [sym__numeric_literal] = STATE(43),
+ [sym_dotted_identifier] = STATE(43),
+ [sym_symbol] = STATE(43),
+ [sym_expression] = STATE(43),
+ [sym_list] = STATE(43),
+ [sym_tuple] = STATE(43),
+ [sym_set] = STATE(43),
+ [sym_dictionary] = STATE(43),
+ [sym_integer] = STATE(43),
+ [aux_sym_dictionary_repeat1] = STATE(24),
+ [anon_sym_POUND_] = ACTIONS(106),
+ [sym_comment] = ACTIONS(138),
+ [anon_sym_SQUOTE] = ACTIONS(13),
+ [anon_sym_BQUOTE] = ACTIONS(15),
+ [anon_sym_TILDE] = ACTIONS(17),
+ [anon_sym_TILDE_AT] = ACTIONS(19),
+ [anon_sym_POUND_STAR] = ACTIONS(21),
+ [anon_sym_POUND_STAR_STAR] = ACTIONS(23),
+ [sym_keyword] = ACTIONS(110),
+ [aux_sym_dotted_identifier_token1] = ACTIONS(112),
+ [aux_sym_dotted_identifier_token3] = ACTIONS(114),
+ [anon_sym_LPAREN] = ACTIONS(116),
+ [anon_sym_LBRACK] = ACTIONS(118),
+ [anon_sym_POUND_LPAREN] = ACTIONS(122),
+ [anon_sym_POUND_LBRACE] = ACTIONS(124),
+ [anon_sym_RBRACE] = ACTIONS(260),
+ [anon_sym_LBRACE] = ACTIONS(126),
+ [sym_string] = ACTIONS(110),
+ [sym_bracket_string] = ACTIONS(110),
+ [sym_float] = ACTIONS(128),
+ [sym_complex] = ACTIONS(110),
+ [sym__decinteger] = ACTIONS(130),
+ [sym__bininteger] = ACTIONS(132),
+ [sym__octinteger] = ACTIONS(132),
+ [sym__hexinteger] = ACTIONS(132),
+ },
+ [STATE(20)] = {
+ [sym__element] = STATE(45),
+ [sym__form] = STATE(43),
+ [sym_discard] = STATE(45),
+ [sym__sugar] = STATE(34),
+ [sym__identifier] = STATE(43),
+ [sym__sequence] = STATE(43),
+ [sym__string] = STATE(43),
+ [sym__numeric_literal] = STATE(43),
+ [sym_dotted_identifier] = STATE(43),
+ [sym_symbol] = STATE(43),
+ [sym_expression] = STATE(43),
+ [sym_list] = STATE(43),
+ [sym_tuple] = STATE(43),
+ [sym_set] = STATE(43),
+ [sym_dictionary] = STATE(43),
+ [sym_integer] = STATE(43),
+ [aux_sym_source_file_repeat1] = STATE(2),
+ [anon_sym_POUND_] = ACTIONS(106),
+ [sym_comment] = ACTIONS(108),
+ [anon_sym_SQUOTE] = ACTIONS(13),
+ [anon_sym_BQUOTE] = ACTIONS(15),
+ [anon_sym_TILDE] = ACTIONS(17),
+ [anon_sym_TILDE_AT] = ACTIONS(19),
+ [anon_sym_POUND_STAR] = ACTIONS(21),
+ [anon_sym_POUND_STAR_STAR] = ACTIONS(23),
+ [sym_keyword] = ACTIONS(110),
+ [aux_sym_dotted_identifier_token1] = ACTIONS(112),
+ [aux_sym_dotted_identifier_token3] = ACTIONS(114),
+ [anon_sym_LPAREN] = ACTIONS(116),
+ [anon_sym_RPAREN] = ACTIONS(262),
+ [anon_sym_LBRACK] = ACTIONS(118),
+ [anon_sym_POUND_LPAREN] = ACTIONS(122),
+ [anon_sym_POUND_LBRACE] = ACTIONS(124),
+ [anon_sym_LBRACE] = ACTIONS(126),
+ [sym_string] = ACTIONS(110),
+ [sym_bracket_string] = ACTIONS(110),
+ [sym_float] = ACTIONS(128),
+ [sym_complex] = ACTIONS(110),
+ [sym__decinteger] = ACTIONS(130),
+ [sym__bininteger] = ACTIONS(132),
+ [sym__octinteger] = ACTIONS(132),
+ [sym__hexinteger] = ACTIONS(132),
+ },
+ [STATE(21)] = {
+ [sym__element] = STATE(45),
+ [sym__form] = STATE(43),
+ [sym_discard] = STATE(45),
+ [sym__sugar] = STATE(34),
+ [sym__identifier] = STATE(43),
+ [sym__sequence] = STATE(43),
+ [sym__string] = STATE(43),
+ [sym__numeric_literal] = STATE(43),
+ [sym_dotted_identifier] = STATE(43),
+ [sym_symbol] = STATE(43),
+ [sym_expression] = STATE(43),
+ [sym_list] = STATE(43),
+ [sym_tuple] = STATE(43),
+ [sym_set] = STATE(43),
+ [sym_dictionary] = STATE(43),
+ [sym_integer] = STATE(43),
+ [aux_sym_source_file_repeat1] = STATE(10),
+ [anon_sym_POUND_] = ACTIONS(106),
+ [sym_comment] = ACTIONS(108),
+ [anon_sym_SQUOTE] = ACTIONS(13),
+ [anon_sym_BQUOTE] = ACTIONS(15),
+ [anon_sym_TILDE] = ACTIONS(17),
+ [anon_sym_TILDE_AT] = ACTIONS(19),
+ [anon_sym_POUND_STAR] = ACTIONS(21),
+ [anon_sym_POUND_STAR_STAR] = ACTIONS(23),
+ [sym_keyword] = ACTIONS(110),
+ [aux_sym_dotted_identifier_token1] = ACTIONS(112),
+ [aux_sym_dotted_identifier_token3] = ACTIONS(114),
+ [anon_sym_LPAREN] = ACTIONS(116),
+ [anon_sym_LBRACK] = ACTIONS(118),
+ [anon_sym_RBRACK] = ACTIONS(264),
+ [anon_sym_POUND_LPAREN] = ACTIONS(122),
+ [anon_sym_POUND_LBRACE] = ACTIONS(124),
+ [anon_sym_LBRACE] = ACTIONS(126),
+ [sym_string] = ACTIONS(110),
+ [sym_bracket_string] = ACTIONS(110),
+ [sym_float] = ACTIONS(128),
+ [sym_complex] = ACTIONS(110),
+ [sym__decinteger] = ACTIONS(130),
+ [sym__bininteger] = ACTIONS(132),
+ [sym__octinteger] = ACTIONS(132),
+ [sym__hexinteger] = ACTIONS(132),
+ },
+ [STATE(22)] = {
+ [sym__element] = STATE(45),
+ [sym__form] = STATE(43),
+ [sym_discard] = STATE(45),
+ [sym__sugar] = STATE(34),
+ [sym__identifier] = STATE(43),
+ [sym__sequence] = STATE(43),
+ [sym__string] = STATE(43),
+ [sym__numeric_literal] = STATE(43),
+ [sym_dotted_identifier] = STATE(43),
+ [sym_symbol] = STATE(43),
+ [sym_expression] = STATE(43),
+ [sym_list] = STATE(43),
+ [sym_tuple] = STATE(43),
+ [sym_set] = STATE(43),
+ [sym_dictionary] = STATE(43),
+ [sym_integer] = STATE(43),
+ [aux_sym_source_file_repeat1] = STATE(2),
+ [anon_sym_POUND_] = ACTIONS(106),
+ [sym_comment] = ACTIONS(108),
+ [anon_sym_SQUOTE] = ACTIONS(13),
+ [anon_sym_BQUOTE] = ACTIONS(15),
+ [anon_sym_TILDE] = ACTIONS(17),
+ [anon_sym_TILDE_AT] = ACTIONS(19),
+ [anon_sym_POUND_STAR] = ACTIONS(21),
+ [anon_sym_POUND_STAR_STAR] = ACTIONS(23),
+ [sym_keyword] = ACTIONS(110),
+ [aux_sym_dotted_identifier_token1] = ACTIONS(112),
+ [aux_sym_dotted_identifier_token3] = ACTIONS(114),
+ [anon_sym_LPAREN] = ACTIONS(116),
+ [anon_sym_RPAREN] = ACTIONS(266),
+ [anon_sym_LBRACK] = ACTIONS(118),
+ [anon_sym_POUND_LPAREN] = ACTIONS(122),
+ [anon_sym_POUND_LBRACE] = ACTIONS(124),
+ [anon_sym_LBRACE] = ACTIONS(126),
+ [sym_string] = ACTIONS(110),
+ [sym_bracket_string] = ACTIONS(110),
+ [sym_float] = ACTIONS(128),
+ [sym_complex] = ACTIONS(110),
+ [sym__decinteger] = ACTIONS(130),
+ [sym__bininteger] = ACTIONS(132),
+ [sym__octinteger] = ACTIONS(132),
+ [sym__hexinteger] = ACTIONS(132),
+ },
+ [STATE(23)] = {
+ [sym__element] = STATE(45),
+ [sym__form] = STATE(43),
+ [sym_discard] = STATE(45),
+ [sym__sugar] = STATE(34),
+ [sym__identifier] = STATE(43),
+ [sym__sequence] = STATE(43),
+ [sym__string] = STATE(43),
+ [sym__numeric_literal] = STATE(43),
+ [sym_dotted_identifier] = STATE(43),
+ [sym_symbol] = STATE(43),
+ [sym_expression] = STATE(43),
+ [sym_list] = STATE(43),
+ [sym_tuple] = STATE(43),
+ [sym_set] = STATE(43),
+ [sym_dictionary] = STATE(43),
+ [sym_integer] = STATE(43),
+ [aux_sym_source_file_repeat1] = STATE(2),
+ [anon_sym_POUND_] = ACTIONS(106),
+ [sym_comment] = ACTIONS(108),
+ [anon_sym_SQUOTE] = ACTIONS(13),
+ [anon_sym_BQUOTE] = ACTIONS(15),
+ [anon_sym_TILDE] = ACTIONS(17),
+ [anon_sym_TILDE_AT] = ACTIONS(19),
+ [anon_sym_POUND_STAR] = ACTIONS(21),
+ [anon_sym_POUND_STAR_STAR] = ACTIONS(23),
+ [sym_keyword] = ACTIONS(110),
+ [aux_sym_dotted_identifier_token1] = ACTIONS(112),
+ [aux_sym_dotted_identifier_token3] = ACTIONS(114),
+ [anon_sym_LPAREN] = ACTIONS(116),
+ [anon_sym_LBRACK] = ACTIONS(118),
+ [anon_sym_POUND_LPAREN] = ACTIONS(122),
+ [anon_sym_POUND_LBRACE] = ACTIONS(124),
+ [anon_sym_RBRACE] = ACTIONS(268),
+ [anon_sym_LBRACE] = ACTIONS(126),
+ [sym_string] = ACTIONS(110),
+ [sym_bracket_string] = ACTIONS(110),
+ [sym_float] = ACTIONS(128),
+ [sym_complex] = ACTIONS(110),
+ [sym__decinteger] = ACTIONS(130),
+ [sym__bininteger] = ACTIONS(132),
+ [sym__octinteger] = ACTIONS(132),
+ [sym__hexinteger] = ACTIONS(132),
+ },
+ [STATE(24)] = {
+ [sym__element] = STATE(28),
+ [sym__form] = STATE(43),
+ [sym_discard] = STATE(28),
+ [sym__sugar] = STATE(34),
+ [sym__identifier] = STATE(43),
+ [sym__sequence] = STATE(43),
+ [sym__string] = STATE(43),
+ [sym__numeric_literal] = STATE(43),
+ [sym_dotted_identifier] = STATE(43),
+ [sym_symbol] = STATE(43),
+ [sym_expression] = STATE(43),
+ [sym_list] = STATE(43),
+ [sym_tuple] = STATE(43),
+ [sym_set] = STATE(43),
+ [sym_dictionary] = STATE(43),
+ [sym_integer] = STATE(43),
+ [aux_sym_dictionary_repeat1] = STATE(15),
+ [anon_sym_POUND_] = ACTIONS(106),
+ [sym_comment] = ACTIONS(138),
+ [anon_sym_SQUOTE] = ACTIONS(13),
+ [anon_sym_BQUOTE] = ACTIONS(15),
+ [anon_sym_TILDE] = ACTIONS(17),
+ [anon_sym_TILDE_AT] = ACTIONS(19),
+ [anon_sym_POUND_STAR] = ACTIONS(21),
+ [anon_sym_POUND_STAR_STAR] = ACTIONS(23),
+ [sym_keyword] = ACTIONS(110),
+ [aux_sym_dotted_identifier_token1] = ACTIONS(112),
+ [aux_sym_dotted_identifier_token3] = ACTIONS(114),
+ [anon_sym_LPAREN] = ACTIONS(116),
+ [anon_sym_LBRACK] = ACTIONS(118),
+ [anon_sym_POUND_LPAREN] = ACTIONS(122),
+ [anon_sym_POUND_LBRACE] = ACTIONS(124),
+ [anon_sym_RBRACE] = ACTIONS(270),
+ [anon_sym_LBRACE] = ACTIONS(126),
+ [sym_string] = ACTIONS(110),
+ [sym_bracket_string] = ACTIONS(110),
+ [sym_float] = ACTIONS(128),
+ [sym_complex] = ACTIONS(110),
+ [sym__decinteger] = ACTIONS(130),
+ [sym__bininteger] = ACTIONS(132),
+ [sym__octinteger] = ACTIONS(132),
+ [sym__hexinteger] = ACTIONS(132),
+ },
+ [STATE(25)] = {
+ [sym__element] = STATE(73),
+ [sym__form] = STATE(72),
+ [sym_discard] = STATE(73),
+ [sym__sugar] = STATE(33),
+ [sym__identifier] = STATE(72),
+ [sym__sequence] = STATE(72),
+ [sym__string] = STATE(72),
+ [sym__numeric_literal] = STATE(72),
+ [sym_dotted_identifier] = STATE(72),
+ [sym_symbol] = STATE(72),
+ [sym_expression] = STATE(72),
+ [sym_list] = STATE(72),
+ [sym_tuple] = STATE(72),
+ [sym_set] = STATE(72),
+ [sym_dictionary] = STATE(72),
+ [sym_integer] = STATE(72),
+ [aux_sym_source_file_repeat1] = STATE(8),
+ [ts_builtin_sym_end] = ACTIONS(272),
+ [anon_sym_POUND_] = ACTIONS(9),
+ [sym_comment] = ACTIONS(11),
+ [anon_sym_SQUOTE] = ACTIONS(13),
+ [anon_sym_BQUOTE] = ACTIONS(15),
+ [anon_sym_TILDE] = ACTIONS(17),
+ [anon_sym_TILDE_AT] = ACTIONS(19),
+ [anon_sym_POUND_STAR] = ACTIONS(21),
+ [anon_sym_POUND_STAR_STAR] = ACTIONS(23),
+ [sym_keyword] = ACTIONS(25),
+ [aux_sym_dotted_identifier_token1] = ACTIONS(27),
+ [aux_sym_dotted_identifier_token3] = ACTIONS(29),
+ [anon_sym_LPAREN] = ACTIONS(31),
+ [anon_sym_LBRACK] = ACTIONS(33),
+ [anon_sym_POUND_LPAREN] = ACTIONS(35),
+ [anon_sym_POUND_LBRACE] = ACTIONS(37),
+ [anon_sym_LBRACE] = ACTIONS(39),
+ [sym_string] = ACTIONS(25),
+ [sym_bracket_string] = ACTIONS(25),
+ [sym_float] = ACTIONS(41),
+ [sym_complex] = ACTIONS(25),
+ [sym__decinteger] = ACTIONS(43),
+ [sym__bininteger] = ACTIONS(45),
+ [sym__octinteger] = ACTIONS(45),
+ [sym__hexinteger] = ACTIONS(45),
+ },
+ [STATE(26)] = {
+ [sym__element] = STATE(45),
+ [sym__form] = STATE(43),
+ [sym_discard] = STATE(45),
+ [sym__sugar] = STATE(34),
+ [sym__identifier] = STATE(43),
+ [sym__sequence] = STATE(43),
+ [sym__string] = STATE(43),
+ [sym__numeric_literal] = STATE(43),
+ [sym_dotted_identifier] = STATE(43),
+ [sym_symbol] = STATE(43),
+ [sym_expression] = STATE(43),
+ [sym_list] = STATE(43),
+ [sym_tuple] = STATE(43),
+ [sym_set] = STATE(43),
+ [sym_dictionary] = STATE(43),
+ [sym_integer] = STATE(43),
+ [aux_sym_source_file_repeat1] = STATE(9),
+ [anon_sym_POUND_] = ACTIONS(106),
+ [sym_comment] = ACTIONS(108),
+ [anon_sym_SQUOTE] = ACTIONS(13),
+ [anon_sym_BQUOTE] = ACTIONS(15),
+ [anon_sym_TILDE] = ACTIONS(17),
+ [anon_sym_TILDE_AT] = ACTIONS(19),
+ [anon_sym_POUND_STAR] = ACTIONS(21),
+ [anon_sym_POUND_STAR_STAR] = ACTIONS(23),
+ [sym_keyword] = ACTIONS(110),
+ [aux_sym_dotted_identifier_token1] = ACTIONS(112),
+ [aux_sym_dotted_identifier_token3] = ACTIONS(114),
+ [anon_sym_LPAREN] = ACTIONS(116),
+ [anon_sym_LBRACK] = ACTIONS(118),
+ [anon_sym_POUND_LPAREN] = ACTIONS(122),
+ [anon_sym_POUND_LBRACE] = ACTIONS(124),
+ [anon_sym_LBRACE] = ACTIONS(126),
+ [sym_string] = ACTIONS(110),
+ [sym_bracket_string] = ACTIONS(110),
+ [sym_float] = ACTIONS(128),
+ [sym_complex] = ACTIONS(110),
+ [sym__decinteger] = ACTIONS(130),
+ [sym__bininteger] = ACTIONS(132),
+ [sym__octinteger] = ACTIONS(132),
+ [sym__hexinteger] = ACTIONS(132),
+ },
+ [STATE(27)] = {
+ [sym__element] = STATE(45),
+ [sym__form] = STATE(43),
+ [sym_discard] = STATE(45),
+ [sym__sugar] = STATE(34),
+ [sym__identifier] = STATE(43),
+ [sym__sequence] = STATE(43),
+ [sym__string] = STATE(43),
+ [sym__numeric_literal] = STATE(43),
+ [sym_dotted_identifier] = STATE(43),
+ [sym_symbol] = STATE(43),
+ [sym_expression] = STATE(43),
+ [sym_list] = STATE(43),
+ [sym_tuple] = STATE(43),
+ [sym_set] = STATE(43),
+ [sym_dictionary] = STATE(43),
+ [sym_integer] = STATE(43),
+ [aux_sym_source_file_repeat1] = STATE(20),
+ [anon_sym_POUND_] = ACTIONS(106),
+ [sym_comment] = ACTIONS(108),
+ [anon_sym_SQUOTE] = ACTIONS(13),
+ [anon_sym_BQUOTE] = ACTIONS(15),
+ [anon_sym_TILDE] = ACTIONS(17),
+ [anon_sym_TILDE_AT] = ACTIONS(19),
+ [anon_sym_POUND_STAR] = ACTIONS(21),
+ [anon_sym_POUND_STAR_STAR] = ACTIONS(23),
+ [sym_keyword] = ACTIONS(110),
+ [aux_sym_dotted_identifier_token1] = ACTIONS(112),
+ [aux_sym_dotted_identifier_token3] = ACTIONS(114),
+ [anon_sym_LPAREN] = ACTIONS(116),
+ [anon_sym_LBRACK] = ACTIONS(118),
+ [anon_sym_POUND_LPAREN] = ACTIONS(122),
+ [anon_sym_POUND_LBRACE] = ACTIONS(124),
+ [anon_sym_LBRACE] = ACTIONS(126),
+ [sym_string] = ACTIONS(110),
+ [sym_bracket_string] = ACTIONS(110),
+ [sym_float] = ACTIONS(128),
+ [sym_complex] = ACTIONS(110),
+ [sym__decinteger] = ACTIONS(130),
+ [sym__bininteger] = ACTIONS(132),
+ [sym__octinteger] = ACTIONS(132),
+ [sym__hexinteger] = ACTIONS(132),
+ },
+ [STATE(28)] = {
+ [sym__element] = STATE(69),
+ [sym__form] = STATE(43),
+ [sym_discard] = STATE(69),
+ [sym__sugar] = STATE(34),
+ [sym__identifier] = STATE(43),
+ [sym__sequence] = STATE(43),
+ [sym__string] = STATE(43),
+ [sym__numeric_literal] = STATE(43),
+ [sym_dotted_identifier] = STATE(43),
+ [sym_symbol] = STATE(43),
+ [sym_expression] = STATE(43),
+ [sym_list] = STATE(43),
+ [sym_tuple] = STATE(43),
+ [sym_set] = STATE(43),
+ [sym_dictionary] = STATE(43),
+ [sym_integer] = STATE(43),
+ [anon_sym_POUND_] = ACTIONS(106),
+ [sym_comment] = ACTIONS(274),
+ [anon_sym_SQUOTE] = ACTIONS(13),
+ [anon_sym_BQUOTE] = ACTIONS(15),
+ [anon_sym_TILDE] = ACTIONS(17),
+ [anon_sym_TILDE_AT] = ACTIONS(19),
+ [anon_sym_POUND_STAR] = ACTIONS(21),
+ [anon_sym_POUND_STAR_STAR] = ACTIONS(23),
+ [sym_keyword] = ACTIONS(110),
+ [aux_sym_dotted_identifier_token1] = ACTIONS(112),
+ [aux_sym_dotted_identifier_token3] = ACTIONS(114),
+ [anon_sym_LPAREN] = ACTIONS(116),
+ [anon_sym_LBRACK] = ACTIONS(118),
+ [anon_sym_POUND_LPAREN] = ACTIONS(122),
+ [anon_sym_POUND_LBRACE] = ACTIONS(124),
+ [anon_sym_LBRACE] = ACTIONS(126),
+ [sym_string] = ACTIONS(110),
+ [sym_bracket_string] = ACTIONS(110),
+ [sym_float] = ACTIONS(128),
+ [sym_complex] = ACTIONS(110),
+ [sym__decinteger] = ACTIONS(130),
+ [sym__bininteger] = ACTIONS(132),
+ [sym__octinteger] = ACTIONS(132),
+ [sym__hexinteger] = ACTIONS(132),
+ },
+ [STATE(29)] = {
+ [sym__form] = STATE(42),
+ [sym__sugar] = STATE(34),
+ [sym__identifier] = STATE(42),
+ [sym__sequence] = STATE(42),
+ [sym__string] = STATE(42),
+ [sym__numeric_literal] = STATE(42),
+ [sym_dotted_identifier] = STATE(42),
+ [sym_symbol] = STATE(42),
+ [sym_expression] = STATE(42),
+ [sym_list] = STATE(42),
+ [sym_tuple] = STATE(42),
+ [sym_set] = STATE(42),
+ [sym_dictionary] = STATE(42),
+ [sym_integer] = STATE(42),
+ [sym_comment] = ACTIONS(3),
+ [anon_sym_SQUOTE] = ACTIONS(13),
+ [anon_sym_BQUOTE] = ACTIONS(15),
+ [anon_sym_TILDE] = ACTIONS(17),
+ [anon_sym_TILDE_AT] = ACTIONS(19),
+ [anon_sym_POUND_STAR] = ACTIONS(21),
+ [anon_sym_POUND_STAR_STAR] = ACTIONS(23),
+ [sym_keyword] = ACTIONS(276),
+ [aux_sym_dotted_identifier_token1] = ACTIONS(112),
+ [aux_sym_dotted_identifier_token3] = ACTIONS(114),
+ [anon_sym_LPAREN] = ACTIONS(116),
+ [anon_sym_LBRACK] = ACTIONS(118),
+ [anon_sym_POUND_LPAREN] = ACTIONS(122),
+ [anon_sym_POUND_LBRACE] = ACTIONS(124),
+ [anon_sym_LBRACE] = ACTIONS(126),
+ [sym_string] = ACTIONS(276),
+ [sym_bracket_string] = ACTIONS(276),
+ [sym_float] = ACTIONS(278),
+ [sym_complex] = ACTIONS(276),
+ [sym__decinteger] = ACTIONS(130),
+ [sym__bininteger] = ACTIONS(132),
+ [sym__octinteger] = ACTIONS(132),
+ [sym__hexinteger] = ACTIONS(132),
+ },
+ [STATE(30)] = {
+ [sym__form] = STATE(68),
+ [sym__sugar] = STATE(33),
+ [sym__identifier] = STATE(68),
+ [sym__sequence] = STATE(68),
+ [sym__string] = STATE(68),
+ [sym__numeric_literal] = STATE(68),
+ [sym_dotted_identifier] = STATE(68),
+ [sym_symbol] = STATE(68),
+ [sym_expression] = STATE(68),
+ [sym_list] = STATE(68),
+ [sym_tuple] = STATE(68),
+ [sym_set] = STATE(68),
+ [sym_dictionary] = STATE(68),
+ [sym_integer] = STATE(68),
+ [sym_comment] = ACTIONS(3),
+ [anon_sym_SQUOTE] = ACTIONS(13),
+ [anon_sym_BQUOTE] = ACTIONS(15),
+ [anon_sym_TILDE] = ACTIONS(17),
+ [anon_sym_TILDE_AT] = ACTIONS(19),
+ [anon_sym_POUND_STAR] = ACTIONS(21),
+ [anon_sym_POUND_STAR_STAR] = ACTIONS(23),
+ [sym_keyword] = ACTIONS(280),
+ [aux_sym_dotted_identifier_token1] = ACTIONS(27),
+ [aux_sym_dotted_identifier_token3] = ACTIONS(29),
+ [anon_sym_LPAREN] = ACTIONS(31),
+ [anon_sym_LBRACK] = ACTIONS(33),
+ [anon_sym_POUND_LPAREN] = ACTIONS(35),
+ [anon_sym_POUND_LBRACE] = ACTIONS(37),
+ [anon_sym_LBRACE] = ACTIONS(39),
+ [sym_string] = ACTIONS(280),
+ [sym_bracket_string] = ACTIONS(280),
+ [sym_float] = ACTIONS(282),
+ [sym_complex] = ACTIONS(280),
+ [sym__decinteger] = ACTIONS(43),
+ [sym__bininteger] = ACTIONS(45),
+ [sym__octinteger] = ACTIONS(45),
+ [sym__hexinteger] = ACTIONS(45),
+ },
+ [STATE(31)] = {
+ [aux_sym_dotted_identifier_repeat1] = STATE(31),
+ [anon_sym_POUND_] = ACTIONS(284),
+ [sym_comment] = ACTIONS(286),
+ [anon_sym_SQUOTE] = ACTIONS(286),
+ [anon_sym_BQUOTE] = ACTIONS(286),
+ [anon_sym_TILDE] = ACTIONS(284),
+ [anon_sym_TILDE_AT] = ACTIONS(286),
+ [anon_sym_POUND_STAR] = ACTIONS(284),
+ [anon_sym_POUND_STAR_STAR] = ACTIONS(284),
+ [sym_keyword] = ACTIONS(286),
+ [aux_sym_dotted_identifier_token1] = ACTIONS(284),
+ [anon_sym_DOT] = ACTIONS(288),
+ [aux_sym_dotted_identifier_token3] = ACTIONS(284),
+ [anon_sym_LPAREN] = ACTIONS(286),
+ [anon_sym_RPAREN] = ACTIONS(286),
+ [anon_sym_LBRACK] = ACTIONS(286),
+ [anon_sym_RBRACK] = ACTIONS(286),
+ [anon_sym_POUND_LPAREN] = ACTIONS(286),
+ [anon_sym_POUND_LBRACE] = ACTIONS(286),
+ [anon_sym_RBRACE] = ACTIONS(286),
+ [anon_sym_LBRACE] = ACTIONS(286),
+ [sym_string] = ACTIONS(286),
+ [sym_bracket_string] = ACTIONS(286),
+ [sym_float] = ACTIONS(284),
+ [sym_complex] = ACTIONS(286),
+ [sym__decinteger] = ACTIONS(284),
+ [sym__bininteger] = ACTIONS(286),
+ [sym__octinteger] = ACTIONS(286),
+ [sym__hexinteger] = ACTIONS(286),
+ },
+ [STATE(32)] = {
+ [aux_sym_dotted_identifier_repeat1] = STATE(36),
+ [anon_sym_POUND_] = ACTIONS(291),
+ [sym_comment] = ACTIONS(293),
+ [anon_sym_SQUOTE] = ACTIONS(293),
+ [anon_sym_BQUOTE] = ACTIONS(293),
+ [anon_sym_TILDE] = ACTIONS(291),
+ [anon_sym_TILDE_AT] = ACTIONS(293),
+ [anon_sym_POUND_STAR] = ACTIONS(291),
+ [anon_sym_POUND_STAR_STAR] = ACTIONS(291),
+ [sym_keyword] = ACTIONS(293),
+ [aux_sym_dotted_identifier_token1] = ACTIONS(291),
+ [anon_sym_DOT] = ACTIONS(295),
+ [aux_sym_dotted_identifier_token3] = ACTIONS(291),
+ [anon_sym_LPAREN] = ACTIONS(293),
+ [anon_sym_RPAREN] = ACTIONS(293),
+ [anon_sym_LBRACK] = ACTIONS(293),
+ [anon_sym_RBRACK] = ACTIONS(293),
+ [anon_sym_POUND_LPAREN] = ACTIONS(293),
+ [anon_sym_POUND_LBRACE] = ACTIONS(293),
+ [anon_sym_RBRACE] = ACTIONS(293),
+ [anon_sym_LBRACE] = ACTIONS(293),
+ [sym_string] = ACTIONS(293),
+ [sym_bracket_string] = ACTIONS(293),
+ [sym_float] = ACTIONS(291),
+ [sym_complex] = ACTIONS(293),
+ [sym__decinteger] = ACTIONS(291),
+ [sym__bininteger] = ACTIONS(293),
+ [sym__octinteger] = ACTIONS(293),
+ [sym__hexinteger] = ACTIONS(293),
+ },
+ [STATE(33)] = {
+ [sym__identifier] = STATE(74),
+ [sym__sequence] = STATE(78),
+ [sym__string] = STATE(76),
+ [sym__numeric_literal] = STATE(74),
+ [sym_dotted_identifier] = STATE(74),
+ [sym_symbol] = STATE(74),
+ [sym_expression] = STATE(78),
+ [sym_list] = STATE(78),
+ [sym_tuple] = STATE(78),
+ [sym_set] = STATE(78),
+ [sym_dictionary] = STATE(78),
+ [sym_integer] = STATE(74),
+ [sym_comment] = ACTIONS(3),
+ [sym_keyword] = ACTIONS(297),
+ [aux_sym_dotted_identifier_token1] = ACTIONS(27),
+ [aux_sym_dotted_identifier_token3] = ACTIONS(29),
+ [anon_sym_LPAREN] = ACTIONS(31),
+ [anon_sym_LBRACK] = ACTIONS(33),
+ [anon_sym_POUND_LPAREN] = ACTIONS(35),
+ [anon_sym_POUND_LBRACE] = ACTIONS(37),
+ [anon_sym_LBRACE] = ACTIONS(39),
+ [sym_string] = ACTIONS(299),
+ [sym_bracket_string] = ACTIONS(299),
+ [sym_float] = ACTIONS(301),
+ [sym_complex] = ACTIONS(297),
+ [sym__decinteger] = ACTIONS(43),
+ [sym__bininteger] = ACTIONS(45),
+ [sym__octinteger] = ACTIONS(45),
+ [sym__hexinteger] = ACTIONS(45),
+ },
+ [STATE(34)] = {
+ [sym__identifier] = STATE(52),
+ [sym__sequence] = STATE(53),
+ [sym__string] = STATE(54),
+ [sym__numeric_literal] = STATE(52),
+ [sym_dotted_identifier] = STATE(52),
+ [sym_symbol] = STATE(52),
+ [sym_expression] = STATE(53),
+ [sym_list] = STATE(53),
+ [sym_tuple] = STATE(53),
+ [sym_set] = STATE(53),
+ [sym_dictionary] = STATE(53),
+ [sym_integer] = STATE(52),
+ [sym_comment] = ACTIONS(3),
+ [sym_keyword] = ACTIONS(303),
+ [aux_sym_dotted_identifier_token1] = ACTIONS(112),
+ [aux_sym_dotted_identifier_token3] = ACTIONS(114),
+ [anon_sym_LPAREN] = ACTIONS(116),
+ [anon_sym_LBRACK] = ACTIONS(118),
+ [anon_sym_POUND_LPAREN] = ACTIONS(122),
+ [anon_sym_POUND_LBRACE] = ACTIONS(124),
+ [anon_sym_LBRACE] = ACTIONS(126),
+ [sym_string] = ACTIONS(305),
+ [sym_bracket_string] = ACTIONS(305),
+ [sym_float] = ACTIONS(307),
+ [sym_complex] = ACTIONS(303),
+ [sym__decinteger] = ACTIONS(130),
+ [sym__bininteger] = ACTIONS(132),
+ [sym__octinteger] = ACTIONS(132),
+ [sym__hexinteger] = ACTIONS(132),
+ },
+ [STATE(35)] = {
+ [aux_sym_dotted_identifier_repeat1] = STATE(37),
+ [anon_sym_POUND_] = ACTIONS(309),
+ [sym_comment] = ACTIONS(311),
+ [anon_sym_SQUOTE] = ACTIONS(311),
+ [anon_sym_BQUOTE] = ACTIONS(311),
+ [anon_sym_TILDE] = ACTIONS(309),
+ [anon_sym_TILDE_AT] = ACTIONS(311),
+ [anon_sym_POUND_STAR] = ACTIONS(309),
+ [anon_sym_POUND_STAR_STAR] = ACTIONS(309),
+ [sym_keyword] = ACTIONS(311),
+ [aux_sym_dotted_identifier_token1] = ACTIONS(309),
+ [anon_sym_DOT] = ACTIONS(295),
+ [aux_sym_dotted_identifier_token3] = ACTIONS(309),
+ [anon_sym_LPAREN] = ACTIONS(311),
+ [anon_sym_RPAREN] = ACTIONS(311),
+ [anon_sym_LBRACK] = ACTIONS(311),
+ [anon_sym_RBRACK] = ACTIONS(311),
+ [anon_sym_POUND_LPAREN] = ACTIONS(311),
+ [anon_sym_POUND_LBRACE] = ACTIONS(311),
+ [anon_sym_RBRACE] = ACTIONS(311),
+ [anon_sym_LBRACE] = ACTIONS(311),
+ [sym_string] = ACTIONS(311),
+ [sym_bracket_string] = ACTIONS(311),
+ [sym_float] = ACTIONS(309),
+ [sym_complex] = ACTIONS(311),
+ [sym__decinteger] = ACTIONS(309),
+ [sym__bininteger] = ACTIONS(311),
+ [sym__octinteger] = ACTIONS(311),
+ [sym__hexinteger] = ACTIONS(311),
+ },
+ [STATE(36)] = {
+ [aux_sym_dotted_identifier_repeat1] = STATE(31),
+ [anon_sym_POUND_] = ACTIONS(313),
+ [sym_comment] = ACTIONS(315),
+ [anon_sym_SQUOTE] = ACTIONS(315),
+ [anon_sym_BQUOTE] = ACTIONS(315),
+ [anon_sym_TILDE] = ACTIONS(313),
+ [anon_sym_TILDE_AT] = ACTIONS(315),
+ [anon_sym_POUND_STAR] = ACTIONS(313),
+ [anon_sym_POUND_STAR_STAR] = ACTIONS(313),
+ [sym_keyword] = ACTIONS(315),
+ [aux_sym_dotted_identifier_token1] = ACTIONS(313),
+ [anon_sym_DOT] = ACTIONS(295),
+ [aux_sym_dotted_identifier_token3] = ACTIONS(313),
+ [anon_sym_LPAREN] = ACTIONS(315),
+ [anon_sym_RPAREN] = ACTIONS(315),
+ [anon_sym_LBRACK] = ACTIONS(315),
+ [anon_sym_RBRACK] = ACTIONS(315),
+ [anon_sym_POUND_LPAREN] = ACTIONS(315),
+ [anon_sym_POUND_LBRACE] = ACTIONS(315),
+ [anon_sym_RBRACE] = ACTIONS(315),
+ [anon_sym_LBRACE] = ACTIONS(315),
+ [sym_string] = ACTIONS(315),
+ [sym_bracket_string] = ACTIONS(315),
+ [sym_float] = ACTIONS(313),
+ [sym_complex] = ACTIONS(315),
+ [sym__decinteger] = ACTIONS(313),
+ [sym__bininteger] = ACTIONS(315),
+ [sym__octinteger] = ACTIONS(315),
+ [sym__hexinteger] = ACTIONS(315),
+ },
+ [STATE(37)] = {
+ [aux_sym_dotted_identifier_repeat1] = STATE(31),
+ [anon_sym_POUND_] = ACTIONS(291),
+ [sym_comment] = ACTIONS(293),
+ [anon_sym_SQUOTE] = ACTIONS(293),
+ [anon_sym_BQUOTE] = ACTIONS(293),
+ [anon_sym_TILDE] = ACTIONS(291),
+ [anon_sym_TILDE_AT] = ACTIONS(293),
+ [anon_sym_POUND_STAR] = ACTIONS(291),
+ [anon_sym_POUND_STAR_STAR] = ACTIONS(291),
+ [sym_keyword] = ACTIONS(293),
+ [aux_sym_dotted_identifier_token1] = ACTIONS(291),
+ [anon_sym_DOT] = ACTIONS(295),
+ [aux_sym_dotted_identifier_token3] = ACTIONS(291),
+ [anon_sym_LPAREN] = ACTIONS(293),
+ [anon_sym_RPAREN] = ACTIONS(293),
+ [anon_sym_LBRACK] = ACTIONS(293),
+ [anon_sym_RBRACK] = ACTIONS(293),
+ [anon_sym_POUND_LPAREN] = ACTIONS(293),
+ [anon_sym_POUND_LBRACE] = ACTIONS(293),
+ [anon_sym_RBRACE] = ACTIONS(293),
+ [anon_sym_LBRACE] = ACTIONS(293),
+ [sym_string] = ACTIONS(293),
+ [sym_bracket_string] = ACTIONS(293),
+ [sym_float] = ACTIONS(291),
+ [sym_complex] = ACTIONS(293),
+ [sym__decinteger] = ACTIONS(291),
+ [sym__bininteger] = ACTIONS(293),
+ [sym__octinteger] = ACTIONS(293),
+ [sym__hexinteger] = ACTIONS(293),
+ },
+ [STATE(38)] = {
+ [anon_sym_POUND_] = ACTIONS(309),
+ [sym_comment] = ACTIONS(311),
+ [anon_sym_SQUOTE] = ACTIONS(311),
+ [anon_sym_BQUOTE] = ACTIONS(311),
+ [anon_sym_TILDE] = ACTIONS(309),
+ [anon_sym_TILDE_AT] = ACTIONS(311),
+ [anon_sym_POUND_STAR] = ACTIONS(309),
+ [anon_sym_POUND_STAR_STAR] = ACTIONS(309),
+ [sym_keyword] = ACTIONS(311),
+ [aux_sym_dotted_identifier_token1] = ACTIONS(309),
+ [aux_sym_dotted_identifier_token2] = ACTIONS(317),
+ [aux_sym_dotted_identifier_token3] = ACTIONS(309),
+ [anon_sym_LPAREN] = ACTIONS(311),
+ [anon_sym_RPAREN] = ACTIONS(311),
+ [anon_sym_LBRACK] = ACTIONS(311),
+ [anon_sym_RBRACK] = ACTIONS(311),
+ [anon_sym_POUND_LPAREN] = ACTIONS(311),
+ [anon_sym_POUND_LBRACE] = ACTIONS(311),
+ [anon_sym_RBRACE] = ACTIONS(311),
+ [anon_sym_LBRACE] = ACTIONS(311),
+ [sym_string] = ACTIONS(311),
+ [sym_bracket_string] = ACTIONS(311),
+ [sym_float] = ACTIONS(309),
+ [sym_complex] = ACTIONS(311),
+ [sym__decinteger] = ACTIONS(309),
+ [sym__bininteger] = ACTIONS(311),
+ [sym__octinteger] = ACTIONS(311),
+ [sym__hexinteger] = ACTIONS(311),
+ },
+ [STATE(39)] = {
+ [anon_sym_POUND_] = ACTIONS(284),
+ [sym_comment] = ACTIONS(286),
+ [anon_sym_SQUOTE] = ACTIONS(286),
+ [anon_sym_BQUOTE] = ACTIONS(286),
+ [anon_sym_TILDE] = ACTIONS(284),
+ [anon_sym_TILDE_AT] = ACTIONS(286),
+ [anon_sym_POUND_STAR] = ACTIONS(284),
+ [anon_sym_POUND_STAR_STAR] = ACTIONS(284),
+ [sym_keyword] = ACTIONS(286),
+ [aux_sym_dotted_identifier_token1] = ACTIONS(284),
+ [anon_sym_DOT] = ACTIONS(284),
+ [aux_sym_dotted_identifier_token3] = ACTIONS(284),
+ [anon_sym_LPAREN] = ACTIONS(286),
+ [anon_sym_RPAREN] = ACTIONS(286),
+ [anon_sym_LBRACK] = ACTIONS(286),
+ [anon_sym_RBRACK] = ACTIONS(286),
+ [anon_sym_POUND_LPAREN] = ACTIONS(286),
+ [anon_sym_POUND_LBRACE] = ACTIONS(286),
+ [anon_sym_RBRACE] = ACTIONS(286),
+ [anon_sym_LBRACE] = ACTIONS(286),
+ [sym_string] = ACTIONS(286),
+ [sym_bracket_string] = ACTIONS(286),
+ [sym_float] = ACTIONS(284),
+ [sym_complex] = ACTIONS(286),
+ [sym__decinteger] = ACTIONS(284),
+ [sym__bininteger] = ACTIONS(286),
+ [sym__octinteger] = ACTIONS(286),
+ [sym__hexinteger] = ACTIONS(286),
+ },
+ [STATE(40)] = {
+ [aux_sym_dotted_identifier_repeat1] = STATE(40),
+ [ts_builtin_sym_end] = ACTIONS(286),
+ [anon_sym_POUND_] = ACTIONS(284),
+ [sym_comment] = ACTIONS(286),
+ [anon_sym_SQUOTE] = ACTIONS(286),
+ [anon_sym_BQUOTE] = ACTIONS(286),
+ [anon_sym_TILDE] = ACTIONS(284),
+ [anon_sym_TILDE_AT] = ACTIONS(286),
+ [anon_sym_POUND_STAR] = ACTIONS(284),
+ [anon_sym_POUND_STAR_STAR] = ACTIONS(284),
+ [sym_keyword] = ACTIONS(286),
+ [aux_sym_dotted_identifier_token1] = ACTIONS(284),
+ [anon_sym_DOT] = ACTIONS(319),
+ [aux_sym_dotted_identifier_token3] = ACTIONS(284),
+ [anon_sym_LPAREN] = ACTIONS(286),
+ [anon_sym_LBRACK] = ACTIONS(286),
+ [anon_sym_POUND_LPAREN] = ACTIONS(286),
+ [anon_sym_POUND_LBRACE] = ACTIONS(286),
+ [anon_sym_LBRACE] = ACTIONS(286),
+ [sym_string] = ACTIONS(286),
+ [sym_bracket_string] = ACTIONS(286),
+ [sym_float] = ACTIONS(284),
+ [sym_complex] = ACTIONS(286),
+ [sym__decinteger] = ACTIONS(284),
+ [sym__bininteger] = ACTIONS(286),
+ [sym__octinteger] = ACTIONS(286),
+ [sym__hexinteger] = ACTIONS(286),
+ },
+ [STATE(41)] = {
+ [aux_sym_dotted_identifier_repeat1] = STATE(40),
+ [ts_builtin_sym_end] = ACTIONS(315),
+ [anon_sym_POUND_] = ACTIONS(313),
+ [sym_comment] = ACTIONS(315),
+ [anon_sym_SQUOTE] = ACTIONS(315),
+ [anon_sym_BQUOTE] = ACTIONS(315),
+ [anon_sym_TILDE] = ACTIONS(313),
+ [anon_sym_TILDE_AT] = ACTIONS(315),
+ [anon_sym_POUND_STAR] = ACTIONS(313),
+ [anon_sym_POUND_STAR_STAR] = ACTIONS(313),
+ [sym_keyword] = ACTIONS(315),
+ [aux_sym_dotted_identifier_token1] = ACTIONS(313),
+ [anon_sym_DOT] = ACTIONS(322),
+ [aux_sym_dotted_identifier_token3] = ACTIONS(313),
+ [anon_sym_LPAREN] = ACTIONS(315),
+ [anon_sym_LBRACK] = ACTIONS(315),
+ [anon_sym_POUND_LPAREN] = ACTIONS(315),
+ [anon_sym_POUND_LBRACE] = ACTIONS(315),
+ [anon_sym_LBRACE] = ACTIONS(315),
+ [sym_string] = ACTIONS(315),
+ [sym_bracket_string] = ACTIONS(315),
+ [sym_float] = ACTIONS(313),
+ [sym_complex] = ACTIONS(315),
+ [sym__decinteger] = ACTIONS(313),
+ [sym__bininteger] = ACTIONS(315),
+ [sym__octinteger] = ACTIONS(315),
+ [sym__hexinteger] = ACTIONS(315),
+ },
+ [STATE(42)] = {
+ [anon_sym_POUND_] = ACTIONS(324),
+ [sym_comment] = ACTIONS(326),
+ [anon_sym_SQUOTE] = ACTIONS(326),
+ [anon_sym_BQUOTE] = ACTIONS(326),
+ [anon_sym_TILDE] = ACTIONS(324),
+ [anon_sym_TILDE_AT] = ACTIONS(326),
+ [anon_sym_POUND_STAR] = ACTIONS(324),
+ [anon_sym_POUND_STAR_STAR] = ACTIONS(324),
+ [sym_keyword] = ACTIONS(326),
+ [aux_sym_dotted_identifier_token1] = ACTIONS(324),
+ [aux_sym_dotted_identifier_token3] = ACTIONS(324),
+ [anon_sym_LPAREN] = ACTIONS(326),
+ [anon_sym_RPAREN] = ACTIONS(326),
+ [anon_sym_LBRACK] = ACTIONS(326),
+ [anon_sym_RBRACK] = ACTIONS(326),
+ [anon_sym_POUND_LPAREN] = ACTIONS(326),
+ [anon_sym_POUND_LBRACE] = ACTIONS(326),
+ [anon_sym_RBRACE] = ACTIONS(326),
+ [anon_sym_LBRACE] = ACTIONS(326),
+ [sym_string] = ACTIONS(326),
+ [sym_bracket_string] = ACTIONS(326),
+ [sym_float] = ACTIONS(324),
+ [sym_complex] = ACTIONS(326),
+ [sym__decinteger] = ACTIONS(324),
+ [sym__bininteger] = ACTIONS(326),
+ [sym__octinteger] = ACTIONS(326),
+ [sym__hexinteger] = ACTIONS(326),
+ },
+ [STATE(43)] = {
+ [anon_sym_POUND_] = ACTIONS(328),
+ [sym_comment] = ACTIONS(330),
+ [anon_sym_SQUOTE] = ACTIONS(330),
+ [anon_sym_BQUOTE] = ACTIONS(330),
+ [anon_sym_TILDE] = ACTIONS(328),
+ [anon_sym_TILDE_AT] = ACTIONS(330),
+ [anon_sym_POUND_STAR] = ACTIONS(328),
+ [anon_sym_POUND_STAR_STAR] = ACTIONS(328),
+ [sym_keyword] = ACTIONS(330),
+ [aux_sym_dotted_identifier_token1] = ACTIONS(328),
+ [aux_sym_dotted_identifier_token3] = ACTIONS(328),
+ [anon_sym_LPAREN] = ACTIONS(330),
+ [anon_sym_RPAREN] = ACTIONS(330),
+ [anon_sym_LBRACK] = ACTIONS(330),
+ [anon_sym_RBRACK] = ACTIONS(330),
+ [anon_sym_POUND_LPAREN] = ACTIONS(330),
+ [anon_sym_POUND_LBRACE] = ACTIONS(330),
+ [anon_sym_RBRACE] = ACTIONS(330),
+ [anon_sym_LBRACE] = ACTIONS(330),
+ [sym_string] = ACTIONS(330),
+ [sym_bracket_string] = ACTIONS(330),
+ [sym_float] = ACTIONS(328),
+ [sym_complex] = ACTIONS(330),
+ [sym__decinteger] = ACTIONS(328),
+ [sym__bininteger] = ACTIONS(330),
+ [sym__octinteger] = ACTIONS(330),
+ [sym__hexinteger] = ACTIONS(330),
+ },
+ [STATE(44)] = {
+ [anon_sym_POUND_] = ACTIONS(332),
+ [sym_comment] = ACTIONS(334),
+ [anon_sym_SQUOTE] = ACTIONS(334),
+ [anon_sym_BQUOTE] = ACTIONS(334),
+ [anon_sym_TILDE] = ACTIONS(332),
+ [anon_sym_TILDE_AT] = ACTIONS(334),
+ [anon_sym_POUND_STAR] = ACTIONS(332),
+ [anon_sym_POUND_STAR_STAR] = ACTIONS(332),
+ [sym_keyword] = ACTIONS(334),
+ [aux_sym_dotted_identifier_token1] = ACTIONS(332),
+ [aux_sym_dotted_identifier_token3] = ACTIONS(332),
+ [anon_sym_LPAREN] = ACTIONS(334),
+ [anon_sym_RPAREN] = ACTIONS(334),
+ [anon_sym_LBRACK] = ACTIONS(334),
+ [anon_sym_RBRACK] = ACTIONS(334),
+ [anon_sym_POUND_LPAREN] = ACTIONS(334),
+ [anon_sym_POUND_LBRACE] = ACTIONS(334),
+ [anon_sym_RBRACE] = ACTIONS(334),
+ [anon_sym_LBRACE] = ACTIONS(334),
+ [sym_string] = ACTIONS(334),
+ [sym_bracket_string] = ACTIONS(334),
+ [sym_float] = ACTIONS(332),
+ [sym_complex] = ACTIONS(334),
+ [sym__decinteger] = ACTIONS(332),
+ [sym__bininteger] = ACTIONS(334),
+ [sym__octinteger] = ACTIONS(334),
+ [sym__hexinteger] = ACTIONS(334),
+ },
+ [STATE(45)] = {
+ [anon_sym_POUND_] = ACTIONS(336),
+ [sym_comment] = ACTIONS(338),
+ [anon_sym_SQUOTE] = ACTIONS(338),
+ [anon_sym_BQUOTE] = ACTIONS(338),
+ [anon_sym_TILDE] = ACTIONS(336),
+ [anon_sym_TILDE_AT] = ACTIONS(338),
+ [anon_sym_POUND_STAR] = ACTIONS(336),
+ [anon_sym_POUND_STAR_STAR] = ACTIONS(336),
+ [sym_keyword] = ACTIONS(338),
+ [aux_sym_dotted_identifier_token1] = ACTIONS(336),
+ [aux_sym_dotted_identifier_token3] = ACTIONS(336),
+ [anon_sym_LPAREN] = ACTIONS(338),
+ [anon_sym_RPAREN] = ACTIONS(338),
+ [anon_sym_LBRACK] = ACTIONS(338),
+ [anon_sym_RBRACK] = ACTIONS(338),
+ [anon_sym_POUND_LPAREN] = ACTIONS(338),
+ [anon_sym_POUND_LBRACE] = ACTIONS(338),
+ [anon_sym_RBRACE] = ACTIONS(338),
+ [anon_sym_LBRACE] = ACTIONS(338),
+ [sym_string] = ACTIONS(338),
+ [sym_bracket_string] = ACTIONS(338),
+ [sym_float] = ACTIONS(336),
+ [sym_complex] = ACTIONS(338),
+ [sym__decinteger] = ACTIONS(336),
+ [sym__bininteger] = ACTIONS(338),
+ [sym__octinteger] = ACTIONS(338),
+ [sym__hexinteger] = ACTIONS(338),
+ },
+ [STATE(46)] = {
+ [aux_sym_dotted_identifier_repeat1] = STATE(55),
+ [ts_builtin_sym_end] = ACTIONS(311),
+ [anon_sym_POUND_] = ACTIONS(309),
+ [sym_comment] = ACTIONS(311),
+ [anon_sym_SQUOTE] = ACTIONS(311),
+ [anon_sym_BQUOTE] = ACTIONS(311),
+ [anon_sym_TILDE] = ACTIONS(309),
+ [anon_sym_TILDE_AT] = ACTIONS(311),
+ [anon_sym_POUND_STAR] = ACTIONS(309),
+ [anon_sym_POUND_STAR_STAR] = ACTIONS(309),
+ [sym_keyword] = ACTIONS(311),
+ [aux_sym_dotted_identifier_token1] = ACTIONS(309),
+ [anon_sym_DOT] = ACTIONS(322),
+ [aux_sym_dotted_identifier_token3] = ACTIONS(309),
+ [anon_sym_LPAREN] = ACTIONS(311),
+ [anon_sym_LBRACK] = ACTIONS(311),
+ [anon_sym_POUND_LPAREN] = ACTIONS(311),
+ [anon_sym_POUND_LBRACE] = ACTIONS(311),
+ [anon_sym_LBRACE] = ACTIONS(311),
+ [sym_string] = ACTIONS(311),
+ [sym_bracket_string] = ACTIONS(311),
+ [sym_float] = ACTIONS(309),
+ [sym_complex] = ACTIONS(311),
+ [sym__decinteger] = ACTIONS(309),
+ [sym__bininteger] = ACTIONS(311),
+ [sym__octinteger] = ACTIONS(311),
+ [sym__hexinteger] = ACTIONS(311),
+ },
+ [STATE(47)] = {
+ [aux_sym_dotted_identifier_repeat1] = STATE(41),
+ [ts_builtin_sym_end] = ACTIONS(293),
+ [anon_sym_POUND_] = ACTIONS(291),
+ [sym_comment] = ACTIONS(293),
+ [anon_sym_SQUOTE] = ACTIONS(293),
+ [anon_sym_BQUOTE] = ACTIONS(293),
+ [anon_sym_TILDE] = ACTIONS(291),
+ [anon_sym_TILDE_AT] = ACTIONS(293),
+ [anon_sym_POUND_STAR] = ACTIONS(291),
+ [anon_sym_POUND_STAR_STAR] = ACTIONS(291),
+ [sym_keyword] = ACTIONS(293),
+ [aux_sym_dotted_identifier_token1] = ACTIONS(291),
+ [anon_sym_DOT] = ACTIONS(322),
+ [aux_sym_dotted_identifier_token3] = ACTIONS(291),
+ [anon_sym_LPAREN] = ACTIONS(293),
+ [anon_sym_LBRACK] = ACTIONS(293),
+ [anon_sym_POUND_LPAREN] = ACTIONS(293),
+ [anon_sym_POUND_LBRACE] = ACTIONS(293),
+ [anon_sym_LBRACE] = ACTIONS(293),
+ [sym_string] = ACTIONS(293),
+ [sym_bracket_string] = ACTIONS(293),
+ [sym_float] = ACTIONS(291),
+ [sym_complex] = ACTIONS(293),
+ [sym__decinteger] = ACTIONS(291),
+ [sym__bininteger] = ACTIONS(293),
+ [sym__octinteger] = ACTIONS(293),
+ [sym__hexinteger] = ACTIONS(293),
+ },
+ [STATE(48)] = {
+ [anon_sym_POUND_] = ACTIONS(340),
+ [sym_comment] = ACTIONS(342),
+ [anon_sym_SQUOTE] = ACTIONS(342),
+ [anon_sym_BQUOTE] = ACTIONS(342),
+ [anon_sym_TILDE] = ACTIONS(340),
+ [anon_sym_TILDE_AT] = ACTIONS(342),
+ [anon_sym_POUND_STAR] = ACTIONS(340),
+ [anon_sym_POUND_STAR_STAR] = ACTIONS(340),
+ [sym_keyword] = ACTIONS(342),
+ [aux_sym_dotted_identifier_token1] = ACTIONS(340),
+ [aux_sym_dotted_identifier_token3] = ACTIONS(340),
+ [anon_sym_LPAREN] = ACTIONS(342),
+ [anon_sym_RPAREN] = ACTIONS(342),
+ [anon_sym_LBRACK] = ACTIONS(342),
+ [anon_sym_RBRACK] = ACTIONS(342),
+ [anon_sym_POUND_LPAREN] = ACTIONS(342),
+ [anon_sym_POUND_LBRACE] = ACTIONS(342),
+ [anon_sym_RBRACE] = ACTIONS(342),
+ [anon_sym_LBRACE] = ACTIONS(342),
+ [sym_string] = ACTIONS(342),
+ [sym_bracket_string] = ACTIONS(342),
+ [sym_float] = ACTIONS(340),
+ [sym_complex] = ACTIONS(342),
+ [sym__decinteger] = ACTIONS(340),
+ [sym__bininteger] = ACTIONS(342),
+ [sym__octinteger] = ACTIONS(342),
+ [sym__hexinteger] = ACTIONS(342),
+ },
+ [STATE(49)] = {
+ [anon_sym_POUND_] = ACTIONS(344),
+ [sym_comment] = ACTIONS(346),
+ [anon_sym_SQUOTE] = ACTIONS(346),
+ [anon_sym_BQUOTE] = ACTIONS(346),
+ [anon_sym_TILDE] = ACTIONS(344),
+ [anon_sym_TILDE_AT] = ACTIONS(346),
+ [anon_sym_POUND_STAR] = ACTIONS(344),
+ [anon_sym_POUND_STAR_STAR] = ACTIONS(344),
+ [sym_keyword] = ACTIONS(346),
+ [aux_sym_dotted_identifier_token1] = ACTIONS(344),
+ [aux_sym_dotted_identifier_token3] = ACTIONS(344),
+ [anon_sym_LPAREN] = ACTIONS(346),
+ [anon_sym_RPAREN] = ACTIONS(346),
+ [anon_sym_LBRACK] = ACTIONS(346),
+ [anon_sym_RBRACK] = ACTIONS(346),
+ [anon_sym_POUND_LPAREN] = ACTIONS(346),
+ [anon_sym_POUND_LBRACE] = ACTIONS(346),
+ [anon_sym_RBRACE] = ACTIONS(346),
+ [anon_sym_LBRACE] = ACTIONS(346),
+ [sym_string] = ACTIONS(346),
+ [sym_bracket_string] = ACTIONS(346),
+ [sym_float] = ACTIONS(344),
+ [sym_complex] = ACTIONS(346),
+ [sym__decinteger] = ACTIONS(344),
+ [sym__bininteger] = ACTIONS(346),
+ [sym__octinteger] = ACTIONS(346),
+ [sym__hexinteger] = ACTIONS(346),
+ },
+ [STATE(50)] = {
+ [anon_sym_POUND_] = ACTIONS(348),
+ [sym_comment] = ACTIONS(350),
+ [anon_sym_SQUOTE] = ACTIONS(350),
+ [anon_sym_BQUOTE] = ACTIONS(350),
+ [anon_sym_TILDE] = ACTIONS(348),
+ [anon_sym_TILDE_AT] = ACTIONS(350),
+ [anon_sym_POUND_STAR] = ACTIONS(348),
+ [anon_sym_POUND_STAR_STAR] = ACTIONS(348),
+ [sym_keyword] = ACTIONS(350),
+ [aux_sym_dotted_identifier_token1] = ACTIONS(348),
+ [aux_sym_dotted_identifier_token3] = ACTIONS(348),
+ [anon_sym_LPAREN] = ACTIONS(350),
+ [anon_sym_RPAREN] = ACTIONS(350),
+ [anon_sym_LBRACK] = ACTIONS(350),
+ [anon_sym_RBRACK] = ACTIONS(350),
+ [anon_sym_POUND_LPAREN] = ACTIONS(350),
+ [anon_sym_POUND_LBRACE] = ACTIONS(350),
+ [anon_sym_RBRACE] = ACTIONS(350),
+ [anon_sym_LBRACE] = ACTIONS(350),
+ [sym_string] = ACTIONS(350),
+ [sym_bracket_string] = ACTIONS(350),
+ [sym_float] = ACTIONS(348),
+ [sym_complex] = ACTIONS(350),
+ [sym__decinteger] = ACTIONS(348),
+ [sym__bininteger] = ACTIONS(350),
+ [sym__octinteger] = ACTIONS(350),
+ [sym__hexinteger] = ACTIONS(350),
+ },
+ [STATE(51)] = {
+ [anon_sym_POUND_] = ACTIONS(352),
+ [sym_comment] = ACTIONS(354),
+ [anon_sym_SQUOTE] = ACTIONS(354),
+ [anon_sym_BQUOTE] = ACTIONS(354),
+ [anon_sym_TILDE] = ACTIONS(352),
+ [anon_sym_TILDE_AT] = ACTIONS(354),
+ [anon_sym_POUND_STAR] = ACTIONS(352),
+ [anon_sym_POUND_STAR_STAR] = ACTIONS(352),
+ [sym_keyword] = ACTIONS(354),
+ [aux_sym_dotted_identifier_token1] = ACTIONS(352),
+ [aux_sym_dotted_identifier_token3] = ACTIONS(352),
+ [anon_sym_LPAREN] = ACTIONS(354),
+ [anon_sym_RPAREN] = ACTIONS(354),
+ [anon_sym_LBRACK] = ACTIONS(354),
+ [anon_sym_RBRACK] = ACTIONS(354),
+ [anon_sym_POUND_LPAREN] = ACTIONS(354),
+ [anon_sym_POUND_LBRACE] = ACTIONS(354),
+ [anon_sym_RBRACE] = ACTIONS(354),
+ [anon_sym_LBRACE] = ACTIONS(354),
+ [sym_string] = ACTIONS(354),
+ [sym_bracket_string] = ACTIONS(354),
+ [sym_float] = ACTIONS(352),
+ [sym_complex] = ACTIONS(354),
+ [sym__decinteger] = ACTIONS(352),
+ [sym__bininteger] = ACTIONS(354),
+ [sym__octinteger] = ACTIONS(354),
+ [sym__hexinteger] = ACTIONS(354),
+ },
+ [STATE(52)] = {
+ [anon_sym_POUND_] = ACTIONS(356),
+ [sym_comment] = ACTIONS(358),
+ [anon_sym_SQUOTE] = ACTIONS(358),
+ [anon_sym_BQUOTE] = ACTIONS(358),
+ [anon_sym_TILDE] = ACTIONS(356),
+ [anon_sym_TILDE_AT] = ACTIONS(358),
+ [anon_sym_POUND_STAR] = ACTIONS(356),
+ [anon_sym_POUND_STAR_STAR] = ACTIONS(356),
+ [sym_keyword] = ACTIONS(358),
+ [aux_sym_dotted_identifier_token1] = ACTIONS(356),
+ [aux_sym_dotted_identifier_token3] = ACTIONS(356),
+ [anon_sym_LPAREN] = ACTIONS(358),
+ [anon_sym_RPAREN] = ACTIONS(358),
+ [anon_sym_LBRACK] = ACTIONS(358),
+ [anon_sym_RBRACK] = ACTIONS(358),
+ [anon_sym_POUND_LPAREN] = ACTIONS(358),
+ [anon_sym_POUND_LBRACE] = ACTIONS(358),
+ [anon_sym_RBRACE] = ACTIONS(358),
+ [anon_sym_LBRACE] = ACTIONS(358),
+ [sym_string] = ACTIONS(358),
+ [sym_bracket_string] = ACTIONS(358),
+ [sym_float] = ACTIONS(356),
+ [sym_complex] = ACTIONS(358),
+ [sym__decinteger] = ACTIONS(356),
+ [sym__bininteger] = ACTIONS(358),
+ [sym__octinteger] = ACTIONS(358),
+ [sym__hexinteger] = ACTIONS(358),
+ },
+ [STATE(53)] = {
+ [anon_sym_POUND_] = ACTIONS(356),
+ [sym_comment] = ACTIONS(358),
+ [anon_sym_SQUOTE] = ACTIONS(358),
+ [anon_sym_BQUOTE] = ACTIONS(358),
+ [anon_sym_TILDE] = ACTIONS(356),
+ [anon_sym_TILDE_AT] = ACTIONS(358),
+ [anon_sym_POUND_STAR] = ACTIONS(356),
+ [anon_sym_POUND_STAR_STAR] = ACTIONS(356),
+ [sym_keyword] = ACTIONS(358),
+ [aux_sym_dotted_identifier_token1] = ACTIONS(356),
+ [aux_sym_dotted_identifier_token3] = ACTIONS(356),
+ [anon_sym_LPAREN] = ACTIONS(358),
+ [anon_sym_RPAREN] = ACTIONS(358),
+ [anon_sym_LBRACK] = ACTIONS(358),
+ [anon_sym_RBRACK] = ACTIONS(358),
+ [anon_sym_POUND_LPAREN] = ACTIONS(358),
+ [anon_sym_POUND_LBRACE] = ACTIONS(358),
+ [anon_sym_RBRACE] = ACTIONS(358),
+ [anon_sym_LBRACE] = ACTIONS(358),
+ [sym_string] = ACTIONS(358),
+ [sym_bracket_string] = ACTIONS(358),
+ [sym_float] = ACTIONS(356),
+ [sym_complex] = ACTIONS(358),
+ [sym__decinteger] = ACTIONS(356),
+ [sym__bininteger] = ACTIONS(358),
+ [sym__octinteger] = ACTIONS(358),
+ [sym__hexinteger] = ACTIONS(358),
+ },
+ [STATE(54)] = {
+ [anon_sym_POUND_] = ACTIONS(356),
+ [sym_comment] = ACTIONS(358),
+ [anon_sym_SQUOTE] = ACTIONS(358),
+ [anon_sym_BQUOTE] = ACTIONS(358),
+ [anon_sym_TILDE] = ACTIONS(356),
+ [anon_sym_TILDE_AT] = ACTIONS(358),
+ [anon_sym_POUND_STAR] = ACTIONS(356),
+ [anon_sym_POUND_STAR_STAR] = ACTIONS(356),
+ [sym_keyword] = ACTIONS(358),
+ [aux_sym_dotted_identifier_token1] = ACTIONS(356),
+ [aux_sym_dotted_identifier_token3] = ACTIONS(356),
+ [anon_sym_LPAREN] = ACTIONS(358),
+ [anon_sym_RPAREN] = ACTIONS(358),
+ [anon_sym_LBRACK] = ACTIONS(358),
+ [anon_sym_RBRACK] = ACTIONS(358),
+ [anon_sym_POUND_LPAREN] = ACTIONS(358),
+ [anon_sym_POUND_LBRACE] = ACTIONS(358),
+ [anon_sym_RBRACE] = ACTIONS(358),
+ [anon_sym_LBRACE] = ACTIONS(358),
+ [sym_string] = ACTIONS(358),
+ [sym_bracket_string] = ACTIONS(358),
+ [sym_float] = ACTIONS(356),
+ [sym_complex] = ACTIONS(358),
+ [sym__decinteger] = ACTIONS(356),
+ [sym__bininteger] = ACTIONS(358),
+ [sym__octinteger] = ACTIONS(358),
+ [sym__hexinteger] = ACTIONS(358),
+ },
+ [STATE(55)] = {
+ [aux_sym_dotted_identifier_repeat1] = STATE(40),
+ [ts_builtin_sym_end] = ACTIONS(293),
+ [anon_sym_POUND_] = ACTIONS(291),
+ [sym_comment] = ACTIONS(293),
+ [anon_sym_SQUOTE] = ACTIONS(293),
+ [anon_sym_BQUOTE] = ACTIONS(293),
+ [anon_sym_TILDE] = ACTIONS(291),
+ [anon_sym_TILDE_AT] = ACTIONS(293),
+ [anon_sym_POUND_STAR] = ACTIONS(291),
+ [anon_sym_POUND_STAR_STAR] = ACTIONS(291),
+ [sym_keyword] = ACTIONS(293),
+ [aux_sym_dotted_identifier_token1] = ACTIONS(291),
+ [anon_sym_DOT] = ACTIONS(322),
+ [aux_sym_dotted_identifier_token3] = ACTIONS(291),
+ [anon_sym_LPAREN] = ACTIONS(293),
+ [anon_sym_LBRACK] = ACTIONS(293),
+ [anon_sym_POUND_LPAREN] = ACTIONS(293),
+ [anon_sym_POUND_LBRACE] = ACTIONS(293),
+ [anon_sym_LBRACE] = ACTIONS(293),
+ [sym_string] = ACTIONS(293),
+ [sym_bracket_string] = ACTIONS(293),
+ [sym_float] = ACTIONS(291),
+ [sym_complex] = ACTIONS(293),
+ [sym__decinteger] = ACTIONS(291),
+ [sym__bininteger] = ACTIONS(293),
+ [sym__octinteger] = ACTIONS(293),
+ [sym__hexinteger] = ACTIONS(293),
+ },
+ [STATE(56)] = {
+ [anon_sym_POUND_] = ACTIONS(360),
+ [sym_comment] = ACTIONS(362),
+ [anon_sym_SQUOTE] = ACTIONS(362),
+ [anon_sym_BQUOTE] = ACTIONS(362),
+ [anon_sym_TILDE] = ACTIONS(360),
+ [anon_sym_TILDE_AT] = ACTIONS(362),
+ [anon_sym_POUND_STAR] = ACTIONS(360),
+ [anon_sym_POUND_STAR_STAR] = ACTIONS(360),
+ [sym_keyword] = ACTIONS(362),
+ [aux_sym_dotted_identifier_token1] = ACTIONS(360),
+ [aux_sym_dotted_identifier_token3] = ACTIONS(360),
+ [anon_sym_LPAREN] = ACTIONS(362),
+ [anon_sym_RPAREN] = ACTIONS(362),
+ [anon_sym_LBRACK] = ACTIONS(362),
+ [anon_sym_RBRACK] = ACTIONS(362),
+ [anon_sym_POUND_LPAREN] = ACTIONS(362),
+ [anon_sym_POUND_LBRACE] = ACTIONS(362),
+ [anon_sym_RBRACE] = ACTIONS(362),
+ [anon_sym_LBRACE] = ACTIONS(362),
+ [sym_string] = ACTIONS(362),
+ [sym_bracket_string] = ACTIONS(362),
+ [sym_float] = ACTIONS(360),
+ [sym_complex] = ACTIONS(362),
+ [sym__decinteger] = ACTIONS(360),
+ [sym__bininteger] = ACTIONS(362),
+ [sym__octinteger] = ACTIONS(362),
+ [sym__hexinteger] = ACTIONS(362),
+ },
+ [STATE(57)] = {
+ [anon_sym_POUND_] = ACTIONS(364),
+ [sym_comment] = ACTIONS(366),
+ [anon_sym_SQUOTE] = ACTIONS(366),
+ [anon_sym_BQUOTE] = ACTIONS(366),
+ [anon_sym_TILDE] = ACTIONS(364),
+ [anon_sym_TILDE_AT] = ACTIONS(366),
+ [anon_sym_POUND_STAR] = ACTIONS(364),
+ [anon_sym_POUND_STAR_STAR] = ACTIONS(364),
+ [sym_keyword] = ACTIONS(366),
+ [aux_sym_dotted_identifier_token1] = ACTIONS(364),
+ [aux_sym_dotted_identifier_token3] = ACTIONS(364),
+ [anon_sym_LPAREN] = ACTIONS(366),
+ [anon_sym_RPAREN] = ACTIONS(366),
+ [anon_sym_LBRACK] = ACTIONS(366),
+ [anon_sym_RBRACK] = ACTIONS(366),
+ [anon_sym_POUND_LPAREN] = ACTIONS(366),
+ [anon_sym_POUND_LBRACE] = ACTIONS(366),
+ [anon_sym_RBRACE] = ACTIONS(366),
+ [anon_sym_LBRACE] = ACTIONS(366),
+ [sym_string] = ACTIONS(366),
+ [sym_bracket_string] = ACTIONS(366),
+ [sym_float] = ACTIONS(364),
+ [sym_complex] = ACTIONS(366),
+ [sym__decinteger] = ACTIONS(364),
+ [sym__bininteger] = ACTIONS(366),
+ [sym__octinteger] = ACTIONS(366),
+ [sym__hexinteger] = ACTIONS(366),
+ },
+ [STATE(58)] = {
+ [anon_sym_POUND_] = ACTIONS(368),
+ [sym_comment] = ACTIONS(370),
+ [anon_sym_SQUOTE] = ACTIONS(370),
+ [anon_sym_BQUOTE] = ACTIONS(370),
+ [anon_sym_TILDE] = ACTIONS(368),
+ [anon_sym_TILDE_AT] = ACTIONS(370),
+ [anon_sym_POUND_STAR] = ACTIONS(368),
+ [anon_sym_POUND_STAR_STAR] = ACTIONS(368),
+ [sym_keyword] = ACTIONS(370),
+ [aux_sym_dotted_identifier_token1] = ACTIONS(368),
+ [aux_sym_dotted_identifier_token3] = ACTIONS(368),
+ [anon_sym_LPAREN] = ACTIONS(370),
+ [anon_sym_RPAREN] = ACTIONS(370),
+ [anon_sym_LBRACK] = ACTIONS(370),
+ [anon_sym_RBRACK] = ACTIONS(370),
+ [anon_sym_POUND_LPAREN] = ACTIONS(370),
+ [anon_sym_POUND_LBRACE] = ACTIONS(370),
+ [anon_sym_RBRACE] = ACTIONS(370),
+ [anon_sym_LBRACE] = ACTIONS(370),
+ [sym_string] = ACTIONS(370),
+ [sym_bracket_string] = ACTIONS(370),
+ [sym_float] = ACTIONS(368),
+ [sym_complex] = ACTIONS(370),
+ [sym__decinteger] = ACTIONS(368),
+ [sym__bininteger] = ACTIONS(370),
+ [sym__octinteger] = ACTIONS(370),
+ [sym__hexinteger] = ACTIONS(370),
+ },
+ [STATE(59)] = {
+ [anon_sym_POUND_] = ACTIONS(372),
+ [sym_comment] = ACTIONS(374),
+ [anon_sym_SQUOTE] = ACTIONS(374),
+ [anon_sym_BQUOTE] = ACTIONS(374),
+ [anon_sym_TILDE] = ACTIONS(372),
+ [anon_sym_TILDE_AT] = ACTIONS(374),
+ [anon_sym_POUND_STAR] = ACTIONS(372),
+ [anon_sym_POUND_STAR_STAR] = ACTIONS(372),
+ [sym_keyword] = ACTIONS(374),
+ [aux_sym_dotted_identifier_token1] = ACTIONS(372),
+ [aux_sym_dotted_identifier_token3] = ACTIONS(372),
+ [anon_sym_LPAREN] = ACTIONS(374),
+ [anon_sym_RPAREN] = ACTIONS(374),
+ [anon_sym_LBRACK] = ACTIONS(374),
+ [anon_sym_RBRACK] = ACTIONS(374),
+ [anon_sym_POUND_LPAREN] = ACTIONS(374),
+ [anon_sym_POUND_LBRACE] = ACTIONS(374),
+ [anon_sym_RBRACE] = ACTIONS(374),
+ [anon_sym_LBRACE] = ACTIONS(374),
+ [sym_string] = ACTIONS(374),
+ [sym_bracket_string] = ACTIONS(374),
+ [sym_float] = ACTIONS(372),
+ [sym_complex] = ACTIONS(374),
+ [sym__decinteger] = ACTIONS(372),
+ [sym__bininteger] = ACTIONS(374),
+ [sym__octinteger] = ACTIONS(374),
+ [sym__hexinteger] = ACTIONS(374),
+ },
+ [STATE(60)] = {
+ [anon_sym_POUND_] = ACTIONS(376),
+ [sym_comment] = ACTIONS(378),
+ [anon_sym_SQUOTE] = ACTIONS(378),
+ [anon_sym_BQUOTE] = ACTIONS(378),
+ [anon_sym_TILDE] = ACTIONS(376),
+ [anon_sym_TILDE_AT] = ACTIONS(378),
+ [anon_sym_POUND_STAR] = ACTIONS(376),
+ [anon_sym_POUND_STAR_STAR] = ACTIONS(376),
+ [sym_keyword] = ACTIONS(378),
+ [aux_sym_dotted_identifier_token1] = ACTIONS(376),
+ [aux_sym_dotted_identifier_token3] = ACTIONS(376),
+ [anon_sym_LPAREN] = ACTIONS(378),
+ [anon_sym_RPAREN] = ACTIONS(378),
+ [anon_sym_LBRACK] = ACTIONS(378),
+ [anon_sym_RBRACK] = ACTIONS(378),
+ [anon_sym_POUND_LPAREN] = ACTIONS(378),
+ [anon_sym_POUND_LBRACE] = ACTIONS(378),
+ [anon_sym_RBRACE] = ACTIONS(378),
+ [anon_sym_LBRACE] = ACTIONS(378),
+ [sym_string] = ACTIONS(378),
+ [sym_bracket_string] = ACTIONS(378),
+ [sym_float] = ACTIONS(376),
+ [sym_complex] = ACTIONS(378),
+ [sym__decinteger] = ACTIONS(376),
+ [sym__bininteger] = ACTIONS(378),
+ [sym__octinteger] = ACTIONS(378),
+ [sym__hexinteger] = ACTIONS(378),
+ },
+ [STATE(61)] = {
+ [ts_builtin_sym_end] = ACTIONS(311),
+ [anon_sym_POUND_] = ACTIONS(309),
+ [sym_comment] = ACTIONS(311),
+ [anon_sym_SQUOTE] = ACTIONS(311),
+ [anon_sym_BQUOTE] = ACTIONS(311),
+ [anon_sym_TILDE] = ACTIONS(309),
+ [anon_sym_TILDE_AT] = ACTIONS(311),
+ [anon_sym_POUND_STAR] = ACTIONS(309),
+ [anon_sym_POUND_STAR_STAR] = ACTIONS(309),
+ [sym_keyword] = ACTIONS(311),
+ [aux_sym_dotted_identifier_token1] = ACTIONS(309),
+ [aux_sym_dotted_identifier_token2] = ACTIONS(380),
+ [aux_sym_dotted_identifier_token3] = ACTIONS(309),
+ [anon_sym_LPAREN] = ACTIONS(311),
+ [anon_sym_LBRACK] = ACTIONS(311),
+ [anon_sym_POUND_LPAREN] = ACTIONS(311),
+ [anon_sym_POUND_LBRACE] = ACTIONS(311),
+ [anon_sym_LBRACE] = ACTIONS(311),
+ [sym_string] = ACTIONS(311),
+ [sym_bracket_string] = ACTIONS(311),
+ [sym_float] = ACTIONS(309),
+ [sym_complex] = ACTIONS(311),
+ [sym__decinteger] = ACTIONS(309),
+ [sym__bininteger] = ACTIONS(311),
+ [sym__octinteger] = ACTIONS(311),
+ [sym__hexinteger] = ACTIONS(311),
+ },
+ [STATE(62)] = {
+ [ts_builtin_sym_end] = ACTIONS(286),
+ [anon_sym_POUND_] = ACTIONS(284),
+ [sym_comment] = ACTIONS(286),
+ [anon_sym_SQUOTE] = ACTIONS(286),
+ [anon_sym_BQUOTE] = ACTIONS(286),
+ [anon_sym_TILDE] = ACTIONS(284),
+ [anon_sym_TILDE_AT] = ACTIONS(286),
+ [anon_sym_POUND_STAR] = ACTIONS(284),
+ [anon_sym_POUND_STAR_STAR] = ACTIONS(284),
+ [sym_keyword] = ACTIONS(286),
+ [aux_sym_dotted_identifier_token1] = ACTIONS(284),
+ [anon_sym_DOT] = ACTIONS(284),
+ [aux_sym_dotted_identifier_token3] = ACTIONS(284),
+ [anon_sym_LPAREN] = ACTIONS(286),
+ [anon_sym_LBRACK] = ACTIONS(286),
+ [anon_sym_POUND_LPAREN] = ACTIONS(286),
+ [anon_sym_POUND_LBRACE] = ACTIONS(286),
+ [anon_sym_LBRACE] = ACTIONS(286),
+ [sym_string] = ACTIONS(286),
+ [sym_bracket_string] = ACTIONS(286),
+ [sym_float] = ACTIONS(284),
+ [sym_complex] = ACTIONS(286),
+ [sym__decinteger] = ACTIONS(284),
+ [sym__bininteger] = ACTIONS(286),
+ [sym__octinteger] = ACTIONS(286),
+ [sym__hexinteger] = ACTIONS(286),
+ },
+};
+
+static const uint16_t ts_small_parse_table[] = {
+ [0] = 2,
+ ACTIONS(352), 8,
+ anon_sym_POUND_,
+ anon_sym_TILDE,
+ anon_sym_POUND_STAR,
+ anon_sym_POUND_STAR_STAR,
+ aux_sym_dotted_identifier_token1,
+ aux_sym_dotted_identifier_token3,
+ sym_float,
+ sym__decinteger,
+ ACTIONS(354), 17,
+ ts_builtin_sym_end,
+ sym_comment,
+ anon_sym_SQUOTE,
+ anon_sym_BQUOTE,
+ anon_sym_TILDE_AT,
+ sym_keyword,
+ anon_sym_LPAREN,
+ anon_sym_LBRACK,
+ anon_sym_POUND_LPAREN,
+ anon_sym_POUND_LBRACE,
+ anon_sym_LBRACE,
+ sym_string,
+ sym_bracket_string,
+ sym_complex,
+ sym__bininteger,
+ sym__octinteger,
+ sym__hexinteger,
+ [30] = 2,
+ ACTIONS(360), 8,
+ anon_sym_POUND_,
+ anon_sym_TILDE,
+ anon_sym_POUND_STAR,
+ anon_sym_POUND_STAR_STAR,
+ aux_sym_dotted_identifier_token1,
+ aux_sym_dotted_identifier_token3,
+ sym_float,
+ sym__decinteger,
+ ACTIONS(362), 17,
+ ts_builtin_sym_end,
+ sym_comment,
+ anon_sym_SQUOTE,
+ anon_sym_BQUOTE,
+ anon_sym_TILDE_AT,
+ sym_keyword,
+ anon_sym_LPAREN,
+ anon_sym_LBRACK,
+ anon_sym_POUND_LPAREN,
+ anon_sym_POUND_LBRACE,
+ anon_sym_LBRACE,
+ sym_string,
+ sym_bracket_string,
+ sym_complex,
+ sym__bininteger,
+ sym__octinteger,
+ sym__hexinteger,
+ [60] = 2,
+ ACTIONS(364), 8,
+ anon_sym_POUND_,
+ anon_sym_TILDE,
+ anon_sym_POUND_STAR,
+ anon_sym_POUND_STAR_STAR,
+ aux_sym_dotted_identifier_token1,
+ aux_sym_dotted_identifier_token3,
+ sym_float,
+ sym__decinteger,
+ ACTIONS(366), 17,
+ ts_builtin_sym_end,
+ sym_comment,
+ anon_sym_SQUOTE,
+ anon_sym_BQUOTE,
+ anon_sym_TILDE_AT,
+ sym_keyword,
+ anon_sym_LPAREN,
+ anon_sym_LBRACK,
+ anon_sym_POUND_LPAREN,
+ anon_sym_POUND_LBRACE,
+ anon_sym_LBRACE,
+ sym_string,
+ sym_bracket_string,
+ sym_complex,
+ sym__bininteger,
+ sym__octinteger,
+ sym__hexinteger,
+ [90] = 2,
+ ACTIONS(368), 8,
+ anon_sym_POUND_,
+ anon_sym_TILDE,
+ anon_sym_POUND_STAR,
+ anon_sym_POUND_STAR_STAR,
+ aux_sym_dotted_identifier_token1,
+ aux_sym_dotted_identifier_token3,
+ sym_float,
+ sym__decinteger,
+ ACTIONS(370), 17,
+ ts_builtin_sym_end,
+ sym_comment,
+ anon_sym_SQUOTE,
+ anon_sym_BQUOTE,
+ anon_sym_TILDE_AT,
+ sym_keyword,
+ anon_sym_LPAREN,
+ anon_sym_LBRACK,
+ anon_sym_POUND_LPAREN,
+ anon_sym_POUND_LBRACE,
+ anon_sym_LBRACE,
+ sym_string,
+ sym_bracket_string,
+ sym_complex,
+ sym__bininteger,
+ sym__octinteger,
+ sym__hexinteger,
+ [120] = 2,
+ ACTIONS(372), 8,
+ anon_sym_POUND_,
+ anon_sym_TILDE,
+ anon_sym_POUND_STAR,
+ anon_sym_POUND_STAR_STAR,
+ aux_sym_dotted_identifier_token1,
+ aux_sym_dotted_identifier_token3,
+ sym_float,
+ sym__decinteger,
+ ACTIONS(374), 17,
+ ts_builtin_sym_end,
+ sym_comment,
+ anon_sym_SQUOTE,
+ anon_sym_BQUOTE,
+ anon_sym_TILDE_AT,
+ sym_keyword,
+ anon_sym_LPAREN,
+ anon_sym_LBRACK,
+ anon_sym_POUND_LPAREN,
+ anon_sym_POUND_LBRACE,
+ anon_sym_LBRACE,
+ sym_string,
+ sym_bracket_string,
+ sym_complex,
+ sym__bininteger,
+ sym__octinteger,
+ sym__hexinteger,
+ [150] = 2,
+ ACTIONS(324), 8,
+ anon_sym_POUND_,
+ anon_sym_TILDE,
+ anon_sym_POUND_STAR,
+ anon_sym_POUND_STAR_STAR,
+ aux_sym_dotted_identifier_token1,
+ aux_sym_dotted_identifier_token3,
+ sym_float,
+ sym__decinteger,
+ ACTIONS(326), 17,
+ ts_builtin_sym_end,
+ sym_comment,
+ anon_sym_SQUOTE,
+ anon_sym_BQUOTE,
+ anon_sym_TILDE_AT,
+ sym_keyword,
+ anon_sym_LPAREN,
+ anon_sym_LBRACK,
+ anon_sym_POUND_LPAREN,
+ anon_sym_POUND_LBRACE,
+ anon_sym_LBRACE,
+ sym_string,
+ sym_bracket_string,
+ sym_complex,
+ sym__bininteger,
+ sym__octinteger,
+ sym__hexinteger,
+ [180] = 2,
+ ACTIONS(382), 8,
+ anon_sym_POUND_,
+ anon_sym_TILDE,
+ anon_sym_POUND_STAR,
+ anon_sym_POUND_STAR_STAR,
+ aux_sym_dotted_identifier_token1,
+ aux_sym_dotted_identifier_token3,
+ sym_float,
+ sym__decinteger,
+ ACTIONS(384), 17,
+ sym_comment,
+ anon_sym_SQUOTE,
+ anon_sym_BQUOTE,
+ anon_sym_TILDE_AT,
+ sym_keyword,
+ anon_sym_LPAREN,
+ anon_sym_LBRACK,
+ anon_sym_POUND_LPAREN,
+ anon_sym_POUND_LBRACE,
+ anon_sym_RBRACE,
+ anon_sym_LBRACE,
+ sym_string,
+ sym_bracket_string,
+ sym_complex,
+ sym__bininteger,
+ sym__octinteger,
+ sym__hexinteger,
+ [210] = 2,
+ ACTIONS(340), 8,
+ anon_sym_POUND_,
+ anon_sym_TILDE,
+ anon_sym_POUND_STAR,
+ anon_sym_POUND_STAR_STAR,
+ aux_sym_dotted_identifier_token1,
+ aux_sym_dotted_identifier_token3,
+ sym_float,
+ sym__decinteger,
+ ACTIONS(342), 17,
+ ts_builtin_sym_end,
+ sym_comment,
+ anon_sym_SQUOTE,
+ anon_sym_BQUOTE,
+ anon_sym_TILDE_AT,
+ sym_keyword,
+ anon_sym_LPAREN,
+ anon_sym_LBRACK,
+ anon_sym_POUND_LPAREN,
+ anon_sym_POUND_LBRACE,
+ anon_sym_LBRACE,
+ sym_string,
+ sym_bracket_string,
+ sym_complex,
+ sym__bininteger,
+ sym__octinteger,
+ sym__hexinteger,
+ [240] = 2,
+ ACTIONS(376), 8,
+ anon_sym_POUND_,
+ anon_sym_TILDE,
+ anon_sym_POUND_STAR,
+ anon_sym_POUND_STAR_STAR,
+ aux_sym_dotted_identifier_token1,
+ aux_sym_dotted_identifier_token3,
+ sym_float,
+ sym__decinteger,
+ ACTIONS(378), 17,
+ ts_builtin_sym_end,
+ sym_comment,
+ anon_sym_SQUOTE,
+ anon_sym_BQUOTE,
+ anon_sym_TILDE_AT,
+ sym_keyword,
+ anon_sym_LPAREN,
+ anon_sym_LBRACK,
+ anon_sym_POUND_LPAREN,
+ anon_sym_POUND_LBRACE,
+ anon_sym_LBRACE,
+ sym_string,
+ sym_bracket_string,
+ sym_complex,
+ sym__bininteger,
+ sym__octinteger,
+ sym__hexinteger,
+ [270] = 2,
+ ACTIONS(328), 8,
+ anon_sym_POUND_,
+ anon_sym_TILDE,
+ anon_sym_POUND_STAR,
+ anon_sym_POUND_STAR_STAR,
+ aux_sym_dotted_identifier_token1,
+ aux_sym_dotted_identifier_token3,
+ sym_float,
+ sym__decinteger,
+ ACTIONS(330), 17,
+ ts_builtin_sym_end,
+ sym_comment,
+ anon_sym_SQUOTE,
+ anon_sym_BQUOTE,
+ anon_sym_TILDE_AT,
+ sym_keyword,
+ anon_sym_LPAREN,
+ anon_sym_LBRACK,
+ anon_sym_POUND_LPAREN,
+ anon_sym_POUND_LBRACE,
+ anon_sym_LBRACE,
+ sym_string,
+ sym_bracket_string,
+ sym_complex,
+ sym__bininteger,
+ sym__octinteger,
+ sym__hexinteger,
+ [300] = 2,
+ ACTIONS(336), 8,
+ anon_sym_POUND_,
+ anon_sym_TILDE,
+ anon_sym_POUND_STAR,
+ anon_sym_POUND_STAR_STAR,
+ aux_sym_dotted_identifier_token1,
+ aux_sym_dotted_identifier_token3,
+ sym_float,
+ sym__decinteger,
+ ACTIONS(338), 17,
+ ts_builtin_sym_end,
+ sym_comment,
+ anon_sym_SQUOTE,
+ anon_sym_BQUOTE,
+ anon_sym_TILDE_AT,
+ sym_keyword,
+ anon_sym_LPAREN,
+ anon_sym_LBRACK,
+ anon_sym_POUND_LPAREN,
+ anon_sym_POUND_LBRACE,
+ anon_sym_LBRACE,
+ sym_string,
+ sym_bracket_string,
+ sym_complex,
+ sym__bininteger,
+ sym__octinteger,
+ sym__hexinteger,
+ [330] = 2,
+ ACTIONS(356), 8,
+ anon_sym_POUND_,
+ anon_sym_TILDE,
+ anon_sym_POUND_STAR,
+ anon_sym_POUND_STAR_STAR,
+ aux_sym_dotted_identifier_token1,
+ aux_sym_dotted_identifier_token3,
+ sym_float,
+ sym__decinteger,
+ ACTIONS(358), 17,
+ ts_builtin_sym_end,
+ sym_comment,
+ anon_sym_SQUOTE,
+ anon_sym_BQUOTE,
+ anon_sym_TILDE_AT,
+ sym_keyword,
+ anon_sym_LPAREN,
+ anon_sym_LBRACK,
+ anon_sym_POUND_LPAREN,
+ anon_sym_POUND_LBRACE,
+ anon_sym_LBRACE,
+ sym_string,
+ sym_bracket_string,
+ sym_complex,
+ sym__bininteger,
+ sym__octinteger,
+ sym__hexinteger,
+ [360] = 2,
+ ACTIONS(344), 8,
+ anon_sym_POUND_,
+ anon_sym_TILDE,
+ anon_sym_POUND_STAR,
+ anon_sym_POUND_STAR_STAR,
+ aux_sym_dotted_identifier_token1,
+ aux_sym_dotted_identifier_token3,
+ sym_float,
+ sym__decinteger,
+ ACTIONS(346), 17,
+ ts_builtin_sym_end,
+ sym_comment,
+ anon_sym_SQUOTE,
+ anon_sym_BQUOTE,
+ anon_sym_TILDE_AT,
+ sym_keyword,
+ anon_sym_LPAREN,
+ anon_sym_LBRACK,
+ anon_sym_POUND_LPAREN,
+ anon_sym_POUND_LBRACE,
+ anon_sym_LBRACE,
+ sym_string,
+ sym_bracket_string,
+ sym_complex,
+ sym__bininteger,
+ sym__octinteger,
+ sym__hexinteger,
+ [390] = 2,
+ ACTIONS(356), 8,
+ anon_sym_POUND_,
+ anon_sym_TILDE,
+ anon_sym_POUND_STAR,
+ anon_sym_POUND_STAR_STAR,
+ aux_sym_dotted_identifier_token1,
+ aux_sym_dotted_identifier_token3,
+ sym_float,
+ sym__decinteger,
+ ACTIONS(358), 17,
+ ts_builtin_sym_end,
+ sym_comment,
+ anon_sym_SQUOTE,
+ anon_sym_BQUOTE,
+ anon_sym_TILDE_AT,
+ sym_keyword,
+ anon_sym_LPAREN,
+ anon_sym_LBRACK,
+ anon_sym_POUND_LPAREN,
+ anon_sym_POUND_LBRACE,
+ anon_sym_LBRACE,
+ sym_string,
+ sym_bracket_string,
+ sym_complex,
+ sym__bininteger,
+ sym__octinteger,
+ sym__hexinteger,
+ [420] = 2,
+ ACTIONS(348), 8,
+ anon_sym_POUND_,
+ anon_sym_TILDE,
+ anon_sym_POUND_STAR,
+ anon_sym_POUND_STAR_STAR,
+ aux_sym_dotted_identifier_token1,
+ aux_sym_dotted_identifier_token3,
+ sym_float,
+ sym__decinteger,
+ ACTIONS(350), 17,
+ ts_builtin_sym_end,
+ sym_comment,
+ anon_sym_SQUOTE,
+ anon_sym_BQUOTE,
+ anon_sym_TILDE_AT,
+ sym_keyword,
+ anon_sym_LPAREN,
+ anon_sym_LBRACK,
+ anon_sym_POUND_LPAREN,
+ anon_sym_POUND_LBRACE,
+ anon_sym_LBRACE,
+ sym_string,
+ sym_bracket_string,
+ sym_complex,
+ sym__bininteger,
+ sym__octinteger,
+ sym__hexinteger,
+ [450] = 2,
+ ACTIONS(356), 8,
+ anon_sym_POUND_,
+ anon_sym_TILDE,
+ anon_sym_POUND_STAR,
+ anon_sym_POUND_STAR_STAR,
+ aux_sym_dotted_identifier_token1,
+ aux_sym_dotted_identifier_token3,
+ sym_float,
+ sym__decinteger,
+ ACTIONS(358), 17,
+ ts_builtin_sym_end,
+ sym_comment,
+ anon_sym_SQUOTE,
+ anon_sym_BQUOTE,
+ anon_sym_TILDE_AT,
+ sym_keyword,
+ anon_sym_LPAREN,
+ anon_sym_LBRACK,
+ anon_sym_POUND_LPAREN,
+ anon_sym_POUND_LBRACE,
+ anon_sym_LBRACE,
+ sym_string,
+ sym_bracket_string,
+ sym_complex,
+ sym__bininteger,
+ sym__octinteger,
+ sym__hexinteger,
+ [480] = 2,
+ ACTIONS(332), 8,
+ anon_sym_POUND_,
+ anon_sym_TILDE,
+ anon_sym_POUND_STAR,
+ anon_sym_POUND_STAR_STAR,
+ aux_sym_dotted_identifier_token1,
+ aux_sym_dotted_identifier_token3,
+ sym_float,
+ sym__decinteger,
+ ACTIONS(334), 17,
+ ts_builtin_sym_end,
+ sym_comment,
+ anon_sym_SQUOTE,
+ anon_sym_BQUOTE,
+ anon_sym_TILDE_AT,
+ sym_keyword,
+ anon_sym_LPAREN,
+ anon_sym_LBRACK,
+ anon_sym_POUND_LPAREN,
+ anon_sym_POUND_LBRACE,
+ anon_sym_LBRACE,
+ sym_string,
+ sym_bracket_string,
+ sym_complex,
+ sym__bininteger,
+ sym__octinteger,
+ sym__hexinteger,
+ [510] = 3,
+ ACTIONS(3), 1,
+ sym_comment,
+ ACTIONS(388), 4,
+ aux_sym_dotted_identifier_token1,
+ aux_sym_dotted_identifier_token3,
+ sym_float,
+ sym__decinteger,
+ ACTIONS(386), 12,
+ sym_keyword,
+ anon_sym_LPAREN,
+ anon_sym_LBRACK,
+ anon_sym_POUND_LPAREN,
+ anon_sym_POUND_LBRACE,
+ anon_sym_LBRACE,
+ sym_string,
+ sym_bracket_string,
+ sym_complex,
+ sym__bininteger,
+ sym__octinteger,
+ sym__hexinteger,
+ [534] = 3,
+ ACTIONS(3), 1,
+ sym_comment,
+ ACTIONS(392), 4,
+ aux_sym_dotted_identifier_token1,
+ aux_sym_dotted_identifier_token3,
+ sym_float,
+ sym__decinteger,
+ ACTIONS(390), 12,
+ sym_keyword,
+ anon_sym_LPAREN,
+ anon_sym_LBRACK,
+ anon_sym_POUND_LPAREN,
+ anon_sym_POUND_LBRACE,
+ anon_sym_LBRACE,
+ sym_string,
+ sym_bracket_string,
+ sym_complex,
+ sym__bininteger,
+ sym__octinteger,
+ sym__hexinteger,
+ [558] = 3,
+ ACTIONS(3), 1,
+ sym_comment,
+ ACTIONS(396), 4,
+ aux_sym_dotted_identifier_token1,
+ aux_sym_dotted_identifier_token3,
+ sym_float,
+ sym__decinteger,
+ ACTIONS(394), 12,
+ sym_keyword,
+ anon_sym_LPAREN,
+ anon_sym_LBRACK,
+ anon_sym_POUND_LPAREN,
+ anon_sym_POUND_LBRACE,
+ anon_sym_LBRACE,
+ sym_string,
+ sym_bracket_string,
+ sym_complex,
+ sym__bininteger,
+ sym__octinteger,
+ sym__hexinteger,
+ [582] = 3,
+ ACTIONS(3), 1,
+ sym_comment,
+ ACTIONS(400), 4,
+ aux_sym_dotted_identifier_token1,
+ aux_sym_dotted_identifier_token3,
+ sym_float,
+ sym__decinteger,
+ ACTIONS(398), 12,
+ sym_keyword,
+ anon_sym_LPAREN,
+ anon_sym_LBRACK,
+ anon_sym_POUND_LPAREN,
+ anon_sym_POUND_LBRACE,
+ anon_sym_LBRACE,
+ sym_string,
+ sym_bracket_string,
+ sym_complex,
+ sym__bininteger,
+ sym__octinteger,
+ sym__hexinteger,
+ [606] = 3,
+ ACTIONS(3), 1,
+ sym_comment,
+ ACTIONS(404), 4,
+ aux_sym_dotted_identifier_token1,
+ aux_sym_dotted_identifier_token3,
+ sym_float,
+ sym__decinteger,
+ ACTIONS(402), 12,
+ sym_keyword,
+ anon_sym_LPAREN,
+ anon_sym_LBRACK,
+ anon_sym_POUND_LPAREN,
+ anon_sym_POUND_LBRACE,
+ anon_sym_LBRACE,
+ sym_string,
+ sym_bracket_string,
+ sym_complex,
+ sym__bininteger,
+ sym__octinteger,
+ sym__hexinteger,
+ [630] = 3,
+ ACTIONS(3), 1,
+ sym_comment,
+ ACTIONS(408), 4,
+ aux_sym_dotted_identifier_token1,
+ aux_sym_dotted_identifier_token3,
+ sym_float,
+ sym__decinteger,
+ ACTIONS(406), 12,
+ sym_keyword,
+ anon_sym_LPAREN,
+ anon_sym_LBRACK,
+ anon_sym_POUND_LPAREN,
+ anon_sym_POUND_LBRACE,
+ anon_sym_LBRACE,
+ sym_string,
+ sym_bracket_string,
+ sym_complex,
+ sym__bininteger,
+ sym__octinteger,
+ sym__hexinteger,
+ [654] = 2,
+ ACTIONS(3), 1,
+ sym_comment,
+ ACTIONS(410), 1,
+ aux_sym_dotted_identifier_token2,
+ [661] = 2,
+ ACTIONS(3), 1,
+ sym_comment,
+ ACTIONS(412), 1,
+ ts_builtin_sym_end,
+ [668] = 2,
+ ACTIONS(3), 1,
+ sym_comment,
+ ACTIONS(414), 1,
+ aux_sym_dotted_identifier_token2,
+};
+
+static const uint32_t ts_small_parse_table_map[] = {
+ [SMALL_STATE(63)] = 0,
+ [SMALL_STATE(64)] = 30,
+ [SMALL_STATE(65)] = 60,
+ [SMALL_STATE(66)] = 90,
+ [SMALL_STATE(67)] = 120,
+ [SMALL_STATE(68)] = 150,
+ [SMALL_STATE(69)] = 180,
+ [SMALL_STATE(70)] = 210,
+ [SMALL_STATE(71)] = 240,
+ [SMALL_STATE(72)] = 270,
+ [SMALL_STATE(73)] = 300,
+ [SMALL_STATE(74)] = 330,
+ [SMALL_STATE(75)] = 360,
+ [SMALL_STATE(76)] = 390,
+ [SMALL_STATE(77)] = 420,
+ [SMALL_STATE(78)] = 450,
+ [SMALL_STATE(79)] = 480,
+ [SMALL_STATE(80)] = 510,
+ [SMALL_STATE(81)] = 534,
+ [SMALL_STATE(82)] = 558,
+ [SMALL_STATE(83)] = 582,
+ [SMALL_STATE(84)] = 606,
+ [SMALL_STATE(85)] = 630,
+ [SMALL_STATE(86)] = 654,
+ [SMALL_STATE(87)] = 661,
+ [SMALL_STATE(88)] = 668,
+};
+
+static const TSParseActionEntry ts_parse_actions[] = {
+ [0] = {.entry = {.count = 0, .reusable = false}},
+ [1] = {.entry = {.count = 1, .reusable = false}}, RECOVER(),
+ [3] = {.entry = {.count = 1, .reusable = true}}, SHIFT_EXTRA(),
+ [5] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 0, 0, 0),
+ [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25),
+ [9] = {.entry = {.count = 1, .reusable = false}}, SHIFT(30),
+ [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73),
+ [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80),
+ [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85),
+ [17] = {.entry = {.count = 1, .reusable = false}}, SHIFT(83),
+ [19] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84),
+ [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(82),
+ [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(81),
+ [25] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72),
+ [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(61),
+ [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(46),
+ [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26),
+ [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21),
+ [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4),
+ [37] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5),
+ [39] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6),
+ [41] = {.entry = {.count = 1, .reusable = false}}, SHIFT(72),
+ [43] = {.entry = {.count = 1, .reusable = false}}, SHIFT(79),
+ [45] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79),
+ [47] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 9), SHIFT_REPEAT(29),
+ [50] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 9), SHIFT_REPEAT(45),
+ [53] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 9), SHIFT_REPEAT(80),
+ [56] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 9), SHIFT_REPEAT(85),
+ [59] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 9), SHIFT_REPEAT(83),
+ [62] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 9), SHIFT_REPEAT(84),
+ [65] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 9), SHIFT_REPEAT(82),
+ [68] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 9), SHIFT_REPEAT(81),
+ [71] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 9), SHIFT_REPEAT(43),
+ [74] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 9), SHIFT_REPEAT(38),
+ [77] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 9), SHIFT_REPEAT(35),
+ [80] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 9), SHIFT_REPEAT(27),
+ [83] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 9),
+ [85] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 9), SHIFT_REPEAT(16),
+ [88] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 9), SHIFT_REPEAT(17),
+ [91] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 9), SHIFT_REPEAT(18),
+ [94] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 9), SHIFT_REPEAT(19),
+ [97] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 9), SHIFT_REPEAT(43),
+ [100] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 9), SHIFT_REPEAT(44),
+ [103] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 9), SHIFT_REPEAT(44),
+ [106] = {.entry = {.count = 1, .reusable = false}}, SHIFT(29),
+ [108] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45),
+ [110] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43),
+ [112] = {.entry = {.count = 1, .reusable = false}}, SHIFT(38),
+ [114] = {.entry = {.count = 1, .reusable = false}}, SHIFT(35),
+ [116] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27),
+ [118] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16),
+ [120] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57),
+ [122] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17),
+ [124] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18),
+ [126] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19),
+ [128] = {.entry = {.count = 1, .reusable = false}}, SHIFT(43),
+ [130] = {.entry = {.count = 1, .reusable = false}}, SHIFT(44),
+ [132] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44),
+ [134] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75),
+ [136] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77),
+ [138] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28),
+ [140] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63),
+ [142] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1, 0, 7),
+ [144] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 2, 0, 8),
+ [146] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64),
+ [148] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65),
+ [150] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66),
+ [152] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67),
+ [154] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71),
+ [156] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 9), SHIFT_REPEAT(30),
+ [159] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 9), SHIFT_REPEAT(73),
+ [162] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 9), SHIFT_REPEAT(72),
+ [165] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 9), SHIFT_REPEAT(61),
+ [168] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 9), SHIFT_REPEAT(46),
+ [171] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 9), SHIFT_REPEAT(26),
+ [174] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 9), SHIFT_REPEAT(21),
+ [177] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 9), SHIFT_REPEAT(4),
+ [180] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 9), SHIFT_REPEAT(5),
+ [183] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 9), SHIFT_REPEAT(6),
+ [186] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 9), SHIFT_REPEAT(72),
+ [189] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 9), SHIFT_REPEAT(79),
+ [192] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 2, 0, 9), SHIFT_REPEAT(79),
+ [195] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_dictionary_repeat1, 2, 0, 12), SHIFT_REPEAT(29),
+ [198] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_dictionary_repeat1, 2, 0, 12), SHIFT_REPEAT(28),
+ [201] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_dictionary_repeat1, 2, 0, 12), SHIFT_REPEAT(80),
+ [204] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_dictionary_repeat1, 2, 0, 12), SHIFT_REPEAT(85),
+ [207] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_dictionary_repeat1, 2, 0, 12), SHIFT_REPEAT(83),
+ [210] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_dictionary_repeat1, 2, 0, 12), SHIFT_REPEAT(84),
+ [213] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_dictionary_repeat1, 2, 0, 12), SHIFT_REPEAT(82),
+ [216] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_dictionary_repeat1, 2, 0, 12), SHIFT_REPEAT(81),
+ [219] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_dictionary_repeat1, 2, 0, 12), SHIFT_REPEAT(43),
+ [222] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_dictionary_repeat1, 2, 0, 12), SHIFT_REPEAT(38),
+ [225] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_dictionary_repeat1, 2, 0, 12), SHIFT_REPEAT(35),
+ [228] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_dictionary_repeat1, 2, 0, 12), SHIFT_REPEAT(27),
+ [231] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_dictionary_repeat1, 2, 0, 12), SHIFT_REPEAT(16),
+ [234] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_dictionary_repeat1, 2, 0, 12), SHIFT_REPEAT(17),
+ [237] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_dictionary_repeat1, 2, 0, 12), SHIFT_REPEAT(18),
+ [240] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_dictionary_repeat1, 2, 0, 12),
+ [242] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_dictionary_repeat1, 2, 0, 12), SHIFT_REPEAT(19),
+ [245] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_dictionary_repeat1, 2, 0, 12), SHIFT_REPEAT(43),
+ [248] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_dictionary_repeat1, 2, 0, 12), SHIFT_REPEAT(44),
+ [251] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_dictionary_repeat1, 2, 0, 12), SHIFT_REPEAT(44),
+ [254] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48),
+ [256] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49),
+ [258] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50),
+ [260] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51),
+ [262] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56),
+ [264] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70),
+ [266] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58),
+ [268] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59),
+ [270] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60),
+ [272] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source_file, 1, 0, 0),
+ [274] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69),
+ [276] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42),
+ [278] = {.entry = {.count = 1, .reusable = false}}, SHIFT(42),
+ [280] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68),
+ [282] = {.entry = {.count = 1, .reusable = false}}, SHIFT(68),
+ [284] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_dotted_identifier_repeat1, 2, 0, 0),
+ [286] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_dotted_identifier_repeat1, 2, 0, 0),
+ [288] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_dotted_identifier_repeat1, 2, 0, 0), SHIFT_REPEAT(88),
+ [291] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dotted_identifier, 2, 0, 0),
+ [293] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dotted_identifier, 2, 0, 0),
+ [295] = {.entry = {.count = 1, .reusable = false}}, SHIFT(88),
+ [297] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74),
+ [299] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76),
+ [301] = {.entry = {.count = 1, .reusable = false}}, SHIFT(74),
+ [303] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52),
+ [305] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54),
+ [307] = {.entry = {.count = 1, .reusable = false}}, SHIFT(52),
+ [309] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_symbol, 1, 0, 0),
+ [311] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_symbol, 1, 0, 0),
+ [313] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dotted_identifier, 3, 0, 0),
+ [315] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dotted_identifier, 3, 0, 0),
+ [317] = {.entry = {.count = 1, .reusable = false}}, SHIFT(32),
+ [319] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_dotted_identifier_repeat1, 2, 0, 0), SHIFT_REPEAT(86),
+ [322] = {.entry = {.count = 1, .reusable = false}}, SHIFT(86),
+ [324] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_discard, 2, 0, 8),
+ [326] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_discard, 2, 0, 8),
+ [328] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__element, 1, 0, 7),
+ [330] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__element, 1, 0, 7),
+ [332] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_integer, 1, 0, 0),
+ [334] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_integer, 1, 0, 0),
+ [336] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_source_file_repeat1, 1, 0, 7),
+ [338] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_source_file_repeat1, 1, 0, 7),
+ [340] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list, 2, 0, 0),
+ [342] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 2, 0, 0),
+ [344] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple, 2, 0, 0),
+ [346] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple, 2, 0, 0),
+ [348] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_set, 2, 0, 0),
+ [350] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_set, 2, 0, 0),
+ [352] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dictionary, 2, 0, 0),
+ [354] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary, 2, 0, 0),
+ [356] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__form, 2, 0, 7),
+ [358] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__form, 2, 0, 7),
+ [360] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression, 3, 0, 8),
+ [362] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression, 3, 0, 8),
+ [364] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list, 3, 0, 8),
+ [366] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 3, 0, 8),
+ [368] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple, 3, 0, 8),
+ [370] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple, 3, 0, 8),
+ [372] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_set, 3, 0, 8),
+ [374] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_set, 3, 0, 8),
+ [376] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dictionary, 3, 0, 11),
+ [378] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary, 3, 0, 11),
+ [380] = {.entry = {.count = 1, .reusable = false}}, SHIFT(47),
+ [382] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_dictionary_repeat1, 2, 0, 10),
+ [384] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_dictionary_repeat1, 2, 0, 10),
+ [386] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__sugar, 1, 0, 1),
+ [388] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__sugar, 1, 0, 1),
+ [390] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__sugar, 1, 0, 6),
+ [392] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__sugar, 1, 0, 6),
+ [394] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__sugar, 1, 0, 5),
+ [396] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__sugar, 1, 0, 5),
+ [398] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__sugar, 1, 0, 3),
+ [400] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__sugar, 1, 0, 3),
+ [402] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__sugar, 1, 0, 4),
+ [404] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__sugar, 1, 0, 4),
+ [406] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__sugar, 1, 0, 2),
+ [408] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__sugar, 1, 0, 2),
+ [410] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62),
+ [412] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(),
+ [414] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39),
+};
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifdef TREE_SITTER_HIDE_SYMBOLS
+#define TS_PUBLIC
+#elif defined(_WIN32)
+#define TS_PUBLIC __declspec(dllexport)
+#else
+#define TS_PUBLIC __attribute__((visibility("default")))
+#endif
+
+TS_PUBLIC const TSLanguage *tree_sitter_hy(void) {
+ static const TSLanguage language = {
+ .abi_version = LANGUAGE_VERSION,
+ .symbol_count = SYMBOL_COUNT,
+ .alias_count = ALIAS_COUNT,
+ .token_count = TOKEN_COUNT,
+ .external_token_count = EXTERNAL_TOKEN_COUNT,
+ .state_count = STATE_COUNT,
+ .large_state_count = LARGE_STATE_COUNT,
+ .production_id_count = PRODUCTION_ID_COUNT,
+ .supertype_count = SUPERTYPE_COUNT,
+ .field_count = FIELD_COUNT,
+ .max_alias_sequence_length = MAX_ALIAS_SEQUENCE_LENGTH,
+ .parse_table = &ts_parse_table[0][0],
+ .small_parse_table = ts_small_parse_table,
+ .small_parse_table_map = ts_small_parse_table_map,
+ .parse_actions = ts_parse_actions,
+ .symbol_names = ts_symbol_names,
+ .field_names = ts_field_names,
+ .field_map_slices = ts_field_map_slices,
+ .field_map_entries = ts_field_map_entries,
+ .symbol_metadata = ts_symbol_metadata,
+ .public_symbol_map = ts_symbol_map,
+ .alias_map = ts_non_terminal_alias_map,
+ .alias_sequences = &ts_alias_sequences[0][0],
+ .lex_modes = (const void*)ts_lex_modes,
+ .lex_fn = ts_lex,
+ .primary_state_ids = ts_primary_state_ids,
+ .name = "hy",
+ .max_reserved_word_set_size = 0,
+ .metadata = {
+ .major_version = 0,
+ .minor_version = 1,
+ .patch_version = 0,
+ },
+ };
+ return &language;
+}
+#ifdef __cplusplus
+}
+#endif
diff --git a/src/tree_sitter/alloc.h b/src/tree_sitter/alloc.h
new file mode 100644
index 0000000..1abdd12
--- /dev/null
+++ b/src/tree_sitter/alloc.h
@@ -0,0 +1,54 @@
+#ifndef TREE_SITTER_ALLOC_H_
+#define TREE_SITTER_ALLOC_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include
+#include
+#include
+
+// Allow clients to override allocation functions
+#ifdef TREE_SITTER_REUSE_ALLOCATOR
+
+extern void *(*ts_current_malloc)(size_t size);
+extern void *(*ts_current_calloc)(size_t count, size_t size);
+extern void *(*ts_current_realloc)(void *ptr, size_t size);
+extern void (*ts_current_free)(void *ptr);
+
+#ifndef ts_malloc
+#define ts_malloc ts_current_malloc
+#endif
+#ifndef ts_calloc
+#define ts_calloc ts_current_calloc
+#endif
+#ifndef ts_realloc
+#define ts_realloc ts_current_realloc
+#endif
+#ifndef ts_free
+#define ts_free ts_current_free
+#endif
+
+#else
+
+#ifndef ts_malloc
+#define ts_malloc malloc
+#endif
+#ifndef ts_calloc
+#define ts_calloc calloc
+#endif
+#ifndef ts_realloc
+#define ts_realloc realloc
+#endif
+#ifndef ts_free
+#define ts_free free
+#endif
+
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // TREE_SITTER_ALLOC_H_
diff --git a/src/tree_sitter/array.h b/src/tree_sitter/array.h
new file mode 100644
index 0000000..a17a574
--- /dev/null
+++ b/src/tree_sitter/array.h
@@ -0,0 +1,291 @@
+#ifndef TREE_SITTER_ARRAY_H_
+#define TREE_SITTER_ARRAY_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "./alloc.h"
+
+#include
+#include
+#include
+#include
+#include
+
+#ifdef _MSC_VER
+#pragma warning(push)
+#pragma warning(disable : 4101)
+#elif defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#endif
+
+#define Array(T) \
+ struct { \
+ T *contents; \
+ uint32_t size; \
+ uint32_t capacity; \
+ }
+
+/// Initialize an array.
+#define array_init(self) \
+ ((self)->size = 0, (self)->capacity = 0, (self)->contents = NULL)
+
+/// Create an empty array.
+#define array_new() \
+ { NULL, 0, 0 }
+
+/// Get a pointer to the element at a given `index` in the array.
+#define array_get(self, _index) \
+ (assert((uint32_t)(_index) < (self)->size), &(self)->contents[_index])
+
+/// Get a pointer to the first element in the array.
+#define array_front(self) array_get(self, 0)
+
+/// Get a pointer to the last element in the array.
+#define array_back(self) array_get(self, (self)->size - 1)
+
+/// Clear the array, setting its size to zero. Note that this does not free any
+/// memory allocated for the array's contents.
+#define array_clear(self) ((self)->size = 0)
+
+/// Reserve `new_capacity` elements of space in the array. If `new_capacity` is
+/// less than the array's current capacity, this function has no effect.
+#define array_reserve(self, new_capacity) \
+ _array__reserve((Array *)(self), array_elem_size(self), new_capacity)
+
+/// Free any memory allocated for this array. Note that this does not free any
+/// memory allocated for the array's contents.
+#define array_delete(self) _array__delete((Array *)(self))
+
+/// Push a new `element` onto the end of the array.
+#define array_push(self, element) \
+ (_array__grow((Array *)(self), 1, array_elem_size(self)), \
+ (self)->contents[(self)->size++] = (element))
+
+/// Increase the array's size by `count` elements.
+/// New elements are zero-initialized.
+#define array_grow_by(self, count) \
+ do { \
+ if ((count) == 0) break; \
+ _array__grow((Array *)(self), count, array_elem_size(self)); \
+ memset((self)->contents + (self)->size, 0, (count) * array_elem_size(self)); \
+ (self)->size += (count); \
+ } while (0)
+
+/// Append all elements from one array to the end of another.
+#define array_push_all(self, other) \
+ array_extend((self), (other)->size, (other)->contents)
+
+/// Append `count` elements to the end of the array, reading their values from the
+/// `contents` pointer.
+#define array_extend(self, count, contents) \
+ _array__splice( \
+ (Array *)(self), array_elem_size(self), (self)->size, \
+ 0, count, contents \
+ )
+
+/// Remove `old_count` elements from the array starting at the given `index`. At
+/// the same index, insert `new_count` new elements, reading their values from the
+/// `new_contents` pointer.
+#define array_splice(self, _index, old_count, new_count, new_contents) \
+ _array__splice( \
+ (Array *)(self), array_elem_size(self), _index, \
+ old_count, new_count, new_contents \
+ )
+
+/// Insert one `element` into the array at the given `index`.
+#define array_insert(self, _index, element) \
+ _array__splice((Array *)(self), array_elem_size(self), _index, 0, 1, &(element))
+
+/// Remove one element from the array at the given `index`.
+#define array_erase(self, _index) \
+ _array__erase((Array *)(self), array_elem_size(self), _index)
+
+/// Pop the last element off the array, returning the element by value.
+#define array_pop(self) ((self)->contents[--(self)->size])
+
+/// Assign the contents of one array to another, reallocating if necessary.
+#define array_assign(self, other) \
+ _array__assign((Array *)(self), (const Array *)(other), array_elem_size(self))
+
+/// Swap one array with another
+#define array_swap(self, other) \
+ _array__swap((Array *)(self), (Array *)(other))
+
+/// Get the size of the array contents
+#define array_elem_size(self) (sizeof *(self)->contents)
+
+/// Search a sorted array for a given `needle` value, using the given `compare`
+/// callback to determine the order.
+///
+/// If an existing element is found to be equal to `needle`, then the `index`
+/// out-parameter is set to the existing value's index, and the `exists`
+/// out-parameter is set to true. Otherwise, `index` is set to an index where
+/// `needle` should be inserted in order to preserve the sorting, and `exists`
+/// is set to false.
+#define array_search_sorted_with(self, compare, needle, _index, _exists) \
+ _array__search_sorted(self, 0, compare, , needle, _index, _exists)
+
+/// Search a sorted array for a given `needle` value, using integer comparisons
+/// of a given struct field (specified with a leading dot) to determine the order.
+///
+/// See also `array_search_sorted_with`.
+#define array_search_sorted_by(self, field, needle, _index, _exists) \
+ _array__search_sorted(self, 0, _compare_int, field, needle, _index, _exists)
+
+/// Insert a given `value` into a sorted array, using the given `compare`
+/// callback to determine the order.
+#define array_insert_sorted_with(self, compare, value) \
+ do { \
+ unsigned _index, _exists; \
+ array_search_sorted_with(self, compare, &(value), &_index, &_exists); \
+ if (!_exists) array_insert(self, _index, value); \
+ } while (0)
+
+/// Insert a given `value` into a sorted array, using integer comparisons of
+/// a given struct field (specified with a leading dot) to determine the order.
+///
+/// See also `array_search_sorted_by`.
+#define array_insert_sorted_by(self, field, value) \
+ do { \
+ unsigned _index, _exists; \
+ array_search_sorted_by(self, field, (value) field, &_index, &_exists); \
+ if (!_exists) array_insert(self, _index, value); \
+ } while (0)
+
+// Private
+
+typedef Array(void) Array;
+
+/// This is not what you're looking for, see `array_delete`.
+static inline void _array__delete(Array *self) {
+ if (self->contents) {
+ ts_free(self->contents);
+ self->contents = NULL;
+ self->size = 0;
+ self->capacity = 0;
+ }
+}
+
+/// This is not what you're looking for, see `array_erase`.
+static inline void _array__erase(Array *self, size_t element_size,
+ uint32_t index) {
+ assert(index < self->size);
+ char *contents = (char *)self->contents;
+ memmove(contents + index * element_size, contents + (index + 1) * element_size,
+ (self->size - index - 1) * element_size);
+ self->size--;
+}
+
+/// This is not what you're looking for, see `array_reserve`.
+static inline void _array__reserve(Array *self, size_t element_size, uint32_t new_capacity) {
+ if (new_capacity > self->capacity) {
+ if (self->contents) {
+ self->contents = ts_realloc(self->contents, new_capacity * element_size);
+ } else {
+ self->contents = ts_malloc(new_capacity * element_size);
+ }
+ self->capacity = new_capacity;
+ }
+}
+
+/// This is not what you're looking for, see `array_assign`.
+static inline void _array__assign(Array *self, const Array *other, size_t element_size) {
+ _array__reserve(self, element_size, other->size);
+ self->size = other->size;
+ memcpy(self->contents, other->contents, self->size * element_size);
+}
+
+/// This is not what you're looking for, see `array_swap`.
+static inline void _array__swap(Array *self, Array *other) {
+ Array swap = *other;
+ *other = *self;
+ *self = swap;
+}
+
+/// This is not what you're looking for, see `array_push` or `array_grow_by`.
+static inline void _array__grow(Array *self, uint32_t count, size_t element_size) {
+ uint32_t new_size = self->size + count;
+ if (new_size > self->capacity) {
+ uint32_t new_capacity = self->capacity * 2;
+ if (new_capacity < 8) new_capacity = 8;
+ if (new_capacity < new_size) new_capacity = new_size;
+ _array__reserve(self, element_size, new_capacity);
+ }
+}
+
+/// This is not what you're looking for, see `array_splice`.
+static inline void _array__splice(Array *self, size_t element_size,
+ uint32_t index, uint32_t old_count,
+ uint32_t new_count, const void *elements) {
+ uint32_t new_size = self->size + new_count - old_count;
+ uint32_t old_end = index + old_count;
+ uint32_t new_end = index + new_count;
+ assert(old_end <= self->size);
+
+ _array__reserve(self, element_size, new_size);
+
+ char *contents = (char *)self->contents;
+ if (self->size > old_end) {
+ memmove(
+ contents + new_end * element_size,
+ contents + old_end * element_size,
+ (self->size - old_end) * element_size
+ );
+ }
+ if (new_count > 0) {
+ if (elements) {
+ memcpy(
+ (contents + index * element_size),
+ elements,
+ new_count * element_size
+ );
+ } else {
+ memset(
+ (contents + index * element_size),
+ 0,
+ new_count * element_size
+ );
+ }
+ }
+ self->size += new_count - old_count;
+}
+
+/// A binary search routine, based on Rust's `std::slice::binary_search_by`.
+/// This is not what you're looking for, see `array_search_sorted_with` or `array_search_sorted_by`.
+#define _array__search_sorted(self, start, compare, suffix, needle, _index, _exists) \
+ do { \
+ *(_index) = start; \
+ *(_exists) = false; \
+ uint32_t size = (self)->size - *(_index); \
+ if (size == 0) break; \
+ int comparison; \
+ while (size > 1) { \
+ uint32_t half_size = size / 2; \
+ uint32_t mid_index = *(_index) + half_size; \
+ comparison = compare(&((self)->contents[mid_index] suffix), (needle)); \
+ if (comparison <= 0) *(_index) = mid_index; \
+ size -= half_size; \
+ } \
+ comparison = compare(&((self)->contents[*(_index)] suffix), (needle)); \
+ if (comparison == 0) *(_exists) = true; \
+ else if (comparison < 0) *(_index) += 1; \
+ } while (0)
+
+/// Helper macro for the `_sorted_by` routines below. This takes the left (existing)
+/// parameter by reference in order to work with the generic sorting function above.
+#define _compare_int(a, b) ((int)*(a) - (int)(b))
+
+#ifdef _MSC_VER
+#pragma warning(pop)
+#elif defined(__GNUC__) || defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // TREE_SITTER_ARRAY_H_
diff --git a/src/tree_sitter/parser.h b/src/tree_sitter/parser.h
new file mode 100644
index 0000000..cdbe64c
--- /dev/null
+++ b/src/tree_sitter/parser.h
@@ -0,0 +1,287 @@
+#ifndef TREE_SITTER_PARSER_H_
+#define TREE_SITTER_PARSER_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include
+#include
+#include
+
+#define ts_builtin_sym_error ((TSSymbol)-1)
+#define ts_builtin_sym_end 0
+#define TREE_SITTER_SERIALIZATION_BUFFER_SIZE 1024
+
+#ifndef TREE_SITTER_API_H_
+typedef uint16_t TSStateId;
+typedef uint16_t TSSymbol;
+typedef uint16_t TSFieldId;
+typedef struct TSLanguage TSLanguage;
+typedef struct TSLanguageMetadata TSLanguageMetadata;
+typedef struct TSLanguageMetadata {
+ uint8_t major_version;
+ uint8_t minor_version;
+ uint8_t patch_version;
+} TSLanguageMetadata;
+#endif
+
+typedef struct {
+ TSFieldId field_id;
+ uint8_t child_index;
+ bool inherited;
+} TSFieldMapEntry;
+
+// Used to index the field and supertype maps.
+typedef struct {
+ uint16_t index;
+ uint16_t length;
+} TSMapSlice;
+
+typedef struct {
+ bool visible;
+ bool named;
+ bool supertype;
+} TSSymbolMetadata;
+
+typedef struct TSLexer TSLexer;
+
+struct TSLexer {
+ int32_t lookahead;
+ TSSymbol result_symbol;
+ void (*advance)(TSLexer *, bool);
+ void (*mark_end)(TSLexer *);
+ uint32_t (*get_column)(TSLexer *);
+ bool (*is_at_included_range_start)(const TSLexer *);
+ bool (*eof)(const TSLexer *);
+ void (*log)(const TSLexer *, const char *, ...);
+};
+
+typedef enum {
+ TSParseActionTypeShift,
+ TSParseActionTypeReduce,
+ TSParseActionTypeAccept,
+ TSParseActionTypeRecover,
+} TSParseActionType;
+
+typedef union {
+ struct {
+ uint8_t type;
+ TSStateId state;
+ bool extra;
+ bool repetition;
+ } shift;
+ struct {
+ uint8_t type;
+ uint8_t child_count;
+ TSSymbol symbol;
+ int16_t dynamic_precedence;
+ uint16_t production_id;
+ } reduce;
+ uint8_t type;
+} TSParseAction;
+
+typedef struct {
+ uint16_t lex_state;
+ uint16_t external_lex_state;
+} TSLexMode;
+
+typedef struct {
+ uint16_t lex_state;
+ uint16_t external_lex_state;
+ uint16_t reserved_word_set_id;
+} TSLexerMode;
+
+typedef union {
+ TSParseAction action;
+ struct {
+ uint8_t count;
+ bool reusable;
+ } entry;
+} TSParseActionEntry;
+
+typedef struct {
+ int32_t start;
+ int32_t end;
+} TSCharacterRange;
+
+struct TSLanguage {
+ uint32_t abi_version;
+ uint32_t symbol_count;
+ uint32_t alias_count;
+ uint32_t token_count;
+ uint32_t external_token_count;
+ uint32_t state_count;
+ uint32_t large_state_count;
+ uint32_t production_id_count;
+ uint32_t field_count;
+ uint16_t max_alias_sequence_length;
+ const uint16_t *parse_table;
+ const uint16_t *small_parse_table;
+ const uint32_t *small_parse_table_map;
+ const TSParseActionEntry *parse_actions;
+ const char * const *symbol_names;
+ const char * const *field_names;
+ const TSMapSlice *field_map_slices;
+ const TSFieldMapEntry *field_map_entries;
+ const TSSymbolMetadata *symbol_metadata;
+ const TSSymbol *public_symbol_map;
+ const uint16_t *alias_map;
+ const TSSymbol *alias_sequences;
+ const TSLexerMode *lex_modes;
+ bool (*lex_fn)(TSLexer *, TSStateId);
+ bool (*keyword_lex_fn)(TSLexer *, TSStateId);
+ TSSymbol keyword_capture_token;
+ struct {
+ const bool *states;
+ const TSSymbol *symbol_map;
+ void *(*create)(void);
+ void (*destroy)(void *);
+ bool (*scan)(void *, TSLexer *, const bool *symbol_whitelist);
+ unsigned (*serialize)(void *, char *);
+ void (*deserialize)(void *, const char *, unsigned);
+ } external_scanner;
+ const TSStateId *primary_state_ids;
+ const char *name;
+ const TSSymbol *reserved_words;
+ uint16_t max_reserved_word_set_size;
+ uint32_t supertype_count;
+ const TSSymbol *supertype_symbols;
+ const TSMapSlice *supertype_map_slices;
+ const TSSymbol *supertype_map_entries;
+ TSLanguageMetadata metadata;
+};
+
+static inline bool set_contains(const TSCharacterRange *ranges, uint32_t len, int32_t lookahead) {
+ uint32_t index = 0;
+ uint32_t size = len - index;
+ while (size > 1) {
+ uint32_t half_size = size / 2;
+ uint32_t mid_index = index + half_size;
+ const TSCharacterRange *range = &ranges[mid_index];
+ if (lookahead >= range->start && lookahead <= range->end) {
+ return true;
+ } else if (lookahead > range->end) {
+ index = mid_index;
+ }
+ size -= half_size;
+ }
+ const TSCharacterRange *range = &ranges[index];
+ return (lookahead >= range->start && lookahead <= range->end);
+}
+
+/*
+ * Lexer Macros
+ */
+
+#ifdef _MSC_VER
+#define UNUSED __pragma(warning(suppress : 4101))
+#else
+#define UNUSED __attribute__((unused))
+#endif
+
+#define START_LEXER() \
+ bool result = false; \
+ bool skip = false; \
+ UNUSED \
+ bool eof = false; \
+ int32_t lookahead; \
+ goto start; \
+ next_state: \
+ lexer->advance(lexer, skip); \
+ start: \
+ skip = false; \
+ lookahead = lexer->lookahead;
+
+#define ADVANCE(state_value) \
+ { \
+ state = state_value; \
+ goto next_state; \
+ }
+
+#define ADVANCE_MAP(...) \
+ { \
+ static const uint16_t map[] = { __VA_ARGS__ }; \
+ for (uint32_t i = 0; i < sizeof(map) / sizeof(map[0]); i += 2) { \
+ if (map[i] == lookahead) { \
+ state = map[i + 1]; \
+ goto next_state; \
+ } \
+ } \
+ }
+
+#define SKIP(state_value) \
+ { \
+ skip = true; \
+ state = state_value; \
+ goto next_state; \
+ }
+
+#define ACCEPT_TOKEN(symbol_value) \
+ result = true; \
+ lexer->result_symbol = symbol_value; \
+ lexer->mark_end(lexer);
+
+#define END_STATE() return result;
+
+/*
+ * Parse Table Macros
+ */
+
+#define SMALL_STATE(id) ((id) - LARGE_STATE_COUNT)
+
+#define STATE(id) id
+
+#define ACTIONS(id) id
+
+#define SHIFT(state_value) \
+ {{ \
+ .shift = { \
+ .type = TSParseActionTypeShift, \
+ .state = (state_value) \
+ } \
+ }}
+
+#define SHIFT_REPEAT(state_value) \
+ {{ \
+ .shift = { \
+ .type = TSParseActionTypeShift, \
+ .state = (state_value), \
+ .repetition = true \
+ } \
+ }}
+
+#define SHIFT_EXTRA() \
+ {{ \
+ .shift = { \
+ .type = TSParseActionTypeShift, \
+ .extra = true \
+ } \
+ }}
+
+#define REDUCE(symbol_name, children, precedence, prod_id) \
+ {{ \
+ .reduce = { \
+ .type = TSParseActionTypeReduce, \
+ .symbol = symbol_name, \
+ .child_count = children, \
+ .dynamic_precedence = precedence, \
+ .production_id = prod_id \
+ }, \
+ }}
+
+#define RECOVER() \
+ {{ \
+ .type = TSParseActionTypeRecover \
+ }}
+
+#define ACCEPT_INPUT() \
+ {{ \
+ .type = TSParseActionTypeAccept \
+ }}
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // TREE_SITTER_PARSER_H_
diff --git a/test/corpus/basic.txt b/test/corpus/basic.txt
new file mode 100644
index 0000000..033a9bf
--- /dev/null
+++ b/test/corpus/basic.txt
@@ -0,0 +1,21 @@
+=======
+shebang
+=======
+
+#!/usr/bin/env hy
+
+---
+
+(source_file
+ (shebang))
+
+=======
+comment
+=======
+
+; this is a comment
+
+---
+
+(source_file
+ (comment))
diff --git a/test/corpus/identifier.txt b/test/corpus/identifier.txt
new file mode 100644
index 0000000..8484e71
--- /dev/null
+++ b/test/corpus/identifier.txt
@@ -0,0 +1,50 @@
+=======
+keyword
+=======
+
+:test
+(f :foo 3)
+
+---
+
+(source_file
+ (keyword)
+ (expression
+ (symbol) (keyword) (integer)))
+
+==================
+dotted identifiers
+==================
+
+(foo.bar.baz)
+(.foo.bar)
+(..foo.bar)
+.foo.bar
+
+---
+
+(source_file
+ (expression
+ (dotted_identifier))
+ (expression
+ (dotted_identifier))
+ (expression
+ (dotted_identifier))
+ (dotted_identifier))
+
+======================
+not dotted identifiers
+======================
+
+.
+...
+........
+. .
+
+---
+
+(source_file
+ (symbol)
+ (symbol)
+ (symbol)
+ (symbol) (symbol))
diff --git a/test/corpus/numeric.txt b/test/corpus/numeric.txt
new file mode 100644
index 0000000..013d04a
--- /dev/null
+++ b/test/corpus/numeric.txt
@@ -0,0 +1,268 @@
+=======
+integer
+=======
+
+7
+
+---
+
+(source_file
+ (integer))
+
+============
+integer long
+============
+
+2147483647
+
+---
+
+(source_file
+ (integer))
+
+==================
+integer super long
+==================
+
+79228162514264337593543950336
+
+---
+
+(source_file
+ (integer))
+
+==================
+integer zero start
+==================
+
+00000042
+
+---
+
+(source_file
+ (integer))
+
+========================
+integer should be symbol
+========================
+
+_1
+
+---
+
+(source_file
+ (symbol))
+
+==============
+integer signed
+==============
+
+-7
++7
+
+---
+
+(source_file
+ (integer) (integer))
+
+==============
+integer with _
+==============
+
+100_000_000__000
+
+---
+
+(source_file
+ (integer))
+
+==============
+integer with ,
+==============
+
+10,000,000,000
+
+---
+
+(source_file
+ (integer))
+
+=============
+integer octal
+=============
+
+0o177
+
+---
+
+(source_file
+ (integer))
+
+==============
+integer binary
+==============
+
+0b_1110_0101
+
+---
+
+(source_file
+ (integer))
+
+===========
+integer hex
+===========
+
+0xdeadbeef
+
+---
+
+(source_file
+ (integer))
+
+=====
+float
+=====
+
+3.14
+
+---
+
+(source_file
+ (float))
+
+============
+float signed
+============
+
++2.17
+-1.
+
+---
+
+(source_file
+ (float) (float))
+
+=================
+float no fraction
+=================
+
+10.
+
+---
+
+(source_file
+ (float))
+
+===================
+float only fraction
+===================
+
+.001
+
+---
+
+(source_file
+ (float))
+
+
+============
+float with _
+============
+
+3.14_15_93
+
+---
+
+(source_file
+ (float))
+
+============================
+float scientific no fraction
+============================
+
+1e100
+
+---
+
+(source_file
+ (float))
+
+==============================
+float scientific with fraction
+==============================
+
+3.14e-10
+
+---
+
+(source_file
+ (float))
+
+=======================
+float scientific zeroes
+=======================
+
+0e0
+
+---
+
+(source_file
+ (float))
+
+==============
+float literals
+==============
+
+NaN
+Inf
+-Inf
+
+---
+
+(source_file
+ (float) (float) (float))
+
+=======
+complex
+=======
+
+3+4j
+
+---
+
+(source_file
+ (complex))
+
+==============
+complex signed
+==============
+
+-3+4j
+
+---
+
+(source_file
+ (complex))
+
+==============
+complex harder
+==============
+
+0+3.14e-10j
+
+---
+
+(source_file
+ (complex))
+
+===============
+complex literal
+===============
+
+-Inf+NaNj
+
+---
+
+(source_file
+ (complex))
diff --git a/test/corpus/sequence.txt b/test/corpus/sequence.txt
new file mode 100644
index 0000000..d58cf37
--- /dev/null
+++ b/test/corpus/sequence.txt
@@ -0,0 +1,82 @@
+==========
+expression
+==========
+
+(test this)
+
+---
+
+(source_file
+ (expression
+ (symbol) (symbol)))
+
+====
+list
+====
+
+[me list]
+[]
+
+---
+
+(source_file
+ (list
+ (symbol) (symbol))
+ (list))
+
+=====
+tuple
+=====
+
+#(first second)
+#()
+
+---
+
+(source_file
+ (tuple
+ (symbol) (symbol))
+ (tuple))
+
+===
+set
+===
+
+#{look me}
+#{}
+
+---
+
+(source_file
+ (set
+ (symbol) (symbol))
+ (set))
+
+==========
+dictionary
+==========
+
+{key value}
+{}
+
+---
+
+(source_file
+ (dictionary
+ (symbol) (symbol))
+ (dictionary))
+
+===================
+function definition
+===================
+
+(defn my-fn []
+ (print "abcd"))
+
+---
+
+(source_file
+ (expression
+ (symbol) (symbol) (list)
+ (expression
+ (symbol) (string))))
diff --git a/test/corpus/string.txt b/test/corpus/string.txt
new file mode 100644
index 0000000..945dc08
--- /dev/null
+++ b/test/corpus/string.txt
@@ -0,0 +1,35 @@
+======
+string
+======
+
+("i am a string")
+("i am
+also a string")
+"me too!"
+
+---
+
+(source_file
+ (expression
+ (string))
+ (expression
+ (string))
+ (string))
+
+==============
+bracket string
+==============
+
+(#[[i am a bracket string]])
+(#[[i am
+also a bracket string]])
+#[[me too!]]
+
+---
+
+(source_file
+ (expression
+ (bracket_string))
+ (expression
+ (bracket_string))
+ (bracket_string))