From 34940815a69e66a5dc340cd0c32370f3b99ec468 Mon Sep 17 00:00:00 2001 From: neptumiun Date: Mon, 30 Mar 2026 11:41:32 +0200 Subject: [PATCH 01/31] fix: add backslash to regex for macro parameter --- grammar.js | 2 +- test/corpus/instr_and_reg.test | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/grammar.js b/grammar.js index 6e4f80d7..6ff4d466 100644 --- a/grammar.js +++ b/grammar.js @@ -128,7 +128,7 @@ module.exports = grammar({ /'[^']*'/ ), - word: $ => /[a-zA-Z0-9_]+/, + word: $ => /[\\a-zA-Z0-9_]+/, _reg: $ => /%?[a-z0-9]+/, address: $ => /[=\$][a-zA-Z0-9_]+/, // GAS x86 address reg: $ => choice($._reg, $.word, $.address), diff --git a/test/corpus/instr_and_reg.test b/test/corpus/instr_and_reg.test index aeb8f16c..02ce290a 100644 --- a/test/corpus/instr_and_reg.test +++ b/test/corpus/instr_and_reg.test @@ -189,3 +189,17 @@ LDR A1, =addr (ident (reg (address))))) +========== +Macro -- use macro Parameters +========== +mov rax, \parm +--- +(program + (instruction + (word) + (ident + (reg + (word))) + (ident + (reg + (word))))) From ac0225d08cc5cc8c2abe1d3196bdf8452eb20a95 Mon Sep 17 00:00:00 2001 From: neptumiun Date: Mon, 30 Mar 2026 14:49:49 +0200 Subject: [PATCH 02/31] fix: add support for macros with arguments --- grammar.js | 2 +- test/corpus/instr_and_reg.test | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/grammar.js b/grammar.js index 6ff4d466..658d1018 100644 --- a/grammar.js +++ b/grammar.js @@ -26,7 +26,7 @@ module.exports = grammar({ seq( field('kind', $.meta_ident), optional(choice( - $.ident, + seq($.ident, seq($.ident, repeat(seq(',', $.ident)))), seq($.int, repeat(seq(',', $.int))), seq($.float, repeat(seq(',', $.float))), seq($.string, repeat(seq(',', $.string))), diff --git a/test/corpus/instr_and_reg.test b/test/corpus/instr_and_reg.test index 02ce290a..acbd8512 100644 --- a/test/corpus/instr_and_reg.test +++ b/test/corpus/instr_and_reg.test @@ -203,3 +203,17 @@ mov rax, \parm (ident (reg (word))))) +========== +Macro -- simple macro +========== +.macro foo r +mov \r, 0 +.endm +--- +========== +Macro -- simple macro multi args +========== +.macro foo r, v +mov \r, \v +.endm +--- From 76ab3c0603aebd9018d72809096b385670d769d3 Mon Sep 17 00:00:00 2001 From: neptumiun Date: Mon, 30 Mar 2026 16:03:25 +0200 Subject: [PATCH 03/31] fix: add defualt value for macro args --- grammar.js | 7 ++++- test/corpus/instr_and_reg.test | 49 ++++++++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+), 1 deletion(-) diff --git a/grammar.js b/grammar.js index 658d1018..f67332ee 100644 --- a/grammar.js +++ b/grammar.js @@ -26,7 +26,10 @@ module.exports = grammar({ seq( field('kind', $.meta_ident), optional(choice( - seq($.ident, seq($.ident, repeat(seq(',', $.ident)))), + seq( + $.ident, // macro name + optional(seq($._macro_arg, repeat(seq(',', $._macro_arg)))) + ), seq($.int, repeat(seq(',', $.int))), seq($.float, repeat(seq(',', $.float))), seq($.string, repeat(seq(',', $.string))), @@ -135,6 +138,8 @@ module.exports = grammar({ meta_ident: $ => /\.[a-z_]+/, _ident: $ => /[a-zA-Z_0-9.]+/, ident: $ => choice($._ident, $.meta_ident, $.reg), + _macro_arg_value: $ => choice($.int, $.float, $.string, $.ident), + _macro_arg: $ => seq($.ident, optional(seq("=", $._macro_arg_value))), line_comment: $ => choice( diff --git a/test/corpus/instr_and_reg.test b/test/corpus/instr_and_reg.test index acbd8512..b97c659c 100644 --- a/test/corpus/instr_and_reg.test +++ b/test/corpus/instr_and_reg.test @@ -210,6 +210,23 @@ Macro -- simple macro mov \r, 0 .endm --- +(program + (meta + (meta_ident) + (ident + (reg + (word))) + (ident + (reg + (word)))) + (instruction + (word) + (ident + (reg + (word))) + (int)) + (meta + (meta_ident))) ========== Macro -- simple macro multi args ========== @@ -217,3 +234,35 @@ Macro -- simple macro multi args mov \r, \v .endm --- +(program + (meta + (meta_ident) + (ident + (reg + (word))) + (ident + (reg + (word))) + (ident + (reg + (word)))) + (instruction + (word) + (ident + (reg + (word))) + (ident + (reg + (word)))) + (meta + (meta_ident))) +========== +Macro -- example macro of gas doc +========== +.macro sum from=0, to=5 +.long \from +.if \to-\from +sum "(\from+1)",\to +.endif +.endm +--- From 265c7fe205e8ea105d68068a9725133afd8211bb Mon Sep 17 00:00:00 2001 From: neptumiun Date: Thu, 2 Apr 2026 10:16:39 +0200 Subject: [PATCH 04/31] feat: add prefix and infix operators Prefix Operators List: https://ftp.gnu.org/old-gnu/Manuals/gas-2.9.1/html_node/as_63.html Infix Operators List: https://ftp.gnu.org/old-gnu/Manuals/gas-2.9.1/html_node/as_64.html --- grammar.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/grammar.js b/grammar.js index f67332ee..3aee218d 100644 --- a/grammar.js +++ b/grammar.js @@ -140,6 +140,9 @@ module.exports = grammar({ ident: $ => choice($._ident, $.meta_ident, $.reg), _macro_arg_value: $ => choice($.int, $.float, $.string, $.ident), _macro_arg: $ => seq($.ident, optional(seq("=", $._macro_arg_value))), + _prefix_operator: $ => choice('~', '-'), + _infix_operator: $ => choice('*', '/', '%', /<{1,2}/, />{1,2}/, '|', + '&', '^', '!', '+', '-'), line_comment: $ => choice( From 945ead5a16b2f7277c0f4a3418a746fcc2d872d5 Mon Sep 17 00:00:00 2001 From: neptumiun Date: Thu, 2 Apr 2026 14:12:19 +0200 Subject: [PATCH 05/31] feat: add prefix operator and test --- grammar.js | 9 ++++----- test/corpus/instr_and_reg.test | 6 ++++-- test/corpus/labels_directives.test | 20 ++++++++++++++++++++ 3 files changed, 28 insertions(+), 7 deletions(-) diff --git a/grammar.js b/grammar.js index 3aee218d..8217d7a3 100644 --- a/grammar.js +++ b/grammar.js @@ -118,9 +118,9 @@ module.exports = grammar({ ), int: $ => { - const _int = /-?([0-9][0-9_]*|(0x|\$)[0-9A-Fa-f][0-9A-Fa-f_]*|0b[01][01_]*)/ + const _int = /([0-9][0-9_]*|(0x|\$)[0-9A-Fa-f][0-9A-Fa-f_]*|0b[01][01_]*)/ return choice( - seq('#', token.immediate(_int)), + seq(seq(optional('#'), optional($.prefix_operator)), token.immediate(_int)), _int, ) }, @@ -140,9 +140,8 @@ module.exports = grammar({ ident: $ => choice($._ident, $.meta_ident, $.reg), _macro_arg_value: $ => choice($.int, $.float, $.string, $.ident), _macro_arg: $ => seq($.ident, optional(seq("=", $._macro_arg_value))), - _prefix_operator: $ => choice('~', '-'), - _infix_operator: $ => choice('*', '/', '%', /<{1,2}/, />{1,2}/, '|', - '&', '^', '!', '+', '-'), + prefix_operator: $ => /[~-]/, + infix_operator: $ => /\/%*<{1,2}>{1,2}|&^!+-/, line_comment: $ => choice( diff --git a/test/corpus/instr_and_reg.test b/test/corpus/instr_and_reg.test index b97c659c..fde3a337 100644 --- a/test/corpus/instr_and_reg.test +++ b/test/corpus/instr_and_reg.test @@ -36,7 +36,8 @@ movzbl -1(%rbp), %eax (instruction kind: (word) (ptr - (int) + (int + (prefix_operator)) (reg)) (ident (reg)))) @@ -82,7 +83,8 @@ stp w0, w1, [sp, #-16]! (ptr (reg (word)) - (int)))) + (int + (prefix_operator))))) ========== diff --git a/test/corpus/labels_directives.test b/test/corpus/labels_directives.test index 3e33887c..f6591cb5 100644 --- a/test/corpus/labels_directives.test +++ b/test/corpus/labels_directives.test @@ -91,3 +91,23 @@ length: .word 8 (meta_ident) (int)))) +========== +Label and Operator -- prefix operator negative +========== +.quad -2 +--- +(program + (meta + (meta_ident) + (int + (prefix_operator)))) +========== +Label and Operator -- prefix operator tilde +========== +.quad ~2 +--- +(program + (meta + (meta_ident) + (int + (prefix_operator)))) From 080b49ea87925a2cda4c55a6a939f69809da0c4a Mon Sep 17 00:00:00 2001 From: neptumiun Date: Thu, 2 Apr 2026 16:03:39 +0200 Subject: [PATCH 06/31] feat: add expressions and operators support --- grammar.js | 8 +++++++- queries/asm/highlights.scm | 5 +++++ test/corpus/labels_directives.test | 5 +++++ 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/grammar.js b/grammar.js index 8217d7a3..809e580f 100644 --- a/grammar.js +++ b/grammar.js @@ -30,6 +30,7 @@ module.exports = grammar({ $.ident, // macro name optional(seq($._macro_arg, repeat(seq(',', $._macro_arg)))) ), + $.op_expr, seq($.int, repeat(seq(',', $.int))), seq($.float, repeat(seq(',', $.float))), seq($.string, repeat(seq(',', $.string))), @@ -141,7 +142,12 @@ module.exports = grammar({ _macro_arg_value: $ => choice($.int, $.float, $.string, $.ident), _macro_arg: $ => seq($.ident, optional(seq("=", $._macro_arg_value))), prefix_operator: $ => /[~-]/, - infix_operator: $ => /\/%*<{1,2}>{1,2}|&^!+-/, + infix_operator: $ => /[\/%*<>|&^!+-]|<<|>>/, + op_expr: $ => seq( + field('lhs', $._expr), + field('op', $.infix_operator), + field('rhs', $._expr), + ), line_comment: $ => choice( diff --git a/queries/asm/highlights.scm b/queries/asm/highlights.scm index 28664a3a..dfe5d289 100644 --- a/queries/asm/highlights.scm +++ b/queries/asm/highlights.scm @@ -48,6 +48,11 @@ "|" "^" "&" + "!" + "<" + ">" + "=" + "~" ] @operator [ diff --git a/test/corpus/labels_directives.test b/test/corpus/labels_directives.test index f6591cb5..1f4be827 100644 --- a/test/corpus/labels_directives.test +++ b/test/corpus/labels_directives.test @@ -111,3 +111,8 @@ Label and Operator -- prefix operator tilde (meta_ident) (int (prefix_operator)))) +========== +Label and Operator -- additive operator +========== +.quad 1+2 +--- From 5f1792e647fdf1cfd9125318b801bdc5f5184132 Mon Sep 17 00:00:00 2001 From: neptumiun Date: Fri, 3 Apr 2026 09:36:17 +0200 Subject: [PATCH 07/31] feat: add tests for infix operators --- test/corpus/instr_and_reg.test | 40 ++++++++ test/corpus/labels_directives.test | 153 ++++++++++++++++++++++++++++- 2 files changed, 192 insertions(+), 1 deletion(-) diff --git a/test/corpus/instr_and_reg.test b/test/corpus/instr_and_reg.test index fde3a337..5e5547c8 100644 --- a/test/corpus/instr_and_reg.test +++ b/test/corpus/instr_and_reg.test @@ -268,3 +268,43 @@ sum "(\from+1)",\to .endif .endm --- + +(program + (meta + (meta_ident) + (ident + (reg + (word))) + (ident + (reg + (word))) + (int) + (ident + (reg + (word))) + (int)) + (meta + (meta_ident) + (ident + (reg + (word)))) + (meta + (meta_ident) + (op_expr + (ident + (reg + (word))) + (infix_operator) + (ident + (reg + (word))))) + (instruction + (word) + (string) + (ident + (reg + (word)))) + (meta + (meta_ident)) + (meta + (meta_ident))) diff --git a/test/corpus/labels_directives.test b/test/corpus/labels_directives.test index 1f4be827..544f36f9 100644 --- a/test/corpus/labels_directives.test +++ b/test/corpus/labels_directives.test @@ -112,7 +112,158 @@ Label and Operator -- prefix operator tilde (int (prefix_operator)))) ========== -Label and Operator -- additive operator +Label and Operator -- Multiplication +========== +.quad 1*2 +--- +(program + (meta + (meta_ident) + (op_expr + (int) + (infix_operator) + (int)))) +========== +Label and Operator -- Division +========== +.quad 1/2 +--- +(program + (meta + (meta_ident) + (op_expr + (int) + (infix_operator) + (int)))) +========== +Label and Operator -- Remainder +========== +.quad 1%2 +--- +(program + (meta + (meta_ident) + (op_expr + (int) + (infix_operator) + (int)))) +========== +Label and Operator -- Shift Left Simple +========== +.quad 1<2 +--- +(program + (meta + (meta_ident) + (op_expr + (int) + (infix_operator) + (int)))) +========== +Label and Operator -- Shift Left Double +========== +.quad 1<<2 +--- +(program + (meta + (meta_ident) + (op_expr + (int) + (infix_operator) + (int)))) +========== +Label and Operator -- Shift Right Simple +========== +.quad 1>2 +--- +(program + (meta + (meta_ident) + (op_expr + (int) + (infix_operator) + (int)))) +========== +Label and Operator -- Shift Right Double +========== +.quad 1>>2 +--- +(program + (meta + (meta_ident) + (op_expr + (int) + (infix_operator) + (int)))) +========== +Label and Operator -- Bitwise Inclusive Or +========== +.quad 1|2 +--- +(program + (meta + (meta_ident) + (op_expr + (int) + (infix_operator) + (int)))) +========== +Label and Operator -- Bitwise And +========== +.quad 1&2 +--- +(program + (meta + (meta_ident) + (op_expr + (int) + (infix_operator) + (int)))) +========== +Label and Operator -- Bitwise Exclusive Or +========== +.quad 1^2 +--- +(program + (meta + (meta_ident) + (op_expr + (int) + (infix_operator) + (int)))) +========== +Label and Operator -- Bitwise Or Not +========== +.quad 1!2 +--- +(program + (meta + (meta_ident) + (op_expr + (int) + (infix_operator) + (int)))) +========== +Label and Operator -- Addition ========== .quad 1+2 --- +(program + (meta + (meta_ident) + (op_expr + (int) + (infix_operator) + (int)))) +========== +Label and Operator -- Subtraction +========== +.quad 1-2 +--- +(program + (meta + (meta_ident) + (op_expr + (int) + (infix_operator) + (int)))) From 8e93857b7556c632030aebfbcb3e7a9ae7f9f6d7 Mon Sep 17 00:00:00 2001 From: neptumiun Date: Fri, 3 Apr 2026 10:41:05 +0200 Subject: [PATCH 08/31] feat: add multiple operation --- grammar.js | 2 +- queries/asm/highlights.scm | 6 ++-- test/corpus/instr_and_reg.test | 1 - test/corpus/labels_directives.test | 57 ++++++++++++++++++++++++++++++ 4 files changed, 60 insertions(+), 6 deletions(-) diff --git a/grammar.js b/grammar.js index 809e580f..1c1fbdd3 100644 --- a/grammar.js +++ b/grammar.js @@ -146,7 +146,7 @@ module.exports = grammar({ op_expr: $ => seq( field('lhs', $._expr), field('op', $.infix_operator), - field('rhs', $._expr), + field('rhs', choice($._expr, $.op_expr)), ), line_comment: $ => diff --git a/queries/asm/highlights.scm b/queries/asm/highlights.scm index dfe5d289..892a888f 100644 --- a/queries/asm/highlights.scm +++ b/queries/asm/highlights.scm @@ -49,12 +49,10 @@ "^" "&" "!" - "<" - ">" - "=" - "~" ] @operator +(infix_operator) @operator + [ "(" ")" diff --git a/test/corpus/instr_and_reg.test b/test/corpus/instr_and_reg.test index 5e5547c8..8f8a85c8 100644 --- a/test/corpus/instr_and_reg.test +++ b/test/corpus/instr_and_reg.test @@ -268,7 +268,6 @@ sum "(\from+1)",\to .endif .endm --- - (program (meta (meta_ident) diff --git a/test/corpus/labels_directives.test b/test/corpus/labels_directives.test index 544f36f9..75164483 100644 --- a/test/corpus/labels_directives.test +++ b/test/corpus/labels_directives.test @@ -267,3 +267,60 @@ Label and Operator -- Subtraction (int) (infix_operator) (int)))) +========== +Label and Operator -- Addition with negative +========== +.quad 1+-2 +--- +(program + (meta + (meta_ident) + (op_expr + (int) + (infix_operator) + (int + (prefix_operator))))) +========== +Label and Operator -- Addition with multiple operands +========== +.quad 1+1+1 +--- +(program + (meta + (meta_ident) + (op_expr + (int) + (infix_operator) + (op_expr + (int) + (infix_operator) + (int))))) +========== +Label and Operator -- Addition with multiple operands and prefix operator +========== +.quad 1+1+-1 +--- +(program + (meta + (meta_ident) + (op_expr + (int) + (infix_operator) + (op_expr + (int) + (infix_operator) + (int + (prefix_operator)))))) +========== +Label and Operator -- Addition with multiple operands and prefix operator +========== +.quad 1--1 +--- +(program + (meta + (meta_ident) + (op_expr + (int) + (infix_operator) + (int + (prefix_operator))))) From 957a247793927330971e3aafa3e2cbd46c098671 Mon Sep 17 00:00:00 2001 From: neptumiun Date: Fri, 3 Apr 2026 11:00:50 +0200 Subject: [PATCH 09/31] chore: tree-sitter generate --- src/grammar.json | 182 +- src/node-types.json | 117 +- src/parser.c | 5905 ++++++++++++++++++++++++-------------- src/tree_sitter/alloc.h | 8 +- src/tree_sitter/array.h | 3 +- src/tree_sitter/parser.h | 35 +- 6 files changed, 4005 insertions(+), 2245 deletions(-) diff --git a/src/grammar.json b/src/grammar.json index a75664ba..599c271d 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -1,4 +1,5 @@ { + "$schema": "https://tree-sitter.github.io/tree-sitter/assets/schemas/grammar.schema.json", "name": "asm", "rules": { "program": { @@ -90,9 +91,51 @@ { "type": "CHOICE", "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "ident" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_macro_arg" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "SYMBOL", + "name": "_macro_arg" + } + ] + } + } + ] + }, + { + "type": "BLANK" + } + ] + } + ] + }, { "type": "SYMBOL", - "name": "ident" + "name": "op_expr" }, { "type": "SEQ", @@ -961,21 +1004,46 @@ "type": "SEQ", "members": [ { - "type": "STRING", - "value": "#" + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "#" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "prefix_operator" + }, + { + "type": "BLANK" + } + ] + } + ] }, { "type": "IMMEDIATE_TOKEN", "content": { "type": "PATTERN", - "value": "-?([0-9][0-9_]*|(0x|\\$)[0-9A-Fa-f][0-9A-Fa-f_]*|0b[01][01_]*)" + "value": "([0-9][0-9_]*|(0x|\\$)[0-9A-Fa-f][0-9A-Fa-f_]*|0b[01][01_]*)" } } ] }, { "type": "PATTERN", - "value": "-?([0-9][0-9_]*|(0x|\\$)[0-9A-Fa-f][0-9A-Fa-f_]*|0b[01][01_]*)" + "value": "([0-9][0-9_]*|(0x|\\$)[0-9A-Fa-f][0-9A-Fa-f_]*|0b[01][01_]*)" } ] }, @@ -998,7 +1066,7 @@ }, "word": { "type": "PATTERN", - "value": "[a-zA-Z0-9_]+" + "value": "[\\\\a-zA-Z0-9_]+" }, "_reg": { "type": "PATTERN", @@ -1050,6 +1118,103 @@ } ] }, + "_macro_arg_value": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "int" + }, + { + "type": "SYMBOL", + "name": "float" + }, + { + "type": "SYMBOL", + "name": "string" + }, + { + "type": "SYMBOL", + "name": "ident" + } + ] + }, + "_macro_arg": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "ident" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "=" + }, + { + "type": "SYMBOL", + "name": "_macro_arg_value" + } + ] + }, + { + "type": "BLANK" + } + ] + } + ] + }, + "prefix_operator": { + "type": "PATTERN", + "value": "[~-]" + }, + "infix_operator": { + "type": "PATTERN", + "value": "[\\/%*<>|&^!+-]|<<|>>" + }, + "op_expr": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "lhs", + "content": { + "type": "SYMBOL", + "name": "_expr" + } + }, + { + "type": "FIELD", + "name": "op", + "content": { + "type": "SYMBOL", + "name": "infix_operator" + } + }, + { + "type": "FIELD", + "name": "rhs", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_expr" + }, + { + "type": "SYMBOL", + "name": "op_expr" + } + ] + } + } + ] + }, "line_comment": { "type": "CHOICE", "members": [ @@ -1119,5 +1284,6 @@ "precedences": [], "externals": [], "inline": [], - "supertypes": [] -} + "supertypes": [], + "reserved": {} +} \ No newline at end of file diff --git a/src/node-types.json b/src/node-types.json index 80b1f8e6..3e212715 100644 --- a/src/node-types.json +++ b/src/node-types.json @@ -109,7 +109,17 @@ { "type": "int", "named": true, - "fields": {} + "fields": {}, + "children": { + "multiple": false, + "required": false, + "types": [ + { + "type": "prefix_operator", + "named": true + } + ] + } }, { "type": "label", @@ -148,6 +158,7 @@ { "type": "line_comment", "named": true, + "extra": true, "fields": {} }, { @@ -196,6 +207,10 @@ "type": "int", "named": true }, + { + "type": "op_expr", + "named": true + }, { "type": "string", "named": true @@ -203,9 +218,90 @@ ] } }, + { + "type": "op_expr", + "named": true, + "fields": { + "lhs": { + "multiple": false, + "required": true, + "types": [ + { + "type": "float", + "named": true + }, + { + "type": "ident", + "named": true + }, + { + "type": "int", + "named": true + }, + { + "type": "list", + "named": true + }, + { + "type": "ptr", + "named": true + }, + { + "type": "string", + "named": true + } + ] + }, + "op": { + "multiple": false, + "required": true, + "types": [ + { + "type": "infix_operator", + "named": true + } + ] + }, + "rhs": { + "multiple": false, + "required": true, + "types": [ + { + "type": "float", + "named": true + }, + { + "type": "ident", + "named": true + }, + { + "type": "int", + "named": true + }, + { + "type": "list", + "named": true + }, + { + "type": "op_expr", + "named": true + }, + { + "type": "ptr", + "named": true + }, + { + "type": "string", + "named": true + } + ] + } + } + }, { "type": "program", "named": true, + "root": true, "fields": {}, "children": { "multiple": true, @@ -417,6 +513,10 @@ "type": ":", "named": false }, + { + "type": "=", + "named": false + }, { "type": "[", "named": false @@ -435,7 +535,8 @@ }, { "type": "block_comment", - "named": true + "named": true, + "extra": true }, { "type": "byte", @@ -453,6 +554,10 @@ "type": "float", "named": true }, + { + "type": "infix_operator", + "named": true + }, { "type": "label", "named": false @@ -461,6 +566,10 @@ "type": "meta_ident", "named": true }, + { + "type": "prefix_operator", + "named": true + }, { "type": "ptr", "named": false @@ -475,11 +584,11 @@ }, { "type": "word", - "named": false + "named": true }, { "type": "word", - "named": true + "named": false }, { "type": "{", diff --git a/src/parser.c b/src/parser.c index 3a8c319c..c9ca038d 100644 --- a/src/parser.c +++ b/src/parser.c @@ -1,19 +1,23 @@ +/* Automatically @generated by tree-sitter v0.25.10 */ + #include "tree_sitter/parser.h" #if defined(__GNUC__) || defined(__clang__) #pragma GCC diagnostic ignored "-Wmissing-field-initializers" #endif -#define LANGUAGE_VERSION 14 -#define STATE_COUNT 137 -#define LARGE_STATE_COUNT 3 -#define SYMBOL_COUNT 65 +#define LANGUAGE_VERSION 15 +#define STATE_COUNT 168 +#define LARGE_STATE_COUNT 2 +#define SYMBOL_COUNT 72 #define ALIAS_COUNT 0 -#define TOKEN_COUNT 41 +#define TOKEN_COUNT 44 #define EXTERNAL_TOKEN_COUNT 0 #define FIELD_COUNT 6 #define MAX_ALIAS_SEQUENCE_LENGTH 7 +#define MAX_RESERVED_WORD_SET_SIZE 0 #define PRODUCTION_ID_COUNT 6 +#define SUPERTYPE_COUNT 0 enum ts_symbol_identifiers { anon_sym_LF = 1, @@ -53,33 +57,40 @@ enum ts_symbol_identifiers { sym_address = 35, sym_meta_ident = 36, sym__ident = 37, - aux_sym_line_comment_token1 = 38, - aux_sym_line_comment_token2 = 39, - sym_block_comment = 40, - sym_program = 41, - sym__item = 42, - sym_meta = 43, - sym_label = 44, - sym_const = 45, - sym_instruction = 46, - sym__expr = 47, - sym_list = 48, - sym_ptr = 49, - sym__tc_expr = 50, - sym_tc_infix = 51, - sym_int = 52, - sym_string = 53, - sym_reg = 54, - sym_ident = 55, - sym_line_comment = 56, - aux_sym_program_repeat1 = 57, - aux_sym_program_repeat2 = 58, - aux_sym_meta_repeat1 = 59, - aux_sym_meta_repeat2 = 60, - aux_sym_meta_repeat3 = 61, - aux_sym_instruction_repeat1 = 62, - aux_sym_instruction_repeat2 = 63, - aux_sym_list_repeat1 = 64, + anon_sym_EQ = 38, + sym_prefix_operator = 39, + sym_infix_operator = 40, + aux_sym_line_comment_token1 = 41, + aux_sym_line_comment_token2 = 42, + sym_block_comment = 43, + sym_program = 44, + sym__item = 45, + sym_meta = 46, + sym_label = 47, + sym_const = 48, + sym_instruction = 49, + sym__expr = 50, + sym_list = 51, + sym_ptr = 52, + sym__tc_expr = 53, + sym_tc_infix = 54, + sym_int = 55, + sym_string = 56, + sym_reg = 57, + sym_ident = 58, + sym__macro_arg_value = 59, + sym__macro_arg = 60, + sym_op_expr = 61, + sym_line_comment = 62, + aux_sym_program_repeat1 = 63, + aux_sym_program_repeat2 = 64, + aux_sym_meta_repeat1 = 65, + aux_sym_meta_repeat2 = 66, + aux_sym_meta_repeat3 = 67, + aux_sym_meta_repeat4 = 68, + aux_sym_instruction_repeat1 = 69, + aux_sym_instruction_repeat2 = 70, + aux_sym_list_repeat1 = 71, }; static const char * const ts_symbol_names[] = { @@ -121,6 +132,9 @@ static const char * const ts_symbol_names[] = { [sym_address] = "address", [sym_meta_ident] = "meta_ident", [sym__ident] = "_ident", + [anon_sym_EQ] = "=", + [sym_prefix_operator] = "prefix_operator", + [sym_infix_operator] = "infix_operator", [aux_sym_line_comment_token1] = "line_comment_token1", [aux_sym_line_comment_token2] = "line_comment_token2", [sym_block_comment] = "block_comment", @@ -139,12 +153,16 @@ static const char * const ts_symbol_names[] = { [sym_string] = "string", [sym_reg] = "reg", [sym_ident] = "ident", + [sym__macro_arg_value] = "_macro_arg_value", + [sym__macro_arg] = "_macro_arg", + [sym_op_expr] = "op_expr", [sym_line_comment] = "line_comment", [aux_sym_program_repeat1] = "program_repeat1", [aux_sym_program_repeat2] = "program_repeat2", [aux_sym_meta_repeat1] = "meta_repeat1", [aux_sym_meta_repeat2] = "meta_repeat2", [aux_sym_meta_repeat3] = "meta_repeat3", + [aux_sym_meta_repeat4] = "meta_repeat4", [aux_sym_instruction_repeat1] = "instruction_repeat1", [aux_sym_instruction_repeat2] = "instruction_repeat2", [aux_sym_list_repeat1] = "list_repeat1", @@ -189,6 +207,9 @@ static const TSSymbol ts_symbol_map[] = { [sym_address] = sym_address, [sym_meta_ident] = sym_meta_ident, [sym__ident] = sym__ident, + [anon_sym_EQ] = anon_sym_EQ, + [sym_prefix_operator] = sym_prefix_operator, + [sym_infix_operator] = sym_infix_operator, [aux_sym_line_comment_token1] = aux_sym_line_comment_token1, [aux_sym_line_comment_token2] = aux_sym_line_comment_token2, [sym_block_comment] = sym_block_comment, @@ -207,12 +228,16 @@ static const TSSymbol ts_symbol_map[] = { [sym_string] = sym_string, [sym_reg] = sym_reg, [sym_ident] = sym_ident, + [sym__macro_arg_value] = sym__macro_arg_value, + [sym__macro_arg] = sym__macro_arg, + [sym_op_expr] = sym_op_expr, [sym_line_comment] = sym_line_comment, [aux_sym_program_repeat1] = aux_sym_program_repeat1, [aux_sym_program_repeat2] = aux_sym_program_repeat2, [aux_sym_meta_repeat1] = aux_sym_meta_repeat1, [aux_sym_meta_repeat2] = aux_sym_meta_repeat2, [aux_sym_meta_repeat3] = aux_sym_meta_repeat3, + [aux_sym_meta_repeat4] = aux_sym_meta_repeat4, [aux_sym_instruction_repeat1] = aux_sym_instruction_repeat1, [aux_sym_instruction_repeat2] = aux_sym_instruction_repeat2, [aux_sym_list_repeat1] = aux_sym_list_repeat1, @@ -371,6 +396,18 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = false, .named = true, }, + [anon_sym_EQ] = { + .visible = true, + .named = false, + }, + [sym_prefix_operator] = { + .visible = true, + .named = true, + }, + [sym_infix_operator] = { + .visible = true, + .named = true, + }, [aux_sym_line_comment_token1] = { .visible = false, .named = false, @@ -443,6 +480,18 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, + [sym__macro_arg_value] = { + .visible = false, + .named = true, + }, + [sym__macro_arg] = { + .visible = false, + .named = true, + }, + [sym_op_expr] = { + .visible = true, + .named = true, + }, [sym_line_comment] = { .visible = true, .named = true, @@ -467,6 +516,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = false, .named = false, }, + [aux_sym_meta_repeat4] = { + .visible = false, + .named = false, + }, [aux_sym_instruction_repeat1] = { .visible = false, .named = false, @@ -500,7 +553,7 @@ static const char * const ts_field_names[] = { [field_value] = "value", }; -static const TSFieldMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { +static const TSMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { [1] = {.index = 0, .length = 1}, [2] = {.index = 1, .length = 1}, [4] = {.index = 2, .length = 2}, @@ -562,45 +615,45 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [26] = 26, [27] = 27, [28] = 28, - [29] = 26, - [30] = 25, - [31] = 24, - [32] = 32, - [33] = 27, - [34] = 28, - [35] = 9, - [36] = 8, - [37] = 37, - [38] = 38, - [39] = 6, - [40] = 11, + [29] = 29, + [30] = 30, + [31] = 31, + [32] = 26, + [33] = 33, + [34] = 27, + [35] = 30, + [36] = 33, + [37] = 29, + [38] = 15, + [39] = 39, + [40] = 40, [41] = 41, - [42] = 12, - [43] = 17, - [44] = 19, + [42] = 16, + [43] = 43, + [44] = 44, [45] = 16, [46] = 46, - [47] = 13, + [47] = 15, [48] = 14, - [49] = 15, - [50] = 50, - [51] = 51, - [52] = 52, - [53] = 53, - [54] = 54, + [49] = 12, + [50] = 23, + [51] = 18, + [52] = 19, + [53] = 20, + [54] = 22, [55] = 55, - [56] = 56, - [57] = 57, - [58] = 58, + [56] = 21, + [57] = 11, + [58] = 10, [59] = 59, [60] = 60, [61] = 61, [62] = 62, [63] = 63, [64] = 64, - [65] = 65, - [66] = 66, - [67] = 67, + [65] = 12, + [66] = 10, + [67] = 11, [68] = 68, [69] = 69, [70] = 70, @@ -631,7 +684,7 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [95] = 95, [96] = 96, [97] = 97, - [98] = 98, + [98] = 14, [99] = 99, [100] = 100, [101] = 101, @@ -661,15 +714,46 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [125] = 125, [126] = 126, [127] = 127, - [128] = 128, - [129] = 129, + [128] = 15, + [129] = 16, [130] = 130, [131] = 131, [132] = 132, [133] = 133, - [134] = 125, + [134] = 134, [135] = 135, [136] = 136, + [137] = 137, + [138] = 138, + [139] = 139, + [140] = 130, + [141] = 130, + [142] = 142, + [143] = 143, + [144] = 144, + [145] = 145, + [146] = 146, + [147] = 147, + [148] = 148, + [149] = 149, + [150] = 150, + [151] = 151, + [152] = 152, + [153] = 153, + [154] = 152, + [155] = 155, + [156] = 156, + [157] = 157, + [158] = 158, + [159] = 159, + [160] = 160, + [161] = 161, + [162] = 161, + [163] = 152, + [164] = 164, + [165] = 161, + [166] = 166, + [167] = 167, }; static bool ts_lex(TSLexer *lexer, TSStateId state) { @@ -677,1233 +761,1755 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { eof = lexer->eof(lexer); switch (state) { case 0: - if (eof) ADVANCE(30); + if (eof) ADVANCE(37); ADVANCE_MAP( - '\n', 31, - '!', 58, - '"', 1, - '#', 65, - '$', 19, - '%', 60, - '&', 64, - '\'', 9, - '(', 34, - ')', 35, - '*', 55, - '+', 53, - ',', 32, - '-', 40, - '.', 147, - '/', 59, - '0', 74, - ':', 33, - ';', 154, - '=', 24, - '[', 52, - ']', 54, - '^', 63, - 'b', 134, - 'c', 110, - 'd', 129, - 'l', 95, - 'p', 125, - 'q', 130, - 'r', 103, - 'w', 112, - '{', 38, - '|', 62, - '}', 41, + '\n', 38, + '!', 64, + '"', 3, + '#', 71, + '$', 18, + '%', 66, + '&', 70, + '\'', 7, + '(', 41, + ')', 42, + '*', 61, + '+', 59, + ',', 39, + '-', 46, + '.', 167, + '/', 65, + '0', 76, + ':', 40, + ';', 182, + '<', 174, + '=', 169, + '>', 175, + '[', 58, + '\\', 162, + ']', 60, + '^', 69, + 'b', 150, + 'c', 126, + 'd', 145, + 'l', 111, + 'p', 141, + 'q', 146, + 'r', 119, + 'w', 128, + '{', 45, + '|', 68, + '}', 47, + '~', 170, ); if (lookahead == '\t' || lookahead == '\r' || - lookahead == ' ') SKIP(0); - if (('1' <= lookahead && lookahead <= '9')) ADVANCE(77); - if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + lookahead == ' ') SKIP(25); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(79); + if (('A' <= lookahead && lookahead <= '_') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(160); END_STATE(); case 1: - if (lookahead == '"') ADVANCE(93); - if (lookahead != 0) ADVANCE(1); - END_STATE(); - case 2: ADVANCE_MAP( - '#', 65, + '"', 3, + '#', 71, '$', 20, - '-', 6, - '/', 10, - '0', 84, - ';', 154, - 'p', 16, - 'r', 13, + '%', 23, + '\'', 7, + '-', 171, + '.', 167, + '/', 8, + '0', 81, + ';', 182, + '=', 24, + '\\', 162, + '~', 170, ); if (lookahead == '\t' || lookahead == '\r' || lookahead == ' ') SKIP(2); - if (('1' <= lookahead && lookahead <= '9')) ADVANCE(86); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(82); + if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(159); + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_') ADVANCE(160); END_STATE(); - case 3: - if (lookahead == '#') ADVANCE(65); - if (lookahead == '$') ADVANCE(21); - if (lookahead == '-') ADVANCE(8); - if (lookahead == '/') ADVANCE(10); - if (lookahead == '0') ADVANCE(67); - if (lookahead == ';') ADVANCE(154); + case 2: + ADVANCE_MAP( + '"', 3, + '#', 71, + '$', 21, + '%', 23, + '\'', 7, + '-', 171, + '.', 167, + '/', 8, + '0', 97, + ';', 182, + '=', 24, + '\\', 162, + '~', 170, + ); if (lookahead == '\t' || lookahead == '\r' || - lookahead == ' ') SKIP(5); - if (('1' <= lookahead && lookahead <= '9')) ADVANCE(69); + lookahead == ' ') SKIP(2); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(98); + if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(159); + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_') ADVANCE(160); + END_STATE(); + case 3: + if (lookahead == '"') ADVANCE(109); + if (lookahead != 0) ADVANCE(3); END_STATE(); case 4: - if (lookahead == '#') ADVANCE(65); - if (lookahead == '%') ADVANCE(23); - if (lookahead == '.') ADVANCE(147); - if (lookahead == '/') ADVANCE(10); - if (lookahead == ';') ADVANCE(154); - if (lookahead == '$' || - lookahead == '=') ADVANCE(24); + if (lookahead == '#') ADVANCE(71); + if (lookahead == '$') ADVANCE(18); + if (lookahead == '/') ADVANCE(8); + if (lookahead == '0') ADVANCE(84); + if (lookahead == ';') ADVANCE(182); + if (lookahead == '-' || + lookahead == '~') ADVANCE(170); if (lookahead == '\t' || lookahead == '\r' || - lookahead == ' ') SKIP(4); - if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); - if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + lookahead == ' ') SKIP(5); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(86); END_STATE(); case 5: - if (lookahead == '#') ADVANCE(65); - if (lookahead == '/') ADVANCE(10); - if (lookahead == ';') ADVANCE(154); + if (lookahead == '#') ADVANCE(71); + if (lookahead == '$') ADVANCE(19); + if (lookahead == '/') ADVANCE(8); + if (lookahead == '0') ADVANCE(100); + if (lookahead == ';') ADVANCE(182); + if (lookahead == '-' || + lookahead == '~') ADVANCE(170); if (lookahead == '\t' || lookahead == '\r' || lookahead == ' ') SKIP(5); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(102); END_STATE(); case 6: - if (lookahead == '$') ADVANCE(20); - if (lookahead == '0') ADVANCE(84); - if (('1' <= lookahead && lookahead <= '9')) ADVANCE(86); + if (lookahead == '#') ADVANCE(71); + if (lookahead == '%') ADVANCE(23); + if (lookahead == '/') ADVANCE(8); + if (lookahead == ';') ADVANCE(182); + if (lookahead == '}') ADVANCE(47); + if (lookahead == '$' || + lookahead == '=') ADVANCE(24); + if (lookahead == '\t' || + lookahead == '\r' || + lookahead == ' ') SKIP(6); + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '\\' || + lookahead == '_') ADVANCE(162); + if (('0' <= lookahead && lookahead <= '9') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(161); END_STATE(); case 7: - if (lookahead == '$') ADVANCE(20); - if (lookahead == '0') ADVANCE(82); - if (('1' <= lookahead && lookahead <= '9')) ADVANCE(83); + if (lookahead == '\'') ADVANCE(110); + if (lookahead != 0) ADVANCE(7); END_STATE(); case 8: - if (lookahead == '$') ADVANCE(21); - if (lookahead == '0') ADVANCE(67); - if (('1' <= lookahead && lookahead <= '9')) ADVANCE(69); + if (lookahead == '*') ADVANCE(10); + if (lookahead == '/') ADVANCE(182); END_STATE(); case 9: - if (lookahead == '\'') ADVANCE(94); - if (lookahead != 0) ADVANCE(9); + if (lookahead == '*') ADVANCE(9); + if (lookahead == '/') ADVANCE(183); + if (lookahead != 0) ADVANCE(10); END_STATE(); case 10: - if (lookahead == '*') ADVANCE(12); - if (lookahead == '/') ADVANCE(154); + if (lookahead == '*') ADVANCE(9); + if (lookahead != 0) ADVANCE(10); END_STATE(); case 11: - if (lookahead == '*') ADVANCE(11); - if (lookahead == '/') ADVANCE(155); - if (lookahead != 0) ADVANCE(12); + if (lookahead == '.') ADVANCE(106); + if (('0' <= lookahead && lookahead <= '9') || + lookahead == '_') ADVANCE(11); END_STATE(); case 12: - if (lookahead == '*') ADVANCE(11); - if (lookahead != 0) ADVANCE(12); + if (lookahead == 'e') ADVANCE(13); END_STATE(); case 13: - if (lookahead == 'e') ADVANCE(14); + if (lookahead == 'l') ADVANCE(62); END_STATE(); case 14: - if (lookahead == 'l') ADVANCE(56); + if (lookahead == 'r') ADVANCE(56); END_STATE(); case 15: - if (lookahead == 'r') ADVANCE(50); + if (lookahead == 't') ADVANCE(14); END_STATE(); case 16: - if (lookahead == 't') ADVANCE(15); + if (lookahead == '0' || + lookahead == '1') ADVANCE(85); END_STATE(); case 17: if (lookahead == '0' || - lookahead == '1') ADVANCE(85); + lookahead == '1') ADVANCE(101); END_STATE(); case 18: - if (lookahead == '0' || - lookahead == '1') ADVANCE(68); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'F') || + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(87); END_STATE(); case 19: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || - ('a' <= lookahead && lookahead <= 'f')) ADVANCE(87); - if (('G' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('g' <= lookahead && lookahead <= 'z')) ADVANCE(144); + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(103); END_STATE(); case 20: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || ('a' <= lookahead && lookahead <= 'f')) ADVANCE(88); + if (('G' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('g' <= lookahead && lookahead <= 'z')) ADVANCE(164); END_STATE(); case 21: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || - ('a' <= lookahead && lookahead <= 'f')) ADVANCE(70); + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(104); + if (('G' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('g' <= lookahead && lookahead <= 'z')) ADVANCE(164); END_STATE(); case 22: if (lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(146); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(166); END_STATE(); case 23: if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(143); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(163); END_STATE(); case 24: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(144); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(164); END_STATE(); case 25: - if (eof) ADVANCE(30); + if (eof) ADVANCE(37); ADVANCE_MAP( - '\n', 31, - '"', 1, - '#', 65, + '\n', 38, + '!', 64, + '"', 3, + '#', 71, '$', 19, + '%', 66, + '&', 70, + '\'', 7, + '(', 41, + ')', 42, + '*', 61, + '+', 59, + ',', 39, + '-', 46, + '.', 167, + '/', 65, + '0', 92, + ':', 40, + ';', 182, + '<', 174, + '=', 169, + '>', 175, + '[', 58, + '\\', 162, + ']', 60, + '^', 69, + 'b', 150, + 'c', 126, + 'd', 145, + 'l', 111, + 'p', 141, + 'q', 146, + 'r', 119, + 'w', 128, + '{', 45, + '|', 68, + '}', 47, + '~', 170, + ); + if (lookahead == '\t' || + lookahead == '\r' || + lookahead == ' ') SKIP(25); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(95); + if (('A' <= lookahead && lookahead <= '_') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(160); + END_STATE(); + case 26: + if (eof) ADVANCE(37); + ADVANCE_MAP( + '\n', 38, + '!', 64, + '#', 71, + '$', 18, + ',', 39, + '/', 173, + '0', 84, + ';', 182, + '<', 174, + '>', 175, + 'p', 15, + 'r', 12, + ); + if (lookahead == '\t' || + lookahead == '\r' || + lookahead == ' ') SKIP(27); + if (lookahead == '%' || + lookahead == '&' || + ('*' <= lookahead && lookahead <= '-') || + lookahead == '^' || + lookahead == '|') ADVANCE(172); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(86); + END_STATE(); + case 27: + if (eof) ADVANCE(37); + ADVANCE_MAP( + '\n', 38, + '!', 64, + '#', 71, + ',', 39, + '/', 173, + ';', 182, + '<', 174, + '>', 175, + 'p', 15, + 'r', 12, + ); + if (lookahead == '\t' || + lookahead == '\r' || + lookahead == ' ') SKIP(27); + if (lookahead == '%' || + lookahead == '&' || + ('*' <= lookahead && lookahead <= '-') || + lookahead == '^' || + lookahead == '|') ADVANCE(172); + END_STATE(); + case 28: + if (eof) ADVANCE(37); + ADVANCE_MAP( + '\n', 38, + '"', 3, + '#', 71, + '$', 20, '%', 23, - '\'', 9, - '(', 34, - '*', 55, - '-', 7, - '.', 147, - '/', 10, - '0', 79, - ':', 33, - ';', 154, + '\'', 7, + '(', 41, + '*', 61, + '-', 171, + '.', 167, + '/', 8, + '0', 81, + ':', 40, + ';', 182, '=', 24, - '[', 52, - 'b', 133, - 'd', 131, - 'q', 132, - 'w', 111, - '{', 38, + '[', 58, + '\\', 162, + 'b', 149, + 'd', 147, + 'q', 148, + 'w', 127, + '{', 45, + '~', 170, ); if (lookahead == '\t' || lookahead == '\r' || - lookahead == ' ') SKIP(25); - if (('1' <= lookahead && lookahead <= '9')) ADVANCE(80); - if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + lookahead == ' ') SKIP(31); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(82); + if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(159); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(160); END_STATE(); - case 26: - if (eof) ADVANCE(30); + case 29: + if (eof) ADVANCE(37); ADVANCE_MAP( - '\n', 31, - '"', 1, - '#', 65, - '$', 19, + '\n', 38, + '"', 3, + '#', 71, + '$', 20, '%', 23, - '\'', 9, - '-', 7, - '.', 147, - '/', 10, - '0', 79, - ':', 33, - ';', 154, + '\'', 7, + '.', 167, + '/', 8, + '0', 73, + ';', 182, '=', 24, + '\\', 162, + '-', 170, + '~', 170, ); if (lookahead == '\t' || lookahead == '\r' || - lookahead == ' ') SKIP(26); - if (('1' <= lookahead && lookahead <= '9')) ADVANCE(80); - if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + lookahead == ' ') SKIP(32); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(74); + if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(159); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(160); END_STATE(); - case 27: - if (eof) ADVANCE(30); + case 30: + if (eof) ADVANCE(37); ADVANCE_MAP( - '\n', 31, - '"', 1, - '#', 65, - '$', 19, - '%', 61, - '&', 64, - '\'', 9, - '(', 34, - '*', 55, - '+', 53, - ',', 32, - '-', 40, - '.', 147, - '/', 59, - '0', 71, - ';', 154, + '\n', 38, + '"', 3, + '#', 71, + '$', 20, + '%', 67, + '&', 70, + '\'', 7, + '(', 41, + '*', 61, + '+', 59, + ',', 39, + '-', 46, + '.', 167, + '/', 65, + '0', 73, + ';', 182, '=', 24, - '^', 63, - '|', 62, + '\\', 162, + '^', 69, + '|', 68, + '~', 170, ); if (lookahead == '\t' || lookahead == '\r' || - lookahead == ' ') SKIP(27); - if (('1' <= lookahead && lookahead <= '9')) ADVANCE(72); - if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + lookahead == ' ') SKIP(33); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(74); + if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(159); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(160); END_STATE(); - case 28: - if (eof) ADVANCE(30); + case 31: + if (eof) ADVANCE(37); + ADVANCE_MAP( + '\n', 38, + '"', 3, + '#', 71, + '$', 21, + '%', 23, + '\'', 7, + '(', 41, + '*', 61, + '-', 171, + '.', 167, + '/', 8, + '0', 97, + ':', 40, + ';', 182, + '=', 24, + '[', 58, + '\\', 162, + 'b', 149, + 'd', 147, + 'q', 148, + 'w', 127, + '{', 45, + '~', 170, + ); + if (lookahead == '\t' || + lookahead == '\r' || + lookahead == ' ') SKIP(31); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(98); + if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(159); + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_') ADVANCE(160); + END_STATE(); + case 32: + if (eof) ADVANCE(37); + ADVANCE_MAP( + '\n', 38, + '"', 3, + '#', 71, + '$', 21, + '%', 23, + '\'', 7, + '.', 167, + '/', 8, + '0', 89, + ';', 182, + '=', 24, + '\\', 162, + '-', 170, + '~', 170, + ); + if (lookahead == '\t' || + lookahead == '\r' || + lookahead == ' ') SKIP(32); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(90); + if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(159); + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_') ADVANCE(160); + END_STATE(); + case 33: + if (eof) ADVANCE(37); + ADVANCE_MAP( + '\n', 38, + '"', 3, + '#', 71, + '$', 21, + '%', 67, + '&', 70, + '\'', 7, + '(', 41, + '*', 61, + '+', 59, + ',', 39, + '-', 46, + '.', 167, + '/', 65, + '0', 89, + ';', 182, + '=', 24, + '\\', 162, + '^', 69, + '|', 68, + '~', 170, + ); + if (lookahead == '\t' || + lookahead == '\r' || + lookahead == ' ') SKIP(33); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(90); + if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(159); + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_') ADVANCE(160); + END_STATE(); + case 34: + if (eof) ADVANCE(37); ADVANCE_MAP( - '\n', 31, - '#', 65, - '%', 60, - '&', 64, - '(', 34, - ')', 35, - '*', 55, - '+', 53, - ',', 32, - '-', 39, - '.', 147, - '/', 59, - ';', 154, - ']', 54, - '^', 63, - 'c', 110, - 'l', 95, - '|', 62, - '}', 41, + '\n', 38, + '#', 71, + '%', 66, + '&', 70, + '*', 61, + '+', 59, + ',', 39, + '-', 46, + '.', 167, + '/', 65, + ';', 182, + '=', 169, + '\\', 162, + ']', 60, + '^', 69, + 'c', 126, + 'l', 111, + '|', 68, + '}', 47, ); if (lookahead == '\t' || lookahead == '\r' || - lookahead == ' ') SKIP(28); + lookahead == ' ') SKIP(34); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(160); END_STATE(); - case 29: - if (eof) ADVANCE(30); + case 35: + if (eof) ADVANCE(37); ADVANCE_MAP( - '\n', 31, - '#', 65, - '%', 23, - '(', 34, - '.', 22, - '/', 10, - ';', 154, - '}', 41, + '\n', 38, + '#', 71, + '%', 176, + ')', 42, + ',', 39, + '.', 167, + '/', 173, + ';', 182, + '<', 174, + '>', 175, + '\\', 162, + ']', 60, '$', 24, '=', 24, ); if (lookahead == '\t' || lookahead == '\r' || - lookahead == ' ') SKIP(29); + lookahead == ' ') SKIP(35); + if (lookahead == '!' || + lookahead == '&' || + ('*' <= lookahead && lookahead <= '-') || + lookahead == '^' || + lookahead == '|') ADVANCE(172); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(142); + lookahead == '_') ADVANCE(160); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(141); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(159); END_STATE(); - case 30: + case 36: + if (eof) ADVANCE(37); + ADVANCE_MAP( + '\n', 38, + '#', 71, + '(', 41, + ',', 39, + '.', 22, + '/', 173, + ';', 182, + '<', 174, + '>', 175, + ']', 60, + ); + if (lookahead == '\t' || + lookahead == '\r' || + lookahead == ' ') SKIP(36); + if (lookahead == '!' || + lookahead == '%' || + lookahead == '&' || + ('*' <= lookahead && lookahead <= '-') || + lookahead == '^' || + lookahead == '|') ADVANCE(172); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + ('\\' <= lookahead && lookahead <= '_') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(162); + END_STATE(); + case 37: ACCEPT_TOKEN(ts_builtin_sym_end); END_STATE(); - case 31: + case 38: ACCEPT_TOKEN(anon_sym_LF); END_STATE(); - case 32: + case 39: ACCEPT_TOKEN(anon_sym_COMMA); END_STATE(); - case 33: + case 40: ACCEPT_TOKEN(anon_sym_COLON); END_STATE(); - case 34: + case 41: ACCEPT_TOKEN(anon_sym_LPAREN); END_STATE(); - case 35: + case 42: ACCEPT_TOKEN(anon_sym_RPAREN); END_STATE(); - case 36: + case 43: ACCEPT_TOKEN(anon_sym_label); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(160); END_STATE(); - case 37: + case 44: ACCEPT_TOKEN(anon_sym_const); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(160); END_STATE(); - case 38: + case 45: ACCEPT_TOKEN(anon_sym_LBRACE); END_STATE(); - case 39: - ACCEPT_TOKEN(anon_sym_DASH); - END_STATE(); - case 40: + case 46: ACCEPT_TOKEN(anon_sym_DASH); - if (lookahead == '$') ADVANCE(20); - if (lookahead == '0') ADVANCE(84); - if (('1' <= lookahead && lookahead <= '9')) ADVANCE(86); END_STATE(); - case 41: + case 47: ACCEPT_TOKEN(anon_sym_RBRACE); END_STATE(); - case 42: + case 48: ACCEPT_TOKEN(anon_sym_byte); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(160); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(159); END_STATE(); - case 43: + case 49: ACCEPT_TOKEN(anon_sym_byte); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(160); END_STATE(); - case 44: + case 50: ACCEPT_TOKEN(anon_sym_word); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(160); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(159); END_STATE(); - case 45: + case 51: ACCEPT_TOKEN(anon_sym_word); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(160); END_STATE(); - case 46: + case 52: ACCEPT_TOKEN(anon_sym_dword); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(160); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(159); END_STATE(); - case 47: + case 53: ACCEPT_TOKEN(anon_sym_dword); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(160); END_STATE(); - case 48: + case 54: ACCEPT_TOKEN(anon_sym_qword); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(160); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(159); END_STATE(); - case 49: + case 55: ACCEPT_TOKEN(anon_sym_qword); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(160); END_STATE(); - case 50: + case 56: ACCEPT_TOKEN(anon_sym_ptr); END_STATE(); - case 51: + case 57: ACCEPT_TOKEN(anon_sym_ptr); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(160); END_STATE(); - case 52: + case 58: ACCEPT_TOKEN(anon_sym_LBRACK); END_STATE(); - case 53: + case 59: ACCEPT_TOKEN(anon_sym_PLUS); END_STATE(); - case 54: + case 60: ACCEPT_TOKEN(anon_sym_RBRACK); END_STATE(); - case 55: + case 61: ACCEPT_TOKEN(anon_sym_STAR); END_STATE(); - case 56: + case 62: ACCEPT_TOKEN(anon_sym_rel); END_STATE(); - case 57: + case 63: ACCEPT_TOKEN(anon_sym_rel); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(160); END_STATE(); - case 58: + case 64: ACCEPT_TOKEN(anon_sym_BANG); END_STATE(); - case 59: + case 65: ACCEPT_TOKEN(anon_sym_SLASH); - if (lookahead == '*') ADVANCE(12); - if (lookahead == '/') ADVANCE(154); + if (lookahead == '*') ADVANCE(10); + if (lookahead == '/') ADVANCE(182); END_STATE(); - case 60: + case 66: ACCEPT_TOKEN(anon_sym_PERCENT); END_STATE(); - case 61: + case 67: ACCEPT_TOKEN(anon_sym_PERCENT); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(143); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(163); END_STATE(); - case 62: + case 68: ACCEPT_TOKEN(anon_sym_PIPE); END_STATE(); - case 63: + case 69: ACCEPT_TOKEN(anon_sym_CARET); END_STATE(); - case 64: + case 70: ACCEPT_TOKEN(anon_sym_AMP); END_STATE(); - case 65: + case 71: ACCEPT_TOKEN(anon_sym_POUND); END_STATE(); - case 66: + case 72: ACCEPT_TOKEN(anon_sym_POUND); if (lookahead != 0 && - lookahead != '\n') ADVANCE(153); + lookahead != '\n') ADVANCE(181); END_STATE(); - case 67: + case 73: + ACCEPT_TOKEN(aux_sym_int_token1); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); + if (lookahead == '_') ADVANCE(79); + if (lookahead == 'b') ADVANCE(153); + if (lookahead == 'x') ADVANCE(155); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(74); + if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(159); + if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(160); + END_STATE(); + case 74: + ACCEPT_TOKEN(aux_sym_int_token1); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); + if (lookahead == '_') ADVANCE(79); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(74); + if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(160); + if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(159); + END_STATE(); + case 75: + ACCEPT_TOKEN(aux_sym_int_token1); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); + if (lookahead == '_') ADVANCE(77); + if (lookahead == '0' || + lookahead == '1') ADVANCE(75); + if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(160); + if (('2' <= lookahead && lookahead <= '9') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(159); + END_STATE(); + case 76: ACCEPT_TOKEN(aux_sym_int_token1); - if (lookahead == 'b') ADVANCE(18); - if (lookahead == 'x') ADVANCE(21); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); + if (lookahead == 'b') ADVANCE(151); + if (lookahead == 'x') ADVANCE(157); if (('0' <= lookahead && lookahead <= '9') || - lookahead == '_') ADVANCE(69); + lookahead == '_') ADVANCE(79); + if (('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(160); END_STATE(); - case 68: + case 77: ACCEPT_TOKEN(aux_sym_int_token1); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); if (lookahead == '0' || lookahead == '1' || - lookahead == '_') ADVANCE(68); + lookahead == '_') ADVANCE(77); + if (('2' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(160); END_STATE(); - case 69: + case 78: ACCEPT_TOKEN(aux_sym_int_token1); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); + if (('A' <= lookahead && lookahead <= 'F') || + lookahead == '_') ADVANCE(80); if (('0' <= lookahead && lookahead <= '9') || - lookahead == '_') ADVANCE(69); + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(78); + if (('G' <= lookahead && lookahead <= 'Z')) ADVANCE(160); + if (('g' <= lookahead && lookahead <= 'z')) ADVANCE(159); END_STATE(); - case 70: + case 79: ACCEPT_TOKEN(aux_sym_int_token1); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); + if (('0' <= lookahead && lookahead <= '9') || + lookahead == '_') ADVANCE(79); + if (('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(160); + END_STATE(); + case 80: + ACCEPT_TOKEN(aux_sym_int_token1); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'f')) ADVANCE(70); + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(80); + if (('G' <= lookahead && lookahead <= 'Z') || + ('g' <= lookahead && lookahead <= 'z')) ADVANCE(160); END_STATE(); - case 71: + case 81: + ACCEPT_TOKEN(aux_sym_int_token1); + if (lookahead == '.') ADVANCE(105); + if (lookahead == '\\') ADVANCE(162); + if (lookahead == '_') ADVANCE(83); + if (lookahead == 'b') ADVANCE(153); + if (lookahead == 'x') ADVANCE(155); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(82); + if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(159); + if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(160); + END_STATE(); + case 82: + ACCEPT_TOKEN(aux_sym_int_token1); + if (lookahead == '.') ADVANCE(105); + if (lookahead == '\\') ADVANCE(162); + if (lookahead == '_') ADVANCE(83); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(82); + if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(160); + if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(159); + END_STATE(); + case 83: + ACCEPT_TOKEN(aux_sym_int_token1); + if (lookahead == '.') ADVANCE(105); + if (lookahead == '\\') ADVANCE(162); + if (('0' <= lookahead && lookahead <= '9') || + lookahead == '_') ADVANCE(83); + if (('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(160); + END_STATE(); + case 84: + ACCEPT_TOKEN(aux_sym_int_token1); + if (lookahead == 'b') ADVANCE(16); + if (lookahead == 'x') ADVANCE(18); + if (('0' <= lookahead && lookahead <= '9') || + lookahead == '_') ADVANCE(86); + END_STATE(); + case 85: + ACCEPT_TOKEN(aux_sym_int_token1); + if (lookahead == '0' || + lookahead == '1' || + lookahead == '_') ADVANCE(85); + END_STATE(); + case 86: + ACCEPT_TOKEN(aux_sym_int_token1); + if (('0' <= lookahead && lookahead <= '9') || + lookahead == '_') ADVANCE(86); + END_STATE(); + case 87: + ACCEPT_TOKEN(aux_sym_int_token1); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'F') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(87); + END_STATE(); + case 88: + ACCEPT_TOKEN(aux_sym_int_token1); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'F') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(88); + if (('G' <= lookahead && lookahead <= 'Z') || + ('g' <= lookahead && lookahead <= 'z')) ADVANCE(164); + END_STATE(); + case 89: ACCEPT_TOKEN(aux_sym_int_token2); - if (lookahead == '.') ADVANCE(148); - if (lookahead == '_') ADVANCE(77); - if (lookahead == 'b') ADVANCE(136); - if (lookahead == 'x') ADVANCE(137); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(72); - if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); - if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(140); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); + if (lookahead == '_') ADVANCE(95); + if (lookahead == 'b') ADVANCE(154); + if (lookahead == 'x') ADVANCE(156); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(90); + if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(159); + if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(160); END_STATE(); - case 72: + case 90: ACCEPT_TOKEN(aux_sym_int_token2); - if (lookahead == '.') ADVANCE(148); - if (lookahead == '_') ADVANCE(77); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(72); - if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(140); - if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); + if (lookahead == '_') ADVANCE(95); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(90); + if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(160); + if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(159); END_STATE(); - case 73: + case 91: ACCEPT_TOKEN(aux_sym_int_token2); - if (lookahead == '.') ADVANCE(148); - if (lookahead == '_') ADVANCE(75); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); + if (lookahead == '_') ADVANCE(93); if (lookahead == '0' || - lookahead == '1') ADVANCE(73); - if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(140); + lookahead == '1') ADVANCE(91); + if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(160); if (('2' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(159); END_STATE(); - case 74: + case 92: ACCEPT_TOKEN(aux_sym_int_token2); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'b') ADVANCE(135); - if (lookahead == 'x') ADVANCE(138); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); + if (lookahead == 'b') ADVANCE(152); + if (lookahead == 'x') ADVANCE(158); if (('0' <= lookahead && lookahead <= '9') || - lookahead == '_') ADVANCE(77); + lookahead == '_') ADVANCE(95); if (('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(160); END_STATE(); - case 75: + case 93: ACCEPT_TOKEN(aux_sym_int_token2); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); if (lookahead == '0' || lookahead == '1' || - lookahead == '_') ADVANCE(75); + lookahead == '_') ADVANCE(93); if (('2' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(160); END_STATE(); - case 76: + case 94: ACCEPT_TOKEN(aux_sym_int_token2); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); if (('A' <= lookahead && lookahead <= 'F') || - lookahead == '_') ADVANCE(78); + lookahead == '_') ADVANCE(96); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'f')) ADVANCE(76); - if (('G' <= lookahead && lookahead <= 'Z')) ADVANCE(140); - if (('g' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(94); + if (('G' <= lookahead && lookahead <= 'Z')) ADVANCE(160); + if (('g' <= lookahead && lookahead <= 'z')) ADVANCE(159); END_STATE(); - case 77: + case 95: ACCEPT_TOKEN(aux_sym_int_token2); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); if (('0' <= lookahead && lookahead <= '9') || - lookahead == '_') ADVANCE(77); + lookahead == '_') ADVANCE(95); if (('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(160); END_STATE(); - case 78: + case 96: ACCEPT_TOKEN(aux_sym_int_token2); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'f')) ADVANCE(78); + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(96); if (('G' <= lookahead && lookahead <= 'Z') || - ('g' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('g' <= lookahead && lookahead <= 'z')) ADVANCE(160); END_STATE(); - case 79: + case 97: ACCEPT_TOKEN(aux_sym_int_token2); - if (lookahead == '.') ADVANCE(89); - if (lookahead == '_') ADVANCE(81); - if (lookahead == 'b') ADVANCE(136); - if (lookahead == 'x') ADVANCE(137); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(80); - if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); - if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(140); + if (lookahead == '.') ADVANCE(105); + if (lookahead == '\\') ADVANCE(162); + if (lookahead == '_') ADVANCE(99); + if (lookahead == 'b') ADVANCE(154); + if (lookahead == 'x') ADVANCE(156); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(98); + if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(159); + if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(160); END_STATE(); - case 80: + case 98: ACCEPT_TOKEN(aux_sym_int_token2); - if (lookahead == '.') ADVANCE(89); - if (lookahead == '_') ADVANCE(81); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(80); - if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(140); - if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + if (lookahead == '.') ADVANCE(105); + if (lookahead == '\\') ADVANCE(162); + if (lookahead == '_') ADVANCE(99); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(98); + if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(160); + if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(159); END_STATE(); - case 81: + case 99: ACCEPT_TOKEN(aux_sym_int_token2); - if (lookahead == '.') ADVANCE(89); + if (lookahead == '.') ADVANCE(105); + if (lookahead == '\\') ADVANCE(162); if (('0' <= lookahead && lookahead <= '9') || - lookahead == '_') ADVANCE(81); + lookahead == '_') ADVANCE(99); if (('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); - END_STATE(); - case 82: - ACCEPT_TOKEN(aux_sym_int_token2); - if (lookahead == '.') ADVANCE(90); - if (lookahead == 'b') ADVANCE(17); - if (lookahead == 'x') ADVANCE(20); - if (('0' <= lookahead && lookahead <= '9') || - lookahead == '_') ADVANCE(83); - END_STATE(); - case 83: - ACCEPT_TOKEN(aux_sym_int_token2); - if (lookahead == '.') ADVANCE(90); - if (('0' <= lookahead && lookahead <= '9') || - lookahead == '_') ADVANCE(83); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(160); END_STATE(); - case 84: + case 100: ACCEPT_TOKEN(aux_sym_int_token2); if (lookahead == 'b') ADVANCE(17); - if (lookahead == 'x') ADVANCE(20); + if (lookahead == 'x') ADVANCE(19); if (('0' <= lookahead && lookahead <= '9') || - lookahead == '_') ADVANCE(86); + lookahead == '_') ADVANCE(102); END_STATE(); - case 85: + case 101: ACCEPT_TOKEN(aux_sym_int_token2); if (lookahead == '0' || lookahead == '1' || - lookahead == '_') ADVANCE(85); + lookahead == '_') ADVANCE(101); END_STATE(); - case 86: + case 102: ACCEPT_TOKEN(aux_sym_int_token2); if (('0' <= lookahead && lookahead <= '9') || - lookahead == '_') ADVANCE(86); + lookahead == '_') ADVANCE(102); END_STATE(); - case 87: + case 103: ACCEPT_TOKEN(aux_sym_int_token2); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'f')) ADVANCE(87); - if (('G' <= lookahead && lookahead <= 'Z') || - ('g' <= lookahead && lookahead <= 'z')) ADVANCE(144); + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(103); END_STATE(); - case 88: + case 104: ACCEPT_TOKEN(aux_sym_int_token2); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'f')) ADVANCE(88); + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(104); + if (('G' <= lookahead && lookahead <= 'Z') || + ('g' <= lookahead && lookahead <= 'z')) ADVANCE(164); END_STATE(); - case 89: + case 105: ACCEPT_TOKEN(sym_float); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(91); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(107); if (lookahead == '.' || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(168); END_STATE(); - case 90: + case 106: ACCEPT_TOKEN(sym_float); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(92); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(108); END_STATE(); - case 91: + case 107: ACCEPT_TOKEN(sym_float); if (('0' <= lookahead && lookahead <= '9') || - lookahead == '_') ADVANCE(91); + lookahead == '_') ADVANCE(107); if (lookahead == '.' || ('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(168); END_STATE(); - case 92: + case 108: ACCEPT_TOKEN(sym_float); if (('0' <= lookahead && lookahead <= '9') || - lookahead == '_') ADVANCE(92); + lookahead == '_') ADVANCE(108); END_STATE(); - case 93: + case 109: ACCEPT_TOKEN(aux_sym_string_token1); END_STATE(); - case 94: + case 110: ACCEPT_TOKEN(aux_sym_string_token2); END_STATE(); - case 95: + case 111: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'a') ADVANCE(96); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); + if (lookahead == 'a') ADVANCE(112); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('b' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('b' <= lookahead && lookahead <= 'z')) ADVANCE(160); END_STATE(); - case 96: + case 112: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'b') ADVANCE(106); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); + if (lookahead == 'b') ADVANCE(122); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(160); END_STATE(); - case 97: + case 113: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'd') ADVANCE(45); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); + if (lookahead == 'd') ADVANCE(51); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(160); END_STATE(); - case 98: + case 114: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'd') ADVANCE(47); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); + if (lookahead == 'd') ADVANCE(53); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(160); END_STATE(); - case 99: + case 115: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'd') ADVANCE(49); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); + if (lookahead == 'd') ADVANCE(55); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(160); END_STATE(); - case 100: + case 116: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'd') ADVANCE(44); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); + if (lookahead == 'd') ADVANCE(50); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(160); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(159); END_STATE(); - case 101: + case 117: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'd') ADVANCE(46); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); + if (lookahead == 'd') ADVANCE(52); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(160); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(159); END_STATE(); - case 102: + case 118: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'd') ADVANCE(48); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); + if (lookahead == 'd') ADVANCE(54); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(160); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(159); END_STATE(); - case 103: + case 119: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'e') ADVANCE(107); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); + if (lookahead == 'e') ADVANCE(123); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(160); END_STATE(); - case 104: + case 120: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'e') ADVANCE(43); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); + if (lookahead == 'e') ADVANCE(49); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(160); END_STATE(); - case 105: + case 121: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'e') ADVANCE(42); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); + if (lookahead == 'e') ADVANCE(48); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(160); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(159); END_STATE(); - case 106: + case 122: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'e') ADVANCE(108); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); + if (lookahead == 'e') ADVANCE(124); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(160); END_STATE(); - case 107: + case 123: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'l') ADVANCE(57); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); + if (lookahead == 'l') ADVANCE(63); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(160); END_STATE(); - case 108: + case 124: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'l') ADVANCE(36); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); + if (lookahead == 'l') ADVANCE(43); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(160); END_STATE(); - case 109: + case 125: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'n') ADVANCE(124); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); + if (lookahead == 'n') ADVANCE(140); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(160); END_STATE(); - case 110: + case 126: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'o') ADVANCE(109); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); + if (lookahead == 'o') ADVANCE(125); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(160); END_STATE(); - case 111: + case 127: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'o') ADVANCE(119); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); + if (lookahead == 'o') ADVANCE(135); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(160); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(159); END_STATE(); - case 112: + case 128: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'o') ADVANCE(118); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); + if (lookahead == 'o') ADVANCE(134); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(160); END_STATE(); - case 113: + case 129: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'o') ADVANCE(120); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); + if (lookahead == 'o') ADVANCE(136); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(160); END_STATE(); - case 114: + case 130: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'o') ADVANCE(122); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); + if (lookahead == 'o') ADVANCE(138); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(160); END_STATE(); - case 115: + case 131: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'o') ADVANCE(121); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); + if (lookahead == 'o') ADVANCE(137); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(160); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(159); END_STATE(); - case 116: + case 132: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'o') ADVANCE(123); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); + if (lookahead == 'o') ADVANCE(139); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(160); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(159); END_STATE(); - case 117: + case 133: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'r') ADVANCE(51); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); + if (lookahead == 'r') ADVANCE(57); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(160); END_STATE(); - case 118: + case 134: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'r') ADVANCE(97); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); + if (lookahead == 'r') ADVANCE(113); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(160); END_STATE(); - case 119: + case 135: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'r') ADVANCE(100); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); + if (lookahead == 'r') ADVANCE(116); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(160); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(159); END_STATE(); - case 120: + case 136: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'r') ADVANCE(98); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); + if (lookahead == 'r') ADVANCE(114); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(160); END_STATE(); - case 121: + case 137: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'r') ADVANCE(101); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); + if (lookahead == 'r') ADVANCE(117); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(160); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(159); END_STATE(); - case 122: + case 138: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'r') ADVANCE(99); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); + if (lookahead == 'r') ADVANCE(115); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(160); END_STATE(); - case 123: + case 139: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'r') ADVANCE(102); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); + if (lookahead == 'r') ADVANCE(118); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(160); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(159); END_STATE(); - case 124: + case 140: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 's') ADVANCE(126); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); + if (lookahead == 's') ADVANCE(142); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(160); END_STATE(); - case 125: + case 141: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 't') ADVANCE(117); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); + if (lookahead == 't') ADVANCE(133); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(160); END_STATE(); - case 126: + case 142: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 't') ADVANCE(37); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); + if (lookahead == 't') ADVANCE(44); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(160); END_STATE(); - case 127: + case 143: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 't') ADVANCE(105); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); + if (lookahead == 't') ADVANCE(121); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(160); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(159); END_STATE(); - case 128: + case 144: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 't') ADVANCE(104); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); + if (lookahead == 't') ADVANCE(120); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(160); END_STATE(); - case 129: + case 145: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'w') ADVANCE(113); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); + if (lookahead == 'w') ADVANCE(129); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(160); END_STATE(); - case 130: + case 146: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'w') ADVANCE(114); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); + if (lookahead == 'w') ADVANCE(130); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(160); END_STATE(); - case 131: + case 147: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'w') ADVANCE(115); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); + if (lookahead == 'w') ADVANCE(131); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(160); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(159); END_STATE(); - case 132: + case 148: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'w') ADVANCE(116); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); + if (lookahead == 'w') ADVANCE(132); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(160); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(159); END_STATE(); - case 133: + case 149: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'y') ADVANCE(127); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); + if (lookahead == 'y') ADVANCE(143); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(160); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(159); END_STATE(); - case 134: + case 150: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'y') ADVANCE(128); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); + if (lookahead == 'y') ADVANCE(144); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(160); END_STATE(); - case 135: + case 151: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); if (lookahead == '0' || - lookahead == '1') ADVANCE(75); + lookahead == '1') ADVANCE(77); if (('2' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(160); END_STATE(); - case 136: + case 152: + ACCEPT_TOKEN(sym_word); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); + if (lookahead == '0' || + lookahead == '1') ADVANCE(93); + if (('2' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(160); + END_STATE(); + case 153: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); if (lookahead == '0' || - lookahead == '1') ADVANCE(73); + lookahead == '1') ADVANCE(75); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(160); if (('2' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(159); END_STATE(); - case 137: + case 154: + ACCEPT_TOKEN(sym_word); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); + if (lookahead == '0' || + lookahead == '1') ADVANCE(91); + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_') ADVANCE(160); + if (('2' <= lookahead && lookahead <= '9') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(159); + END_STATE(); + case 155: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (('A' <= lookahead && lookahead <= 'F')) ADVANCE(78); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); + if (('A' <= lookahead && lookahead <= 'F')) ADVANCE(80); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'f')) ADVANCE(76); - if (('g' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(78); + if (('g' <= lookahead && lookahead <= 'z')) ADVANCE(159); if (('G' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(160); END_STATE(); - case 138: + case 156: + ACCEPT_TOKEN(sym_word); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); + if (('A' <= lookahead && lookahead <= 'F')) ADVANCE(96); + if (('0' <= lookahead && lookahead <= '9') || + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(94); + if (('g' <= lookahead && lookahead <= 'z')) ADVANCE(159); + if (('G' <= lookahead && lookahead <= 'Z') || + lookahead == '_') ADVANCE(160); + END_STATE(); + case 157: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || - ('a' <= lookahead && lookahead <= 'f')) ADVANCE(78); + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(80); if (('G' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('g' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('g' <= lookahead && lookahead <= 'z')) ADVANCE(160); END_STATE(); - case 139: + case 158: + ACCEPT_TOKEN(sym_word); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'F') || + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(96); + if (('G' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('g' <= lookahead && lookahead <= 'z')) ADVANCE(160); + END_STATE(); + case 159: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(160); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(159); END_STATE(); - case 140: + case 160: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(168); + if (lookahead == '\\') ADVANCE(162); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(160); END_STATE(); - case 141: + case 161: ACCEPT_TOKEN(sym_word); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(142); + lookahead == '\\' || + lookahead == '_') ADVANCE(162); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(141); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(161); END_STATE(); - case 142: + case 162: ACCEPT_TOKEN(sym_word); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '\\' || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(142); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(162); END_STATE(); - case 143: + case 163: ACCEPT_TOKEN(sym__reg); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(143); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(163); END_STATE(); - case 144: + case 164: ACCEPT_TOKEN(sym_address); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(144); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(164); END_STATE(); - case 145: + case 165: ACCEPT_TOKEN(sym_meta_ident); if (lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(145); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(165); if (lookahead == '.' || ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z')) ADVANCE(148); + ('A' <= lookahead && lookahead <= 'Z')) ADVANCE(168); END_STATE(); - case 146: + case 166: ACCEPT_TOKEN(sym_meta_ident); if (lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(146); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(166); END_STATE(); - case 147: + case 167: ACCEPT_TOKEN(sym__ident); if (lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(145); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(165); if (lookahead == '.' || ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z')) ADVANCE(148); + ('A' <= lookahead && lookahead <= 'Z')) ADVANCE(168); END_STATE(); - case 148: + case 168: ACCEPT_TOKEN(sym__ident); if (lookahead == '.' || ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(168); END_STATE(); - case 149: + case 169: + ACCEPT_TOKEN(anon_sym_EQ); + END_STATE(); + case 170: + ACCEPT_TOKEN(sym_prefix_operator); + END_STATE(); + case 171: + ACCEPT_TOKEN(sym_prefix_operator); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(11); + END_STATE(); + case 172: + ACCEPT_TOKEN(sym_infix_operator); + END_STATE(); + case 173: + ACCEPT_TOKEN(sym_infix_operator); + if (lookahead == '*') ADVANCE(10); + if (lookahead == '/') ADVANCE(182); + END_STATE(); + case 174: + ACCEPT_TOKEN(sym_infix_operator); + if (lookahead == '<') ADVANCE(172); + END_STATE(); + case 175: + ACCEPT_TOKEN(sym_infix_operator); + if (lookahead == '>') ADVANCE(172); + END_STATE(); + case 176: + ACCEPT_TOKEN(sym_infix_operator); + if (('0' <= lookahead && lookahead <= '9') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(163); + END_STATE(); + case 177: ACCEPT_TOKEN(aux_sym_line_comment_token1); - if (lookahead == '\n') ADVANCE(12); - if (lookahead == '*') ADVANCE(149); - if (lookahead == '/') ADVANCE(153); - if (lookahead != 0) ADVANCE(150); + if (lookahead == '\n') ADVANCE(10); + if (lookahead == '*') ADVANCE(177); + if (lookahead == '/') ADVANCE(181); + if (lookahead != 0) ADVANCE(178); END_STATE(); - case 150: + case 178: ACCEPT_TOKEN(aux_sym_line_comment_token1); - if (lookahead == '\n') ADVANCE(12); - if (lookahead == '*') ADVANCE(149); - if (lookahead != 0) ADVANCE(150); + if (lookahead == '\n') ADVANCE(10); + if (lookahead == '*') ADVANCE(177); + if (lookahead != 0) ADVANCE(178); END_STATE(); - case 151: + case 179: ACCEPT_TOKEN(aux_sym_line_comment_token1); - if (lookahead == '#') ADVANCE(66); - if (lookahead == '/') ADVANCE(152); - if (lookahead == ';') ADVANCE(153); + if (lookahead == '#') ADVANCE(72); + if (lookahead == '/') ADVANCE(180); + if (lookahead == ';') ADVANCE(181); if (lookahead == '\t' || lookahead == '\r' || - lookahead == ' ') ADVANCE(151); + lookahead == ' ') ADVANCE(179); if (lookahead != 0 && lookahead != '\t' && - lookahead != '\n') ADVANCE(153); + lookahead != '\n') ADVANCE(181); END_STATE(); - case 152: + case 180: ACCEPT_TOKEN(aux_sym_line_comment_token1); - if (lookahead == '*') ADVANCE(150); - if (lookahead == '/') ADVANCE(153); + if (lookahead == '*') ADVANCE(178); + if (lookahead == '/') ADVANCE(181); if (lookahead != 0 && - lookahead != '\n') ADVANCE(153); + lookahead != '\n') ADVANCE(181); END_STATE(); - case 153: + case 181: ACCEPT_TOKEN(aux_sym_line_comment_token1); if (lookahead != 0 && - lookahead != '\n') ADVANCE(153); + lookahead != '\n') ADVANCE(181); END_STATE(); - case 154: + case 182: ACCEPT_TOKEN(aux_sym_line_comment_token2); if (lookahead != 0 && - lookahead != '\n') ADVANCE(154); + lookahead != '\n') ADVANCE(182); END_STATE(); - case 155: + case 183: ACCEPT_TOKEN(sym_block_comment); END_STATE(); default: @@ -1911,148 +2517,179 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { } } -static const TSLexMode ts_lex_modes[STATE_COUNT] = { +static const TSLexerMode ts_lex_modes[STATE_COUNT] = { [0] = {.lex_state = 0}, - [1] = {.lex_state = 28}, - [2] = {.lex_state = 25}, - [3] = {.lex_state = 25}, - [4] = {.lex_state = 25}, - [5] = {.lex_state = 25}, - [6] = {.lex_state = 27}, - [7] = {.lex_state = 27}, - [8] = {.lex_state = 27}, - [9] = {.lex_state = 27}, - [10] = {.lex_state = 27}, - [11] = {.lex_state = 27}, - [12] = {.lex_state = 27}, - [13] = {.lex_state = 27}, - [14] = {.lex_state = 27}, - [15] = {.lex_state = 27}, - [16] = {.lex_state = 27}, - [17] = {.lex_state = 27}, - [18] = {.lex_state = 27}, - [19] = {.lex_state = 27}, - [20] = {.lex_state = 27}, - [21] = {.lex_state = 27}, - [22] = {.lex_state = 26}, - [23] = {.lex_state = 26}, - [24] = {.lex_state = 27}, - [25] = {.lex_state = 27}, - [26] = {.lex_state = 27}, - [27] = {.lex_state = 27}, - [28] = {.lex_state = 27}, - [29] = {.lex_state = 27}, - [30] = {.lex_state = 27}, - [31] = {.lex_state = 27}, - [32] = {.lex_state = 27}, - [33] = {.lex_state = 27}, - [34] = {.lex_state = 27}, - [35] = {.lex_state = 28}, - [36] = {.lex_state = 28}, - [37] = {.lex_state = 28}, - [38] = {.lex_state = 28}, - [39] = {.lex_state = 28}, - [40] = {.lex_state = 28}, - [41] = {.lex_state = 28}, - [42] = {.lex_state = 28}, - [43] = {.lex_state = 28}, - [44] = {.lex_state = 28}, - [45] = {.lex_state = 28}, - [46] = {.lex_state = 28}, - [47] = {.lex_state = 28}, - [48] = {.lex_state = 28}, - [49] = {.lex_state = 28}, - [50] = {.lex_state = 27}, - [51] = {.lex_state = 27}, - [52] = {.lex_state = 28}, - [53] = {.lex_state = 28}, - [54] = {.lex_state = 4}, - [55] = {.lex_state = 4}, - [56] = {.lex_state = 29}, - [57] = {.lex_state = 29}, - [58] = {.lex_state = 29}, - [59] = {.lex_state = 29}, - [60] = {.lex_state = 29}, - [61] = {.lex_state = 0}, - [62] = {.lex_state = 28}, - [63] = {.lex_state = 28}, - [64] = {.lex_state = 0}, - [65] = {.lex_state = 0}, - [66] = {.lex_state = 0}, - [67] = {.lex_state = 29}, - [68] = {.lex_state = 0}, - [69] = {.lex_state = 0}, - [70] = {.lex_state = 0}, - [71] = {.lex_state = 0}, - [72] = {.lex_state = 29}, - [73] = {.lex_state = 29}, - [74] = {.lex_state = 0}, - [75] = {.lex_state = 29}, - [76] = {.lex_state = 28}, - [77] = {.lex_state = 0}, + [1] = {.lex_state = 34}, + [2] = {.lex_state = 28}, + [3] = {.lex_state = 28}, + [4] = {.lex_state = 28}, + [5] = {.lex_state = 28}, + [6] = {.lex_state = 28}, + [7] = {.lex_state = 28}, + [8] = {.lex_state = 28}, + [9] = {.lex_state = 30}, + [10] = {.lex_state = 30}, + [11] = {.lex_state = 30}, + [12] = {.lex_state = 30}, + [13] = {.lex_state = 30}, + [14] = {.lex_state = 30}, + [15] = {.lex_state = 30}, + [16] = {.lex_state = 30}, + [17] = {.lex_state = 30}, + [18] = {.lex_state = 30}, + [19] = {.lex_state = 30}, + [20] = {.lex_state = 30}, + [21] = {.lex_state = 30}, + [22] = {.lex_state = 30}, + [23] = {.lex_state = 30}, + [24] = {.lex_state = 29}, + [25] = {.lex_state = 29}, + [26] = {.lex_state = 29}, + [27] = {.lex_state = 29}, + [28] = {.lex_state = 29}, + [29] = {.lex_state = 29}, + [30] = {.lex_state = 29}, + [31] = {.lex_state = 1}, + [32] = {.lex_state = 29}, + [33] = {.lex_state = 29}, + [34] = {.lex_state = 29}, + [35] = {.lex_state = 29}, + [36] = {.lex_state = 29}, + [37] = {.lex_state = 29}, + [38] = {.lex_state = 34}, + [39] = {.lex_state = 34}, + [40] = {.lex_state = 34}, + [41] = {.lex_state = 34}, + [42] = {.lex_state = 34}, + [43] = {.lex_state = 29}, + [44] = {.lex_state = 35}, + [45] = {.lex_state = 35}, + [46] = {.lex_state = 29}, + [47] = {.lex_state = 35}, + [48] = {.lex_state = 34}, + [49] = {.lex_state = 34}, + [50] = {.lex_state = 34}, + [51] = {.lex_state = 34}, + [52] = {.lex_state = 34}, + [53] = {.lex_state = 34}, + [54] = {.lex_state = 34}, + [55] = {.lex_state = 34}, + [56] = {.lex_state = 34}, + [57] = {.lex_state = 34}, + [58] = {.lex_state = 34}, + [59] = {.lex_state = 35}, + [60] = {.lex_state = 34}, + [61] = {.lex_state = 35}, + [62] = {.lex_state = 34}, + [63] = {.lex_state = 35}, + [64] = {.lex_state = 36}, + [65] = {.lex_state = 36}, + [66] = {.lex_state = 36}, + [67] = {.lex_state = 36}, + [68] = {.lex_state = 6}, + [69] = {.lex_state = 36}, + [70] = {.lex_state = 6}, + [71] = {.lex_state = 36}, + [72] = {.lex_state = 36}, + [73] = {.lex_state = 6}, + [74] = {.lex_state = 26}, + [75] = {.lex_state = 36}, + [76] = {.lex_state = 26}, + [77] = {.lex_state = 36}, [78] = {.lex_state = 0}, - [79] = {.lex_state = 29}, - [80] = {.lex_state = 0}, + [79] = {.lex_state = 0}, + [80] = {.lex_state = 36}, [81] = {.lex_state = 0}, - [82] = {.lex_state = 28}, + [82] = {.lex_state = 4}, [83] = {.lex_state = 0}, - [84] = {.lex_state = 0}, - [85] = {.lex_state = 0}, + [84] = {.lex_state = 34}, + [85] = {.lex_state = 36}, [86] = {.lex_state = 0}, - [87] = {.lex_state = 0}, - [88] = {.lex_state = 0}, + [87] = {.lex_state = 34}, + [88] = {.lex_state = 36}, [89] = {.lex_state = 0}, [90] = {.lex_state = 0}, - [91] = {.lex_state = 0}, + [91] = {.lex_state = 36}, [92] = {.lex_state = 0}, - [93] = {.lex_state = 0}, - [94] = {.lex_state = 0}, - [95] = {.lex_state = 0}, - [96] = {.lex_state = 0}, + [93] = {.lex_state = 36}, + [94] = {.lex_state = 34}, + [95] = {.lex_state = 36}, + [96] = {.lex_state = 36}, [97] = {.lex_state = 0}, - [98] = {.lex_state = 0}, - [99] = {.lex_state = 0}, - [100] = {.lex_state = 0}, - [101] = {.lex_state = 0}, - [102] = {.lex_state = 28}, + [98] = {.lex_state = 36}, + [99] = {.lex_state = 36}, + [100] = {.lex_state = 36}, + [101] = {.lex_state = 6}, + [102] = {.lex_state = 36}, [103] = {.lex_state = 0}, - [104] = {.lex_state = 28}, - [105] = {.lex_state = 2}, - [106] = {.lex_state = 0}, - [107] = {.lex_state = 0}, - [108] = {.lex_state = 0}, - [109] = {.lex_state = 2}, + [104] = {.lex_state = 34}, + [105] = {.lex_state = 6}, + [106] = {.lex_state = 4}, + [107] = {.lex_state = 6}, + [108] = {.lex_state = 4}, + [109] = {.lex_state = 0}, [110] = {.lex_state = 0}, [111] = {.lex_state = 0}, [112] = {.lex_state = 0}, - [113] = {.lex_state = 0}, + [113] = {.lex_state = 6}, [114] = {.lex_state = 0}, - [115] = {.lex_state = 2}, - [116] = {.lex_state = 151}, + [115] = {.lex_state = 0}, + [116] = {.lex_state = 6}, [117] = {.lex_state = 0}, [118] = {.lex_state = 0}, - [119] = {.lex_state = 0}, + [119] = {.lex_state = 34}, [120] = {.lex_state = 0}, [121] = {.lex_state = 0}, [122] = {.lex_state = 0}, [123] = {.lex_state = 0}, - [124] = {.lex_state = 25}, - [125] = {.lex_state = 3}, - [126] = {.lex_state = 2}, - [127] = {.lex_state = 2}, - [128] = {.lex_state = 0}, - [129] = {.lex_state = 0}, - [130] = {.lex_state = 0}, + [124] = {.lex_state = 36}, + [125] = {.lex_state = 0}, + [126] = {.lex_state = 0}, + [127] = {.lex_state = 34}, + [128] = {.lex_state = 36}, + [129] = {.lex_state = 36}, + [130] = {.lex_state = 4}, [131] = {.lex_state = 0}, - [132] = {.lex_state = 29}, - [133] = {.lex_state = 29}, - [134] = {.lex_state = 3}, - [135] = {(TSStateId)(-1)}, - [136] = {(TSStateId)(-1)}, + [132] = {.lex_state = 0}, + [133] = {.lex_state = 0}, + [134] = {.lex_state = 0}, + [135] = {.lex_state = 0}, + [136] = {.lex_state = 0}, + [137] = {.lex_state = 0}, + [138] = {.lex_state = 0}, + [139] = {.lex_state = 0}, + [140] = {.lex_state = 4}, + [141] = {.lex_state = 4}, + [142] = {.lex_state = 0}, + [143] = {.lex_state = 36}, + [144] = {.lex_state = 0}, + [145] = {.lex_state = 0}, + [146] = {.lex_state = 179}, + [147] = {.lex_state = 0}, + [148] = {.lex_state = 0}, + [149] = {.lex_state = 28}, + [150] = {.lex_state = 0}, + [151] = {.lex_state = 26}, + [152] = {.lex_state = 26}, + [153] = {.lex_state = 36}, + [154] = {.lex_state = 26}, + [155] = {.lex_state = 26}, + [156] = {.lex_state = 0}, + [157] = {.lex_state = 0}, + [158] = {.lex_state = 36}, + [159] = {.lex_state = 0}, + [160] = {.lex_state = 0}, + [161] = {.lex_state = 26}, + [162] = {.lex_state = 26}, + [163] = {.lex_state = 26}, + [164] = {.lex_state = 0}, + [165] = {.lex_state = 26}, + [166] = {(TSStateId)(-1),}, + [167] = {(TSStateId)(-1),}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { - [0] = { + [STATE(0)] = { [sym_line_comment] = STATE(0), [ts_builtin_sym_end] = ACTIONS(1), [anon_sym_LF] = ACTIONS(1), @@ -2082,23 +2719,26 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_CARET] = ACTIONS(1), [anon_sym_AMP] = ACTIONS(1), [anon_sym_POUND] = ACTIONS(3), + [aux_sym_int_token1] = ACTIONS(1), [aux_sym_int_token2] = ACTIONS(1), [aux_sym_string_token1] = ACTIONS(1), [aux_sym_string_token2] = ACTIONS(1), [sym_word] = ACTIONS(1), - [sym_address] = ACTIONS(1), [sym_meta_ident] = ACTIONS(1), [sym__ident] = ACTIONS(1), + [anon_sym_EQ] = ACTIONS(1), + [sym_prefix_operator] = ACTIONS(1), + [sym_infix_operator] = ACTIONS(1), [aux_sym_line_comment_token2] = ACTIONS(5), [sym_block_comment] = ACTIONS(7), }, - [1] = { - [sym_program] = STATE(130), - [sym__item] = STATE(81), - [sym_meta] = STATE(114), - [sym_label] = STATE(114), - [sym_const] = STATE(114), - [sym_instruction] = STATE(114), + [STATE(1)] = { + [sym_program] = STATE(145), + [sym__item] = STATE(112), + [sym_meta] = STATE(133), + [sym_label] = STATE(133), + [sym_const] = STATE(133), + [sym_instruction] = STATE(133), [sym_line_comment] = STATE(1), [ts_builtin_sym_end] = ACTIONS(9), [anon_sym_label] = ACTIONS(11), @@ -2110,50 +2750,16 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [aux_sym_line_comment_token2] = ACTIONS(5), [sym_block_comment] = ACTIONS(7), }, - [2] = { - [sym__expr] = STATE(69), - [sym_list] = STATE(100), - [sym_ptr] = STATE(100), - [sym__tc_expr] = STATE(18), - [sym_tc_infix] = STATE(17), - [sym_int] = STATE(7), - [sym_string] = STATE(10), - [sym_reg] = STATE(11), - [sym_ident] = STATE(10), - [sym_line_comment] = STATE(2), - [aux_sym_instruction_repeat2] = STATE(20), - [ts_builtin_sym_end] = ACTIONS(21), - [anon_sym_LF] = ACTIONS(21), - [anon_sym_COLON] = ACTIONS(23), - [anon_sym_LPAREN] = ACTIONS(25), - [anon_sym_LBRACE] = ACTIONS(27), - [anon_sym_byte] = ACTIONS(29), - [anon_sym_word] = ACTIONS(29), - [anon_sym_dword] = ACTIONS(29), - [anon_sym_qword] = ACTIONS(29), - [anon_sym_LBRACK] = ACTIONS(31), - [anon_sym_STAR] = ACTIONS(33), - [anon_sym_POUND] = ACTIONS(35), - [aux_sym_int_token2] = ACTIONS(37), - [sym_float] = ACTIONS(39), - [aux_sym_string_token1] = ACTIONS(41), - [aux_sym_string_token2] = ACTIONS(41), - [sym_word] = ACTIONS(43), - [sym__reg] = ACTIONS(43), - [sym_address] = ACTIONS(43), - [sym_meta_ident] = ACTIONS(45), - [sym__ident] = ACTIONS(45), - [aux_sym_line_comment_token2] = ACTIONS(5), - [sym_block_comment] = ACTIONS(7), - }, }; static const uint16_t ts_small_parse_table[] = { - [0] = 19, + [0] = 25, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, + ACTIONS(23), 1, + anon_sym_COLON, ACTIONS(25), 1, anon_sym_LPAREN, ACTIONS(27), 1, @@ -2162,30 +2768,104 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, ACTIONS(33), 1, anon_sym_STAR, + ACTIONS(35), 1, + anon_sym_POUND, ACTIONS(39), 1, sym_float, - ACTIONS(49), 1, - anon_sym_POUND, - ACTIONS(51), 1, + ACTIONS(47), 1, + sym_prefix_operator, + STATE(2), 1, + sym_line_comment, + STATE(9), 1, + sym_int, + STATE(16), 1, + sym_reg, + STATE(17), 1, + sym__tc_expr, + STATE(18), 1, + sym_tc_infix, + STATE(24), 1, + aux_sym_instruction_repeat2, + STATE(109), 1, + sym__expr, + ACTIONS(21), 2, + ts_builtin_sym_end, + anon_sym_LF, + ACTIONS(37), 2, + aux_sym_int_token1, aux_sym_int_token2, + ACTIONS(41), 2, + aux_sym_string_token1, + aux_sym_string_token2, + ACTIONS(45), 2, + sym_meta_ident, + sym__ident, + STATE(13), 2, + sym_string, + sym_ident, + STATE(100), 2, + sym_list, + sym_ptr, + ACTIONS(43), 3, + sym_word, + sym__reg, + sym_address, + ACTIONS(29), 4, + anon_sym_byte, + anon_sym_word, + anon_sym_dword, + anon_sym_qword, + [87] = 24, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(25), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACE, + ACTIONS(31), 1, + anon_sym_LBRACK, + ACTIONS(33), 1, + anon_sym_STAR, + ACTIONS(51), 1, + anon_sym_COLON, + ACTIONS(53), 1, + anon_sym_POUND, + ACTIONS(57), 1, + sym_float, + ACTIONS(65), 1, + sym_prefix_operator, STATE(3), 1, sym_line_comment, - STATE(40), 1, + STATE(44), 1, + sym_ident, + STATE(45), 1, sym_reg, - STATE(78), 1, + STATE(64), 1, sym_int, - STATE(91), 1, + STATE(75), 1, + sym_string, + STATE(135), 1, + sym_op_expr, + STATE(153), 1, sym__expr, - ACTIONS(47), 2, + ACTIONS(49), 2, ts_builtin_sym_end, anon_sym_LF, - ACTIONS(53), 2, + ACTIONS(55), 2, + aux_sym_int_token1, + aux_sym_int_token2, + ACTIONS(59), 2, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(57), 2, + ACTIONS(63), 2, sym_meta_ident, sym__ident, - ACTIONS(55), 3, + STATE(100), 2, + sym_list, + sym_ptr, + ACTIONS(61), 3, sym_word, sym__reg, sym_address, @@ -2194,12 +2874,64 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_word, anon_sym_dword, anon_sym_qword, - STATE(100), 4, + [170] = 23, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(25), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACE, + ACTIONS(31), 1, + anon_sym_LBRACK, + ACTIONS(33), 1, + anon_sym_STAR, + ACTIONS(53), 1, + anon_sym_POUND, + ACTIONS(57), 1, + sym_float, + ACTIONS(65), 1, + sym_prefix_operator, + STATE(4), 1, + sym_line_comment, + STATE(44), 1, + sym_ident, + STATE(45), 1, + sym_reg, + STATE(64), 1, + sym_int, + STATE(75), 1, + sym_string, + STATE(135), 1, + sym_op_expr, + STATE(153), 1, + sym__expr, + ACTIONS(49), 2, + ts_builtin_sym_end, + anon_sym_LF, + ACTIONS(55), 2, + aux_sym_int_token1, + aux_sym_int_token2, + ACTIONS(59), 2, + aux_sym_string_token1, + aux_sym_string_token2, + ACTIONS(63), 2, + sym_meta_ident, + sym__ident, + STATE(100), 2, sym_list, sym_ptr, - sym_string, - sym_ident, - [69] = 19, + ACTIONS(61), 3, + sym_word, + sym__reg, + sym_address, + ACTIONS(29), 4, + anon_sym_byte, + anon_sym_word, + anon_sym_dword, + anon_sym_qword, + [250] = 20, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, @@ -2214,28 +2946,31 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_STAR, ACTIONS(39), 1, sym_float, - ACTIONS(49), 1, + ACTIONS(53), 1, anon_sym_POUND, - ACTIONS(51), 1, - aux_sym_int_token2, - STATE(4), 1, + ACTIONS(65), 1, + sym_prefix_operator, + STATE(5), 1, sym_line_comment, - STATE(40), 1, + STATE(45), 1, sym_reg, - STATE(78), 1, + STATE(69), 1, sym_int, - STATE(91), 1, + STATE(121), 1, sym__expr, - ACTIONS(53), 2, + ACTIONS(55), 2, + aux_sym_int_token1, + aux_sym_int_token2, + ACTIONS(59), 2, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(57), 2, + ACTIONS(63), 2, sym_meta_ident, sym__ident, - ACTIONS(59), 2, + ACTIONS(67), 2, ts_builtin_sym_end, anon_sym_LF, - ACTIONS(55), 3, + ACTIONS(61), 3, sym_word, sym__reg, sym_address, @@ -2249,7 +2984,7 @@ static const uint16_t ts_small_parse_table[] = { sym_ptr, sym_string, sym_ident, - [138] = 18, + [323] = 20, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, @@ -2264,25 +2999,31 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_STAR, ACTIONS(39), 1, sym_float, - ACTIONS(49), 1, + ACTIONS(53), 1, anon_sym_POUND, - ACTIONS(51), 1, - aux_sym_int_token2, - STATE(5), 1, + ACTIONS(65), 1, + sym_prefix_operator, + STATE(6), 1, sym_line_comment, - STATE(40), 1, + STATE(45), 1, sym_reg, - STATE(78), 1, + STATE(69), 1, sym_int, - STATE(91), 1, + STATE(121), 1, sym__expr, - ACTIONS(53), 2, + ACTIONS(55), 2, + aux_sym_int_token1, + aux_sym_int_token2, + ACTIONS(59), 2, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(57), 2, + ACTIONS(63), 2, sym_meta_ident, sym__ident, - ACTIONS(55), 3, + ACTIONS(69), 2, + ts_builtin_sym_end, + anon_sym_LF, + ACTIONS(61), 3, sym_word, sym__reg, sym_address, @@ -2296,51 +3037,124 @@ static const uint16_t ts_small_parse_table[] = { sym_ptr, sym_string, sym_ident, - [203] = 5, + [396] = 20, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(6), 1, + ACTIONS(25), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACE, + ACTIONS(31), 1, + anon_sym_LBRACK, + ACTIONS(33), 1, + anon_sym_STAR, + ACTIONS(39), 1, + sym_float, + ACTIONS(53), 1, + anon_sym_POUND, + ACTIONS(65), 1, + sym_prefix_operator, + STATE(7), 1, sym_line_comment, - ACTIONS(63), 9, - anon_sym_DASH, - anon_sym_SLASH, - anon_sym_PERCENT, + STATE(69), 1, + sym_int, + STATE(124), 1, + sym__expr, + STATE(129), 1, + sym_reg, + STATE(139), 1, + sym_op_expr, + ACTIONS(55), 2, + aux_sym_int_token1, aux_sym_int_token2, + ACTIONS(59), 2, + aux_sym_string_token1, + aux_sym_string_token2, + ACTIONS(73), 2, + sym_meta_ident, + sym__ident, + ACTIONS(71), 3, sym_word, sym__reg, sym_address, - sym_meta_ident, - sym__ident, - ACTIONS(61), 12, - ts_builtin_sym_end, - anon_sym_LF, - anon_sym_COMMA, + ACTIONS(29), 4, + anon_sym_byte, + anon_sym_word, + anon_sym_dword, + anon_sym_qword, + STATE(100), 4, + sym_list, + sym_ptr, + sym_string, + sym_ident, + [468] = 19, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(25), 1, anon_sym_LPAREN, - anon_sym_PLUS, + ACTIONS(27), 1, + anon_sym_LBRACE, + ACTIONS(31), 1, + anon_sym_LBRACK, + ACTIONS(33), 1, anon_sym_STAR, - anon_sym_PIPE, - anon_sym_CARET, - anon_sym_AMP, + ACTIONS(39), 1, + sym_float, + ACTIONS(53), 1, anon_sym_POUND, + ACTIONS(65), 1, + sym_prefix_operator, + STATE(8), 1, + sym_line_comment, + STATE(45), 1, + sym_reg, + STATE(69), 1, + sym_int, + STATE(121), 1, + sym__expr, + ACTIONS(55), 2, + aux_sym_int_token1, + aux_sym_int_token2, + ACTIONS(59), 2, aux_sym_string_token1, aux_sym_string_token2, - [238] = 8, + ACTIONS(63), 2, + sym_meta_ident, + sym__ident, + ACTIONS(61), 3, + sym_word, + sym__reg, + sym_address, + ACTIONS(29), 4, + anon_sym_byte, + anon_sym_word, + anon_sym_dword, + anon_sym_qword, + STATE(100), 4, + sym_list, + sym_ptr, + sym_string, + sym_ident, + [537] = 8, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(68), 1, + ACTIONS(78), 1, anon_sym_COMMA, - ACTIONS(70), 1, + ACTIONS(80), 1, anon_sym_LPAREN, - STATE(7), 1, + STATE(9), 1, sym_line_comment, - ACTIONS(65), 2, + ACTIONS(75), 2, ts_builtin_sym_end, anon_sym_LF, - ACTIONS(74), 8, + ACTIONS(82), 9, + anon_sym_DASH, anon_sym_PLUS, anon_sym_STAR, anon_sym_PIPE, @@ -2349,38 +3163,41 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(72), 9, - anon_sym_DASH, + ACTIONS(84), 10, anon_sym_SLASH, anon_sym_PERCENT, + aux_sym_int_token1, aux_sym_int_token2, sym_word, sym__reg, sym_address, sym_meta_ident, sym__ident, - [279] = 5, + sym_prefix_operator, + [580] = 5, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(8), 1, + STATE(10), 1, sym_line_comment, - ACTIONS(78), 9, - anon_sym_DASH, + ACTIONS(88), 10, anon_sym_SLASH, anon_sym_PERCENT, + aux_sym_int_token1, aux_sym_int_token2, sym_word, sym__reg, sym_address, sym_meta_ident, sym__ident, - ACTIONS(76), 12, + sym_prefix_operator, + ACTIONS(86), 13, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, anon_sym_LPAREN, + anon_sym_DASH, anon_sym_PLUS, anon_sym_STAR, anon_sym_PIPE, @@ -2389,27 +3206,30 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, aux_sym_string_token1, aux_sym_string_token2, - [314] = 5, + [617] = 5, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(9), 1, + STATE(11), 1, sym_line_comment, - ACTIONS(82), 9, - anon_sym_DASH, + ACTIONS(92), 10, anon_sym_SLASH, anon_sym_PERCENT, + aux_sym_int_token1, aux_sym_int_token2, sym_word, sym__reg, sym_address, sym_meta_ident, sym__ident, - ACTIONS(80), 11, + sym_prefix_operator, + ACTIONS(90), 13, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_DASH, anon_sym_PLUS, anon_sym_STAR, anon_sym_PIPE, @@ -2418,19 +3238,30 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, aux_sym_string_token1, aux_sym_string_token2, - [348] = 7, + [654] = 5, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(68), 1, - anon_sym_COMMA, - STATE(10), 1, + STATE(12), 1, sym_line_comment, - ACTIONS(65), 2, + ACTIONS(96), 10, + anon_sym_SLASH, + anon_sym_PERCENT, + aux_sym_int_token1, + aux_sym_int_token2, + sym_word, + sym__reg, + sym_address, + sym_meta_ident, + sym__ident, + sym_prefix_operator, + ACTIONS(94), 13, ts_builtin_sym_end, anon_sym_LF, - ACTIONS(74), 8, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_DASH, anon_sym_PLUS, anon_sym_STAR, anon_sym_PIPE, @@ -2439,37 +3270,62 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(72), 9, + [691] = 7, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(78), 1, + anon_sym_COMMA, + STATE(13), 1, + sym_line_comment, + ACTIONS(75), 2, + ts_builtin_sym_end, + anon_sym_LF, + ACTIONS(82), 9, anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_POUND, + aux_sym_string_token1, + aux_sym_string_token2, + ACTIONS(84), 10, anon_sym_SLASH, anon_sym_PERCENT, + aux_sym_int_token1, aux_sym_int_token2, sym_word, sym__reg, sym_address, sym_meta_ident, sym__ident, - [386] = 5, + sym_prefix_operator, + [731] = 5, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(11), 1, + STATE(14), 1, sym_line_comment, - ACTIONS(86), 9, - anon_sym_DASH, + ACTIONS(100), 10, anon_sym_SLASH, anon_sym_PERCENT, + aux_sym_int_token1, aux_sym_int_token2, sym_word, sym__reg, sym_address, sym_meta_ident, sym__ident, - ACTIONS(84), 11, + sym_prefix_operator, + ACTIONS(98), 12, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, + anon_sym_DASH, anon_sym_PLUS, anon_sym_STAR, anon_sym_PIPE, @@ -2478,27 +3334,29 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, aux_sym_string_token1, aux_sym_string_token2, - [420] = 5, + [767] = 5, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(12), 1, + STATE(15), 1, sym_line_comment, - ACTIONS(90), 9, - anon_sym_DASH, + ACTIONS(104), 10, anon_sym_SLASH, anon_sym_PERCENT, + aux_sym_int_token1, aux_sym_int_token2, sym_word, sym__reg, sym_address, sym_meta_ident, sym__ident, - ACTIONS(88), 11, + sym_prefix_operator, + ACTIONS(102), 12, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, + anon_sym_DASH, anon_sym_PLUS, anon_sym_STAR, anon_sym_PIPE, @@ -2507,90 +3365,95 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, aux_sym_string_token1, aux_sym_string_token2, - [454] = 8, + [803] = 5, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(96), 1, - anon_sym_PIPE, - ACTIONS(98), 1, - anon_sym_CARET, - ACTIONS(100), 1, - anon_sym_AMP, - STATE(13), 1, + STATE(16), 1, sym_line_comment, - ACTIONS(92), 7, - ts_builtin_sym_end, - anon_sym_LF, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_POUND, - aux_sym_string_token1, - aux_sym_string_token2, - ACTIONS(94), 9, - anon_sym_DASH, + ACTIONS(108), 10, anon_sym_SLASH, anon_sym_PERCENT, + aux_sym_int_token1, aux_sym_int_token2, sym_word, sym__reg, sym_address, sym_meta_ident, sym__ident, - [493] = 10, + sym_prefix_operator, + ACTIONS(106), 12, + ts_builtin_sym_end, + anon_sym_LF, + anon_sym_COMMA, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_POUND, + aux_sym_string_token1, + aux_sym_string_token2, + [839] = 11, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(96), 1, + ACTIONS(114), 1, + anon_sym_STAR, + ACTIONS(118), 1, anon_sym_PIPE, - ACTIONS(98), 1, + ACTIONS(120), 1, anon_sym_CARET, - ACTIONS(100), 1, + ACTIONS(122), 1, anon_sym_AMP, - ACTIONS(102), 1, - anon_sym_STAR, - STATE(14), 1, + STATE(17), 1, sym_line_comment, - ACTIONS(104), 2, + ACTIONS(112), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(116), 2, anon_sym_SLASH, anon_sym_PERCENT, - ACTIONS(92), 6, + ACTIONS(110), 5, ts_builtin_sym_end, anon_sym_LF, - anon_sym_PLUS, anon_sym_POUND, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(94), 7, - anon_sym_DASH, + ACTIONS(124), 8, + aux_sym_int_token1, aux_sym_int_token2, sym_word, sym__reg, sym_address, sym_meta_ident, sym__ident, - [536] = 5, + sym_prefix_operator, + [886] = 5, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(15), 1, + STATE(18), 1, sym_line_comment, - ACTIONS(94), 9, - anon_sym_DASH, + ACTIONS(84), 10, anon_sym_SLASH, anon_sym_PERCENT, + aux_sym_int_token1, aux_sym_int_token2, sym_word, sym__reg, sym_address, sym_meta_ident, sym__ident, - ACTIONS(92), 10, + sym_prefix_operator, + ACTIONS(82), 11, ts_builtin_sym_end, anon_sym_LF, + anon_sym_DASH, anon_sym_PLUS, anon_sym_STAR, anon_sym_PIPE, @@ -2599,111 +3462,119 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, aux_sym_string_token1, aux_sym_string_token2, - [569] = 7, + [921] = 8, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(98), 1, + ACTIONS(118), 1, + anon_sym_PIPE, + ACTIONS(120), 1, anon_sym_CARET, - ACTIONS(100), 1, + ACTIONS(122), 1, anon_sym_AMP, - STATE(16), 1, + STATE(19), 1, sym_line_comment, - ACTIONS(92), 8, + ACTIONS(126), 8, ts_builtin_sym_end, anon_sym_LF, + anon_sym_DASH, anon_sym_PLUS, anon_sym_STAR, - anon_sym_PIPE, anon_sym_POUND, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(94), 9, - anon_sym_DASH, + ACTIONS(128), 10, anon_sym_SLASH, anon_sym_PERCENT, + aux_sym_int_token1, aux_sym_int_token2, sym_word, sym__reg, sym_address, sym_meta_ident, sym__ident, - [606] = 5, + sym_prefix_operator, + [962] = 10, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(17), 1, + ACTIONS(114), 1, + anon_sym_STAR, + ACTIONS(118), 1, + anon_sym_PIPE, + ACTIONS(120), 1, + anon_sym_CARET, + ACTIONS(122), 1, + anon_sym_AMP, + STATE(20), 1, sym_line_comment, - ACTIONS(72), 9, - anon_sym_DASH, + ACTIONS(116), 2, anon_sym_SLASH, anon_sym_PERCENT, - aux_sym_int_token2, - sym_word, - sym__reg, - sym_address, - sym_meta_ident, - sym__ident, - ACTIONS(74), 10, + ACTIONS(126), 7, ts_builtin_sym_end, anon_sym_LF, + anon_sym_DASH, anon_sym_PLUS, - anon_sym_STAR, - anon_sym_PIPE, - anon_sym_CARET, - anon_sym_AMP, anon_sym_POUND, aux_sym_string_token1, aux_sym_string_token2, - [639] = 12, + ACTIONS(128), 8, + aux_sym_int_token1, + aux_sym_int_token2, + sym_word, + sym__reg, + sym_address, + sym_meta_ident, + sym__ident, + sym_prefix_operator, + [1007] = 7, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(96), 1, - anon_sym_PIPE, - ACTIONS(98), 1, + ACTIONS(120), 1, anon_sym_CARET, - ACTIONS(100), 1, + ACTIONS(122), 1, anon_sym_AMP, - ACTIONS(102), 1, - anon_sym_STAR, - ACTIONS(108), 1, - anon_sym_DASH, - ACTIONS(110), 1, - anon_sym_PLUS, - STATE(18), 1, + STATE(21), 1, sym_line_comment, - ACTIONS(104), 2, - anon_sym_SLASH, - anon_sym_PERCENT, - ACTIONS(106), 5, + ACTIONS(126), 9, ts_builtin_sym_end, anon_sym_LF, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_PIPE, anon_sym_POUND, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(112), 6, + ACTIONS(128), 10, + anon_sym_SLASH, + anon_sym_PERCENT, + aux_sym_int_token1, aux_sym_int_token2, sym_word, sym__reg, sym_address, sym_meta_ident, sym__ident, - [686] = 6, + sym_prefix_operator, + [1046] = 6, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(100), 1, + ACTIONS(122), 1, anon_sym_AMP, - STATE(19), 1, + STATE(22), 1, sym_line_comment, - ACTIONS(92), 9, + ACTIONS(126), 10, ts_builtin_sym_end, anon_sym_LF, + anon_sym_DASH, anon_sym_PLUS, anon_sym_STAR, anon_sym_PIPE, @@ -2711,260 +3582,272 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(94), 9, - anon_sym_DASH, + ACTIONS(128), 10, + anon_sym_SLASH, + anon_sym_PERCENT, + aux_sym_int_token1, + aux_sym_int_token2, + sym_word, + sym__reg, + sym_address, + sym_meta_ident, + sym__ident, + sym_prefix_operator, + [1083] = 5, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + STATE(23), 1, + sym_line_comment, + ACTIONS(128), 10, anon_sym_SLASH, anon_sym_PERCENT, + aux_sym_int_token1, aux_sym_int_token2, sym_word, sym__reg, sym_address, sym_meta_ident, sym__ident, - [721] = 13, + sym_prefix_operator, + ACTIONS(126), 11, + ts_builtin_sym_end, + anon_sym_LF, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_POUND, + aux_sym_string_token1, + aux_sym_string_token2, + [1118] = 14, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, ACTIONS(35), 1, anon_sym_POUND, - ACTIONS(37), 1, - aux_sym_int_token2, - STATE(11), 1, + ACTIONS(132), 1, + sym_prefix_operator, + STATE(16), 1, sym_reg, - STATE(18), 1, + STATE(17), 1, sym__tc_expr, - STATE(20), 1, + STATE(24), 1, sym_line_comment, - STATE(21), 1, + STATE(25), 1, aux_sym_instruction_repeat2, + ACTIONS(37), 2, + aux_sym_int_token1, + aux_sym_int_token2, ACTIONS(41), 2, aux_sym_string_token1, aux_sym_string_token2, ACTIONS(45), 2, sym_meta_ident, sym__ident, - ACTIONS(114), 2, + ACTIONS(130), 2, ts_builtin_sym_end, anon_sym_LF, ACTIONS(43), 3, sym_word, sym__reg, sym_address, - STATE(17), 4, + STATE(18), 4, sym_tc_infix, sym_int, sym_string, sym_ident, - [769] = 12, + [1170] = 13, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(118), 1, + ACTIONS(136), 1, anon_sym_POUND, - ACTIONS(121), 1, - aux_sym_int_token2, - STATE(11), 1, + ACTIONS(151), 1, + sym_prefix_operator, + STATE(16), 1, sym_reg, - STATE(18), 1, + STATE(17), 1, sym__tc_expr, - ACTIONS(116), 2, + ACTIONS(134), 2, ts_builtin_sym_end, anon_sym_LF, - ACTIONS(124), 2, + ACTIONS(139), 2, + aux_sym_int_token1, + aux_sym_int_token2, + ACTIONS(142), 2, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(130), 2, + ACTIONS(148), 2, sym_meta_ident, sym__ident, - STATE(21), 2, + STATE(25), 2, sym_line_comment, aux_sym_instruction_repeat2, - ACTIONS(127), 3, + ACTIONS(145), 3, sym_word, sym__reg, sym_address, - STATE(17), 4, + STATE(18), 4, sym_tc_infix, sym_int, sym_string, sym_ident, - [815] = 15, + [1220] = 12, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(49), 1, + ACTIONS(35), 1, anon_sym_POUND, - ACTIONS(51), 1, - aux_sym_int_token2, - ACTIONS(135), 1, - anon_sym_COLON, - ACTIONS(137), 1, - sym_float, - STATE(22), 1, - sym_line_comment, - STATE(40), 1, + ACTIONS(132), 1, + sym_prefix_operator, + STATE(16), 1, sym_reg, - STATE(65), 1, - sym_string, - STATE(74), 1, - sym_int, - STATE(106), 1, - sym_ident, - ACTIONS(53), 2, + STATE(21), 1, + sym__tc_expr, + STATE(26), 1, + sym_line_comment, + ACTIONS(37), 2, + aux_sym_int_token1, + aux_sym_int_token2, + ACTIONS(41), 2, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(57), 2, + ACTIONS(45), 2, sym_meta_ident, sym__ident, - ACTIONS(133), 2, - ts_builtin_sym_end, - anon_sym_LF, - ACTIONS(55), 3, + ACTIONS(43), 3, sym_word, sym__reg, sym_address, - [866] = 14, + STATE(18), 4, + sym_tc_infix, + sym_int, + sym_string, + sym_ident, + [1265] = 12, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(49), 1, + ACTIONS(35), 1, anon_sym_POUND, - ACTIONS(51), 1, - aux_sym_int_token2, - ACTIONS(137), 1, - sym_float, - STATE(23), 1, - sym_line_comment, - STATE(40), 1, + ACTIONS(132), 1, + sym_prefix_operator, + STATE(16), 1, sym_reg, - STATE(65), 1, - sym_string, - STATE(74), 1, - sym_int, - STATE(106), 1, - sym_ident, - ACTIONS(53), 2, - aux_sym_string_token1, - aux_sym_string_token2, - ACTIONS(57), 2, - sym_meta_ident, - sym__ident, - ACTIONS(133), 2, - ts_builtin_sym_end, - anon_sym_LF, - ACTIONS(55), 3, - sym_word, - sym__reg, - sym_address, - [914] = 11, - ACTIONS(5), 1, - aux_sym_line_comment_token2, - ACTIONS(7), 1, - sym_block_comment, - ACTIONS(49), 1, - anon_sym_POUND, - ACTIONS(51), 1, - aux_sym_int_token2, - STATE(24), 1, - sym_line_comment, - STATE(40), 1, - sym_reg, - STATE(49), 1, + STATE(19), 1, sym__tc_expr, - ACTIONS(53), 2, + STATE(27), 1, + sym_line_comment, + ACTIONS(37), 2, + aux_sym_int_token1, + aux_sym_int_token2, + ACTIONS(41), 2, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(57), 2, + ACTIONS(45), 2, sym_meta_ident, sym__ident, - ACTIONS(55), 3, + ACTIONS(43), 3, sym_word, sym__reg, sym_address, - STATE(43), 4, + STATE(18), 4, sym_tc_infix, sym_int, sym_string, sym_ident, - [955] = 11, + [1310] = 12, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(35), 1, + ACTIONS(154), 1, anon_sym_POUND, - ACTIONS(37), 1, - aux_sym_int_token2, - STATE(11), 1, + ACTIONS(164), 1, + sym_prefix_operator, + STATE(28), 1, + sym_line_comment, + STATE(42), 1, sym_reg, - STATE(14), 1, + STATE(55), 1, sym__tc_expr, - STATE(25), 1, - sym_line_comment, - ACTIONS(41), 2, + ACTIONS(156), 2, + aux_sym_int_token1, + aux_sym_int_token2, + ACTIONS(158), 2, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(45), 2, + ACTIONS(162), 2, sym_meta_ident, sym__ident, - ACTIONS(43), 3, + ACTIONS(160), 3, sym_word, sym__reg, sym_address, - STATE(17), 4, + STATE(51), 4, sym_tc_infix, sym_int, sym_string, sym_ident, - [996] = 11, + [1355] = 12, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(49), 1, + ACTIONS(35), 1, anon_sym_POUND, - ACTIONS(51), 1, - aux_sym_int_token2, - STATE(26), 1, - sym_line_comment, - STATE(40), 1, + ACTIONS(132), 1, + sym_prefix_operator, + STATE(16), 1, sym_reg, - STATE(44), 1, + STATE(22), 1, sym__tc_expr, - ACTIONS(53), 2, + STATE(29), 1, + sym_line_comment, + ACTIONS(37), 2, + aux_sym_int_token1, + aux_sym_int_token2, + ACTIONS(41), 2, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(57), 2, + ACTIONS(45), 2, sym_meta_ident, sym__ident, - ACTIONS(55), 3, + ACTIONS(43), 3, sym_word, sym__reg, sym_address, - STATE(43), 4, + STATE(18), 4, sym_tc_infix, sym_int, sym_string, sym_ident, - [1037] = 11, + [1400] = 12, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, ACTIONS(35), 1, anon_sym_POUND, - ACTIONS(37), 1, - aux_sym_int_token2, - STATE(11), 1, + ACTIONS(132), 1, + sym_prefix_operator, + STATE(16), 1, sym_reg, - STATE(13), 1, + STATE(23), 1, sym__tc_expr, - STATE(27), 1, + STATE(30), 1, sym_line_comment, + ACTIONS(37), 2, + aux_sym_int_token1, + aux_sym_int_token2, ACTIONS(41), 2, aux_sym_string_token1, aux_sym_string_token2, @@ -2975,237 +3858,258 @@ static const uint16_t ts_small_parse_table[] = { sym_word, sym__reg, sym_address, - STATE(17), 4, + STATE(18), 4, sym_tc_infix, sym_int, sym_string, sym_ident, - [1078] = 11, + [1445] = 13, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(35), 1, + ACTIONS(53), 1, anon_sym_POUND, - ACTIONS(37), 1, - aux_sym_int_token2, - STATE(11), 1, - sym_reg, - STATE(16), 1, - sym__tc_expr, - STATE(28), 1, + ACTIONS(65), 1, + sym_prefix_operator, + ACTIONS(166), 1, + sym_float, + STATE(31), 1, sym_line_comment, - ACTIONS(41), 2, + STATE(45), 1, + sym_reg, + STATE(122), 1, + sym__macro_arg_value, + ACTIONS(55), 2, + aux_sym_int_token1, + aux_sym_int_token2, + ACTIONS(59), 2, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(45), 2, + ACTIONS(63), 2, sym_meta_ident, sym__ident, - ACTIONS(43), 3, + ACTIONS(61), 3, sym_word, sym__reg, sym_address, - STATE(17), 4, - sym_tc_infix, + STATE(118), 3, sym_int, sym_string, sym_ident, - [1119] = 11, + [1492] = 12, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(35), 1, + ACTIONS(154), 1, anon_sym_POUND, - ACTIONS(37), 1, - aux_sym_int_token2, - STATE(11), 1, + ACTIONS(164), 1, + sym_prefix_operator, + STATE(32), 1, + sym_line_comment, + STATE(42), 1, sym_reg, - STATE(19), 1, + STATE(56), 1, sym__tc_expr, - STATE(29), 1, - sym_line_comment, - ACTIONS(41), 2, + ACTIONS(156), 2, + aux_sym_int_token1, + aux_sym_int_token2, + ACTIONS(158), 2, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(45), 2, + ACTIONS(162), 2, sym_meta_ident, sym__ident, - ACTIONS(43), 3, + ACTIONS(160), 3, sym_word, sym__reg, sym_address, - STATE(17), 4, + STATE(51), 4, sym_tc_infix, sym_int, sym_string, sym_ident, - [1160] = 11, + [1537] = 12, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(49), 1, + ACTIONS(154), 1, anon_sym_POUND, - ACTIONS(51), 1, - aux_sym_int_token2, - STATE(30), 1, + ACTIONS(164), 1, + sym_prefix_operator, + STATE(33), 1, sym_line_comment, - STATE(40), 1, + STATE(42), 1, sym_reg, - STATE(48), 1, + STATE(53), 1, sym__tc_expr, - ACTIONS(53), 2, + ACTIONS(156), 2, + aux_sym_int_token1, + aux_sym_int_token2, + ACTIONS(158), 2, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(57), 2, + ACTIONS(162), 2, sym_meta_ident, sym__ident, - ACTIONS(55), 3, + ACTIONS(160), 3, sym_word, sym__reg, sym_address, - STATE(43), 4, + STATE(51), 4, sym_tc_infix, sym_int, sym_string, sym_ident, - [1201] = 11, + [1582] = 12, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(35), 1, + ACTIONS(154), 1, anon_sym_POUND, - ACTIONS(37), 1, - aux_sym_int_token2, - STATE(11), 1, + ACTIONS(164), 1, + sym_prefix_operator, + STATE(34), 1, + sym_line_comment, + STATE(42), 1, sym_reg, - STATE(15), 1, + STATE(52), 1, sym__tc_expr, - STATE(31), 1, - sym_line_comment, - ACTIONS(41), 2, + ACTIONS(156), 2, + aux_sym_int_token1, + aux_sym_int_token2, + ACTIONS(158), 2, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(45), 2, + ACTIONS(162), 2, sym_meta_ident, sym__ident, - ACTIONS(43), 3, + ACTIONS(160), 3, sym_word, sym__reg, sym_address, - STATE(17), 4, + STATE(51), 4, sym_tc_infix, sym_int, sym_string, sym_ident, - [1242] = 11, + [1627] = 12, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(49), 1, + ACTIONS(154), 1, anon_sym_POUND, - ACTIONS(51), 1, - aux_sym_int_token2, - STATE(32), 1, + ACTIONS(164), 1, + sym_prefix_operator, + STATE(35), 1, sym_line_comment, - STATE(40), 1, + STATE(42), 1, sym_reg, - STATE(46), 1, + STATE(50), 1, sym__tc_expr, - ACTIONS(53), 2, + ACTIONS(156), 2, + aux_sym_int_token1, + aux_sym_int_token2, + ACTIONS(158), 2, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(57), 2, + ACTIONS(162), 2, sym_meta_ident, sym__ident, - ACTIONS(55), 3, + ACTIONS(160), 3, sym_word, sym__reg, sym_address, - STATE(43), 4, + STATE(51), 4, sym_tc_infix, sym_int, sym_string, sym_ident, - [1283] = 11, + [1672] = 12, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(49), 1, + ACTIONS(35), 1, anon_sym_POUND, - ACTIONS(51), 1, - aux_sym_int_token2, - STATE(33), 1, - sym_line_comment, - STATE(40), 1, + ACTIONS(132), 1, + sym_prefix_operator, + STATE(16), 1, sym_reg, - STATE(47), 1, + STATE(20), 1, sym__tc_expr, - ACTIONS(53), 2, + STATE(36), 1, + sym_line_comment, + ACTIONS(37), 2, + aux_sym_int_token1, + aux_sym_int_token2, + ACTIONS(41), 2, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(57), 2, + ACTIONS(45), 2, sym_meta_ident, sym__ident, - ACTIONS(55), 3, + ACTIONS(43), 3, sym_word, sym__reg, sym_address, - STATE(43), 4, + STATE(18), 4, sym_tc_infix, sym_int, sym_string, sym_ident, - [1324] = 11, + [1717] = 12, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(49), 1, + ACTIONS(154), 1, anon_sym_POUND, - ACTIONS(51), 1, - aux_sym_int_token2, - STATE(34), 1, + ACTIONS(164), 1, + sym_prefix_operator, + STATE(37), 1, sym_line_comment, - STATE(40), 1, + STATE(42), 1, sym_reg, - STATE(45), 1, + STATE(54), 1, sym__tc_expr, - ACTIONS(53), 2, + ACTIONS(156), 2, + aux_sym_int_token1, + aux_sym_int_token2, + ACTIONS(158), 2, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(57), 2, + ACTIONS(162), 2, sym_meta_ident, sym__ident, - ACTIONS(55), 3, + ACTIONS(160), 3, sym_word, sym__reg, sym_address, - STATE(43), 4, + STATE(51), 4, sym_tc_infix, sym_int, sym_string, sym_ident, - [1365] = 6, + [1762] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(82), 1, + ACTIONS(104), 1, anon_sym_SLASH, - STATE(35), 1, + STATE(38), 1, sym_line_comment, - ACTIONS(80), 13, + ACTIONS(102), 13, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - anon_sym_RPAREN, anon_sym_DASH, anon_sym_RBRACE, anon_sym_PLUS, @@ -3215,31 +4119,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_CARET, anon_sym_AMP, - [1396] = 6, - ACTIONS(3), 1, - anon_sym_POUND, - ACTIONS(5), 1, - aux_sym_line_comment_token2, - ACTIONS(7), 1, - sym_block_comment, - ACTIONS(78), 1, - anon_sym_SLASH, - STATE(36), 1, - sym_line_comment, - ACTIONS(76), 12, - ts_builtin_sym_end, - anon_sym_LF, - anon_sym_COMMA, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_RBRACK, - anon_sym_STAR, - anon_sym_PERCENT, - anon_sym_PIPE, - anon_sym_CARET, - anon_sym_AMP, - [1426] = 14, + anon_sym_EQ, + [1793] = 14, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -3256,22 +4137,22 @@ static const uint16_t ts_small_parse_table[] = { sym_meta_ident, ACTIONS(19), 1, sym__ident, - ACTIONS(139), 1, + ACTIONS(168), 1, ts_builtin_sym_end, - ACTIONS(141), 1, + ACTIONS(170), 1, anon_sym_LF, - STATE(37), 1, + STATE(39), 1, sym_line_comment, - STATE(52), 1, + STATE(60), 1, aux_sym_program_repeat1, - STATE(110), 1, + STATE(132), 1, sym__item, - STATE(114), 4, + STATE(133), 4, sym_meta, sym_label, sym_const, sym_instruction, - [1472] = 14, + [1839] = 14, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -3288,70 +4169,22 @@ static const uint16_t ts_small_parse_table[] = { sym_meta_ident, ACTIONS(19), 1, sym__ident, - ACTIONS(141), 1, + ACTIONS(170), 1, anon_sym_LF, - ACTIONS(143), 1, + ACTIONS(172), 1, ts_builtin_sym_end, - STATE(38), 1, + STATE(40), 1, sym_line_comment, - STATE(52), 1, + STATE(60), 1, aux_sym_program_repeat1, - STATE(110), 1, + STATE(132), 1, sym__item, - STATE(114), 4, + STATE(133), 4, sym_meta, sym_label, sym_const, sym_instruction, - [1518] = 6, - ACTIONS(3), 1, - anon_sym_POUND, - ACTIONS(5), 1, - aux_sym_line_comment_token2, - ACTIONS(7), 1, - sym_block_comment, - ACTIONS(63), 1, - anon_sym_SLASH, - STATE(39), 1, - sym_line_comment, - ACTIONS(61), 12, - ts_builtin_sym_end, - anon_sym_LF, - anon_sym_COMMA, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_RBRACK, - anon_sym_STAR, - anon_sym_PERCENT, - anon_sym_PIPE, - anon_sym_CARET, - anon_sym_AMP, - [1548] = 6, - ACTIONS(3), 1, - anon_sym_POUND, - ACTIONS(5), 1, - aux_sym_line_comment_token2, - ACTIONS(7), 1, - sym_block_comment, - ACTIONS(86), 1, - anon_sym_SLASH, - STATE(40), 1, - sym_line_comment, - ACTIONS(84), 12, - ts_builtin_sym_end, - anon_sym_LF, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_RBRACK, - anon_sym_STAR, - anon_sym_PERCENT, - anon_sym_PIPE, - anon_sym_CARET, - anon_sym_AMP, - [1578] = 13, + [1885] = 13, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -3368,31 +4201,31 @@ static const uint16_t ts_small_parse_table[] = { sym_meta_ident, ACTIONS(19), 1, sym__ident, - ACTIONS(141), 1, + ACTIONS(170), 1, anon_sym_LF, STATE(41), 1, sym_line_comment, - STATE(52), 1, + STATE(60), 1, aux_sym_program_repeat1, - STATE(110), 1, + STATE(132), 1, sym__item, - STATE(114), 4, + STATE(133), 4, sym_meta, sym_label, sym_const, sym_instruction, - [1621] = 6, + [1928] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(90), 1, + ACTIONS(108), 1, anon_sym_SLASH, STATE(42), 1, sym_line_comment, - ACTIONS(88), 10, + ACTIONS(106), 11, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, @@ -3403,18 +4236,143 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_CARET, anon_sym_AMP, - [1649] = 6, - ACTIONS(3), 1, - anon_sym_POUND, + anon_sym_EQ, + [1957] = 10, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(72), 1, - anon_sym_SLASH, - STATE(43), 1, + ACTIONS(53), 1, + anon_sym_POUND, + ACTIONS(174), 1, + sym_prefix_operator, + STATE(43), 1, + sym_line_comment, + STATE(45), 1, + sym_reg, + ACTIONS(55), 2, + aux_sym_int_token1, + aux_sym_int_token2, + ACTIONS(63), 2, + sym_meta_ident, + sym__ident, + STATE(164), 2, + sym_int, + sym_ident, + ACTIONS(61), 3, + sym_word, + sym__reg, + sym_address, + [1993] = 12, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(178), 1, + sym_address, + ACTIONS(180), 1, + sym_infix_operator, + STATE(42), 1, + sym_reg, + STATE(44), 1, + sym_line_comment, + STATE(89), 1, + sym_ident, + STATE(92), 1, + sym__macro_arg, + ACTIONS(160), 2, + sym_word, + sym__reg, + ACTIONS(162), 2, + sym_meta_ident, + sym__ident, + ACTIONS(176), 2, + ts_builtin_sym_end, + anon_sym_LF, + [2033] = 6, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + STATE(45), 1, + sym_line_comment, + ACTIONS(108), 5, + sym_word, + sym__reg, + sym_meta_ident, + sym__ident, + sym_infix_operator, + ACTIONS(106), 6, + ts_builtin_sym_end, + anon_sym_LF, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + sym_address, + [2061] = 10, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(53), 1, + anon_sym_POUND, + ACTIONS(174), 1, + sym_prefix_operator, + STATE(45), 1, + sym_reg, + STATE(46), 1, + sym_line_comment, + ACTIONS(55), 2, + aux_sym_int_token1, + aux_sym_int_token2, + ACTIONS(63), 2, + sym_meta_ident, + sym__ident, + STATE(148), 2, + sym_int, + sym_ident, + ACTIONS(61), 3, + sym_word, + sym__reg, + sym_address, + [2097] = 6, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + STATE(47), 1, + sym_line_comment, + ACTIONS(104), 5, + sym_word, + sym__reg, + sym_meta_ident, + sym__ident, + sym_infix_operator, + ACTIONS(102), 6, + ts_builtin_sym_end, + anon_sym_LF, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_RBRACK, + sym_address, + [2125] = 6, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(100), 1, + anon_sym_SLASH, + STATE(48), 1, sym_line_comment, - ACTIONS(74), 9, + ACTIONS(98), 9, ts_builtin_sym_end, anon_sym_LF, anon_sym_DASH, @@ -3424,20 +4382,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_CARET, anon_sym_AMP, - [1676] = 7, + [2152] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(94), 1, + ACTIONS(96), 1, anon_sym_SLASH, - ACTIONS(145), 1, - anon_sym_AMP, - STATE(44), 1, + STATE(49), 1, sym_line_comment, - ACTIONS(92), 8, + ACTIONS(94), 9, ts_builtin_sym_end, anon_sym_LF, anon_sym_DASH, @@ -3446,22 +4402,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PERCENT, anon_sym_PIPE, anon_sym_CARET, - [1705] = 8, + anon_sym_AMP, + [2179] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(94), 1, + ACTIONS(128), 1, anon_sym_SLASH, - ACTIONS(145), 1, - anon_sym_AMP, - ACTIONS(147), 1, - anon_sym_CARET, - STATE(45), 1, + STATE(50), 1, sym_line_comment, - ACTIONS(92), 7, + ACTIONS(126), 9, ts_builtin_sym_end, anon_sym_LF, anon_sym_DASH, @@ -3469,93 +4422,92 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_STAR, anon_sym_PERCENT, anon_sym_PIPE, - [1736] = 11, + anon_sym_CARET, + anon_sym_AMP, + [2206] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(145), 1, - anon_sym_AMP, - ACTIONS(147), 1, - anon_sym_CARET, - ACTIONS(155), 1, + ACTIONS(84), 1, anon_sym_SLASH, - ACTIONS(157), 1, - anon_sym_PIPE, - STATE(46), 1, + STATE(51), 1, sym_line_comment, - ACTIONS(149), 2, + ACTIONS(82), 9, ts_builtin_sym_end, anon_sym_LF, - ACTIONS(151), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(153), 2, anon_sym_STAR, anon_sym_PERCENT, - [1773] = 9, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + [2233] = 9, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(94), 1, + ACTIONS(128), 1, anon_sym_SLASH, - ACTIONS(145), 1, - anon_sym_AMP, - ACTIONS(147), 1, - anon_sym_CARET, - ACTIONS(157), 1, + ACTIONS(182), 1, anon_sym_PIPE, - STATE(47), 1, + ACTIONS(184), 1, + anon_sym_CARET, + ACTIONS(186), 1, + anon_sym_AMP, + STATE(52), 1, sym_line_comment, - ACTIONS(92), 6, + ACTIONS(126), 6, ts_builtin_sym_end, anon_sym_LF, anon_sym_DASH, anon_sym_PLUS, anon_sym_STAR, anon_sym_PERCENT, - [1806] = 10, + [2266] = 10, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(145), 1, - anon_sym_AMP, - ACTIONS(147), 1, + ACTIONS(182), 1, + anon_sym_PIPE, + ACTIONS(184), 1, anon_sym_CARET, - ACTIONS(155), 1, + ACTIONS(186), 1, + anon_sym_AMP, + ACTIONS(190), 1, anon_sym_SLASH, - ACTIONS(157), 1, - anon_sym_PIPE, - STATE(48), 1, + STATE(53), 1, sym_line_comment, - ACTIONS(153), 2, + ACTIONS(188), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(92), 4, + ACTIONS(126), 4, ts_builtin_sym_end, anon_sym_LF, anon_sym_DASH, anon_sym_PLUS, - [1841] = 6, + [2301] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(94), 1, + ACTIONS(128), 1, anon_sym_SLASH, - STATE(49), 1, + ACTIONS(186), 1, + anon_sym_AMP, + STATE(54), 1, sym_line_comment, - ACTIONS(92), 9, + ACTIONS(126), 8, ts_builtin_sym_end, anon_sym_LF, anon_sym_DASH, @@ -3564,1523 +4516,2026 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PERCENT, anon_sym_PIPE, anon_sym_CARET, - anon_sym_AMP, - [1868] = 9, + [2330] = 11, + ACTIONS(3), 1, + anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(49), 1, - anon_sym_POUND, - ACTIONS(51), 1, - aux_sym_int_token2, - STATE(40), 1, - sym_reg, - STATE(50), 1, + ACTIONS(182), 1, + anon_sym_PIPE, + ACTIONS(184), 1, + anon_sym_CARET, + ACTIONS(186), 1, + anon_sym_AMP, + ACTIONS(190), 1, + anon_sym_SLASH, + STATE(55), 1, sym_line_comment, - ACTIONS(57), 2, - sym_meta_ident, - sym__ident, - STATE(122), 2, - sym_int, - sym_ident, - ACTIONS(55), 3, - sym_word, - sym__reg, - sym_address, - [1900] = 9, + ACTIONS(188), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(192), 2, + ts_builtin_sym_end, + anon_sym_LF, + ACTIONS(194), 2, + anon_sym_DASH, + anon_sym_PLUS, + [2367] = 8, + ACTIONS(3), 1, + anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(49), 1, - anon_sym_POUND, - ACTIONS(51), 1, - aux_sym_int_token2, - STATE(40), 1, - sym_reg, - STATE(51), 1, + ACTIONS(128), 1, + anon_sym_SLASH, + ACTIONS(184), 1, + anon_sym_CARET, + ACTIONS(186), 1, + anon_sym_AMP, + STATE(56), 1, sym_line_comment, - ACTIONS(57), 2, - sym_meta_ident, - sym__ident, - STATE(117), 2, - sym_int, - sym_ident, - ACTIONS(55), 3, - sym_word, - sym__reg, - sym_address, - [1932] = 7, + ACTIONS(126), 7, + ts_builtin_sym_end, + anon_sym_LF, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_PIPE, + [2398] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(159), 1, + ACTIONS(92), 1, + anon_sym_SLASH, + STATE(57), 1, + sym_line_comment, + ACTIONS(90), 9, ts_builtin_sym_end, - ACTIONS(161), 1, anon_sym_LF, - STATE(52), 2, - sym_line_comment, - aux_sym_program_repeat1, - ACTIONS(164), 5, - anon_sym_label, - anon_sym_const, - sym_word, - sym_meta_ident, - sym__ident, - [1959] = 6, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + [2425] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(53), 1, + ACTIONS(88), 1, + anon_sym_SLASH, + STATE(58), 1, sym_line_comment, - ACTIONS(166), 2, + ACTIONS(86), 9, ts_builtin_sym_end, anon_sym_LF, - ACTIONS(168), 5, - anon_sym_label, - anon_sym_const, - sym_word, - sym_meta_ident, - sym__ident, - [1983] = 9, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + [2452] = 10, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(170), 1, + ACTIONS(178), 1, sym_address, - STATE(40), 1, + STATE(42), 1, sym_reg, - STATE(54), 1, + STATE(59), 1, sym_line_comment, - STATE(128), 1, + STATE(89), 1, sym_ident, - ACTIONS(55), 2, + STATE(120), 1, + sym__macro_arg, + ACTIONS(160), 2, sym_word, sym__reg, - ACTIONS(57), 2, + ACTIONS(162), 2, sym_meta_ident, sym__ident, - [2013] = 9, + [2485] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(170), 1, - sym_address, - STATE(40), 1, - sym_reg, - STATE(55), 1, + ACTIONS(196), 1, + ts_builtin_sym_end, + ACTIONS(198), 1, + anon_sym_LF, + STATE(60), 2, + sym_line_comment, + aux_sym_program_repeat1, + ACTIONS(201), 5, + anon_sym_label, + anon_sym_const, + sym_word, + sym_meta_ident, + sym__ident, + [2512] = 9, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(203), 1, + sym_address, + STATE(45), 1, + sym_reg, + STATE(61), 1, + sym_line_comment, + STATE(142), 1, + sym_ident, + ACTIONS(61), 2, + sym_word, + sym__reg, + ACTIONS(63), 2, + sym_meta_ident, + sym__ident, + [2542] = 6, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + STATE(62), 1, + sym_line_comment, + ACTIONS(205), 2, + ts_builtin_sym_end, + anon_sym_LF, + ACTIONS(207), 5, + anon_sym_label, + anon_sym_const, + sym_word, + sym_meta_ident, + sym__ident, + [2566] = 9, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(203), 1, + sym_address, + STATE(45), 1, + sym_reg, + STATE(63), 1, + sym_line_comment, + STATE(144), 1, + sym_ident, + ACTIONS(61), 2, + sym_word, + sym__reg, + ACTIONS(63), 2, + sym_meta_ident, + sym__ident, + [2596] = 9, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(80), 1, + anon_sym_LPAREN, + ACTIONS(180), 1, + sym_infix_operator, + ACTIONS(209), 1, + anon_sym_COMMA, + STATE(64), 1, + sym_line_comment, + STATE(83), 1, + aux_sym_meta_repeat2, + ACTIONS(176), 2, + ts_builtin_sym_end, + anon_sym_LF, + [2625] = 6, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(96), 1, + sym_infix_operator, + STATE(65), 1, + sym_line_comment, + ACTIONS(94), 5, + ts_builtin_sym_end, + anon_sym_LF, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RBRACK, + [2648] = 6, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(88), 1, + sym_infix_operator, + STATE(66), 1, + sym_line_comment, + ACTIONS(86), 5, + ts_builtin_sym_end, + anon_sym_LF, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RBRACK, + [2671] = 6, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(92), 1, + sym_infix_operator, + STATE(67), 1, + sym_line_comment, + ACTIONS(90), 5, + ts_builtin_sym_end, + anon_sym_LF, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_RBRACK, + [2694] = 8, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(160), 1, + sym__reg, + ACTIONS(211), 1, + anon_sym_RBRACE, + STATE(68), 1, + sym_line_comment, + STATE(84), 1, + sym_reg, + ACTIONS(178), 2, + sym_word, + sym_address, + [2720] = 7, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(80), 1, + anon_sym_LPAREN, + ACTIONS(180), 1, + sym_infix_operator, + STATE(69), 1, + sym_line_comment, + ACTIONS(78), 3, + ts_builtin_sym_end, + anon_sym_LF, + anon_sym_COMMA, + [2744] = 8, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(160), 1, + sym__reg, + ACTIONS(213), 1, + anon_sym_RBRACE, + STATE(70), 1, + sym_line_comment, + STATE(127), 1, + sym_reg, + ACTIONS(178), 2, + sym_word, + sym_address, + [2770] = 8, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(180), 1, + sym_infix_operator, + ACTIONS(215), 1, + anon_sym_COMMA, + STATE(71), 1, + sym_line_comment, + STATE(114), 1, + aux_sym_meta_repeat3, + ACTIONS(176), 2, + ts_builtin_sym_end, + anon_sym_LF, + [2796] = 8, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(219), 1, + anon_sym_LPAREN, + ACTIONS(221), 1, + sym_meta_ident, + STATE(72), 1, + sym_line_comment, + STATE(136), 1, + sym_meta, + ACTIONS(217), 2, + ts_builtin_sym_end, + anon_sym_LF, + [2822] = 8, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(160), 1, + sym__reg, + ACTIONS(223), 1, + anon_sym_RBRACE, + STATE(73), 1, + sym_line_comment, + STATE(127), 1, + sym_reg, + ACTIONS(178), 2, + sym_word, + sym_address, + [2848] = 7, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(227), 1, + anon_sym_BANG, + ACTIONS(229), 1, + sym_infix_operator, + STATE(74), 1, + sym_line_comment, + ACTIONS(225), 3, + ts_builtin_sym_end, + anon_sym_LF, + anon_sym_COMMA, + [2872] = 8, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(180), 1, + sym_infix_operator, + ACTIONS(231), 1, + anon_sym_COMMA, + STATE(75), 1, + sym_line_comment, + STATE(86), 1, + aux_sym_meta_repeat4, + ACTIONS(176), 2, + ts_builtin_sym_end, + anon_sym_LF, + [2898] = 7, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(235), 1, + anon_sym_BANG, + ACTIONS(237), 1, + sym_infix_operator, + STATE(76), 1, + sym_line_comment, + ACTIONS(233), 3, + ts_builtin_sym_end, + anon_sym_LF, + anon_sym_COMMA, + [2922] = 8, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(221), 1, + sym_meta_ident, + ACTIONS(241), 1, + anon_sym_LPAREN, + STATE(77), 1, + sym_line_comment, + STATE(138), 1, + sym_meta, + ACTIONS(239), 2, + ts_builtin_sym_end, + anon_sym_LF, + [2948] = 7, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(245), 1, + anon_sym_COMMA, + STATE(78), 1, + sym_line_comment, + STATE(90), 1, + aux_sym_meta_repeat1, + ACTIONS(243), 2, + ts_builtin_sym_end, + anon_sym_LF, + [2971] = 6, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(249), 1, + anon_sym_COMMA, + ACTIONS(247), 2, + ts_builtin_sym_end, + anon_sym_LF, + STATE(79), 2, + sym_line_comment, + aux_sym_meta_repeat2, + [2992] = 6, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(254), 1, + sym_infix_operator, + STATE(80), 1, + sym_line_comment, + ACTIONS(252), 3, + ts_builtin_sym_end, + anon_sym_LF, + anon_sym_COMMA, + [3013] = 6, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(258), 1, + anon_sym_COMMA, + ACTIONS(256), 2, + ts_builtin_sym_end, + anon_sym_LF, + STATE(81), 2, + sym_line_comment, + aux_sym_meta_repeat4, + [3034] = 8, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(53), 1, + anon_sym_POUND, + ACTIONS(55), 1, + aux_sym_int_token2, + ACTIONS(174), 1, + sym_prefix_operator, + ACTIONS(261), 1, + aux_sym_int_token1, + STATE(82), 1, + sym_line_comment, + STATE(126), 1, + sym_int, + [3059] = 7, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(209), 1, + anon_sym_COMMA, + STATE(79), 1, + aux_sym_meta_repeat2, + STATE(83), 1, sym_line_comment, - STATE(129), 1, - sym_ident, - ACTIONS(55), 2, - sym_word, - sym__reg, - ACTIONS(57), 2, - sym_meta_ident, - sym__ident, - [2043] = 8, + ACTIONS(263), 2, + ts_builtin_sym_end, + anon_sym_LF, + [3082] = 8, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(55), 1, - sym__reg, - ACTIONS(172), 1, + ACTIONS(265), 1, + anon_sym_COMMA, + ACTIONS(267), 1, + anon_sym_DASH, + ACTIONS(269), 1, anon_sym_RBRACE, - STATE(56), 1, + STATE(84), 1, sym_line_comment, - STATE(82), 1, - sym_reg, - ACTIONS(170), 2, - sym_word, - sym_address, - [2069] = 8, + STATE(104), 1, + aux_sym_list_repeat1, + [3107] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(55), 1, - sym__reg, - ACTIONS(174), 1, - anon_sym_RBRACE, - STATE(57), 1, + ACTIONS(273), 1, + sym_infix_operator, + STATE(85), 1, sym_line_comment, - STATE(104), 1, - sym_reg, - ACTIONS(170), 2, - sym_word, - sym_address, - [2095] = 8, + ACTIONS(271), 3, + ts_builtin_sym_end, + anon_sym_LF, + anon_sym_COMMA, + [3128] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(178), 1, - anon_sym_LPAREN, - ACTIONS(180), 1, - sym_meta_ident, - STATE(58), 1, + ACTIONS(231), 1, + anon_sym_COMMA, + STATE(81), 1, + aux_sym_meta_repeat4, + STATE(86), 1, sym_line_comment, - STATE(108), 1, - sym_meta, - ACTIONS(176), 2, + ACTIONS(263), 2, ts_builtin_sym_end, anon_sym_LF, - [2121] = 8, + [3151] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(55), 1, - sym__reg, - ACTIONS(182), 1, + ACTIONS(278), 1, anon_sym_RBRACE, - STATE(59), 1, + ACTIONS(275), 2, + anon_sym_COMMA, + anon_sym_DASH, + STATE(87), 2, sym_line_comment, - STATE(104), 1, - sym_reg, - ACTIONS(170), 2, - sym_word, - sym_address, - [2147] = 8, + aux_sym_list_repeat1, + [3172] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(180), 1, - sym_meta_ident, - ACTIONS(186), 1, - anon_sym_LPAREN, - STATE(60), 1, + ACTIONS(282), 1, + sym_infix_operator, + STATE(88), 1, sym_line_comment, - STATE(111), 1, - sym_meta, - ACTIONS(184), 2, + ACTIONS(280), 3, ts_builtin_sym_end, anon_sym_LF, - [2173] = 7, + anon_sym_COMMA, + [3193] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(188), 1, + ACTIONS(286), 1, + anon_sym_EQ, + STATE(89), 1, + sym_line_comment, + ACTIONS(284), 3, ts_builtin_sym_end, - ACTIONS(190), 1, anon_sym_LF, - STATE(41), 1, - aux_sym_program_repeat1, - STATE(61), 2, - sym_line_comment, - aux_sym_program_repeat2, - [2196] = 8, + anon_sym_COMMA, + [3214] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(182), 1, - anon_sym_RBRACE, - ACTIONS(193), 1, + ACTIONS(290), 1, anon_sym_COMMA, - ACTIONS(195), 1, - anon_sym_DASH, - STATE(62), 1, + ACTIONS(288), 2, + ts_builtin_sym_end, + anon_sym_LF, + STATE(90), 2, sym_line_comment, - STATE(63), 1, - aux_sym_list_repeat1, - [2221] = 6, + aux_sym_meta_repeat1, + [3235] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(200), 1, - anon_sym_RBRACE, - ACTIONS(197), 2, - anon_sym_COMMA, - anon_sym_DASH, - STATE(63), 2, + ACTIONS(295), 1, + sym_infix_operator, + STATE(91), 1, sym_line_comment, - aux_sym_list_repeat1, - [2242] = 7, + ACTIONS(293), 3, + ts_builtin_sym_end, + anon_sym_LF, + anon_sym_COMMA, + [3256] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(204), 1, + ACTIONS(245), 1, anon_sym_COMMA, - STATE(64), 1, + STATE(78), 1, + aux_sym_meta_repeat1, + STATE(92), 1, sym_line_comment, - STATE(86), 1, - aux_sym_meta_repeat2, - ACTIONS(202), 2, + ACTIONS(263), 2, ts_builtin_sym_end, anon_sym_LF, - [2265] = 7, + [3279] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(208), 1, - anon_sym_COMMA, - STATE(65), 1, + ACTIONS(237), 1, + sym_infix_operator, + STATE(93), 1, sym_line_comment, - STATE(68), 1, - aux_sym_meta_repeat3, - ACTIONS(206), 2, + ACTIONS(233), 3, ts_builtin_sym_end, anon_sym_LF, - [2288] = 7, + anon_sym_COMMA, + [3300] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(210), 1, + ACTIONS(297), 1, anon_sym_COMMA, - STATE(66), 1, + ACTIONS(301), 1, + anon_sym_RBRACK, + STATE(94), 1, sym_line_comment, - STATE(87), 1, - aux_sym_meta_repeat1, - ACTIONS(202), 2, + ACTIONS(299), 2, + anon_sym_DASH, + anon_sym_PLUS, + [3323] = 6, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(305), 1, + sym_infix_operator, + STATE(95), 1, + sym_line_comment, + ACTIONS(303), 3, ts_builtin_sym_end, anon_sym_LF, - [2311] = 7, + anon_sym_COMMA, + [3344] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(55), 1, - sym__reg, - STATE(67), 1, + ACTIONS(309), 1, + sym_infix_operator, + STATE(96), 1, sym_line_comment, - STATE(121), 1, - sym_reg, - ACTIONS(170), 2, - sym_word, - sym_address, - [2334] = 7, + ACTIONS(307), 3, + ts_builtin_sym_end, + anon_sym_LF, + anon_sym_COMMA, + [3365] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(208), 1, - anon_sym_COMMA, - STATE(68), 1, - sym_line_comment, - STATE(84), 1, - aux_sym_meta_repeat3, - ACTIONS(202), 2, + ACTIONS(311), 1, ts_builtin_sym_end, + ACTIONS(313), 1, anon_sym_LF, - [2357] = 7, + STATE(41), 1, + aux_sym_program_repeat1, + STATE(97), 2, + sym_line_comment, + aux_sym_program_repeat2, + [3388] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(212), 1, - anon_sym_COMMA, - STATE(69), 1, + ACTIONS(100), 1, + sym_infix_operator, + STATE(98), 1, sym_line_comment, - STATE(71), 1, - aux_sym_instruction_repeat1, - ACTIONS(114), 2, + ACTIONS(98), 3, ts_builtin_sym_end, anon_sym_LF, - [2380] = 7, + anon_sym_COMMA, + [3409] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(204), 1, - anon_sym_COMMA, - STATE(64), 1, - aux_sym_meta_repeat2, - STATE(70), 1, + ACTIONS(229), 1, + sym_infix_operator, + STATE(99), 1, sym_line_comment, - ACTIONS(206), 2, + ACTIONS(225), 3, ts_builtin_sym_end, anon_sym_LF, - [2403] = 7, + anon_sym_COMMA, + [3430] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(214), 1, - anon_sym_COMMA, - STATE(71), 1, + ACTIONS(180), 1, + sym_infix_operator, + STATE(100), 1, sym_line_comment, - STATE(80), 1, - aux_sym_instruction_repeat1, - ACTIONS(47), 2, + ACTIONS(78), 3, ts_builtin_sym_end, anon_sym_LF, - [2426] = 7, + anon_sym_COMMA, + [3451] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(55), 1, + ACTIONS(160), 1, sym__reg, - STATE(72), 1, + STATE(101), 1, sym_line_comment, - STATE(120), 1, + STATE(127), 1, sym_reg, - ACTIONS(170), 2, + ACTIONS(178), 2, sym_word, sym_address, - [2449] = 7, + [3474] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(55), 1, - sym__reg, - STATE(73), 1, + ACTIONS(318), 1, + sym_infix_operator, + STATE(102), 1, sym_line_comment, - STATE(104), 1, - sym_reg, - ACTIONS(170), 2, - sym_word, - sym_address, - [2472] = 7, + ACTIONS(316), 3, + ts_builtin_sym_end, + anon_sym_LF, + anon_sym_COMMA, + [3495] = 8, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(170), 1, + anon_sym_LF, + ACTIONS(172), 1, + ts_builtin_sym_end, + STATE(39), 1, + aux_sym_program_repeat1, + STATE(97), 1, + aux_sym_program_repeat2, + STATE(103), 1, + sym_line_comment, + [3520] = 8, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(210), 1, + ACTIONS(213), 1, + anon_sym_RBRACE, + ACTIONS(267), 1, + anon_sym_DASH, + ACTIONS(320), 1, anon_sym_COMMA, - STATE(66), 1, - aux_sym_meta_repeat1, - STATE(74), 1, + STATE(87), 1, + aux_sym_list_repeat1, + STATE(104), 1, sym_line_comment, - ACTIONS(206), 2, - ts_builtin_sym_end, - anon_sym_LF, - [2495] = 7, + [3545] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(55), 1, + ACTIONS(160), 1, sym__reg, - STATE(75), 1, + STATE(105), 1, sym_line_comment, - STATE(102), 1, + STATE(119), 1, sym_reg, - ACTIONS(170), 2, + ACTIONS(178), 2, sym_word, sym_address, - [2518] = 7, - ACTIONS(3), 1, - anon_sym_POUND, + [3568] = 8, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(216), 1, - anon_sym_COMMA, - ACTIONS(220), 1, - anon_sym_RBRACK, - STATE(76), 1, + ACTIONS(53), 1, + anon_sym_POUND, + ACTIONS(55), 1, + aux_sym_int_token2, + ACTIONS(174), 1, + sym_prefix_operator, + ACTIONS(261), 1, + aux_sym_int_token1, + STATE(106), 1, sym_line_comment, - ACTIONS(218), 2, - anon_sym_DASH, - anon_sym_PLUS, - [2541] = 6, + STATE(159), 1, + sym_int, + [3593] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(224), 1, - anon_sym_BANG, - STATE(77), 1, + ACTIONS(61), 1, + sym__reg, + STATE(107), 1, sym_line_comment, - ACTIONS(222), 3, - ts_builtin_sym_end, - anon_sym_LF, - anon_sym_COMMA, - [2562] = 6, + STATE(160), 1, + sym_reg, + ACTIONS(203), 2, + sym_word, + sym_address, + [3616] = 8, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(53), 1, + anon_sym_POUND, + ACTIONS(55), 1, + aux_sym_int_token2, + ACTIONS(174), 1, + sym_prefix_operator, + ACTIONS(261), 1, + aux_sym_int_token1, + STATE(108), 1, + sym_line_comment, + STATE(164), 1, + sym_int, + [3641] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(70), 1, - anon_sym_LPAREN, - STATE(78), 1, + ACTIONS(322), 1, + anon_sym_COMMA, + STATE(109), 1, sym_line_comment, - ACTIONS(68), 3, + STATE(110), 1, + aux_sym_instruction_repeat1, + ACTIONS(130), 2, ts_builtin_sym_end, anon_sym_LF, - anon_sym_COMMA, - [2583] = 7, + [3664] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(55), 1, - sym__reg, - STATE(76), 1, - sym_reg, - STATE(79), 1, + ACTIONS(324), 1, + anon_sym_COMMA, + STATE(110), 1, sym_line_comment, - ACTIONS(170), 2, - sym_word, - sym_address, - [2606] = 6, + STATE(111), 1, + aux_sym_instruction_repeat1, + ACTIONS(67), 2, + ts_builtin_sym_end, + anon_sym_LF, + [3687] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(228), 1, + ACTIONS(328), 1, anon_sym_COMMA, - ACTIONS(226), 2, + ACTIONS(326), 2, ts_builtin_sym_end, anon_sym_LF, - STATE(80), 2, + STATE(111), 2, sym_line_comment, aux_sym_instruction_repeat1, - [2627] = 8, + [3708] = 8, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(141), 1, + ACTIONS(170), 1, anon_sym_LF, - ACTIONS(231), 1, + ACTIONS(331), 1, ts_builtin_sym_end, - STATE(37), 1, + STATE(40), 1, aux_sym_program_repeat1, - STATE(81), 1, - sym_line_comment, - STATE(85), 1, + STATE(103), 1, aux_sym_program_repeat2, - [2652] = 8, + STATE(112), 1, + sym_line_comment, + [3733] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(195), 1, - anon_sym_DASH, - ACTIONS(233), 1, - anon_sym_COMMA, - ACTIONS(235), 1, - anon_sym_RBRACE, - STATE(62), 1, - aux_sym_list_repeat1, - STATE(82), 1, + ACTIONS(61), 1, + sym__reg, + STATE(113), 1, sym_line_comment, - [2677] = 6, + STATE(156), 1, + sym_reg, + ACTIONS(203), 2, + sym_word, + sym_address, + [3756] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(239), 1, - anon_sym_BANG, - STATE(83), 1, + ACTIONS(215), 1, + anon_sym_COMMA, + STATE(114), 1, sym_line_comment, - ACTIONS(237), 3, + STATE(115), 1, + aux_sym_meta_repeat3, + ACTIONS(263), 2, ts_builtin_sym_end, anon_sym_LF, - anon_sym_COMMA, - [2698] = 6, + [3779] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(243), 1, + ACTIONS(335), 1, anon_sym_COMMA, - ACTIONS(241), 2, + ACTIONS(333), 2, ts_builtin_sym_end, anon_sym_LF, - STATE(84), 2, + STATE(115), 2, sym_line_comment, aux_sym_meta_repeat3, - [2719] = 8, + [3800] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(139), 1, - ts_builtin_sym_end, - ACTIONS(141), 1, - anon_sym_LF, - STATE(38), 1, - aux_sym_program_repeat1, - STATE(61), 1, - aux_sym_program_repeat2, - STATE(85), 1, + ACTIONS(160), 1, + sym__reg, + STATE(94), 1, + sym_reg, + STATE(116), 1, sym_line_comment, - [2744] = 6, + ACTIONS(178), 2, + sym_word, + sym_address, + [3823] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(248), 1, - anon_sym_COMMA, - ACTIONS(246), 2, + STATE(117), 1, + sym_line_comment, + ACTIONS(256), 3, ts_builtin_sym_end, anon_sym_LF, - STATE(86), 2, - sym_line_comment, - aux_sym_meta_repeat2, - [2765] = 6, + anon_sym_COMMA, + [3841] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(253), 1, - anon_sym_COMMA, - ACTIONS(251), 2, + STATE(118), 1, + sym_line_comment, + ACTIONS(338), 3, ts_builtin_sym_end, anon_sym_LF, - STATE(87), 2, - sym_line_comment, - aux_sym_meta_repeat1, - [2786] = 6, + anon_sym_COMMA, + [3859] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(88), 1, + ACTIONS(342), 1, + anon_sym_RBRACK, + STATE(119), 1, sym_line_comment, - STATE(99), 1, - sym_string, - ACTIONS(53), 2, - aux_sym_string_token1, - aux_sym_string_token2, - [2806] = 5, + ACTIONS(340), 2, + anon_sym_DASH, + anon_sym_PLUS, + [3879] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(89), 1, + STATE(120), 1, sym_line_comment, - ACTIONS(256), 3, + ACTIONS(288), 3, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [2824] = 5, + [3897] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(90), 1, + STATE(121), 1, sym_line_comment, - ACTIONS(258), 3, + ACTIONS(326), 3, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [2842] = 5, + [3915] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(91), 1, + STATE(122), 1, sym_line_comment, - ACTIONS(226), 3, + ACTIONS(344), 3, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [2860] = 5, + [3933] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(92), 1, + STATE(123), 1, sym_line_comment, - ACTIONS(222), 3, + ACTIONS(333), 3, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [2878] = 5, + [3951] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(93), 1, + ACTIONS(348), 1, + sym_infix_operator, + STATE(124), 1, sym_line_comment, - ACTIONS(237), 3, + ACTIONS(346), 2, ts_builtin_sym_end, anon_sym_LF, - anon_sym_COMMA, - [2896] = 5, + [3971] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(94), 1, + STATE(117), 1, + sym_string, + STATE(125), 1, sym_line_comment, - ACTIONS(260), 3, - ts_builtin_sym_end, - anon_sym_LF, - anon_sym_COMMA, - [2914] = 5, + ACTIONS(59), 2, + aux_sym_string_token1, + aux_sym_string_token2, + [3991] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(95), 1, + STATE(126), 1, sym_line_comment, - ACTIONS(246), 3, + ACTIONS(247), 3, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [2932] = 5, + [4009] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(96), 1, + STATE(127), 1, sym_line_comment, - ACTIONS(262), 3, - ts_builtin_sym_end, - anon_sym_LF, + ACTIONS(278), 3, anon_sym_COMMA, - [2950] = 5, + anon_sym_DASH, + anon_sym_RBRACE, + [4027] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(97), 1, + ACTIONS(104), 1, + sym_infix_operator, + STATE(128), 1, sym_line_comment, - ACTIONS(251), 3, + ACTIONS(102), 2, ts_builtin_sym_end, anon_sym_LF, - anon_sym_COMMA, - [2968] = 5, + [4047] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(98), 1, + ACTIONS(108), 1, + sym_infix_operator, + STATE(129), 1, sym_line_comment, - ACTIONS(264), 3, + ACTIONS(106), 2, ts_builtin_sym_end, anon_sym_LF, - anon_sym_COMMA, - [2986] = 5, + [4067] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(99), 1, + ACTIONS(350), 1, + aux_sym_int_token1, + ACTIONS(352), 1, + sym_prefix_operator, + STATE(130), 1, sym_line_comment, - ACTIONS(241), 3, - ts_builtin_sym_end, - anon_sym_LF, - anon_sym_COMMA, - [3004] = 5, + [4086] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(100), 1, + STATE(131), 1, sym_line_comment, - ACTIONS(68), 3, + ACTIONS(354), 2, ts_builtin_sym_end, anon_sym_LF, - anon_sym_COMMA, - [3022] = 5, + [4103] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(101), 1, + STATE(132), 1, sym_line_comment, - ACTIONS(266), 3, + ACTIONS(311), 2, ts_builtin_sym_end, anon_sym_LF, - anon_sym_COMMA, - [3040] = 6, + [4120] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(270), 1, - anon_sym_RBRACK, - STATE(102), 1, + STATE(133), 1, sym_line_comment, - ACTIONS(268), 2, - anon_sym_DASH, - anon_sym_PLUS, - [3060] = 5, + ACTIONS(356), 2, + ts_builtin_sym_end, + anon_sym_LF, + [4137] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(103), 1, + STATE(134), 1, sym_line_comment, - ACTIONS(272), 3, + ACTIONS(358), 2, ts_builtin_sym_end, anon_sym_LF, - anon_sym_COMMA, - [3078] = 5, + [4154] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(104), 1, + STATE(135), 1, sym_line_comment, - ACTIONS(200), 3, - anon_sym_COMMA, - anon_sym_DASH, - anon_sym_RBRACE, - [3096] = 6, + ACTIONS(176), 2, + ts_builtin_sym_end, + anon_sym_LF, + [4171] = 5, + ACTIONS(3), 1, + anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(49), 1, - anon_sym_POUND, - ACTIONS(274), 1, - aux_sym_int_token2, - STATE(97), 1, - sym_int, - STATE(105), 1, + STATE(136), 1, sym_line_comment, - [3115] = 5, + ACTIONS(360), 2, + ts_builtin_sym_end, + anon_sym_LF, + [4188] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(106), 1, + STATE(137), 1, sym_line_comment, - ACTIONS(206), 2, + ACTIONS(362), 2, ts_builtin_sym_end, anon_sym_LF, - [3132] = 5, + [4205] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(107), 1, + STATE(138), 1, sym_line_comment, - ACTIONS(276), 2, + ACTIONS(364), 2, ts_builtin_sym_end, anon_sym_LF, - [3149] = 5, + [4222] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(108), 1, + STATE(139), 1, sym_line_comment, - ACTIONS(278), 2, + ACTIONS(346), 2, ts_builtin_sym_end, anon_sym_LF, - [3166] = 6, + [4239] = 6, + ACTIONS(3), 1, + anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(49), 1, - anon_sym_POUND, - ACTIONS(274), 1, - aux_sym_int_token2, - STATE(109), 1, + ACTIONS(366), 1, + aux_sym_int_token1, + ACTIONS(368), 1, + sym_prefix_operator, + STATE(140), 1, sym_line_comment, - STATE(123), 1, - sym_int, - [3185] = 5, + [4258] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(110), 1, + ACTIONS(370), 1, + aux_sym_int_token1, + ACTIONS(372), 1, + sym_prefix_operator, + STATE(141), 1, sym_line_comment, - ACTIONS(188), 2, - ts_builtin_sym_end, - anon_sym_LF, - [3202] = 5, + [4277] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(111), 1, + ACTIONS(374), 1, + anon_sym_RPAREN, + STATE(142), 1, sym_line_comment, - ACTIONS(280), 2, - ts_builtin_sym_end, - anon_sym_LF, - [3219] = 5, + [4293] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(112), 1, + ACTIONS(376), 1, + sym_word, + STATE(143), 1, sym_line_comment, - ACTIONS(282), 2, - ts_builtin_sym_end, - anon_sym_LF, - [3236] = 5, + [4309] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(113), 1, + ACTIONS(378), 1, + anon_sym_RPAREN, + STATE(144), 1, sym_line_comment, - ACTIONS(284), 2, - ts_builtin_sym_end, - anon_sym_LF, - [3253] = 5, + [4325] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(114), 1, - sym_line_comment, - ACTIONS(286), 2, + ACTIONS(380), 1, ts_builtin_sym_end, - anon_sym_LF, - [3270] = 6, - ACTIONS(5), 1, + STATE(145), 1, + sym_line_comment, + [4341] = 5, + ACTIONS(382), 1, + anon_sym_POUND, + ACTIONS(384), 1, + aux_sym_line_comment_token1, + ACTIONS(386), 1, aux_sym_line_comment_token2, - ACTIONS(7), 1, + ACTIONS(388), 1, sym_block_comment, - ACTIONS(49), 1, - anon_sym_POUND, - ACTIONS(274), 1, - aux_sym_int_token2, - STATE(115), 1, + STATE(146), 1, sym_line_comment, - STATE(122), 1, - sym_int, - [3289] = 5, - ACTIONS(288), 1, + [4357] = 5, + ACTIONS(3), 1, anon_sym_POUND, - ACTIONS(290), 1, - aux_sym_line_comment_token1, - ACTIONS(292), 1, + ACTIONS(5), 1, aux_sym_line_comment_token2, - ACTIONS(294), 1, + ACTIONS(7), 1, sym_block_comment, - STATE(116), 1, + ACTIONS(23), 1, + anon_sym_COLON, + STATE(147), 1, sym_line_comment, - [3305] = 5, + [4373] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(296), 1, + ACTIONS(390), 1, anon_sym_RBRACK, - STATE(117), 1, + STATE(148), 1, sym_line_comment, - [3321] = 5, + [4389] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(298), 1, - anon_sym_LBRACK, - STATE(118), 1, + ACTIONS(392), 1, + sym_float, + STATE(149), 1, sym_line_comment, - [3337] = 5, + [4405] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(300), 1, + ACTIONS(394), 1, anon_sym_LBRACK, - STATE(119), 1, + STATE(150), 1, sym_line_comment, - [3353] = 5, + [4421] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(224), 1, - anon_sym_RPAREN, - STATE(120), 1, + ACTIONS(396), 1, + anon_sym_rel, + STATE(151), 1, sym_line_comment, - [3369] = 5, + [4437] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(302), 1, - anon_sym_RPAREN, - STATE(121), 1, + ACTIONS(398), 1, + aux_sym_int_token1, + STATE(152), 1, sym_line_comment, - [3385] = 5, + [4453] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(270), 1, - anon_sym_RBRACK, - STATE(122), 1, + ACTIONS(348), 1, + sym_infix_operator, + STATE(153), 1, sym_line_comment, - [3401] = 5, + [4469] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(304), 1, - anon_sym_RBRACK, - STATE(123), 1, + ACTIONS(400), 1, + aux_sym_int_token1, + STATE(154), 1, sym_line_comment, - [3417] = 5, + [4485] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(306), 1, - sym_float, - STATE(124), 1, + ACTIONS(402), 1, + anon_sym_ptr, + STATE(155), 1, sym_line_comment, - [3433] = 5, + [4501] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(308), 1, - aux_sym_int_token1, - STATE(125), 1, + ACTIONS(404), 1, + anon_sym_RPAREN, + STATE(156), 1, sym_line_comment, - [3449] = 5, + [4517] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(310), 1, - anon_sym_rel, - STATE(126), 1, + ACTIONS(406), 1, + anon_sym_LBRACK, + STATE(157), 1, sym_line_comment, - [3465] = 5, + [4533] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(312), 1, - anon_sym_ptr, - STATE(127), 1, + ACTIONS(408), 1, + sym_word, + STATE(158), 1, sym_line_comment, - [3481] = 5, + [4549] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(314), 1, - anon_sym_RPAREN, - STATE(128), 1, + ACTIONS(410), 1, + anon_sym_RBRACK, + STATE(159), 1, sym_line_comment, - [3497] = 5, + [4565] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(316), 1, + ACTIONS(227), 1, anon_sym_RPAREN, - STATE(129), 1, + STATE(160), 1, sym_line_comment, - [3513] = 5, + [4581] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(318), 1, - ts_builtin_sym_end, - STATE(130), 1, + ACTIONS(366), 1, + aux_sym_int_token1, + STATE(161), 1, sym_line_comment, - [3529] = 5, + [4597] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(23), 1, - anon_sym_COLON, - STATE(131), 1, + ACTIONS(370), 1, + aux_sym_int_token1, + STATE(162), 1, sym_line_comment, - [3545] = 5, + [4613] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(320), 1, - sym_word, - STATE(132), 1, + ACTIONS(412), 1, + aux_sym_int_token1, + STATE(163), 1, sym_line_comment, - [3561] = 5, + [4629] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(322), 1, - sym_word, - STATE(133), 1, + ACTIONS(342), 1, + anon_sym_RBRACK, + STATE(164), 1, sym_line_comment, - [3577] = 5, + [4645] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(324), 1, + ACTIONS(350), 1, aux_sym_int_token1, - STATE(134), 1, + STATE(165), 1, sym_line_comment, - [3593] = 1, - ACTIONS(326), 1, + [4661] = 1, + ACTIONS(414), 1, ts_builtin_sym_end, - [3597] = 1, - ACTIONS(328), 1, + [4665] = 1, + ACTIONS(416), 1, ts_builtin_sym_end, }; static const uint32_t ts_small_parse_table_map[] = { - [SMALL_STATE(3)] = 0, - [SMALL_STATE(4)] = 69, - [SMALL_STATE(5)] = 138, - [SMALL_STATE(6)] = 203, - [SMALL_STATE(7)] = 238, - [SMALL_STATE(8)] = 279, - [SMALL_STATE(9)] = 314, - [SMALL_STATE(10)] = 348, - [SMALL_STATE(11)] = 386, - [SMALL_STATE(12)] = 420, - [SMALL_STATE(13)] = 454, - [SMALL_STATE(14)] = 493, - [SMALL_STATE(15)] = 536, - [SMALL_STATE(16)] = 569, - [SMALL_STATE(17)] = 606, - [SMALL_STATE(18)] = 639, - [SMALL_STATE(19)] = 686, - [SMALL_STATE(20)] = 721, - [SMALL_STATE(21)] = 769, - [SMALL_STATE(22)] = 815, - [SMALL_STATE(23)] = 866, - [SMALL_STATE(24)] = 914, - [SMALL_STATE(25)] = 955, - [SMALL_STATE(26)] = 996, - [SMALL_STATE(27)] = 1037, - [SMALL_STATE(28)] = 1078, - [SMALL_STATE(29)] = 1119, - [SMALL_STATE(30)] = 1160, - [SMALL_STATE(31)] = 1201, - [SMALL_STATE(32)] = 1242, - [SMALL_STATE(33)] = 1283, - [SMALL_STATE(34)] = 1324, - [SMALL_STATE(35)] = 1365, - [SMALL_STATE(36)] = 1396, - [SMALL_STATE(37)] = 1426, - [SMALL_STATE(38)] = 1472, - [SMALL_STATE(39)] = 1518, - [SMALL_STATE(40)] = 1548, - [SMALL_STATE(41)] = 1578, - [SMALL_STATE(42)] = 1621, - [SMALL_STATE(43)] = 1649, - [SMALL_STATE(44)] = 1676, - [SMALL_STATE(45)] = 1705, - [SMALL_STATE(46)] = 1736, - [SMALL_STATE(47)] = 1773, - [SMALL_STATE(48)] = 1806, - [SMALL_STATE(49)] = 1841, - [SMALL_STATE(50)] = 1868, - [SMALL_STATE(51)] = 1900, - [SMALL_STATE(52)] = 1932, - [SMALL_STATE(53)] = 1959, - [SMALL_STATE(54)] = 1983, - [SMALL_STATE(55)] = 2013, - [SMALL_STATE(56)] = 2043, - [SMALL_STATE(57)] = 2069, - [SMALL_STATE(58)] = 2095, - [SMALL_STATE(59)] = 2121, - [SMALL_STATE(60)] = 2147, - [SMALL_STATE(61)] = 2173, - [SMALL_STATE(62)] = 2196, - [SMALL_STATE(63)] = 2221, - [SMALL_STATE(64)] = 2242, - [SMALL_STATE(65)] = 2265, - [SMALL_STATE(66)] = 2288, - [SMALL_STATE(67)] = 2311, - [SMALL_STATE(68)] = 2334, - [SMALL_STATE(69)] = 2357, - [SMALL_STATE(70)] = 2380, - [SMALL_STATE(71)] = 2403, - [SMALL_STATE(72)] = 2426, - [SMALL_STATE(73)] = 2449, - [SMALL_STATE(74)] = 2472, - [SMALL_STATE(75)] = 2495, - [SMALL_STATE(76)] = 2518, - [SMALL_STATE(77)] = 2541, - [SMALL_STATE(78)] = 2562, - [SMALL_STATE(79)] = 2583, - [SMALL_STATE(80)] = 2606, - [SMALL_STATE(81)] = 2627, - [SMALL_STATE(82)] = 2652, - [SMALL_STATE(83)] = 2677, - [SMALL_STATE(84)] = 2698, - [SMALL_STATE(85)] = 2719, - [SMALL_STATE(86)] = 2744, - [SMALL_STATE(87)] = 2765, - [SMALL_STATE(88)] = 2786, - [SMALL_STATE(89)] = 2806, - [SMALL_STATE(90)] = 2824, - [SMALL_STATE(91)] = 2842, - [SMALL_STATE(92)] = 2860, - [SMALL_STATE(93)] = 2878, - [SMALL_STATE(94)] = 2896, - [SMALL_STATE(95)] = 2914, - [SMALL_STATE(96)] = 2932, - [SMALL_STATE(97)] = 2950, - [SMALL_STATE(98)] = 2968, - [SMALL_STATE(99)] = 2986, - [SMALL_STATE(100)] = 3004, - [SMALL_STATE(101)] = 3022, - [SMALL_STATE(102)] = 3040, - [SMALL_STATE(103)] = 3060, - [SMALL_STATE(104)] = 3078, - [SMALL_STATE(105)] = 3096, - [SMALL_STATE(106)] = 3115, - [SMALL_STATE(107)] = 3132, - [SMALL_STATE(108)] = 3149, - [SMALL_STATE(109)] = 3166, - [SMALL_STATE(110)] = 3185, - [SMALL_STATE(111)] = 3202, - [SMALL_STATE(112)] = 3219, - [SMALL_STATE(113)] = 3236, - [SMALL_STATE(114)] = 3253, - [SMALL_STATE(115)] = 3270, - [SMALL_STATE(116)] = 3289, - [SMALL_STATE(117)] = 3305, - [SMALL_STATE(118)] = 3321, - [SMALL_STATE(119)] = 3337, - [SMALL_STATE(120)] = 3353, - [SMALL_STATE(121)] = 3369, - [SMALL_STATE(122)] = 3385, - [SMALL_STATE(123)] = 3401, - [SMALL_STATE(124)] = 3417, - [SMALL_STATE(125)] = 3433, - [SMALL_STATE(126)] = 3449, - [SMALL_STATE(127)] = 3465, - [SMALL_STATE(128)] = 3481, - [SMALL_STATE(129)] = 3497, - [SMALL_STATE(130)] = 3513, - [SMALL_STATE(131)] = 3529, - [SMALL_STATE(132)] = 3545, - [SMALL_STATE(133)] = 3561, - [SMALL_STATE(134)] = 3577, - [SMALL_STATE(135)] = 3593, - [SMALL_STATE(136)] = 3597, + [SMALL_STATE(2)] = 0, + [SMALL_STATE(3)] = 87, + [SMALL_STATE(4)] = 170, + [SMALL_STATE(5)] = 250, + [SMALL_STATE(6)] = 323, + [SMALL_STATE(7)] = 396, + [SMALL_STATE(8)] = 468, + [SMALL_STATE(9)] = 537, + [SMALL_STATE(10)] = 580, + [SMALL_STATE(11)] = 617, + [SMALL_STATE(12)] = 654, + [SMALL_STATE(13)] = 691, + [SMALL_STATE(14)] = 731, + [SMALL_STATE(15)] = 767, + [SMALL_STATE(16)] = 803, + [SMALL_STATE(17)] = 839, + [SMALL_STATE(18)] = 886, + [SMALL_STATE(19)] = 921, + [SMALL_STATE(20)] = 962, + [SMALL_STATE(21)] = 1007, + [SMALL_STATE(22)] = 1046, + [SMALL_STATE(23)] = 1083, + [SMALL_STATE(24)] = 1118, + [SMALL_STATE(25)] = 1170, + [SMALL_STATE(26)] = 1220, + [SMALL_STATE(27)] = 1265, + [SMALL_STATE(28)] = 1310, + [SMALL_STATE(29)] = 1355, + [SMALL_STATE(30)] = 1400, + [SMALL_STATE(31)] = 1445, + [SMALL_STATE(32)] = 1492, + [SMALL_STATE(33)] = 1537, + [SMALL_STATE(34)] = 1582, + [SMALL_STATE(35)] = 1627, + [SMALL_STATE(36)] = 1672, + [SMALL_STATE(37)] = 1717, + [SMALL_STATE(38)] = 1762, + [SMALL_STATE(39)] = 1793, + [SMALL_STATE(40)] = 1839, + [SMALL_STATE(41)] = 1885, + [SMALL_STATE(42)] = 1928, + [SMALL_STATE(43)] = 1957, + [SMALL_STATE(44)] = 1993, + [SMALL_STATE(45)] = 2033, + [SMALL_STATE(46)] = 2061, + [SMALL_STATE(47)] = 2097, + [SMALL_STATE(48)] = 2125, + [SMALL_STATE(49)] = 2152, + [SMALL_STATE(50)] = 2179, + [SMALL_STATE(51)] = 2206, + [SMALL_STATE(52)] = 2233, + [SMALL_STATE(53)] = 2266, + [SMALL_STATE(54)] = 2301, + [SMALL_STATE(55)] = 2330, + [SMALL_STATE(56)] = 2367, + [SMALL_STATE(57)] = 2398, + [SMALL_STATE(58)] = 2425, + [SMALL_STATE(59)] = 2452, + [SMALL_STATE(60)] = 2485, + [SMALL_STATE(61)] = 2512, + [SMALL_STATE(62)] = 2542, + [SMALL_STATE(63)] = 2566, + [SMALL_STATE(64)] = 2596, + [SMALL_STATE(65)] = 2625, + [SMALL_STATE(66)] = 2648, + [SMALL_STATE(67)] = 2671, + [SMALL_STATE(68)] = 2694, + [SMALL_STATE(69)] = 2720, + [SMALL_STATE(70)] = 2744, + [SMALL_STATE(71)] = 2770, + [SMALL_STATE(72)] = 2796, + [SMALL_STATE(73)] = 2822, + [SMALL_STATE(74)] = 2848, + [SMALL_STATE(75)] = 2872, + [SMALL_STATE(76)] = 2898, + [SMALL_STATE(77)] = 2922, + [SMALL_STATE(78)] = 2948, + [SMALL_STATE(79)] = 2971, + [SMALL_STATE(80)] = 2992, + [SMALL_STATE(81)] = 3013, + [SMALL_STATE(82)] = 3034, + [SMALL_STATE(83)] = 3059, + [SMALL_STATE(84)] = 3082, + [SMALL_STATE(85)] = 3107, + [SMALL_STATE(86)] = 3128, + [SMALL_STATE(87)] = 3151, + [SMALL_STATE(88)] = 3172, + [SMALL_STATE(89)] = 3193, + [SMALL_STATE(90)] = 3214, + [SMALL_STATE(91)] = 3235, + [SMALL_STATE(92)] = 3256, + [SMALL_STATE(93)] = 3279, + [SMALL_STATE(94)] = 3300, + [SMALL_STATE(95)] = 3323, + [SMALL_STATE(96)] = 3344, + [SMALL_STATE(97)] = 3365, + [SMALL_STATE(98)] = 3388, + [SMALL_STATE(99)] = 3409, + [SMALL_STATE(100)] = 3430, + [SMALL_STATE(101)] = 3451, + [SMALL_STATE(102)] = 3474, + [SMALL_STATE(103)] = 3495, + [SMALL_STATE(104)] = 3520, + [SMALL_STATE(105)] = 3545, + [SMALL_STATE(106)] = 3568, + [SMALL_STATE(107)] = 3593, + [SMALL_STATE(108)] = 3616, + [SMALL_STATE(109)] = 3641, + [SMALL_STATE(110)] = 3664, + [SMALL_STATE(111)] = 3687, + [SMALL_STATE(112)] = 3708, + [SMALL_STATE(113)] = 3733, + [SMALL_STATE(114)] = 3756, + [SMALL_STATE(115)] = 3779, + [SMALL_STATE(116)] = 3800, + [SMALL_STATE(117)] = 3823, + [SMALL_STATE(118)] = 3841, + [SMALL_STATE(119)] = 3859, + [SMALL_STATE(120)] = 3879, + [SMALL_STATE(121)] = 3897, + [SMALL_STATE(122)] = 3915, + [SMALL_STATE(123)] = 3933, + [SMALL_STATE(124)] = 3951, + [SMALL_STATE(125)] = 3971, + [SMALL_STATE(126)] = 3991, + [SMALL_STATE(127)] = 4009, + [SMALL_STATE(128)] = 4027, + [SMALL_STATE(129)] = 4047, + [SMALL_STATE(130)] = 4067, + [SMALL_STATE(131)] = 4086, + [SMALL_STATE(132)] = 4103, + [SMALL_STATE(133)] = 4120, + [SMALL_STATE(134)] = 4137, + [SMALL_STATE(135)] = 4154, + [SMALL_STATE(136)] = 4171, + [SMALL_STATE(137)] = 4188, + [SMALL_STATE(138)] = 4205, + [SMALL_STATE(139)] = 4222, + [SMALL_STATE(140)] = 4239, + [SMALL_STATE(141)] = 4258, + [SMALL_STATE(142)] = 4277, + [SMALL_STATE(143)] = 4293, + [SMALL_STATE(144)] = 4309, + [SMALL_STATE(145)] = 4325, + [SMALL_STATE(146)] = 4341, + [SMALL_STATE(147)] = 4357, + [SMALL_STATE(148)] = 4373, + [SMALL_STATE(149)] = 4389, + [SMALL_STATE(150)] = 4405, + [SMALL_STATE(151)] = 4421, + [SMALL_STATE(152)] = 4437, + [SMALL_STATE(153)] = 4453, + [SMALL_STATE(154)] = 4469, + [SMALL_STATE(155)] = 4485, + [SMALL_STATE(156)] = 4501, + [SMALL_STATE(157)] = 4517, + [SMALL_STATE(158)] = 4533, + [SMALL_STATE(159)] = 4549, + [SMALL_STATE(160)] = 4565, + [SMALL_STATE(161)] = 4581, + [SMALL_STATE(162)] = 4597, + [SMALL_STATE(163)] = 4613, + [SMALL_STATE(164)] = 4629, + [SMALL_STATE(165)] = 4645, + [SMALL_STATE(166)] = 4661, + [SMALL_STATE(167)] = 4665, }; 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(116), - [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(136), + [3] = {.entry = {.count = 1, .reusable = true}}, SHIFT(146), + [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(166), [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT_EXTRA(), [9] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_program, 0, 0, 0), - [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(133), - [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(132), + [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(158), + [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(143), [15] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2), - [17] = {.entry = {.count = 1, .reusable = false}}, SHIFT(22), - [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(131), + [17] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3), + [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(147), [21] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_instruction, 1, 0, 1), - [23] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), - [25] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), - [27] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), - [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(127), - [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79), - [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(126), - [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(125), - [37] = {.entry = {.count = 1, .reusable = false}}, SHIFT(8), + [23] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), + [25] = {.entry = {.count = 1, .reusable = true}}, SHIFT(113), + [27] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), + [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(155), + [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(116), + [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(151), + [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(140), + [37] = {.entry = {.count = 1, .reusable = false}}, SHIFT(11), [39] = {.entry = {.count = 1, .reusable = false}}, SHIFT(100), - [41] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), - [43] = {.entry = {.count = 1, .reusable = false}}, SHIFT(9), - [45] = {.entry = {.count = 1, .reusable = false}}, SHIFT(11), - [47] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_instruction, 3, 0, 1), - [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(134), - [51] = {.entry = {.count = 1, .reusable = false}}, SHIFT(36), - [53] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), - [55] = {.entry = {.count = 1, .reusable = false}}, SHIFT(35), - [57] = {.entry = {.count = 1, .reusable = false}}, SHIFT(40), - [59] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_instruction, 4, 0, 1), - [61] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_int, 2, 0, 0), - [63] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_int, 2, 0, 0), - [65] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__expr, 1, 0, 0), REDUCE(sym__tc_expr, 1, 0, 0), - [68] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr, 1, 0, 0), - [70] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), - [72] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__tc_expr, 1, 0, 0), - [74] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__tc_expr, 1, 0, 0), - [76] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_int, 1, 0, 0), - [78] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_int, 1, 0, 0), - [80] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_reg, 1, 0, 0), - [82] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_reg, 1, 0, 0), - [84] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ident, 1, 0, 0), - [86] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_ident, 1, 0, 0), - [88] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string, 1, 0, 0), - [90] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string, 1, 0, 0), - [92] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tc_infix, 3, 0, 5), - [94] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tc_infix, 3, 0, 5), - [96] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), - [98] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), - [100] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), - [102] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), - [104] = {.entry = {.count = 1, .reusable = false}}, SHIFT(27), - [106] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_instruction_repeat2, 1, 0, 0), - [108] = {.entry = {.count = 1, .reusable = false}}, SHIFT(25), - [110] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), - [112] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_instruction_repeat2, 1, 0, 0), - [114] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_instruction, 2, 0, 1), - [116] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_instruction_repeat2, 2, 0, 0), - [118] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_instruction_repeat2, 2, 0, 0), SHIFT_REPEAT(125), - [121] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_instruction_repeat2, 2, 0, 0), SHIFT_REPEAT(8), - [124] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_instruction_repeat2, 2, 0, 0), SHIFT_REPEAT(12), - [127] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_instruction_repeat2, 2, 0, 0), SHIFT_REPEAT(9), - [130] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_instruction_repeat2, 2, 0, 0), SHIFT_REPEAT(11), - [133] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_meta, 1, 0, 1), - [135] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), - [137] = {.entry = {.count = 1, .reusable = false}}, SHIFT(70), - [139] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_program, 2, 0, 0), - [141] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), - [143] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_program, 3, 0, 0), - [145] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), - [147] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), - [149] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_const, 3, 0, 4), - [151] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), - [153] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), - [155] = {.entry = {.count = 1, .reusable = false}}, SHIFT(33), - [157] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), - [159] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_program_repeat1, 2, 0, 0), - [161] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_program_repeat1, 2, 0, 0), SHIFT_REPEAT(53), - [164] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 2, 0, 0), - [166] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_program_repeat1, 1, 0, 0), - [168] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 1, 0, 0), - [170] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), - [172] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), - [174] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), - [176] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 2, 0, 3), - [178] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), - [180] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), - [182] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), - [184] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 2, 0, 0), - [186] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), - [188] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_program_repeat2, 2, 0, 0), - [190] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_program_repeat2, 2, 0, 0), SHIFT_REPEAT(53), - [193] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), - [195] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), - [197] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2, 0, 0), SHIFT_REPEAT(73), - [200] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2, 0, 0), - [202] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_meta, 3, 0, 1), - [204] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124), - [206] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_meta, 2, 0, 1), - [208] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), - [210] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), - [212] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), - [214] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), - [216] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109), - [218] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), - [220] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), - [222] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 3, 0, 0), - [224] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), - [226] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_instruction_repeat1, 2, 0, 0), - [228] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_instruction_repeat1, 2, 0, 0), SHIFT_REPEAT(5), - [231] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_program, 1, 0, 0), - [233] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), - [235] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), - [237] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 5, 0, 0), - [239] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), - [241] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_meta_repeat3, 2, 0, 0), - [243] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_meta_repeat3, 2, 0, 0), SHIFT_REPEAT(88), - [246] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_meta_repeat2, 2, 0, 0), - [248] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_meta_repeat2, 2, 0, 0), SHIFT_REPEAT(124), - [251] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_meta_repeat1, 2, 0, 0), - [253] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_meta_repeat1, 2, 0, 0), SHIFT_REPEAT(105), - [256] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 3, 0, 0), - [258] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 6, 0, 0), - [260] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 5, 0, 0), - [262] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 4, 0, 0), - [264] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 2, 0, 0), - [266] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 7, 0, 0), - [268] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), - [270] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), - [272] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 4, 0, 0), - [274] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), - [276] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 5, 0, 3), - [278] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 3, 0, 3), - [280] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 3, 0, 0), - [282] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 5, 0, 0), - [284] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 2, 0, 2), - [286] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__item, 1, 0, 0), - [288] = {.entry = {.count = 1, .reusable = false}}, SHIFT(116), - [290] = {.entry = {.count = 1, .reusable = false}}, SHIFT(135), - [292] = {.entry = {.count = 1, .reusable = false}}, SHIFT(136), - [294] = {.entry = {.count = 1, .reusable = false}}, SHIFT_EXTRA(), - [296] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), - [298] = {.entry = {.count = 1, .reusable = true}}, SHIFT(115), - [300] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), - [302] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92), - [304] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83), - [306] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), - [308] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), - [310] = {.entry = {.count = 1, .reusable = true}}, SHIFT(118), - [312] = {.entry = {.count = 1, .reusable = true}}, SHIFT(119), - [314] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107), - [316] = {.entry = {.count = 1, .reusable = true}}, SHIFT(112), - [318] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), - [320] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), - [322] = {.entry = {.count = 1, .reusable = true}}, SHIFT(113), - [324] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), - [326] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_line_comment, 2, 0, 0), - [328] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_line_comment, 1, 0, 0), + [41] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), + [43] = {.entry = {.count = 1, .reusable = false}}, SHIFT(15), + [45] = {.entry = {.count = 1, .reusable = false}}, SHIFT(16), + [47] = {.entry = {.count = 1, .reusable = false}}, SHIFT(161), + [49] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_meta, 1, 0, 1), + [51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), + [53] = {.entry = {.count = 1, .reusable = true}}, SHIFT(141), + [55] = {.entry = {.count = 1, .reusable = false}}, SHIFT(67), + [57] = {.entry = {.count = 1, .reusable = false}}, SHIFT(71), + [59] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), + [61] = {.entry = {.count = 1, .reusable = false}}, SHIFT(47), + [63] = {.entry = {.count = 1, .reusable = false}}, SHIFT(45), + [65] = {.entry = {.count = 1, .reusable = false}}, SHIFT(162), + [67] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_instruction, 3, 0, 1), + [69] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_instruction, 4, 0, 1), + [71] = {.entry = {.count = 1, .reusable = false}}, SHIFT(128), + [73] = {.entry = {.count = 1, .reusable = false}}, SHIFT(129), + [75] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__expr, 1, 0, 0), REDUCE(sym__tc_expr, 1, 0, 0), + [78] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr, 1, 0, 0), + [80] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107), + [82] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__tc_expr, 1, 0, 0), + [84] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__tc_expr, 1, 0, 0), + [86] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_int, 2, 0, 0), + [88] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_int, 2, 0, 0), + [90] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_int, 1, 0, 0), + [92] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_int, 1, 0, 0), + [94] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_int, 3, 0, 0), + [96] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_int, 3, 0, 0), + [98] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string, 1, 0, 0), + [100] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string, 1, 0, 0), + [102] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_reg, 1, 0, 0), + [104] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_reg, 1, 0, 0), + [106] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ident, 1, 0, 0), + [108] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_ident, 1, 0, 0), + [110] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_instruction_repeat2, 1, 0, 0), + [112] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), + [114] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), + [116] = {.entry = {.count = 1, .reusable = false}}, SHIFT(27), + [118] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), + [120] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), + [122] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), + [124] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_instruction_repeat2, 1, 0, 0), + [126] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tc_infix, 3, 0, 5), + [128] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tc_infix, 3, 0, 5), + [130] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_instruction, 2, 0, 1), + [132] = {.entry = {.count = 1, .reusable = true}}, SHIFT(161), + [134] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_instruction_repeat2, 2, 0, 0), + [136] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_instruction_repeat2, 2, 0, 0), SHIFT_REPEAT(140), + [139] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_instruction_repeat2, 2, 0, 0), SHIFT_REPEAT(11), + [142] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_instruction_repeat2, 2, 0, 0), SHIFT_REPEAT(14), + [145] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_instruction_repeat2, 2, 0, 0), SHIFT_REPEAT(15), + [148] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_instruction_repeat2, 2, 0, 0), SHIFT_REPEAT(16), + [151] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_instruction_repeat2, 2, 0, 0), SHIFT_REPEAT(161), + [154] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130), + [156] = {.entry = {.count = 1, .reusable = false}}, SHIFT(57), + [158] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), + [160] = {.entry = {.count = 1, .reusable = false}}, SHIFT(38), + [162] = {.entry = {.count = 1, .reusable = false}}, SHIFT(42), + [164] = {.entry = {.count = 1, .reusable = true}}, SHIFT(165), + [166] = {.entry = {.count = 1, .reusable = false}}, SHIFT(118), + [168] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_program, 3, 0, 0), + [170] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), + [172] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_program, 2, 0, 0), + [174] = {.entry = {.count = 1, .reusable = true}}, SHIFT(162), + [176] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_meta, 2, 0, 1), + [178] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), + [180] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expr, 1, 0, 0), + [182] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), + [184] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), + [186] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), + [188] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), + [190] = {.entry = {.count = 1, .reusable = false}}, SHIFT(34), + [192] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_const, 3, 0, 4), + [194] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), + [196] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_program_repeat1, 2, 0, 0), + [198] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_program_repeat1, 2, 0, 0), SHIFT_REPEAT(62), + [201] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 2, 0, 0), + [203] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), + [205] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_program_repeat1, 1, 0, 0), + [207] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 1, 0, 0), + [209] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), + [211] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), + [213] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85), + [215] = {.entry = {.count = 1, .reusable = true}}, SHIFT(149), + [217] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 2, 0, 0), + [219] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), + [221] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), + [223] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91), + [225] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 3, 0, 0), + [227] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), + [229] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_ptr, 3, 0, 0), + [231] = {.entry = {.count = 1, .reusable = true}}, SHIFT(125), + [233] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 5, 0, 0), + [235] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), + [237] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_ptr, 5, 0, 0), + [239] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 2, 0, 3), + [241] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), + [243] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_meta, 4, 0, 1), + [245] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), + [247] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_meta_repeat2, 2, 0, 0), + [249] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_meta_repeat2, 2, 0, 0), SHIFT_REPEAT(82), + [252] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 2, 0, 0), + [254] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list, 2, 0, 0), + [256] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_meta_repeat4, 2, 0, 0), + [258] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_meta_repeat4, 2, 0, 0), SHIFT_REPEAT(125), + [261] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), + [263] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_meta, 3, 0, 1), + [265] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), + [267] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), + [269] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102), + [271] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 4, 0, 0), + [273] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list, 4, 0, 0), + [275] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2, 0, 0), SHIFT_REPEAT(101), + [278] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2, 0, 0), + [280] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 4, 0, 0), + [282] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_ptr, 4, 0, 0), + [284] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__macro_arg, 1, 0, 0), + [286] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), + [288] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_meta_repeat1, 2, 0, 0), + [290] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_meta_repeat1, 2, 0, 0), SHIFT_REPEAT(59), + [293] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 5, 0, 0), + [295] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list, 5, 0, 0), + [297] = {.entry = {.count = 1, .reusable = true}}, SHIFT(106), + [299] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), + [301] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), + [303] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 6, 0, 0), + [305] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_ptr, 6, 0, 0), + [307] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 7, 0, 0), + [309] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_ptr, 7, 0, 0), + [311] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_program_repeat2, 2, 0, 0), + [313] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_program_repeat2, 2, 0, 0), SHIFT_REPEAT(62), + [316] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 3, 0, 0), + [318] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list, 3, 0, 0), + [320] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), + [322] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), + [324] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), + [326] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_instruction_repeat1, 2, 0, 0), + [328] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_instruction_repeat1, 2, 0, 0), SHIFT_REPEAT(8), + [331] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_program, 1, 0, 0), + [333] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_meta_repeat3, 2, 0, 0), + [335] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_meta_repeat3, 2, 0, 0), SHIFT_REPEAT(149), + [338] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__macro_arg_value, 1, 0, 0), + [340] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), + [342] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), + [344] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__macro_arg, 3, 0, 0), + [346] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_op_expr, 3, 0, 5), + [348] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7), + [350] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), + [352] = {.entry = {.count = 1, .reusable = true}}, SHIFT(154), + [354] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 5, 0, 0), + [356] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__item, 1, 0, 0), + [358] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 2, 0, 2), + [360] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 3, 0, 0), + [362] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 5, 0, 3), + [364] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 3, 0, 3), + [366] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10), + [368] = {.entry = {.count = 1, .reusable = true}}, SHIFT(152), + [370] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), + [372] = {.entry = {.count = 1, .reusable = true}}, SHIFT(163), + [374] = {.entry = {.count = 1, .reusable = true}}, SHIFT(131), + [376] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), + [378] = {.entry = {.count = 1, .reusable = true}}, SHIFT(137), + [380] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [382] = {.entry = {.count = 1, .reusable = false}}, SHIFT(146), + [384] = {.entry = {.count = 1, .reusable = false}}, SHIFT(167), + [386] = {.entry = {.count = 1, .reusable = false}}, SHIFT(166), + [388] = {.entry = {.count = 1, .reusable = false}}, SHIFT_EXTRA(), + [390] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), + [392] = {.entry = {.count = 1, .reusable = true}}, SHIFT(123), + [394] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), + [396] = {.entry = {.count = 1, .reusable = true}}, SHIFT(157), + [398] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), + [400] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), + [402] = {.entry = {.count = 1, .reusable = true}}, SHIFT(150), + [404] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99), + [406] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108), + [408] = {.entry = {.count = 1, .reusable = true}}, SHIFT(134), + [410] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), + [412] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), + [414] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_line_comment, 1, 0, 0), + [416] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_line_comment, 2, 0, 0), }; #ifdef __cplusplus @@ -5096,7 +6551,7 @@ extern "C" { TS_PUBLIC const TSLanguage *tree_sitter_asm(void) { static const TSLanguage language = { - .version = LANGUAGE_VERSION, + .abi_version = LANGUAGE_VERSION, .symbol_count = SYMBOL_COUNT, .alias_count = ALIAS_COUNT, .token_count = TOKEN_COUNT, @@ -5104,6 +6559,7 @@ TS_PUBLIC const TSLanguage *tree_sitter_asm(void) { .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], @@ -5118,9 +6574,16 @@ TS_PUBLIC const TSLanguage *tree_sitter_asm(void) { .public_symbol_map = ts_symbol_map, .alias_map = ts_non_terminal_alias_map, .alias_sequences = &ts_alias_sequences[0][0], - .lex_modes = ts_lex_modes, + .lex_modes = (const void*)ts_lex_modes, .lex_fn = ts_lex, .primary_state_ids = ts_primary_state_ids, + .name = "asm", + .max_reserved_word_set_size = 0, + .metadata = { + .major_version = 0, + .minor_version = 1, + .patch_version = 0, + }, }; return &language; } diff --git a/src/tree_sitter/alloc.h b/src/tree_sitter/alloc.h index 1f4466d7..1abdd120 100644 --- a/src/tree_sitter/alloc.h +++ b/src/tree_sitter/alloc.h @@ -12,10 +12,10 @@ extern "C" { // Allow clients to override allocation functions #ifdef TREE_SITTER_REUSE_ALLOCATOR -extern void *(*ts_current_malloc)(size_t); -extern void *(*ts_current_calloc)(size_t, size_t); -extern void *(*ts_current_realloc)(void *, size_t); -extern void (*ts_current_free)(void *); +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 diff --git a/src/tree_sitter/array.h b/src/tree_sitter/array.h index 15a3b233..a17a574f 100644 --- a/src/tree_sitter/array.h +++ b/src/tree_sitter/array.h @@ -14,6 +14,7 @@ extern "C" { #include #ifdef _MSC_VER +#pragma warning(push) #pragma warning(disable : 4101) #elif defined(__GNUC__) || defined(__clang__) #pragma GCC diagnostic push @@ -278,7 +279,7 @@ static inline void _array__splice(Array *self, size_t element_size, #define _compare_int(a, b) ((int)*(a) - (int)(b)) #ifdef _MSC_VER -#pragma warning(default : 4101) +#pragma warning(pop) #elif defined(__GNUC__) || defined(__clang__) #pragma GCC diagnostic pop #endif diff --git a/src/tree_sitter/parser.h b/src/tree_sitter/parser.h index 17f0e94b..858107de 100644 --- a/src/tree_sitter/parser.h +++ b/src/tree_sitter/parser.h @@ -18,6 +18,11 @@ typedef uint16_t TSStateId; typedef uint16_t TSSymbol; typedef uint16_t TSFieldId; typedef struct TSLanguage TSLanguage; +typedef struct TSLanguageMetadata { + uint8_t major_version; + uint8_t minor_version; + uint8_t patch_version; +} TSLanguageMetadata; #endif typedef struct { @@ -26,10 +31,11 @@ typedef struct { bool inherited; } TSFieldMapEntry; +// Used to index the field and supertype maps. typedef struct { uint16_t index; uint16_t length; -} TSFieldMapSlice; +} TSMapSlice; typedef struct { bool visible; @@ -47,6 +53,7 @@ struct 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 { @@ -78,6 +85,12 @@ typedef struct { 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 { @@ -92,7 +105,7 @@ typedef struct { } TSCharacterRange; struct TSLanguage { - uint32_t version; + uint32_t abi_version; uint32_t symbol_count; uint32_t alias_count; uint32_t token_count; @@ -108,13 +121,13 @@ struct TSLanguage { const TSParseActionEntry *parse_actions; const char * const *symbol_names; const char * const *field_names; - const TSFieldMapSlice *field_map_slices; + 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 TSLexMode *lex_modes; + const TSLexerMode *lex_modes; bool (*lex_fn)(TSLexer *, TSStateId); bool (*keyword_lex_fn)(TSLexer *, TSStateId); TSSymbol keyword_capture_token; @@ -128,15 +141,23 @@ struct TSLanguage { 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(TSCharacterRange *ranges, uint32_t len, int32_t lookahead) { +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; - TSCharacterRange *range = &ranges[mid_index]; + const TSCharacterRange *range = &ranges[mid_index]; if (lookahead >= range->start && lookahead <= range->end) { return true; } else if (lookahead > range->end) { @@ -144,7 +165,7 @@ static inline bool set_contains(TSCharacterRange *ranges, uint32_t len, int32_t } size -= half_size; } - TSCharacterRange *range = &ranges[index]; + const TSCharacterRange *range = &ranges[index]; return (lookahead >= range->start && lookahead <= range->end); } From 0e769fea77359615519b8b4bfd93e108d734e8be Mon Sep 17 00:00:00 2001 From: Neptumiun93 Date: Mon, 4 May 2026 07:26:43 +0200 Subject: [PATCH 10/31] refactor(corpus): move tests for macro to separate file --- test/corpus/instr_and_reg.test | 116 --------------------------------- test/corpus/macro.test | 116 +++++++++++++++++++++++++++++++++ 2 files changed, 116 insertions(+), 116 deletions(-) create mode 100644 test/corpus/macro.test diff --git a/test/corpus/instr_and_reg.test b/test/corpus/instr_and_reg.test index 8f8a85c8..ca9bcfb8 100644 --- a/test/corpus/instr_and_reg.test +++ b/test/corpus/instr_and_reg.test @@ -191,119 +191,3 @@ LDR A1, =addr (ident (reg (address))))) -========== -Macro -- use macro Parameters -========== -mov rax, \parm ---- -(program - (instruction - (word) - (ident - (reg - (word))) - (ident - (reg - (word))))) -========== -Macro -- simple macro -========== -.macro foo r -mov \r, 0 -.endm ---- -(program - (meta - (meta_ident) - (ident - (reg - (word))) - (ident - (reg - (word)))) - (instruction - (word) - (ident - (reg - (word))) - (int)) - (meta - (meta_ident))) -========== -Macro -- simple macro multi args -========== -.macro foo r, v -mov \r, \v -.endm ---- -(program - (meta - (meta_ident) - (ident - (reg - (word))) - (ident - (reg - (word))) - (ident - (reg - (word)))) - (instruction - (word) - (ident - (reg - (word))) - (ident - (reg - (word)))) - (meta - (meta_ident))) -========== -Macro -- example macro of gas doc -========== -.macro sum from=0, to=5 -.long \from -.if \to-\from -sum "(\from+1)",\to -.endif -.endm ---- -(program - (meta - (meta_ident) - (ident - (reg - (word))) - (ident - (reg - (word))) - (int) - (ident - (reg - (word))) - (int)) - (meta - (meta_ident) - (ident - (reg - (word)))) - (meta - (meta_ident) - (op_expr - (ident - (reg - (word))) - (infix_operator) - (ident - (reg - (word))))) - (instruction - (word) - (string) - (ident - (reg - (word)))) - (meta - (meta_ident)) - (meta - (meta_ident))) diff --git a/test/corpus/macro.test b/test/corpus/macro.test new file mode 100644 index 00000000..e9821d21 --- /dev/null +++ b/test/corpus/macro.test @@ -0,0 +1,116 @@ +========== +Macro -- use macro Parameters +========== +mov rax, \parm +--- +(program + (instruction + (word) + (ident + (reg + (word))) + (ident + (reg + (word))))) +========== +Macro -- simple macro +========== +.macro foo r +mov \r, 0 +.endm +--- +(program + (meta + (meta_ident) + (ident + (reg + (word))) + (ident + (reg + (word)))) + (instruction + (word) + (ident + (reg + (word))) + (int)) + (meta + (meta_ident))) +========== +Macro -- simple macro multi args +========== +.macro foo r, v +mov \r, \v +.endm +--- +(program + (meta + (meta_ident) + (ident + (reg + (word))) + (ident + (reg + (word))) + (ident + (reg + (word)))) + (instruction + (word) + (ident + (reg + (word))) + (ident + (reg + (word)))) + (meta + (meta_ident))) +========== +Macro -- example macro of gas doc +========== +.macro sum from=0, to=5 +.long \from +.if \to-\from +sum "(\from+1)",\to +.endif +.endm +--- +(program + (meta + (meta_ident) + (ident + (reg + (word))) + (ident + (reg + (word))) + (int) + (ident + (reg + (word))) + (int)) + (meta + (meta_ident) + (ident + (reg + (word)))) + (meta + (meta_ident) + (op_expr + (ident + (reg + (word))) + (infix_operator) + (ident + (reg + (word))))) + (instruction + (word) + (string) + (ident + (reg + (word)))) + (meta + (meta_ident)) + (meta + (meta_ident))) From 965072c89d656e8e0c0565ed8559ad38e8ca18b6 Mon Sep 17 00:00:00 2001 From: Neptumiun93 Date: Mon, 4 May 2026 23:24:31 +0200 Subject: [PATCH 11/31] feat(offset): add offset keyword --- grammar.js | 8 +++++++- test/corpus/instr_and_reg.test | 28 ++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/grammar.js b/grammar.js index 6e4f80d7..4105eb93 100644 --- a/grammar.js +++ b/grammar.js @@ -46,7 +46,7 @@ module.exports = grammar({ ), const: $ => seq('const', field('name', $.word), field('value', $._tc_expr)), instruction: $ => seq(field('kind', $.word), choice(sep(',', $._expr), repeat($._tc_expr))), - _expr: $ => choice($.ptr, $.ident, $.int, $.string, $.float, $.list), + _expr: $ => choice($.ptr, $.ident, $.int, $.string, $.float, $.list, seq(choiceBetweenCase('offset'), $.word)), // ARMv7 list: $ => @@ -153,3 +153,9 @@ module.exports = grammar({ function sep(separator, rule) { return optional(seq(rule, repeat(seq(separator, rule)), optional(separator))) } + +function choiceBetweenCase(...values) { + return choice( + ...values.flatMap(v => [String(v).toLowerCase(), String(v).toUpperCase()]) + ); +} diff --git a/test/corpus/instr_and_reg.test b/test/corpus/instr_and_reg.test index aeb8f16c..02c93a45 100644 --- a/test/corpus/instr_and_reg.test +++ b/test/corpus/instr_and_reg.test @@ -189,3 +189,31 @@ LDR A1, =addr (ident (reg (address))))) + +========== +Instruction -- mov from offset label (GAS x86) +========== +mov rsi, offset notImplemented +--- + +(program + (instruction + (word) + (ident + (reg + (word))) + (word))) + +========== +Instruction -- mov from offset label (GAS x86) +========== +mov rsi, OFFSET notImplemented +--- + +(program + (instruction + (word) + (ident + (reg + (word))) + (word))) From 236225d3fb97e77500cf03ef54cb19dc6549ce4f Mon Sep 17 00:00:00 2001 From: Neptumiun93 Date: Mon, 4 May 2026 23:30:07 +0200 Subject: [PATCH 12/31] chore: tree-sitter generate --- src/grammar.json | 28 +- src/node-types.json | 17 +- src/parser.c | 3959 ++++++++++++++++++++------------------ src/tree_sitter/alloc.h | 8 +- src/tree_sitter/array.h | 184 +- src/tree_sitter/parser.h | 35 +- 6 files changed, 2283 insertions(+), 1948 deletions(-) diff --git a/src/grammar.json b/src/grammar.json index a75664ba..dc8ca828 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -1,4 +1,5 @@ { + "$schema": "https://tree-sitter.github.io/tree-sitter/assets/schemas/grammar.schema.json", "name": "asm", "rules": { "program": { @@ -391,6 +392,28 @@ { "type": "SYMBOL", "name": "list" + }, + { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "offset" + }, + { + "type": "STRING", + "value": "OFFSET" + } + ] + }, + { + "type": "SYMBOL", + "name": "word" + } + ] } ] }, @@ -1119,5 +1142,6 @@ "precedences": [], "externals": [], "inline": [], - "supertypes": [] -} + "supertypes": [], + "reserved": {} +} \ No newline at end of file diff --git a/src/node-types.json b/src/node-types.json index 80b1f8e6..8befd6a4 100644 --- a/src/node-types.json +++ b/src/node-types.json @@ -102,6 +102,10 @@ { "type": "tc_infix", "named": true + }, + { + "type": "word", + "named": true } ] } @@ -148,6 +152,7 @@ { "type": "line_comment", "named": true, + "extra": true, "fields": {} }, { @@ -206,6 +211,7 @@ { "type": "program", "named": true, + "root": true, "fields": {}, "children": { "multiple": true, @@ -417,6 +423,10 @@ "type": ":", "named": false }, + { + "type": "OFFSET", + "named": false + }, { "type": "[", "named": false @@ -435,7 +445,8 @@ }, { "type": "block_comment", - "named": true + "named": true, + "extra": true }, { "type": "byte", @@ -461,6 +472,10 @@ "type": "meta_ident", "named": true }, + { + "type": "offset", + "named": false + }, { "type": "ptr", "named": false diff --git a/src/parser.c b/src/parser.c index 3a8c319c..92954563 100644 --- a/src/parser.c +++ b/src/parser.c @@ -1,19 +1,23 @@ +/* Automatically @generated by tree-sitter */ + #include "tree_sitter/parser.h" #if defined(__GNUC__) || defined(__clang__) #pragma GCC diagnostic ignored "-Wmissing-field-initializers" #endif -#define LANGUAGE_VERSION 14 -#define STATE_COUNT 137 +#define LANGUAGE_VERSION 15 +#define STATE_COUNT 139 #define LARGE_STATE_COUNT 3 -#define SYMBOL_COUNT 65 +#define SYMBOL_COUNT 67 #define ALIAS_COUNT 0 -#define TOKEN_COUNT 41 +#define TOKEN_COUNT 43 #define EXTERNAL_TOKEN_COUNT 0 #define FIELD_COUNT 6 #define MAX_ALIAS_SEQUENCE_LENGTH 7 +#define MAX_RESERVED_WORD_SET_SIZE 0 #define PRODUCTION_ID_COUNT 6 +#define SUPERTYPE_COUNT 0 enum ts_symbol_identifiers { anon_sym_LF = 1, @@ -23,63 +27,65 @@ enum ts_symbol_identifiers { anon_sym_RPAREN = 5, anon_sym_label = 6, anon_sym_const = 7, - anon_sym_LBRACE = 8, - anon_sym_DASH = 9, - anon_sym_RBRACE = 10, - anon_sym_byte = 11, - anon_sym_word = 12, - anon_sym_dword = 13, - anon_sym_qword = 14, - anon_sym_ptr = 15, - anon_sym_LBRACK = 16, - anon_sym_PLUS = 17, - anon_sym_RBRACK = 18, - anon_sym_STAR = 19, - anon_sym_rel = 20, - anon_sym_BANG = 21, - anon_sym_SLASH = 22, - anon_sym_PERCENT = 23, - anon_sym_PIPE = 24, - anon_sym_CARET = 25, - anon_sym_AMP = 26, - anon_sym_POUND = 27, - aux_sym_int_token1 = 28, - aux_sym_int_token2 = 29, - sym_float = 30, - aux_sym_string_token1 = 31, - aux_sym_string_token2 = 32, - sym_word = 33, - sym__reg = 34, - sym_address = 35, - sym_meta_ident = 36, - sym__ident = 37, - aux_sym_line_comment_token1 = 38, - aux_sym_line_comment_token2 = 39, - sym_block_comment = 40, - sym_program = 41, - sym__item = 42, - sym_meta = 43, - sym_label = 44, - sym_const = 45, - sym_instruction = 46, - sym__expr = 47, - sym_list = 48, - sym_ptr = 49, - sym__tc_expr = 50, - sym_tc_infix = 51, - sym_int = 52, - sym_string = 53, - sym_reg = 54, - sym_ident = 55, - sym_line_comment = 56, - aux_sym_program_repeat1 = 57, - aux_sym_program_repeat2 = 58, - aux_sym_meta_repeat1 = 59, - aux_sym_meta_repeat2 = 60, - aux_sym_meta_repeat3 = 61, - aux_sym_instruction_repeat1 = 62, - aux_sym_instruction_repeat2 = 63, - aux_sym_list_repeat1 = 64, + anon_sym_offset = 8, + anon_sym_OFFSET = 9, + anon_sym_LBRACE = 10, + anon_sym_DASH = 11, + anon_sym_RBRACE = 12, + anon_sym_byte = 13, + anon_sym_word = 14, + anon_sym_dword = 15, + anon_sym_qword = 16, + anon_sym_ptr = 17, + anon_sym_LBRACK = 18, + anon_sym_PLUS = 19, + anon_sym_RBRACK = 20, + anon_sym_STAR = 21, + anon_sym_rel = 22, + anon_sym_BANG = 23, + anon_sym_SLASH = 24, + anon_sym_PERCENT = 25, + anon_sym_PIPE = 26, + anon_sym_CARET = 27, + anon_sym_AMP = 28, + anon_sym_POUND = 29, + aux_sym_int_token1 = 30, + aux_sym_int_token2 = 31, + sym_float = 32, + aux_sym_string_token1 = 33, + aux_sym_string_token2 = 34, + sym_word = 35, + sym__reg = 36, + sym_address = 37, + sym_meta_ident = 38, + sym__ident = 39, + aux_sym_line_comment_token1 = 40, + aux_sym_line_comment_token2 = 41, + sym_block_comment = 42, + sym_program = 43, + sym__item = 44, + sym_meta = 45, + sym_label = 46, + sym_const = 47, + sym_instruction = 48, + sym__expr = 49, + sym_list = 50, + sym_ptr = 51, + sym__tc_expr = 52, + sym_tc_infix = 53, + sym_int = 54, + sym_string = 55, + sym_reg = 56, + sym_ident = 57, + sym_line_comment = 58, + aux_sym_program_repeat1 = 59, + aux_sym_program_repeat2 = 60, + aux_sym_meta_repeat1 = 61, + aux_sym_meta_repeat2 = 62, + aux_sym_meta_repeat3 = 63, + aux_sym_instruction_repeat1 = 64, + aux_sym_instruction_repeat2 = 65, + aux_sym_list_repeat1 = 66, }; static const char * const ts_symbol_names[] = { @@ -91,6 +97,8 @@ static const char * const ts_symbol_names[] = { [anon_sym_RPAREN] = ")", [anon_sym_label] = "label", [anon_sym_const] = "const", + [anon_sym_offset] = "offset", + [anon_sym_OFFSET] = "OFFSET", [anon_sym_LBRACE] = "{", [anon_sym_DASH] = "-", [anon_sym_RBRACE] = "}", @@ -159,6 +167,8 @@ static const TSSymbol ts_symbol_map[] = { [anon_sym_RPAREN] = anon_sym_RPAREN, [anon_sym_label] = anon_sym_label, [anon_sym_const] = anon_sym_const, + [anon_sym_offset] = anon_sym_offset, + [anon_sym_OFFSET] = anon_sym_OFFSET, [anon_sym_LBRACE] = anon_sym_LBRACE, [anon_sym_DASH] = anon_sym_DASH, [anon_sym_RBRACE] = anon_sym_RBRACE, @@ -251,6 +261,14 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, + [anon_sym_offset] = { + .visible = true, + .named = false, + }, + [anon_sym_OFFSET] = { + .visible = true, + .named = false, + }, [anon_sym_LBRACE] = { .visible = true, .named = false, @@ -500,7 +518,7 @@ static const char * const ts_field_names[] = { [field_value] = "value", }; -static const TSFieldMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { +static const TSMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { [1] = {.index = 0, .length = 1}, [2] = {.index = 1, .length = 1}, [4] = {.index = 2, .length = 2}, @@ -562,27 +580,27 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [26] = 26, [27] = 27, [28] = 28, - [29] = 26, - [30] = 25, - [31] = 24, + [29] = 11, + [30] = 28, + [31] = 26, [32] = 32, - [33] = 27, - [34] = 28, - [35] = 9, - [36] = 8, + [33] = 25, + [34] = 24, + [35] = 32, + [36] = 36, [37] = 37, - [38] = 38, - [39] = 6, - [40] = 11, + [38] = 7, + [39] = 8, + [40] = 9, [41] = 41, - [42] = 12, - [43] = 17, - [44] = 19, - [45] = 16, + [42] = 10, + [43] = 16, + [44] = 15, + [45] = 13, [46] = 46, - [47] = 13, - [48] = 14, - [49] = 15, + [47] = 17, + [48] = 18, + [49] = 19, [50] = 50, [51] = 51, [52] = 52, @@ -667,9 +685,11 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [131] = 131, [132] = 132, [133] = 133, - [134] = 125, + [134] = 134, [135] = 135, - [136] = 136, + [136] = 131, + [137] = 137, + [138] = 138, }; static bool ts_lex(TSLexer *lexer, TSStateId state) { @@ -680,130 +700,132 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (eof) ADVANCE(30); ADVANCE_MAP( '\n', 31, - '!', 58, + '!', 61, '"', 1, - '#', 65, + '#', 68, '$', 19, - '%', 60, - '&', 64, + '%', 63, + '&', 67, '\'', 9, '(', 34, ')', 35, - '*', 55, - '+', 53, + '*', 58, + '+', 56, ',', 32, - '-', 40, - '.', 147, - '/', 59, - '0', 74, + '-', 43, + '.', 165, + '/', 62, + '0', 77, ':', 33, - ';', 154, + ';', 172, '=', 24, - '[', 52, - ']', 54, - '^', 63, - 'b', 134, - 'c', 110, - 'd', 129, - 'l', 95, - 'p', 125, - 'q', 130, - 'r', 103, - 'w', 112, - '{', 38, - '|', 62, - '}', 41, + 'O', 100, + '[', 55, + ']', 57, + '^', 66, + 'b', 152, + 'c', 124, + 'd', 147, + 'l', 103, + 'o', 118, + 'p', 141, + 'q', 148, + 'r', 111, + 'w', 126, + '{', 41, + '|', 65, + '}', 44, ); if (lookahead == '\t' || lookahead == '\r' || lookahead == ' ') SKIP(0); - if (('1' <= lookahead && lookahead <= '9')) ADVANCE(77); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(80); if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(158); END_STATE(); case 1: - if (lookahead == '"') ADVANCE(93); + if (lookahead == '"') ADVANCE(96); if (lookahead != 0) ADVANCE(1); END_STATE(); case 2: ADVANCE_MAP( - '#', 65, + '#', 68, '$', 20, '-', 6, '/', 10, - '0', 84, - ';', 154, + '0', 87, + ';', 172, 'p', 16, 'r', 13, ); if (lookahead == '\t' || lookahead == '\r' || lookahead == ' ') SKIP(2); - if (('1' <= lookahead && lookahead <= '9')) ADVANCE(86); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(89); END_STATE(); case 3: - if (lookahead == '#') ADVANCE(65); + if (lookahead == '#') ADVANCE(68); if (lookahead == '$') ADVANCE(21); if (lookahead == '-') ADVANCE(8); if (lookahead == '/') ADVANCE(10); - if (lookahead == '0') ADVANCE(67); - if (lookahead == ';') ADVANCE(154); + if (lookahead == '0') ADVANCE(70); + if (lookahead == ';') ADVANCE(172); if (lookahead == '\t' || lookahead == '\r' || lookahead == ' ') SKIP(5); - if (('1' <= lookahead && lookahead <= '9')) ADVANCE(69); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(72); END_STATE(); case 4: - if (lookahead == '#') ADVANCE(65); + if (lookahead == '#') ADVANCE(68); if (lookahead == '%') ADVANCE(23); - if (lookahead == '.') ADVANCE(147); + if (lookahead == '.') ADVANCE(165); if (lookahead == '/') ADVANCE(10); - if (lookahead == ';') ADVANCE(154); + if (lookahead == ';') ADVANCE(172); if (lookahead == '$' || lookahead == '=') ADVANCE(24); if (lookahead == '\t' || lookahead == '\r' || lookahead == ' ') SKIP(4); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(158); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(157); END_STATE(); case 5: - if (lookahead == '#') ADVANCE(65); + if (lookahead == '#') ADVANCE(68); if (lookahead == '/') ADVANCE(10); - if (lookahead == ';') ADVANCE(154); + if (lookahead == ';') ADVANCE(172); if (lookahead == '\t' || lookahead == '\r' || lookahead == ' ') SKIP(5); END_STATE(); case 6: if (lookahead == '$') ADVANCE(20); - if (lookahead == '0') ADVANCE(84); - if (('1' <= lookahead && lookahead <= '9')) ADVANCE(86); + if (lookahead == '0') ADVANCE(87); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(89); END_STATE(); case 7: if (lookahead == '$') ADVANCE(20); - if (lookahead == '0') ADVANCE(82); - if (('1' <= lookahead && lookahead <= '9')) ADVANCE(83); + if (lookahead == '0') ADVANCE(85); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(86); END_STATE(); case 8: if (lookahead == '$') ADVANCE(21); - if (lookahead == '0') ADVANCE(67); - if (('1' <= lookahead && lookahead <= '9')) ADVANCE(69); + if (lookahead == '0') ADVANCE(70); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(72); END_STATE(); case 9: - if (lookahead == '\'') ADVANCE(94); + if (lookahead == '\'') ADVANCE(97); if (lookahead != 0) ADVANCE(9); END_STATE(); case 10: if (lookahead == '*') ADVANCE(12); - if (lookahead == '/') ADVANCE(154); + if (lookahead == '/') ADVANCE(172); END_STATE(); case 11: if (lookahead == '*') ADVANCE(11); - if (lookahead == '/') ADVANCE(155); + if (lookahead == '/') ADVANCE(173); if (lookahead != 0) ADVANCE(12); END_STATE(); case 12: @@ -814,165 +836,167 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead == 'e') ADVANCE(14); END_STATE(); case 14: - if (lookahead == 'l') ADVANCE(56); + if (lookahead == 'l') ADVANCE(59); END_STATE(); case 15: - if (lookahead == 'r') ADVANCE(50); + if (lookahead == 'r') ADVANCE(53); END_STATE(); case 16: if (lookahead == 't') ADVANCE(15); END_STATE(); case 17: if (lookahead == '0' || - lookahead == '1') ADVANCE(85); + lookahead == '1') ADVANCE(88); END_STATE(); case 18: if (lookahead == '0' || - lookahead == '1') ADVANCE(68); + lookahead == '1') ADVANCE(71); END_STATE(); case 19: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || - ('a' <= lookahead && lookahead <= 'f')) ADVANCE(87); + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(90); if (('G' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('g' <= lookahead && lookahead <= 'z')) ADVANCE(144); + ('g' <= lookahead && lookahead <= 'z')) ADVANCE(162); END_STATE(); case 20: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || - ('a' <= lookahead && lookahead <= 'f')) ADVANCE(88); + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(91); END_STATE(); case 21: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || - ('a' <= lookahead && lookahead <= 'f')) ADVANCE(70); + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(73); END_STATE(); case 22: if (lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(146); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(164); END_STATE(); case 23: if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(143); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(161); END_STATE(); case 24: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(144); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(162); END_STATE(); case 25: if (eof) ADVANCE(30); ADVANCE_MAP( '\n', 31, '"', 1, - '#', 65, + '#', 68, '$', 19, '%', 23, '\'', 9, '(', 34, - '*', 55, + '*', 58, '-', 7, - '.', 147, + '.', 165, '/', 10, - '0', 79, + '0', 82, ':', 33, - ';', 154, + ';', 172, '=', 24, - '[', 52, - 'b', 133, - 'd', 131, - 'q', 132, - 'w', 111, - '{', 38, + 'O', 100, + '[', 55, + 'b', 151, + 'd', 149, + 'o', 120, + 'q', 150, + 'w', 125, + '{', 41, ); if (lookahead == '\t' || lookahead == '\r' || lookahead == ' ') SKIP(25); - if (('1' <= lookahead && lookahead <= '9')) ADVANCE(80); - if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(83); + if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(157); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(158); END_STATE(); case 26: if (eof) ADVANCE(30); ADVANCE_MAP( '\n', 31, '"', 1, - '#', 65, + '#', 68, '$', 19, '%', 23, '\'', 9, '-', 7, - '.', 147, + '.', 165, '/', 10, - '0', 79, + '0', 82, ':', 33, - ';', 154, + ';', 172, '=', 24, ); if (lookahead == '\t' || lookahead == '\r' || lookahead == ' ') SKIP(26); - if (('1' <= lookahead && lookahead <= '9')) ADVANCE(80); - if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(83); + if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(157); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(158); END_STATE(); case 27: if (eof) ADVANCE(30); ADVANCE_MAP( '\n', 31, '"', 1, - '#', 65, + '#', 68, '$', 19, - '%', 61, - '&', 64, + '%', 64, + '&', 67, '\'', 9, '(', 34, - '*', 55, - '+', 53, + '*', 58, + '+', 56, ',', 32, - '-', 40, - '.', 147, - '/', 59, - '0', 71, - ';', 154, + '-', 43, + '.', 165, + '/', 62, + '0', 74, + ';', 172, '=', 24, - '^', 63, - '|', 62, + '^', 66, + '|', 65, ); if (lookahead == '\t' || lookahead == '\r' || lookahead == ' ') SKIP(27); - if (('1' <= lookahead && lookahead <= '9')) ADVANCE(72); - if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(75); + if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(157); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(158); END_STATE(); case 28: if (eof) ADVANCE(30); ADVANCE_MAP( '\n', 31, - '#', 65, - '%', 60, - '&', 64, + '#', 68, + '%', 63, + '&', 67, '(', 34, ')', 35, - '*', 55, - '+', 53, + '*', 58, + '+', 56, ',', 32, - '-', 39, - '.', 147, - '/', 59, - ';', 154, - ']', 54, - '^', 63, - 'c', 110, - 'l', 95, - '|', 62, - '}', 41, + '-', 42, + '.', 165, + '/', 62, + ';', 172, + ']', 57, + '^', 66, + 'c', 124, + 'l', 103, + '|', 65, + '}', 44, ); if (lookahead == '\t' || lookahead == '\r' || @@ -980,19 +1004,19 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(158); END_STATE(); case 29: if (eof) ADVANCE(30); ADVANCE_MAP( '\n', 31, - '#', 65, + '#', 68, '%', 23, '(', 34, '.', 22, '/', 10, - ';', 154, - '}', 41, + ';', 172, + '}', 44, '$', 24, '=', 24, ); @@ -1000,9 +1024,9 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { lookahead == '\r' || lookahead == ' ') SKIP(29); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(142); + lookahead == '_') ADVANCE(160); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(141); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(159); END_STATE(); case 30: ACCEPT_TOKEN(ts_builtin_sym_end); @@ -1024,886 +1048,1045 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { END_STATE(); case 36: ACCEPT_TOKEN(anon_sym_label); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(166); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(158); END_STATE(); case 37: ACCEPT_TOKEN(anon_sym_const); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(166); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(158); END_STATE(); case 38: - ACCEPT_TOKEN(anon_sym_LBRACE); + ACCEPT_TOKEN(anon_sym_offset); + if (lookahead == '.') ADVANCE(166); + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_') ADVANCE(158); + if (('0' <= lookahead && lookahead <= '9') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(157); END_STATE(); case 39: - ACCEPT_TOKEN(anon_sym_DASH); + ACCEPT_TOKEN(anon_sym_offset); + if (lookahead == '.') ADVANCE(166); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(158); END_STATE(); case 40: + ACCEPT_TOKEN(anon_sym_OFFSET); + if (lookahead == '.') ADVANCE(166); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(158); + END_STATE(); + case 41: + ACCEPT_TOKEN(anon_sym_LBRACE); + END_STATE(); + case 42: + ACCEPT_TOKEN(anon_sym_DASH); + END_STATE(); + case 43: ACCEPT_TOKEN(anon_sym_DASH); if (lookahead == '$') ADVANCE(20); - if (lookahead == '0') ADVANCE(84); - if (('1' <= lookahead && lookahead <= '9')) ADVANCE(86); + if (lookahead == '0') ADVANCE(87); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(89); END_STATE(); - case 41: + case 44: ACCEPT_TOKEN(anon_sym_RBRACE); END_STATE(); - case 42: + case 45: ACCEPT_TOKEN(anon_sym_byte); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(166); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(158); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(157); END_STATE(); - case 43: + case 46: ACCEPT_TOKEN(anon_sym_byte); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(166); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(158); END_STATE(); - case 44: + case 47: ACCEPT_TOKEN(anon_sym_word); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(166); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(158); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(157); END_STATE(); - case 45: + case 48: ACCEPT_TOKEN(anon_sym_word); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(166); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(158); END_STATE(); - case 46: + case 49: ACCEPT_TOKEN(anon_sym_dword); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(166); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(158); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(157); END_STATE(); - case 47: + case 50: ACCEPT_TOKEN(anon_sym_dword); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(166); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(158); END_STATE(); - case 48: + case 51: ACCEPT_TOKEN(anon_sym_qword); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(166); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(158); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(157); END_STATE(); - case 49: + case 52: ACCEPT_TOKEN(anon_sym_qword); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(166); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(158); END_STATE(); - case 50: + case 53: ACCEPT_TOKEN(anon_sym_ptr); END_STATE(); - case 51: + case 54: ACCEPT_TOKEN(anon_sym_ptr); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(166); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(158); END_STATE(); - case 52: + case 55: ACCEPT_TOKEN(anon_sym_LBRACK); END_STATE(); - case 53: + case 56: ACCEPT_TOKEN(anon_sym_PLUS); END_STATE(); - case 54: + case 57: ACCEPT_TOKEN(anon_sym_RBRACK); END_STATE(); - case 55: + case 58: ACCEPT_TOKEN(anon_sym_STAR); END_STATE(); - case 56: + case 59: ACCEPT_TOKEN(anon_sym_rel); END_STATE(); - case 57: + case 60: ACCEPT_TOKEN(anon_sym_rel); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(166); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(158); END_STATE(); - case 58: + case 61: ACCEPT_TOKEN(anon_sym_BANG); END_STATE(); - case 59: + case 62: ACCEPT_TOKEN(anon_sym_SLASH); if (lookahead == '*') ADVANCE(12); - if (lookahead == '/') ADVANCE(154); + if (lookahead == '/') ADVANCE(172); END_STATE(); - case 60: + case 63: ACCEPT_TOKEN(anon_sym_PERCENT); END_STATE(); - case 61: + case 64: ACCEPT_TOKEN(anon_sym_PERCENT); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(143); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(161); END_STATE(); - case 62: + case 65: ACCEPT_TOKEN(anon_sym_PIPE); END_STATE(); - case 63: + case 66: ACCEPT_TOKEN(anon_sym_CARET); END_STATE(); - case 64: + case 67: ACCEPT_TOKEN(anon_sym_AMP); END_STATE(); - case 65: + case 68: ACCEPT_TOKEN(anon_sym_POUND); END_STATE(); - case 66: + case 69: ACCEPT_TOKEN(anon_sym_POUND); if (lookahead != 0 && - lookahead != '\n') ADVANCE(153); + lookahead != '\n') ADVANCE(171); END_STATE(); - case 67: + case 70: ACCEPT_TOKEN(aux_sym_int_token1); if (lookahead == 'b') ADVANCE(18); if (lookahead == 'x') ADVANCE(21); if (('0' <= lookahead && lookahead <= '9') || - lookahead == '_') ADVANCE(69); + lookahead == '_') ADVANCE(72); END_STATE(); - case 68: + case 71: ACCEPT_TOKEN(aux_sym_int_token1); if (lookahead == '0' || lookahead == '1' || - lookahead == '_') ADVANCE(68); + lookahead == '_') ADVANCE(71); END_STATE(); - case 69: + case 72: ACCEPT_TOKEN(aux_sym_int_token1); if (('0' <= lookahead && lookahead <= '9') || - lookahead == '_') ADVANCE(69); + lookahead == '_') ADVANCE(72); END_STATE(); - case 70: + case 73: ACCEPT_TOKEN(aux_sym_int_token1); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'f')) ADVANCE(70); + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(73); END_STATE(); - case 71: + case 74: ACCEPT_TOKEN(aux_sym_int_token2); - if (lookahead == '.') ADVANCE(148); - if (lookahead == '_') ADVANCE(77); - if (lookahead == 'b') ADVANCE(136); - if (lookahead == 'x') ADVANCE(137); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(72); - if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); - if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(140); + if (lookahead == '.') ADVANCE(166); + if (lookahead == '_') ADVANCE(80); + if (lookahead == 'b') ADVANCE(154); + if (lookahead == 'x') ADVANCE(155); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(75); + if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(157); + if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(158); END_STATE(); - case 72: + case 75: ACCEPT_TOKEN(aux_sym_int_token2); - if (lookahead == '.') ADVANCE(148); - if (lookahead == '_') ADVANCE(77); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(72); - if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(140); - if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + if (lookahead == '.') ADVANCE(166); + if (lookahead == '_') ADVANCE(80); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(75); + if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(158); + if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(157); END_STATE(); - case 73: + case 76: ACCEPT_TOKEN(aux_sym_int_token2); - if (lookahead == '.') ADVANCE(148); - if (lookahead == '_') ADVANCE(75); + if (lookahead == '.') ADVANCE(166); + if (lookahead == '_') ADVANCE(78); if (lookahead == '0' || - lookahead == '1') ADVANCE(73); - if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(140); + lookahead == '1') ADVANCE(76); + if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(158); if (('2' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(157); END_STATE(); - case 74: + case 77: ACCEPT_TOKEN(aux_sym_int_token2); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'b') ADVANCE(135); - if (lookahead == 'x') ADVANCE(138); + if (lookahead == '.') ADVANCE(166); + if (lookahead == 'b') ADVANCE(153); + if (lookahead == 'x') ADVANCE(156); if (('0' <= lookahead && lookahead <= '9') || - lookahead == '_') ADVANCE(77); + lookahead == '_') ADVANCE(80); if (('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(158); END_STATE(); - case 75: + case 78: ACCEPT_TOKEN(aux_sym_int_token2); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(166); if (lookahead == '0' || lookahead == '1' || - lookahead == '_') ADVANCE(75); + lookahead == '_') ADVANCE(78); if (('2' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(158); END_STATE(); - case 76: + case 79: ACCEPT_TOKEN(aux_sym_int_token2); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(166); if (('A' <= lookahead && lookahead <= 'F') || - lookahead == '_') ADVANCE(78); + lookahead == '_') ADVANCE(81); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'f')) ADVANCE(76); - if (('G' <= lookahead && lookahead <= 'Z')) ADVANCE(140); - if (('g' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(79); + if (('G' <= lookahead && lookahead <= 'Z')) ADVANCE(158); + if (('g' <= lookahead && lookahead <= 'z')) ADVANCE(157); END_STATE(); - case 77: + case 80: ACCEPT_TOKEN(aux_sym_int_token2); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(166); if (('0' <= lookahead && lookahead <= '9') || - lookahead == '_') ADVANCE(77); + lookahead == '_') ADVANCE(80); if (('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(158); END_STATE(); - case 78: + case 81: ACCEPT_TOKEN(aux_sym_int_token2); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(166); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'f')) ADVANCE(78); + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(81); if (('G' <= lookahead && lookahead <= 'Z') || - ('g' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('g' <= lookahead && lookahead <= 'z')) ADVANCE(158); END_STATE(); - case 79: + case 82: ACCEPT_TOKEN(aux_sym_int_token2); - if (lookahead == '.') ADVANCE(89); - if (lookahead == '_') ADVANCE(81); - if (lookahead == 'b') ADVANCE(136); - if (lookahead == 'x') ADVANCE(137); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(80); - if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); - if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(140); + if (lookahead == '.') ADVANCE(92); + if (lookahead == '_') ADVANCE(84); + if (lookahead == 'b') ADVANCE(154); + if (lookahead == 'x') ADVANCE(155); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(83); + if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(157); + if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(158); END_STATE(); - case 80: + case 83: ACCEPT_TOKEN(aux_sym_int_token2); - if (lookahead == '.') ADVANCE(89); - if (lookahead == '_') ADVANCE(81); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(80); - if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(140); - if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + if (lookahead == '.') ADVANCE(92); + if (lookahead == '_') ADVANCE(84); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(83); + if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(158); + if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(157); END_STATE(); - case 81: + case 84: ACCEPT_TOKEN(aux_sym_int_token2); - if (lookahead == '.') ADVANCE(89); + if (lookahead == '.') ADVANCE(92); if (('0' <= lookahead && lookahead <= '9') || - lookahead == '_') ADVANCE(81); + lookahead == '_') ADVANCE(84); if (('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(158); END_STATE(); - case 82: + case 85: ACCEPT_TOKEN(aux_sym_int_token2); - if (lookahead == '.') ADVANCE(90); + if (lookahead == '.') ADVANCE(93); if (lookahead == 'b') ADVANCE(17); if (lookahead == 'x') ADVANCE(20); if (('0' <= lookahead && lookahead <= '9') || - lookahead == '_') ADVANCE(83); + lookahead == '_') ADVANCE(86); END_STATE(); - case 83: + case 86: ACCEPT_TOKEN(aux_sym_int_token2); - if (lookahead == '.') ADVANCE(90); + if (lookahead == '.') ADVANCE(93); if (('0' <= lookahead && lookahead <= '9') || - lookahead == '_') ADVANCE(83); + lookahead == '_') ADVANCE(86); END_STATE(); - case 84: + case 87: ACCEPT_TOKEN(aux_sym_int_token2); if (lookahead == 'b') ADVANCE(17); if (lookahead == 'x') ADVANCE(20); if (('0' <= lookahead && lookahead <= '9') || - lookahead == '_') ADVANCE(86); + lookahead == '_') ADVANCE(89); END_STATE(); - case 85: + case 88: ACCEPT_TOKEN(aux_sym_int_token2); if (lookahead == '0' || lookahead == '1' || - lookahead == '_') ADVANCE(85); + lookahead == '_') ADVANCE(88); END_STATE(); - case 86: + case 89: ACCEPT_TOKEN(aux_sym_int_token2); if (('0' <= lookahead && lookahead <= '9') || - lookahead == '_') ADVANCE(86); + lookahead == '_') ADVANCE(89); END_STATE(); - case 87: + case 90: ACCEPT_TOKEN(aux_sym_int_token2); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'f')) ADVANCE(87); + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(90); if (('G' <= lookahead && lookahead <= 'Z') || - ('g' <= lookahead && lookahead <= 'z')) ADVANCE(144); + ('g' <= lookahead && lookahead <= 'z')) ADVANCE(162); END_STATE(); - case 88: + case 91: ACCEPT_TOKEN(aux_sym_int_token2); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'f')) ADVANCE(88); + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(91); END_STATE(); - case 89: + case 92: ACCEPT_TOKEN(sym_float); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(91); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(94); if (lookahead == '.' || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(166); END_STATE(); - case 90: + case 93: ACCEPT_TOKEN(sym_float); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(92); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(95); END_STATE(); - case 91: + case 94: ACCEPT_TOKEN(sym_float); if (('0' <= lookahead && lookahead <= '9') || - lookahead == '_') ADVANCE(91); + lookahead == '_') ADVANCE(94); if (lookahead == '.' || ('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(166); END_STATE(); - case 92: + case 95: ACCEPT_TOKEN(sym_float); if (('0' <= lookahead && lookahead <= '9') || - lookahead == '_') ADVANCE(92); + lookahead == '_') ADVANCE(95); END_STATE(); - case 93: + case 96: ACCEPT_TOKEN(aux_sym_string_token1); END_STATE(); - case 94: + case 97: ACCEPT_TOKEN(aux_sym_string_token2); END_STATE(); - case 95: + case 98: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'a') ADVANCE(96); + if (lookahead == '.') ADVANCE(166); + if (lookahead == 'E') ADVANCE(102); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('b' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(158); END_STATE(); - case 96: + case 99: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'b') ADVANCE(106); + if (lookahead == '.') ADVANCE(166); + if (lookahead == 'F') ADVANCE(101); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(158); END_STATE(); - case 97: + case 100: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'd') ADVANCE(45); + if (lookahead == '.') ADVANCE(166); + if (lookahead == 'F') ADVANCE(99); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(158); END_STATE(); - case 98: + case 101: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'd') ADVANCE(47); + if (lookahead == '.') ADVANCE(166); + if (lookahead == 'S') ADVANCE(98); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(158); END_STATE(); - case 99: + case 102: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'd') ADVANCE(49); + if (lookahead == '.') ADVANCE(166); + if (lookahead == 'T') ADVANCE(40); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); - END_STATE(); - case 100: - ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'd') ADVANCE(44); - if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); - if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); - END_STATE(); - case 101: - ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'd') ADVANCE(46); - if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); - if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); - END_STATE(); - case 102: - ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'd') ADVANCE(48); - if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); - if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(158); END_STATE(); case 103: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'e') ADVANCE(107); + if (lookahead == '.') ADVANCE(166); + if (lookahead == 'a') ADVANCE(104); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('b' <= lookahead && lookahead <= 'z')) ADVANCE(158); END_STATE(); case 104: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'e') ADVANCE(43); + if (lookahead == '.') ADVANCE(166); + if (lookahead == 'b') ADVANCE(114); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(158); END_STATE(); case 105: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'e') ADVANCE(42); - if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + if (lookahead == '.') ADVANCE(166); + if (lookahead == 'd') ADVANCE(48); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(158); END_STATE(); case 106: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'e') ADVANCE(108); + if (lookahead == '.') ADVANCE(166); + if (lookahead == 'd') ADVANCE(50); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(158); END_STATE(); case 107: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'l') ADVANCE(57); + if (lookahead == '.') ADVANCE(166); + if (lookahead == 'd') ADVANCE(52); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(158); END_STATE(); case 108: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'l') ADVANCE(36); + if (lookahead == '.') ADVANCE(166); + if (lookahead == 'd') ADVANCE(47); + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_') ADVANCE(158); if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(157); END_STATE(); case 109: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'n') ADVANCE(124); + if (lookahead == '.') ADVANCE(166); + if (lookahead == 'd') ADVANCE(49); + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_') ADVANCE(158); if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(157); END_STATE(); case 110: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'o') ADVANCE(109); + if (lookahead == '.') ADVANCE(166); + if (lookahead == 'd') ADVANCE(51); + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_') ADVANCE(158); if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(157); END_STATE(); case 111: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'o') ADVANCE(119); - if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + if (lookahead == '.') ADVANCE(166); + if (lookahead == 'e') ADVANCE(121); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(158); END_STATE(); case 112: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'o') ADVANCE(118); + if (lookahead == '.') ADVANCE(166); + if (lookahead == 'e') ADVANCE(46); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(158); END_STATE(); case 113: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'o') ADVANCE(120); + if (lookahead == '.') ADVANCE(166); + if (lookahead == 'e') ADVANCE(45); + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_') ADVANCE(158); if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(157); END_STATE(); case 114: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'o') ADVANCE(122); + if (lookahead == '.') ADVANCE(166); + if (lookahead == 'e') ADVANCE(122); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(158); END_STATE(); case 115: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'o') ADVANCE(121); + if (lookahead == '.') ADVANCE(166); + if (lookahead == 'e') ADVANCE(145); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(158); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(157); END_STATE(); case 116: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'o') ADVANCE(123); - if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + if (lookahead == '.') ADVANCE(166); + if (lookahead == 'e') ADVANCE(143); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(158); END_STATE(); case 117: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'r') ADVANCE(51); + if (lookahead == '.') ADVANCE(166); + if (lookahead == 'f') ADVANCE(138); + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_') ADVANCE(158); if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(157); END_STATE(); case 118: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'r') ADVANCE(97); + if (lookahead == '.') ADVANCE(166); + if (lookahead == 'f') ADVANCE(119); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(158); END_STATE(); case 119: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'r') ADVANCE(100); - if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + if (lookahead == '.') ADVANCE(166); + if (lookahead == 'f') ADVANCE(140); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(158); END_STATE(); case 120: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'r') ADVANCE(98); + if (lookahead == '.') ADVANCE(166); + if (lookahead == 'f') ADVANCE(117); + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_') ADVANCE(158); if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(157); END_STATE(); case 121: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'r') ADVANCE(101); - if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + if (lookahead == '.') ADVANCE(166); + if (lookahead == 'l') ADVANCE(60); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(158); END_STATE(); case 122: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'r') ADVANCE(99); + if (lookahead == '.') ADVANCE(166); + if (lookahead == 'l') ADVANCE(36); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(158); END_STATE(); case 123: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'r') ADVANCE(102); - if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + if (lookahead == '.') ADVANCE(166); + if (lookahead == 'n') ADVANCE(139); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(158); END_STATE(); case 124: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 's') ADVANCE(126); + if (lookahead == '.') ADVANCE(166); + if (lookahead == 'o') ADVANCE(123); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(158); END_STATE(); case 125: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 't') ADVANCE(117); + if (lookahead == '.') ADVANCE(166); + if (lookahead == 'o') ADVANCE(133); + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_') ADVANCE(158); if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(157); END_STATE(); case 126: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 't') ADVANCE(37); + if (lookahead == '.') ADVANCE(166); + if (lookahead == 'o') ADVANCE(132); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(158); END_STATE(); case 127: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 't') ADVANCE(105); - if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + if (lookahead == '.') ADVANCE(166); + if (lookahead == 'o') ADVANCE(134); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(158); END_STATE(); case 128: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 't') ADVANCE(104); + if (lookahead == '.') ADVANCE(166); + if (lookahead == 'o') ADVANCE(136); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(158); END_STATE(); case 129: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'w') ADVANCE(113); + if (lookahead == '.') ADVANCE(166); + if (lookahead == 'o') ADVANCE(135); + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_') ADVANCE(158); if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(157); END_STATE(); case 130: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'w') ADVANCE(114); + if (lookahead == '.') ADVANCE(166); + if (lookahead == 'o') ADVANCE(137); + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_') ADVANCE(158); if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(157); END_STATE(); case 131: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'w') ADVANCE(115); - if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + if (lookahead == '.') ADVANCE(166); + if (lookahead == 'r') ADVANCE(54); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(158); END_STATE(); case 132: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'w') ADVANCE(116); - if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + if (lookahead == '.') ADVANCE(166); + if (lookahead == 'r') ADVANCE(105); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(158); END_STATE(); case 133: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'y') ADVANCE(127); + if (lookahead == '.') ADVANCE(166); + if (lookahead == 'r') ADVANCE(108); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(158); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(157); END_STATE(); case 134: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'y') ADVANCE(128); + if (lookahead == '.') ADVANCE(166); + if (lookahead == 'r') ADVANCE(106); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(158); END_STATE(); case 135: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == '0' || - lookahead == '1') ADVANCE(75); - if (('2' <= lookahead && lookahead <= '9') || + if (lookahead == '.') ADVANCE(166); + if (lookahead == 'r') ADVANCE(109); + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_') ADVANCE(158); + if (('0' <= lookahead && lookahead <= '9') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(157); + END_STATE(); + case 136: + ACCEPT_TOKEN(sym_word); + if (lookahead == '.') ADVANCE(166); + if (lookahead == 'r') ADVANCE(107); + if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(158); END_STATE(); - case 136: + case 137: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(166); + if (lookahead == 'r') ADVANCE(110); + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_') ADVANCE(158); + if (('0' <= lookahead && lookahead <= '9') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(157); + END_STATE(); + case 138: + ACCEPT_TOKEN(sym_word); + if (lookahead == '.') ADVANCE(166); + if (lookahead == 's') ADVANCE(115); + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_') ADVANCE(158); + if (('0' <= lookahead && lookahead <= '9') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(157); + END_STATE(); + case 139: + ACCEPT_TOKEN(sym_word); + if (lookahead == '.') ADVANCE(166); + if (lookahead == 's') ADVANCE(142); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(158); + END_STATE(); + case 140: + ACCEPT_TOKEN(sym_word); + if (lookahead == '.') ADVANCE(166); + if (lookahead == 's') ADVANCE(116); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(158); + END_STATE(); + case 141: + ACCEPT_TOKEN(sym_word); + if (lookahead == '.') ADVANCE(166); + if (lookahead == 't') ADVANCE(131); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(158); + END_STATE(); + case 142: + ACCEPT_TOKEN(sym_word); + if (lookahead == '.') ADVANCE(166); + if (lookahead == 't') ADVANCE(37); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(158); + END_STATE(); + case 143: + ACCEPT_TOKEN(sym_word); + if (lookahead == '.') ADVANCE(166); + if (lookahead == 't') ADVANCE(39); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(158); + END_STATE(); + case 144: + ACCEPT_TOKEN(sym_word); + if (lookahead == '.') ADVANCE(166); + if (lookahead == 't') ADVANCE(113); + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_') ADVANCE(158); + if (('0' <= lookahead && lookahead <= '9') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(157); + END_STATE(); + case 145: + ACCEPT_TOKEN(sym_word); + if (lookahead == '.') ADVANCE(166); + if (lookahead == 't') ADVANCE(38); + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_') ADVANCE(158); + if (('0' <= lookahead && lookahead <= '9') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(157); + END_STATE(); + case 146: + ACCEPT_TOKEN(sym_word); + if (lookahead == '.') ADVANCE(166); + if (lookahead == 't') ADVANCE(112); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(158); + END_STATE(); + case 147: + ACCEPT_TOKEN(sym_word); + if (lookahead == '.') ADVANCE(166); + if (lookahead == 'w') ADVANCE(127); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(158); + END_STATE(); + case 148: + ACCEPT_TOKEN(sym_word); + if (lookahead == '.') ADVANCE(166); + if (lookahead == 'w') ADVANCE(128); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(158); + END_STATE(); + case 149: + ACCEPT_TOKEN(sym_word); + if (lookahead == '.') ADVANCE(166); + if (lookahead == 'w') ADVANCE(129); + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_') ADVANCE(158); + if (('0' <= lookahead && lookahead <= '9') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(157); + END_STATE(); + case 150: + ACCEPT_TOKEN(sym_word); + if (lookahead == '.') ADVANCE(166); + if (lookahead == 'w') ADVANCE(130); + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_') ADVANCE(158); + if (('0' <= lookahead && lookahead <= '9') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(157); + END_STATE(); + case 151: + ACCEPT_TOKEN(sym_word); + if (lookahead == '.') ADVANCE(166); + if (lookahead == 'y') ADVANCE(144); + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_') ADVANCE(158); + if (('0' <= lookahead && lookahead <= '9') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(157); + END_STATE(); + case 152: + ACCEPT_TOKEN(sym_word); + if (lookahead == '.') ADVANCE(166); + if (lookahead == 'y') ADVANCE(146); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(158); + END_STATE(); + case 153: + ACCEPT_TOKEN(sym_word); + if (lookahead == '.') ADVANCE(166); + if (lookahead == '0' || + lookahead == '1') ADVANCE(78); + if (('2' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(158); + END_STATE(); + case 154: + ACCEPT_TOKEN(sym_word); + if (lookahead == '.') ADVANCE(166); if (lookahead == '0' || - lookahead == '1') ADVANCE(73); + lookahead == '1') ADVANCE(76); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(158); if (('2' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(157); END_STATE(); - case 137: + case 155: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (('A' <= lookahead && lookahead <= 'F')) ADVANCE(78); + if (lookahead == '.') ADVANCE(166); + if (('A' <= lookahead && lookahead <= 'F')) ADVANCE(81); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'f')) ADVANCE(76); - if (('g' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(79); + if (('g' <= lookahead && lookahead <= 'z')) ADVANCE(157); if (('G' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(158); END_STATE(); - case 138: + case 156: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(166); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || - ('a' <= lookahead && lookahead <= 'f')) ADVANCE(78); + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(81); if (('G' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('g' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('g' <= lookahead && lookahead <= 'z')) ADVANCE(158); END_STATE(); - case 139: + case 157: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(166); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(158); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(157); END_STATE(); - case 140: + case 158: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(166); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(158); END_STATE(); - case 141: + case 159: ACCEPT_TOKEN(sym_word); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(142); + lookahead == '_') ADVANCE(160); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(141); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(159); END_STATE(); - case 142: + case 160: ACCEPT_TOKEN(sym_word); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(142); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(160); END_STATE(); - case 143: + case 161: ACCEPT_TOKEN(sym__reg); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(143); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(161); END_STATE(); - case 144: + case 162: ACCEPT_TOKEN(sym_address); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(144); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(162); END_STATE(); - case 145: + case 163: ACCEPT_TOKEN(sym_meta_ident); if (lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(145); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(163); if (lookahead == '.' || ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z')) ADVANCE(148); + ('A' <= lookahead && lookahead <= 'Z')) ADVANCE(166); END_STATE(); - case 146: + case 164: ACCEPT_TOKEN(sym_meta_ident); if (lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(146); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(164); END_STATE(); - case 147: + case 165: ACCEPT_TOKEN(sym__ident); if (lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(145); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(163); if (lookahead == '.' || ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z')) ADVANCE(148); + ('A' <= lookahead && lookahead <= 'Z')) ADVANCE(166); END_STATE(); - case 148: + case 166: ACCEPT_TOKEN(sym__ident); if (lookahead == '.' || ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(166); END_STATE(); - case 149: + case 167: ACCEPT_TOKEN(aux_sym_line_comment_token1); if (lookahead == '\n') ADVANCE(12); - if (lookahead == '*') ADVANCE(149); - if (lookahead == '/') ADVANCE(153); - if (lookahead != 0) ADVANCE(150); + if (lookahead == '*') ADVANCE(167); + if (lookahead == '/') ADVANCE(171); + if (lookahead != 0) ADVANCE(168); END_STATE(); - case 150: + case 168: ACCEPT_TOKEN(aux_sym_line_comment_token1); if (lookahead == '\n') ADVANCE(12); - if (lookahead == '*') ADVANCE(149); - if (lookahead != 0) ADVANCE(150); + if (lookahead == '*') ADVANCE(167); + if (lookahead != 0) ADVANCE(168); END_STATE(); - case 151: + case 169: ACCEPT_TOKEN(aux_sym_line_comment_token1); - if (lookahead == '#') ADVANCE(66); - if (lookahead == '/') ADVANCE(152); - if (lookahead == ';') ADVANCE(153); + if (lookahead == '#') ADVANCE(69); + if (lookahead == '/') ADVANCE(170); + if (lookahead == ';') ADVANCE(171); if (lookahead == '\t' || lookahead == '\r' || - lookahead == ' ') ADVANCE(151); + lookahead == ' ') ADVANCE(169); if (lookahead != 0 && lookahead != '\t' && - lookahead != '\n') ADVANCE(153); + lookahead != '\n') ADVANCE(171); END_STATE(); - case 152: + case 170: ACCEPT_TOKEN(aux_sym_line_comment_token1); - if (lookahead == '*') ADVANCE(150); - if (lookahead == '/') ADVANCE(153); + if (lookahead == '*') ADVANCE(168); + if (lookahead == '/') ADVANCE(171); if (lookahead != 0 && - lookahead != '\n') ADVANCE(153); + lookahead != '\n') ADVANCE(171); END_STATE(); - case 153: + case 171: ACCEPT_TOKEN(aux_sym_line_comment_token1); if (lookahead != 0 && - lookahead != '\n') ADVANCE(153); + lookahead != '\n') ADVANCE(171); END_STATE(); - case 154: + case 172: ACCEPT_TOKEN(aux_sym_line_comment_token2); if (lookahead != 0 && - lookahead != '\n') ADVANCE(154); + lookahead != '\n') ADVANCE(172); END_STATE(); - case 155: + case 173: ACCEPT_TOKEN(sym_block_comment); END_STATE(); default: @@ -1911,7 +2094,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { } } -static const TSLexMode ts_lex_modes[STATE_COUNT] = { +static const TSLexerMode ts_lex_modes[STATE_COUNT] = { [0] = {.lex_state = 0}, [1] = {.lex_state = 28}, [2] = {.lex_state = 25}, @@ -1941,13 +2124,13 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [26] = {.lex_state = 27}, [27] = {.lex_state = 27}, [28] = {.lex_state = 27}, - [29] = {.lex_state = 27}, + [29] = {.lex_state = 28}, [30] = {.lex_state = 27}, [31] = {.lex_state = 27}, [32] = {.lex_state = 27}, [33] = {.lex_state = 27}, [34] = {.lex_state = 27}, - [35] = {.lex_state = 28}, + [35] = {.lex_state = 27}, [36] = {.lex_state = 28}, [37] = {.lex_state = 28}, [38] = {.lex_state = 28}, @@ -1965,8 +2148,8 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [50] = {.lex_state = 27}, [51] = {.lex_state = 27}, [52] = {.lex_state = 28}, - [53] = {.lex_state = 28}, - [54] = {.lex_state = 4}, + [53] = {.lex_state = 4}, + [54] = {.lex_state = 28}, [55] = {.lex_state = 4}, [56] = {.lex_state = 29}, [57] = {.lex_state = 29}, @@ -1974,32 +2157,32 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [59] = {.lex_state = 29}, [60] = {.lex_state = 29}, [61] = {.lex_state = 0}, - [62] = {.lex_state = 28}, - [63] = {.lex_state = 28}, + [62] = {.lex_state = 29}, + [63] = {.lex_state = 0}, [64] = {.lex_state = 0}, [65] = {.lex_state = 0}, - [66] = {.lex_state = 0}, - [67] = {.lex_state = 29}, + [66] = {.lex_state = 28}, + [67] = {.lex_state = 0}, [68] = {.lex_state = 0}, [69] = {.lex_state = 0}, [70] = {.lex_state = 0}, [71] = {.lex_state = 0}, - [72] = {.lex_state = 29}, - [73] = {.lex_state = 29}, + [72] = {.lex_state = 28}, + [73] = {.lex_state = 0}, [74] = {.lex_state = 0}, - [75] = {.lex_state = 29}, - [76] = {.lex_state = 28}, + [75] = {.lex_state = 0}, + [76] = {.lex_state = 29}, [77] = {.lex_state = 0}, [78] = {.lex_state = 0}, - [79] = {.lex_state = 29}, + [79] = {.lex_state = 28}, [80] = {.lex_state = 0}, - [81] = {.lex_state = 0}, - [82] = {.lex_state = 28}, - [83] = {.lex_state = 0}, - [84] = {.lex_state = 0}, + [81] = {.lex_state = 28}, + [82] = {.lex_state = 0}, + [83] = {.lex_state = 29}, + [84] = {.lex_state = 29}, [85] = {.lex_state = 0}, [86] = {.lex_state = 0}, - [87] = {.lex_state = 0}, + [87] = {.lex_state = 29}, [88] = {.lex_state = 0}, [89] = {.lex_state = 0}, [90] = {.lex_state = 0}, @@ -2007,17 +2190,17 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [92] = {.lex_state = 0}, [93] = {.lex_state = 0}, [94] = {.lex_state = 0}, - [95] = {.lex_state = 0}, + [95] = {.lex_state = 28}, [96] = {.lex_state = 0}, - [97] = {.lex_state = 0}, + [97] = {.lex_state = 28}, [98] = {.lex_state = 0}, [99] = {.lex_state = 0}, [100] = {.lex_state = 0}, [101] = {.lex_state = 0}, - [102] = {.lex_state = 28}, + [102] = {.lex_state = 0}, [103] = {.lex_state = 0}, - [104] = {.lex_state = 28}, - [105] = {.lex_state = 2}, + [104] = {.lex_state = 0}, + [105] = {.lex_state = 0}, [106] = {.lex_state = 0}, [107] = {.lex_state = 0}, [108] = {.lex_state = 0}, @@ -2026,9 +2209,9 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [111] = {.lex_state = 0}, [112] = {.lex_state = 0}, [113] = {.lex_state = 0}, - [114] = {.lex_state = 0}, - [115] = {.lex_state = 2}, - [116] = {.lex_state = 151}, + [114] = {.lex_state = 2}, + [115] = {.lex_state = 0}, + [116] = {.lex_state = 2}, [117] = {.lex_state = 0}, [118] = {.lex_state = 0}, [119] = {.lex_state = 0}, @@ -2036,23 +2219,25 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [121] = {.lex_state = 0}, [122] = {.lex_state = 0}, [123] = {.lex_state = 0}, - [124] = {.lex_state = 25}, - [125] = {.lex_state = 3}, + [124] = {.lex_state = 0}, + [125] = {.lex_state = 29}, [126] = {.lex_state = 2}, - [127] = {.lex_state = 2}, - [128] = {.lex_state = 0}, + [127] = {.lex_state = 0}, + [128] = {.lex_state = 29}, [129] = {.lex_state = 0}, [130] = {.lex_state = 0}, - [131] = {.lex_state = 0}, - [132] = {.lex_state = 29}, - [133] = {.lex_state = 29}, - [134] = {.lex_state = 3}, - [135] = {(TSStateId)(-1)}, - [136] = {(TSStateId)(-1)}, + [131] = {.lex_state = 3}, + [132] = {.lex_state = 2}, + [133] = {.lex_state = 25}, + [134] = {.lex_state = 169}, + [135] = {.lex_state = 29}, + [136] = {.lex_state = 3}, + [137] = {(TSStateId)(-1),}, + [138] = {(TSStateId)(-1),}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { - [0] = { + [STATE(0)] = { [sym_line_comment] = STATE(0), [ts_builtin_sym_end] = ACTIONS(1), [anon_sym_LF] = ACTIONS(1), @@ -2062,6 +2247,8 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_RPAREN] = ACTIONS(1), [anon_sym_label] = ACTIONS(1), [anon_sym_const] = ACTIONS(1), + [anon_sym_offset] = ACTIONS(1), + [anon_sym_OFFSET] = ACTIONS(1), [anon_sym_LBRACE] = ACTIONS(1), [anon_sym_DASH] = ACTIONS(1), [anon_sym_RBRACE] = ACTIONS(1), @@ -2092,13 +2279,13 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [aux_sym_line_comment_token2] = ACTIONS(5), [sym_block_comment] = ACTIONS(7), }, - [1] = { - [sym_program] = STATE(130), - [sym__item] = STATE(81), - [sym_meta] = STATE(114), - [sym_label] = STATE(114), - [sym_const] = STATE(114), - [sym_instruction] = STATE(114), + [STATE(1)] = { + [sym_program] = STATE(119), + [sym__item] = STATE(67), + [sym_meta] = STATE(110), + [sym_label] = STATE(110), + [sym_const] = STATE(110), + [sym_instruction] = STATE(110), [sym_line_comment] = STATE(1), [ts_builtin_sym_end] = ACTIONS(9), [anon_sym_label] = ACTIONS(11), @@ -2110,237 +2297,218 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [aux_sym_line_comment_token2] = ACTIONS(5), [sym_block_comment] = ACTIONS(7), }, - [2] = { - [sym__expr] = STATE(69), - [sym_list] = STATE(100), - [sym_ptr] = STATE(100), - [sym__tc_expr] = STATE(18), - [sym_tc_infix] = STATE(17), - [sym_int] = STATE(7), - [sym_string] = STATE(10), - [sym_reg] = STATE(11), - [sym_ident] = STATE(10), + [STATE(2)] = { + [sym__expr] = STATE(61), + [sym_list] = STATE(96), + [sym_ptr] = STATE(96), + [sym__tc_expr] = STATE(14), + [sym_tc_infix] = STATE(13), + [sym_int] = STATE(6), + [sym_string] = STATE(12), + [sym_reg] = STATE(9), + [sym_ident] = STATE(12), [sym_line_comment] = STATE(2), [aux_sym_instruction_repeat2] = STATE(20), [ts_builtin_sym_end] = ACTIONS(21), [anon_sym_LF] = ACTIONS(21), [anon_sym_COLON] = ACTIONS(23), [anon_sym_LPAREN] = ACTIONS(25), - [anon_sym_LBRACE] = ACTIONS(27), - [anon_sym_byte] = ACTIONS(29), - [anon_sym_word] = ACTIONS(29), - [anon_sym_dword] = ACTIONS(29), - [anon_sym_qword] = ACTIONS(29), - [anon_sym_LBRACK] = ACTIONS(31), - [anon_sym_STAR] = ACTIONS(33), - [anon_sym_POUND] = ACTIONS(35), - [aux_sym_int_token2] = ACTIONS(37), - [sym_float] = ACTIONS(39), - [aux_sym_string_token1] = ACTIONS(41), - [aux_sym_string_token2] = ACTIONS(41), - [sym_word] = ACTIONS(43), - [sym__reg] = ACTIONS(43), - [sym_address] = ACTIONS(43), - [sym_meta_ident] = ACTIONS(45), - [sym__ident] = ACTIONS(45), + [anon_sym_offset] = ACTIONS(27), + [anon_sym_OFFSET] = ACTIONS(27), + [anon_sym_LBRACE] = ACTIONS(29), + [anon_sym_byte] = ACTIONS(31), + [anon_sym_word] = ACTIONS(31), + [anon_sym_dword] = ACTIONS(31), + [anon_sym_qword] = ACTIONS(31), + [anon_sym_LBRACK] = ACTIONS(33), + [anon_sym_STAR] = ACTIONS(35), + [anon_sym_POUND] = ACTIONS(37), + [aux_sym_int_token2] = ACTIONS(39), + [sym_float] = ACTIONS(41), + [aux_sym_string_token1] = ACTIONS(43), + [aux_sym_string_token2] = ACTIONS(43), + [sym_word] = ACTIONS(45), + [sym__reg] = ACTIONS(45), + [sym_address] = ACTIONS(45), + [sym_meta_ident] = ACTIONS(47), + [sym__ident] = ACTIONS(47), [aux_sym_line_comment_token2] = ACTIONS(5), [sym_block_comment] = ACTIONS(7), }, }; static const uint16_t ts_small_parse_table[] = { - [0] = 19, + [0] = 20, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, ACTIONS(25), 1, anon_sym_LPAREN, - ACTIONS(27), 1, + ACTIONS(29), 1, anon_sym_LBRACE, - ACTIONS(31), 1, - anon_sym_LBRACK, ACTIONS(33), 1, + anon_sym_LBRACK, + ACTIONS(35), 1, anon_sym_STAR, - ACTIONS(39), 1, + ACTIONS(41), 1, sym_float, - ACTIONS(49), 1, - anon_sym_POUND, ACTIONS(51), 1, + anon_sym_POUND, + ACTIONS(53), 1, aux_sym_int_token2, STATE(3), 1, sym_line_comment, STATE(40), 1, sym_reg, - STATE(78), 1, + STATE(64), 1, sym_int, - STATE(91), 1, + STATE(89), 1, sym__expr, - ACTIONS(47), 2, + ACTIONS(27), 2, + anon_sym_offset, + anon_sym_OFFSET, + ACTIONS(49), 2, ts_builtin_sym_end, anon_sym_LF, - ACTIONS(53), 2, + ACTIONS(55), 2, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(57), 2, + ACTIONS(59), 2, sym_meta_ident, sym__ident, - ACTIONS(55), 3, + ACTIONS(57), 3, sym_word, sym__reg, sym_address, - ACTIONS(29), 4, + ACTIONS(31), 4, anon_sym_byte, anon_sym_word, anon_sym_dword, anon_sym_qword, - STATE(100), 4, + STATE(96), 4, sym_list, sym_ptr, sym_string, sym_ident, - [69] = 19, + [73] = 20, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, ACTIONS(25), 1, anon_sym_LPAREN, - ACTIONS(27), 1, + ACTIONS(29), 1, anon_sym_LBRACE, - ACTIONS(31), 1, - anon_sym_LBRACK, ACTIONS(33), 1, + anon_sym_LBRACK, + ACTIONS(35), 1, anon_sym_STAR, - ACTIONS(39), 1, + ACTIONS(41), 1, sym_float, - ACTIONS(49), 1, - anon_sym_POUND, ACTIONS(51), 1, + anon_sym_POUND, + ACTIONS(53), 1, aux_sym_int_token2, STATE(4), 1, sym_line_comment, STATE(40), 1, sym_reg, - STATE(78), 1, + STATE(64), 1, sym_int, - STATE(91), 1, + STATE(89), 1, sym__expr, - ACTIONS(53), 2, + ACTIONS(27), 2, + anon_sym_offset, + anon_sym_OFFSET, + ACTIONS(55), 2, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(57), 2, + ACTIONS(59), 2, sym_meta_ident, sym__ident, - ACTIONS(59), 2, + ACTIONS(61), 2, ts_builtin_sym_end, anon_sym_LF, - ACTIONS(55), 3, + ACTIONS(57), 3, sym_word, sym__reg, sym_address, - ACTIONS(29), 4, + ACTIONS(31), 4, anon_sym_byte, anon_sym_word, anon_sym_dword, anon_sym_qword, - STATE(100), 4, + STATE(96), 4, sym_list, sym_ptr, sym_string, sym_ident, - [138] = 18, + [146] = 19, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, ACTIONS(25), 1, anon_sym_LPAREN, - ACTIONS(27), 1, + ACTIONS(29), 1, anon_sym_LBRACE, - ACTIONS(31), 1, - anon_sym_LBRACK, ACTIONS(33), 1, + anon_sym_LBRACK, + ACTIONS(35), 1, anon_sym_STAR, - ACTIONS(39), 1, + ACTIONS(41), 1, sym_float, - ACTIONS(49), 1, - anon_sym_POUND, ACTIONS(51), 1, + anon_sym_POUND, + ACTIONS(53), 1, aux_sym_int_token2, STATE(5), 1, sym_line_comment, STATE(40), 1, sym_reg, - STATE(78), 1, + STATE(64), 1, sym_int, - STATE(91), 1, + STATE(89), 1, sym__expr, - ACTIONS(53), 2, + ACTIONS(27), 2, + anon_sym_offset, + anon_sym_OFFSET, + ACTIONS(55), 2, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(57), 2, + ACTIONS(59), 2, sym_meta_ident, sym__ident, - ACTIONS(55), 3, + ACTIONS(57), 3, sym_word, sym__reg, sym_address, - ACTIONS(29), 4, + ACTIONS(31), 4, anon_sym_byte, anon_sym_word, anon_sym_dword, anon_sym_qword, - STATE(100), 4, + STATE(96), 4, sym_list, sym_ptr, sym_string, sym_ident, - [203] = 5, + [215] = 8, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(6), 1, - sym_line_comment, - ACTIONS(63), 9, - anon_sym_DASH, - anon_sym_SLASH, - anon_sym_PERCENT, - aux_sym_int_token2, - sym_word, - sym__reg, - sym_address, - sym_meta_ident, - sym__ident, - ACTIONS(61), 12, - ts_builtin_sym_end, - anon_sym_LF, + ACTIONS(66), 1, anon_sym_COMMA, - anon_sym_LPAREN, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_PIPE, - anon_sym_CARET, - anon_sym_AMP, - anon_sym_POUND, - aux_sym_string_token1, - aux_sym_string_token2, - [238] = 8, - ACTIONS(5), 1, - aux_sym_line_comment_token2, - ACTIONS(7), 1, - sym_block_comment, ACTIONS(68), 1, - anon_sym_COMMA, - ACTIONS(70), 1, anon_sym_LPAREN, - STATE(7), 1, + STATE(6), 1, sym_line_comment, - ACTIONS(65), 2, + ACTIONS(63), 2, ts_builtin_sym_end, anon_sym_LF, - ACTIONS(74), 8, + ACTIONS(72), 8, anon_sym_PLUS, anon_sym_STAR, anon_sym_PIPE, @@ -2349,7 +2517,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(72), 9, + ACTIONS(70), 9, anon_sym_DASH, anon_sym_SLASH, anon_sym_PERCENT, @@ -2359,14 +2527,14 @@ static const uint16_t ts_small_parse_table[] = { sym_address, sym_meta_ident, sym__ident, - [279] = 5, + [256] = 5, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(8), 1, + STATE(7), 1, sym_line_comment, - ACTIONS(78), 9, + ACTIONS(76), 9, anon_sym_DASH, anon_sym_SLASH, anon_sym_PERCENT, @@ -2376,7 +2544,7 @@ static const uint16_t ts_small_parse_table[] = { sym_address, sym_meta_ident, sym__ident, - ACTIONS(76), 12, + ACTIONS(74), 12, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, @@ -2389,14 +2557,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, aux_sym_string_token1, aux_sym_string_token2, - [314] = 5, + [291] = 5, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(9), 1, + STATE(8), 1, sym_line_comment, - ACTIONS(82), 9, + ACTIONS(80), 9, anon_sym_DASH, anon_sym_SLASH, anon_sym_PERCENT, @@ -2406,10 +2574,11 @@ static const uint16_t ts_small_parse_table[] = { sym_address, sym_meta_ident, sym__ident, - ACTIONS(80), 11, + ACTIONS(78), 12, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, + anon_sym_LPAREN, anon_sym_PLUS, anon_sym_STAR, anon_sym_PIPE, @@ -2418,19 +2587,27 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, aux_sym_string_token1, aux_sym_string_token2, - [348] = 7, + [326] = 5, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(68), 1, - anon_sym_COMMA, - STATE(10), 1, + STATE(9), 1, sym_line_comment, - ACTIONS(65), 2, + ACTIONS(84), 9, + anon_sym_DASH, + anon_sym_SLASH, + anon_sym_PERCENT, + aux_sym_int_token2, + sym_word, + sym__reg, + sym_address, + sym_meta_ident, + sym__ident, + ACTIONS(82), 11, ts_builtin_sym_end, anon_sym_LF, - ACTIONS(74), 8, + anon_sym_COMMA, anon_sym_PLUS, anon_sym_STAR, anon_sym_PIPE, @@ -2439,24 +2616,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(72), 9, - anon_sym_DASH, - anon_sym_SLASH, - anon_sym_PERCENT, - aux_sym_int_token2, - sym_word, - sym__reg, - sym_address, - sym_meta_ident, - sym__ident, - [386] = 5, + [360] = 5, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(11), 1, + STATE(10), 1, sym_line_comment, - ACTIONS(86), 9, + ACTIONS(88), 9, anon_sym_DASH, anon_sym_SLASH, anon_sym_PERCENT, @@ -2466,7 +2633,7 @@ static const uint16_t ts_small_parse_table[] = { sym_address, sym_meta_ident, sym__ident, - ACTIONS(84), 11, + ACTIONS(86), 11, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, @@ -2478,14 +2645,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, aux_sym_string_token1, aux_sym_string_token2, - [420] = 5, + [394] = 5, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(12), 1, + STATE(11), 1, sym_line_comment, - ACTIONS(90), 9, + ACTIONS(92), 9, anon_sym_DASH, anon_sym_SLASH, anon_sym_PERCENT, @@ -2495,7 +2662,7 @@ static const uint16_t ts_small_parse_table[] = { sym_address, sym_meta_ident, sym__ident, - ACTIONS(88), 11, + ACTIONS(90), 11, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, @@ -2507,28 +2674,28 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, aux_sym_string_token1, aux_sym_string_token2, - [454] = 8, + [428] = 7, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(96), 1, - anon_sym_PIPE, - ACTIONS(98), 1, - anon_sym_CARET, - ACTIONS(100), 1, - anon_sym_AMP, - STATE(13), 1, + ACTIONS(66), 1, + anon_sym_COMMA, + STATE(12), 1, sym_line_comment, - ACTIONS(92), 7, + ACTIONS(63), 2, ts_builtin_sym_end, anon_sym_LF, + ACTIONS(72), 8, anon_sym_PLUS, anon_sym_STAR, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, anon_sym_POUND, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(94), 9, + ACTIONS(70), 9, anon_sym_DASH, anon_sym_SLASH, anon_sym_PERCENT, @@ -2538,57 +2705,24 @@ static const uint16_t ts_small_parse_table[] = { sym_address, sym_meta_ident, sym__ident, - [493] = 10, + [466] = 5, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(96), 1, - anon_sym_PIPE, - ACTIONS(98), 1, - anon_sym_CARET, - ACTIONS(100), 1, - anon_sym_AMP, - ACTIONS(102), 1, - anon_sym_STAR, - STATE(14), 1, + STATE(13), 1, sym_line_comment, - ACTIONS(104), 2, + ACTIONS(70), 9, + anon_sym_DASH, anon_sym_SLASH, anon_sym_PERCENT, - ACTIONS(92), 6, - ts_builtin_sym_end, - anon_sym_LF, - anon_sym_PLUS, - anon_sym_POUND, - aux_sym_string_token1, - aux_sym_string_token2, - ACTIONS(94), 7, - anon_sym_DASH, aux_sym_int_token2, sym_word, sym__reg, sym_address, sym_meta_ident, sym__ident, - [536] = 5, - ACTIONS(5), 1, - aux_sym_line_comment_token2, - ACTIONS(7), 1, - sym_block_comment, - STATE(15), 1, - sym_line_comment, - ACTIONS(94), 9, - anon_sym_DASH, - anon_sym_SLASH, - anon_sym_PERCENT, - aux_sym_int_token2, - sym_word, - sym__reg, - sym_address, - sym_meta_ident, - sym__ident, - ACTIONS(92), 10, + ACTIONS(72), 10, ts_builtin_sym_end, anon_sym_LF, anon_sym_PLUS, @@ -2599,44 +2733,61 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, aux_sym_string_token1, aux_sym_string_token2, - [569] = 7, + [499] = 12, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, + ACTIONS(96), 1, + anon_sym_DASH, ACTIONS(98), 1, - anon_sym_CARET, + anon_sym_PLUS, ACTIONS(100), 1, + anon_sym_STAR, + ACTIONS(104), 1, + anon_sym_PIPE, + ACTIONS(106), 1, + anon_sym_CARET, + ACTIONS(108), 1, anon_sym_AMP, - STATE(16), 1, + STATE(14), 1, sym_line_comment, - ACTIONS(92), 8, + ACTIONS(102), 2, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(94), 5, ts_builtin_sym_end, anon_sym_LF, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_PIPE, anon_sym_POUND, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(94), 9, - anon_sym_DASH, - anon_sym_SLASH, - anon_sym_PERCENT, + ACTIONS(110), 6, aux_sym_int_token2, sym_word, sym__reg, sym_address, sym_meta_ident, sym__ident, - [606] = 5, + [546] = 6, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(17), 1, + ACTIONS(108), 1, + anon_sym_AMP, + STATE(15), 1, sym_line_comment, - ACTIONS(72), 9, + ACTIONS(112), 9, + ts_builtin_sym_end, + anon_sym_LF, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_POUND, + aux_sym_string_token1, + aux_sym_string_token2, + ACTIONS(114), 9, anon_sym_DASH, anon_sym_SLASH, anon_sym_PERCENT, @@ -2646,72 +2797,91 @@ static const uint16_t ts_small_parse_table[] = { sym_address, sym_meta_ident, sym__ident, - ACTIONS(74), 10, - ts_builtin_sym_end, - anon_sym_LF, - anon_sym_PLUS, + [581] = 10, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(100), 1, anon_sym_STAR, + ACTIONS(104), 1, anon_sym_PIPE, + ACTIONS(106), 1, anon_sym_CARET, + ACTIONS(108), 1, anon_sym_AMP, + STATE(16), 1, + sym_line_comment, + ACTIONS(102), 2, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(112), 6, + ts_builtin_sym_end, + anon_sym_LF, + anon_sym_PLUS, anon_sym_POUND, aux_sym_string_token1, aux_sym_string_token2, - [639] = 12, + ACTIONS(114), 7, + anon_sym_DASH, + aux_sym_int_token2, + sym_word, + sym__reg, + sym_address, + sym_meta_ident, + sym__ident, + [624] = 8, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(96), 1, + ACTIONS(104), 1, anon_sym_PIPE, - ACTIONS(98), 1, + ACTIONS(106), 1, anon_sym_CARET, - ACTIONS(100), 1, - anon_sym_AMP, - ACTIONS(102), 1, - anon_sym_STAR, ACTIONS(108), 1, - anon_sym_DASH, - ACTIONS(110), 1, - anon_sym_PLUS, - STATE(18), 1, + anon_sym_AMP, + STATE(17), 1, sym_line_comment, - ACTIONS(104), 2, - anon_sym_SLASH, - anon_sym_PERCENT, - ACTIONS(106), 5, + ACTIONS(112), 7, ts_builtin_sym_end, anon_sym_LF, + anon_sym_PLUS, + anon_sym_STAR, anon_sym_POUND, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(112), 6, + ACTIONS(114), 9, + anon_sym_DASH, + anon_sym_SLASH, + anon_sym_PERCENT, aux_sym_int_token2, sym_word, sym__reg, sym_address, sym_meta_ident, sym__ident, - [686] = 6, + [663] = 7, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(100), 1, + ACTIONS(106), 1, + anon_sym_CARET, + ACTIONS(108), 1, anon_sym_AMP, - STATE(19), 1, + STATE(18), 1, sym_line_comment, - ACTIONS(92), 9, + ACTIONS(112), 8, ts_builtin_sym_end, anon_sym_LF, anon_sym_PLUS, anon_sym_STAR, anon_sym_PIPE, - anon_sym_CARET, anon_sym_POUND, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(94), 9, + ACTIONS(114), 9, anon_sym_DASH, anon_sym_SLASH, anon_sym_PERCENT, @@ -2721,525 +2891,529 @@ static const uint16_t ts_small_parse_table[] = { sym_address, sym_meta_ident, sym__ident, - [721] = 13, + [700] = 5, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(35), 1, + STATE(19), 1, + sym_line_comment, + ACTIONS(114), 9, + anon_sym_DASH, + anon_sym_SLASH, + anon_sym_PERCENT, + aux_sym_int_token2, + sym_word, + sym__reg, + sym_address, + sym_meta_ident, + sym__ident, + ACTIONS(112), 10, + ts_builtin_sym_end, + anon_sym_LF, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, anon_sym_POUND, + aux_sym_string_token1, + aux_sym_string_token2, + [733] = 13, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, ACTIONS(37), 1, + anon_sym_POUND, + ACTIONS(39), 1, aux_sym_int_token2, - STATE(11), 1, + STATE(9), 1, sym_reg, - STATE(18), 1, + STATE(14), 1, sym__tc_expr, STATE(20), 1, sym_line_comment, STATE(21), 1, aux_sym_instruction_repeat2, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(45), 2, + ACTIONS(47), 2, sym_meta_ident, sym__ident, - ACTIONS(114), 2, + ACTIONS(116), 2, ts_builtin_sym_end, anon_sym_LF, - ACTIONS(43), 3, + ACTIONS(45), 3, sym_word, sym__reg, sym_address, - STATE(17), 4, + STATE(13), 4, sym_tc_infix, sym_int, sym_string, sym_ident, - [769] = 12, + [781] = 12, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(118), 1, + ACTIONS(120), 1, anon_sym_POUND, - ACTIONS(121), 1, + ACTIONS(123), 1, aux_sym_int_token2, - STATE(11), 1, + STATE(9), 1, sym_reg, - STATE(18), 1, + STATE(14), 1, sym__tc_expr, - ACTIONS(116), 2, + ACTIONS(118), 2, ts_builtin_sym_end, anon_sym_LF, - ACTIONS(124), 2, + ACTIONS(126), 2, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(130), 2, + ACTIONS(132), 2, sym_meta_ident, sym__ident, STATE(21), 2, sym_line_comment, aux_sym_instruction_repeat2, - ACTIONS(127), 3, + ACTIONS(129), 3, sym_word, sym__reg, sym_address, - STATE(17), 4, + STATE(13), 4, sym_tc_infix, sym_int, sym_string, sym_ident, - [815] = 15, + [827] = 15, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(49), 1, - anon_sym_POUND, ACTIONS(51), 1, + anon_sym_POUND, + ACTIONS(53), 1, aux_sym_int_token2, - ACTIONS(135), 1, - anon_sym_COLON, ACTIONS(137), 1, + anon_sym_COLON, + ACTIONS(139), 1, sym_float, STATE(22), 1, sym_line_comment, STATE(40), 1, sym_reg, - STATE(65), 1, - sym_string, - STATE(74), 1, + STATE(78), 1, sym_int, - STATE(106), 1, + STATE(80), 1, + sym_string, + STATE(113), 1, sym_ident, - ACTIONS(53), 2, + ACTIONS(55), 2, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(57), 2, + ACTIONS(59), 2, sym_meta_ident, sym__ident, - ACTIONS(133), 2, + ACTIONS(135), 2, ts_builtin_sym_end, anon_sym_LF, - ACTIONS(55), 3, + ACTIONS(57), 3, sym_word, sym__reg, sym_address, - [866] = 14, + [878] = 14, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(49), 1, - anon_sym_POUND, ACTIONS(51), 1, + anon_sym_POUND, + ACTIONS(53), 1, aux_sym_int_token2, - ACTIONS(137), 1, + ACTIONS(139), 1, sym_float, STATE(23), 1, sym_line_comment, STATE(40), 1, sym_reg, - STATE(65), 1, - sym_string, - STATE(74), 1, + STATE(78), 1, sym_int, - STATE(106), 1, + STATE(80), 1, + sym_string, + STATE(113), 1, sym_ident, - ACTIONS(53), 2, + ACTIONS(55), 2, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(57), 2, + ACTIONS(59), 2, sym_meta_ident, sym__ident, - ACTIONS(133), 2, + ACTIONS(135), 2, ts_builtin_sym_end, anon_sym_LF, - ACTIONS(55), 3, + ACTIONS(57), 3, sym_word, sym__reg, sym_address, - [914] = 11, + [926] = 11, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(49), 1, + ACTIONS(37), 1, anon_sym_POUND, - ACTIONS(51), 1, + ACTIONS(39), 1, aux_sym_int_token2, - STATE(24), 1, - sym_line_comment, - STATE(40), 1, + STATE(9), 1, sym_reg, - STATE(49), 1, + STATE(15), 1, sym__tc_expr, - ACTIONS(53), 2, + STATE(24), 1, + sym_line_comment, + ACTIONS(43), 2, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(57), 2, + ACTIONS(47), 2, sym_meta_ident, sym__ident, - ACTIONS(55), 3, + ACTIONS(45), 3, sym_word, sym__reg, sym_address, - STATE(43), 4, + STATE(13), 4, sym_tc_infix, sym_int, sym_string, sym_ident, - [955] = 11, + [967] = 11, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(35), 1, - anon_sym_POUND, ACTIONS(37), 1, + anon_sym_POUND, + ACTIONS(39), 1, aux_sym_int_token2, - STATE(11), 1, + STATE(9), 1, sym_reg, - STATE(14), 1, + STATE(17), 1, sym__tc_expr, STATE(25), 1, sym_line_comment, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(45), 2, + ACTIONS(47), 2, sym_meta_ident, sym__ident, - ACTIONS(43), 3, + ACTIONS(45), 3, sym_word, sym__reg, sym_address, - STATE(17), 4, + STATE(13), 4, sym_tc_infix, sym_int, sym_string, sym_ident, - [996] = 11, + [1008] = 11, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(49), 1, + ACTIONS(37), 1, anon_sym_POUND, - ACTIONS(51), 1, + ACTIONS(39), 1, aux_sym_int_token2, - STATE(26), 1, - sym_line_comment, - STATE(40), 1, + STATE(9), 1, sym_reg, - STATE(44), 1, + STATE(18), 1, sym__tc_expr, - ACTIONS(53), 2, + STATE(26), 1, + sym_line_comment, + ACTIONS(43), 2, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(57), 2, + ACTIONS(47), 2, sym_meta_ident, sym__ident, - ACTIONS(55), 3, + ACTIONS(45), 3, sym_word, sym__reg, sym_address, - STATE(43), 4, + STATE(13), 4, sym_tc_infix, sym_int, sym_string, sym_ident, - [1037] = 11, + [1049] = 11, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(35), 1, + ACTIONS(51), 1, anon_sym_POUND, - ACTIONS(37), 1, + ACTIONS(53), 1, aux_sym_int_token2, - STATE(11), 1, - sym_reg, - STATE(13), 1, - sym__tc_expr, STATE(27), 1, sym_line_comment, - ACTIONS(41), 2, + STATE(40), 1, + sym_reg, + STATE(46), 1, + sym__tc_expr, + ACTIONS(55), 2, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(45), 2, + ACTIONS(59), 2, sym_meta_ident, sym__ident, - ACTIONS(43), 3, + ACTIONS(57), 3, sym_word, sym__reg, sym_address, - STATE(17), 4, + STATE(45), 4, sym_tc_infix, sym_int, sym_string, sym_ident, - [1078] = 11, + [1090] = 11, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(35), 1, - anon_sym_POUND, ACTIONS(37), 1, + anon_sym_POUND, + ACTIONS(39), 1, aux_sym_int_token2, - STATE(11), 1, + STATE(9), 1, sym_reg, - STATE(16), 1, + STATE(19), 1, sym__tc_expr, STATE(28), 1, sym_line_comment, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(45), 2, + ACTIONS(47), 2, sym_meta_ident, sym__ident, - ACTIONS(43), 3, + ACTIONS(45), 3, sym_word, sym__reg, sym_address, - STATE(17), 4, + STATE(13), 4, sym_tc_infix, sym_int, sym_string, sym_ident, - [1119] = 11, + [1131] = 6, + ACTIONS(3), 1, + anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(35), 1, + ACTIONS(92), 1, + anon_sym_SLASH, + STATE(29), 1, + sym_line_comment, + ACTIONS(90), 13, + ts_builtin_sym_end, + anon_sym_LF, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_DASH, + anon_sym_RBRACE, + anon_sym_PLUS, + anon_sym_RBRACK, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + [1162] = 11, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(51), 1, anon_sym_POUND, - ACTIONS(37), 1, + ACTIONS(53), 1, aux_sym_int_token2, - STATE(11), 1, + STATE(30), 1, + sym_line_comment, + STATE(40), 1, sym_reg, - STATE(19), 1, + STATE(49), 1, sym__tc_expr, - STATE(29), 1, - sym_line_comment, - ACTIONS(41), 2, + ACTIONS(55), 2, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(45), 2, + ACTIONS(59), 2, sym_meta_ident, sym__ident, - ACTIONS(43), 3, + ACTIONS(57), 3, sym_word, sym__reg, sym_address, - STATE(17), 4, + STATE(45), 4, sym_tc_infix, sym_int, sym_string, sym_ident, - [1160] = 11, + [1203] = 11, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(49), 1, - anon_sym_POUND, ACTIONS(51), 1, + anon_sym_POUND, + ACTIONS(53), 1, aux_sym_int_token2, - STATE(30), 1, + STATE(31), 1, sym_line_comment, STATE(40), 1, sym_reg, STATE(48), 1, sym__tc_expr, - ACTIONS(53), 2, + ACTIONS(55), 2, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(57), 2, + ACTIONS(59), 2, sym_meta_ident, sym__ident, - ACTIONS(55), 3, + ACTIONS(57), 3, sym_word, sym__reg, sym_address, - STATE(43), 4, + STATE(45), 4, sym_tc_infix, sym_int, sym_string, sym_ident, - [1201] = 11, + [1244] = 11, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(35), 1, + ACTIONS(51), 1, anon_sym_POUND, - ACTIONS(37), 1, + ACTIONS(53), 1, aux_sym_int_token2, - STATE(11), 1, + STATE(32), 1, + sym_line_comment, + STATE(40), 1, sym_reg, - STATE(15), 1, + STATE(43), 1, sym__tc_expr, - STATE(31), 1, - sym_line_comment, - ACTIONS(41), 2, + ACTIONS(55), 2, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(45), 2, + ACTIONS(59), 2, sym_meta_ident, sym__ident, - ACTIONS(43), 3, + ACTIONS(57), 3, sym_word, sym__reg, sym_address, - STATE(17), 4, + STATE(45), 4, sym_tc_infix, sym_int, sym_string, sym_ident, - [1242] = 11, + [1285] = 11, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(49), 1, - anon_sym_POUND, ACTIONS(51), 1, + anon_sym_POUND, + ACTIONS(53), 1, aux_sym_int_token2, - STATE(32), 1, + STATE(33), 1, sym_line_comment, STATE(40), 1, sym_reg, - STATE(46), 1, + STATE(47), 1, sym__tc_expr, - ACTIONS(53), 2, + ACTIONS(55), 2, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(57), 2, + ACTIONS(59), 2, sym_meta_ident, sym__ident, - ACTIONS(55), 3, + ACTIONS(57), 3, sym_word, sym__reg, sym_address, - STATE(43), 4, + STATE(45), 4, sym_tc_infix, sym_int, sym_string, sym_ident, - [1283] = 11, + [1326] = 11, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(49), 1, - anon_sym_POUND, ACTIONS(51), 1, + anon_sym_POUND, + ACTIONS(53), 1, aux_sym_int_token2, - STATE(33), 1, + STATE(34), 1, sym_line_comment, STATE(40), 1, sym_reg, - STATE(47), 1, + STATE(44), 1, sym__tc_expr, - ACTIONS(53), 2, + ACTIONS(55), 2, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(57), 2, + ACTIONS(59), 2, sym_meta_ident, sym__ident, - ACTIONS(55), 3, + ACTIONS(57), 3, sym_word, sym__reg, sym_address, - STATE(43), 4, + STATE(45), 4, sym_tc_infix, sym_int, sym_string, sym_ident, - [1324] = 11, + [1367] = 11, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(49), 1, + ACTIONS(37), 1, anon_sym_POUND, - ACTIONS(51), 1, + ACTIONS(39), 1, aux_sym_int_token2, - STATE(34), 1, - sym_line_comment, - STATE(40), 1, + STATE(9), 1, sym_reg, - STATE(45), 1, + STATE(16), 1, sym__tc_expr, - ACTIONS(53), 2, + STATE(35), 1, + sym_line_comment, + ACTIONS(43), 2, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(57), 2, + ACTIONS(47), 2, sym_meta_ident, sym__ident, - ACTIONS(55), 3, + ACTIONS(45), 3, sym_word, sym__reg, sym_address, - STATE(43), 4, + STATE(13), 4, sym_tc_infix, sym_int, sym_string, sym_ident, - [1365] = 6, - ACTIONS(3), 1, - anon_sym_POUND, - ACTIONS(5), 1, - aux_sym_line_comment_token2, - ACTIONS(7), 1, - sym_block_comment, - ACTIONS(82), 1, - anon_sym_SLASH, - STATE(35), 1, - sym_line_comment, - ACTIONS(80), 13, - ts_builtin_sym_end, - anon_sym_LF, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_DASH, - anon_sym_RBRACE, - anon_sym_PLUS, - anon_sym_RBRACK, - anon_sym_STAR, - anon_sym_PERCENT, - anon_sym_PIPE, - anon_sym_CARET, - anon_sym_AMP, - [1396] = 6, - ACTIONS(3), 1, - anon_sym_POUND, - ACTIONS(5), 1, - aux_sym_line_comment_token2, - ACTIONS(7), 1, - sym_block_comment, - ACTIONS(78), 1, - anon_sym_SLASH, - STATE(36), 1, - sym_line_comment, - ACTIONS(76), 12, - ts_builtin_sym_end, - anon_sym_LF, - anon_sym_COMMA, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_RBRACK, - anon_sym_STAR, - anon_sym_PERCENT, - anon_sym_PIPE, - anon_sym_CARET, - anon_sym_AMP, - [1426] = 14, + [1408] = 14, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -3256,22 +3430,22 @@ static const uint16_t ts_small_parse_table[] = { sym_meta_ident, ACTIONS(19), 1, sym__ident, - ACTIONS(139), 1, - ts_builtin_sym_end, ACTIONS(141), 1, + ts_builtin_sym_end, + ACTIONS(143), 1, anon_sym_LF, - STATE(37), 1, + STATE(36), 1, sym_line_comment, STATE(52), 1, aux_sym_program_repeat1, - STATE(110), 1, + STATE(107), 1, sym__item, - STATE(114), 4, + STATE(110), 4, sym_meta, sym_label, sym_const, sym_instruction, - [1472] = 14, + [1454] = 14, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -3288,33 +3462,57 @@ static const uint16_t ts_small_parse_table[] = { sym_meta_ident, ACTIONS(19), 1, sym__ident, - ACTIONS(141), 1, - anon_sym_LF, ACTIONS(143), 1, + anon_sym_LF, + ACTIONS(145), 1, ts_builtin_sym_end, - STATE(38), 1, + STATE(37), 1, sym_line_comment, STATE(52), 1, aux_sym_program_repeat1, - STATE(110), 1, + STATE(107), 1, sym__item, - STATE(114), 4, + STATE(110), 4, sym_meta, sym_label, sym_const, sym_instruction, - [1518] = 6, + [1500] = 6, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(76), 1, + anon_sym_SLASH, + STATE(38), 1, + sym_line_comment, + ACTIONS(74), 12, + ts_builtin_sym_end, + anon_sym_LF, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_RBRACK, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + [1530] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(63), 1, + ACTIONS(80), 1, anon_sym_SLASH, STATE(39), 1, sym_line_comment, - ACTIONS(61), 12, + ACTIONS(78), 12, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, @@ -3327,18 +3525,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_CARET, anon_sym_AMP, - [1548] = 6, + [1560] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(86), 1, + ACTIONS(84), 1, anon_sym_SLASH, STATE(40), 1, sym_line_comment, - ACTIONS(84), 12, + ACTIONS(82), 12, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, @@ -3351,7 +3549,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_CARET, anon_sym_AMP, - [1578] = 13, + [1590] = 13, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -3368,31 +3566,31 @@ static const uint16_t ts_small_parse_table[] = { sym_meta_ident, ACTIONS(19), 1, sym__ident, - ACTIONS(141), 1, + ACTIONS(143), 1, anon_sym_LF, STATE(41), 1, sym_line_comment, STATE(52), 1, aux_sym_program_repeat1, - STATE(110), 1, + STATE(107), 1, sym__item, - STATE(114), 4, + STATE(110), 4, sym_meta, sym_label, sym_const, sym_instruction, - [1621] = 6, + [1633] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(90), 1, + ACTIONS(88), 1, anon_sym_SLASH, STATE(42), 1, sym_line_comment, - ACTIONS(88), 10, + ACTIONS(86), 10, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, @@ -3403,41 +3601,45 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_CARET, anon_sym_AMP, - [1649] = 6, + [1661] = 10, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(72), 1, + ACTIONS(149), 1, anon_sym_SLASH, + ACTIONS(151), 1, + anon_sym_PIPE, + ACTIONS(153), 1, + anon_sym_CARET, + ACTIONS(155), 1, + anon_sym_AMP, STATE(43), 1, sym_line_comment, - ACTIONS(74), 9, + ACTIONS(147), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(112), 4, ts_builtin_sym_end, anon_sym_LF, anon_sym_DASH, anon_sym_PLUS, - anon_sym_STAR, - anon_sym_PERCENT, - anon_sym_PIPE, - anon_sym_CARET, - anon_sym_AMP, - [1676] = 7, + [1696] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(94), 1, + ACTIONS(114), 1, anon_sym_SLASH, - ACTIONS(145), 1, + ACTIONS(155), 1, anon_sym_AMP, STATE(44), 1, sym_line_comment, - ACTIONS(92), 8, + ACTIONS(112), 8, ts_builtin_sym_end, anon_sym_LF, anon_sym_DASH, @@ -3446,22 +3648,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PERCENT, anon_sym_PIPE, anon_sym_CARET, - [1705] = 8, + [1725] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(94), 1, + ACTIONS(70), 1, anon_sym_SLASH, - ACTIONS(145), 1, - anon_sym_AMP, - ACTIONS(147), 1, - anon_sym_CARET, STATE(45), 1, sym_line_comment, - ACTIONS(92), 7, + ACTIONS(72), 9, ts_builtin_sym_end, anon_sym_LF, anon_sym_DASH, @@ -3469,93 +3667,93 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_STAR, anon_sym_PERCENT, anon_sym_PIPE, - [1736] = 11, + anon_sym_CARET, + anon_sym_AMP, + [1752] = 11, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(145), 1, - anon_sym_AMP, - ACTIONS(147), 1, - anon_sym_CARET, - ACTIONS(155), 1, + ACTIONS(149), 1, anon_sym_SLASH, - ACTIONS(157), 1, + ACTIONS(151), 1, anon_sym_PIPE, + ACTIONS(153), 1, + anon_sym_CARET, + ACTIONS(155), 1, + anon_sym_AMP, STATE(46), 1, sym_line_comment, - ACTIONS(149), 2, + ACTIONS(147), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(157), 2, ts_builtin_sym_end, anon_sym_LF, - ACTIONS(151), 2, + ACTIONS(159), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(153), 2, - anon_sym_STAR, - anon_sym_PERCENT, - [1773] = 9, + [1789] = 9, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(94), 1, + ACTIONS(114), 1, anon_sym_SLASH, - ACTIONS(145), 1, - anon_sym_AMP, - ACTIONS(147), 1, - anon_sym_CARET, - ACTIONS(157), 1, + ACTIONS(151), 1, anon_sym_PIPE, + ACTIONS(153), 1, + anon_sym_CARET, + ACTIONS(155), 1, + anon_sym_AMP, STATE(47), 1, sym_line_comment, - ACTIONS(92), 6, + ACTIONS(112), 6, ts_builtin_sym_end, anon_sym_LF, anon_sym_DASH, anon_sym_PLUS, anon_sym_STAR, anon_sym_PERCENT, - [1806] = 10, + [1822] = 8, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(145), 1, - anon_sym_AMP, - ACTIONS(147), 1, + ACTIONS(114), 1, + anon_sym_SLASH, + ACTIONS(153), 1, anon_sym_CARET, ACTIONS(155), 1, - anon_sym_SLASH, - ACTIONS(157), 1, - anon_sym_PIPE, + anon_sym_AMP, STATE(48), 1, sym_line_comment, - ACTIONS(153), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(92), 4, + ACTIONS(112), 7, ts_builtin_sym_end, anon_sym_LF, anon_sym_DASH, anon_sym_PLUS, - [1841] = 6, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_PIPE, + [1853] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(94), 1, + ACTIONS(114), 1, anon_sym_SLASH, STATE(49), 1, sym_line_comment, - ACTIONS(92), 9, + ACTIONS(112), 9, ts_builtin_sym_end, anon_sym_LF, anon_sym_DASH, @@ -3565,446 +3763,440 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_CARET, anon_sym_AMP, - [1868] = 9, + [1880] = 9, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(49), 1, - anon_sym_POUND, ACTIONS(51), 1, + anon_sym_POUND, + ACTIONS(53), 1, aux_sym_int_token2, STATE(40), 1, sym_reg, STATE(50), 1, sym_line_comment, - ACTIONS(57), 2, + ACTIONS(59), 2, sym_meta_ident, sym__ident, - STATE(122), 2, + STATE(118), 2, sym_int, sym_ident, - ACTIONS(55), 3, + ACTIONS(57), 3, sym_word, sym__reg, sym_address, - [1900] = 9, + [1912] = 9, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(49), 1, - anon_sym_POUND, ACTIONS(51), 1, + anon_sym_POUND, + ACTIONS(53), 1, aux_sym_int_token2, STATE(40), 1, sym_reg, STATE(51), 1, sym_line_comment, - ACTIONS(57), 2, + ACTIONS(59), 2, sym_meta_ident, sym__ident, STATE(117), 2, sym_int, sym_ident, - ACTIONS(55), 3, + ACTIONS(57), 3, sym_word, sym__reg, sym_address, - [1932] = 7, + [1944] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(159), 1, - ts_builtin_sym_end, ACTIONS(161), 1, + ts_builtin_sym_end, + ACTIONS(163), 1, anon_sym_LF, STATE(52), 2, sym_line_comment, aux_sym_program_repeat1, - ACTIONS(164), 5, + ACTIONS(166), 5, anon_sym_label, anon_sym_const, sym_word, sym_meta_ident, sym__ident, - [1959] = 6, + [1971] = 9, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, + ACTIONS(168), 1, + sym_address, + STATE(40), 1, + sym_reg, STATE(53), 1, sym_line_comment, - ACTIONS(166), 2, - ts_builtin_sym_end, - anon_sym_LF, - ACTIONS(168), 5, - anon_sym_label, - anon_sym_const, + STATE(129), 1, + sym_ident, + ACTIONS(57), 2, sym_word, + sym__reg, + ACTIONS(59), 2, sym_meta_ident, sym__ident, - [1983] = 9, + [2001] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(170), 1, - sym_address, - STATE(40), 1, - sym_reg, STATE(54), 1, sym_line_comment, - STATE(128), 1, - sym_ident, - ACTIONS(55), 2, + ACTIONS(170), 2, + ts_builtin_sym_end, + anon_sym_LF, + ACTIONS(172), 5, + anon_sym_label, + anon_sym_const, sym_word, - sym__reg, - ACTIONS(57), 2, sym_meta_ident, sym__ident, - [2013] = 9, + [2025] = 9, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(170), 1, + ACTIONS(168), 1, sym_address, STATE(40), 1, sym_reg, STATE(55), 1, sym_line_comment, - STATE(129), 1, + STATE(124), 1, sym_ident, - ACTIONS(55), 2, + ACTIONS(57), 2, sym_word, sym__reg, - ACTIONS(57), 2, + ACTIONS(59), 2, sym_meta_ident, sym__ident, - [2043] = 8, + [2055] = 8, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(55), 1, + ACTIONS(57), 1, sym__reg, - ACTIONS(172), 1, + ACTIONS(174), 1, anon_sym_RBRACE, STATE(56), 1, sym_line_comment, - STATE(82), 1, + STATE(66), 1, sym_reg, - ACTIONS(170), 2, + ACTIONS(168), 2, sym_word, sym_address, - [2069] = 8, + [2081] = 8, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(55), 1, + ACTIONS(57), 1, sym__reg, - ACTIONS(174), 1, + ACTIONS(176), 1, anon_sym_RBRACE, STATE(57), 1, sym_line_comment, - STATE(104), 1, + STATE(95), 1, sym_reg, - ACTIONS(170), 2, + ACTIONS(168), 2, sym_word, sym_address, - [2095] = 8, + [2107] = 8, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, + ACTIONS(57), 1, + sym__reg, ACTIONS(178), 1, - anon_sym_LPAREN, - ACTIONS(180), 1, - sym_meta_ident, + anon_sym_RBRACE, STATE(58), 1, sym_line_comment, - STATE(108), 1, - sym_meta, - ACTIONS(176), 2, - ts_builtin_sym_end, - anon_sym_LF, - [2121] = 8, + STATE(95), 1, + sym_reg, + ACTIONS(168), 2, + sym_word, + sym_address, + [2133] = 8, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(55), 1, - sym__reg, ACTIONS(182), 1, - anon_sym_RBRACE, + anon_sym_LPAREN, + ACTIONS(184), 1, + sym_meta_ident, STATE(59), 1, sym_line_comment, - STATE(104), 1, - sym_reg, - ACTIONS(170), 2, - sym_word, - sym_address, - [2147] = 8, + STATE(106), 1, + sym_meta, + ACTIONS(180), 2, + ts_builtin_sym_end, + anon_sym_LF, + [2159] = 8, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(180), 1, + ACTIONS(184), 1, sym_meta_ident, - ACTIONS(186), 1, + ACTIONS(188), 1, anon_sym_LPAREN, STATE(60), 1, sym_line_comment, - STATE(111), 1, + STATE(115), 1, sym_meta, - ACTIONS(184), 2, + ACTIONS(186), 2, ts_builtin_sym_end, anon_sym_LF, - [2173] = 7, + [2185] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(188), 1, - ts_builtin_sym_end, ACTIONS(190), 1, - anon_sym_LF, - STATE(41), 1, - aux_sym_program_repeat1, - STATE(61), 2, + anon_sym_COMMA, + STATE(61), 1, sym_line_comment, - aux_sym_program_repeat2, - [2196] = 8, + STATE(85), 1, + aux_sym_instruction_repeat1, + ACTIONS(116), 2, + ts_builtin_sym_end, + anon_sym_LF, + [2208] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(182), 1, - anon_sym_RBRACE, - ACTIONS(193), 1, - anon_sym_COMMA, - ACTIONS(195), 1, - anon_sym_DASH, + ACTIONS(57), 1, + sym__reg, STATE(62), 1, sym_line_comment, - STATE(63), 1, - aux_sym_list_repeat1, - [2221] = 6, + STATE(130), 1, + sym_reg, + ACTIONS(168), 2, + sym_word, + sym_address, + [2231] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(200), 1, - anon_sym_RBRACE, - ACTIONS(197), 2, - anon_sym_COMMA, - anon_sym_DASH, - STATE(63), 2, + ACTIONS(194), 1, + anon_sym_BANG, + STATE(63), 1, sym_line_comment, - aux_sym_list_repeat1, - [2242] = 7, + ACTIONS(192), 3, + ts_builtin_sym_end, + anon_sym_LF, + anon_sym_COMMA, + [2252] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(204), 1, - anon_sym_COMMA, + ACTIONS(68), 1, + anon_sym_LPAREN, STATE(64), 1, sym_line_comment, - STATE(86), 1, - aux_sym_meta_repeat2, - ACTIONS(202), 2, + ACTIONS(66), 3, ts_builtin_sym_end, anon_sym_LF, - [2265] = 7, + anon_sym_COMMA, + [2273] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(208), 1, + ACTIONS(198), 1, anon_sym_COMMA, - STATE(65), 1, - sym_line_comment, - STATE(68), 1, - aux_sym_meta_repeat3, - ACTIONS(206), 2, + ACTIONS(196), 2, ts_builtin_sym_end, anon_sym_LF, - [2288] = 7, + STATE(65), 2, + sym_line_comment, + aux_sym_instruction_repeat1, + [2294] = 8, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(210), 1, + ACTIONS(201), 1, anon_sym_COMMA, + ACTIONS(203), 1, + anon_sym_DASH, + ACTIONS(205), 1, + anon_sym_RBRACE, STATE(66), 1, sym_line_comment, - STATE(87), 1, - aux_sym_meta_repeat1, - ACTIONS(202), 2, - ts_builtin_sym_end, - anon_sym_LF, - [2311] = 7, + STATE(81), 1, + aux_sym_list_repeat1, + [2319] = 8, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(55), 1, - sym__reg, + ACTIONS(143), 1, + anon_sym_LF, + ACTIONS(207), 1, + ts_builtin_sym_end, + STATE(36), 1, + aux_sym_program_repeat1, STATE(67), 1, sym_line_comment, - STATE(121), 1, - sym_reg, - ACTIONS(170), 2, - sym_word, - sym_address, - [2334] = 7, + STATE(82), 1, + aux_sym_program_repeat2, + [2344] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(208), 1, + ACTIONS(211), 1, anon_sym_COMMA, - STATE(68), 1, - sym_line_comment, - STATE(84), 1, - aux_sym_meta_repeat3, - ACTIONS(202), 2, + ACTIONS(209), 2, ts_builtin_sym_end, anon_sym_LF, - [2357] = 7, + STATE(68), 2, + sym_line_comment, + aux_sym_meta_repeat2, + [2365] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(212), 1, + ACTIONS(216), 1, anon_sym_COMMA, - STATE(69), 1, - sym_line_comment, - STATE(71), 1, - aux_sym_instruction_repeat1, - ACTIONS(114), 2, + ACTIONS(214), 2, ts_builtin_sym_end, anon_sym_LF, - [2380] = 7, + STATE(69), 2, + sym_line_comment, + aux_sym_meta_repeat1, + [2386] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(204), 1, + ACTIONS(221), 1, anon_sym_COMMA, - STATE(64), 1, - aux_sym_meta_repeat2, - STATE(70), 1, - sym_line_comment, - ACTIONS(206), 2, + ACTIONS(219), 2, ts_builtin_sym_end, anon_sym_LF, - [2403] = 7, + STATE(70), 2, + sym_line_comment, + aux_sym_meta_repeat3, + [2407] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(214), 1, + ACTIONS(226), 1, anon_sym_COMMA, + STATE(68), 1, + aux_sym_meta_repeat2, STATE(71), 1, sym_line_comment, - STATE(80), 1, - aux_sym_instruction_repeat1, - ACTIONS(47), 2, + ACTIONS(224), 2, ts_builtin_sym_end, anon_sym_LF, - [2426] = 7, + [2430] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(55), 1, - sym__reg, - STATE(72), 1, + ACTIONS(231), 1, + anon_sym_RBRACE, + ACTIONS(228), 2, + anon_sym_COMMA, + anon_sym_DASH, + STATE(72), 2, sym_line_comment, - STATE(120), 1, - sym_reg, - ACTIONS(170), 2, - sym_word, - sym_address, - [2449] = 7, + aux_sym_list_repeat1, + [2451] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(55), 1, - sym__reg, - STATE(73), 1, + ACTIONS(233), 1, + ts_builtin_sym_end, + ACTIONS(235), 1, + anon_sym_LF, + STATE(41), 1, + aux_sym_program_repeat1, + STATE(73), 2, sym_line_comment, - STATE(104), 1, - sym_reg, - ACTIONS(170), 2, - sym_word, - sym_address, - [2472] = 7, + aux_sym_program_repeat2, + [2474] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(210), 1, - anon_sym_COMMA, - STATE(66), 1, - aux_sym_meta_repeat1, + ACTIONS(240), 1, + anon_sym_BANG, STATE(74), 1, sym_line_comment, - ACTIONS(206), 2, + ACTIONS(238), 3, ts_builtin_sym_end, anon_sym_LF, + anon_sym_COMMA, [2495] = 7, ACTIONS(3), 1, anon_sym_POUND, @@ -4012,15 +4204,15 @@ static const uint16_t ts_small_parse_table[] = { aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(55), 1, - sym__reg, + ACTIONS(242), 1, + anon_sym_COMMA, + STATE(69), 1, + aux_sym_meta_repeat1, STATE(75), 1, sym_line_comment, - STATE(102), 1, - sym_reg, - ACTIONS(170), 2, - sym_word, - sym_address, + ACTIONS(224), 2, + ts_builtin_sym_end, + anon_sym_LF, [2518] = 7, ACTIONS(3), 1, anon_sym_POUND, @@ -4028,188 +4220,194 @@ static const uint16_t ts_small_parse_table[] = { aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(216), 1, - anon_sym_COMMA, - ACTIONS(220), 1, - anon_sym_RBRACK, + ACTIONS(57), 1, + sym__reg, STATE(76), 1, sym_line_comment, - ACTIONS(218), 2, - anon_sym_DASH, - anon_sym_PLUS, - [2541] = 6, + STATE(95), 1, + sym_reg, + ACTIONS(168), 2, + sym_word, + sym_address, + [2541] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(224), 1, - anon_sym_BANG, + ACTIONS(226), 1, + anon_sym_COMMA, + STATE(71), 1, + aux_sym_meta_repeat2, STATE(77), 1, sym_line_comment, - ACTIONS(222), 3, + ACTIONS(244), 2, ts_builtin_sym_end, anon_sym_LF, - anon_sym_COMMA, - [2562] = 6, + [2564] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(70), 1, - anon_sym_LPAREN, + ACTIONS(242), 1, + anon_sym_COMMA, + STATE(75), 1, + aux_sym_meta_repeat1, STATE(78), 1, sym_line_comment, - ACTIONS(68), 3, + ACTIONS(244), 2, ts_builtin_sym_end, anon_sym_LF, - anon_sym_COMMA, - [2583] = 7, + [2587] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(55), 1, - sym__reg, - STATE(76), 1, - sym_reg, + ACTIONS(246), 1, + anon_sym_COMMA, + ACTIONS(250), 1, + anon_sym_RBRACK, STATE(79), 1, sym_line_comment, - ACTIONS(170), 2, - sym_word, - sym_address, - [2606] = 6, + ACTIONS(248), 2, + anon_sym_DASH, + anon_sym_PLUS, + [2610] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(228), 1, + ACTIONS(252), 1, anon_sym_COMMA, - ACTIONS(226), 2, + STATE(80), 1, + sym_line_comment, + STATE(86), 1, + aux_sym_meta_repeat3, + ACTIONS(244), 2, ts_builtin_sym_end, anon_sym_LF, - STATE(80), 2, - sym_line_comment, - aux_sym_instruction_repeat1, - [2627] = 8, + [2633] = 8, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(141), 1, - anon_sym_LF, - ACTIONS(231), 1, - ts_builtin_sym_end, - STATE(37), 1, - aux_sym_program_repeat1, + ACTIONS(176), 1, + anon_sym_RBRACE, + ACTIONS(203), 1, + anon_sym_DASH, + ACTIONS(254), 1, + anon_sym_COMMA, + STATE(72), 1, + aux_sym_list_repeat1, STATE(81), 1, sym_line_comment, - STATE(85), 1, - aux_sym_program_repeat2, - [2652] = 8, + [2658] = 8, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(195), 1, - anon_sym_DASH, - ACTIONS(233), 1, - anon_sym_COMMA, - ACTIONS(235), 1, - anon_sym_RBRACE, - STATE(62), 1, - aux_sym_list_repeat1, + ACTIONS(141), 1, + ts_builtin_sym_end, + ACTIONS(143), 1, + anon_sym_LF, + STATE(37), 1, + aux_sym_program_repeat1, + STATE(73), 1, + aux_sym_program_repeat2, STATE(82), 1, sym_line_comment, - [2677] = 6, + [2683] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(239), 1, - anon_sym_BANG, + ACTIONS(57), 1, + sym__reg, STATE(83), 1, sym_line_comment, - ACTIONS(237), 3, - ts_builtin_sym_end, - anon_sym_LF, - anon_sym_COMMA, - [2698] = 6, + STATE(123), 1, + sym_reg, + ACTIONS(168), 2, + sym_word, + sym_address, + [2706] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(243), 1, - anon_sym_COMMA, - ACTIONS(241), 2, - ts_builtin_sym_end, - anon_sym_LF, - STATE(84), 2, + ACTIONS(57), 1, + sym__reg, + STATE(84), 1, sym_line_comment, - aux_sym_meta_repeat3, - [2719] = 8, + STATE(97), 1, + sym_reg, + ACTIONS(168), 2, + sym_word, + sym_address, + [2729] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(139), 1, - ts_builtin_sym_end, - ACTIONS(141), 1, - anon_sym_LF, - STATE(38), 1, - aux_sym_program_repeat1, - STATE(61), 1, - aux_sym_program_repeat2, + ACTIONS(256), 1, + anon_sym_COMMA, + STATE(65), 1, + aux_sym_instruction_repeat1, STATE(85), 1, sym_line_comment, - [2744] = 6, + ACTIONS(49), 2, + ts_builtin_sym_end, + anon_sym_LF, + [2752] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(248), 1, + ACTIONS(252), 1, anon_sym_COMMA, - ACTIONS(246), 2, + STATE(70), 1, + aux_sym_meta_repeat3, + STATE(86), 1, + sym_line_comment, + ACTIONS(224), 2, ts_builtin_sym_end, anon_sym_LF, - STATE(86), 2, - sym_line_comment, - aux_sym_meta_repeat2, - [2765] = 6, + [2775] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(253), 1, - anon_sym_COMMA, - ACTIONS(251), 2, - ts_builtin_sym_end, - anon_sym_LF, - STATE(87), 2, + ACTIONS(57), 1, + sym__reg, + STATE(79), 1, + sym_reg, + STATE(87), 1, sym_line_comment, - aux_sym_meta_repeat1, - [2786] = 6, + ACTIONS(168), 2, + sym_word, + sym_address, + [2798] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4218,12 +4416,11 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, STATE(88), 1, sym_line_comment, - STATE(99), 1, - sym_string, - ACTIONS(53), 2, - aux_sym_string_token1, - aux_sym_string_token2, - [2806] = 5, + ACTIONS(258), 3, + ts_builtin_sym_end, + anon_sym_LF, + anon_sym_COMMA, + [2816] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4232,11 +4429,11 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, STATE(89), 1, sym_line_comment, - ACTIONS(256), 3, + ACTIONS(196), 3, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [2824] = 5, + [2834] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4245,11 +4442,11 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, STATE(90), 1, sym_line_comment, - ACTIONS(258), 3, + ACTIONS(209), 3, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [2842] = 5, + [2852] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4258,11 +4455,12 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, STATE(91), 1, sym_line_comment, - ACTIONS(226), 3, - ts_builtin_sym_end, - anon_sym_LF, - anon_sym_COMMA, - [2860] = 5, + STATE(93), 1, + sym_string, + ACTIONS(55), 2, + aux_sym_string_token1, + aux_sym_string_token2, + [2872] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4271,11 +4469,11 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, STATE(92), 1, sym_line_comment, - ACTIONS(222), 3, + ACTIONS(214), 3, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [2878] = 5, + [2890] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4284,11 +4482,11 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, STATE(93), 1, sym_line_comment, - ACTIONS(237), 3, + ACTIONS(219), 3, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [2896] = 5, + [2908] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4301,7 +4499,7 @@ static const uint16_t ts_small_parse_table[] = { ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [2914] = 5, + [2926] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4310,11 +4508,11 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, STATE(95), 1, sym_line_comment, - ACTIONS(246), 3, - ts_builtin_sym_end, - anon_sym_LF, + ACTIONS(231), 3, anon_sym_COMMA, - [2932] = 5, + anon_sym_DASH, + anon_sym_RBRACE, + [2944] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4323,24 +4521,25 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, STATE(96), 1, sym_line_comment, - ACTIONS(262), 3, + ACTIONS(66), 3, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [2950] = 5, + [2962] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, + ACTIONS(264), 1, + anon_sym_RBRACK, STATE(97), 1, sym_line_comment, - ACTIONS(251), 3, - ts_builtin_sym_end, - anon_sym_LF, - anon_sym_COMMA, - [2968] = 5, + ACTIONS(262), 2, + anon_sym_DASH, + anon_sym_PLUS, + [2982] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4349,11 +4548,11 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, STATE(98), 1, sym_line_comment, - ACTIONS(264), 3, + ACTIONS(266), 3, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [2986] = 5, + [3000] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4362,11 +4561,11 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, STATE(99), 1, sym_line_comment, - ACTIONS(241), 3, + ACTIONS(268), 3, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [3004] = 5, + [3018] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4375,11 +4574,11 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, STATE(100), 1, sym_line_comment, - ACTIONS(68), 3, + ACTIONS(270), 3, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [3022] = 5, + [3036] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4388,25 +4587,24 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, STATE(101), 1, sym_line_comment, - ACTIONS(266), 3, + ACTIONS(238), 3, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [3040] = 6, + [3054] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(270), 1, - anon_sym_RBRACK, STATE(102), 1, sym_line_comment, - ACTIONS(268), 2, - anon_sym_DASH, - anon_sym_PLUS, - [3060] = 5, + ACTIONS(272), 3, + ts_builtin_sym_end, + anon_sym_LF, + anon_sym_COMMA, + [3072] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4415,11 +4613,11 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, STATE(103), 1, sym_line_comment, - ACTIONS(272), 3, + ACTIONS(192), 3, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [3078] = 5, + [3090] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4428,24 +4626,24 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, STATE(104), 1, sym_line_comment, - ACTIONS(200), 3, + ACTIONS(274), 3, + ts_builtin_sym_end, + anon_sym_LF, anon_sym_COMMA, - anon_sym_DASH, - anon_sym_RBRACE, - [3096] = 6, + [3108] = 5, + ACTIONS(3), 1, + anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(49), 1, - anon_sym_POUND, - ACTIONS(274), 1, - aux_sym_int_token2, - STATE(97), 1, - sym_int, STATE(105), 1, sym_line_comment, - [3115] = 5, + ACTIONS(276), 3, + ts_builtin_sym_end, + anon_sym_LF, + anon_sym_COMMA, + [3126] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4454,10 +4652,10 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, STATE(106), 1, sym_line_comment, - ACTIONS(206), 2, + ACTIONS(278), 2, ts_builtin_sym_end, anon_sym_LF, - [3132] = 5, + [3143] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4466,10 +4664,10 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, STATE(107), 1, sym_line_comment, - ACTIONS(276), 2, + ACTIONS(233), 2, ts_builtin_sym_end, anon_sym_LF, - [3149] = 5, + [3160] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4478,23 +4676,23 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, STATE(108), 1, sym_line_comment, - ACTIONS(278), 2, + ACTIONS(280), 2, ts_builtin_sym_end, anon_sym_LF, - [3166] = 6, + [3177] = 6, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(49), 1, + ACTIONS(51), 1, anon_sym_POUND, - ACTIONS(274), 1, + ACTIONS(282), 1, aux_sym_int_token2, + STATE(92), 1, + sym_int, STATE(109), 1, sym_line_comment, - STATE(123), 1, - sym_int, - [3185] = 5, + [3196] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4503,10 +4701,10 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, STATE(110), 1, sym_line_comment, - ACTIONS(188), 2, + ACTIONS(284), 2, ts_builtin_sym_end, anon_sym_LF, - [3202] = 5, + [3213] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4515,10 +4713,10 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, STATE(111), 1, sym_line_comment, - ACTIONS(280), 2, + ACTIONS(286), 2, ts_builtin_sym_end, anon_sym_LF, - [3219] = 5, + [3230] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4527,10 +4725,10 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, STATE(112), 1, sym_line_comment, - ACTIONS(282), 2, + ACTIONS(288), 2, ts_builtin_sym_end, anon_sym_LF, - [3236] = 5, + [3247] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4539,548 +4737,577 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, STATE(113), 1, sym_line_comment, - ACTIONS(284), 2, + ACTIONS(244), 2, ts_builtin_sym_end, anon_sym_LF, - [3253] = 5, + [3264] = 6, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(51), 1, + anon_sym_POUND, + ACTIONS(282), 1, + aux_sym_int_token2, + STATE(114), 1, + sym_line_comment, + STATE(118), 1, + sym_int, + [3283] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(114), 1, + STATE(115), 1, sym_line_comment, - ACTIONS(286), 2, + ACTIONS(290), 2, ts_builtin_sym_end, anon_sym_LF, - [3270] = 6, + [3300] = 6, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(49), 1, + ACTIONS(51), 1, anon_sym_POUND, - ACTIONS(274), 1, + ACTIONS(282), 1, aux_sym_int_token2, - STATE(115), 1, - sym_line_comment, - STATE(122), 1, - sym_int, - [3289] = 5, - ACTIONS(288), 1, - anon_sym_POUND, - ACTIONS(290), 1, - aux_sym_line_comment_token1, - ACTIONS(292), 1, - aux_sym_line_comment_token2, - ACTIONS(294), 1, - sym_block_comment, STATE(116), 1, sym_line_comment, - [3305] = 5, + STATE(121), 1, + sym_int, + [3319] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(296), 1, + ACTIONS(292), 1, anon_sym_RBRACK, STATE(117), 1, sym_line_comment, - [3321] = 5, + [3335] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(298), 1, - anon_sym_LBRACK, + ACTIONS(264), 1, + anon_sym_RBRACK, STATE(118), 1, sym_line_comment, - [3337] = 5, + [3351] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(300), 1, - anon_sym_LBRACK, + ACTIONS(294), 1, + ts_builtin_sym_end, STATE(119), 1, sym_line_comment, - [3353] = 5, + [3367] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(224), 1, - anon_sym_RPAREN, + ACTIONS(296), 1, + anon_sym_LBRACK, STATE(120), 1, sym_line_comment, - [3369] = 5, + [3383] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(302), 1, - anon_sym_RPAREN, + ACTIONS(298), 1, + anon_sym_RBRACK, STATE(121), 1, sym_line_comment, - [3385] = 5, + [3399] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(270), 1, - anon_sym_RBRACK, + ACTIONS(23), 1, + anon_sym_COLON, STATE(122), 1, sym_line_comment, - [3401] = 5, + [3415] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(304), 1, - anon_sym_RBRACK, + ACTIONS(300), 1, + anon_sym_RPAREN, STATE(123), 1, sym_line_comment, - [3417] = 5, + [3431] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(306), 1, - sym_float, + ACTIONS(302), 1, + anon_sym_RPAREN, STATE(124), 1, sym_line_comment, - [3433] = 5, + [3447] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(308), 1, - aux_sym_int_token1, + ACTIONS(304), 1, + sym_word, STATE(125), 1, sym_line_comment, - [3449] = 5, + [3463] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(310), 1, + ACTIONS(306), 1, anon_sym_rel, STATE(126), 1, sym_line_comment, - [3465] = 5, + [3479] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(312), 1, - anon_sym_ptr, + ACTIONS(308), 1, + anon_sym_LBRACK, STATE(127), 1, sym_line_comment, - [3481] = 5, + [3495] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(314), 1, - anon_sym_RPAREN, + ACTIONS(310), 1, + sym_word, STATE(128), 1, sym_line_comment, - [3497] = 5, + [3511] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(316), 1, + ACTIONS(312), 1, anon_sym_RPAREN, STATE(129), 1, sym_line_comment, - [3513] = 5, + [3527] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(318), 1, - ts_builtin_sym_end, + ACTIONS(194), 1, + anon_sym_RPAREN, STATE(130), 1, sym_line_comment, - [3529] = 5, + [3543] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(23), 1, - anon_sym_COLON, + ACTIONS(314), 1, + aux_sym_int_token1, STATE(131), 1, sym_line_comment, - [3545] = 5, + [3559] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(320), 1, - sym_word, + ACTIONS(316), 1, + anon_sym_ptr, STATE(132), 1, sym_line_comment, - [3561] = 5, + [3575] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, + ACTIONS(318), 1, + sym_float, + STATE(133), 1, + sym_line_comment, + [3591] = 5, + ACTIONS(320), 1, + anon_sym_POUND, ACTIONS(322), 1, + aux_sym_line_comment_token1, + ACTIONS(324), 1, + aux_sym_line_comment_token2, + ACTIONS(326), 1, + sym_block_comment, + STATE(134), 1, + sym_line_comment, + [3607] = 5, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(328), 1, sym_word, - STATE(133), 1, + STATE(135), 1, sym_line_comment, - [3577] = 5, + [3623] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(324), 1, + ACTIONS(330), 1, aux_sym_int_token1, - STATE(134), 1, + STATE(136), 1, sym_line_comment, - [3593] = 1, - ACTIONS(326), 1, + [3639] = 1, + ACTIONS(332), 1, ts_builtin_sym_end, - [3597] = 1, - ACTIONS(328), 1, + [3643] = 1, + ACTIONS(334), 1, ts_builtin_sym_end, }; static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(3)] = 0, - [SMALL_STATE(4)] = 69, - [SMALL_STATE(5)] = 138, - [SMALL_STATE(6)] = 203, - [SMALL_STATE(7)] = 238, - [SMALL_STATE(8)] = 279, - [SMALL_STATE(9)] = 314, - [SMALL_STATE(10)] = 348, - [SMALL_STATE(11)] = 386, - [SMALL_STATE(12)] = 420, - [SMALL_STATE(13)] = 454, - [SMALL_STATE(14)] = 493, - [SMALL_STATE(15)] = 536, - [SMALL_STATE(16)] = 569, - [SMALL_STATE(17)] = 606, - [SMALL_STATE(18)] = 639, - [SMALL_STATE(19)] = 686, - [SMALL_STATE(20)] = 721, - [SMALL_STATE(21)] = 769, - [SMALL_STATE(22)] = 815, - [SMALL_STATE(23)] = 866, - [SMALL_STATE(24)] = 914, - [SMALL_STATE(25)] = 955, - [SMALL_STATE(26)] = 996, - [SMALL_STATE(27)] = 1037, - [SMALL_STATE(28)] = 1078, - [SMALL_STATE(29)] = 1119, - [SMALL_STATE(30)] = 1160, - [SMALL_STATE(31)] = 1201, - [SMALL_STATE(32)] = 1242, - [SMALL_STATE(33)] = 1283, - [SMALL_STATE(34)] = 1324, - [SMALL_STATE(35)] = 1365, - [SMALL_STATE(36)] = 1396, - [SMALL_STATE(37)] = 1426, - [SMALL_STATE(38)] = 1472, - [SMALL_STATE(39)] = 1518, - [SMALL_STATE(40)] = 1548, - [SMALL_STATE(41)] = 1578, - [SMALL_STATE(42)] = 1621, - [SMALL_STATE(43)] = 1649, - [SMALL_STATE(44)] = 1676, - [SMALL_STATE(45)] = 1705, - [SMALL_STATE(46)] = 1736, - [SMALL_STATE(47)] = 1773, - [SMALL_STATE(48)] = 1806, - [SMALL_STATE(49)] = 1841, - [SMALL_STATE(50)] = 1868, - [SMALL_STATE(51)] = 1900, - [SMALL_STATE(52)] = 1932, - [SMALL_STATE(53)] = 1959, - [SMALL_STATE(54)] = 1983, - [SMALL_STATE(55)] = 2013, - [SMALL_STATE(56)] = 2043, - [SMALL_STATE(57)] = 2069, - [SMALL_STATE(58)] = 2095, - [SMALL_STATE(59)] = 2121, - [SMALL_STATE(60)] = 2147, - [SMALL_STATE(61)] = 2173, - [SMALL_STATE(62)] = 2196, - [SMALL_STATE(63)] = 2221, - [SMALL_STATE(64)] = 2242, - [SMALL_STATE(65)] = 2265, - [SMALL_STATE(66)] = 2288, - [SMALL_STATE(67)] = 2311, - [SMALL_STATE(68)] = 2334, - [SMALL_STATE(69)] = 2357, - [SMALL_STATE(70)] = 2380, - [SMALL_STATE(71)] = 2403, - [SMALL_STATE(72)] = 2426, - [SMALL_STATE(73)] = 2449, - [SMALL_STATE(74)] = 2472, + [SMALL_STATE(4)] = 73, + [SMALL_STATE(5)] = 146, + [SMALL_STATE(6)] = 215, + [SMALL_STATE(7)] = 256, + [SMALL_STATE(8)] = 291, + [SMALL_STATE(9)] = 326, + [SMALL_STATE(10)] = 360, + [SMALL_STATE(11)] = 394, + [SMALL_STATE(12)] = 428, + [SMALL_STATE(13)] = 466, + [SMALL_STATE(14)] = 499, + [SMALL_STATE(15)] = 546, + [SMALL_STATE(16)] = 581, + [SMALL_STATE(17)] = 624, + [SMALL_STATE(18)] = 663, + [SMALL_STATE(19)] = 700, + [SMALL_STATE(20)] = 733, + [SMALL_STATE(21)] = 781, + [SMALL_STATE(22)] = 827, + [SMALL_STATE(23)] = 878, + [SMALL_STATE(24)] = 926, + [SMALL_STATE(25)] = 967, + [SMALL_STATE(26)] = 1008, + [SMALL_STATE(27)] = 1049, + [SMALL_STATE(28)] = 1090, + [SMALL_STATE(29)] = 1131, + [SMALL_STATE(30)] = 1162, + [SMALL_STATE(31)] = 1203, + [SMALL_STATE(32)] = 1244, + [SMALL_STATE(33)] = 1285, + [SMALL_STATE(34)] = 1326, + [SMALL_STATE(35)] = 1367, + [SMALL_STATE(36)] = 1408, + [SMALL_STATE(37)] = 1454, + [SMALL_STATE(38)] = 1500, + [SMALL_STATE(39)] = 1530, + [SMALL_STATE(40)] = 1560, + [SMALL_STATE(41)] = 1590, + [SMALL_STATE(42)] = 1633, + [SMALL_STATE(43)] = 1661, + [SMALL_STATE(44)] = 1696, + [SMALL_STATE(45)] = 1725, + [SMALL_STATE(46)] = 1752, + [SMALL_STATE(47)] = 1789, + [SMALL_STATE(48)] = 1822, + [SMALL_STATE(49)] = 1853, + [SMALL_STATE(50)] = 1880, + [SMALL_STATE(51)] = 1912, + [SMALL_STATE(52)] = 1944, + [SMALL_STATE(53)] = 1971, + [SMALL_STATE(54)] = 2001, + [SMALL_STATE(55)] = 2025, + [SMALL_STATE(56)] = 2055, + [SMALL_STATE(57)] = 2081, + [SMALL_STATE(58)] = 2107, + [SMALL_STATE(59)] = 2133, + [SMALL_STATE(60)] = 2159, + [SMALL_STATE(61)] = 2185, + [SMALL_STATE(62)] = 2208, + [SMALL_STATE(63)] = 2231, + [SMALL_STATE(64)] = 2252, + [SMALL_STATE(65)] = 2273, + [SMALL_STATE(66)] = 2294, + [SMALL_STATE(67)] = 2319, + [SMALL_STATE(68)] = 2344, + [SMALL_STATE(69)] = 2365, + [SMALL_STATE(70)] = 2386, + [SMALL_STATE(71)] = 2407, + [SMALL_STATE(72)] = 2430, + [SMALL_STATE(73)] = 2451, + [SMALL_STATE(74)] = 2474, [SMALL_STATE(75)] = 2495, [SMALL_STATE(76)] = 2518, [SMALL_STATE(77)] = 2541, - [SMALL_STATE(78)] = 2562, - [SMALL_STATE(79)] = 2583, - [SMALL_STATE(80)] = 2606, - [SMALL_STATE(81)] = 2627, - [SMALL_STATE(82)] = 2652, - [SMALL_STATE(83)] = 2677, - [SMALL_STATE(84)] = 2698, - [SMALL_STATE(85)] = 2719, - [SMALL_STATE(86)] = 2744, - [SMALL_STATE(87)] = 2765, - [SMALL_STATE(88)] = 2786, - [SMALL_STATE(89)] = 2806, - [SMALL_STATE(90)] = 2824, - [SMALL_STATE(91)] = 2842, - [SMALL_STATE(92)] = 2860, - [SMALL_STATE(93)] = 2878, - [SMALL_STATE(94)] = 2896, - [SMALL_STATE(95)] = 2914, - [SMALL_STATE(96)] = 2932, - [SMALL_STATE(97)] = 2950, - [SMALL_STATE(98)] = 2968, - [SMALL_STATE(99)] = 2986, - [SMALL_STATE(100)] = 3004, - [SMALL_STATE(101)] = 3022, - [SMALL_STATE(102)] = 3040, - [SMALL_STATE(103)] = 3060, - [SMALL_STATE(104)] = 3078, - [SMALL_STATE(105)] = 3096, - [SMALL_STATE(106)] = 3115, - [SMALL_STATE(107)] = 3132, - [SMALL_STATE(108)] = 3149, - [SMALL_STATE(109)] = 3166, - [SMALL_STATE(110)] = 3185, - [SMALL_STATE(111)] = 3202, - [SMALL_STATE(112)] = 3219, - [SMALL_STATE(113)] = 3236, - [SMALL_STATE(114)] = 3253, - [SMALL_STATE(115)] = 3270, - [SMALL_STATE(116)] = 3289, - [SMALL_STATE(117)] = 3305, - [SMALL_STATE(118)] = 3321, - [SMALL_STATE(119)] = 3337, - [SMALL_STATE(120)] = 3353, - [SMALL_STATE(121)] = 3369, - [SMALL_STATE(122)] = 3385, - [SMALL_STATE(123)] = 3401, - [SMALL_STATE(124)] = 3417, - [SMALL_STATE(125)] = 3433, - [SMALL_STATE(126)] = 3449, - [SMALL_STATE(127)] = 3465, - [SMALL_STATE(128)] = 3481, - [SMALL_STATE(129)] = 3497, - [SMALL_STATE(130)] = 3513, - [SMALL_STATE(131)] = 3529, - [SMALL_STATE(132)] = 3545, - [SMALL_STATE(133)] = 3561, - [SMALL_STATE(134)] = 3577, - [SMALL_STATE(135)] = 3593, - [SMALL_STATE(136)] = 3597, + [SMALL_STATE(78)] = 2564, + [SMALL_STATE(79)] = 2587, + [SMALL_STATE(80)] = 2610, + [SMALL_STATE(81)] = 2633, + [SMALL_STATE(82)] = 2658, + [SMALL_STATE(83)] = 2683, + [SMALL_STATE(84)] = 2706, + [SMALL_STATE(85)] = 2729, + [SMALL_STATE(86)] = 2752, + [SMALL_STATE(87)] = 2775, + [SMALL_STATE(88)] = 2798, + [SMALL_STATE(89)] = 2816, + [SMALL_STATE(90)] = 2834, + [SMALL_STATE(91)] = 2852, + [SMALL_STATE(92)] = 2872, + [SMALL_STATE(93)] = 2890, + [SMALL_STATE(94)] = 2908, + [SMALL_STATE(95)] = 2926, + [SMALL_STATE(96)] = 2944, + [SMALL_STATE(97)] = 2962, + [SMALL_STATE(98)] = 2982, + [SMALL_STATE(99)] = 3000, + [SMALL_STATE(100)] = 3018, + [SMALL_STATE(101)] = 3036, + [SMALL_STATE(102)] = 3054, + [SMALL_STATE(103)] = 3072, + [SMALL_STATE(104)] = 3090, + [SMALL_STATE(105)] = 3108, + [SMALL_STATE(106)] = 3126, + [SMALL_STATE(107)] = 3143, + [SMALL_STATE(108)] = 3160, + [SMALL_STATE(109)] = 3177, + [SMALL_STATE(110)] = 3196, + [SMALL_STATE(111)] = 3213, + [SMALL_STATE(112)] = 3230, + [SMALL_STATE(113)] = 3247, + [SMALL_STATE(114)] = 3264, + [SMALL_STATE(115)] = 3283, + [SMALL_STATE(116)] = 3300, + [SMALL_STATE(117)] = 3319, + [SMALL_STATE(118)] = 3335, + [SMALL_STATE(119)] = 3351, + [SMALL_STATE(120)] = 3367, + [SMALL_STATE(121)] = 3383, + [SMALL_STATE(122)] = 3399, + [SMALL_STATE(123)] = 3415, + [SMALL_STATE(124)] = 3431, + [SMALL_STATE(125)] = 3447, + [SMALL_STATE(126)] = 3463, + [SMALL_STATE(127)] = 3479, + [SMALL_STATE(128)] = 3495, + [SMALL_STATE(129)] = 3511, + [SMALL_STATE(130)] = 3527, + [SMALL_STATE(131)] = 3543, + [SMALL_STATE(132)] = 3559, + [SMALL_STATE(133)] = 3575, + [SMALL_STATE(134)] = 3591, + [SMALL_STATE(135)] = 3607, + [SMALL_STATE(136)] = 3623, + [SMALL_STATE(137)] = 3639, + [SMALL_STATE(138)] = 3643, }; 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(116), - [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(136), + [3] = {.entry = {.count = 1, .reusable = true}}, SHIFT(134), + [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(138), [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT_EXTRA(), [9] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_program, 0, 0, 0), - [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(133), - [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(132), + [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(128), + [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(125), [15] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2), [17] = {.entry = {.count = 1, .reusable = false}}, SHIFT(22), - [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(131), + [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(122), [21] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_instruction, 1, 0, 1), - [23] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), - [25] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), - [27] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), - [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(127), - [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79), - [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(126), - [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(125), - [37] = {.entry = {.count = 1, .reusable = false}}, SHIFT(8), - [39] = {.entry = {.count = 1, .reusable = false}}, SHIFT(100), - [41] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), - [43] = {.entry = {.count = 1, .reusable = false}}, SHIFT(9), + [23] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), + [25] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83), + [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(135), + [29] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), + [31] = {.entry = {.count = 1, .reusable = false}}, SHIFT(132), + [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87), + [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(126), + [37] = {.entry = {.count = 1, .reusable = true}}, SHIFT(131), + [39] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7), + [41] = {.entry = {.count = 1, .reusable = false}}, SHIFT(96), + [43] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10), [45] = {.entry = {.count = 1, .reusable = false}}, SHIFT(11), - [47] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_instruction, 3, 0, 1), - [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(134), - [51] = {.entry = {.count = 1, .reusable = false}}, SHIFT(36), - [53] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), - [55] = {.entry = {.count = 1, .reusable = false}}, SHIFT(35), - [57] = {.entry = {.count = 1, .reusable = false}}, SHIFT(40), - [59] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_instruction, 4, 0, 1), - [61] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_int, 2, 0, 0), - [63] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_int, 2, 0, 0), - [65] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__expr, 1, 0, 0), REDUCE(sym__tc_expr, 1, 0, 0), - [68] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr, 1, 0, 0), - [70] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), - [72] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__tc_expr, 1, 0, 0), - [74] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__tc_expr, 1, 0, 0), - [76] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_int, 1, 0, 0), - [78] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_int, 1, 0, 0), - [80] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_reg, 1, 0, 0), - [82] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_reg, 1, 0, 0), - [84] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ident, 1, 0, 0), - [86] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_ident, 1, 0, 0), - [88] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string, 1, 0, 0), - [90] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string, 1, 0, 0), - [92] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tc_infix, 3, 0, 5), - [94] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tc_infix, 3, 0, 5), - [96] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), - [98] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), - [100] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), - [102] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), - [104] = {.entry = {.count = 1, .reusable = false}}, SHIFT(27), - [106] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_instruction_repeat2, 1, 0, 0), - [108] = {.entry = {.count = 1, .reusable = false}}, SHIFT(25), - [110] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), - [112] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_instruction_repeat2, 1, 0, 0), - [114] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_instruction, 2, 0, 1), - [116] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_instruction_repeat2, 2, 0, 0), - [118] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_instruction_repeat2, 2, 0, 0), SHIFT_REPEAT(125), - [121] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_instruction_repeat2, 2, 0, 0), SHIFT_REPEAT(8), - [124] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_instruction_repeat2, 2, 0, 0), SHIFT_REPEAT(12), - [127] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_instruction_repeat2, 2, 0, 0), SHIFT_REPEAT(9), - [130] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_instruction_repeat2, 2, 0, 0), SHIFT_REPEAT(11), - [133] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_meta, 1, 0, 1), - [135] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), - [137] = {.entry = {.count = 1, .reusable = false}}, SHIFT(70), - [139] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_program, 2, 0, 0), - [141] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), - [143] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_program, 3, 0, 0), - [145] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), - [147] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), - [149] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_const, 3, 0, 4), - [151] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), - [153] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), - [155] = {.entry = {.count = 1, .reusable = false}}, SHIFT(33), - [157] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), - [159] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_program_repeat1, 2, 0, 0), - [161] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_program_repeat1, 2, 0, 0), SHIFT_REPEAT(53), - [164] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 2, 0, 0), - [166] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_program_repeat1, 1, 0, 0), - [168] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 1, 0, 0), - [170] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), - [172] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), - [174] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), - [176] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 2, 0, 3), - [178] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), - [180] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), - [182] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), - [184] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 2, 0, 0), - [186] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), - [188] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_program_repeat2, 2, 0, 0), - [190] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_program_repeat2, 2, 0, 0), SHIFT_REPEAT(53), - [193] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), - [195] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), - [197] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2, 0, 0), SHIFT_REPEAT(73), - [200] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2, 0, 0), - [202] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_meta, 3, 0, 1), - [204] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124), - [206] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_meta, 2, 0, 1), - [208] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), - [210] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), - [212] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), - [214] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), - [216] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109), - [218] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), - [220] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), - [222] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 3, 0, 0), - [224] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), - [226] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_instruction_repeat1, 2, 0, 0), - [228] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_instruction_repeat1, 2, 0, 0), SHIFT_REPEAT(5), - [231] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_program, 1, 0, 0), - [233] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), - [235] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), - [237] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 5, 0, 0), - [239] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), - [241] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_meta_repeat3, 2, 0, 0), - [243] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_meta_repeat3, 2, 0, 0), SHIFT_REPEAT(88), - [246] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_meta_repeat2, 2, 0, 0), - [248] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_meta_repeat2, 2, 0, 0), SHIFT_REPEAT(124), - [251] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_meta_repeat1, 2, 0, 0), - [253] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_meta_repeat1, 2, 0, 0), SHIFT_REPEAT(105), - [256] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 3, 0, 0), - [258] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 6, 0, 0), - [260] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 5, 0, 0), - [262] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 4, 0, 0), - [264] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 2, 0, 0), - [266] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 7, 0, 0), - [268] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), - [270] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), - [272] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 4, 0, 0), - [274] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), - [276] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 5, 0, 3), + [47] = {.entry = {.count = 1, .reusable = false}}, SHIFT(9), + [49] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_instruction, 3, 0, 1), + [51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(136), + [53] = {.entry = {.count = 1, .reusable = false}}, SHIFT(38), + [55] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), + [57] = {.entry = {.count = 1, .reusable = false}}, SHIFT(29), + [59] = {.entry = {.count = 1, .reusable = false}}, SHIFT(40), + [61] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_instruction, 4, 0, 1), + [63] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__expr, 1, 0, 0), REDUCE(sym__tc_expr, 1, 0, 0), + [66] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr, 1, 0, 0), + [68] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), + [70] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__tc_expr, 1, 0, 0), + [72] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__tc_expr, 1, 0, 0), + [74] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_int, 1, 0, 0), + [76] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_int, 1, 0, 0), + [78] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_int, 2, 0, 0), + [80] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_int, 2, 0, 0), + [82] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ident, 1, 0, 0), + [84] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_ident, 1, 0, 0), + [86] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string, 1, 0, 0), + [88] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string, 1, 0, 0), + [90] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_reg, 1, 0, 0), + [92] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_reg, 1, 0, 0), + [94] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_instruction_repeat2, 1, 0, 0), + [96] = {.entry = {.count = 1, .reusable = false}}, SHIFT(35), + [98] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), + [100] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), + [102] = {.entry = {.count = 1, .reusable = false}}, SHIFT(25), + [104] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), + [106] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), + [108] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), + [110] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_instruction_repeat2, 1, 0, 0), + [112] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tc_infix, 3, 0, 5), + [114] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tc_infix, 3, 0, 5), + [116] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_instruction, 2, 0, 1), + [118] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_instruction_repeat2, 2, 0, 0), + [120] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_instruction_repeat2, 2, 0, 0), SHIFT_REPEAT(131), + [123] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_instruction_repeat2, 2, 0, 0), SHIFT_REPEAT(7), + [126] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_instruction_repeat2, 2, 0, 0), SHIFT_REPEAT(10), + [129] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_instruction_repeat2, 2, 0, 0), SHIFT_REPEAT(11), + [132] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_instruction_repeat2, 2, 0, 0), SHIFT_REPEAT(9), + [135] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_meta, 1, 0, 1), + [137] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), + [139] = {.entry = {.count = 1, .reusable = false}}, SHIFT(77), + [141] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_program, 2, 0, 0), + [143] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), + [145] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_program, 3, 0, 0), + [147] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), + [149] = {.entry = {.count = 1, .reusable = false}}, SHIFT(33), + [151] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), + [153] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), + [155] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), + [157] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_const, 3, 0, 4), + [159] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), + [161] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_program_repeat1, 2, 0, 0), + [163] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_program_repeat1, 2, 0, 0), SHIFT_REPEAT(54), + [166] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 2, 0, 0), + [168] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), + [170] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_program_repeat1, 1, 0, 0), + [172] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 1, 0, 0), + [174] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), + [176] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), + [178] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99), + [180] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 2, 0, 3), + [182] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), + [184] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), + [186] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 2, 0, 0), + [188] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), + [190] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), + [192] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 3, 0, 0), + [194] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), + [196] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_instruction_repeat1, 2, 0, 0), + [198] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_instruction_repeat1, 2, 0, 0), SHIFT_REPEAT(5), + [201] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), + [203] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), + [205] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104), + [207] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_program, 1, 0, 0), + [209] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_meta_repeat2, 2, 0, 0), + [211] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_meta_repeat2, 2, 0, 0), SHIFT_REPEAT(133), + [214] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_meta_repeat1, 2, 0, 0), + [216] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_meta_repeat1, 2, 0, 0), SHIFT_REPEAT(109), + [219] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_meta_repeat3, 2, 0, 0), + [221] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_meta_repeat3, 2, 0, 0), SHIFT_REPEAT(91), + [224] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_meta, 3, 0, 1), + [226] = {.entry = {.count = 1, .reusable = true}}, SHIFT(133), + [228] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2, 0, 0), SHIFT_REPEAT(76), + [231] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2, 0, 0), + [233] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_program_repeat2, 2, 0, 0), + [235] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_program_repeat2, 2, 0, 0), SHIFT_REPEAT(54), + [238] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 5, 0, 0), + [240] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102), + [242] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109), + [244] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_meta, 2, 0, 1), + [246] = {.entry = {.count = 1, .reusable = true}}, SHIFT(116), + [248] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), + [250] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), + [252] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91), + [254] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), + [256] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), + [258] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 7, 0, 0), + [260] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 4, 0, 0), + [262] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), + [264] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), + [266] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 4, 0, 0), + [268] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 5, 0, 0), + [270] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr, 2, 0, 0), + [272] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 6, 0, 0), + [274] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 3, 0, 0), + [276] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 2, 0, 0), [278] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 3, 0, 3), - [280] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 3, 0, 0), - [282] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 5, 0, 0), - [284] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 2, 0, 2), - [286] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__item, 1, 0, 0), - [288] = {.entry = {.count = 1, .reusable = false}}, SHIFT(116), - [290] = {.entry = {.count = 1, .reusable = false}}, SHIFT(135), - [292] = {.entry = {.count = 1, .reusable = false}}, SHIFT(136), - [294] = {.entry = {.count = 1, .reusable = false}}, SHIFT_EXTRA(), - [296] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), - [298] = {.entry = {.count = 1, .reusable = true}}, SHIFT(115), - [300] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), - [302] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92), - [304] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83), - [306] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), - [308] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), - [310] = {.entry = {.count = 1, .reusable = true}}, SHIFT(118), - [312] = {.entry = {.count = 1, .reusable = true}}, SHIFT(119), - [314] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107), - [316] = {.entry = {.count = 1, .reusable = true}}, SHIFT(112), - [318] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), - [320] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), - [322] = {.entry = {.count = 1, .reusable = true}}, SHIFT(113), - [324] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), - [326] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_line_comment, 2, 0, 0), - [328] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_line_comment, 1, 0, 0), + [280] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 5, 0, 0), + [282] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), + [284] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__item, 1, 0, 0), + [286] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 5, 0, 3), + [288] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 2, 0, 2), + [290] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 3, 0, 0), + [292] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), + [294] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [296] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84), + [298] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), + [300] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), + [302] = {.entry = {.count = 1, .reusable = true}}, SHIFT(111), + [304] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), + [306] = {.entry = {.count = 1, .reusable = true}}, SHIFT(127), + [308] = {.entry = {.count = 1, .reusable = true}}, SHIFT(114), + [310] = {.entry = {.count = 1, .reusable = true}}, SHIFT(112), + [312] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108), + [314] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), + [316] = {.entry = {.count = 1, .reusable = true}}, SHIFT(120), + [318] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), + [320] = {.entry = {.count = 1, .reusable = false}}, SHIFT(134), + [322] = {.entry = {.count = 1, .reusable = false}}, SHIFT(137), + [324] = {.entry = {.count = 1, .reusable = false}}, SHIFT(138), + [326] = {.entry = {.count = 1, .reusable = false}}, SHIFT_EXTRA(), + [328] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100), + [330] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), + [332] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_line_comment, 2, 0, 0), + [334] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_line_comment, 1, 0, 0), }; #ifdef __cplusplus @@ -5096,7 +5323,7 @@ extern "C" { TS_PUBLIC const TSLanguage *tree_sitter_asm(void) { static const TSLanguage language = { - .version = LANGUAGE_VERSION, + .abi_version = LANGUAGE_VERSION, .symbol_count = SYMBOL_COUNT, .alias_count = ALIAS_COUNT, .token_count = TOKEN_COUNT, @@ -5104,6 +5331,7 @@ TS_PUBLIC const TSLanguage *tree_sitter_asm(void) { .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], @@ -5118,9 +5346,16 @@ TS_PUBLIC const TSLanguage *tree_sitter_asm(void) { .public_symbol_map = ts_symbol_map, .alias_map = ts_non_terminal_alias_map, .alias_sequences = &ts_alias_sequences[0][0], - .lex_modes = ts_lex_modes, + .lex_modes = (const void*)ts_lex_modes, .lex_fn = ts_lex, .primary_state_ids = ts_primary_state_ids, + .name = "asm", + .max_reserved_word_set_size = 0, + .metadata = { + .major_version = 0, + .minor_version = 1, + .patch_version = 0, + }, }; return &language; } diff --git a/src/tree_sitter/alloc.h b/src/tree_sitter/alloc.h index 1f4466d7..1abdd120 100644 --- a/src/tree_sitter/alloc.h +++ b/src/tree_sitter/alloc.h @@ -12,10 +12,10 @@ extern "C" { // Allow clients to override allocation functions #ifdef TREE_SITTER_REUSE_ALLOCATOR -extern void *(*ts_current_malloc)(size_t); -extern void *(*ts_current_calloc)(size_t, size_t); -extern void *(*ts_current_realloc)(void *, size_t); -extern void (*ts_current_free)(void *); +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 diff --git a/src/tree_sitter/array.h b/src/tree_sitter/array.h index 15a3b233..56fc8cd4 100644 --- a/src/tree_sitter/array.h +++ b/src/tree_sitter/array.h @@ -14,6 +14,7 @@ extern "C" { #include #ifdef _MSC_VER +#pragma warning(push) #pragma warning(disable : 4101) #elif defined(__GNUC__) || defined(__clang__) #pragma GCC diagnostic push @@ -51,67 +52,96 @@ extern "C" { /// 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) +#define array_reserve(self, new_capacity) \ + ((self)->contents = _array__reserve( \ + (void *)(self)->contents, &(self)->capacity, \ + 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)) +#define array_delete(self) \ + do { \ + if ((self)->contents) ts_free((self)->contents); \ + (self)->contents = NULL; \ + (self)->size = 0; \ + (self)->capacity = 0; \ + } while (0) /// 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)) +#define array_push(self, element) \ + do { \ + (self)->contents = _array__grow( \ + (void *)(self)->contents, (self)->size, &(self)->capacity, \ + 1, array_elem_size(self) \ + ); \ + (self)->contents[(self)->size++] = (element); \ + } while(0) /// 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)); \ +#define array_grow_by(self, count) \ + do { \ + if ((count) == 0) break; \ + (self)->contents = _array__grow( \ + (self)->contents, (self)->size, &(self)->capacity, \ + count, array_elem_size(self) \ + ); \ memset((self)->contents + (self)->size, 0, (count) * array_elem_size(self)); \ - (self)->size += (count); \ + (self)->size += (count); \ } while (0) /// Append all elements from one array to the end of another. -#define array_push_all(self, other) \ +#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 \ +#define array_extend(self, count, other_contents) \ + (self)->contents = _array__splice( \ + (void*)(self)->contents, &(self)->size, &(self)->capacity, \ + array_elem_size(self), (self)->size, 0, count, other_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 \ +#define array_splice(self, _index, old_count, new_count, new_contents) \ + (self)->contents = _array__splice( \ + (void *)(self)->contents, &(self)->size, &(self)->capacity, \ + 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)) +#define array_insert(self, _index, element) \ + (self)->contents = _array__splice( \ + (void *)(self)->contents, &(self)->size, &(self)->capacity, \ + 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) + _array__erase((void *)(self)->contents, &(self)->size, 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)) +#define array_assign(self, other) \ + (self)->contents = _array__assign( \ + (void *)(self)->contents, &(self)->size, &(self)->capacity, \ + (const void *)(other)->contents, (other)->size, array_elem_size(self) \ + ) /// Swap one array with another -#define array_swap(self, other) \ - _array__swap((Array *)(self), (Array *)(other)) +#define array_swap(self, other) \ + do { \ + void *_array_swap_tmp = (void *)(self)->contents; \ + (self)->contents = (other)->contents; \ + (other)->contents = _array_swap_tmp; \ + _array__swap(&(self)->size, &(self)->capacity, \ + &(other)->size, &(other)->capacity); \ + } while (0) /// Get the size of the array contents #define array_elem_size(self) (sizeof *(self)->contents) @@ -156,82 +186,90 @@ extern "C" { // 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; - } -} +// Pointers to individual `Array` fields (rather than the entire `Array` itself) +// are passed to the various `_array__*` functions below to address strict aliasing +// violations that arises when the _entire_ `Array` struct is passed as `Array(void)*`. +// +// The `Array` type itself was not altered as a solution in order to avoid breakage +// with existing consumers (in particular, parsers with external scanners). /// 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; +static inline void _array__erase(void* self_contents, uint32_t *size, + size_t element_size, uint32_t index) { + assert(index < *size); + char *contents = (char *)self_contents; memmove(contents + index * element_size, contents + (index + 1) * element_size, - (self->size - index - 1) * element_size); - self->size--; + (*size - index - 1) * element_size); + (*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); +static inline void *_array__reserve(void *contents, uint32_t *capacity, + size_t element_size, uint32_t new_capacity) { + void *new_contents = contents; + if (new_capacity > *capacity) { + if (contents) { + new_contents = ts_realloc(contents, new_capacity * element_size); } else { - self->contents = ts_malloc(new_capacity * element_size); + new_contents = ts_malloc(new_capacity * element_size); } - self->capacity = new_capacity; + *capacity = new_capacity; } + return new_contents; } /// 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); +static inline void *_array__assign(void* self_contents, uint32_t *self_size, uint32_t *self_capacity, + const void *other_contents, uint32_t other_size, size_t element_size) { + void *new_contents = _array__reserve(self_contents, self_capacity, element_size, other_size); + *self_size = other_size; + memcpy(new_contents, other_contents, *self_size * element_size); + return new_contents; } /// 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; +static inline void _array__swap(uint32_t *self_size, uint32_t *self_capacity, + uint32_t *other_size, uint32_t *other_capacity) { + uint32_t tmp_size = *self_size; + uint32_t tmp_capacity = *self_capacity; + *self_size = *other_size; + *self_capacity = *other_capacity; + *other_size = tmp_size; + *other_capacity = tmp_capacity; } /// 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; +static inline void *_array__grow(void *contents, uint32_t size, uint32_t *capacity, + uint32_t count, size_t element_size) { + void *new_contents = contents; + uint32_t new_size = size + count; + if (new_size > *capacity) { + uint32_t new_capacity = *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); + new_contents = _array__reserve(contents, capacity, element_size, new_capacity); } + return new_contents; } /// This is not what you're looking for, see `array_splice`. -static inline void _array__splice(Array *self, size_t element_size, +static inline void *_array__splice(void *self_contents, uint32_t *size, uint32_t *capacity, + 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 new_size = *size + new_count - old_count; uint32_t old_end = index + old_count; uint32_t new_end = index + new_count; - assert(old_end <= self->size); + assert(old_end <= *size); - _array__reserve(self, element_size, new_size); + void *new_contents = _array__reserve(self_contents, capacity, element_size, new_size); - char *contents = (char *)self->contents; - if (self->size > old_end) { + char *contents = (char *)new_contents; + if (*size > old_end) { memmove( contents + new_end * element_size, contents + old_end * element_size, - (self->size - old_end) * element_size + (*size - old_end) * element_size ); } if (new_count > 0) { @@ -249,7 +287,9 @@ static inline void _array__splice(Array *self, size_t element_size, ); } } - self->size += new_count - old_count; + *size += new_count - old_count; + + return new_contents; } /// A binary search routine, based on Rust's `std::slice::binary_search_by`. @@ -278,7 +318,7 @@ static inline void _array__splice(Array *self, size_t element_size, #define _compare_int(a, b) ((int)*(a) - (int)(b)) #ifdef _MSC_VER -#pragma warning(default : 4101) +#pragma warning(pop) #elif defined(__GNUC__) || defined(__clang__) #pragma GCC diagnostic pop #endif diff --git a/src/tree_sitter/parser.h b/src/tree_sitter/parser.h index 17f0e94b..858107de 100644 --- a/src/tree_sitter/parser.h +++ b/src/tree_sitter/parser.h @@ -18,6 +18,11 @@ typedef uint16_t TSStateId; typedef uint16_t TSSymbol; typedef uint16_t TSFieldId; typedef struct TSLanguage TSLanguage; +typedef struct TSLanguageMetadata { + uint8_t major_version; + uint8_t minor_version; + uint8_t patch_version; +} TSLanguageMetadata; #endif typedef struct { @@ -26,10 +31,11 @@ typedef struct { bool inherited; } TSFieldMapEntry; +// Used to index the field and supertype maps. typedef struct { uint16_t index; uint16_t length; -} TSFieldMapSlice; +} TSMapSlice; typedef struct { bool visible; @@ -47,6 +53,7 @@ struct 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 { @@ -78,6 +85,12 @@ typedef struct { 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 { @@ -92,7 +105,7 @@ typedef struct { } TSCharacterRange; struct TSLanguage { - uint32_t version; + uint32_t abi_version; uint32_t symbol_count; uint32_t alias_count; uint32_t token_count; @@ -108,13 +121,13 @@ struct TSLanguage { const TSParseActionEntry *parse_actions; const char * const *symbol_names; const char * const *field_names; - const TSFieldMapSlice *field_map_slices; + 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 TSLexMode *lex_modes; + const TSLexerMode *lex_modes; bool (*lex_fn)(TSLexer *, TSStateId); bool (*keyword_lex_fn)(TSLexer *, TSStateId); TSSymbol keyword_capture_token; @@ -128,15 +141,23 @@ struct TSLanguage { 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(TSCharacterRange *ranges, uint32_t len, int32_t lookahead) { +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; - TSCharacterRange *range = &ranges[mid_index]; + const TSCharacterRange *range = &ranges[mid_index]; if (lookahead >= range->start && lookahead <= range->end) { return true; } else if (lookahead > range->end) { @@ -144,7 +165,7 @@ static inline bool set_contains(TSCharacterRange *ranges, uint32_t len, int32_t } size -= half_size; } - TSCharacterRange *range = &ranges[index]; + const TSCharacterRange *range = &ranges[index]; return (lookahead >= range->start && lookahead <= range->end); } From 2ce54e5727e89c4d7c17f155eef90946c428e26e Mon Sep 17 00:00:00 2001 From: Neptumiun93 Date: Thu, 18 Jun 2026 11:43:00 +0200 Subject: [PATCH 13/31] fix: negative constants for AT&T syntax --- grammar.js | 2 +- test/corpus/instr_and_reg.test | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/grammar.js b/grammar.js index 6e4f80d7..7326ea7c 100644 --- a/grammar.js +++ b/grammar.js @@ -117,7 +117,7 @@ module.exports = grammar({ int: $ => { const _int = /-?([0-9][0-9_]*|(0x|\$)[0-9A-Fa-f][0-9A-Fa-f_]*|0b[01][01_]*)/ return choice( - seq('#', token.immediate(_int)), + seq(choice('#','$'), token.immediate(_int)), _int, ) }, diff --git a/test/corpus/instr_and_reg.test b/test/corpus/instr_and_reg.test index aeb8f16c..dfaaa465 100644 --- a/test/corpus/instr_and_reg.test +++ b/test/corpus/instr_and_reg.test @@ -189,3 +189,16 @@ LDR A1, =addr (ident (reg (address))))) + +========== +Instruction -- Negative costant arg +========== +movq $-1, %rax +--- + +(program + (instruction + (word) + (int) + (ident + (reg)))) From 2b4b92263f2ec116270a2f479a16cfc5e88cf0ac Mon Sep 17 00:00:00 2001 From: Neptumiun93 Date: Thu, 18 Jun 2026 11:45:40 +0200 Subject: [PATCH 14/31] chore: tree-sitter generate --- src/grammar.json | 19 +- src/node-types.json | 9 +- src/parser.c | 3951 +++++++++++++++++++------------------- src/tree_sitter/alloc.h | 8 +- src/tree_sitter/array.h | 184 +- src/tree_sitter/parser.h | 35 +- 6 files changed, 2188 insertions(+), 2018 deletions(-) diff --git a/src/grammar.json b/src/grammar.json index a75664ba..4808d9fe 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -1,4 +1,5 @@ { + "$schema": "https://tree-sitter.github.io/tree-sitter/assets/schemas/grammar.schema.json", "name": "asm", "rules": { "program": { @@ -961,8 +962,17 @@ "type": "SEQ", "members": [ { - "type": "STRING", - "value": "#" + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "#" + }, + { + "type": "STRING", + "value": "$" + } + ] }, { "type": "IMMEDIATE_TOKEN", @@ -1119,5 +1129,6 @@ "precedences": [], "externals": [], "inline": [], - "supertypes": [] -} + "supertypes": [], + "reserved": {} +} \ No newline at end of file diff --git a/src/node-types.json b/src/node-types.json index 80b1f8e6..5176fca8 100644 --- a/src/node-types.json +++ b/src/node-types.json @@ -148,6 +148,7 @@ { "type": "line_comment", "named": true, + "extra": true, "fields": {} }, { @@ -206,6 +207,7 @@ { "type": "program", "named": true, + "root": true, "fields": {}, "children": { "multiple": true, @@ -377,6 +379,10 @@ "type": "#", "named": false }, + { + "type": "$", + "named": false + }, { "type": "%", "named": false @@ -435,7 +441,8 @@ }, { "type": "block_comment", - "named": true + "named": true, + "extra": true }, { "type": "byte", diff --git a/src/parser.c b/src/parser.c index 3a8c319c..ad8a14b0 100644 --- a/src/parser.c +++ b/src/parser.c @@ -1,19 +1,23 @@ +/* Automatically @generated by tree-sitter */ + #include "tree_sitter/parser.h" #if defined(__GNUC__) || defined(__clang__) #pragma GCC diagnostic ignored "-Wmissing-field-initializers" #endif -#define LANGUAGE_VERSION 14 +#define LANGUAGE_VERSION 15 #define STATE_COUNT 137 #define LARGE_STATE_COUNT 3 -#define SYMBOL_COUNT 65 +#define SYMBOL_COUNT 66 #define ALIAS_COUNT 0 -#define TOKEN_COUNT 41 +#define TOKEN_COUNT 42 #define EXTERNAL_TOKEN_COUNT 0 #define FIELD_COUNT 6 #define MAX_ALIAS_SEQUENCE_LENGTH 7 +#define MAX_RESERVED_WORD_SET_SIZE 0 #define PRODUCTION_ID_COUNT 6 +#define SUPERTYPE_COUNT 0 enum ts_symbol_identifiers { anon_sym_LF = 1, @@ -43,43 +47,44 @@ enum ts_symbol_identifiers { anon_sym_CARET = 25, anon_sym_AMP = 26, anon_sym_POUND = 27, - aux_sym_int_token1 = 28, - aux_sym_int_token2 = 29, - sym_float = 30, - aux_sym_string_token1 = 31, - aux_sym_string_token2 = 32, - sym_word = 33, - sym__reg = 34, - sym_address = 35, - sym_meta_ident = 36, - sym__ident = 37, - aux_sym_line_comment_token1 = 38, - aux_sym_line_comment_token2 = 39, - sym_block_comment = 40, - sym_program = 41, - sym__item = 42, - sym_meta = 43, - sym_label = 44, - sym_const = 45, - sym_instruction = 46, - sym__expr = 47, - sym_list = 48, - sym_ptr = 49, - sym__tc_expr = 50, - sym_tc_infix = 51, - sym_int = 52, - sym_string = 53, - sym_reg = 54, - sym_ident = 55, - sym_line_comment = 56, - aux_sym_program_repeat1 = 57, - aux_sym_program_repeat2 = 58, - aux_sym_meta_repeat1 = 59, - aux_sym_meta_repeat2 = 60, - aux_sym_meta_repeat3 = 61, - aux_sym_instruction_repeat1 = 62, - aux_sym_instruction_repeat2 = 63, - aux_sym_list_repeat1 = 64, + anon_sym_DOLLAR = 28, + aux_sym_int_token1 = 29, + aux_sym_int_token2 = 30, + sym_float = 31, + aux_sym_string_token1 = 32, + aux_sym_string_token2 = 33, + sym_word = 34, + sym__reg = 35, + sym_address = 36, + sym_meta_ident = 37, + sym__ident = 38, + aux_sym_line_comment_token1 = 39, + aux_sym_line_comment_token2 = 40, + sym_block_comment = 41, + sym_program = 42, + sym__item = 43, + sym_meta = 44, + sym_label = 45, + sym_const = 46, + sym_instruction = 47, + sym__expr = 48, + sym_list = 49, + sym_ptr = 50, + sym__tc_expr = 51, + sym_tc_infix = 52, + sym_int = 53, + sym_string = 54, + sym_reg = 55, + sym_ident = 56, + sym_line_comment = 57, + aux_sym_program_repeat1 = 58, + aux_sym_program_repeat2 = 59, + aux_sym_meta_repeat1 = 60, + aux_sym_meta_repeat2 = 61, + aux_sym_meta_repeat3 = 62, + aux_sym_instruction_repeat1 = 63, + aux_sym_instruction_repeat2 = 64, + aux_sym_list_repeat1 = 65, }; static const char * const ts_symbol_names[] = { @@ -111,6 +116,7 @@ static const char * const ts_symbol_names[] = { [anon_sym_CARET] = "^", [anon_sym_AMP] = "&", [anon_sym_POUND] = "#", + [anon_sym_DOLLAR] = "$", [aux_sym_int_token1] = "int_token1", [aux_sym_int_token2] = "int_token2", [sym_float] = "float", @@ -179,6 +185,7 @@ static const TSSymbol ts_symbol_map[] = { [anon_sym_CARET] = anon_sym_CARET, [anon_sym_AMP] = anon_sym_AMP, [anon_sym_POUND] = anon_sym_POUND, + [anon_sym_DOLLAR] = anon_sym_DOLLAR, [aux_sym_int_token1] = aux_sym_int_token1, [aux_sym_int_token2] = aux_sym_int_token2, [sym_float] = sym_float, @@ -331,6 +338,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, + [anon_sym_DOLLAR] = { + .visible = true, + .named = false, + }, [aux_sym_int_token1] = { .visible = false, .named = false, @@ -500,7 +511,7 @@ static const char * const ts_field_names[] = { [field_value] = "value", }; -static const TSFieldMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { +static const TSMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { [1] = {.index = 0, .length = 1}, [2] = {.index = 1, .length = 1}, [4] = {.index = 2, .length = 2}, @@ -562,29 +573,29 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [26] = 26, [27] = 27, [28] = 28, - [29] = 26, - [30] = 25, - [31] = 24, - [32] = 32, - [33] = 27, - [34] = 28, - [35] = 9, - [36] = 8, + [29] = 29, + [30] = 28, + [31] = 26, + [32] = 29, + [33] = 25, + [34] = 24, + [35] = 11, + [36] = 36, [37] = 37, - [38] = 38, - [39] = 6, - [40] = 11, + [38] = 7, + [39] = 8, + [40] = 9, [41] = 41, - [42] = 12, - [43] = 17, - [44] = 19, - [45] = 16, + [42] = 10, + [43] = 18, + [44] = 15, + [45] = 13, [46] = 46, - [47] = 13, - [48] = 14, - [49] = 15, - [50] = 50, - [51] = 51, + [47] = 19, + [48] = 48, + [49] = 49, + [50] = 16, + [51] = 17, [52] = 52, [53] = 53, [54] = 54, @@ -667,7 +678,7 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [131] = 131, [132] = 132, [133] = 133, - [134] = 125, + [134] = 118, [135] = 135, [136] = 136, }; @@ -677,133 +688,133 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { eof = lexer->eof(lexer); switch (state) { case 0: - if (eof) ADVANCE(30); + if (eof) ADVANCE(29); ADVANCE_MAP( - '\n', 31, - '!', 58, + '\n', 30, + '!', 57, '"', 1, - '#', 65, - '$', 19, - '%', 60, - '&', 64, + '#', 64, + '$', 66, + '%', 59, + '&', 63, '\'', 9, - '(', 34, - ')', 35, - '*', 55, - '+', 53, - ',', 32, - '-', 40, - '.', 147, - '/', 59, - '0', 74, - ':', 33, - ';', 154, - '=', 24, - '[', 52, - ']', 54, - '^', 63, - 'b', 134, - 'c', 110, - 'd', 129, - 'l', 95, - 'p', 125, - 'q', 130, - 'r', 103, - 'w', 112, - '{', 38, - '|', 62, - '}', 41, + '(', 33, + ')', 34, + '*', 54, + '+', 52, + ',', 31, + '-', 39, + '.', 148, + '/', 58, + '0', 75, + ':', 32, + ';', 155, + '=', 23, + '[', 51, + ']', 53, + '^', 62, + 'b', 135, + 'c', 111, + 'd', 130, + 'l', 96, + 'p', 126, + 'q', 131, + 'r', 104, + 'w', 113, + '{', 37, + '|', 61, + '}', 40, ); if (lookahead == '\t' || lookahead == '\r' || lookahead == ' ') SKIP(0); - if (('1' <= lookahead && lookahead <= '9')) ADVANCE(77); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(78); if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(141); END_STATE(); case 1: - if (lookahead == '"') ADVANCE(93); + if (lookahead == '"') ADVANCE(94); if (lookahead != 0) ADVANCE(1); END_STATE(); case 2: ADVANCE_MAP( - '#', 65, - '$', 20, + '#', 64, + '$', 67, '-', 6, '/', 10, - '0', 84, - ';', 154, + '0', 85, + ';', 155, 'p', 16, 'r', 13, ); if (lookahead == '\t' || lookahead == '\r' || lookahead == ' ') SKIP(2); - if (('1' <= lookahead && lookahead <= '9')) ADVANCE(86); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(87); END_STATE(); case 3: - if (lookahead == '#') ADVANCE(65); - if (lookahead == '$') ADVANCE(21); + if (lookahead == '#') ADVANCE(64); + if (lookahead == '$') ADVANCE(20); if (lookahead == '-') ADVANCE(8); if (lookahead == '/') ADVANCE(10); - if (lookahead == '0') ADVANCE(67); - if (lookahead == ';') ADVANCE(154); + if (lookahead == '0') ADVANCE(68); + if (lookahead == ';') ADVANCE(155); if (lookahead == '\t' || lookahead == '\r' || lookahead == ' ') SKIP(5); - if (('1' <= lookahead && lookahead <= '9')) ADVANCE(69); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(70); END_STATE(); case 4: - if (lookahead == '#') ADVANCE(65); - if (lookahead == '%') ADVANCE(23); - if (lookahead == '.') ADVANCE(147); + if (lookahead == '#') ADVANCE(64); + if (lookahead == '%') ADVANCE(22); + if (lookahead == '.') ADVANCE(148); if (lookahead == '/') ADVANCE(10); - if (lookahead == ';') ADVANCE(154); + if (lookahead == ';') ADVANCE(155); if (lookahead == '$' || - lookahead == '=') ADVANCE(24); + lookahead == '=') ADVANCE(23); if (lookahead == '\t' || lookahead == '\r' || lookahead == ' ') SKIP(4); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(141); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); END_STATE(); case 5: - if (lookahead == '#') ADVANCE(65); + if (lookahead == '#') ADVANCE(64); if (lookahead == '/') ADVANCE(10); - if (lookahead == ';') ADVANCE(154); + if (lookahead == ';') ADVANCE(155); if (lookahead == '\t' || lookahead == '\r' || lookahead == ' ') SKIP(5); END_STATE(); case 6: - if (lookahead == '$') ADVANCE(20); - if (lookahead == '0') ADVANCE(84); - if (('1' <= lookahead && lookahead <= '9')) ADVANCE(86); + if (lookahead == '$') ADVANCE(19); + if (lookahead == '0') ADVANCE(85); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(87); END_STATE(); case 7: - if (lookahead == '$') ADVANCE(20); - if (lookahead == '0') ADVANCE(82); - if (('1' <= lookahead && lookahead <= '9')) ADVANCE(83); + if (lookahead == '$') ADVANCE(19); + if (lookahead == '0') ADVANCE(83); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(84); END_STATE(); case 8: - if (lookahead == '$') ADVANCE(21); - if (lookahead == '0') ADVANCE(67); - if (('1' <= lookahead && lookahead <= '9')) ADVANCE(69); + if (lookahead == '$') ADVANCE(20); + if (lookahead == '0') ADVANCE(68); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(70); END_STATE(); case 9: - if (lookahead == '\'') ADVANCE(94); + if (lookahead == '\'') ADVANCE(95); if (lookahead != 0) ADVANCE(9); END_STATE(); case 10: if (lookahead == '*') ADVANCE(12); - if (lookahead == '/') ADVANCE(154); + if (lookahead == '/') ADVANCE(155); END_STATE(); case 11: if (lookahead == '*') ADVANCE(11); - if (lookahead == '/') ADVANCE(155); + if (lookahead == '/') ADVANCE(156); if (lookahead != 0) ADVANCE(12); END_STATE(); case 12: @@ -814,543 +825,541 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead == 'e') ADVANCE(14); END_STATE(); case 14: - if (lookahead == 'l') ADVANCE(56); + if (lookahead == 'l') ADVANCE(55); END_STATE(); case 15: - if (lookahead == 'r') ADVANCE(50); + if (lookahead == 'r') ADVANCE(49); END_STATE(); case 16: if (lookahead == 't') ADVANCE(15); END_STATE(); case 17: if (lookahead == '0' || - lookahead == '1') ADVANCE(85); + lookahead == '1') ADVANCE(86); END_STATE(); case 18: if (lookahead == '0' || - lookahead == '1') ADVANCE(68); + lookahead == '1') ADVANCE(69); END_STATE(); case 19: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || - ('a' <= lookahead && lookahead <= 'f')) ADVANCE(87); - if (('G' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('g' <= lookahead && lookahead <= 'z')) ADVANCE(144); + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(89); END_STATE(); case 20: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || - ('a' <= lookahead && lookahead <= 'f')) ADVANCE(88); + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(71); END_STATE(); case 21: - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'F') || - ('a' <= lookahead && lookahead <= 'f')) ADVANCE(70); - END_STATE(); - case 22: if (lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(146); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(147); END_STATE(); - case 23: + case 22: if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(143); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(144); END_STATE(); - case 24: + case 23: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(144); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(145); END_STATE(); - case 25: - if (eof) ADVANCE(30); + case 24: + if (eof) ADVANCE(29); ADVANCE_MAP( - '\n', 31, + '\n', 30, '"', 1, - '#', 65, - '$', 19, - '%', 23, + '#', 64, + '$', 66, + '%', 22, '\'', 9, - '(', 34, - '*', 55, + '(', 33, + '*', 54, '-', 7, - '.', 147, + '.', 148, '/', 10, - '0', 79, - ':', 33, - ';', 154, - '=', 24, - '[', 52, - 'b', 133, - 'd', 131, - 'q', 132, - 'w', 111, - '{', 38, + '0', 80, + ':', 32, + ';', 155, + '=', 23, + '[', 51, + 'b', 134, + 'd', 132, + 'q', 133, + 'w', 112, + '{', 37, ); if (lookahead == '\t' || lookahead == '\r' || - lookahead == ' ') SKIP(25); - if (('1' <= lookahead && lookahead <= '9')) ADVANCE(80); - if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + lookahead == ' ') SKIP(24); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(81); + if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(141); END_STATE(); - case 26: - if (eof) ADVANCE(30); + case 25: + if (eof) ADVANCE(29); ADVANCE_MAP( - '\n', 31, + '\n', 30, '"', 1, - '#', 65, - '$', 19, - '%', 23, + '#', 64, + '$', 66, + '%', 22, '\'', 9, '-', 7, - '.', 147, + '.', 148, '/', 10, - '0', 79, - ':', 33, - ';', 154, - '=', 24, + '0', 80, + ':', 32, + ';', 155, + '=', 23, ); if (lookahead == '\t' || lookahead == '\r' || - lookahead == ' ') SKIP(26); - if (('1' <= lookahead && lookahead <= '9')) ADVANCE(80); - if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + lookahead == ' ') SKIP(25); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(81); + if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(141); END_STATE(); - case 27: - if (eof) ADVANCE(30); + case 26: + if (eof) ADVANCE(29); ADVANCE_MAP( - '\n', 31, + '\n', 30, '"', 1, - '#', 65, - '$', 19, - '%', 61, - '&', 64, + '#', 64, + '$', 66, + '%', 60, + '&', 63, '\'', 9, - '(', 34, - '*', 55, - '+', 53, - ',', 32, - '-', 40, - '.', 147, - '/', 59, - '0', 71, - ';', 154, - '=', 24, - '^', 63, - '|', 62, + '(', 33, + '*', 54, + '+', 52, + ',', 31, + '-', 39, + '.', 148, + '/', 58, + '0', 72, + ';', 155, + '=', 23, + '^', 62, + '|', 61, ); if (lookahead == '\t' || lookahead == '\r' || - lookahead == ' ') SKIP(27); - if (('1' <= lookahead && lookahead <= '9')) ADVANCE(72); - if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + lookahead == ' ') SKIP(26); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(73); + if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(141); END_STATE(); - case 28: - if (eof) ADVANCE(30); + case 27: + if (eof) ADVANCE(29); ADVANCE_MAP( - '\n', 31, - '#', 65, - '%', 60, - '&', 64, - '(', 34, - ')', 35, - '*', 55, - '+', 53, - ',', 32, - '-', 39, - '.', 147, - '/', 59, - ';', 154, - ']', 54, - '^', 63, - 'c', 110, - 'l', 95, - '|', 62, - '}', 41, + '\n', 30, + '#', 64, + '%', 59, + '&', 63, + '(', 33, + ')', 34, + '*', 54, + '+', 52, + ',', 31, + '-', 38, + '.', 148, + '/', 58, + ';', 155, + ']', 53, + '^', 62, + 'c', 111, + 'l', 96, + '|', 61, + '}', 40, ); if (lookahead == '\t' || lookahead == '\r' || - lookahead == ' ') SKIP(28); + lookahead == ' ') SKIP(27); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(141); END_STATE(); - case 29: - if (eof) ADVANCE(30); + case 28: + if (eof) ADVANCE(29); ADVANCE_MAP( - '\n', 31, - '#', 65, - '%', 23, - '(', 34, - '.', 22, + '\n', 30, + '#', 64, + '%', 22, + '(', 33, + '.', 21, '/', 10, - ';', 154, - '}', 41, - '$', 24, - '=', 24, + ';', 155, + '}', 40, + '$', 23, + '=', 23, ); if (lookahead == '\t' || lookahead == '\r' || - lookahead == ' ') SKIP(29); + lookahead == ' ') SKIP(28); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(142); + lookahead == '_') ADVANCE(143); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(141); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(142); END_STATE(); - case 30: + case 29: ACCEPT_TOKEN(ts_builtin_sym_end); END_STATE(); - case 31: + case 30: ACCEPT_TOKEN(anon_sym_LF); END_STATE(); - case 32: + case 31: ACCEPT_TOKEN(anon_sym_COMMA); END_STATE(); - case 33: + case 32: ACCEPT_TOKEN(anon_sym_COLON); END_STATE(); - case 34: + case 33: ACCEPT_TOKEN(anon_sym_LPAREN); END_STATE(); - case 35: + case 34: ACCEPT_TOKEN(anon_sym_RPAREN); END_STATE(); - case 36: + case 35: ACCEPT_TOKEN(anon_sym_label); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(149); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(141); END_STATE(); - case 37: + case 36: ACCEPT_TOKEN(anon_sym_const); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(149); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(141); END_STATE(); - case 38: + case 37: ACCEPT_TOKEN(anon_sym_LBRACE); END_STATE(); - case 39: + case 38: ACCEPT_TOKEN(anon_sym_DASH); END_STATE(); - case 40: + case 39: ACCEPT_TOKEN(anon_sym_DASH); - if (lookahead == '$') ADVANCE(20); - if (lookahead == '0') ADVANCE(84); - if (('1' <= lookahead && lookahead <= '9')) ADVANCE(86); + if (lookahead == '$') ADVANCE(19); + if (lookahead == '0') ADVANCE(85); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(87); END_STATE(); - case 41: + case 40: ACCEPT_TOKEN(anon_sym_RBRACE); END_STATE(); - case 42: + case 41: ACCEPT_TOKEN(anon_sym_byte); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(149); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(141); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); END_STATE(); - case 43: + case 42: ACCEPT_TOKEN(anon_sym_byte); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(149); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(141); END_STATE(); - case 44: + case 43: ACCEPT_TOKEN(anon_sym_word); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(149); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(141); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); END_STATE(); - case 45: + case 44: ACCEPT_TOKEN(anon_sym_word); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(149); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(141); END_STATE(); - case 46: + case 45: ACCEPT_TOKEN(anon_sym_dword); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(149); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(141); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); END_STATE(); - case 47: + case 46: ACCEPT_TOKEN(anon_sym_dword); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(149); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(141); END_STATE(); - case 48: + case 47: ACCEPT_TOKEN(anon_sym_qword); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(149); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(141); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); END_STATE(); - case 49: + case 48: ACCEPT_TOKEN(anon_sym_qword); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(149); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(141); END_STATE(); - case 50: + case 49: ACCEPT_TOKEN(anon_sym_ptr); END_STATE(); - case 51: + case 50: ACCEPT_TOKEN(anon_sym_ptr); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(149); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(141); END_STATE(); - case 52: + case 51: ACCEPT_TOKEN(anon_sym_LBRACK); END_STATE(); - case 53: + case 52: ACCEPT_TOKEN(anon_sym_PLUS); END_STATE(); - case 54: + case 53: ACCEPT_TOKEN(anon_sym_RBRACK); END_STATE(); - case 55: + case 54: ACCEPT_TOKEN(anon_sym_STAR); END_STATE(); - case 56: + case 55: ACCEPT_TOKEN(anon_sym_rel); END_STATE(); - case 57: + case 56: ACCEPT_TOKEN(anon_sym_rel); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(149); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(141); END_STATE(); - case 58: + case 57: ACCEPT_TOKEN(anon_sym_BANG); END_STATE(); - case 59: + case 58: ACCEPT_TOKEN(anon_sym_SLASH); if (lookahead == '*') ADVANCE(12); - if (lookahead == '/') ADVANCE(154); + if (lookahead == '/') ADVANCE(155); END_STATE(); - case 60: + case 59: ACCEPT_TOKEN(anon_sym_PERCENT); END_STATE(); - case 61: + case 60: ACCEPT_TOKEN(anon_sym_PERCENT); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(143); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(144); END_STATE(); - case 62: + case 61: ACCEPT_TOKEN(anon_sym_PIPE); END_STATE(); - case 63: + case 62: ACCEPT_TOKEN(anon_sym_CARET); END_STATE(); - case 64: + case 63: ACCEPT_TOKEN(anon_sym_AMP); END_STATE(); - case 65: + case 64: ACCEPT_TOKEN(anon_sym_POUND); END_STATE(); - case 66: + case 65: ACCEPT_TOKEN(anon_sym_POUND); if (lookahead != 0 && - lookahead != '\n') ADVANCE(153); + lookahead != '\n') ADVANCE(154); + END_STATE(); + case 66: + ACCEPT_TOKEN(anon_sym_DOLLAR); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'F') || + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(88); + if (('G' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('g' <= lookahead && lookahead <= 'z')) ADVANCE(145); END_STATE(); case 67: + ACCEPT_TOKEN(anon_sym_DOLLAR); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'F') || + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(89); + END_STATE(); + case 68: ACCEPT_TOKEN(aux_sym_int_token1); if (lookahead == 'b') ADVANCE(18); - if (lookahead == 'x') ADVANCE(21); + if (lookahead == 'x') ADVANCE(20); if (('0' <= lookahead && lookahead <= '9') || - lookahead == '_') ADVANCE(69); + lookahead == '_') ADVANCE(70); END_STATE(); - case 68: + case 69: ACCEPT_TOKEN(aux_sym_int_token1); if (lookahead == '0' || lookahead == '1' || - lookahead == '_') ADVANCE(68); + lookahead == '_') ADVANCE(69); END_STATE(); - case 69: + case 70: ACCEPT_TOKEN(aux_sym_int_token1); if (('0' <= lookahead && lookahead <= '9') || - lookahead == '_') ADVANCE(69); + lookahead == '_') ADVANCE(70); END_STATE(); - case 70: + case 71: ACCEPT_TOKEN(aux_sym_int_token1); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'f')) ADVANCE(70); - END_STATE(); - case 71: - ACCEPT_TOKEN(aux_sym_int_token2); - if (lookahead == '.') ADVANCE(148); - if (lookahead == '_') ADVANCE(77); - if (lookahead == 'b') ADVANCE(136); - if (lookahead == 'x') ADVANCE(137); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(72); - if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); - if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(71); END_STATE(); case 72: ACCEPT_TOKEN(aux_sym_int_token2); - if (lookahead == '.') ADVANCE(148); - if (lookahead == '_') ADVANCE(77); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(72); - if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(140); - if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + if (lookahead == '.') ADVANCE(149); + if (lookahead == '_') ADVANCE(78); + if (lookahead == 'b') ADVANCE(137); + if (lookahead == 'x') ADVANCE(138); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(73); + if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(141); END_STATE(); case 73: ACCEPT_TOKEN(aux_sym_int_token2); - if (lookahead == '.') ADVANCE(148); - if (lookahead == '_') ADVANCE(75); + if (lookahead == '.') ADVANCE(149); + if (lookahead == '_') ADVANCE(78); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(73); + if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(141); + if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + END_STATE(); + case 74: + ACCEPT_TOKEN(aux_sym_int_token2); + if (lookahead == '.') ADVANCE(149); + if (lookahead == '_') ADVANCE(76); if (lookahead == '0' || - lookahead == '1') ADVANCE(73); - if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(140); + lookahead == '1') ADVANCE(74); + if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(141); if (('2' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); END_STATE(); - case 74: + case 75: ACCEPT_TOKEN(aux_sym_int_token2); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'b') ADVANCE(135); - if (lookahead == 'x') ADVANCE(138); + if (lookahead == '.') ADVANCE(149); + if (lookahead == 'b') ADVANCE(136); + if (lookahead == 'x') ADVANCE(139); if (('0' <= lookahead && lookahead <= '9') || - lookahead == '_') ADVANCE(77); + lookahead == '_') ADVANCE(78); if (('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(141); END_STATE(); - case 75: + case 76: ACCEPT_TOKEN(aux_sym_int_token2); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(149); if (lookahead == '0' || lookahead == '1' || - lookahead == '_') ADVANCE(75); + lookahead == '_') ADVANCE(76); if (('2' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(141); END_STATE(); - case 76: + case 77: ACCEPT_TOKEN(aux_sym_int_token2); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(149); if (('A' <= lookahead && lookahead <= 'F') || - lookahead == '_') ADVANCE(78); + lookahead == '_') ADVANCE(79); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'f')) ADVANCE(76); - if (('G' <= lookahead && lookahead <= 'Z')) ADVANCE(140); - if (('g' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(77); + if (('G' <= lookahead && lookahead <= 'Z')) ADVANCE(141); + if (('g' <= lookahead && lookahead <= 'z')) ADVANCE(140); END_STATE(); - case 77: + case 78: ACCEPT_TOKEN(aux_sym_int_token2); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(149); if (('0' <= lookahead && lookahead <= '9') || - lookahead == '_') ADVANCE(77); + lookahead == '_') ADVANCE(78); if (('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(141); END_STATE(); - case 78: + case 79: ACCEPT_TOKEN(aux_sym_int_token2); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(149); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'f')) ADVANCE(78); + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(79); if (('G' <= lookahead && lookahead <= 'Z') || - ('g' <= lookahead && lookahead <= 'z')) ADVANCE(140); - END_STATE(); - case 79: - ACCEPT_TOKEN(aux_sym_int_token2); - if (lookahead == '.') ADVANCE(89); - if (lookahead == '_') ADVANCE(81); - if (lookahead == 'b') ADVANCE(136); - if (lookahead == 'x') ADVANCE(137); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(80); - if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); - if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(140); + ('g' <= lookahead && lookahead <= 'z')) ADVANCE(141); END_STATE(); case 80: ACCEPT_TOKEN(aux_sym_int_token2); - if (lookahead == '.') ADVANCE(89); - if (lookahead == '_') ADVANCE(81); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(80); - if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(140); - if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + if (lookahead == '.') ADVANCE(90); + if (lookahead == '_') ADVANCE(82); + if (lookahead == 'b') ADVANCE(137); + if (lookahead == 'x') ADVANCE(138); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(81); + if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(141); END_STATE(); case 81: ACCEPT_TOKEN(aux_sym_int_token2); - if (lookahead == '.') ADVANCE(89); - if (('0' <= lookahead && lookahead <= '9') || - lookahead == '_') ADVANCE(81); - if (('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + if (lookahead == '.') ADVANCE(90); + if (lookahead == '_') ADVANCE(82); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(81); + if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(141); + if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); END_STATE(); case 82: ACCEPT_TOKEN(aux_sym_int_token2); if (lookahead == '.') ADVANCE(90); - if (lookahead == 'b') ADVANCE(17); - if (lookahead == 'x') ADVANCE(20); if (('0' <= lookahead && lookahead <= '9') || - lookahead == '_') ADVANCE(83); + lookahead == '_') ADVANCE(82); + if (('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(141); END_STATE(); case 83: ACCEPT_TOKEN(aux_sym_int_token2); - if (lookahead == '.') ADVANCE(90); + if (lookahead == '.') ADVANCE(91); + if (lookahead == 'b') ADVANCE(17); + if (lookahead == 'x') ADVANCE(19); if (('0' <= lookahead && lookahead <= '9') || - lookahead == '_') ADVANCE(83); + lookahead == '_') ADVANCE(84); END_STATE(); case 84: ACCEPT_TOKEN(aux_sym_int_token2); - if (lookahead == 'b') ADVANCE(17); - if (lookahead == 'x') ADVANCE(20); + if (lookahead == '.') ADVANCE(91); if (('0' <= lookahead && lookahead <= '9') || - lookahead == '_') ADVANCE(86); + lookahead == '_') ADVANCE(84); END_STATE(); case 85: ACCEPT_TOKEN(aux_sym_int_token2); - if (lookahead == '0' || - lookahead == '1' || - lookahead == '_') ADVANCE(85); + if (lookahead == 'b') ADVANCE(17); + if (lookahead == 'x') ADVANCE(19); + if (('0' <= lookahead && lookahead <= '9') || + lookahead == '_') ADVANCE(87); END_STATE(); case 86: ACCEPT_TOKEN(aux_sym_int_token2); - if (('0' <= lookahead && lookahead <= '9') || + if (lookahead == '0' || + lookahead == '1' || lookahead == '_') ADVANCE(86); END_STATE(); case 87: ACCEPT_TOKEN(aux_sym_int_token2); if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'F') || - lookahead == '_' || - ('a' <= lookahead && lookahead <= 'f')) ADVANCE(87); - if (('G' <= lookahead && lookahead <= 'Z') || - ('g' <= lookahead && lookahead <= 'z')) ADVANCE(144); + lookahead == '_') ADVANCE(87); END_STATE(); case 88: ACCEPT_TOKEN(aux_sym_int_token2); @@ -1358,552 +1367,561 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { ('A' <= lookahead && lookahead <= 'F') || lookahead == '_' || ('a' <= lookahead && lookahead <= 'f')) ADVANCE(88); + if (('G' <= lookahead && lookahead <= 'Z') || + ('g' <= lookahead && lookahead <= 'z')) ADVANCE(145); END_STATE(); case 89: - ACCEPT_TOKEN(sym_float); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(91); - if (lookahead == '.' || - ('A' <= lookahead && lookahead <= 'Z') || + ACCEPT_TOKEN(aux_sym_int_token2); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'F') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(89); END_STATE(); case 90: ACCEPT_TOKEN(sym_float); if (('0' <= lookahead && lookahead <= '9')) ADVANCE(92); + if (lookahead == '.' || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); case 91: ACCEPT_TOKEN(sym_float); - if (('0' <= lookahead && lookahead <= '9') || - lookahead == '_') ADVANCE(91); - if (lookahead == '.' || - ('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(93); END_STATE(); case 92: ACCEPT_TOKEN(sym_float); if (('0' <= lookahead && lookahead <= '9') || lookahead == '_') ADVANCE(92); + if (lookahead == '.' || + ('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); case 93: - ACCEPT_TOKEN(aux_sym_string_token1); + ACCEPT_TOKEN(sym_float); + if (('0' <= lookahead && lookahead <= '9') || + lookahead == '_') ADVANCE(93); END_STATE(); case 94: - ACCEPT_TOKEN(aux_sym_string_token2); + ACCEPT_TOKEN(aux_sym_string_token1); END_STATE(); case 95: - ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'a') ADVANCE(96); - if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || - ('b' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ACCEPT_TOKEN(aux_sym_string_token2); END_STATE(); case 96: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'b') ADVANCE(106); + if (lookahead == '.') ADVANCE(149); + if (lookahead == 'a') ADVANCE(97); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('b' <= lookahead && lookahead <= 'z')) ADVANCE(141); END_STATE(); case 97: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'd') ADVANCE(45); + if (lookahead == '.') ADVANCE(149); + if (lookahead == 'b') ADVANCE(107); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(141); END_STATE(); case 98: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'd') ADVANCE(47); + if (lookahead == '.') ADVANCE(149); + if (lookahead == 'd') ADVANCE(44); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(141); END_STATE(); case 99: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'd') ADVANCE(49); + if (lookahead == '.') ADVANCE(149); + if (lookahead == 'd') ADVANCE(46); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(141); END_STATE(); case 100: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'd') ADVANCE(44); - if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + if (lookahead == '.') ADVANCE(149); + if (lookahead == 'd') ADVANCE(48); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(141); END_STATE(); case 101: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'd') ADVANCE(46); + if (lookahead == '.') ADVANCE(149); + if (lookahead == 'd') ADVANCE(43); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(141); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); END_STATE(); case 102: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'd') ADVANCE(48); + if (lookahead == '.') ADVANCE(149); + if (lookahead == 'd') ADVANCE(45); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(141); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); END_STATE(); case 103: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'e') ADVANCE(107); + if (lookahead == '.') ADVANCE(149); + if (lookahead == 'd') ADVANCE(47); + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_') ADVANCE(141); if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); END_STATE(); case 104: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'e') ADVANCE(43); + if (lookahead == '.') ADVANCE(149); + if (lookahead == 'e') ADVANCE(108); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(141); END_STATE(); case 105: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(149); if (lookahead == 'e') ADVANCE(42); - if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(141); END_STATE(); case 106: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'e') ADVANCE(108); + if (lookahead == '.') ADVANCE(149); + if (lookahead == 'e') ADVANCE(41); + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_') ADVANCE(141); if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); END_STATE(); case 107: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'l') ADVANCE(57); + if (lookahead == '.') ADVANCE(149); + if (lookahead == 'e') ADVANCE(109); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(141); END_STATE(); case 108: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'l') ADVANCE(36); + if (lookahead == '.') ADVANCE(149); + if (lookahead == 'l') ADVANCE(56); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(141); END_STATE(); case 109: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'n') ADVANCE(124); + if (lookahead == '.') ADVANCE(149); + if (lookahead == 'l') ADVANCE(35); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(141); END_STATE(); case 110: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'o') ADVANCE(109); + if (lookahead == '.') ADVANCE(149); + if (lookahead == 'n') ADVANCE(125); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(141); END_STATE(); case 111: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'o') ADVANCE(119); - if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + if (lookahead == '.') ADVANCE(149); + if (lookahead == 'o') ADVANCE(110); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(141); END_STATE(); case 112: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'o') ADVANCE(118); + if (lookahead == '.') ADVANCE(149); + if (lookahead == 'o') ADVANCE(120); + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_') ADVANCE(141); if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); END_STATE(); case 113: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'o') ADVANCE(120); + if (lookahead == '.') ADVANCE(149); + if (lookahead == 'o') ADVANCE(119); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(141); END_STATE(); case 114: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'o') ADVANCE(122); + if (lookahead == '.') ADVANCE(149); + if (lookahead == 'o') ADVANCE(121); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(141); END_STATE(); case 115: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'o') ADVANCE(121); - if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + if (lookahead == '.') ADVANCE(149); + if (lookahead == 'o') ADVANCE(123); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(141); END_STATE(); case 116: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'o') ADVANCE(123); + if (lookahead == '.') ADVANCE(149); + if (lookahead == 'o') ADVANCE(122); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(141); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); END_STATE(); case 117: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'r') ADVANCE(51); + if (lookahead == '.') ADVANCE(149); + if (lookahead == 'o') ADVANCE(124); + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_') ADVANCE(141); if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); END_STATE(); case 118: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'r') ADVANCE(97); + if (lookahead == '.') ADVANCE(149); + if (lookahead == 'r') ADVANCE(50); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(141); END_STATE(); case 119: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'r') ADVANCE(100); - if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); - if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); - END_STATE(); - case 120: - ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(149); if (lookahead == 'r') ADVANCE(98); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(141); END_STATE(); - case 121: + case 120: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(149); if (lookahead == 'r') ADVANCE(101); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(141); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); END_STATE(); - case 122: + case 121: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(149); if (lookahead == 'r') ADVANCE(99); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(141); END_STATE(); - case 123: + case 122: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(149); if (lookahead == 'r') ADVANCE(102); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(141); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); END_STATE(); - case 124: + case 123: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 's') ADVANCE(126); + if (lookahead == '.') ADVANCE(149); + if (lookahead == 'r') ADVANCE(100); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(141); + END_STATE(); + case 124: + ACCEPT_TOKEN(sym_word); + if (lookahead == '.') ADVANCE(149); + if (lookahead == 'r') ADVANCE(103); + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_') ADVANCE(141); + if (('0' <= lookahead && lookahead <= '9') || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); END_STATE(); case 125: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 't') ADVANCE(117); + if (lookahead == '.') ADVANCE(149); + if (lookahead == 's') ADVANCE(127); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(141); END_STATE(); case 126: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 't') ADVANCE(37); + if (lookahead == '.') ADVANCE(149); + if (lookahead == 't') ADVANCE(118); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(141); END_STATE(); case 127: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 't') ADVANCE(105); - if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + if (lookahead == '.') ADVANCE(149); + if (lookahead == 't') ADVANCE(36); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(141); END_STATE(); case 128: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 't') ADVANCE(104); + if (lookahead == '.') ADVANCE(149); + if (lookahead == 't') ADVANCE(106); + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_') ADVANCE(141); if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); END_STATE(); case 129: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'w') ADVANCE(113); + if (lookahead == '.') ADVANCE(149); + if (lookahead == 't') ADVANCE(105); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(141); END_STATE(); case 130: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(149); if (lookahead == 'w') ADVANCE(114); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(141); END_STATE(); case 131: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(149); if (lookahead == 'w') ADVANCE(115); - if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(141); END_STATE(); case 132: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(149); if (lookahead == 'w') ADVANCE(116); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(141); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); END_STATE(); case 133: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'y') ADVANCE(127); + if (lookahead == '.') ADVANCE(149); + if (lookahead == 'w') ADVANCE(117); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(141); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); END_STATE(); case 134: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(149); if (lookahead == 'y') ADVANCE(128); + if (('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_') ADVANCE(141); if (('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_' || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); END_STATE(); case 135: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(149); + if (lookahead == 'y') ADVANCE(129); + if (('0' <= lookahead && lookahead <= '9') || + ('A' <= lookahead && lookahead <= 'Z') || + lookahead == '_' || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(141); + END_STATE(); + case 136: + ACCEPT_TOKEN(sym_word); + if (lookahead == '.') ADVANCE(149); if (lookahead == '0' || - lookahead == '1') ADVANCE(75); + lookahead == '1') ADVANCE(76); if (('2' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(141); END_STATE(); - case 136: + case 137: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(149); if (lookahead == '0' || - lookahead == '1') ADVANCE(73); + lookahead == '1') ADVANCE(74); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(141); if (('2' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); END_STATE(); - case 137: + case 138: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (('A' <= lookahead && lookahead <= 'F')) ADVANCE(78); + if (lookahead == '.') ADVANCE(149); + if (('A' <= lookahead && lookahead <= 'F')) ADVANCE(79); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'f')) ADVANCE(76); - if (('g' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(77); + if (('g' <= lookahead && lookahead <= 'z')) ADVANCE(140); if (('G' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(141); END_STATE(); - case 138: + case 139: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(149); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || - ('a' <= lookahead && lookahead <= 'f')) ADVANCE(78); + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(79); if (('G' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('g' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('g' <= lookahead && lookahead <= 'z')) ADVANCE(141); END_STATE(); - case 139: + case 140: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(149); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(141); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); END_STATE(); - case 140: + case 141: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(149); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(141); END_STATE(); - case 141: + case 142: ACCEPT_TOKEN(sym_word); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(142); + lookahead == '_') ADVANCE(143); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(141); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(142); END_STATE(); - case 142: + case 143: ACCEPT_TOKEN(sym_word); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(142); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(143); END_STATE(); - case 143: + case 144: ACCEPT_TOKEN(sym__reg); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(143); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(144); END_STATE(); - case 144: + case 145: ACCEPT_TOKEN(sym_address); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(144); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(145); END_STATE(); - case 145: + case 146: ACCEPT_TOKEN(sym_meta_ident); if (lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(145); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(146); if (lookahead == '.' || ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z')) ADVANCE(148); + ('A' <= lookahead && lookahead <= 'Z')) ADVANCE(149); END_STATE(); - case 146: + case 147: ACCEPT_TOKEN(sym_meta_ident); if (lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(146); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(147); END_STATE(); - case 147: + case 148: ACCEPT_TOKEN(sym__ident); if (lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(145); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(146); if (lookahead == '.' || ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z')) ADVANCE(148); + ('A' <= lookahead && lookahead <= 'Z')) ADVANCE(149); END_STATE(); - case 148: + case 149: ACCEPT_TOKEN(sym__ident); if (lookahead == '.' || ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); - END_STATE(); - case 149: - ACCEPT_TOKEN(aux_sym_line_comment_token1); - if (lookahead == '\n') ADVANCE(12); - if (lookahead == '*') ADVANCE(149); - if (lookahead == '/') ADVANCE(153); - if (lookahead != 0) ADVANCE(150); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); case 150: ACCEPT_TOKEN(aux_sym_line_comment_token1); if (lookahead == '\n') ADVANCE(12); - if (lookahead == '*') ADVANCE(149); - if (lookahead != 0) ADVANCE(150); + if (lookahead == '*') ADVANCE(150); + if (lookahead == '/') ADVANCE(154); + if (lookahead != 0) ADVANCE(151); END_STATE(); case 151: ACCEPT_TOKEN(aux_sym_line_comment_token1); - if (lookahead == '#') ADVANCE(66); - if (lookahead == '/') ADVANCE(152); - if (lookahead == ';') ADVANCE(153); - if (lookahead == '\t' || - lookahead == '\r' || - lookahead == ' ') ADVANCE(151); - if (lookahead != 0 && - lookahead != '\t' && - lookahead != '\n') ADVANCE(153); + if (lookahead == '\n') ADVANCE(12); + if (lookahead == '*') ADVANCE(150); + if (lookahead != 0) ADVANCE(151); END_STATE(); case 152: ACCEPT_TOKEN(aux_sym_line_comment_token1); - if (lookahead == '*') ADVANCE(150); + if (lookahead == '#') ADVANCE(65); if (lookahead == '/') ADVANCE(153); + if (lookahead == ';') ADVANCE(154); + if (lookahead == '\t' || + lookahead == '\r' || + lookahead == ' ') ADVANCE(152); if (lookahead != 0 && - lookahead != '\n') ADVANCE(153); + lookahead != '\t' && + lookahead != '\n') ADVANCE(154); END_STATE(); case 153: ACCEPT_TOKEN(aux_sym_line_comment_token1); + if (lookahead == '*') ADVANCE(151); + if (lookahead == '/') ADVANCE(154); if (lookahead != 0 && - lookahead != '\n') ADVANCE(153); + lookahead != '\n') ADVANCE(154); END_STATE(); case 154: - ACCEPT_TOKEN(aux_sym_line_comment_token2); + ACCEPT_TOKEN(aux_sym_line_comment_token1); if (lookahead != 0 && lookahead != '\n') ADVANCE(154); END_STATE(); case 155: + ACCEPT_TOKEN(aux_sym_line_comment_token2); + if (lookahead != 0 && + lookahead != '\n') ADVANCE(155); + END_STATE(); + case 156: ACCEPT_TOKEN(sym_block_comment); END_STATE(); default: @@ -1911,93 +1929,93 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { } } -static const TSLexMode ts_lex_modes[STATE_COUNT] = { +static const TSLexerMode ts_lex_modes[STATE_COUNT] = { [0] = {.lex_state = 0}, - [1] = {.lex_state = 28}, - [2] = {.lex_state = 25}, - [3] = {.lex_state = 25}, - [4] = {.lex_state = 25}, - [5] = {.lex_state = 25}, - [6] = {.lex_state = 27}, - [7] = {.lex_state = 27}, - [8] = {.lex_state = 27}, - [9] = {.lex_state = 27}, - [10] = {.lex_state = 27}, - [11] = {.lex_state = 27}, - [12] = {.lex_state = 27}, - [13] = {.lex_state = 27}, - [14] = {.lex_state = 27}, - [15] = {.lex_state = 27}, - [16] = {.lex_state = 27}, - [17] = {.lex_state = 27}, - [18] = {.lex_state = 27}, - [19] = {.lex_state = 27}, - [20] = {.lex_state = 27}, - [21] = {.lex_state = 27}, - [22] = {.lex_state = 26}, - [23] = {.lex_state = 26}, - [24] = {.lex_state = 27}, - [25] = {.lex_state = 27}, - [26] = {.lex_state = 27}, - [27] = {.lex_state = 27}, - [28] = {.lex_state = 27}, - [29] = {.lex_state = 27}, - [30] = {.lex_state = 27}, - [31] = {.lex_state = 27}, - [32] = {.lex_state = 27}, - [33] = {.lex_state = 27}, - [34] = {.lex_state = 27}, - [35] = {.lex_state = 28}, - [36] = {.lex_state = 28}, - [37] = {.lex_state = 28}, - [38] = {.lex_state = 28}, - [39] = {.lex_state = 28}, - [40] = {.lex_state = 28}, - [41] = {.lex_state = 28}, - [42] = {.lex_state = 28}, - [43] = {.lex_state = 28}, - [44] = {.lex_state = 28}, - [45] = {.lex_state = 28}, - [46] = {.lex_state = 28}, - [47] = {.lex_state = 28}, - [48] = {.lex_state = 28}, - [49] = {.lex_state = 28}, + [1] = {.lex_state = 27}, + [2] = {.lex_state = 24}, + [3] = {.lex_state = 24}, + [4] = {.lex_state = 24}, + [5] = {.lex_state = 24}, + [6] = {.lex_state = 26}, + [7] = {.lex_state = 26}, + [8] = {.lex_state = 26}, + [9] = {.lex_state = 26}, + [10] = {.lex_state = 26}, + [11] = {.lex_state = 26}, + [12] = {.lex_state = 26}, + [13] = {.lex_state = 26}, + [14] = {.lex_state = 26}, + [15] = {.lex_state = 26}, + [16] = {.lex_state = 26}, + [17] = {.lex_state = 26}, + [18] = {.lex_state = 26}, + [19] = {.lex_state = 26}, + [20] = {.lex_state = 26}, + [21] = {.lex_state = 26}, + [22] = {.lex_state = 25}, + [23] = {.lex_state = 25}, + [24] = {.lex_state = 26}, + [25] = {.lex_state = 26}, + [26] = {.lex_state = 26}, + [27] = {.lex_state = 26}, + [28] = {.lex_state = 26}, + [29] = {.lex_state = 26}, + [30] = {.lex_state = 26}, + [31] = {.lex_state = 26}, + [32] = {.lex_state = 26}, + [33] = {.lex_state = 26}, + [34] = {.lex_state = 26}, + [35] = {.lex_state = 27}, + [36] = {.lex_state = 27}, + [37] = {.lex_state = 27}, + [38] = {.lex_state = 27}, + [39] = {.lex_state = 27}, + [40] = {.lex_state = 27}, + [41] = {.lex_state = 27}, + [42] = {.lex_state = 27}, + [43] = {.lex_state = 27}, + [44] = {.lex_state = 27}, + [45] = {.lex_state = 27}, + [46] = {.lex_state = 26}, + [47] = {.lex_state = 27}, + [48] = {.lex_state = 26}, + [49] = {.lex_state = 27}, [50] = {.lex_state = 27}, [51] = {.lex_state = 27}, - [52] = {.lex_state = 28}, - [53] = {.lex_state = 28}, - [54] = {.lex_state = 4}, + [52] = {.lex_state = 27}, + [53] = {.lex_state = 4}, + [54] = {.lex_state = 27}, [55] = {.lex_state = 4}, - [56] = {.lex_state = 29}, - [57] = {.lex_state = 29}, - [58] = {.lex_state = 29}, - [59] = {.lex_state = 29}, - [60] = {.lex_state = 29}, + [56] = {.lex_state = 28}, + [57] = {.lex_state = 28}, + [58] = {.lex_state = 28}, + [59] = {.lex_state = 28}, + [60] = {.lex_state = 28}, [61] = {.lex_state = 0}, - [62] = {.lex_state = 28}, + [62] = {.lex_state = 27}, [63] = {.lex_state = 28}, - [64] = {.lex_state = 0}, - [65] = {.lex_state = 0}, + [64] = {.lex_state = 27}, + [65] = {.lex_state = 28}, [66] = {.lex_state = 0}, - [67] = {.lex_state = 29}, + [67] = {.lex_state = 0}, [68] = {.lex_state = 0}, [69] = {.lex_state = 0}, [70] = {.lex_state = 0}, - [71] = {.lex_state = 0}, - [72] = {.lex_state = 29}, - [73] = {.lex_state = 29}, - [74] = {.lex_state = 0}, - [75] = {.lex_state = 29}, - [76] = {.lex_state = 28}, - [77] = {.lex_state = 0}, + [71] = {.lex_state = 28}, + [72] = {.lex_state = 0}, + [73] = {.lex_state = 0}, + [74] = {.lex_state = 28}, + [75] = {.lex_state = 27}, + [76] = {.lex_state = 0}, + [77] = {.lex_state = 27}, [78] = {.lex_state = 0}, - [79] = {.lex_state = 29}, + [79] = {.lex_state = 0}, [80] = {.lex_state = 0}, [81] = {.lex_state = 0}, - [82] = {.lex_state = 28}, + [82] = {.lex_state = 0}, [83] = {.lex_state = 0}, [84] = {.lex_state = 0}, - [85] = {.lex_state = 0}, + [85] = {.lex_state = 28}, [86] = {.lex_state = 0}, [87] = {.lex_state = 0}, [88] = {.lex_state = 0}, @@ -2009,50 +2027,50 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [94] = {.lex_state = 0}, [95] = {.lex_state = 0}, [96] = {.lex_state = 0}, - [97] = {.lex_state = 0}, + [97] = {.lex_state = 2}, [98] = {.lex_state = 0}, [99] = {.lex_state = 0}, - [100] = {.lex_state = 0}, + [100] = {.lex_state = 2}, [101] = {.lex_state = 0}, - [102] = {.lex_state = 28}, + [102] = {.lex_state = 27}, [103] = {.lex_state = 0}, - [104] = {.lex_state = 28}, - [105] = {.lex_state = 2}, - [106] = {.lex_state = 0}, + [104] = {.lex_state = 2}, + [105] = {.lex_state = 0}, + [106] = {.lex_state = 27}, [107] = {.lex_state = 0}, [108] = {.lex_state = 0}, - [109] = {.lex_state = 2}, + [109] = {.lex_state = 0}, [110] = {.lex_state = 0}, [111] = {.lex_state = 0}, [112] = {.lex_state = 0}, [113] = {.lex_state = 0}, [114] = {.lex_state = 0}, - [115] = {.lex_state = 2}, - [116] = {.lex_state = 151}, - [117] = {.lex_state = 0}, - [118] = {.lex_state = 0}, + [115] = {.lex_state = 0}, + [116] = {.lex_state = 0}, + [117] = {.lex_state = 28}, + [118] = {.lex_state = 3}, [119] = {.lex_state = 0}, [120] = {.lex_state = 0}, [121] = {.lex_state = 0}, [122] = {.lex_state = 0}, - [123] = {.lex_state = 0}, - [124] = {.lex_state = 25}, - [125] = {.lex_state = 3}, - [126] = {.lex_state = 2}, - [127] = {.lex_state = 2}, - [128] = {.lex_state = 0}, + [123] = {.lex_state = 2}, + [124] = {.lex_state = 0}, + [125] = {.lex_state = 0}, + [126] = {.lex_state = 24}, + [127] = {.lex_state = 28}, + [128] = {.lex_state = 152}, [129] = {.lex_state = 0}, - [130] = {.lex_state = 0}, + [130] = {.lex_state = 2}, [131] = {.lex_state = 0}, - [132] = {.lex_state = 29}, - [133] = {.lex_state = 29}, + [132] = {.lex_state = 0}, + [133] = {.lex_state = 0}, [134] = {.lex_state = 3}, - [135] = {(TSStateId)(-1)}, - [136] = {(TSStateId)(-1)}, + [135] = {(TSStateId)(-1),}, + [136] = {(TSStateId)(-1),}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { - [0] = { + [STATE(0)] = { [sym_line_comment] = STATE(0), [ts_builtin_sym_end] = ACTIONS(1), [anon_sym_LF] = ACTIONS(1), @@ -2082,6 +2100,7 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_CARET] = ACTIONS(1), [anon_sym_AMP] = ACTIONS(1), [anon_sym_POUND] = ACTIONS(3), + [anon_sym_DOLLAR] = ACTIONS(1), [aux_sym_int_token2] = ACTIONS(1), [aux_sym_string_token1] = ACTIONS(1), [aux_sym_string_token2] = ACTIONS(1), @@ -2092,13 +2111,13 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [aux_sym_line_comment_token2] = ACTIONS(5), [sym_block_comment] = ACTIONS(7), }, - [1] = { - [sym_program] = STATE(130), - [sym__item] = STATE(81), - [sym_meta] = STATE(114), - [sym_label] = STATE(114), - [sym_const] = STATE(114), - [sym_instruction] = STATE(114), + [STATE(1)] = { + [sym_program] = STATE(116), + [sym__item] = STATE(61), + [sym_meta] = STATE(108), + [sym_label] = STATE(108), + [sym_const] = STATE(108), + [sym_instruction] = STATE(108), [sym_line_comment] = STATE(1), [ts_builtin_sym_end] = ACTIONS(9), [anon_sym_label] = ACTIONS(11), @@ -2110,16 +2129,16 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [aux_sym_line_comment_token2] = ACTIONS(5), [sym_block_comment] = ACTIONS(7), }, - [2] = { - [sym__expr] = STATE(69), - [sym_list] = STATE(100), - [sym_ptr] = STATE(100), - [sym__tc_expr] = STATE(18), - [sym_tc_infix] = STATE(17), - [sym_int] = STATE(7), - [sym_string] = STATE(10), - [sym_reg] = STATE(11), - [sym_ident] = STATE(10), + [STATE(2)] = { + [sym__expr] = STATE(70), + [sym_list] = STATE(90), + [sym_ptr] = STATE(90), + [sym__tc_expr] = STATE(14), + [sym_tc_infix] = STATE(13), + [sym_int] = STATE(6), + [sym_string] = STATE(12), + [sym_reg] = STATE(9), + [sym_ident] = STATE(12), [sym_line_comment] = STATE(2), [aux_sym_instruction_repeat2] = STATE(20), [ts_builtin_sym_end] = ACTIONS(21), @@ -2134,22 +2153,23 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_LBRACK] = ACTIONS(31), [anon_sym_STAR] = ACTIONS(33), [anon_sym_POUND] = ACTIONS(35), - [aux_sym_int_token2] = ACTIONS(37), - [sym_float] = ACTIONS(39), - [aux_sym_string_token1] = ACTIONS(41), - [aux_sym_string_token2] = ACTIONS(41), - [sym_word] = ACTIONS(43), - [sym__reg] = ACTIONS(43), - [sym_address] = ACTIONS(43), - [sym_meta_ident] = ACTIONS(45), - [sym__ident] = ACTIONS(45), + [anon_sym_DOLLAR] = ACTIONS(37), + [aux_sym_int_token2] = ACTIONS(39), + [sym_float] = ACTIONS(41), + [aux_sym_string_token1] = ACTIONS(43), + [aux_sym_string_token2] = ACTIONS(43), + [sym_word] = ACTIONS(45), + [sym__reg] = ACTIONS(45), + [sym_address] = ACTIONS(45), + [sym_meta_ident] = ACTIONS(47), + [sym__ident] = ACTIONS(47), [aux_sym_line_comment_token2] = ACTIONS(5), [sym_block_comment] = ACTIONS(7), }, }; static const uint16_t ts_small_parse_table[] = { - [0] = 19, + [0] = 20, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, @@ -2162,30 +2182,32 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, ACTIONS(33), 1, anon_sym_STAR, - ACTIONS(39), 1, + ACTIONS(41), 1, sym_float, - ACTIONS(49), 1, - anon_sym_POUND, ACTIONS(51), 1, + anon_sym_POUND, + ACTIONS(53), 1, + anon_sym_DOLLAR, + ACTIONS(55), 1, aux_sym_int_token2, STATE(3), 1, sym_line_comment, STATE(40), 1, sym_reg, - STATE(78), 1, + STATE(68), 1, sym_int, - STATE(91), 1, + STATE(105), 1, sym__expr, - ACTIONS(47), 2, + ACTIONS(49), 2, ts_builtin_sym_end, anon_sym_LF, - ACTIONS(53), 2, + ACTIONS(57), 2, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(57), 2, + ACTIONS(61), 2, sym_meta_ident, sym__ident, - ACTIONS(55), 3, + ACTIONS(59), 3, sym_word, sym__reg, sym_address, @@ -2194,12 +2216,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_word, anon_sym_dword, anon_sym_qword, - STATE(100), 4, + STATE(90), 4, sym_list, sym_ptr, sym_string, sym_ident, - [69] = 19, + [72] = 20, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, @@ -2212,30 +2234,32 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, ACTIONS(33), 1, anon_sym_STAR, - ACTIONS(39), 1, + ACTIONS(41), 1, sym_float, - ACTIONS(49), 1, - anon_sym_POUND, ACTIONS(51), 1, + anon_sym_POUND, + ACTIONS(53), 1, + anon_sym_DOLLAR, + ACTIONS(55), 1, aux_sym_int_token2, STATE(4), 1, sym_line_comment, STATE(40), 1, sym_reg, - STATE(78), 1, + STATE(68), 1, sym_int, - STATE(91), 1, + STATE(105), 1, sym__expr, - ACTIONS(53), 2, + ACTIONS(57), 2, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(57), 2, + ACTIONS(61), 2, sym_meta_ident, sym__ident, - ACTIONS(59), 2, + ACTIONS(63), 2, ts_builtin_sym_end, anon_sym_LF, - ACTIONS(55), 3, + ACTIONS(59), 3, sym_word, sym__reg, sym_address, @@ -2244,12 +2268,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_word, anon_sym_dword, anon_sym_qword, - STATE(100), 4, + STATE(90), 4, sym_list, sym_ptr, sym_string, sym_ident, - [138] = 18, + [144] = 19, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, @@ -2262,27 +2286,29 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LBRACK, ACTIONS(33), 1, anon_sym_STAR, - ACTIONS(39), 1, + ACTIONS(41), 1, sym_float, - ACTIONS(49), 1, - anon_sym_POUND, ACTIONS(51), 1, + anon_sym_POUND, + ACTIONS(53), 1, + anon_sym_DOLLAR, + ACTIONS(55), 1, aux_sym_int_token2, STATE(5), 1, sym_line_comment, STATE(40), 1, sym_reg, - STATE(78), 1, + STATE(68), 1, sym_int, - STATE(91), 1, + STATE(105), 1, sym__expr, - ACTIONS(53), 2, + ACTIONS(57), 2, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(57), 2, + ACTIONS(61), 2, sym_meta_ident, sym__ident, - ACTIONS(55), 3, + ACTIONS(59), 3, sym_word, sym__reg, sym_address, @@ -2291,42 +2317,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_word, anon_sym_dword, anon_sym_qword, - STATE(100), 4, + STATE(90), 4, sym_list, sym_ptr, sym_string, sym_ident, - [203] = 5, - ACTIONS(5), 1, - aux_sym_line_comment_token2, - ACTIONS(7), 1, - sym_block_comment, - STATE(6), 1, - sym_line_comment, - ACTIONS(63), 9, - anon_sym_DASH, - anon_sym_SLASH, - anon_sym_PERCENT, - aux_sym_int_token2, - sym_word, - sym__reg, - sym_address, - sym_meta_ident, - sym__ident, - ACTIONS(61), 12, - ts_builtin_sym_end, - anon_sym_LF, - anon_sym_COMMA, - anon_sym_LPAREN, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_PIPE, - anon_sym_CARET, - anon_sym_AMP, - anon_sym_POUND, - aux_sym_string_token1, - aux_sym_string_token2, - [238] = 8, + [212] = 8, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, @@ -2335,7 +2331,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, ACTIONS(70), 1, anon_sym_LPAREN, - STATE(7), 1, + STATE(6), 1, sym_line_comment, ACTIONS(65), 2, ts_builtin_sym_end, @@ -2349,27 +2345,29 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(72), 9, + ACTIONS(72), 10, anon_sym_DASH, anon_sym_SLASH, anon_sym_PERCENT, + anon_sym_DOLLAR, aux_sym_int_token2, sym_word, sym__reg, sym_address, sym_meta_ident, sym__ident, - [279] = 5, + [254] = 5, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(8), 1, + STATE(7), 1, sym_line_comment, - ACTIONS(78), 9, + ACTIONS(78), 10, anon_sym_DASH, anon_sym_SLASH, anon_sym_PERCENT, + anon_sym_DOLLAR, aux_sym_int_token2, sym_word, sym__reg, @@ -2389,27 +2387,29 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, aux_sym_string_token1, aux_sym_string_token2, - [314] = 5, + [290] = 5, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(9), 1, + STATE(8), 1, sym_line_comment, - ACTIONS(82), 9, + ACTIONS(82), 10, anon_sym_DASH, anon_sym_SLASH, anon_sym_PERCENT, + anon_sym_DOLLAR, aux_sym_int_token2, sym_word, sym__reg, sym_address, sym_meta_ident, sym__ident, - ACTIONS(80), 11, + ACTIONS(80), 12, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, + anon_sym_LPAREN, anon_sym_PLUS, anon_sym_STAR, anon_sym_PIPE, @@ -2418,19 +2418,28 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, aux_sym_string_token1, aux_sym_string_token2, - [348] = 7, + [326] = 5, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(68), 1, - anon_sym_COMMA, - STATE(10), 1, + STATE(9), 1, sym_line_comment, - ACTIONS(65), 2, + ACTIONS(86), 10, + anon_sym_DASH, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_DOLLAR, + aux_sym_int_token2, + sym_word, + sym__reg, + sym_address, + sym_meta_ident, + sym__ident, + ACTIONS(84), 11, ts_builtin_sym_end, anon_sym_LF, - ACTIONS(74), 8, + anon_sym_COMMA, anon_sym_PLUS, anon_sym_STAR, anon_sym_PIPE, @@ -2439,34 +2448,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(72), 9, - anon_sym_DASH, - anon_sym_SLASH, - anon_sym_PERCENT, - aux_sym_int_token2, - sym_word, - sym__reg, - sym_address, - sym_meta_ident, - sym__ident, - [386] = 5, + [361] = 5, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(11), 1, + STATE(10), 1, sym_line_comment, - ACTIONS(86), 9, + ACTIONS(90), 10, anon_sym_DASH, anon_sym_SLASH, anon_sym_PERCENT, + anon_sym_DOLLAR, aux_sym_int_token2, sym_word, sym__reg, sym_address, sym_meta_ident, sym__ident, - ACTIONS(84), 11, + ACTIONS(88), 11, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, @@ -2478,24 +2478,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, aux_sym_string_token1, aux_sym_string_token2, - [420] = 5, + [396] = 5, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(12), 1, + STATE(11), 1, sym_line_comment, - ACTIONS(90), 9, + ACTIONS(94), 10, anon_sym_DASH, anon_sym_SLASH, anon_sym_PERCENT, + anon_sym_DOLLAR, aux_sym_int_token2, sym_word, sym__reg, sym_address, sym_meta_ident, sym__ident, - ACTIONS(88), 11, + ACTIONS(92), 11, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, @@ -2507,88 +2508,57 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, aux_sym_string_token1, aux_sym_string_token2, - [454] = 8, + [431] = 7, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(96), 1, - anon_sym_PIPE, - ACTIONS(98), 1, - anon_sym_CARET, - ACTIONS(100), 1, - anon_sym_AMP, - STATE(13), 1, + ACTIONS(68), 1, + anon_sym_COMMA, + STATE(12), 1, sym_line_comment, - ACTIONS(92), 7, + ACTIONS(65), 2, ts_builtin_sym_end, anon_sym_LF, + ACTIONS(74), 8, anon_sym_PLUS, anon_sym_STAR, - anon_sym_POUND, - aux_sym_string_token1, - aux_sym_string_token2, - ACTIONS(94), 9, - anon_sym_DASH, - anon_sym_SLASH, - anon_sym_PERCENT, - aux_sym_int_token2, - sym_word, - sym__reg, - sym_address, - sym_meta_ident, - sym__ident, - [493] = 10, - ACTIONS(5), 1, - aux_sym_line_comment_token2, - ACTIONS(7), 1, - sym_block_comment, - ACTIONS(96), 1, anon_sym_PIPE, - ACTIONS(98), 1, anon_sym_CARET, - ACTIONS(100), 1, anon_sym_AMP, - ACTIONS(102), 1, - anon_sym_STAR, - STATE(14), 1, - sym_line_comment, - ACTIONS(104), 2, - anon_sym_SLASH, - anon_sym_PERCENT, - ACTIONS(92), 6, - ts_builtin_sym_end, - anon_sym_LF, - anon_sym_PLUS, anon_sym_POUND, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(94), 7, + ACTIONS(72), 10, anon_sym_DASH, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_DOLLAR, aux_sym_int_token2, sym_word, sym__reg, sym_address, sym_meta_ident, sym__ident, - [536] = 5, + [470] = 5, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(15), 1, + STATE(13), 1, sym_line_comment, - ACTIONS(94), 9, + ACTIONS(72), 10, anon_sym_DASH, anon_sym_SLASH, anon_sym_PERCENT, + anon_sym_DOLLAR, aux_sym_int_token2, sym_word, sym__reg, sym_address, sym_meta_ident, sym__ident, - ACTIONS(92), 10, + ACTIONS(74), 10, ts_builtin_sym_end, anon_sym_LF, anon_sym_PLUS, @@ -2599,298 +2569,378 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, aux_sym_string_token1, aux_sym_string_token2, - [569] = 7, + [504] = 12, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, ACTIONS(98), 1, - anon_sym_CARET, + anon_sym_DASH, ACTIONS(100), 1, + anon_sym_PLUS, + ACTIONS(102), 1, + anon_sym_STAR, + ACTIONS(106), 1, + anon_sym_PIPE, + ACTIONS(108), 1, + anon_sym_CARET, + ACTIONS(110), 1, anon_sym_AMP, - STATE(16), 1, + STATE(14), 1, sym_line_comment, - ACTIONS(92), 8, + ACTIONS(104), 2, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(96), 5, ts_builtin_sym_end, anon_sym_LF, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_PIPE, anon_sym_POUND, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(94), 9, - anon_sym_DASH, - anon_sym_SLASH, - anon_sym_PERCENT, + ACTIONS(112), 7, + anon_sym_DOLLAR, aux_sym_int_token2, sym_word, sym__reg, sym_address, sym_meta_ident, sym__ident, - [606] = 5, + [552] = 6, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(17), 1, + ACTIONS(110), 1, + anon_sym_AMP, + STATE(15), 1, sym_line_comment, - ACTIONS(72), 9, - anon_sym_DASH, - anon_sym_SLASH, - anon_sym_PERCENT, - aux_sym_int_token2, - sym_word, - sym__reg, - sym_address, - sym_meta_ident, - sym__ident, - ACTIONS(74), 10, + ACTIONS(114), 9, ts_builtin_sym_end, anon_sym_LF, anon_sym_PLUS, anon_sym_STAR, anon_sym_PIPE, anon_sym_CARET, - anon_sym_AMP, anon_sym_POUND, aux_sym_string_token1, aux_sym_string_token2, - [639] = 12, + ACTIONS(116), 10, + anon_sym_DASH, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_DOLLAR, + aux_sym_int_token2, + sym_word, + sym__reg, + sym_address, + sym_meta_ident, + sym__ident, + [588] = 10, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(96), 1, - anon_sym_PIPE, - ACTIONS(98), 1, - anon_sym_CARET, - ACTIONS(100), 1, - anon_sym_AMP, ACTIONS(102), 1, anon_sym_STAR, + ACTIONS(106), 1, + anon_sym_PIPE, ACTIONS(108), 1, - anon_sym_DASH, + anon_sym_CARET, ACTIONS(110), 1, - anon_sym_PLUS, - STATE(18), 1, + anon_sym_AMP, + STATE(16), 1, sym_line_comment, ACTIONS(104), 2, anon_sym_SLASH, anon_sym_PERCENT, - ACTIONS(106), 5, + ACTIONS(114), 6, ts_builtin_sym_end, anon_sym_LF, + anon_sym_PLUS, anon_sym_POUND, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(112), 6, + ACTIONS(116), 8, + anon_sym_DASH, + anon_sym_DOLLAR, aux_sym_int_token2, sym_word, sym__reg, sym_address, sym_meta_ident, sym__ident, - [686] = 6, + [632] = 8, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(100), 1, + ACTIONS(106), 1, + anon_sym_PIPE, + ACTIONS(108), 1, + anon_sym_CARET, + ACTIONS(110), 1, anon_sym_AMP, - STATE(19), 1, + STATE(17), 1, sym_line_comment, - ACTIONS(92), 9, + ACTIONS(114), 7, ts_builtin_sym_end, anon_sym_LF, anon_sym_PLUS, anon_sym_STAR, - anon_sym_PIPE, - anon_sym_CARET, anon_sym_POUND, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(94), 9, + ACTIONS(116), 10, anon_sym_DASH, anon_sym_SLASH, anon_sym_PERCENT, + anon_sym_DOLLAR, aux_sym_int_token2, sym_word, sym__reg, sym_address, sym_meta_ident, sym__ident, - [721] = 13, + [672] = 7, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(35), 1, - anon_sym_POUND, - ACTIONS(37), 1, - aux_sym_int_token2, - STATE(11), 1, - sym_reg, + ACTIONS(108), 1, + anon_sym_CARET, + ACTIONS(110), 1, + anon_sym_AMP, STATE(18), 1, + sym_line_comment, + ACTIONS(114), 8, + ts_builtin_sym_end, + anon_sym_LF, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_POUND, + aux_sym_string_token1, + aux_sym_string_token2, + ACTIONS(116), 10, + anon_sym_DASH, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_DOLLAR, + aux_sym_int_token2, + sym_word, + sym__reg, + sym_address, + sym_meta_ident, + sym__ident, + [710] = 5, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + STATE(19), 1, + sym_line_comment, + ACTIONS(114), 10, + ts_builtin_sym_end, + anon_sym_LF, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_POUND, + aux_sym_string_token1, + aux_sym_string_token2, + ACTIONS(116), 10, + anon_sym_DASH, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_DOLLAR, + aux_sym_int_token2, + sym_word, + sym__reg, + sym_address, + sym_meta_ident, + sym__ident, + [744] = 14, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(35), 1, + anon_sym_POUND, + ACTIONS(37), 1, + anon_sym_DOLLAR, + ACTIONS(39), 1, + aux_sym_int_token2, + STATE(9), 1, + sym_reg, + STATE(14), 1, sym__tc_expr, STATE(20), 1, sym_line_comment, STATE(21), 1, aux_sym_instruction_repeat2, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(45), 2, + ACTIONS(47), 2, sym_meta_ident, sym__ident, - ACTIONS(114), 2, + ACTIONS(118), 2, ts_builtin_sym_end, anon_sym_LF, - ACTIONS(43), 3, + ACTIONS(45), 3, sym_word, sym__reg, sym_address, - STATE(17), 4, + STATE(13), 4, sym_tc_infix, sym_int, sym_string, sym_ident, - [769] = 12, + [795] = 13, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(118), 1, + ACTIONS(122), 1, anon_sym_POUND, - ACTIONS(121), 1, + ACTIONS(125), 1, + anon_sym_DOLLAR, + ACTIONS(128), 1, aux_sym_int_token2, - STATE(11), 1, + STATE(9), 1, sym_reg, - STATE(18), 1, + STATE(14), 1, sym__tc_expr, - ACTIONS(116), 2, + ACTIONS(120), 2, ts_builtin_sym_end, anon_sym_LF, - ACTIONS(124), 2, + ACTIONS(131), 2, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(130), 2, + ACTIONS(137), 2, sym_meta_ident, sym__ident, STATE(21), 2, sym_line_comment, aux_sym_instruction_repeat2, - ACTIONS(127), 3, + ACTIONS(134), 3, sym_word, sym__reg, sym_address, - STATE(17), 4, + STATE(13), 4, sym_tc_infix, sym_int, sym_string, sym_ident, - [815] = 15, + [844] = 16, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(49), 1, - anon_sym_POUND, ACTIONS(51), 1, + anon_sym_POUND, + ACTIONS(53), 1, + anon_sym_DOLLAR, + ACTIONS(55), 1, aux_sym_int_token2, - ACTIONS(135), 1, + ACTIONS(142), 1, anon_sym_COLON, - ACTIONS(137), 1, + ACTIONS(144), 1, sym_float, STATE(22), 1, sym_line_comment, STATE(40), 1, sym_reg, - STATE(65), 1, - sym_string, - STATE(74), 1, + STATE(79), 1, sym_int, - STATE(106), 1, + STATE(80), 1, + sym_string, + STATE(115), 1, sym_ident, - ACTIONS(53), 2, + ACTIONS(57), 2, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(57), 2, + ACTIONS(61), 2, sym_meta_ident, sym__ident, - ACTIONS(133), 2, + ACTIONS(140), 2, ts_builtin_sym_end, anon_sym_LF, - ACTIONS(55), 3, + ACTIONS(59), 3, sym_word, sym__reg, sym_address, - [866] = 14, + [898] = 15, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(49), 1, - anon_sym_POUND, ACTIONS(51), 1, + anon_sym_POUND, + ACTIONS(53), 1, + anon_sym_DOLLAR, + ACTIONS(55), 1, aux_sym_int_token2, - ACTIONS(137), 1, + ACTIONS(144), 1, sym_float, STATE(23), 1, sym_line_comment, STATE(40), 1, sym_reg, - STATE(65), 1, - sym_string, - STATE(74), 1, + STATE(79), 1, sym_int, - STATE(106), 1, + STATE(80), 1, + sym_string, + STATE(115), 1, sym_ident, - ACTIONS(53), 2, + ACTIONS(57), 2, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(57), 2, + ACTIONS(61), 2, sym_meta_ident, sym__ident, - ACTIONS(133), 2, + ACTIONS(140), 2, ts_builtin_sym_end, anon_sym_LF, - ACTIONS(55), 3, + ACTIONS(59), 3, sym_word, sym__reg, sym_address, - [914] = 11, + [949] = 12, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(49), 1, + ACTIONS(35), 1, anon_sym_POUND, - ACTIONS(51), 1, + ACTIONS(37), 1, + anon_sym_DOLLAR, + ACTIONS(39), 1, aux_sym_int_token2, - STATE(24), 1, - sym_line_comment, - STATE(40), 1, + STATE(9), 1, sym_reg, - STATE(49), 1, + STATE(15), 1, sym__tc_expr, - ACTIONS(53), 2, + STATE(24), 1, + sym_line_comment, + ACTIONS(43), 2, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(57), 2, + ACTIONS(47), 2, sym_meta_ident, sym__ident, - ACTIONS(55), 3, + ACTIONS(45), 3, sym_word, sym__reg, sym_address, - STATE(43), 4, + STATE(13), 4, sym_tc_infix, sym_int, sym_string, sym_ident, - [955] = 11, + [993] = 12, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, @@ -2898,89 +2948,95 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(35), 1, anon_sym_POUND, ACTIONS(37), 1, + anon_sym_DOLLAR, + ACTIONS(39), 1, aux_sym_int_token2, - STATE(11), 1, + STATE(9), 1, sym_reg, - STATE(14), 1, + STATE(17), 1, sym__tc_expr, STATE(25), 1, sym_line_comment, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(45), 2, + ACTIONS(47), 2, sym_meta_ident, sym__ident, - ACTIONS(43), 3, + ACTIONS(45), 3, sym_word, sym__reg, sym_address, - STATE(17), 4, + STATE(13), 4, sym_tc_infix, sym_int, sym_string, sym_ident, - [996] = 11, + [1037] = 12, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(49), 1, + ACTIONS(35), 1, anon_sym_POUND, - ACTIONS(51), 1, + ACTIONS(37), 1, + anon_sym_DOLLAR, + ACTIONS(39), 1, aux_sym_int_token2, - STATE(26), 1, - sym_line_comment, - STATE(40), 1, + STATE(9), 1, sym_reg, - STATE(44), 1, + STATE(18), 1, sym__tc_expr, - ACTIONS(53), 2, + STATE(26), 1, + sym_line_comment, + ACTIONS(43), 2, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(57), 2, + ACTIONS(47), 2, sym_meta_ident, sym__ident, - ACTIONS(55), 3, + ACTIONS(45), 3, sym_word, sym__reg, sym_address, - STATE(43), 4, + STATE(13), 4, sym_tc_infix, sym_int, sym_string, sym_ident, - [1037] = 11, + [1081] = 12, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(35), 1, + ACTIONS(51), 1, anon_sym_POUND, - ACTIONS(37), 1, + ACTIONS(53), 1, + anon_sym_DOLLAR, + ACTIONS(55), 1, aux_sym_int_token2, - STATE(11), 1, - sym_reg, - STATE(13), 1, - sym__tc_expr, STATE(27), 1, sym_line_comment, - ACTIONS(41), 2, + STATE(40), 1, + sym_reg, + STATE(49), 1, + sym__tc_expr, + ACTIONS(57), 2, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(45), 2, + ACTIONS(61), 2, sym_meta_ident, sym__ident, - ACTIONS(43), 3, + ACTIONS(59), 3, sym_word, sym__reg, sym_address, - STATE(17), 4, + STATE(45), 4, sym_tc_infix, sym_int, sym_string, sym_ident, - [1078] = 11, + [1125] = 12, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, @@ -2988,220 +3044,234 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(35), 1, anon_sym_POUND, ACTIONS(37), 1, + anon_sym_DOLLAR, + ACTIONS(39), 1, aux_sym_int_token2, - STATE(11), 1, + STATE(9), 1, sym_reg, - STATE(16), 1, + STATE(19), 1, sym__tc_expr, STATE(28), 1, sym_line_comment, - ACTIONS(41), 2, + ACTIONS(43), 2, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(45), 2, + ACTIONS(47), 2, sym_meta_ident, sym__ident, - ACTIONS(43), 3, + ACTIONS(45), 3, sym_word, sym__reg, sym_address, - STATE(17), 4, + STATE(13), 4, sym_tc_infix, sym_int, sym_string, sym_ident, - [1119] = 11, + [1169] = 12, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(35), 1, + ACTIONS(51), 1, anon_sym_POUND, - ACTIONS(37), 1, + ACTIONS(53), 1, + anon_sym_DOLLAR, + ACTIONS(55), 1, aux_sym_int_token2, - STATE(11), 1, - sym_reg, - STATE(19), 1, - sym__tc_expr, STATE(29), 1, sym_line_comment, - ACTIONS(41), 2, + STATE(40), 1, + sym_reg, + STATE(50), 1, + sym__tc_expr, + ACTIONS(57), 2, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(45), 2, + ACTIONS(61), 2, sym_meta_ident, sym__ident, - ACTIONS(43), 3, + ACTIONS(59), 3, sym_word, sym__reg, sym_address, - STATE(17), 4, + STATE(45), 4, sym_tc_infix, sym_int, sym_string, sym_ident, - [1160] = 11, + [1213] = 12, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(49), 1, - anon_sym_POUND, ACTIONS(51), 1, + anon_sym_POUND, + ACTIONS(53), 1, + anon_sym_DOLLAR, + ACTIONS(55), 1, aux_sym_int_token2, STATE(30), 1, sym_line_comment, STATE(40), 1, sym_reg, - STATE(48), 1, + STATE(47), 1, sym__tc_expr, - ACTIONS(53), 2, + ACTIONS(57), 2, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(57), 2, + ACTIONS(61), 2, sym_meta_ident, sym__ident, - ACTIONS(55), 3, + ACTIONS(59), 3, sym_word, sym__reg, sym_address, - STATE(43), 4, + STATE(45), 4, sym_tc_infix, sym_int, sym_string, sym_ident, - [1201] = 11, + [1257] = 12, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(35), 1, + ACTIONS(51), 1, anon_sym_POUND, - ACTIONS(37), 1, + ACTIONS(53), 1, + anon_sym_DOLLAR, + ACTIONS(55), 1, aux_sym_int_token2, - STATE(11), 1, - sym_reg, - STATE(15), 1, - sym__tc_expr, STATE(31), 1, sym_line_comment, - ACTIONS(41), 2, + STATE(40), 1, + sym_reg, + STATE(43), 1, + sym__tc_expr, + ACTIONS(57), 2, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(45), 2, + ACTIONS(61), 2, sym_meta_ident, sym__ident, - ACTIONS(43), 3, + ACTIONS(59), 3, sym_word, sym__reg, sym_address, - STATE(17), 4, + STATE(45), 4, sym_tc_infix, sym_int, sym_string, sym_ident, - [1242] = 11, + [1301] = 12, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(49), 1, + ACTIONS(35), 1, anon_sym_POUND, - ACTIONS(51), 1, + ACTIONS(37), 1, + anon_sym_DOLLAR, + ACTIONS(39), 1, aux_sym_int_token2, - STATE(32), 1, - sym_line_comment, - STATE(40), 1, + STATE(9), 1, sym_reg, - STATE(46), 1, + STATE(16), 1, sym__tc_expr, - ACTIONS(53), 2, + STATE(32), 1, + sym_line_comment, + ACTIONS(43), 2, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(57), 2, + ACTIONS(47), 2, sym_meta_ident, sym__ident, - ACTIONS(55), 3, + ACTIONS(45), 3, sym_word, sym__reg, sym_address, - STATE(43), 4, + STATE(13), 4, sym_tc_infix, sym_int, sym_string, sym_ident, - [1283] = 11, + [1345] = 12, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(49), 1, - anon_sym_POUND, ACTIONS(51), 1, + anon_sym_POUND, + ACTIONS(53), 1, + anon_sym_DOLLAR, + ACTIONS(55), 1, aux_sym_int_token2, STATE(33), 1, sym_line_comment, STATE(40), 1, sym_reg, - STATE(47), 1, + STATE(51), 1, sym__tc_expr, - ACTIONS(53), 2, + ACTIONS(57), 2, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(57), 2, + ACTIONS(61), 2, sym_meta_ident, sym__ident, - ACTIONS(55), 3, + ACTIONS(59), 3, sym_word, sym__reg, sym_address, - STATE(43), 4, + STATE(45), 4, sym_tc_infix, sym_int, sym_string, sym_ident, - [1324] = 11, + [1389] = 12, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(49), 1, - anon_sym_POUND, ACTIONS(51), 1, + anon_sym_POUND, + ACTIONS(53), 1, + anon_sym_DOLLAR, + ACTIONS(55), 1, aux_sym_int_token2, STATE(34), 1, sym_line_comment, STATE(40), 1, sym_reg, - STATE(45), 1, + STATE(44), 1, sym__tc_expr, - ACTIONS(53), 2, + ACTIONS(57), 2, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(57), 2, + ACTIONS(61), 2, sym_meta_ident, sym__ident, - ACTIONS(55), 3, + ACTIONS(59), 3, sym_word, sym__reg, sym_address, - STATE(43), 4, + STATE(45), 4, sym_tc_infix, sym_int, sym_string, sym_ident, - [1365] = 6, + [1433] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(82), 1, + ACTIONS(94), 1, anon_sym_SLASH, STATE(35), 1, sym_line_comment, - ACTIONS(80), 13, + ACTIONS(92), 13, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, @@ -3215,31 +3285,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_CARET, anon_sym_AMP, - [1396] = 6, - ACTIONS(3), 1, - anon_sym_POUND, - ACTIONS(5), 1, - aux_sym_line_comment_token2, - ACTIONS(7), 1, - sym_block_comment, - ACTIONS(78), 1, - anon_sym_SLASH, - STATE(36), 1, - sym_line_comment, - ACTIONS(76), 12, - ts_builtin_sym_end, - anon_sym_LF, - anon_sym_COMMA, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_RBRACK, - anon_sym_STAR, - anon_sym_PERCENT, - anon_sym_PIPE, - anon_sym_CARET, - anon_sym_AMP, - [1426] = 14, + [1464] = 14, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -3256,22 +3302,22 @@ static const uint16_t ts_small_parse_table[] = { sym_meta_ident, ACTIONS(19), 1, sym__ident, - ACTIONS(139), 1, + ACTIONS(146), 1, ts_builtin_sym_end, - ACTIONS(141), 1, + ACTIONS(148), 1, anon_sym_LF, - STATE(37), 1, + STATE(36), 1, sym_line_comment, STATE(52), 1, aux_sym_program_repeat1, - STATE(110), 1, + STATE(109), 1, sym__item, - STATE(114), 4, + STATE(108), 4, sym_meta, sym_label, sym_const, sym_instruction, - [1472] = 14, + [1510] = 14, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -3288,33 +3334,33 @@ static const uint16_t ts_small_parse_table[] = { sym_meta_ident, ACTIONS(19), 1, sym__ident, - ACTIONS(141), 1, + ACTIONS(148), 1, anon_sym_LF, - ACTIONS(143), 1, + ACTIONS(150), 1, ts_builtin_sym_end, - STATE(38), 1, + STATE(37), 1, sym_line_comment, STATE(52), 1, aux_sym_program_repeat1, - STATE(110), 1, + STATE(109), 1, sym__item, - STATE(114), 4, + STATE(108), 4, sym_meta, sym_label, sym_const, sym_instruction, - [1518] = 6, + [1556] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(63), 1, + ACTIONS(78), 1, anon_sym_SLASH, - STATE(39), 1, + STATE(38), 1, sym_line_comment, - ACTIONS(61), 12, + ACTIONS(76), 12, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, @@ -3327,22 +3373,22 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_CARET, anon_sym_AMP, - [1548] = 6, + [1586] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(86), 1, + ACTIONS(82), 1, anon_sym_SLASH, - STATE(40), 1, + STATE(39), 1, sym_line_comment, - ACTIONS(84), 12, + ACTIONS(80), 12, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - anon_sym_RPAREN, + anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, anon_sym_RBRACK, @@ -3351,37 +3397,61 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_CARET, anon_sym_AMP, - [1578] = 13, + [1616] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(11), 1, - anon_sym_label, - ACTIONS(13), 1, - anon_sym_const, - ACTIONS(15), 1, - sym_word, - ACTIONS(17), 1, - sym_meta_ident, + ACTIONS(86), 1, + anon_sym_SLASH, + STATE(40), 1, + sym_line_comment, + ACTIONS(84), 12, + ts_builtin_sym_end, + anon_sym_LF, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_RBRACK, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + [1646] = 13, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(11), 1, + anon_sym_label, + ACTIONS(13), 1, + anon_sym_const, + ACTIONS(15), 1, + sym_word, + ACTIONS(17), 1, + sym_meta_ident, ACTIONS(19), 1, sym__ident, - ACTIONS(141), 1, + ACTIONS(148), 1, anon_sym_LF, STATE(41), 1, sym_line_comment, STATE(52), 1, aux_sym_program_repeat1, - STATE(110), 1, + STATE(109), 1, sym__item, - STATE(114), 4, + STATE(108), 4, sym_meta, sym_label, sym_const, sym_instruction, - [1621] = 6, + [1689] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -3403,18 +3473,22 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_CARET, anon_sym_AMP, - [1649] = 6, + [1717] = 8, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(72), 1, + ACTIONS(116), 1, anon_sym_SLASH, + ACTIONS(152), 1, + anon_sym_CARET, + ACTIONS(154), 1, + anon_sym_AMP, STATE(43), 1, sym_line_comment, - ACTIONS(74), 9, + ACTIONS(114), 7, ts_builtin_sym_end, anon_sym_LF, anon_sym_DASH, @@ -3422,22 +3496,20 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_STAR, anon_sym_PERCENT, anon_sym_PIPE, - anon_sym_CARET, - anon_sym_AMP, - [1676] = 7, + [1748] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(94), 1, + ACTIONS(116), 1, anon_sym_SLASH, - ACTIONS(145), 1, + ACTIONS(154), 1, anon_sym_AMP, STATE(44), 1, sym_line_comment, - ACTIONS(92), 8, + ACTIONS(114), 8, ts_builtin_sym_end, anon_sym_LF, anon_sym_DASH, @@ -3446,22 +3518,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PERCENT, anon_sym_PIPE, anon_sym_CARET, - [1705] = 8, + [1777] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(94), 1, + ACTIONS(72), 1, anon_sym_SLASH, - ACTIONS(145), 1, - anon_sym_AMP, - ACTIONS(147), 1, - anon_sym_CARET, STATE(45), 1, sym_line_comment, - ACTIONS(92), 7, + ACTIONS(74), 9, ts_builtin_sym_end, anon_sym_LF, anon_sym_DASH, @@ -3469,215 +3537,221 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_STAR, anon_sym_PERCENT, anon_sym_PIPE, - [1736] = 11, + anon_sym_CARET, + anon_sym_AMP, + [1804] = 10, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(51), 1, + anon_sym_POUND, + ACTIONS(53), 1, + anon_sym_DOLLAR, + ACTIONS(55), 1, + aux_sym_int_token2, + STATE(40), 1, + sym_reg, + STATE(46), 1, + sym_line_comment, + ACTIONS(61), 2, + sym_meta_ident, + sym__ident, + STATE(132), 2, + sym_int, + sym_ident, + ACTIONS(59), 3, + sym_word, + sym__reg, + sym_address, + [1839] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(145), 1, - anon_sym_AMP, - ACTIONS(147), 1, - anon_sym_CARET, - ACTIONS(155), 1, + ACTIONS(116), 1, anon_sym_SLASH, - ACTIONS(157), 1, - anon_sym_PIPE, - STATE(46), 1, + STATE(47), 1, sym_line_comment, - ACTIONS(149), 2, + ACTIONS(114), 9, ts_builtin_sym_end, anon_sym_LF, - ACTIONS(151), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(153), 2, anon_sym_STAR, anon_sym_PERCENT, - [1773] = 9, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + [1866] = 10, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(51), 1, + anon_sym_POUND, + ACTIONS(53), 1, + anon_sym_DOLLAR, + ACTIONS(55), 1, + aux_sym_int_token2, + STATE(40), 1, + sym_reg, + STATE(48), 1, + sym_line_comment, + ACTIONS(61), 2, + sym_meta_ident, + sym__ident, + STATE(120), 2, + sym_int, + sym_ident, + ACTIONS(59), 3, + sym_word, + sym__reg, + sym_address, + [1901] = 11, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(94), 1, - anon_sym_SLASH, - ACTIONS(145), 1, - anon_sym_AMP, - ACTIONS(147), 1, + ACTIONS(152), 1, anon_sym_CARET, - ACTIONS(157), 1, + ACTIONS(154), 1, + anon_sym_AMP, + ACTIONS(162), 1, + anon_sym_SLASH, + ACTIONS(164), 1, anon_sym_PIPE, - STATE(47), 1, + STATE(49), 1, sym_line_comment, - ACTIONS(92), 6, + ACTIONS(156), 2, ts_builtin_sym_end, anon_sym_LF, + ACTIONS(158), 2, anon_sym_DASH, anon_sym_PLUS, + ACTIONS(160), 2, anon_sym_STAR, anon_sym_PERCENT, - [1806] = 10, + [1938] = 10, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(145), 1, - anon_sym_AMP, - ACTIONS(147), 1, + ACTIONS(152), 1, anon_sym_CARET, - ACTIONS(155), 1, + ACTIONS(154), 1, + anon_sym_AMP, + ACTIONS(162), 1, anon_sym_SLASH, - ACTIONS(157), 1, + ACTIONS(164), 1, anon_sym_PIPE, - STATE(48), 1, + STATE(50), 1, sym_line_comment, - ACTIONS(153), 2, + ACTIONS(160), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(92), 4, + ACTIONS(114), 4, ts_builtin_sym_end, anon_sym_LF, anon_sym_DASH, anon_sym_PLUS, - [1841] = 6, + [1973] = 9, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(94), 1, + ACTIONS(116), 1, anon_sym_SLASH, - STATE(49), 1, + ACTIONS(152), 1, + anon_sym_CARET, + ACTIONS(154), 1, + anon_sym_AMP, + ACTIONS(164), 1, + anon_sym_PIPE, + STATE(51), 1, sym_line_comment, - ACTIONS(92), 9, + ACTIONS(114), 6, ts_builtin_sym_end, anon_sym_LF, anon_sym_DASH, anon_sym_PLUS, anon_sym_STAR, anon_sym_PERCENT, - anon_sym_PIPE, - anon_sym_CARET, - anon_sym_AMP, - [1868] = 9, - ACTIONS(5), 1, - aux_sym_line_comment_token2, - ACTIONS(7), 1, - sym_block_comment, - ACTIONS(49), 1, - anon_sym_POUND, - ACTIONS(51), 1, - aux_sym_int_token2, - STATE(40), 1, - sym_reg, - STATE(50), 1, - sym_line_comment, - ACTIONS(57), 2, - sym_meta_ident, - sym__ident, - STATE(122), 2, - sym_int, - sym_ident, - ACTIONS(55), 3, - sym_word, - sym__reg, - sym_address, - [1900] = 9, - ACTIONS(5), 1, - aux_sym_line_comment_token2, - ACTIONS(7), 1, - sym_block_comment, - ACTIONS(49), 1, - anon_sym_POUND, - ACTIONS(51), 1, - aux_sym_int_token2, - STATE(40), 1, - sym_reg, - STATE(51), 1, - sym_line_comment, - ACTIONS(57), 2, - sym_meta_ident, - sym__ident, - STATE(117), 2, - sym_int, - sym_ident, - ACTIONS(55), 3, - sym_word, - sym__reg, - sym_address, - [1932] = 7, + [2006] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(159), 1, + ACTIONS(166), 1, ts_builtin_sym_end, - ACTIONS(161), 1, + ACTIONS(168), 1, anon_sym_LF, STATE(52), 2, sym_line_comment, aux_sym_program_repeat1, - ACTIONS(164), 5, + ACTIONS(171), 5, anon_sym_label, anon_sym_const, sym_word, sym_meta_ident, sym__ident, - [1959] = 6, + [2033] = 9, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, + ACTIONS(173), 1, + sym_address, + STATE(40), 1, + sym_reg, STATE(53), 1, sym_line_comment, - ACTIONS(166), 2, - ts_builtin_sym_end, - anon_sym_LF, - ACTIONS(168), 5, - anon_sym_label, - anon_sym_const, + STATE(121), 1, + sym_ident, + ACTIONS(59), 2, sym_word, + sym__reg, + ACTIONS(61), 2, sym_meta_ident, sym__ident, - [1983] = 9, + [2063] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(170), 1, - sym_address, - STATE(40), 1, - sym_reg, STATE(54), 1, sym_line_comment, - STATE(128), 1, - sym_ident, - ACTIONS(55), 2, + ACTIONS(175), 2, + ts_builtin_sym_end, + anon_sym_LF, + ACTIONS(177), 5, + anon_sym_label, + anon_sym_const, sym_word, - sym__reg, - ACTIONS(57), 2, sym_meta_ident, sym__ident, - [2013] = 9, + [2087] = 9, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(170), 1, + ACTIONS(173), 1, sym_address, STATE(40), 1, sym_reg, @@ -3685,531 +3759,531 @@ static const uint16_t ts_small_parse_table[] = { sym_line_comment, STATE(129), 1, sym_ident, - ACTIONS(55), 2, + ACTIONS(59), 2, sym_word, sym__reg, - ACTIONS(57), 2, + ACTIONS(61), 2, sym_meta_ident, sym__ident, - [2043] = 8, + [2117] = 8, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(55), 1, - sym__reg, - ACTIONS(172), 1, - anon_sym_RBRACE, + ACTIONS(181), 1, + anon_sym_LPAREN, + ACTIONS(183), 1, + sym_meta_ident, STATE(56), 1, sym_line_comment, - STATE(82), 1, - sym_reg, - ACTIONS(170), 2, - sym_word, - sym_address, - [2069] = 8, + STATE(114), 1, + sym_meta, + ACTIONS(179), 2, + ts_builtin_sym_end, + anon_sym_LF, + [2143] = 8, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(55), 1, + ACTIONS(59), 1, sym__reg, - ACTIONS(174), 1, + ACTIONS(185), 1, anon_sym_RBRACE, STATE(57), 1, sym_line_comment, - STATE(104), 1, + STATE(62), 1, sym_reg, - ACTIONS(170), 2, + ACTIONS(173), 2, sym_word, sym_address, - [2095] = 8, + [2169] = 8, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(178), 1, - anon_sym_LPAREN, - ACTIONS(180), 1, - sym_meta_ident, + ACTIONS(59), 1, + sym__reg, + ACTIONS(187), 1, + anon_sym_RBRACE, STATE(58), 1, sym_line_comment, - STATE(108), 1, - sym_meta, - ACTIONS(176), 2, - ts_builtin_sym_end, - anon_sym_LF, - [2121] = 8, + STATE(102), 1, + sym_reg, + ACTIONS(173), 2, + sym_word, + sym_address, + [2195] = 8, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(55), 1, + ACTIONS(59), 1, sym__reg, - ACTIONS(182), 1, + ACTIONS(189), 1, anon_sym_RBRACE, STATE(59), 1, sym_line_comment, - STATE(104), 1, + STATE(102), 1, sym_reg, - ACTIONS(170), 2, + ACTIONS(173), 2, sym_word, sym_address, - [2147] = 8, + [2221] = 8, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(180), 1, + ACTIONS(183), 1, sym_meta_ident, - ACTIONS(186), 1, + ACTIONS(193), 1, anon_sym_LPAREN, STATE(60), 1, sym_line_comment, - STATE(111), 1, + STATE(110), 1, sym_meta, - ACTIONS(184), 2, + ACTIONS(191), 2, ts_builtin_sym_end, anon_sym_LF, - [2173] = 7, + [2247] = 8, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(188), 1, - ts_builtin_sym_end, - ACTIONS(190), 1, + ACTIONS(148), 1, anon_sym_LF, - STATE(41), 1, + ACTIONS(195), 1, + ts_builtin_sym_end, + STATE(36), 1, aux_sym_program_repeat1, - STATE(61), 2, + STATE(61), 1, sym_line_comment, + STATE(82), 1, aux_sym_program_repeat2, - [2196] = 8, + [2272] = 8, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(182), 1, - anon_sym_RBRACE, - ACTIONS(193), 1, + ACTIONS(197), 1, anon_sym_COMMA, - ACTIONS(195), 1, + ACTIONS(199), 1, anon_sym_DASH, + ACTIONS(201), 1, + anon_sym_RBRACE, STATE(62), 1, sym_line_comment, - STATE(63), 1, + STATE(64), 1, aux_sym_list_repeat1, - [2221] = 6, + [2297] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(200), 1, - anon_sym_RBRACE, - ACTIONS(197), 2, - anon_sym_COMMA, - anon_sym_DASH, - STATE(63), 2, + ACTIONS(59), 1, + sym__reg, + STATE(63), 1, sym_line_comment, - aux_sym_list_repeat1, - [2242] = 7, + STATE(102), 1, + sym_reg, + ACTIONS(173), 2, + sym_word, + sym_address, + [2320] = 8, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(204), 1, + ACTIONS(189), 1, + anon_sym_RBRACE, + ACTIONS(199), 1, + anon_sym_DASH, + ACTIONS(203), 1, anon_sym_COMMA, STATE(64), 1, sym_line_comment, - STATE(86), 1, - aux_sym_meta_repeat2, - ACTIONS(202), 2, - ts_builtin_sym_end, - anon_sym_LF, - [2265] = 7, + STATE(75), 1, + aux_sym_list_repeat1, + [2345] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(208), 1, - anon_sym_COMMA, + ACTIONS(59), 1, + sym__reg, STATE(65), 1, sym_line_comment, - STATE(68), 1, - aux_sym_meta_repeat3, - ACTIONS(206), 2, - ts_builtin_sym_end, - anon_sym_LF, - [2288] = 7, + STATE(106), 1, + sym_reg, + ACTIONS(173), 2, + sym_word, + sym_address, + [2368] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(210), 1, + ACTIONS(205), 1, anon_sym_COMMA, STATE(66), 1, sym_line_comment, - STATE(87), 1, - aux_sym_meta_repeat1, - ACTIONS(202), 2, + STATE(69), 1, + aux_sym_instruction_repeat1, + ACTIONS(49), 2, ts_builtin_sym_end, anon_sym_LF, - [2311] = 7, + [2391] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(55), 1, - sym__reg, + ACTIONS(209), 1, + anon_sym_BANG, STATE(67), 1, sym_line_comment, - STATE(121), 1, - sym_reg, - ACTIONS(170), 2, - sym_word, - sym_address, - [2334] = 7, - ACTIONS(3), 1, - anon_sym_POUND, - ACTIONS(5), 1, - aux_sym_line_comment_token2, - ACTIONS(7), 1, - sym_block_comment, - ACTIONS(208), 1, - anon_sym_COMMA, - STATE(68), 1, - sym_line_comment, - STATE(84), 1, - aux_sym_meta_repeat3, - ACTIONS(202), 2, + ACTIONS(207), 3, ts_builtin_sym_end, anon_sym_LF, - [2357] = 7, + anon_sym_COMMA, + [2412] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(212), 1, - anon_sym_COMMA, - STATE(69), 1, + ACTIONS(70), 1, + anon_sym_LPAREN, + STATE(68), 1, sym_line_comment, - STATE(71), 1, - aux_sym_instruction_repeat1, - ACTIONS(114), 2, + ACTIONS(68), 3, ts_builtin_sym_end, anon_sym_LF, - [2380] = 7, + anon_sym_COMMA, + [2433] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(204), 1, + ACTIONS(213), 1, anon_sym_COMMA, - STATE(64), 1, - aux_sym_meta_repeat2, - STATE(70), 1, - sym_line_comment, - ACTIONS(206), 2, + ACTIONS(211), 2, ts_builtin_sym_end, anon_sym_LF, - [2403] = 7, + STATE(69), 2, + sym_line_comment, + aux_sym_instruction_repeat1, + [2454] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(214), 1, + ACTIONS(216), 1, anon_sym_COMMA, - STATE(71), 1, - sym_line_comment, - STATE(80), 1, + STATE(66), 1, aux_sym_instruction_repeat1, - ACTIONS(47), 2, + STATE(70), 1, + sym_line_comment, + ACTIONS(118), 2, ts_builtin_sym_end, anon_sym_LF, - [2426] = 7, + [2477] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(55), 1, + ACTIONS(59), 1, sym__reg, - STATE(72), 1, + STATE(71), 1, sym_line_comment, - STATE(120), 1, + STATE(77), 1, sym_reg, - ACTIONS(170), 2, + ACTIONS(173), 2, sym_word, sym_address, - [2449] = 7, + [2500] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(55), 1, - sym__reg, - STATE(73), 1, + ACTIONS(220), 1, + anon_sym_COMMA, + ACTIONS(218), 2, + ts_builtin_sym_end, + anon_sym_LF, + STATE(72), 2, sym_line_comment, - STATE(104), 1, - sym_reg, - ACTIONS(170), 2, - sym_word, - sym_address, - [2472] = 7, + aux_sym_meta_repeat2, + [2521] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(210), 1, + ACTIONS(225), 1, anon_sym_COMMA, - STATE(66), 1, - aux_sym_meta_repeat1, - STATE(74), 1, - sym_line_comment, - ACTIONS(206), 2, + ACTIONS(223), 2, ts_builtin_sym_end, anon_sym_LF, - [2495] = 7, + STATE(73), 2, + sym_line_comment, + aux_sym_meta_repeat1, + [2542] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(55), 1, + ACTIONS(59), 1, sym__reg, - STATE(75), 1, + STATE(74), 1, sym_line_comment, - STATE(102), 1, + STATE(119), 1, sym_reg, - ACTIONS(170), 2, + ACTIONS(173), 2, sym_word, sym_address, - [2518] = 7, + [2565] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(216), 1, + ACTIONS(231), 1, + anon_sym_RBRACE, + ACTIONS(228), 2, anon_sym_COMMA, - ACTIONS(220), 1, - anon_sym_RBRACK, - STATE(76), 1, - sym_line_comment, - ACTIONS(218), 2, anon_sym_DASH, - anon_sym_PLUS, - [2541] = 6, + STATE(75), 2, + sym_line_comment, + aux_sym_list_repeat1, + [2586] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(224), 1, + ACTIONS(235), 1, anon_sym_BANG, - STATE(77), 1, + STATE(76), 1, sym_line_comment, - ACTIONS(222), 3, + ACTIONS(233), 3, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [2562] = 6, + [2607] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(70), 1, - anon_sym_LPAREN, + ACTIONS(237), 1, + anon_sym_COMMA, + ACTIONS(241), 1, + anon_sym_RBRACK, + STATE(77), 1, + sym_line_comment, + ACTIONS(239), 2, + anon_sym_DASH, + anon_sym_PLUS, + [2630] = 7, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(245), 1, + anon_sym_COMMA, STATE(78), 1, sym_line_comment, - ACTIONS(68), 3, + STATE(81), 1, + aux_sym_meta_repeat2, + ACTIONS(243), 2, ts_builtin_sym_end, anon_sym_LF, - anon_sym_COMMA, - [2583] = 7, + [2653] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(55), 1, - sym__reg, - STATE(76), 1, - sym_reg, + ACTIONS(247), 1, + anon_sym_COMMA, STATE(79), 1, sym_line_comment, - ACTIONS(170), 2, - sym_word, - sym_address, - [2606] = 6, + STATE(83), 1, + aux_sym_meta_repeat1, + ACTIONS(243), 2, + ts_builtin_sym_end, + anon_sym_LF, + [2676] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(228), 1, + ACTIONS(249), 1, anon_sym_COMMA, - ACTIONS(226), 2, + STATE(80), 1, + sym_line_comment, + STATE(84), 1, + aux_sym_meta_repeat3, + ACTIONS(243), 2, ts_builtin_sym_end, anon_sym_LF, - STATE(80), 2, - sym_line_comment, - aux_sym_instruction_repeat1, - [2627] = 8, + [2699] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(141), 1, - anon_sym_LF, - ACTIONS(231), 1, - ts_builtin_sym_end, - STATE(37), 1, - aux_sym_program_repeat1, + ACTIONS(245), 1, + anon_sym_COMMA, + STATE(72), 1, + aux_sym_meta_repeat2, STATE(81), 1, sym_line_comment, - STATE(85), 1, - aux_sym_program_repeat2, - [2652] = 8, + ACTIONS(251), 2, + ts_builtin_sym_end, + anon_sym_LF, + [2722] = 8, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(195), 1, - anon_sym_DASH, - ACTIONS(233), 1, - anon_sym_COMMA, - ACTIONS(235), 1, - anon_sym_RBRACE, - STATE(62), 1, - aux_sym_list_repeat1, + ACTIONS(146), 1, + ts_builtin_sym_end, + ACTIONS(148), 1, + anon_sym_LF, + STATE(37), 1, + aux_sym_program_repeat1, STATE(82), 1, sym_line_comment, - [2677] = 6, + STATE(86), 1, + aux_sym_program_repeat2, + [2747] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(239), 1, - anon_sym_BANG, + ACTIONS(247), 1, + anon_sym_COMMA, + STATE(73), 1, + aux_sym_meta_repeat1, STATE(83), 1, sym_line_comment, - ACTIONS(237), 3, + ACTIONS(251), 2, ts_builtin_sym_end, anon_sym_LF, - anon_sym_COMMA, - [2698] = 6, + [2770] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(243), 1, + ACTIONS(249), 1, anon_sym_COMMA, - ACTIONS(241), 2, - ts_builtin_sym_end, - anon_sym_LF, - STATE(84), 2, + STATE(84), 1, sym_line_comment, + STATE(87), 1, aux_sym_meta_repeat3, - [2719] = 8, + ACTIONS(251), 2, + ts_builtin_sym_end, + anon_sym_LF, + [2793] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(139), 1, - ts_builtin_sym_end, - ACTIONS(141), 1, - anon_sym_LF, - STATE(38), 1, - aux_sym_program_repeat1, - STATE(61), 1, - aux_sym_program_repeat2, + ACTIONS(59), 1, + sym__reg, STATE(85), 1, sym_line_comment, - [2744] = 6, + STATE(124), 1, + sym_reg, + ACTIONS(173), 2, + sym_word, + sym_address, + [2816] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(248), 1, - anon_sym_COMMA, - ACTIONS(246), 2, + ACTIONS(253), 1, ts_builtin_sym_end, + ACTIONS(255), 1, anon_sym_LF, + STATE(41), 1, + aux_sym_program_repeat1, STATE(86), 2, sym_line_comment, - aux_sym_meta_repeat2, - [2765] = 6, + aux_sym_program_repeat2, + [2839] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(253), 1, + ACTIONS(260), 1, anon_sym_COMMA, - ACTIONS(251), 2, + ACTIONS(258), 2, ts_builtin_sym_end, anon_sym_LF, STATE(87), 2, sym_line_comment, - aux_sym_meta_repeat1, - [2786] = 6, + aux_sym_meta_repeat3, + [2860] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4218,12 +4292,11 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, STATE(88), 1, sym_line_comment, - STATE(99), 1, - sym_string, - ACTIONS(53), 2, - aux_sym_string_token1, - aux_sym_string_token2, - [2806] = 5, + ACTIONS(263), 3, + ts_builtin_sym_end, + anon_sym_LF, + anon_sym_COMMA, + [2878] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4232,11 +4305,11 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, STATE(89), 1, sym_line_comment, - ACTIONS(256), 3, + ACTIONS(265), 3, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [2824] = 5, + [2896] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4245,11 +4318,11 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, STATE(90), 1, sym_line_comment, - ACTIONS(258), 3, + ACTIONS(68), 3, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [2842] = 5, + [2914] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4258,11 +4331,11 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, STATE(91), 1, sym_line_comment, - ACTIONS(226), 3, + ACTIONS(233), 3, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [2860] = 5, + [2932] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4271,11 +4344,11 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, STATE(92), 1, sym_line_comment, - ACTIONS(222), 3, + ACTIONS(218), 3, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [2878] = 5, + [2950] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4284,11 +4357,11 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, STATE(93), 1, sym_line_comment, - ACTIONS(237), 3, + ACTIONS(267), 3, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [2896] = 5, + [2968] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4297,11 +4370,11 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, STATE(94), 1, sym_line_comment, - ACTIONS(260), 3, + ACTIONS(269), 3, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [2914] = 5, + [2986] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4310,11 +4383,11 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, STATE(95), 1, sym_line_comment, - ACTIONS(246), 3, + ACTIONS(271), 3, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [2932] = 5, + [3004] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4323,24 +4396,26 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, STATE(96), 1, sym_line_comment, - ACTIONS(262), 3, + ACTIONS(223), 3, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [2950] = 5, - ACTIONS(3), 1, - anon_sym_POUND, + [3022] = 7, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, + ACTIONS(51), 1, + anon_sym_POUND, + ACTIONS(53), 1, + anon_sym_DOLLAR, + ACTIONS(273), 1, + aux_sym_int_token2, STATE(97), 1, sym_line_comment, - ACTIONS(251), 3, - ts_builtin_sym_end, - anon_sym_LF, - anon_sym_COMMA, - [2968] = 5, + STATE(133), 1, + sym_int, + [3044] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4349,11 +4424,11 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, STATE(98), 1, sym_line_comment, - ACTIONS(264), 3, + ACTIONS(258), 3, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [2986] = 5, + [3062] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4362,24 +4437,26 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, STATE(99), 1, sym_line_comment, - ACTIONS(241), 3, + ACTIONS(275), 3, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [3004] = 5, - ACTIONS(3), 1, - anon_sym_POUND, + [3080] = 7, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, + ACTIONS(51), 1, + anon_sym_POUND, + ACTIONS(53), 1, + anon_sym_DOLLAR, + ACTIONS(273), 1, + aux_sym_int_token2, + STATE(96), 1, + sym_int, STATE(100), 1, sym_line_comment, - ACTIONS(68), 3, - ts_builtin_sym_end, - anon_sym_LF, - anon_sym_COMMA, - [3022] = 5, + [3102] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4388,76 +4465,80 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, STATE(101), 1, sym_line_comment, - ACTIONS(266), 3, + ACTIONS(277), 3, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [3040] = 6, + [3120] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(270), 1, - anon_sym_RBRACK, STATE(102), 1, sym_line_comment, - ACTIONS(268), 2, + ACTIONS(231), 3, + anon_sym_COMMA, anon_sym_DASH, - anon_sym_PLUS, - [3060] = 5, + anon_sym_RBRACE, + [3138] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, + STATE(98), 1, + sym_string, STATE(103), 1, sym_line_comment, - ACTIONS(272), 3, - ts_builtin_sym_end, - anon_sym_LF, - anon_sym_COMMA, - [3078] = 5, - ACTIONS(3), 1, - anon_sym_POUND, + ACTIONS(57), 2, + aux_sym_string_token1, + aux_sym_string_token2, + [3158] = 7, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, + ACTIONS(51), 1, + anon_sym_POUND, + ACTIONS(53), 1, + anon_sym_DOLLAR, + ACTIONS(273), 1, + aux_sym_int_token2, STATE(104), 1, sym_line_comment, - ACTIONS(200), 3, - anon_sym_COMMA, - anon_sym_DASH, - anon_sym_RBRACE, - [3096] = 6, + STATE(132), 1, + sym_int, + [3180] = 5, + ACTIONS(3), 1, + anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(49), 1, - anon_sym_POUND, - ACTIONS(274), 1, - aux_sym_int_token2, - STATE(97), 1, - sym_int, STATE(105), 1, sym_line_comment, - [3115] = 5, + ACTIONS(211), 3, + ts_builtin_sym_end, + anon_sym_LF, + anon_sym_COMMA, + [3198] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, + ACTIONS(281), 1, + anon_sym_RBRACK, STATE(106), 1, sym_line_comment, - ACTIONS(206), 2, - ts_builtin_sym_end, - anon_sym_LF, - [3132] = 5, + ACTIONS(279), 2, + anon_sym_DASH, + anon_sym_PLUS, + [3218] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4466,10 +4547,11 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, STATE(107), 1, sym_line_comment, - ACTIONS(276), 2, + ACTIONS(207), 3, ts_builtin_sym_end, anon_sym_LF, - [3149] = 5, + anon_sym_COMMA, + [3236] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4478,23 +4560,22 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, STATE(108), 1, sym_line_comment, - ACTIONS(278), 2, + ACTIONS(283), 2, ts_builtin_sym_end, anon_sym_LF, - [3166] = 6, + [3253] = 5, + ACTIONS(3), 1, + anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(49), 1, - anon_sym_POUND, - ACTIONS(274), 1, - aux_sym_int_token2, STATE(109), 1, sym_line_comment, - STATE(123), 1, - sym_int, - [3185] = 5, + ACTIONS(253), 2, + ts_builtin_sym_end, + anon_sym_LF, + [3270] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4503,10 +4584,10 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, STATE(110), 1, sym_line_comment, - ACTIONS(188), 2, + ACTIONS(285), 2, ts_builtin_sym_end, anon_sym_LF, - [3202] = 5, + [3287] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4515,10 +4596,10 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, STATE(111), 1, sym_line_comment, - ACTIONS(280), 2, + ACTIONS(287), 2, ts_builtin_sym_end, anon_sym_LF, - [3219] = 5, + [3304] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4527,10 +4608,10 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, STATE(112), 1, sym_line_comment, - ACTIONS(282), 2, + ACTIONS(289), 2, ts_builtin_sym_end, anon_sym_LF, - [3236] = 5, + [3321] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4539,10 +4620,10 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, STATE(113), 1, sym_line_comment, - ACTIONS(284), 2, + ACTIONS(291), 2, ts_builtin_sym_end, anon_sym_LF, - [3253] = 5, + [3338] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4551,188 +4632,187 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, STATE(114), 1, sym_line_comment, - ACTIONS(286), 2, + ACTIONS(293), 2, ts_builtin_sym_end, anon_sym_LF, - [3270] = 6, + [3355] = 5, + ACTIONS(3), 1, + anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(49), 1, - anon_sym_POUND, - ACTIONS(274), 1, - aux_sym_int_token2, STATE(115), 1, sym_line_comment, - STATE(122), 1, - sym_int, - [3289] = 5, - ACTIONS(288), 1, + ACTIONS(243), 2, + ts_builtin_sym_end, + anon_sym_LF, + [3372] = 5, + ACTIONS(3), 1, anon_sym_POUND, - ACTIONS(290), 1, - aux_sym_line_comment_token1, - ACTIONS(292), 1, + ACTIONS(5), 1, aux_sym_line_comment_token2, - ACTIONS(294), 1, + ACTIONS(7), 1, sym_block_comment, + ACTIONS(295), 1, + ts_builtin_sym_end, STATE(116), 1, sym_line_comment, - [3305] = 5, + [3388] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(296), 1, - anon_sym_RBRACK, + ACTIONS(297), 1, + sym_word, STATE(117), 1, sym_line_comment, - [3321] = 5, + [3404] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(298), 1, - anon_sym_LBRACK, + ACTIONS(299), 1, + aux_sym_int_token1, STATE(118), 1, sym_line_comment, - [3337] = 5, + [3420] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(300), 1, - anon_sym_LBRACK, + ACTIONS(209), 1, + anon_sym_RPAREN, STATE(119), 1, sym_line_comment, - [3353] = 5, + [3436] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(224), 1, - anon_sym_RPAREN, + ACTIONS(301), 1, + anon_sym_RBRACK, STATE(120), 1, sym_line_comment, - [3369] = 5, + [3452] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(302), 1, + ACTIONS(303), 1, anon_sym_RPAREN, STATE(121), 1, sym_line_comment, - [3385] = 5, + [3468] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(270), 1, - anon_sym_RBRACK, + ACTIONS(305), 1, + anon_sym_LBRACK, STATE(122), 1, sym_line_comment, - [3401] = 5, + [3484] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(304), 1, - anon_sym_RBRACK, + ACTIONS(307), 1, + anon_sym_ptr, STATE(123), 1, sym_line_comment, - [3417] = 5, + [3500] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(306), 1, - sym_float, + ACTIONS(309), 1, + anon_sym_RPAREN, STATE(124), 1, sym_line_comment, - [3433] = 5, + [3516] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(308), 1, - aux_sym_int_token1, + ACTIONS(311), 1, + anon_sym_LBRACK, STATE(125), 1, sym_line_comment, - [3449] = 5, + [3532] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(310), 1, - anon_sym_rel, + ACTIONS(313), 1, + sym_float, STATE(126), 1, sym_line_comment, - [3465] = 5, + [3548] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(312), 1, - anon_sym_ptr, + ACTIONS(315), 1, + sym_word, STATE(127), 1, sym_line_comment, - [3481] = 5, - ACTIONS(3), 1, + [3564] = 5, + ACTIONS(317), 1, anon_sym_POUND, - ACTIONS(5), 1, + ACTIONS(319), 1, + aux_sym_line_comment_token1, + ACTIONS(321), 1, aux_sym_line_comment_token2, - ACTIONS(7), 1, + ACTIONS(323), 1, sym_block_comment, - ACTIONS(314), 1, - anon_sym_RPAREN, STATE(128), 1, sym_line_comment, - [3497] = 5, + [3580] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(316), 1, + ACTIONS(325), 1, anon_sym_RPAREN, STATE(129), 1, sym_line_comment, - [3513] = 5, + [3596] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(318), 1, - ts_builtin_sym_end, + ACTIONS(327), 1, + anon_sym_rel, STATE(130), 1, sym_line_comment, - [3529] = 5, + [3612] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4743,344 +4823,347 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COLON, STATE(131), 1, sym_line_comment, - [3545] = 5, + [3628] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(320), 1, - sym_word, + ACTIONS(281), 1, + anon_sym_RBRACK, STATE(132), 1, sym_line_comment, - [3561] = 5, + [3644] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(322), 1, - sym_word, + ACTIONS(329), 1, + anon_sym_RBRACK, STATE(133), 1, sym_line_comment, - [3577] = 5, + [3660] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(324), 1, + ACTIONS(331), 1, aux_sym_int_token1, STATE(134), 1, sym_line_comment, - [3593] = 1, - ACTIONS(326), 1, + [3676] = 1, + ACTIONS(333), 1, ts_builtin_sym_end, - [3597] = 1, - ACTIONS(328), 1, + [3680] = 1, + ACTIONS(335), 1, ts_builtin_sym_end, }; static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(3)] = 0, - [SMALL_STATE(4)] = 69, - [SMALL_STATE(5)] = 138, - [SMALL_STATE(6)] = 203, - [SMALL_STATE(7)] = 238, - [SMALL_STATE(8)] = 279, - [SMALL_STATE(9)] = 314, - [SMALL_STATE(10)] = 348, - [SMALL_STATE(11)] = 386, - [SMALL_STATE(12)] = 420, - [SMALL_STATE(13)] = 454, - [SMALL_STATE(14)] = 493, - [SMALL_STATE(15)] = 536, - [SMALL_STATE(16)] = 569, - [SMALL_STATE(17)] = 606, - [SMALL_STATE(18)] = 639, - [SMALL_STATE(19)] = 686, - [SMALL_STATE(20)] = 721, - [SMALL_STATE(21)] = 769, - [SMALL_STATE(22)] = 815, - [SMALL_STATE(23)] = 866, - [SMALL_STATE(24)] = 914, - [SMALL_STATE(25)] = 955, - [SMALL_STATE(26)] = 996, - [SMALL_STATE(27)] = 1037, - [SMALL_STATE(28)] = 1078, - [SMALL_STATE(29)] = 1119, - [SMALL_STATE(30)] = 1160, - [SMALL_STATE(31)] = 1201, - [SMALL_STATE(32)] = 1242, - [SMALL_STATE(33)] = 1283, - [SMALL_STATE(34)] = 1324, - [SMALL_STATE(35)] = 1365, - [SMALL_STATE(36)] = 1396, - [SMALL_STATE(37)] = 1426, - [SMALL_STATE(38)] = 1472, - [SMALL_STATE(39)] = 1518, - [SMALL_STATE(40)] = 1548, - [SMALL_STATE(41)] = 1578, - [SMALL_STATE(42)] = 1621, - [SMALL_STATE(43)] = 1649, - [SMALL_STATE(44)] = 1676, - [SMALL_STATE(45)] = 1705, - [SMALL_STATE(46)] = 1736, - [SMALL_STATE(47)] = 1773, - [SMALL_STATE(48)] = 1806, - [SMALL_STATE(49)] = 1841, - [SMALL_STATE(50)] = 1868, - [SMALL_STATE(51)] = 1900, - [SMALL_STATE(52)] = 1932, - [SMALL_STATE(53)] = 1959, - [SMALL_STATE(54)] = 1983, - [SMALL_STATE(55)] = 2013, - [SMALL_STATE(56)] = 2043, - [SMALL_STATE(57)] = 2069, - [SMALL_STATE(58)] = 2095, - [SMALL_STATE(59)] = 2121, - [SMALL_STATE(60)] = 2147, - [SMALL_STATE(61)] = 2173, - [SMALL_STATE(62)] = 2196, - [SMALL_STATE(63)] = 2221, - [SMALL_STATE(64)] = 2242, - [SMALL_STATE(65)] = 2265, - [SMALL_STATE(66)] = 2288, - [SMALL_STATE(67)] = 2311, - [SMALL_STATE(68)] = 2334, - [SMALL_STATE(69)] = 2357, - [SMALL_STATE(70)] = 2380, - [SMALL_STATE(71)] = 2403, - [SMALL_STATE(72)] = 2426, - [SMALL_STATE(73)] = 2449, - [SMALL_STATE(74)] = 2472, - [SMALL_STATE(75)] = 2495, - [SMALL_STATE(76)] = 2518, - [SMALL_STATE(77)] = 2541, - [SMALL_STATE(78)] = 2562, - [SMALL_STATE(79)] = 2583, - [SMALL_STATE(80)] = 2606, - [SMALL_STATE(81)] = 2627, - [SMALL_STATE(82)] = 2652, - [SMALL_STATE(83)] = 2677, - [SMALL_STATE(84)] = 2698, - [SMALL_STATE(85)] = 2719, - [SMALL_STATE(86)] = 2744, - [SMALL_STATE(87)] = 2765, - [SMALL_STATE(88)] = 2786, - [SMALL_STATE(89)] = 2806, - [SMALL_STATE(90)] = 2824, - [SMALL_STATE(91)] = 2842, - [SMALL_STATE(92)] = 2860, - [SMALL_STATE(93)] = 2878, - [SMALL_STATE(94)] = 2896, - [SMALL_STATE(95)] = 2914, - [SMALL_STATE(96)] = 2932, - [SMALL_STATE(97)] = 2950, - [SMALL_STATE(98)] = 2968, - [SMALL_STATE(99)] = 2986, - [SMALL_STATE(100)] = 3004, - [SMALL_STATE(101)] = 3022, - [SMALL_STATE(102)] = 3040, - [SMALL_STATE(103)] = 3060, - [SMALL_STATE(104)] = 3078, - [SMALL_STATE(105)] = 3096, - [SMALL_STATE(106)] = 3115, - [SMALL_STATE(107)] = 3132, - [SMALL_STATE(108)] = 3149, - [SMALL_STATE(109)] = 3166, - [SMALL_STATE(110)] = 3185, - [SMALL_STATE(111)] = 3202, - [SMALL_STATE(112)] = 3219, - [SMALL_STATE(113)] = 3236, - [SMALL_STATE(114)] = 3253, - [SMALL_STATE(115)] = 3270, - [SMALL_STATE(116)] = 3289, - [SMALL_STATE(117)] = 3305, - [SMALL_STATE(118)] = 3321, - [SMALL_STATE(119)] = 3337, - [SMALL_STATE(120)] = 3353, - [SMALL_STATE(121)] = 3369, - [SMALL_STATE(122)] = 3385, - [SMALL_STATE(123)] = 3401, - [SMALL_STATE(124)] = 3417, - [SMALL_STATE(125)] = 3433, - [SMALL_STATE(126)] = 3449, - [SMALL_STATE(127)] = 3465, - [SMALL_STATE(128)] = 3481, - [SMALL_STATE(129)] = 3497, - [SMALL_STATE(130)] = 3513, - [SMALL_STATE(131)] = 3529, - [SMALL_STATE(132)] = 3545, - [SMALL_STATE(133)] = 3561, - [SMALL_STATE(134)] = 3577, - [SMALL_STATE(135)] = 3593, - [SMALL_STATE(136)] = 3597, + [SMALL_STATE(4)] = 72, + [SMALL_STATE(5)] = 144, + [SMALL_STATE(6)] = 212, + [SMALL_STATE(7)] = 254, + [SMALL_STATE(8)] = 290, + [SMALL_STATE(9)] = 326, + [SMALL_STATE(10)] = 361, + [SMALL_STATE(11)] = 396, + [SMALL_STATE(12)] = 431, + [SMALL_STATE(13)] = 470, + [SMALL_STATE(14)] = 504, + [SMALL_STATE(15)] = 552, + [SMALL_STATE(16)] = 588, + [SMALL_STATE(17)] = 632, + [SMALL_STATE(18)] = 672, + [SMALL_STATE(19)] = 710, + [SMALL_STATE(20)] = 744, + [SMALL_STATE(21)] = 795, + [SMALL_STATE(22)] = 844, + [SMALL_STATE(23)] = 898, + [SMALL_STATE(24)] = 949, + [SMALL_STATE(25)] = 993, + [SMALL_STATE(26)] = 1037, + [SMALL_STATE(27)] = 1081, + [SMALL_STATE(28)] = 1125, + [SMALL_STATE(29)] = 1169, + [SMALL_STATE(30)] = 1213, + [SMALL_STATE(31)] = 1257, + [SMALL_STATE(32)] = 1301, + [SMALL_STATE(33)] = 1345, + [SMALL_STATE(34)] = 1389, + [SMALL_STATE(35)] = 1433, + [SMALL_STATE(36)] = 1464, + [SMALL_STATE(37)] = 1510, + [SMALL_STATE(38)] = 1556, + [SMALL_STATE(39)] = 1586, + [SMALL_STATE(40)] = 1616, + [SMALL_STATE(41)] = 1646, + [SMALL_STATE(42)] = 1689, + [SMALL_STATE(43)] = 1717, + [SMALL_STATE(44)] = 1748, + [SMALL_STATE(45)] = 1777, + [SMALL_STATE(46)] = 1804, + [SMALL_STATE(47)] = 1839, + [SMALL_STATE(48)] = 1866, + [SMALL_STATE(49)] = 1901, + [SMALL_STATE(50)] = 1938, + [SMALL_STATE(51)] = 1973, + [SMALL_STATE(52)] = 2006, + [SMALL_STATE(53)] = 2033, + [SMALL_STATE(54)] = 2063, + [SMALL_STATE(55)] = 2087, + [SMALL_STATE(56)] = 2117, + [SMALL_STATE(57)] = 2143, + [SMALL_STATE(58)] = 2169, + [SMALL_STATE(59)] = 2195, + [SMALL_STATE(60)] = 2221, + [SMALL_STATE(61)] = 2247, + [SMALL_STATE(62)] = 2272, + [SMALL_STATE(63)] = 2297, + [SMALL_STATE(64)] = 2320, + [SMALL_STATE(65)] = 2345, + [SMALL_STATE(66)] = 2368, + [SMALL_STATE(67)] = 2391, + [SMALL_STATE(68)] = 2412, + [SMALL_STATE(69)] = 2433, + [SMALL_STATE(70)] = 2454, + [SMALL_STATE(71)] = 2477, + [SMALL_STATE(72)] = 2500, + [SMALL_STATE(73)] = 2521, + [SMALL_STATE(74)] = 2542, + [SMALL_STATE(75)] = 2565, + [SMALL_STATE(76)] = 2586, + [SMALL_STATE(77)] = 2607, + [SMALL_STATE(78)] = 2630, + [SMALL_STATE(79)] = 2653, + [SMALL_STATE(80)] = 2676, + [SMALL_STATE(81)] = 2699, + [SMALL_STATE(82)] = 2722, + [SMALL_STATE(83)] = 2747, + [SMALL_STATE(84)] = 2770, + [SMALL_STATE(85)] = 2793, + [SMALL_STATE(86)] = 2816, + [SMALL_STATE(87)] = 2839, + [SMALL_STATE(88)] = 2860, + [SMALL_STATE(89)] = 2878, + [SMALL_STATE(90)] = 2896, + [SMALL_STATE(91)] = 2914, + [SMALL_STATE(92)] = 2932, + [SMALL_STATE(93)] = 2950, + [SMALL_STATE(94)] = 2968, + [SMALL_STATE(95)] = 2986, + [SMALL_STATE(96)] = 3004, + [SMALL_STATE(97)] = 3022, + [SMALL_STATE(98)] = 3044, + [SMALL_STATE(99)] = 3062, + [SMALL_STATE(100)] = 3080, + [SMALL_STATE(101)] = 3102, + [SMALL_STATE(102)] = 3120, + [SMALL_STATE(103)] = 3138, + [SMALL_STATE(104)] = 3158, + [SMALL_STATE(105)] = 3180, + [SMALL_STATE(106)] = 3198, + [SMALL_STATE(107)] = 3218, + [SMALL_STATE(108)] = 3236, + [SMALL_STATE(109)] = 3253, + [SMALL_STATE(110)] = 3270, + [SMALL_STATE(111)] = 3287, + [SMALL_STATE(112)] = 3304, + [SMALL_STATE(113)] = 3321, + [SMALL_STATE(114)] = 3338, + [SMALL_STATE(115)] = 3355, + [SMALL_STATE(116)] = 3372, + [SMALL_STATE(117)] = 3388, + [SMALL_STATE(118)] = 3404, + [SMALL_STATE(119)] = 3420, + [SMALL_STATE(120)] = 3436, + [SMALL_STATE(121)] = 3452, + [SMALL_STATE(122)] = 3468, + [SMALL_STATE(123)] = 3484, + [SMALL_STATE(124)] = 3500, + [SMALL_STATE(125)] = 3516, + [SMALL_STATE(126)] = 3532, + [SMALL_STATE(127)] = 3548, + [SMALL_STATE(128)] = 3564, + [SMALL_STATE(129)] = 3580, + [SMALL_STATE(130)] = 3596, + [SMALL_STATE(131)] = 3612, + [SMALL_STATE(132)] = 3628, + [SMALL_STATE(133)] = 3644, + [SMALL_STATE(134)] = 3660, + [SMALL_STATE(135)] = 3676, + [SMALL_STATE(136)] = 3680, }; 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(116), + [3] = {.entry = {.count = 1, .reusable = true}}, SHIFT(128), [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(136), [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT_EXTRA(), [9] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_program, 0, 0, 0), - [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(133), - [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(132), + [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(127), + [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(117), [15] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2), [17] = {.entry = {.count = 1, .reusable = false}}, SHIFT(22), [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(131), [21] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_instruction, 1, 0, 1), - [23] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), - [25] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), - [27] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), - [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(127), - [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79), - [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(126), - [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(125), - [37] = {.entry = {.count = 1, .reusable = false}}, SHIFT(8), - [39] = {.entry = {.count = 1, .reusable = false}}, SHIFT(100), - [41] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), - [43] = {.entry = {.count = 1, .reusable = false}}, SHIFT(9), + [23] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), + [25] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85), + [27] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), + [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(123), + [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), + [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130), + [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(118), + [37] = {.entry = {.count = 1, .reusable = false}}, SHIFT(118), + [39] = {.entry = {.count = 1, .reusable = false}}, SHIFT(7), + [41] = {.entry = {.count = 1, .reusable = false}}, SHIFT(90), + [43] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10), [45] = {.entry = {.count = 1, .reusable = false}}, SHIFT(11), - [47] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_instruction, 3, 0, 1), - [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(134), - [51] = {.entry = {.count = 1, .reusable = false}}, SHIFT(36), - [53] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), - [55] = {.entry = {.count = 1, .reusable = false}}, SHIFT(35), - [57] = {.entry = {.count = 1, .reusable = false}}, SHIFT(40), - [59] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_instruction, 4, 0, 1), - [61] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_int, 2, 0, 0), - [63] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_int, 2, 0, 0), + [47] = {.entry = {.count = 1, .reusable = false}}, SHIFT(9), + [49] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_instruction, 3, 0, 1), + [51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(134), + [53] = {.entry = {.count = 1, .reusable = false}}, SHIFT(134), + [55] = {.entry = {.count = 1, .reusable = false}}, SHIFT(38), + [57] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), + [59] = {.entry = {.count = 1, .reusable = false}}, SHIFT(35), + [61] = {.entry = {.count = 1, .reusable = false}}, SHIFT(40), + [63] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_instruction, 4, 0, 1), [65] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__expr, 1, 0, 0), REDUCE(sym__tc_expr, 1, 0, 0), [68] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr, 1, 0, 0), - [70] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), + [70] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), [72] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__tc_expr, 1, 0, 0), [74] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__tc_expr, 1, 0, 0), [76] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_int, 1, 0, 0), [78] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_int, 1, 0, 0), - [80] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_reg, 1, 0, 0), - [82] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_reg, 1, 0, 0), + [80] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_int, 2, 0, 0), + [82] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_int, 2, 0, 0), [84] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ident, 1, 0, 0), [86] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_ident, 1, 0, 0), [88] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string, 1, 0, 0), [90] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string, 1, 0, 0), - [92] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tc_infix, 3, 0, 5), - [94] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tc_infix, 3, 0, 5), - [96] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), - [98] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), - [100] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), - [102] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), - [104] = {.entry = {.count = 1, .reusable = false}}, SHIFT(27), - [106] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_instruction_repeat2, 1, 0, 0), - [108] = {.entry = {.count = 1, .reusable = false}}, SHIFT(25), - [110] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), + [92] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_reg, 1, 0, 0), + [94] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_reg, 1, 0, 0), + [96] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_instruction_repeat2, 1, 0, 0), + [98] = {.entry = {.count = 1, .reusable = false}}, SHIFT(32), + [100] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), + [102] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), + [104] = {.entry = {.count = 1, .reusable = false}}, SHIFT(25), + [106] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), + [108] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), + [110] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), [112] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_instruction_repeat2, 1, 0, 0), - [114] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_instruction, 2, 0, 1), - [116] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_instruction_repeat2, 2, 0, 0), - [118] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_instruction_repeat2, 2, 0, 0), SHIFT_REPEAT(125), - [121] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_instruction_repeat2, 2, 0, 0), SHIFT_REPEAT(8), - [124] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_instruction_repeat2, 2, 0, 0), SHIFT_REPEAT(12), - [127] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_instruction_repeat2, 2, 0, 0), SHIFT_REPEAT(9), - [130] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_instruction_repeat2, 2, 0, 0), SHIFT_REPEAT(11), - [133] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_meta, 1, 0, 1), - [135] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), - [137] = {.entry = {.count = 1, .reusable = false}}, SHIFT(70), - [139] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_program, 2, 0, 0), - [141] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), - [143] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_program, 3, 0, 0), - [145] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), - [147] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), - [149] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_const, 3, 0, 4), - [151] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), - [153] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), - [155] = {.entry = {.count = 1, .reusable = false}}, SHIFT(33), - [157] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), - [159] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_program_repeat1, 2, 0, 0), - [161] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_program_repeat1, 2, 0, 0), SHIFT_REPEAT(53), - [164] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 2, 0, 0), - [166] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_program_repeat1, 1, 0, 0), - [168] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 1, 0, 0), - [170] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), - [172] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), - [174] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), - [176] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 2, 0, 3), - [178] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), - [180] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), - [182] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), - [184] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 2, 0, 0), - [186] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), - [188] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_program_repeat2, 2, 0, 0), - [190] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_program_repeat2, 2, 0, 0), SHIFT_REPEAT(53), - [193] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), - [195] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), - [197] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2, 0, 0), SHIFT_REPEAT(73), - [200] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2, 0, 0), - [202] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_meta, 3, 0, 1), - [204] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124), - [206] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_meta, 2, 0, 1), - [208] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), - [210] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), - [212] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), - [214] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), - [216] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109), - [218] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), - [220] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), - [222] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 3, 0, 0), - [224] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), - [226] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_instruction_repeat1, 2, 0, 0), - [228] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_instruction_repeat1, 2, 0, 0), SHIFT_REPEAT(5), - [231] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_program, 1, 0, 0), - [233] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), - [235] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), - [237] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 5, 0, 0), - [239] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), - [241] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_meta_repeat3, 2, 0, 0), - [243] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_meta_repeat3, 2, 0, 0), SHIFT_REPEAT(88), - [246] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_meta_repeat2, 2, 0, 0), - [248] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_meta_repeat2, 2, 0, 0), SHIFT_REPEAT(124), - [251] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_meta_repeat1, 2, 0, 0), - [253] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_meta_repeat1, 2, 0, 0), SHIFT_REPEAT(105), - [256] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 3, 0, 0), - [258] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 6, 0, 0), - [260] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 5, 0, 0), - [262] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 4, 0, 0), - [264] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 2, 0, 0), - [266] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 7, 0, 0), - [268] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), - [270] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), - [272] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 4, 0, 0), - [274] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), - [276] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 5, 0, 3), - [278] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 3, 0, 3), - [280] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 3, 0, 0), - [282] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 5, 0, 0), - [284] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 2, 0, 2), - [286] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__item, 1, 0, 0), - [288] = {.entry = {.count = 1, .reusable = false}}, SHIFT(116), - [290] = {.entry = {.count = 1, .reusable = false}}, SHIFT(135), - [292] = {.entry = {.count = 1, .reusable = false}}, SHIFT(136), - [294] = {.entry = {.count = 1, .reusable = false}}, SHIFT_EXTRA(), - [296] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), - [298] = {.entry = {.count = 1, .reusable = true}}, SHIFT(115), - [300] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), - [302] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92), - [304] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83), - [306] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), - [308] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), - [310] = {.entry = {.count = 1, .reusable = true}}, SHIFT(118), - [312] = {.entry = {.count = 1, .reusable = true}}, SHIFT(119), - [314] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107), - [316] = {.entry = {.count = 1, .reusable = true}}, SHIFT(112), - [318] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), - [320] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), - [322] = {.entry = {.count = 1, .reusable = true}}, SHIFT(113), - [324] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), - [326] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_line_comment, 2, 0, 0), - [328] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_line_comment, 1, 0, 0), + [114] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tc_infix, 3, 0, 5), + [116] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tc_infix, 3, 0, 5), + [118] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_instruction, 2, 0, 1), + [120] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_instruction_repeat2, 2, 0, 0), + [122] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_instruction_repeat2, 2, 0, 0), SHIFT_REPEAT(118), + [125] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_instruction_repeat2, 2, 0, 0), SHIFT_REPEAT(118), + [128] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_instruction_repeat2, 2, 0, 0), SHIFT_REPEAT(7), + [131] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_instruction_repeat2, 2, 0, 0), SHIFT_REPEAT(10), + [134] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_instruction_repeat2, 2, 0, 0), SHIFT_REPEAT(11), + [137] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_instruction_repeat2, 2, 0, 0), SHIFT_REPEAT(9), + [140] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_meta, 1, 0, 1), + [142] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), + [144] = {.entry = {.count = 1, .reusable = false}}, SHIFT(78), + [146] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_program, 2, 0, 0), + [148] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), + [150] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_program, 3, 0, 0), + [152] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), + [154] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), + [156] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_const, 3, 0, 4), + [158] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), + [160] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), + [162] = {.entry = {.count = 1, .reusable = false}}, SHIFT(33), + [164] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), + [166] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_program_repeat1, 2, 0, 0), + [168] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_program_repeat1, 2, 0, 0), SHIFT_REPEAT(54), + [171] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 2, 0, 0), + [173] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), + [175] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_program_repeat1, 1, 0, 0), + [177] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 1, 0, 0), + [179] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 2, 0, 0), + [181] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), + [183] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), + [185] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99), + [187] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), + [189] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), + [191] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 2, 0, 3), + [193] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), + [195] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_program, 1, 0, 0), + [197] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), + [199] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), + [201] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), + [203] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), + [205] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), + [207] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 3, 0, 0), + [209] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), + [211] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_instruction_repeat1, 2, 0, 0), + [213] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_instruction_repeat1, 2, 0, 0), SHIFT_REPEAT(5), + [216] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), + [218] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_meta_repeat2, 2, 0, 0), + [220] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_meta_repeat2, 2, 0, 0), SHIFT_REPEAT(126), + [223] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_meta_repeat1, 2, 0, 0), + [225] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_meta_repeat1, 2, 0, 0), SHIFT_REPEAT(100), + [228] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2, 0, 0), SHIFT_REPEAT(63), + [231] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2, 0, 0), + [233] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 5, 0, 0), + [235] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), + [237] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97), + [239] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), + [241] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), + [243] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_meta, 2, 0, 1), + [245] = {.entry = {.count = 1, .reusable = true}}, SHIFT(126), + [247] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100), + [249] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), + [251] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_meta, 3, 0, 1), + [253] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_program_repeat2, 2, 0, 0), + [255] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_program_repeat2, 2, 0, 0), SHIFT_REPEAT(54), + [258] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_meta_repeat3, 2, 0, 0), + [260] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_meta_repeat3, 2, 0, 0), SHIFT_REPEAT(103), + [263] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 4, 0, 0), + [265] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 5, 0, 0), + [267] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 6, 0, 0), + [269] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 7, 0, 0), + [271] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 3, 0, 0), + [273] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), + [275] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 2, 0, 0), + [277] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 4, 0, 0), + [279] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), + [281] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91), + [283] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__item, 1, 0, 0), + [285] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 3, 0, 3), + [287] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 2, 0, 2), + [289] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 5, 0, 0), + [291] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 5, 0, 3), + [293] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 3, 0, 0), + [295] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [297] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), + [299] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), + [301] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), + [303] = {.entry = {.count = 1, .reusable = true}}, SHIFT(112), + [305] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), + [307] = {.entry = {.count = 1, .reusable = true}}, SHIFT(122), + [309] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107), + [311] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104), + [313] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92), + [315] = {.entry = {.count = 1, .reusable = true}}, SHIFT(111), + [317] = {.entry = {.count = 1, .reusable = false}}, SHIFT(128), + [319] = {.entry = {.count = 1, .reusable = false}}, SHIFT(135), + [321] = {.entry = {.count = 1, .reusable = false}}, SHIFT(136), + [323] = {.entry = {.count = 1, .reusable = false}}, SHIFT_EXTRA(), + [325] = {.entry = {.count = 1, .reusable = true}}, SHIFT(113), + [327] = {.entry = {.count = 1, .reusable = true}}, SHIFT(125), + [329] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), + [331] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), + [333] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_line_comment, 2, 0, 0), + [335] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_line_comment, 1, 0, 0), }; #ifdef __cplusplus @@ -5096,7 +5179,7 @@ extern "C" { TS_PUBLIC const TSLanguage *tree_sitter_asm(void) { static const TSLanguage language = { - .version = LANGUAGE_VERSION, + .abi_version = LANGUAGE_VERSION, .symbol_count = SYMBOL_COUNT, .alias_count = ALIAS_COUNT, .token_count = TOKEN_COUNT, @@ -5104,6 +5187,7 @@ TS_PUBLIC const TSLanguage *tree_sitter_asm(void) { .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], @@ -5118,9 +5202,16 @@ TS_PUBLIC const TSLanguage *tree_sitter_asm(void) { .public_symbol_map = ts_symbol_map, .alias_map = ts_non_terminal_alias_map, .alias_sequences = &ts_alias_sequences[0][0], - .lex_modes = ts_lex_modes, + .lex_modes = (const void*)ts_lex_modes, .lex_fn = ts_lex, .primary_state_ids = ts_primary_state_ids, + .name = "asm", + .max_reserved_word_set_size = 0, + .metadata = { + .major_version = 0, + .minor_version = 1, + .patch_version = 0, + }, }; return &language; } diff --git a/src/tree_sitter/alloc.h b/src/tree_sitter/alloc.h index 1f4466d7..1abdd120 100644 --- a/src/tree_sitter/alloc.h +++ b/src/tree_sitter/alloc.h @@ -12,10 +12,10 @@ extern "C" { // Allow clients to override allocation functions #ifdef TREE_SITTER_REUSE_ALLOCATOR -extern void *(*ts_current_malloc)(size_t); -extern void *(*ts_current_calloc)(size_t, size_t); -extern void *(*ts_current_realloc)(void *, size_t); -extern void (*ts_current_free)(void *); +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 diff --git a/src/tree_sitter/array.h b/src/tree_sitter/array.h index 15a3b233..56fc8cd4 100644 --- a/src/tree_sitter/array.h +++ b/src/tree_sitter/array.h @@ -14,6 +14,7 @@ extern "C" { #include #ifdef _MSC_VER +#pragma warning(push) #pragma warning(disable : 4101) #elif defined(__GNUC__) || defined(__clang__) #pragma GCC diagnostic push @@ -51,67 +52,96 @@ extern "C" { /// 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) +#define array_reserve(self, new_capacity) \ + ((self)->contents = _array__reserve( \ + (void *)(self)->contents, &(self)->capacity, \ + 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)) +#define array_delete(self) \ + do { \ + if ((self)->contents) ts_free((self)->contents); \ + (self)->contents = NULL; \ + (self)->size = 0; \ + (self)->capacity = 0; \ + } while (0) /// 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)) +#define array_push(self, element) \ + do { \ + (self)->contents = _array__grow( \ + (void *)(self)->contents, (self)->size, &(self)->capacity, \ + 1, array_elem_size(self) \ + ); \ + (self)->contents[(self)->size++] = (element); \ + } while(0) /// 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)); \ +#define array_grow_by(self, count) \ + do { \ + if ((count) == 0) break; \ + (self)->contents = _array__grow( \ + (self)->contents, (self)->size, &(self)->capacity, \ + count, array_elem_size(self) \ + ); \ memset((self)->contents + (self)->size, 0, (count) * array_elem_size(self)); \ - (self)->size += (count); \ + (self)->size += (count); \ } while (0) /// Append all elements from one array to the end of another. -#define array_push_all(self, other) \ +#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 \ +#define array_extend(self, count, other_contents) \ + (self)->contents = _array__splice( \ + (void*)(self)->contents, &(self)->size, &(self)->capacity, \ + array_elem_size(self), (self)->size, 0, count, other_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 \ +#define array_splice(self, _index, old_count, new_count, new_contents) \ + (self)->contents = _array__splice( \ + (void *)(self)->contents, &(self)->size, &(self)->capacity, \ + 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)) +#define array_insert(self, _index, element) \ + (self)->contents = _array__splice( \ + (void *)(self)->contents, &(self)->size, &(self)->capacity, \ + 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) + _array__erase((void *)(self)->contents, &(self)->size, 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)) +#define array_assign(self, other) \ + (self)->contents = _array__assign( \ + (void *)(self)->contents, &(self)->size, &(self)->capacity, \ + (const void *)(other)->contents, (other)->size, array_elem_size(self) \ + ) /// Swap one array with another -#define array_swap(self, other) \ - _array__swap((Array *)(self), (Array *)(other)) +#define array_swap(self, other) \ + do { \ + void *_array_swap_tmp = (void *)(self)->contents; \ + (self)->contents = (other)->contents; \ + (other)->contents = _array_swap_tmp; \ + _array__swap(&(self)->size, &(self)->capacity, \ + &(other)->size, &(other)->capacity); \ + } while (0) /// Get the size of the array contents #define array_elem_size(self) (sizeof *(self)->contents) @@ -156,82 +186,90 @@ extern "C" { // 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; - } -} +// Pointers to individual `Array` fields (rather than the entire `Array` itself) +// are passed to the various `_array__*` functions below to address strict aliasing +// violations that arises when the _entire_ `Array` struct is passed as `Array(void)*`. +// +// The `Array` type itself was not altered as a solution in order to avoid breakage +// with existing consumers (in particular, parsers with external scanners). /// 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; +static inline void _array__erase(void* self_contents, uint32_t *size, + size_t element_size, uint32_t index) { + assert(index < *size); + char *contents = (char *)self_contents; memmove(contents + index * element_size, contents + (index + 1) * element_size, - (self->size - index - 1) * element_size); - self->size--; + (*size - index - 1) * element_size); + (*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); +static inline void *_array__reserve(void *contents, uint32_t *capacity, + size_t element_size, uint32_t new_capacity) { + void *new_contents = contents; + if (new_capacity > *capacity) { + if (contents) { + new_contents = ts_realloc(contents, new_capacity * element_size); } else { - self->contents = ts_malloc(new_capacity * element_size); + new_contents = ts_malloc(new_capacity * element_size); } - self->capacity = new_capacity; + *capacity = new_capacity; } + return new_contents; } /// 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); +static inline void *_array__assign(void* self_contents, uint32_t *self_size, uint32_t *self_capacity, + const void *other_contents, uint32_t other_size, size_t element_size) { + void *new_contents = _array__reserve(self_contents, self_capacity, element_size, other_size); + *self_size = other_size; + memcpy(new_contents, other_contents, *self_size * element_size); + return new_contents; } /// 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; +static inline void _array__swap(uint32_t *self_size, uint32_t *self_capacity, + uint32_t *other_size, uint32_t *other_capacity) { + uint32_t tmp_size = *self_size; + uint32_t tmp_capacity = *self_capacity; + *self_size = *other_size; + *self_capacity = *other_capacity; + *other_size = tmp_size; + *other_capacity = tmp_capacity; } /// 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; +static inline void *_array__grow(void *contents, uint32_t size, uint32_t *capacity, + uint32_t count, size_t element_size) { + void *new_contents = contents; + uint32_t new_size = size + count; + if (new_size > *capacity) { + uint32_t new_capacity = *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); + new_contents = _array__reserve(contents, capacity, element_size, new_capacity); } + return new_contents; } /// This is not what you're looking for, see `array_splice`. -static inline void _array__splice(Array *self, size_t element_size, +static inline void *_array__splice(void *self_contents, uint32_t *size, uint32_t *capacity, + 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 new_size = *size + new_count - old_count; uint32_t old_end = index + old_count; uint32_t new_end = index + new_count; - assert(old_end <= self->size); + assert(old_end <= *size); - _array__reserve(self, element_size, new_size); + void *new_contents = _array__reserve(self_contents, capacity, element_size, new_size); - char *contents = (char *)self->contents; - if (self->size > old_end) { + char *contents = (char *)new_contents; + if (*size > old_end) { memmove( contents + new_end * element_size, contents + old_end * element_size, - (self->size - old_end) * element_size + (*size - old_end) * element_size ); } if (new_count > 0) { @@ -249,7 +287,9 @@ static inline void _array__splice(Array *self, size_t element_size, ); } } - self->size += new_count - old_count; + *size += new_count - old_count; + + return new_contents; } /// A binary search routine, based on Rust's `std::slice::binary_search_by`. @@ -278,7 +318,7 @@ static inline void _array__splice(Array *self, size_t element_size, #define _compare_int(a, b) ((int)*(a) - (int)(b)) #ifdef _MSC_VER -#pragma warning(default : 4101) +#pragma warning(pop) #elif defined(__GNUC__) || defined(__clang__) #pragma GCC diagnostic pop #endif diff --git a/src/tree_sitter/parser.h b/src/tree_sitter/parser.h index 17f0e94b..858107de 100644 --- a/src/tree_sitter/parser.h +++ b/src/tree_sitter/parser.h @@ -18,6 +18,11 @@ typedef uint16_t TSStateId; typedef uint16_t TSSymbol; typedef uint16_t TSFieldId; typedef struct TSLanguage TSLanguage; +typedef struct TSLanguageMetadata { + uint8_t major_version; + uint8_t minor_version; + uint8_t patch_version; +} TSLanguageMetadata; #endif typedef struct { @@ -26,10 +31,11 @@ typedef struct { bool inherited; } TSFieldMapEntry; +// Used to index the field and supertype maps. typedef struct { uint16_t index; uint16_t length; -} TSFieldMapSlice; +} TSMapSlice; typedef struct { bool visible; @@ -47,6 +53,7 @@ struct 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 { @@ -78,6 +85,12 @@ typedef struct { 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 { @@ -92,7 +105,7 @@ typedef struct { } TSCharacterRange; struct TSLanguage { - uint32_t version; + uint32_t abi_version; uint32_t symbol_count; uint32_t alias_count; uint32_t token_count; @@ -108,13 +121,13 @@ struct TSLanguage { const TSParseActionEntry *parse_actions; const char * const *symbol_names; const char * const *field_names; - const TSFieldMapSlice *field_map_slices; + 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 TSLexMode *lex_modes; + const TSLexerMode *lex_modes; bool (*lex_fn)(TSLexer *, TSStateId); bool (*keyword_lex_fn)(TSLexer *, TSStateId); TSSymbol keyword_capture_token; @@ -128,15 +141,23 @@ struct TSLanguage { 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(TSCharacterRange *ranges, uint32_t len, int32_t lookahead) { +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; - TSCharacterRange *range = &ranges[mid_index]; + const TSCharacterRange *range = &ranges[mid_index]; if (lookahead >= range->start && lookahead <= range->end) { return true; } else if (lookahead > range->end) { @@ -144,7 +165,7 @@ static inline bool set_contains(TSCharacterRange *ranges, uint32_t len, int32_t } size -= half_size; } - TSCharacterRange *range = &ranges[index]; + const TSCharacterRange *range = &ranges[index]; return (lookahead >= range->start && lookahead <= range->end); } From 6ff7e1a615b9d405ca55d2df4b208adb8c5e2869 Mon Sep 17 00:00:00 2001 From: Neptumiun93 Date: Thu, 18 Jun 2026 12:32:01 +0200 Subject: [PATCH 15/31] fix: typo --- test/corpus/instr_and_reg.test | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/corpus/instr_and_reg.test b/test/corpus/instr_and_reg.test index dfaaa465..20ff7f46 100644 --- a/test/corpus/instr_and_reg.test +++ b/test/corpus/instr_and_reg.test @@ -191,7 +191,7 @@ LDR A1, =addr (address))))) ========== -Instruction -- Negative costant arg +Instruction -- Negative constant arg ========== movq $-1, %rax --- From ad27821c605e037c05180058dc7558699721482e Mon Sep 17 00:00:00 2001 From: Neptumiun93 Date: Thu, 18 Jun 2026 16:18:37 +0200 Subject: [PATCH 16/31] refactor: renamed `sep` to `repeatSep` and added `sep` function repeatSep -> repeat same arguments with a separator sep -> add a separator of list of rules --- grammar.js | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/grammar.js b/grammar.js index 6e4f80d7..26fbe30a 100644 --- a/grammar.js +++ b/grammar.js @@ -13,7 +13,7 @@ module.exports = grammar({ ], rules: { - program: $ => sep(repeat1('\n'), $._item), + program: $ => repeatSep(repeat1('\n'), $._item), _item: $ => choice( $.meta, @@ -45,7 +45,7 @@ module.exports = grammar({ ), ), const: $ => seq('const', field('name', $.word), field('value', $._tc_expr)), - instruction: $ => seq(field('kind', $.word), choice(sep(',', $._expr), repeat($._tc_expr))), + instruction: $ => seq(field('kind', $.word), choice(repeatSep(',', $._expr), repeat($._tc_expr))), _expr: $ => choice($.ptr, $.ident, $.int, $.string, $.float, $.list), // ARMv7 @@ -150,6 +150,15 @@ module.exports = grammar({ }, }) -function sep(separator, rule) { +function repeatSep(separator, rule) { return optional(seq(rule, repeat(seq(separator, rule)), optional(separator))) } + +function sep(separator, ...rules) { + if (rules.length === 0) return optional(); + let parts = [rules[0]]; + for (let i = 1; i < rules.length; i++) { + parts.push(separator, rules[i]); + } + return optional(seq(...parts)); +} From b460a9119095acd14f0f3327ee5cc39b6a46876f Mon Sep 17 00:00:00 2001 From: Neptumiun93 Date: Thu, 18 Jun 2026 16:23:42 +0200 Subject: [PATCH 17/31] fix(AT&T): Added support for omitting arguments in memory addressing --- grammar.js | 13 ++- test/corpus/instr_and_reg.test | 167 +++++++++++++++++++++++++++++++++ 2 files changed, 177 insertions(+), 3 deletions(-) diff --git a/grammar.js b/grammar.js index 26fbe30a..87e553d4 100644 --- a/grammar.js +++ b/grammar.js @@ -58,6 +58,7 @@ module.exports = grammar({ ptr: $ => choice( + // Intel seq( optional(seq(choice('byte', 'word', 'dword', 'qword'), 'ptr')), '[', @@ -65,10 +66,16 @@ module.exports = grammar({ optional(seq(choice('+', '-'), choice($.int, $.ident))), ']', ), + // AT&T + // DISP(BASE, INDEX, SCALE) seq( - optional($.int), + field('disp', optional($.int)), '(', - $.reg, + sep(',', + field('base', optional($.reg)), + field('index', $.reg), + field('scale', optional(choice('1', '2', '4', '8'))), + ), ')', ), seq( @@ -160,5 +167,5 @@ function sep(separator, ...rules) { for (let i = 1; i < rules.length; i++) { parts.push(separator, rules[i]); } - return optional(seq(...parts)); + return seq(...parts); } diff --git a/test/corpus/instr_and_reg.test b/test/corpus/instr_and_reg.test index aeb8f16c..7b8b1724 100644 --- a/test/corpus/instr_and_reg.test +++ b/test/corpus/instr_and_reg.test @@ -189,3 +189,170 @@ LDR A1, =addr (ident (reg (address))))) + +========== +Instruction -- Memory addressing source omission of DISP and SCALE (x86 AT&T) +========== +leaq (%rdi, %rdi, ), %rdi +--- + +(program + (instruction + (word) + (ptr + (reg) + (reg)) + (ident + (reg)))) + +========== +Instruction -- Memory addressing source omission of SCALE (x86 AT&T) +========== +leaq 5(%rdi, %rdi, ), %rdi +--- + +(program + (instruction + (word) + (ptr + (int) + (reg) + (reg)) + (ident + (reg)))) + +========== +Instruction -- Memory addressing source omission of BASE and SCALE (x86 AT&T) +========== +leaq 5(, %rdi, ), %rdi +--- + +(program + (instruction + (word) + (ptr + (int) + (reg)) + (ident + (reg)))) + +========== +Instruction -- Memory addressing source omission of DISP, BASE and SCALE (x86 AT&T) +========== +leaq (, %rdi, ), %rdi +--- + +(program + (instruction + (word) + (ptr + (reg)) + (ident + (reg)))) + +========== +Instruction -- Memory addressing source omission of DISP and BASE (x86 AT&T) +========== +leaq (, %rdi, 4), %rdi +--- + +(program + (instruction + (word) + (ptr + (reg)) + (ident + (reg)))) + +========== +Instruction -- Memory addressing source omission of BASE (x86 AT&T) +========== +leaq 4(, %rdi, 4), %rdi +--- + +(program + (instruction + (word) + (ptr + (int) + (reg)) + (ident + (reg)))) + +========== +Instruction -- Memory addressing destination omission of DISP and SCALE (x86 AT&T) +========== +movq $rax, (%rdi, %rdi, ) +--- + +(program + (instruction + (word) + (ident + (reg + (address))) + (ptr + (reg) + (reg)))) + +========== +Instruction -- Memory addressing destination omission of DISP, BASE and SCALE (x86 AT&T) +========== +movq $rax, (, %rdi, ) +--- + +(program + (instruction + (word) + (ident + (reg + (address))) + (ptr + (reg)))) + +========== +Instruction -- Memory addressing destination omission of BASE and SCALE (x86 AT&T) +========== +movq $rax, 1(, %rdi, ) +--- + +(program + (instruction + (word) + (ident + (reg + (address))) + (ptr + (int) + (reg)))) + +========== +Instruction -- Memory addressing destination omission of DISP and BASE (x86 AT&T) +========== +movq $rax, (, %rdi, 8) +--- + +(program + (instruction + (word) + (ident + (reg + (address))) + (ptr + (reg)))) + +========== +Instruction -- Memory addressing destination omission of BASE (x86 AT&T) +========== +movq $rax, 4(, %rdi, 8) +--- + +(program + (instruction + (word) + (ident + (reg + (address))) + (ptr + (int) + (reg)))) From 0f0923934dd5ca31af1de6ae7f4c22a8758abeff Mon Sep 17 00:00:00 2001 From: Neptumiun93 Date: Thu, 18 Jun 2026 16:26:05 +0200 Subject: [PATCH 18/31] chore: tree-sitter gernerate --- src/grammar.json | 100 +- src/node-types.json | 78 +- src/parser.c | 4351 +++++++++++++++++++++----------------- src/tree_sitter/alloc.h | 8 +- src/tree_sitter/array.h | 184 +- src/tree_sitter/parser.h | 35 +- 6 files changed, 2771 insertions(+), 1985 deletions(-) diff --git a/src/grammar.json b/src/grammar.json index a75664ba..8351d7b6 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -1,4 +1,5 @@ { + "$schema": "https://tree-sitter.github.io/tree-sitter/assets/schemas/grammar.schema.json", "name": "asm", "rules": { "program": { @@ -562,24 +563,94 @@ "type": "SEQ", "members": [ { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "int" - }, - { - "type": "BLANK" - } - ] + "type": "FIELD", + "name": "disp", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "int" + }, + { + "type": "BLANK" + } + ] + } }, { "type": "STRING", "value": "(" }, { - "type": "SYMBOL", - "name": "reg" + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "base", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "reg" + }, + { + "type": "BLANK" + } + ] + } + }, + { + "type": "STRING", + "value": "," + }, + { + "type": "FIELD", + "name": "index", + "content": { + "type": "SYMBOL", + "name": "reg" + } + }, + { + "type": "STRING", + "value": "," + }, + { + "type": "FIELD", + "name": "scale", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "1" + }, + { + "type": "STRING", + "value": "2" + }, + { + "type": "STRING", + "value": "4" + }, + { + "type": "STRING", + "value": "8" + } + ] + }, + { + "type": "BLANK" + } + ] + } + } + ] }, { "type": "STRING", @@ -1119,5 +1190,6 @@ "precedences": [], "externals": [], "inline": [], - "supertypes": [] -} + "supertypes": [], + "reserved": {} +} \ No newline at end of file diff --git a/src/node-types.json b/src/node-types.json index 80b1f8e6..41c16ec2 100644 --- a/src/node-types.json +++ b/src/node-types.json @@ -148,6 +148,7 @@ { "type": "line_comment", "named": true, + "extra": true, "fields": {} }, { @@ -206,6 +207,7 @@ { "type": "program", "named": true, + "root": true, "fields": {}, "children": { "multiple": true, @@ -233,10 +235,63 @@ { "type": "ptr", "named": true, - "fields": {}, + "fields": { + "base": { + "multiple": false, + "required": false, + "types": [ + { + "type": "reg", + "named": true + } + ] + }, + "disp": { + "multiple": false, + "required": false, + "types": [ + { + "type": "int", + "named": true + } + ] + }, + "index": { + "multiple": false, + "required": false, + "types": [ + { + "type": "reg", + "named": true + } + ] + }, + "scale": { + "multiple": false, + "required": false, + "types": [ + { + "type": "1", + "named": false + }, + { + "type": "2", + "named": false + }, + { + "type": "4", + "named": false + }, + { + "type": "8", + "named": false + } + ] + } + }, "children": { "multiple": true, - "required": true, + "required": false, "types": [ { "type": "ident", @@ -413,6 +468,22 @@ "type": "/", "named": false }, + { + "type": "1", + "named": false + }, + { + "type": "2", + "named": false + }, + { + "type": "4", + "named": false + }, + { + "type": "8", + "named": false + }, { "type": ":", "named": false @@ -435,7 +506,8 @@ }, { "type": "block_comment", - "named": true + "named": true, + "extra": true }, { "type": "byte", diff --git a/src/parser.c b/src/parser.c index 3a8c319c..516956ec 100644 --- a/src/parser.c +++ b/src/parser.c @@ -1,19 +1,23 @@ +/* Automatically @generated by tree-sitter */ + #include "tree_sitter/parser.h" #if defined(__GNUC__) || defined(__clang__) #pragma GCC diagnostic ignored "-Wmissing-field-initializers" #endif -#define LANGUAGE_VERSION 14 -#define STATE_COUNT 137 -#define LARGE_STATE_COUNT 3 -#define SYMBOL_COUNT 65 +#define LANGUAGE_VERSION 15 +#define STATE_COUNT 160 +#define LARGE_STATE_COUNT 2 +#define SYMBOL_COUNT 69 #define ALIAS_COUNT 0 -#define TOKEN_COUNT 41 +#define TOKEN_COUNT 45 #define EXTERNAL_TOKEN_COUNT 0 -#define FIELD_COUNT 6 -#define MAX_ALIAS_SEQUENCE_LENGTH 7 -#define PRODUCTION_ID_COUNT 6 +#define FIELD_COUNT 10 +#define MAX_ALIAS_SEQUENCE_LENGTH 8 +#define MAX_RESERVED_WORD_SET_SIZE 0 +#define PRODUCTION_ID_COUNT 14 +#define SUPERTYPE_COUNT 0 enum ts_symbol_identifiers { anon_sym_LF = 1, @@ -34,52 +38,56 @@ enum ts_symbol_identifiers { anon_sym_LBRACK = 16, anon_sym_PLUS = 17, anon_sym_RBRACK = 18, - anon_sym_STAR = 19, - anon_sym_rel = 20, - anon_sym_BANG = 21, - anon_sym_SLASH = 22, - anon_sym_PERCENT = 23, - anon_sym_PIPE = 24, - anon_sym_CARET = 25, - anon_sym_AMP = 26, - anon_sym_POUND = 27, - aux_sym_int_token1 = 28, - aux_sym_int_token2 = 29, - sym_float = 30, - aux_sym_string_token1 = 31, - aux_sym_string_token2 = 32, - sym_word = 33, - sym__reg = 34, - sym_address = 35, - sym_meta_ident = 36, - sym__ident = 37, - aux_sym_line_comment_token1 = 38, - aux_sym_line_comment_token2 = 39, - sym_block_comment = 40, - sym_program = 41, - sym__item = 42, - sym_meta = 43, - sym_label = 44, - sym_const = 45, - sym_instruction = 46, - sym__expr = 47, - sym_list = 48, - sym_ptr = 49, - sym__tc_expr = 50, - sym_tc_infix = 51, - sym_int = 52, - sym_string = 53, - sym_reg = 54, - sym_ident = 55, - sym_line_comment = 56, - aux_sym_program_repeat1 = 57, - aux_sym_program_repeat2 = 58, - aux_sym_meta_repeat1 = 59, - aux_sym_meta_repeat2 = 60, - aux_sym_meta_repeat3 = 61, - aux_sym_instruction_repeat1 = 62, - aux_sym_instruction_repeat2 = 63, - aux_sym_list_repeat1 = 64, + anon_sym_1 = 19, + anon_sym_2 = 20, + anon_sym_4 = 21, + anon_sym_8 = 22, + anon_sym_STAR = 23, + anon_sym_rel = 24, + anon_sym_BANG = 25, + anon_sym_SLASH = 26, + anon_sym_PERCENT = 27, + anon_sym_PIPE = 28, + anon_sym_CARET = 29, + anon_sym_AMP = 30, + anon_sym_POUND = 31, + aux_sym_int_token1 = 32, + aux_sym_int_token2 = 33, + sym_float = 34, + aux_sym_string_token1 = 35, + aux_sym_string_token2 = 36, + sym_word = 37, + sym__reg = 38, + sym_address = 39, + sym_meta_ident = 40, + sym__ident = 41, + aux_sym_line_comment_token1 = 42, + aux_sym_line_comment_token2 = 43, + sym_block_comment = 44, + sym_program = 45, + sym__item = 46, + sym_meta = 47, + sym_label = 48, + sym_const = 49, + sym_instruction = 50, + sym__expr = 51, + sym_list = 52, + sym_ptr = 53, + sym__tc_expr = 54, + sym_tc_infix = 55, + sym_int = 56, + sym_string = 57, + sym_reg = 58, + sym_ident = 59, + sym_line_comment = 60, + aux_sym_program_repeat1 = 61, + aux_sym_program_repeat2 = 62, + aux_sym_meta_repeat1 = 63, + aux_sym_meta_repeat2 = 64, + aux_sym_meta_repeat3 = 65, + aux_sym_instruction_repeat1 = 66, + aux_sym_instruction_repeat2 = 67, + aux_sym_list_repeat1 = 68, }; static const char * const ts_symbol_names[] = { @@ -102,6 +110,10 @@ static const char * const ts_symbol_names[] = { [anon_sym_LBRACK] = "[", [anon_sym_PLUS] = "+", [anon_sym_RBRACK] = "]", + [anon_sym_1] = "1", + [anon_sym_2] = "2", + [anon_sym_4] = "4", + [anon_sym_8] = "8", [anon_sym_STAR] = "*", [anon_sym_rel] = "rel", [anon_sym_BANG] = "!", @@ -170,6 +182,10 @@ static const TSSymbol ts_symbol_map[] = { [anon_sym_LBRACK] = anon_sym_LBRACK, [anon_sym_PLUS] = anon_sym_PLUS, [anon_sym_RBRACK] = anon_sym_RBRACK, + [anon_sym_1] = anon_sym_1, + [anon_sym_2] = anon_sym_2, + [anon_sym_4] = anon_sym_4, + [anon_sym_8] = anon_sym_8, [anon_sym_STAR] = anon_sym_STAR, [anon_sym_rel] = anon_sym_rel, [anon_sym_BANG] = anon_sym_BANG, @@ -295,6 +311,22 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = false, }, + [anon_sym_1] = { + .visible = true, + .named = false, + }, + [anon_sym_2] = { + .visible = true, + .named = false, + }, + [anon_sym_4] = { + .visible = true, + .named = false, + }, + [anon_sym_8] = { + .visible = true, + .named = false, + }, [anon_sym_STAR] = { .visible = true, .named = false, @@ -482,29 +514,45 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { }; enum ts_field_identifiers { - field_kind = 1, - field_lhs = 2, - field_name = 3, - field_op = 4, - field_rhs = 5, - field_value = 6, + field_base = 1, + field_disp = 2, + field_index = 3, + field_kind = 4, + field_lhs = 5, + field_name = 6, + field_op = 7, + field_rhs = 8, + field_scale = 9, + field_value = 10, }; static const char * const ts_field_names[] = { [0] = NULL, + [field_base] = "base", + [field_disp] = "disp", + [field_index] = "index", [field_kind] = "kind", [field_lhs] = "lhs", [field_name] = "name", [field_op] = "op", [field_rhs] = "rhs", + [field_scale] = "scale", [field_value] = "value", }; -static const TSFieldMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { +static const TSMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { [1] = {.index = 0, .length = 1}, [2] = {.index = 1, .length = 1}, [4] = {.index = 2, .length = 2}, [5] = {.index = 4, .length = 3}, + [6] = {.index = 7, .length = 1}, + [7] = {.index = 8, .length = 2}, + [8] = {.index = 10, .length = 2}, + [9] = {.index = 12, .length = 2}, + [10] = {.index = 14, .length = 3}, + [11] = {.index = 17, .length = 3}, + [12] = {.index = 20, .length = 3}, + [13] = {.index = 23, .length = 4}, }; static const TSFieldMapEntry ts_field_map_entries[] = { @@ -519,6 +567,34 @@ static const TSFieldMapEntry ts_field_map_entries[] = { {field_lhs, 0}, {field_op, 1}, {field_rhs, 2}, + [7] = + {field_index, 2}, + [8] = + {field_index, 2}, + {field_scale, 4}, + [10] = + {field_base, 1}, + {field_index, 3}, + [12] = + {field_disp, 0}, + {field_index, 3}, + [14] = + {field_base, 1}, + {field_index, 3}, + {field_scale, 5}, + [17] = + {field_disp, 0}, + {field_index, 3}, + {field_scale, 5}, + [20] = + {field_base, 2}, + {field_disp, 0}, + {field_index, 4}, + [23] = + {field_base, 2}, + {field_disp, 0}, + {field_index, 4}, + {field_scale, 6}, }; static const TSSymbol ts_alias_sequences[PRODUCTION_ID_COUNT][MAX_ALIAS_SEQUENCE_LENGTH] = { @@ -562,27 +638,27 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [26] = 26, [27] = 27, [28] = 28, - [29] = 26, - [30] = 25, - [31] = 24, - [32] = 32, - [33] = 27, - [34] = 28, - [35] = 9, - [36] = 8, + [29] = 29, + [30] = 27, + [31] = 29, + [32] = 28, + [33] = 10, + [34] = 26, + [35] = 25, + [36] = 36, [37] = 37, - [38] = 38, - [39] = 6, - [40] = 11, + [38] = 6, + [39] = 11, + [40] = 8, [41] = 41, - [42] = 12, - [43] = 17, - [44] = 19, - [45] = 16, - [46] = 46, - [47] = 13, - [48] = 14, - [49] = 15, + [42] = 9, + [43] = 19, + [44] = 44, + [45] = 15, + [46] = 14, + [47] = 16, + [48] = 17, + [49] = 18, [50] = 50, [51] = 51, [52] = 52, @@ -667,9 +743,32 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [131] = 131, [132] = 132, [133] = 133, - [134] = 125, + [134] = 134, [135] = 135, [136] = 136, + [137] = 137, + [138] = 138, + [139] = 139, + [140] = 140, + [141] = 141, + [142] = 142, + [143] = 143, + [144] = 144, + [145] = 145, + [146] = 146, + [147] = 147, + [148] = 148, + [149] = 149, + [150] = 150, + [151] = 151, + [152] = 152, + [153] = 153, + [154] = 154, + [155] = 155, + [156] = 156, + [157] = 138, + [158] = 158, + [159] = 159, }; static bool ts_lex(TSLexer *lexer, TSStateId state) { @@ -677,1233 +776,1295 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { eof = lexer->eof(lexer); switch (state) { case 0: - if (eof) ADVANCE(30); + if (eof) ADVANCE(31); ADVANCE_MAP( - '\n', 31, - '!', 58, + '\n', 32, + '!', 67, '"', 1, - '#', 65, - '$', 19, - '%', 60, - '&', 64, - '\'', 9, - '(', 34, - ')', 35, - '*', 55, - '+', 53, - ',', 32, - '-', 40, - '.', 147, - '/', 59, - '0', 74, - ':', 33, - ';', 154, - '=', 24, - '[', 52, - ']', 54, - '^', 63, - 'b', 134, - 'c', 110, - 'd', 129, - 'l', 95, - 'p', 125, - 'q', 130, - 'r', 103, - 'w', 112, - '{', 38, - '|', 62, - '}', 41, + '#', 74, + '$', 20, + '%', 69, + '&', 73, + '\'', 10, + '(', 35, + ')', 36, + '*', 64, + '+', 54, + ',', 33, + '-', 41, + '.', 156, + '/', 68, + '0', 83, + '1', 57, + '2', 59, + '4', 61, + '8', 63, + ':', 34, + ';', 163, + '=', 25, + '[', 53, + ']', 55, + '^', 72, + 'b', 143, + 'c', 119, + 'd', 138, + 'l', 104, + 'p', 134, + 'q', 139, + 'r', 112, + 'w', 121, + '{', 39, + '|', 71, + '}', 42, ); if (lookahead == '\t' || lookahead == '\r' || lookahead == ' ') SKIP(0); - if (('1' <= lookahead && lookahead <= '9')) ADVANCE(77); + if (('3' <= lookahead && lookahead <= '9')) ADVANCE(86); if (('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); case 1: - if (lookahead == '"') ADVANCE(93); + if (lookahead == '"') ADVANCE(102); if (lookahead != 0) ADVANCE(1); END_STATE(); case 2: - ADVANCE_MAP( - '#', 65, - '$', 20, - '-', 6, - '/', 10, - '0', 84, - ';', 154, - 'p', 16, - 'r', 13, - ); + if (lookahead == '#') ADVANCE(74); + if (lookahead == '$') ADVANCE(21); + if (lookahead == '-') ADVANCE(7); + if (lookahead == '/') ADVANCE(11); + if (lookahead == '0') ADVANCE(93); + if (lookahead == ';') ADVANCE(163); if (lookahead == '\t' || lookahead == '\r' || lookahead == ' ') SKIP(2); - if (('1' <= lookahead && lookahead <= '9')) ADVANCE(86); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(95); END_STATE(); case 3: - if (lookahead == '#') ADVANCE(65); - if (lookahead == '$') ADVANCE(21); - if (lookahead == '-') ADVANCE(8); - if (lookahead == '/') ADVANCE(10); - if (lookahead == '0') ADVANCE(67); - if (lookahead == ';') ADVANCE(154); + if (lookahead == '#') ADVANCE(74); + if (lookahead == '$') ADVANCE(22); + if (lookahead == '-') ADVANCE(9); + if (lookahead == '/') ADVANCE(11); + if (lookahead == '0') ADVANCE(76); + if (lookahead == ';') ADVANCE(163); if (lookahead == '\t' || lookahead == '\r' || - lookahead == ' ') SKIP(5); - if (('1' <= lookahead && lookahead <= '9')) ADVANCE(69); + lookahead == ' ') SKIP(6); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(78); END_STATE(); case 4: - if (lookahead == '#') ADVANCE(65); - if (lookahead == '%') ADVANCE(23); - if (lookahead == '.') ADVANCE(147); - if (lookahead == '/') ADVANCE(10); - if (lookahead == ';') ADVANCE(154); + if (lookahead == '#') ADVANCE(74); + if (lookahead == '%') ADVANCE(24); + if (lookahead == '.') ADVANCE(156); + if (lookahead == '/') ADVANCE(11); + if (lookahead == ';') ADVANCE(163); if (lookahead == '$' || - lookahead == '=') ADVANCE(24); + lookahead == '=') ADVANCE(25); if (lookahead == '\t' || lookahead == '\r' || lookahead == ' ') SKIP(4); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(149); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); END_STATE(); case 5: - if (lookahead == '#') ADVANCE(65); - if (lookahead == '/') ADVANCE(10); - if (lookahead == ';') ADVANCE(154); + ADVANCE_MAP( + '#', 74, + ')', 36, + '/', 11, + '1', 56, + '2', 58, + '4', 60, + '8', 62, + ';', 163, + 'p', 17, + 'r', 14, + ); if (lookahead == '\t' || lookahead == '\r' || lookahead == ' ') SKIP(5); END_STATE(); case 6: - if (lookahead == '$') ADVANCE(20); - if (lookahead == '0') ADVANCE(84); - if (('1' <= lookahead && lookahead <= '9')) ADVANCE(86); + if (lookahead == '#') ADVANCE(74); + if (lookahead == '/') ADVANCE(11); + if (lookahead == ';') ADVANCE(163); + if (lookahead == '\t' || + lookahead == '\r' || + lookahead == ' ') SKIP(6); END_STATE(); case 7: - if (lookahead == '$') ADVANCE(20); - if (lookahead == '0') ADVANCE(82); - if (('1' <= lookahead && lookahead <= '9')) ADVANCE(83); + if (lookahead == '$') ADVANCE(21); + if (lookahead == '0') ADVANCE(93); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(95); END_STATE(); case 8: if (lookahead == '$') ADVANCE(21); - if (lookahead == '0') ADVANCE(67); - if (('1' <= lookahead && lookahead <= '9')) ADVANCE(69); + if (lookahead == '0') ADVANCE(91); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(92); END_STATE(); case 9: - if (lookahead == '\'') ADVANCE(94); - if (lookahead != 0) ADVANCE(9); + if (lookahead == '$') ADVANCE(22); + if (lookahead == '0') ADVANCE(76); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(78); END_STATE(); case 10: - if (lookahead == '*') ADVANCE(12); - if (lookahead == '/') ADVANCE(154); + if (lookahead == '\'') ADVANCE(103); + if (lookahead != 0) ADVANCE(10); END_STATE(); case 11: - if (lookahead == '*') ADVANCE(11); - if (lookahead == '/') ADVANCE(155); - if (lookahead != 0) ADVANCE(12); + if (lookahead == '*') ADVANCE(13); + if (lookahead == '/') ADVANCE(163); END_STATE(); case 12: - if (lookahead == '*') ADVANCE(11); - if (lookahead != 0) ADVANCE(12); + if (lookahead == '*') ADVANCE(12); + if (lookahead == '/') ADVANCE(164); + if (lookahead != 0) ADVANCE(13); END_STATE(); case 13: - if (lookahead == 'e') ADVANCE(14); + if (lookahead == '*') ADVANCE(12); + if (lookahead != 0) ADVANCE(13); END_STATE(); case 14: - if (lookahead == 'l') ADVANCE(56); + if (lookahead == 'e') ADVANCE(15); END_STATE(); case 15: - if (lookahead == 'r') ADVANCE(50); + if (lookahead == 'l') ADVANCE(65); END_STATE(); case 16: - if (lookahead == 't') ADVANCE(15); + if (lookahead == 'r') ADVANCE(51); END_STATE(); case 17: - if (lookahead == '0' || - lookahead == '1') ADVANCE(85); + if (lookahead == 't') ADVANCE(16); END_STATE(); case 18: if (lookahead == '0' || - lookahead == '1') ADVANCE(68); + lookahead == '1') ADVANCE(94); END_STATE(); case 19: + if (lookahead == '0' || + lookahead == '1') ADVANCE(77); + END_STATE(); + case 20: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || - ('a' <= lookahead && lookahead <= 'f')) ADVANCE(87); + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(96); if (('G' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('g' <= lookahead && lookahead <= 'z')) ADVANCE(144); + ('g' <= lookahead && lookahead <= 'z')) ADVANCE(153); END_STATE(); - case 20: + case 21: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || - ('a' <= lookahead && lookahead <= 'f')) ADVANCE(88); + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(97); END_STATE(); - case 21: + case 22: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || - ('a' <= lookahead && lookahead <= 'f')) ADVANCE(70); + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(79); END_STATE(); - case 22: + case 23: if (lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(146); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(155); END_STATE(); - case 23: + case 24: if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(143); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(152); END_STATE(); - case 24: + case 25: if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(144); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(153); END_STATE(); - case 25: - if (eof) ADVANCE(30); + case 26: + if (eof) ADVANCE(31); ADVANCE_MAP( - '\n', 31, + '\n', 32, '"', 1, - '#', 65, - '$', 19, - '%', 23, - '\'', 9, - '(', 34, - '*', 55, - '-', 7, - '.', 147, - '/', 10, - '0', 79, - ':', 33, - ';', 154, - '=', 24, - '[', 52, - 'b', 133, - 'd', 131, - 'q', 132, - 'w', 111, - '{', 38, + '#', 74, + '$', 20, + '%', 24, + '\'', 10, + '(', 35, + '*', 64, + '-', 8, + '.', 156, + '/', 11, + '0', 88, + ':', 34, + ';', 163, + '=', 25, + '[', 53, + 'b', 142, + 'd', 140, + 'q', 141, + 'w', 120, + '{', 39, ); if (lookahead == '\t' || lookahead == '\r' || - lookahead == ' ') SKIP(25); - if (('1' <= lookahead && lookahead <= '9')) ADVANCE(80); - if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + lookahead == ' ') SKIP(26); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(89); + if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(149); END_STATE(); - case 26: - if (eof) ADVANCE(30); + case 27: + if (eof) ADVANCE(31); ADVANCE_MAP( - '\n', 31, + '\n', 32, '"', 1, - '#', 65, - '$', 19, - '%', 23, - '\'', 9, - '-', 7, - '.', 147, - '/', 10, - '0', 79, - ':', 33, - ';', 154, - '=', 24, + '#', 74, + '$', 20, + '%', 24, + '\'', 10, + '-', 8, + '.', 156, + '/', 11, + '0', 88, + ':', 34, + ';', 163, + '=', 25, ); if (lookahead == '\t' || lookahead == '\r' || - lookahead == ' ') SKIP(26); - if (('1' <= lookahead && lookahead <= '9')) ADVANCE(80); - if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + lookahead == ' ') SKIP(27); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(89); + if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(149); END_STATE(); - case 27: - if (eof) ADVANCE(30); + case 28: + if (eof) ADVANCE(31); ADVANCE_MAP( - '\n', 31, + '\n', 32, '"', 1, - '#', 65, - '$', 19, - '%', 61, - '&', 64, - '\'', 9, - '(', 34, - '*', 55, - '+', 53, - ',', 32, - '-', 40, - '.', 147, - '/', 59, - '0', 71, - ';', 154, - '=', 24, - '^', 63, - '|', 62, + '#', 74, + '$', 20, + '%', 70, + '&', 73, + '\'', 10, + '(', 35, + '*', 64, + '+', 54, + ',', 33, + '-', 41, + '.', 156, + '/', 68, + '0', 80, + ';', 163, + '=', 25, + '^', 72, + '|', 71, ); if (lookahead == '\t' || lookahead == '\r' || - lookahead == ' ') SKIP(27); - if (('1' <= lookahead && lookahead <= '9')) ADVANCE(72); - if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + lookahead == ' ') SKIP(28); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(81); + if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(149); END_STATE(); - case 28: - if (eof) ADVANCE(30); + case 29: + if (eof) ADVANCE(31); ADVANCE_MAP( - '\n', 31, - '#', 65, - '%', 60, - '&', 64, - '(', 34, - ')', 35, - '*', 55, - '+', 53, - ',', 32, - '-', 39, - '.', 147, - '/', 59, - ';', 154, - ']', 54, - '^', 63, - 'c', 110, - 'l', 95, - '|', 62, - '}', 41, + '\n', 32, + '#', 74, + '%', 69, + '&', 73, + '(', 35, + ')', 36, + '*', 64, + '+', 54, + ',', 33, + '-', 40, + '.', 156, + '/', 68, + ';', 163, + ']', 55, + '^', 72, + 'c', 119, + 'l', 104, + '|', 71, + '}', 42, ); if (lookahead == '\t' || lookahead == '\r' || - lookahead == ' ') SKIP(28); + lookahead == ' ') SKIP(29); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 29: - if (eof) ADVANCE(30); + case 30: + if (eof) ADVANCE(31); ADVANCE_MAP( - '\n', 31, - '#', 65, - '%', 23, - '(', 34, - '.', 22, - '/', 10, - ';', 154, - '}', 41, - '$', 24, - '=', 24, + '\n', 32, + '#', 74, + '%', 24, + '(', 35, + ',', 33, + '.', 23, + '/', 11, + ';', 163, + '}', 42, + '$', 25, + '=', 25, ); if (lookahead == '\t' || lookahead == '\r' || - lookahead == ' ') SKIP(29); + lookahead == ' ') SKIP(30); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(142); + lookahead == '_') ADVANCE(151); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(141); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(150); END_STATE(); - case 30: + case 31: ACCEPT_TOKEN(ts_builtin_sym_end); END_STATE(); - case 31: + case 32: ACCEPT_TOKEN(anon_sym_LF); END_STATE(); - case 32: + case 33: ACCEPT_TOKEN(anon_sym_COMMA); END_STATE(); - case 33: + case 34: ACCEPT_TOKEN(anon_sym_COLON); END_STATE(); - case 34: + case 35: ACCEPT_TOKEN(anon_sym_LPAREN); END_STATE(); - case 35: + case 36: ACCEPT_TOKEN(anon_sym_RPAREN); END_STATE(); - case 36: + case 37: ACCEPT_TOKEN(anon_sym_label); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(157); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 37: + case 38: ACCEPT_TOKEN(anon_sym_const); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(157); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); - END_STATE(); - case 38: - ACCEPT_TOKEN(anon_sym_LBRACE); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); case 39: - ACCEPT_TOKEN(anon_sym_DASH); + ACCEPT_TOKEN(anon_sym_LBRACE); END_STATE(); case 40: ACCEPT_TOKEN(anon_sym_DASH); - if (lookahead == '$') ADVANCE(20); - if (lookahead == '0') ADVANCE(84); - if (('1' <= lookahead && lookahead <= '9')) ADVANCE(86); END_STATE(); case 41: - ACCEPT_TOKEN(anon_sym_RBRACE); + ACCEPT_TOKEN(anon_sym_DASH); + if (lookahead == '$') ADVANCE(21); + if (lookahead == '0') ADVANCE(93); + if (('1' <= lookahead && lookahead <= '9')) ADVANCE(95); END_STATE(); case 42: + ACCEPT_TOKEN(anon_sym_RBRACE); + END_STATE(); + case 43: ACCEPT_TOKEN(anon_sym_byte); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(157); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(149); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); END_STATE(); - case 43: + case 44: ACCEPT_TOKEN(anon_sym_byte); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(157); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 44: + case 45: ACCEPT_TOKEN(anon_sym_word); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(157); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(149); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); END_STATE(); - case 45: + case 46: ACCEPT_TOKEN(anon_sym_word); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(157); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 46: + case 47: ACCEPT_TOKEN(anon_sym_dword); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(157); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(149); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); END_STATE(); - case 47: + case 48: ACCEPT_TOKEN(anon_sym_dword); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(157); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 48: + case 49: ACCEPT_TOKEN(anon_sym_qword); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(157); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(149); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); END_STATE(); - case 49: + case 50: ACCEPT_TOKEN(anon_sym_qword); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(157); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 50: + case 51: ACCEPT_TOKEN(anon_sym_ptr); END_STATE(); - case 51: + case 52: ACCEPT_TOKEN(anon_sym_ptr); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(157); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 52: + case 53: ACCEPT_TOKEN(anon_sym_LBRACK); END_STATE(); - case 53: + case 54: ACCEPT_TOKEN(anon_sym_PLUS); END_STATE(); - case 54: + case 55: ACCEPT_TOKEN(anon_sym_RBRACK); END_STATE(); - case 55: + case 56: + ACCEPT_TOKEN(anon_sym_1); + END_STATE(); + case 57: + ACCEPT_TOKEN(anon_sym_1); + if (lookahead == '.') ADVANCE(157); + if (('0' <= lookahead && lookahead <= '9') || + lookahead == '_') ADVANCE(86); + if (('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); + END_STATE(); + case 58: + ACCEPT_TOKEN(anon_sym_2); + END_STATE(); + case 59: + ACCEPT_TOKEN(anon_sym_2); + if (lookahead == '.') ADVANCE(157); + if (('0' <= lookahead && lookahead <= '9') || + lookahead == '_') ADVANCE(86); + if (('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); + END_STATE(); + case 60: + ACCEPT_TOKEN(anon_sym_4); + END_STATE(); + case 61: + ACCEPT_TOKEN(anon_sym_4); + if (lookahead == '.') ADVANCE(157); + if (('0' <= lookahead && lookahead <= '9') || + lookahead == '_') ADVANCE(86); + if (('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); + END_STATE(); + case 62: + ACCEPT_TOKEN(anon_sym_8); + END_STATE(); + case 63: + ACCEPT_TOKEN(anon_sym_8); + if (lookahead == '.') ADVANCE(157); + if (('0' <= lookahead && lookahead <= '9') || + lookahead == '_') ADVANCE(86); + if (('A' <= lookahead && lookahead <= 'Z') || + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); + END_STATE(); + case 64: ACCEPT_TOKEN(anon_sym_STAR); END_STATE(); - case 56: + case 65: ACCEPT_TOKEN(anon_sym_rel); END_STATE(); - case 57: + case 66: ACCEPT_TOKEN(anon_sym_rel); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(157); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 58: + case 67: ACCEPT_TOKEN(anon_sym_BANG); END_STATE(); - case 59: + case 68: ACCEPT_TOKEN(anon_sym_SLASH); - if (lookahead == '*') ADVANCE(12); - if (lookahead == '/') ADVANCE(154); + if (lookahead == '*') ADVANCE(13); + if (lookahead == '/') ADVANCE(163); END_STATE(); - case 60: + case 69: ACCEPT_TOKEN(anon_sym_PERCENT); END_STATE(); - case 61: + case 70: ACCEPT_TOKEN(anon_sym_PERCENT); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(143); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(152); END_STATE(); - case 62: + case 71: ACCEPT_TOKEN(anon_sym_PIPE); END_STATE(); - case 63: + case 72: ACCEPT_TOKEN(anon_sym_CARET); END_STATE(); - case 64: + case 73: ACCEPT_TOKEN(anon_sym_AMP); END_STATE(); - case 65: + case 74: ACCEPT_TOKEN(anon_sym_POUND); END_STATE(); - case 66: + case 75: ACCEPT_TOKEN(anon_sym_POUND); if (lookahead != 0 && - lookahead != '\n') ADVANCE(153); + lookahead != '\n') ADVANCE(162); END_STATE(); - case 67: + case 76: ACCEPT_TOKEN(aux_sym_int_token1); - if (lookahead == 'b') ADVANCE(18); - if (lookahead == 'x') ADVANCE(21); + if (lookahead == 'b') ADVANCE(19); + if (lookahead == 'x') ADVANCE(22); if (('0' <= lookahead && lookahead <= '9') || - lookahead == '_') ADVANCE(69); + lookahead == '_') ADVANCE(78); END_STATE(); - case 68: + case 77: ACCEPT_TOKEN(aux_sym_int_token1); if (lookahead == '0' || lookahead == '1' || - lookahead == '_') ADVANCE(68); + lookahead == '_') ADVANCE(77); END_STATE(); - case 69: + case 78: ACCEPT_TOKEN(aux_sym_int_token1); if (('0' <= lookahead && lookahead <= '9') || - lookahead == '_') ADVANCE(69); + lookahead == '_') ADVANCE(78); END_STATE(); - case 70: + case 79: ACCEPT_TOKEN(aux_sym_int_token1); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'f')) ADVANCE(70); + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(79); END_STATE(); - case 71: + case 80: ACCEPT_TOKEN(aux_sym_int_token2); - if (lookahead == '.') ADVANCE(148); - if (lookahead == '_') ADVANCE(77); - if (lookahead == 'b') ADVANCE(136); - if (lookahead == 'x') ADVANCE(137); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(72); - if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); - if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(140); + if (lookahead == '.') ADVANCE(157); + if (lookahead == '_') ADVANCE(86); + if (lookahead == 'b') ADVANCE(145); + if (lookahead == 'x') ADVANCE(146); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(81); + if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); + if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(149); END_STATE(); - case 72: + case 81: ACCEPT_TOKEN(aux_sym_int_token2); - if (lookahead == '.') ADVANCE(148); - if (lookahead == '_') ADVANCE(77); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(72); - if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(140); - if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + if (lookahead == '.') ADVANCE(157); + if (lookahead == '_') ADVANCE(86); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(81); + if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(149); + if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); END_STATE(); - case 73: + case 82: ACCEPT_TOKEN(aux_sym_int_token2); - if (lookahead == '.') ADVANCE(148); - if (lookahead == '_') ADVANCE(75); + if (lookahead == '.') ADVANCE(157); + if (lookahead == '_') ADVANCE(84); if (lookahead == '0' || - lookahead == '1') ADVANCE(73); - if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(140); + lookahead == '1') ADVANCE(82); + if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(149); if (('2' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); END_STATE(); - case 74: + case 83: ACCEPT_TOKEN(aux_sym_int_token2); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'b') ADVANCE(135); - if (lookahead == 'x') ADVANCE(138); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'b') ADVANCE(144); + if (lookahead == 'x') ADVANCE(147); if (('0' <= lookahead && lookahead <= '9') || - lookahead == '_') ADVANCE(77); + lookahead == '_') ADVANCE(86); if (('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 75: + case 84: ACCEPT_TOKEN(aux_sym_int_token2); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(157); if (lookahead == '0' || lookahead == '1' || - lookahead == '_') ADVANCE(75); + lookahead == '_') ADVANCE(84); if (('2' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 76: + case 85: ACCEPT_TOKEN(aux_sym_int_token2); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(157); if (('A' <= lookahead && lookahead <= 'F') || - lookahead == '_') ADVANCE(78); + lookahead == '_') ADVANCE(87); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'f')) ADVANCE(76); - if (('G' <= lookahead && lookahead <= 'Z')) ADVANCE(140); - if (('g' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(85); + if (('G' <= lookahead && lookahead <= 'Z')) ADVANCE(149); + if (('g' <= lookahead && lookahead <= 'z')) ADVANCE(148); END_STATE(); - case 77: + case 86: ACCEPT_TOKEN(aux_sym_int_token2); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(157); if (('0' <= lookahead && lookahead <= '9') || - lookahead == '_') ADVANCE(77); + lookahead == '_') ADVANCE(86); if (('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 78: + case 87: ACCEPT_TOKEN(aux_sym_int_token2); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(157); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'f')) ADVANCE(78); + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(87); if (('G' <= lookahead && lookahead <= 'Z') || - ('g' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('g' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 79: + case 88: ACCEPT_TOKEN(aux_sym_int_token2); - if (lookahead == '.') ADVANCE(89); - if (lookahead == '_') ADVANCE(81); - if (lookahead == 'b') ADVANCE(136); - if (lookahead == 'x') ADVANCE(137); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(80); - if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); - if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(140); + if (lookahead == '.') ADVANCE(98); + if (lookahead == '_') ADVANCE(90); + if (lookahead == 'b') ADVANCE(145); + if (lookahead == 'x') ADVANCE(146); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(89); + if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); + if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(149); END_STATE(); - case 80: + case 89: ACCEPT_TOKEN(aux_sym_int_token2); - if (lookahead == '.') ADVANCE(89); - if (lookahead == '_') ADVANCE(81); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(80); - if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(140); - if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + if (lookahead == '.') ADVANCE(98); + if (lookahead == '_') ADVANCE(90); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(89); + if (('A' <= lookahead && lookahead <= 'Z')) ADVANCE(149); + if (('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); END_STATE(); - case 81: + case 90: ACCEPT_TOKEN(aux_sym_int_token2); - if (lookahead == '.') ADVANCE(89); + if (lookahead == '.') ADVANCE(98); if (('0' <= lookahead && lookahead <= '9') || - lookahead == '_') ADVANCE(81); + lookahead == '_') ADVANCE(90); if (('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 82: + case 91: ACCEPT_TOKEN(aux_sym_int_token2); - if (lookahead == '.') ADVANCE(90); - if (lookahead == 'b') ADVANCE(17); - if (lookahead == 'x') ADVANCE(20); + if (lookahead == '.') ADVANCE(99); + if (lookahead == 'b') ADVANCE(18); + if (lookahead == 'x') ADVANCE(21); if (('0' <= lookahead && lookahead <= '9') || - lookahead == '_') ADVANCE(83); + lookahead == '_') ADVANCE(92); END_STATE(); - case 83: + case 92: ACCEPT_TOKEN(aux_sym_int_token2); - if (lookahead == '.') ADVANCE(90); + if (lookahead == '.') ADVANCE(99); if (('0' <= lookahead && lookahead <= '9') || - lookahead == '_') ADVANCE(83); + lookahead == '_') ADVANCE(92); END_STATE(); - case 84: + case 93: ACCEPT_TOKEN(aux_sym_int_token2); - if (lookahead == 'b') ADVANCE(17); - if (lookahead == 'x') ADVANCE(20); + if (lookahead == 'b') ADVANCE(18); + if (lookahead == 'x') ADVANCE(21); if (('0' <= lookahead && lookahead <= '9') || - lookahead == '_') ADVANCE(86); + lookahead == '_') ADVANCE(95); END_STATE(); - case 85: + case 94: ACCEPT_TOKEN(aux_sym_int_token2); if (lookahead == '0' || lookahead == '1' || - lookahead == '_') ADVANCE(85); + lookahead == '_') ADVANCE(94); END_STATE(); - case 86: + case 95: ACCEPT_TOKEN(aux_sym_int_token2); if (('0' <= lookahead && lookahead <= '9') || - lookahead == '_') ADVANCE(86); + lookahead == '_') ADVANCE(95); END_STATE(); - case 87: + case 96: ACCEPT_TOKEN(aux_sym_int_token2); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'f')) ADVANCE(87); + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(96); if (('G' <= lookahead && lookahead <= 'Z') || - ('g' <= lookahead && lookahead <= 'z')) ADVANCE(144); + ('g' <= lookahead && lookahead <= 'z')) ADVANCE(153); END_STATE(); - case 88: + case 97: ACCEPT_TOKEN(aux_sym_int_token2); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'f')) ADVANCE(88); + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(97); END_STATE(); - case 89: + case 98: ACCEPT_TOKEN(sym_float); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(91); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(100); if (lookahead == '.' || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(157); END_STATE(); - case 90: + case 99: ACCEPT_TOKEN(sym_float); - if (('0' <= lookahead && lookahead <= '9')) ADVANCE(92); + if (('0' <= lookahead && lookahead <= '9')) ADVANCE(101); END_STATE(); - case 91: + case 100: ACCEPT_TOKEN(sym_float); if (('0' <= lookahead && lookahead <= '9') || - lookahead == '_') ADVANCE(91); + lookahead == '_') ADVANCE(100); if (lookahead == '.' || ('A' <= lookahead && lookahead <= 'Z') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(157); END_STATE(); - case 92: + case 101: ACCEPT_TOKEN(sym_float); if (('0' <= lookahead && lookahead <= '9') || - lookahead == '_') ADVANCE(92); + lookahead == '_') ADVANCE(101); END_STATE(); - case 93: + case 102: ACCEPT_TOKEN(aux_sym_string_token1); END_STATE(); - case 94: + case 103: ACCEPT_TOKEN(aux_sym_string_token2); END_STATE(); - case 95: + case 104: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'a') ADVANCE(96); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'a') ADVANCE(105); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('b' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('b' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 96: + case 105: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'b') ADVANCE(106); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'b') ADVANCE(115); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 97: + case 106: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'd') ADVANCE(45); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'd') ADVANCE(46); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 98: + case 107: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'd') ADVANCE(47); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'd') ADVANCE(48); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 99: + case 108: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'd') ADVANCE(49); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'd') ADVANCE(50); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 100: + case 109: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'd') ADVANCE(44); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'd') ADVANCE(45); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(149); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); END_STATE(); - case 101: + case 110: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'd') ADVANCE(46); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'd') ADVANCE(47); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(149); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); END_STATE(); - case 102: + case 111: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'd') ADVANCE(48); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'd') ADVANCE(49); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(149); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); END_STATE(); - case 103: + case 112: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'e') ADVANCE(107); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'e') ADVANCE(116); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 104: + case 113: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'e') ADVANCE(43); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'e') ADVANCE(44); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 105: + case 114: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'e') ADVANCE(42); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'e') ADVANCE(43); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(149); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); END_STATE(); - case 106: + case 115: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'e') ADVANCE(108); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'e') ADVANCE(117); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 107: + case 116: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'l') ADVANCE(57); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'l') ADVANCE(66); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 108: + case 117: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'l') ADVANCE(36); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'l') ADVANCE(37); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 109: + case 118: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'n') ADVANCE(124); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'n') ADVANCE(133); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 110: + case 119: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'o') ADVANCE(109); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'o') ADVANCE(118); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 111: + case 120: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'o') ADVANCE(119); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'o') ADVANCE(128); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(149); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); END_STATE(); - case 112: + case 121: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'o') ADVANCE(118); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'o') ADVANCE(127); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 113: + case 122: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'o') ADVANCE(120); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'o') ADVANCE(129); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 114: + case 123: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'o') ADVANCE(122); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'o') ADVANCE(131); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 115: + case 124: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'o') ADVANCE(121); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'o') ADVANCE(130); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(149); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); END_STATE(); - case 116: + case 125: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'o') ADVANCE(123); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'o') ADVANCE(132); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(149); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); END_STATE(); - case 117: + case 126: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'r') ADVANCE(51); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'r') ADVANCE(52); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 118: + case 127: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'r') ADVANCE(97); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'r') ADVANCE(106); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 119: + case 128: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'r') ADVANCE(100); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'r') ADVANCE(109); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(149); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); END_STATE(); - case 120: + case 129: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'r') ADVANCE(98); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'r') ADVANCE(107); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 121: + case 130: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'r') ADVANCE(101); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'r') ADVANCE(110); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(149); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); END_STATE(); - case 122: + case 131: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'r') ADVANCE(99); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'r') ADVANCE(108); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 123: + case 132: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'r') ADVANCE(102); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'r') ADVANCE(111); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(149); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); END_STATE(); - case 124: + case 133: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 's') ADVANCE(126); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 's') ADVANCE(135); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 125: + case 134: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 't') ADVANCE(117); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 't') ADVANCE(126); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 126: + case 135: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 't') ADVANCE(37); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 't') ADVANCE(38); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 127: + case 136: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 't') ADVANCE(105); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 't') ADVANCE(114); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(149); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); END_STATE(); - case 128: + case 137: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 't') ADVANCE(104); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 't') ADVANCE(113); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 129: + case 138: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'w') ADVANCE(113); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'w') ADVANCE(122); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 130: + case 139: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'w') ADVANCE(114); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'w') ADVANCE(123); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 131: + case 140: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'w') ADVANCE(115); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'w') ADVANCE(124); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(149); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); END_STATE(); - case 132: + case 141: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'w') ADVANCE(116); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'w') ADVANCE(125); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(149); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); END_STATE(); - case 133: + case 142: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'y') ADVANCE(127); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'y') ADVANCE(136); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(149); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); END_STATE(); - case 134: + case 143: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (lookahead == 'y') ADVANCE(128); + if (lookahead == '.') ADVANCE(157); + if (lookahead == 'y') ADVANCE(137); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 135: + case 144: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(157); if (lookahead == '0' || - lookahead == '1') ADVANCE(75); + lookahead == '1') ADVANCE(84); if (('2' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 136: + case 145: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(157); if (lookahead == '0' || - lookahead == '1') ADVANCE(73); + lookahead == '1') ADVANCE(82); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(149); if (('2' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); END_STATE(); - case 137: + case 146: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); - if (('A' <= lookahead && lookahead <= 'F')) ADVANCE(78); + if (lookahead == '.') ADVANCE(157); + if (('A' <= lookahead && lookahead <= 'F')) ADVANCE(87); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'f')) ADVANCE(76); - if (('g' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(85); + if (('g' <= lookahead && lookahead <= 'z')) ADVANCE(148); if (('G' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(149); END_STATE(); - case 138: + case 147: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(157); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'F') || - ('a' <= lookahead && lookahead <= 'f')) ADVANCE(78); + ('a' <= lookahead && lookahead <= 'f')) ADVANCE(87); if (('G' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('g' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('g' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 139: + case 148: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(157); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(140); + lookahead == '_') ADVANCE(149); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(139); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); END_STATE(); - case 140: + case 149: ACCEPT_TOKEN(sym_word); - if (lookahead == '.') ADVANCE(148); + if (lookahead == '.') ADVANCE(157); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(140); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(149); END_STATE(); - case 141: + case 150: ACCEPT_TOKEN(sym_word); if (('A' <= lookahead && lookahead <= 'Z') || - lookahead == '_') ADVANCE(142); + lookahead == '_') ADVANCE(151); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(141); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(150); END_STATE(); - case 142: + case 151: ACCEPT_TOKEN(sym_word); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(142); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(151); END_STATE(); - case 143: + case 152: ACCEPT_TOKEN(sym__reg); if (('0' <= lookahead && lookahead <= '9') || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(143); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(152); END_STATE(); - case 144: + case 153: ACCEPT_TOKEN(sym_address); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(144); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(153); END_STATE(); - case 145: + case 154: ACCEPT_TOKEN(sym_meta_ident); if (lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(145); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(154); if (lookahead == '.' || ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z')) ADVANCE(148); + ('A' <= lookahead && lookahead <= 'Z')) ADVANCE(157); END_STATE(); - case 146: + case 155: ACCEPT_TOKEN(sym_meta_ident); if (lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(146); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(155); END_STATE(); - case 147: + case 156: ACCEPT_TOKEN(sym__ident); if (lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(145); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(154); if (lookahead == '.' || ('0' <= lookahead && lookahead <= '9') || - ('A' <= lookahead && lookahead <= 'Z')) ADVANCE(148); + ('A' <= lookahead && lookahead <= 'Z')) ADVANCE(157); END_STATE(); - case 148: + case 157: ACCEPT_TOKEN(sym__ident); if (lookahead == '.' || ('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || - ('a' <= lookahead && lookahead <= 'z')) ADVANCE(148); + ('a' <= lookahead && lookahead <= 'z')) ADVANCE(157); END_STATE(); - case 149: + case 158: ACCEPT_TOKEN(aux_sym_line_comment_token1); - if (lookahead == '\n') ADVANCE(12); - if (lookahead == '*') ADVANCE(149); - if (lookahead == '/') ADVANCE(153); - if (lookahead != 0) ADVANCE(150); + if (lookahead == '\n') ADVANCE(13); + if (lookahead == '*') ADVANCE(158); + if (lookahead == '/') ADVANCE(162); + if (lookahead != 0) ADVANCE(159); END_STATE(); - case 150: + case 159: ACCEPT_TOKEN(aux_sym_line_comment_token1); - if (lookahead == '\n') ADVANCE(12); - if (lookahead == '*') ADVANCE(149); - if (lookahead != 0) ADVANCE(150); + if (lookahead == '\n') ADVANCE(13); + if (lookahead == '*') ADVANCE(158); + if (lookahead != 0) ADVANCE(159); END_STATE(); - case 151: + case 160: ACCEPT_TOKEN(aux_sym_line_comment_token1); - if (lookahead == '#') ADVANCE(66); - if (lookahead == '/') ADVANCE(152); - if (lookahead == ';') ADVANCE(153); + if (lookahead == '#') ADVANCE(75); + if (lookahead == '/') ADVANCE(161); + if (lookahead == ';') ADVANCE(162); if (lookahead == '\t' || lookahead == '\r' || - lookahead == ' ') ADVANCE(151); + lookahead == ' ') ADVANCE(160); if (lookahead != 0 && lookahead != '\t' && - lookahead != '\n') ADVANCE(153); + lookahead != '\n') ADVANCE(162); END_STATE(); - case 152: + case 161: ACCEPT_TOKEN(aux_sym_line_comment_token1); - if (lookahead == '*') ADVANCE(150); - if (lookahead == '/') ADVANCE(153); + if (lookahead == '*') ADVANCE(159); + if (lookahead == '/') ADVANCE(162); if (lookahead != 0 && - lookahead != '\n') ADVANCE(153); + lookahead != '\n') ADVANCE(162); END_STATE(); - case 153: + case 162: ACCEPT_TOKEN(aux_sym_line_comment_token1); if (lookahead != 0 && - lookahead != '\n') ADVANCE(153); + lookahead != '\n') ADVANCE(162); END_STATE(); - case 154: + case 163: ACCEPT_TOKEN(aux_sym_line_comment_token2); if (lookahead != 0 && - lookahead != '\n') ADVANCE(154); + lookahead != '\n') ADVANCE(163); END_STATE(); - case 155: + case 164: ACCEPT_TOKEN(sym_block_comment); END_STATE(); default: @@ -1911,101 +2072,101 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { } } -static const TSLexMode ts_lex_modes[STATE_COUNT] = { +static const TSLexerMode ts_lex_modes[STATE_COUNT] = { [0] = {.lex_state = 0}, - [1] = {.lex_state = 28}, - [2] = {.lex_state = 25}, - [3] = {.lex_state = 25}, - [4] = {.lex_state = 25}, - [5] = {.lex_state = 25}, - [6] = {.lex_state = 27}, - [7] = {.lex_state = 27}, - [8] = {.lex_state = 27}, - [9] = {.lex_state = 27}, - [10] = {.lex_state = 27}, - [11] = {.lex_state = 27}, - [12] = {.lex_state = 27}, - [13] = {.lex_state = 27}, - [14] = {.lex_state = 27}, - [15] = {.lex_state = 27}, - [16] = {.lex_state = 27}, - [17] = {.lex_state = 27}, - [18] = {.lex_state = 27}, - [19] = {.lex_state = 27}, - [20] = {.lex_state = 27}, - [21] = {.lex_state = 27}, - [22] = {.lex_state = 26}, - [23] = {.lex_state = 26}, - [24] = {.lex_state = 27}, - [25] = {.lex_state = 27}, - [26] = {.lex_state = 27}, - [27] = {.lex_state = 27}, - [28] = {.lex_state = 27}, - [29] = {.lex_state = 27}, - [30] = {.lex_state = 27}, - [31] = {.lex_state = 27}, - [32] = {.lex_state = 27}, - [33] = {.lex_state = 27}, - [34] = {.lex_state = 27}, + [1] = {.lex_state = 29}, + [2] = {.lex_state = 26}, + [3] = {.lex_state = 26}, + [4] = {.lex_state = 26}, + [5] = {.lex_state = 26}, + [6] = {.lex_state = 28}, + [7] = {.lex_state = 28}, + [8] = {.lex_state = 28}, + [9] = {.lex_state = 28}, + [10] = {.lex_state = 28}, + [11] = {.lex_state = 28}, + [12] = {.lex_state = 28}, + [13] = {.lex_state = 28}, + [14] = {.lex_state = 28}, + [15] = {.lex_state = 28}, + [16] = {.lex_state = 28}, + [17] = {.lex_state = 28}, + [18] = {.lex_state = 28}, + [19] = {.lex_state = 28}, + [20] = {.lex_state = 28}, + [21] = {.lex_state = 28}, + [22] = {.lex_state = 27}, + [23] = {.lex_state = 27}, + [24] = {.lex_state = 28}, + [25] = {.lex_state = 28}, + [26] = {.lex_state = 28}, + [27] = {.lex_state = 28}, + [28] = {.lex_state = 28}, + [29] = {.lex_state = 28}, + [30] = {.lex_state = 28}, + [31] = {.lex_state = 28}, + [32] = {.lex_state = 28}, + [33] = {.lex_state = 29}, + [34] = {.lex_state = 28}, [35] = {.lex_state = 28}, - [36] = {.lex_state = 28}, - [37] = {.lex_state = 28}, - [38] = {.lex_state = 28}, - [39] = {.lex_state = 28}, - [40] = {.lex_state = 28}, - [41] = {.lex_state = 28}, - [42] = {.lex_state = 28}, - [43] = {.lex_state = 28}, - [44] = {.lex_state = 28}, - [45] = {.lex_state = 28}, - [46] = {.lex_state = 28}, - [47] = {.lex_state = 28}, - [48] = {.lex_state = 28}, - [49] = {.lex_state = 28}, - [50] = {.lex_state = 27}, - [51] = {.lex_state = 27}, - [52] = {.lex_state = 28}, - [53] = {.lex_state = 28}, - [54] = {.lex_state = 4}, + [36] = {.lex_state = 29}, + [37] = {.lex_state = 29}, + [38] = {.lex_state = 29}, + [39] = {.lex_state = 29}, + [40] = {.lex_state = 29}, + [41] = {.lex_state = 29}, + [42] = {.lex_state = 29}, + [43] = {.lex_state = 29}, + [44] = {.lex_state = 29}, + [45] = {.lex_state = 29}, + [46] = {.lex_state = 29}, + [47] = {.lex_state = 29}, + [48] = {.lex_state = 29}, + [49] = {.lex_state = 29}, + [50] = {.lex_state = 28}, + [51] = {.lex_state = 28}, + [52] = {.lex_state = 29}, + [53] = {.lex_state = 4}, + [54] = {.lex_state = 29}, [55] = {.lex_state = 4}, - [56] = {.lex_state = 29}, - [57] = {.lex_state = 29}, - [58] = {.lex_state = 29}, - [59] = {.lex_state = 29}, - [60] = {.lex_state = 29}, - [61] = {.lex_state = 0}, - [62] = {.lex_state = 28}, - [63] = {.lex_state = 28}, - [64] = {.lex_state = 0}, - [65] = {.lex_state = 0}, - [66] = {.lex_state = 0}, - [67] = {.lex_state = 29}, - [68] = {.lex_state = 0}, - [69] = {.lex_state = 0}, - [70] = {.lex_state = 0}, + [56] = {.lex_state = 30}, + [57] = {.lex_state = 30}, + [58] = {.lex_state = 30}, + [59] = {.lex_state = 30}, + [60] = {.lex_state = 5}, + [61] = {.lex_state = 30}, + [62] = {.lex_state = 5}, + [63] = {.lex_state = 5}, + [64] = {.lex_state = 5}, + [65] = {.lex_state = 30}, + [66] = {.lex_state = 30}, + [67] = {.lex_state = 0}, + [68] = {.lex_state = 30}, + [69] = {.lex_state = 29}, + [70] = {.lex_state = 30}, [71] = {.lex_state = 0}, - [72] = {.lex_state = 29}, - [73] = {.lex_state = 29}, - [74] = {.lex_state = 0}, - [75] = {.lex_state = 29}, - [76] = {.lex_state = 28}, + [72] = {.lex_state = 0}, + [73] = {.lex_state = 0}, + [74] = {.lex_state = 30}, + [75] = {.lex_state = 30}, + [76] = {.lex_state = 0}, [77] = {.lex_state = 0}, [78] = {.lex_state = 0}, - [79] = {.lex_state = 29}, + [79] = {.lex_state = 0}, [80] = {.lex_state = 0}, [81] = {.lex_state = 0}, - [82] = {.lex_state = 28}, - [83] = {.lex_state = 0}, + [82] = {.lex_state = 29}, + [83] = {.lex_state = 30}, [84] = {.lex_state = 0}, [85] = {.lex_state = 0}, [86] = {.lex_state = 0}, [87] = {.lex_state = 0}, [88] = {.lex_state = 0}, [89] = {.lex_state = 0}, - [90] = {.lex_state = 0}, - [91] = {.lex_state = 0}, - [92] = {.lex_state = 0}, - [93] = {.lex_state = 0}, + [90] = {.lex_state = 30}, + [91] = {.lex_state = 29}, + [92] = {.lex_state = 29}, + [93] = {.lex_state = 30}, [94] = {.lex_state = 0}, [95] = {.lex_state = 0}, [96] = {.lex_state = 0}, @@ -2014,45 +2175,68 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [99] = {.lex_state = 0}, [100] = {.lex_state = 0}, [101] = {.lex_state = 0}, - [102] = {.lex_state = 28}, + [102] = {.lex_state = 0}, [103] = {.lex_state = 0}, - [104] = {.lex_state = 28}, - [105] = {.lex_state = 2}, + [104] = {.lex_state = 0}, + [105] = {.lex_state = 0}, [106] = {.lex_state = 0}, - [107] = {.lex_state = 0}, + [107] = {.lex_state = 29}, [108] = {.lex_state = 0}, - [109] = {.lex_state = 2}, + [109] = {.lex_state = 0}, [110] = {.lex_state = 0}, [111] = {.lex_state = 0}, [112] = {.lex_state = 0}, [113] = {.lex_state = 0}, [114] = {.lex_state = 0}, - [115] = {.lex_state = 2}, - [116] = {.lex_state = 151}, + [115] = {.lex_state = 0}, + [116] = {.lex_state = 29}, [117] = {.lex_state = 0}, [118] = {.lex_state = 0}, [119] = {.lex_state = 0}, [120] = {.lex_state = 0}, - [121] = {.lex_state = 0}, - [122] = {.lex_state = 0}, - [123] = {.lex_state = 0}, - [124] = {.lex_state = 25}, - [125] = {.lex_state = 3}, - [126] = {.lex_state = 2}, - [127] = {.lex_state = 2}, + [121] = {.lex_state = 2}, + [122] = {.lex_state = 2}, + [123] = {.lex_state = 2}, + [124] = {.lex_state = 0}, + [125] = {.lex_state = 0}, + [126] = {.lex_state = 0}, + [127] = {.lex_state = 0}, [128] = {.lex_state = 0}, [129] = {.lex_state = 0}, [130] = {.lex_state = 0}, - [131] = {.lex_state = 0}, - [132] = {.lex_state = 29}, - [133] = {.lex_state = 29}, - [134] = {.lex_state = 3}, - [135] = {(TSStateId)(-1)}, - [136] = {(TSStateId)(-1)}, + [131] = {.lex_state = 5}, + [132] = {.lex_state = 0}, + [133] = {.lex_state = 0}, + [134] = {.lex_state = 0}, + [135] = {.lex_state = 0}, + [136] = {.lex_state = 26}, + [137] = {.lex_state = 0}, + [138] = {.lex_state = 3}, + [139] = {.lex_state = 30}, + [140] = {.lex_state = 0}, + [141] = {.lex_state = 0}, + [142] = {.lex_state = 0}, + [143] = {.lex_state = 5}, + [144] = {.lex_state = 30}, + [145] = {.lex_state = 0}, + [146] = {.lex_state = 0}, + [147] = {.lex_state = 0}, + [148] = {.lex_state = 0}, + [149] = {.lex_state = 160}, + [150] = {.lex_state = 0}, + [151] = {.lex_state = 0}, + [152] = {.lex_state = 0}, + [153] = {.lex_state = 0}, + [154] = {.lex_state = 0}, + [155] = {.lex_state = 0}, + [156] = {.lex_state = 0}, + [157] = {.lex_state = 3}, + [158] = {(TSStateId)(-1),}, + [159] = {(TSStateId)(-1),}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { - [0] = { + [STATE(0)] = { [sym_line_comment] = STATE(0), [ts_builtin_sym_end] = ACTIONS(1), [anon_sym_LF] = ACTIONS(1), @@ -2073,6 +2257,10 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_LBRACK] = ACTIONS(1), [anon_sym_PLUS] = ACTIONS(1), [anon_sym_RBRACK] = ACTIONS(1), + [anon_sym_1] = ACTIONS(1), + [anon_sym_2] = ACTIONS(1), + [anon_sym_4] = ACTIONS(1), + [anon_sym_8] = ACTIONS(1), [anon_sym_STAR] = ACTIONS(1), [anon_sym_rel] = ACTIONS(1), [anon_sym_BANG] = ACTIONS(1), @@ -2092,13 +2280,13 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [aux_sym_line_comment_token2] = ACTIONS(5), [sym_block_comment] = ACTIONS(7), }, - [1] = { - [sym_program] = STATE(130), - [sym__item] = STATE(81), - [sym_meta] = STATE(114), - [sym_label] = STATE(114), - [sym_const] = STATE(114), - [sym_instruction] = STATE(114), + [STATE(1)] = { + [sym_program] = STATE(133), + [sym__item] = STATE(85), + [sym_meta] = STATE(128), + [sym_label] = STATE(128), + [sym_const] = STATE(128), + [sym_instruction] = STATE(128), [sym_line_comment] = STATE(1), [ts_builtin_sym_end] = ACTIONS(9), [anon_sym_label] = ACTIONS(11), @@ -2110,46 +2298,69 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [aux_sym_line_comment_token2] = ACTIONS(5), [sym_block_comment] = ACTIONS(7), }, - [2] = { - [sym__expr] = STATE(69), - [sym_list] = STATE(100), - [sym_ptr] = STATE(100), - [sym__tc_expr] = STATE(18), - [sym_tc_infix] = STATE(17), - [sym_int] = STATE(7), - [sym_string] = STATE(10), - [sym_reg] = STATE(11), - [sym_ident] = STATE(10), - [sym_line_comment] = STATE(2), - [aux_sym_instruction_repeat2] = STATE(20), - [ts_builtin_sym_end] = ACTIONS(21), - [anon_sym_LF] = ACTIONS(21), - [anon_sym_COLON] = ACTIONS(23), - [anon_sym_LPAREN] = ACTIONS(25), - [anon_sym_LBRACE] = ACTIONS(27), - [anon_sym_byte] = ACTIONS(29), - [anon_sym_word] = ACTIONS(29), - [anon_sym_dword] = ACTIONS(29), - [anon_sym_qword] = ACTIONS(29), - [anon_sym_LBRACK] = ACTIONS(31), - [anon_sym_STAR] = ACTIONS(33), - [anon_sym_POUND] = ACTIONS(35), - [aux_sym_int_token2] = ACTIONS(37), - [sym_float] = ACTIONS(39), - [aux_sym_string_token1] = ACTIONS(41), - [aux_sym_string_token2] = ACTIONS(41), - [sym_word] = ACTIONS(43), - [sym__reg] = ACTIONS(43), - [sym_address] = ACTIONS(43), - [sym_meta_ident] = ACTIONS(45), - [sym__ident] = ACTIONS(45), - [aux_sym_line_comment_token2] = ACTIONS(5), - [sym_block_comment] = ACTIONS(7), - }, }; static const uint16_t ts_small_parse_table[] = { - [0] = 19, + [0] = 24, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(23), 1, + anon_sym_COLON, + ACTIONS(25), 1, + anon_sym_LPAREN, + ACTIONS(27), 1, + anon_sym_LBRACE, + ACTIONS(31), 1, + anon_sym_LBRACK, + ACTIONS(33), 1, + anon_sym_STAR, + ACTIONS(35), 1, + anon_sym_POUND, + ACTIONS(37), 1, + aux_sym_int_token2, + ACTIONS(39), 1, + sym_float, + STATE(2), 1, + sym_line_comment, + STATE(7), 1, + sym_int, + STATE(11), 1, + sym_reg, + STATE(13), 1, + sym__tc_expr, + STATE(14), 1, + sym_tc_infix, + STATE(20), 1, + aux_sym_instruction_repeat2, + STATE(87), 1, + sym__expr, + ACTIONS(21), 2, + ts_builtin_sym_end, + anon_sym_LF, + ACTIONS(41), 2, + aux_sym_string_token1, + aux_sym_string_token2, + ACTIONS(45), 2, + sym_meta_ident, + sym__ident, + STATE(12), 2, + sym_string, + sym_ident, + STATE(99), 2, + sym_list, + sym_ptr, + ACTIONS(43), 3, + sym_word, + sym__reg, + sym_address, + ACTIONS(29), 4, + anon_sym_byte, + anon_sym_word, + anon_sym_dword, + anon_sym_qword, + [83] = 19, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, @@ -2170,11 +2381,11 @@ static const uint16_t ts_small_parse_table[] = { aux_sym_int_token2, STATE(3), 1, sym_line_comment, - STATE(40), 1, + STATE(39), 1, sym_reg, - STATE(78), 1, + STATE(72), 1, sym_int, - STATE(91), 1, + STATE(118), 1, sym__expr, ACTIONS(47), 2, ts_builtin_sym_end, @@ -2194,12 +2405,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_word, anon_sym_dword, anon_sym_qword, - STATE(100), 4, + STATE(99), 4, sym_list, sym_ptr, sym_string, sym_ident, - [69] = 19, + [152] = 19, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, @@ -2220,11 +2431,11 @@ static const uint16_t ts_small_parse_table[] = { aux_sym_int_token2, STATE(4), 1, sym_line_comment, - STATE(40), 1, + STATE(39), 1, sym_reg, - STATE(78), 1, + STATE(72), 1, sym_int, - STATE(91), 1, + STATE(118), 1, sym__expr, ACTIONS(53), 2, aux_sym_string_token1, @@ -2244,12 +2455,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_word, anon_sym_dword, anon_sym_qword, - STATE(100), 4, + STATE(99), 4, sym_list, sym_ptr, sym_string, sym_ident, - [138] = 18, + [221] = 18, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, @@ -2270,11 +2481,11 @@ static const uint16_t ts_small_parse_table[] = { aux_sym_int_token2, STATE(5), 1, sym_line_comment, - STATE(40), 1, + STATE(39), 1, sym_reg, - STATE(78), 1, + STATE(72), 1, sym_int, - STATE(91), 1, + STATE(118), 1, sym__expr, ACTIONS(53), 2, aux_sym_string_token1, @@ -2291,12 +2502,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_word, anon_sym_dword, anon_sym_qword, - STATE(100), 4, + STATE(99), 4, sym_list, sym_ptr, sym_string, sym_ident, - [203] = 5, + [286] = 5, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, @@ -2326,7 +2537,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, aux_sym_string_token1, aux_sym_string_token2, - [238] = 8, + [321] = 8, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, @@ -2359,7 +2570,7 @@ static const uint16_t ts_small_parse_table[] = { sym_address, sym_meta_ident, sym__ident, - [279] = 5, + [362] = 5, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, @@ -2389,7 +2600,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, aux_sym_string_token1, aux_sym_string_token2, - [314] = 5, + [397] = 5, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, @@ -2418,44 +2629,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, aux_sym_string_token1, aux_sym_string_token2, - [348] = 7, + [431] = 5, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(68), 1, - anon_sym_COMMA, STATE(10), 1, sym_line_comment, - ACTIONS(65), 2, - ts_builtin_sym_end, - anon_sym_LF, - ACTIONS(74), 8, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_PIPE, - anon_sym_CARET, - anon_sym_AMP, - anon_sym_POUND, - aux_sym_string_token1, - aux_sym_string_token2, - ACTIONS(72), 9, - anon_sym_DASH, - anon_sym_SLASH, - anon_sym_PERCENT, - aux_sym_int_token2, - sym_word, - sym__reg, - sym_address, - sym_meta_ident, - sym__ident, - [386] = 5, - ACTIONS(5), 1, - aux_sym_line_comment_token2, - ACTIONS(7), 1, - sym_block_comment, - STATE(11), 1, - sym_line_comment, ACTIONS(86), 9, anon_sym_DASH, anon_sym_SLASH, @@ -2478,12 +2658,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, aux_sym_string_token1, aux_sym_string_token2, - [420] = 5, + [465] = 5, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(12), 1, + STATE(11), 1, sym_line_comment, ACTIONS(90), 9, anon_sym_DASH, @@ -2507,28 +2687,28 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, aux_sym_string_token1, aux_sym_string_token2, - [454] = 8, + [499] = 7, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(96), 1, - anon_sym_PIPE, - ACTIONS(98), 1, - anon_sym_CARET, - ACTIONS(100), 1, - anon_sym_AMP, - STATE(13), 1, + ACTIONS(68), 1, + anon_sym_COMMA, + STATE(12), 1, sym_line_comment, - ACTIONS(92), 7, + ACTIONS(65), 2, ts_builtin_sym_end, anon_sym_LF, + ACTIONS(74), 8, anon_sym_PLUS, anon_sym_STAR, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, anon_sym_POUND, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(94), 9, + ACTIONS(72), 9, anon_sym_DASH, anon_sym_SLASH, anon_sym_PERCENT, @@ -2538,47 +2718,49 @@ static const uint16_t ts_small_parse_table[] = { sym_address, sym_meta_ident, sym__ident, - [493] = 10, + [537] = 12, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, + ACTIONS(94), 1, + anon_sym_DASH, ACTIONS(96), 1, - anon_sym_PIPE, + anon_sym_PLUS, ACTIONS(98), 1, + anon_sym_STAR, + ACTIONS(102), 1, + anon_sym_PIPE, + ACTIONS(104), 1, anon_sym_CARET, - ACTIONS(100), 1, + ACTIONS(106), 1, anon_sym_AMP, - ACTIONS(102), 1, - anon_sym_STAR, - STATE(14), 1, + STATE(13), 1, sym_line_comment, - ACTIONS(104), 2, + ACTIONS(100), 2, anon_sym_SLASH, anon_sym_PERCENT, - ACTIONS(92), 6, + ACTIONS(92), 5, ts_builtin_sym_end, anon_sym_LF, - anon_sym_PLUS, anon_sym_POUND, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(94), 7, - anon_sym_DASH, + ACTIONS(108), 6, aux_sym_int_token2, sym_word, sym__reg, sym_address, sym_meta_ident, sym__ident, - [536] = 5, + [584] = 5, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(15), 1, + STATE(14), 1, sym_line_comment, - ACTIONS(94), 9, + ACTIONS(72), 9, anon_sym_DASH, anon_sym_SLASH, anon_sym_PERCENT, @@ -2588,7 +2770,7 @@ static const uint16_t ts_small_parse_table[] = { sym_address, sym_meta_ident, sym__ident, - ACTIONS(92), 10, + ACTIONS(74), 10, ts_builtin_sym_end, anon_sym_LF, anon_sym_PLUS, @@ -2599,44 +2781,61 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, aux_sym_string_token1, aux_sym_string_token2, - [569] = 7, + [617] = 10, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, ACTIONS(98), 1, + anon_sym_STAR, + ACTIONS(102), 1, + anon_sym_PIPE, + ACTIONS(104), 1, anon_sym_CARET, - ACTIONS(100), 1, + ACTIONS(106), 1, anon_sym_AMP, - STATE(16), 1, + STATE(15), 1, sym_line_comment, - ACTIONS(92), 8, + ACTIONS(100), 2, + anon_sym_SLASH, + anon_sym_PERCENT, + ACTIONS(110), 6, ts_builtin_sym_end, anon_sym_LF, anon_sym_PLUS, - anon_sym_STAR, - anon_sym_PIPE, anon_sym_POUND, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(94), 9, + ACTIONS(112), 7, anon_sym_DASH, - anon_sym_SLASH, - anon_sym_PERCENT, aux_sym_int_token2, sym_word, sym__reg, sym_address, sym_meta_ident, sym__ident, - [606] = 5, + [660] = 8, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(17), 1, + ACTIONS(102), 1, + anon_sym_PIPE, + ACTIONS(104), 1, + anon_sym_CARET, + ACTIONS(106), 1, + anon_sym_AMP, + STATE(16), 1, sym_line_comment, - ACTIONS(72), 9, + ACTIONS(110), 7, + ts_builtin_sym_end, + anon_sym_LF, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_POUND, + aux_sym_string_token1, + aux_sym_string_token2, + ACTIONS(112), 9, anon_sym_DASH, anon_sym_SLASH, anon_sym_PERCENT, @@ -2646,62 +2845,46 @@ static const uint16_t ts_small_parse_table[] = { sym_address, sym_meta_ident, sym__ident, - ACTIONS(74), 10, - ts_builtin_sym_end, - anon_sym_LF, - anon_sym_PLUS, - anon_sym_STAR, - anon_sym_PIPE, - anon_sym_CARET, - anon_sym_AMP, - anon_sym_POUND, - aux_sym_string_token1, - aux_sym_string_token2, - [639] = 12, + [699] = 7, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(96), 1, - anon_sym_PIPE, - ACTIONS(98), 1, + ACTIONS(104), 1, anon_sym_CARET, - ACTIONS(100), 1, + ACTIONS(106), 1, anon_sym_AMP, - ACTIONS(102), 1, - anon_sym_STAR, - ACTIONS(108), 1, - anon_sym_DASH, - ACTIONS(110), 1, - anon_sym_PLUS, - STATE(18), 1, + STATE(17), 1, sym_line_comment, - ACTIONS(104), 2, - anon_sym_SLASH, - anon_sym_PERCENT, - ACTIONS(106), 5, + ACTIONS(110), 8, ts_builtin_sym_end, anon_sym_LF, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_PIPE, anon_sym_POUND, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(112), 6, + ACTIONS(112), 9, + anon_sym_DASH, + anon_sym_SLASH, + anon_sym_PERCENT, aux_sym_int_token2, sym_word, sym__reg, sym_address, sym_meta_ident, sym__ident, - [686] = 6, + [736] = 6, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(100), 1, + ACTIONS(106), 1, anon_sym_AMP, - STATE(19), 1, + STATE(18), 1, sym_line_comment, - ACTIONS(92), 9, + ACTIONS(110), 9, ts_builtin_sym_end, anon_sym_LF, anon_sym_PLUS, @@ -2711,7 +2894,24 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(94), 9, + ACTIONS(112), 9, + anon_sym_DASH, + anon_sym_SLASH, + anon_sym_PERCENT, + aux_sym_int_token2, + sym_word, + sym__reg, + sym_address, + sym_meta_ident, + sym__ident, + [771] = 5, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + STATE(19), 1, + sym_line_comment, + ACTIONS(112), 9, anon_sym_DASH, anon_sym_SLASH, anon_sym_PERCENT, @@ -2721,7 +2921,18 @@ static const uint16_t ts_small_parse_table[] = { sym_address, sym_meta_ident, sym__ident, - [721] = 13, + ACTIONS(110), 10, + ts_builtin_sym_end, + anon_sym_LF, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_POUND, + aux_sym_string_token1, + aux_sym_string_token2, + [804] = 13, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, @@ -2732,7 +2943,7 @@ static const uint16_t ts_small_parse_table[] = { aux_sym_int_token2, STATE(11), 1, sym_reg, - STATE(18), 1, + STATE(13), 1, sym__tc_expr, STATE(20), 1, sym_line_comment, @@ -2751,12 +2962,12 @@ static const uint16_t ts_small_parse_table[] = { sym_word, sym__reg, sym_address, - STATE(17), 4, + STATE(14), 4, sym_tc_infix, sym_int, sym_string, sym_ident, - [769] = 12, + [852] = 12, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, @@ -2767,7 +2978,7 @@ static const uint16_t ts_small_parse_table[] = { aux_sym_int_token2, STATE(11), 1, sym_reg, - STATE(18), 1, + STATE(13), 1, sym__tc_expr, ACTIONS(116), 2, ts_builtin_sym_end, @@ -2785,12 +2996,12 @@ static const uint16_t ts_small_parse_table[] = { sym_word, sym__reg, sym_address, - STATE(17), 4, + STATE(14), 4, sym_tc_infix, sym_int, sym_string, sym_ident, - [815] = 15, + [898] = 15, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, @@ -2805,13 +3016,13 @@ static const uint16_t ts_small_parse_table[] = { sym_float, STATE(22), 1, sym_line_comment, - STATE(40), 1, + STATE(39), 1, sym_reg, - STATE(65), 1, - sym_string, - STATE(74), 1, + STATE(73), 1, sym_int, - STATE(106), 1, + STATE(94), 1, + sym_string, + STATE(126), 1, sym_ident, ACTIONS(53), 2, aux_sym_string_token1, @@ -2826,7 +3037,7 @@ static const uint16_t ts_small_parse_table[] = { sym_word, sym__reg, sym_address, - [866] = 14, + [949] = 14, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, @@ -2839,13 +3050,13 @@ static const uint16_t ts_small_parse_table[] = { sym_float, STATE(23), 1, sym_line_comment, - STATE(40), 1, + STATE(39), 1, sym_reg, - STATE(65), 1, - sym_string, - STATE(74), 1, + STATE(73), 1, sym_int, - STATE(106), 1, + STATE(94), 1, + sym_string, + STATE(126), 1, sym_ident, ACTIONS(53), 2, aux_sym_string_token1, @@ -2860,7 +3071,7 @@ static const uint16_t ts_small_parse_table[] = { sym_word, sym__reg, sym_address, - [914] = 11, + [997] = 11, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, @@ -2871,9 +3082,9 @@ static const uint16_t ts_small_parse_table[] = { aux_sym_int_token2, STATE(24), 1, sym_line_comment, - STATE(40), 1, + STATE(39), 1, sym_reg, - STATE(49), 1, + STATE(44), 1, sym__tc_expr, ACTIONS(53), 2, aux_sym_string_token1, @@ -2885,12 +3096,12 @@ static const uint16_t ts_small_parse_table[] = { sym_word, sym__reg, sym_address, - STATE(43), 4, + STATE(46), 4, sym_tc_infix, sym_int, sym_string, sym_ident, - [955] = 11, + [1038] = 11, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, @@ -2901,7 +3112,7 @@ static const uint16_t ts_small_parse_table[] = { aux_sym_int_token2, STATE(11), 1, sym_reg, - STATE(14), 1, + STATE(15), 1, sym__tc_expr, STATE(25), 1, sym_line_comment, @@ -2915,42 +3126,42 @@ static const uint16_t ts_small_parse_table[] = { sym_word, sym__reg, sym_address, - STATE(17), 4, + STATE(14), 4, sym_tc_infix, sym_int, sym_string, sym_ident, - [996] = 11, + [1079] = 11, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(49), 1, + ACTIONS(35), 1, anon_sym_POUND, - ACTIONS(51), 1, + ACTIONS(37), 1, aux_sym_int_token2, - STATE(26), 1, - sym_line_comment, - STATE(40), 1, + STATE(11), 1, sym_reg, - STATE(44), 1, + STATE(16), 1, sym__tc_expr, - ACTIONS(53), 2, + STATE(26), 1, + sym_line_comment, + ACTIONS(41), 2, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(57), 2, + ACTIONS(45), 2, sym_meta_ident, sym__ident, - ACTIONS(55), 3, + ACTIONS(43), 3, sym_word, sym__reg, sym_address, - STATE(43), 4, + STATE(14), 4, sym_tc_infix, sym_int, sym_string, sym_ident, - [1037] = 11, + [1120] = 11, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, @@ -2961,7 +3172,7 @@ static const uint16_t ts_small_parse_table[] = { aux_sym_int_token2, STATE(11), 1, sym_reg, - STATE(13), 1, + STATE(19), 1, sym__tc_expr, STATE(27), 1, sym_line_comment, @@ -2975,12 +3186,12 @@ static const uint16_t ts_small_parse_table[] = { sym_word, sym__reg, sym_address, - STATE(17), 4, + STATE(14), 4, sym_tc_infix, sym_int, sym_string, sym_ident, - [1078] = 11, + [1161] = 11, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, @@ -2991,7 +3202,7 @@ static const uint16_t ts_small_parse_table[] = { aux_sym_int_token2, STATE(11), 1, sym_reg, - STATE(16), 1, + STATE(17), 1, sym__tc_expr, STATE(28), 1, sym_line_comment, @@ -3005,12 +3216,12 @@ static const uint16_t ts_small_parse_table[] = { sym_word, sym__reg, sym_address, - STATE(17), 4, + STATE(14), 4, sym_tc_infix, sym_int, sym_string, sym_ident, - [1119] = 11, + [1202] = 11, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, @@ -3021,7 +3232,7 @@ static const uint16_t ts_small_parse_table[] = { aux_sym_int_token2, STATE(11), 1, sym_reg, - STATE(19), 1, + STATE(18), 1, sym__tc_expr, STATE(29), 1, sym_line_comment, @@ -3035,12 +3246,12 @@ static const uint16_t ts_small_parse_table[] = { sym_word, sym__reg, sym_address, - STATE(17), 4, + STATE(14), 4, sym_tc_infix, sym_int, sym_string, sym_ident, - [1160] = 11, + [1243] = 11, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, @@ -3051,9 +3262,9 @@ static const uint16_t ts_small_parse_table[] = { aux_sym_int_token2, STATE(30), 1, sym_line_comment, - STATE(40), 1, + STATE(39), 1, sym_reg, - STATE(48), 1, + STATE(43), 1, sym__tc_expr, ACTIONS(53), 2, aux_sym_string_token1, @@ -3065,42 +3276,42 @@ static const uint16_t ts_small_parse_table[] = { sym_word, sym__reg, sym_address, - STATE(43), 4, + STATE(46), 4, sym_tc_infix, sym_int, sym_string, sym_ident, - [1201] = 11, + [1284] = 11, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(35), 1, + ACTIONS(49), 1, anon_sym_POUND, - ACTIONS(37), 1, + ACTIONS(51), 1, aux_sym_int_token2, - STATE(11), 1, - sym_reg, - STATE(15), 1, - sym__tc_expr, STATE(31), 1, sym_line_comment, - ACTIONS(41), 2, + STATE(39), 1, + sym_reg, + STATE(49), 1, + sym__tc_expr, + ACTIONS(53), 2, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(45), 2, + ACTIONS(57), 2, sym_meta_ident, sym__ident, - ACTIONS(43), 3, + ACTIONS(55), 3, sym_word, sym__reg, sym_address, - STATE(17), 4, + STATE(46), 4, sym_tc_infix, sym_int, sym_string, sym_ident, - [1242] = 11, + [1325] = 11, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, @@ -3111,9 +3322,9 @@ static const uint16_t ts_small_parse_table[] = { aux_sym_int_token2, STATE(32), 1, sym_line_comment, - STATE(40), 1, + STATE(39), 1, sym_reg, - STATE(46), 1, + STATE(48), 1, sym__tc_expr, ACTIONS(53), 2, aux_sym_string_token1, @@ -3125,12 +3336,37 @@ static const uint16_t ts_small_parse_table[] = { sym_word, sym__reg, sym_address, - STATE(43), 4, + STATE(46), 4, sym_tc_infix, sym_int, sym_string, sym_ident, - [1283] = 11, + [1366] = 6, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(86), 1, + anon_sym_SLASH, + STATE(33), 1, + sym_line_comment, + ACTIONS(84), 13, + ts_builtin_sym_end, + anon_sym_LF, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_DASH, + anon_sym_RBRACE, + anon_sym_PLUS, + anon_sym_RBRACK, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + [1397] = 11, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, @@ -3139,9 +3375,9 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, ACTIONS(51), 1, aux_sym_int_token2, - STATE(33), 1, + STATE(34), 1, sym_line_comment, - STATE(40), 1, + STATE(39), 1, sym_reg, STATE(47), 1, sym__tc_expr, @@ -3155,12 +3391,12 @@ static const uint16_t ts_small_parse_table[] = { sym_word, sym__reg, sym_address, - STATE(43), 4, + STATE(46), 4, sym_tc_infix, sym_int, sym_string, sym_ident, - [1324] = 11, + [1438] = 11, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, @@ -3169,9 +3405,9 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, ACTIONS(51), 1, aux_sym_int_token2, - STATE(34), 1, + STATE(35), 1, sym_line_comment, - STATE(40), 1, + STATE(39), 1, sym_reg, STATE(45), 1, sym__tc_expr, @@ -3185,93 +3421,44 @@ static const uint16_t ts_small_parse_table[] = { sym_word, sym__reg, sym_address, - STATE(43), 4, + STATE(46), 4, sym_tc_infix, sym_int, sym_string, sym_ident, - [1365] = 6, + [1479] = 14, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(82), 1, - anon_sym_SLASH, - STATE(35), 1, - sym_line_comment, - ACTIONS(80), 13, + ACTIONS(11), 1, + anon_sym_label, + ACTIONS(13), 1, + anon_sym_const, + ACTIONS(15), 1, + sym_word, + ACTIONS(17), 1, + sym_meta_ident, + ACTIONS(19), 1, + sym__ident, + ACTIONS(139), 1, ts_builtin_sym_end, + ACTIONS(141), 1, anon_sym_LF, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_DASH, - anon_sym_RBRACE, - anon_sym_PLUS, - anon_sym_RBRACK, - anon_sym_STAR, - anon_sym_PERCENT, - anon_sym_PIPE, - anon_sym_CARET, - anon_sym_AMP, - [1396] = 6, - ACTIONS(3), 1, - anon_sym_POUND, - ACTIONS(5), 1, - aux_sym_line_comment_token2, - ACTIONS(7), 1, - sym_block_comment, - ACTIONS(78), 1, - anon_sym_SLASH, STATE(36), 1, sym_line_comment, - ACTIONS(76), 12, - ts_builtin_sym_end, - anon_sym_LF, - anon_sym_COMMA, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_RBRACK, - anon_sym_STAR, - anon_sym_PERCENT, - anon_sym_PIPE, - anon_sym_CARET, - anon_sym_AMP, - [1426] = 14, - ACTIONS(3), 1, - anon_sym_POUND, - ACTIONS(5), 1, - aux_sym_line_comment_token2, - ACTIONS(7), 1, - sym_block_comment, - ACTIONS(11), 1, - anon_sym_label, - ACTIONS(13), 1, - anon_sym_const, - ACTIONS(15), 1, - sym_word, - ACTIONS(17), 1, - sym_meta_ident, - ACTIONS(19), 1, - sym__ident, - ACTIONS(139), 1, - ts_builtin_sym_end, - ACTIONS(141), 1, - anon_sym_LF, - STATE(37), 1, - sym_line_comment, STATE(52), 1, aux_sym_program_repeat1, - STATE(110), 1, + STATE(124), 1, sym__item, - STATE(114), 4, + STATE(128), 4, sym_meta, sym_label, sym_const, sym_instruction, - [1472] = 14, + [1525] = 14, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -3292,18 +3479,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LF, ACTIONS(143), 1, ts_builtin_sym_end, - STATE(38), 1, + STATE(37), 1, sym_line_comment, STATE(52), 1, aux_sym_program_repeat1, - STATE(110), 1, + STATE(124), 1, sym__item, - STATE(114), 4, + STATE(128), 4, sym_meta, sym_label, sym_const, sym_instruction, - [1518] = 6, + [1571] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -3312,7 +3499,7 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, ACTIONS(63), 1, anon_sym_SLASH, - STATE(39), 1, + STATE(38), 1, sym_line_comment, ACTIONS(61), 12, ts_builtin_sym_end, @@ -3327,18 +3514,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_CARET, anon_sym_AMP, - [1548] = 6, + [1601] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(86), 1, + ACTIONS(90), 1, anon_sym_SLASH, - STATE(40), 1, + STATE(39), 1, sym_line_comment, - ACTIONS(84), 12, + ACTIONS(88), 12, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, @@ -3351,7 +3538,31 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_CARET, anon_sym_AMP, - [1578] = 13, + [1631] = 6, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(78), 1, + anon_sym_SLASH, + STATE(40), 1, + sym_line_comment, + ACTIONS(76), 12, + ts_builtin_sym_end, + anon_sym_LF, + anon_sym_COMMA, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_RBRACK, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + [1661] = 13, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -3374,25 +3585,25 @@ static const uint16_t ts_small_parse_table[] = { sym_line_comment, STATE(52), 1, aux_sym_program_repeat1, - STATE(110), 1, + STATE(124), 1, sym__item, - STATE(114), 4, + STATE(128), 4, sym_meta, sym_label, sym_const, sym_instruction, - [1621] = 6, + [1704] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(90), 1, + ACTIONS(82), 1, anon_sym_SLASH, STATE(42), 1, sym_line_comment, - ACTIONS(88), 10, + ACTIONS(80), 10, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, @@ -3403,18 +3614,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_CARET, anon_sym_AMP, - [1649] = 6, + [1732] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(72), 1, + ACTIONS(112), 1, anon_sym_SLASH, STATE(43), 1, sym_line_comment, - ACTIONS(74), 9, + ACTIONS(110), 9, ts_builtin_sym_end, anon_sym_LF, anon_sym_DASH, @@ -3424,138 +3635,139 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_CARET, anon_sym_AMP, - [1676] = 7, + [1759] = 11, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(94), 1, + ACTIONS(151), 1, anon_sym_SLASH, - ACTIONS(145), 1, + ACTIONS(153), 1, + anon_sym_PIPE, + ACTIONS(155), 1, + anon_sym_CARET, + ACTIONS(157), 1, anon_sym_AMP, STATE(44), 1, sym_line_comment, - ACTIONS(92), 8, + ACTIONS(145), 2, ts_builtin_sym_end, anon_sym_LF, + ACTIONS(147), 2, anon_sym_DASH, anon_sym_PLUS, + ACTIONS(149), 2, anon_sym_STAR, anon_sym_PERCENT, - anon_sym_PIPE, - anon_sym_CARET, - [1705] = 8, + [1796] = 10, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(94), 1, + ACTIONS(151), 1, anon_sym_SLASH, - ACTIONS(145), 1, - anon_sym_AMP, - ACTIONS(147), 1, + ACTIONS(153), 1, + anon_sym_PIPE, + ACTIONS(155), 1, anon_sym_CARET, + ACTIONS(157), 1, + anon_sym_AMP, STATE(45), 1, sym_line_comment, - ACTIONS(92), 7, + ACTIONS(149), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(110), 4, ts_builtin_sym_end, anon_sym_LF, anon_sym_DASH, anon_sym_PLUS, - anon_sym_STAR, - anon_sym_PERCENT, - anon_sym_PIPE, - [1736] = 11, + [1831] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(145), 1, - anon_sym_AMP, - ACTIONS(147), 1, - anon_sym_CARET, - ACTIONS(155), 1, + ACTIONS(72), 1, anon_sym_SLASH, - ACTIONS(157), 1, - anon_sym_PIPE, STATE(46), 1, sym_line_comment, - ACTIONS(149), 2, + ACTIONS(74), 9, ts_builtin_sym_end, anon_sym_LF, - ACTIONS(151), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(153), 2, anon_sym_STAR, anon_sym_PERCENT, - [1773] = 9, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + [1858] = 9, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(94), 1, + ACTIONS(112), 1, anon_sym_SLASH, - ACTIONS(145), 1, - anon_sym_AMP, - ACTIONS(147), 1, + ACTIONS(153), 1, + anon_sym_PIPE, + ACTIONS(155), 1, anon_sym_CARET, ACTIONS(157), 1, - anon_sym_PIPE, + anon_sym_AMP, STATE(47), 1, sym_line_comment, - ACTIONS(92), 6, + ACTIONS(110), 6, ts_builtin_sym_end, anon_sym_LF, anon_sym_DASH, anon_sym_PLUS, anon_sym_STAR, anon_sym_PERCENT, - [1806] = 10, + [1891] = 8, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(145), 1, - anon_sym_AMP, - ACTIONS(147), 1, - anon_sym_CARET, - ACTIONS(155), 1, + ACTIONS(112), 1, anon_sym_SLASH, + ACTIONS(155), 1, + anon_sym_CARET, ACTIONS(157), 1, - anon_sym_PIPE, + anon_sym_AMP, STATE(48), 1, sym_line_comment, - ACTIONS(153), 2, - anon_sym_STAR, - anon_sym_PERCENT, - ACTIONS(92), 4, + ACTIONS(110), 7, ts_builtin_sym_end, anon_sym_LF, anon_sym_DASH, anon_sym_PLUS, - [1841] = 6, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_PIPE, + [1922] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(94), 1, + ACTIONS(112), 1, anon_sym_SLASH, + ACTIONS(157), 1, + anon_sym_AMP, STATE(49), 1, sym_line_comment, - ACTIONS(92), 9, + ACTIONS(110), 8, ts_builtin_sym_end, anon_sym_LF, anon_sym_DASH, @@ -3564,8 +3776,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PERCENT, anon_sym_PIPE, anon_sym_CARET, - anon_sym_AMP, - [1868] = 9, + [1951] = 9, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, @@ -3574,21 +3785,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, ACTIONS(51), 1, aux_sym_int_token2, - STATE(40), 1, + STATE(39), 1, sym_reg, STATE(50), 1, sym_line_comment, ACTIONS(57), 2, sym_meta_ident, sym__ident, - STATE(122), 2, + STATE(146), 2, sym_int, sym_ident, ACTIONS(55), 3, sym_word, sym__reg, sym_address, - [1900] = 9, + [1983] = 9, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, @@ -3597,21 +3808,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, ACTIONS(51), 1, aux_sym_int_token2, - STATE(40), 1, + STATE(39), 1, sym_reg, STATE(51), 1, sym_line_comment, ACTIONS(57), 2, sym_meta_ident, sym__ident, - STATE(117), 2, + STATE(132), 2, sym_int, sym_ident, ACTIONS(55), 3, sym_word, sym__reg, sym_address, - [1932] = 7, + [2015] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -3631,59 +3842,59 @@ static const uint16_t ts_small_parse_table[] = { sym_word, sym_meta_ident, sym__ident, - [1959] = 6, + [2042] = 9, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, + ACTIONS(166), 1, + sym_address, + STATE(39), 1, + sym_reg, STATE(53), 1, sym_line_comment, - ACTIONS(166), 2, - ts_builtin_sym_end, - anon_sym_LF, - ACTIONS(168), 5, - anon_sym_label, - anon_sym_const, + STATE(155), 1, + sym_ident, + ACTIONS(55), 2, sym_word, + sym__reg, + ACTIONS(57), 2, sym_meta_ident, sym__ident, - [1983] = 9, + [2072] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(170), 1, - sym_address, - STATE(40), 1, - sym_reg, STATE(54), 1, sym_line_comment, - STATE(128), 1, - sym_ident, - ACTIONS(55), 2, + ACTIONS(168), 2, + ts_builtin_sym_end, + anon_sym_LF, + ACTIONS(170), 5, + anon_sym_label, + anon_sym_const, sym_word, - sym__reg, - ACTIONS(57), 2, sym_meta_ident, sym__ident, - [2013] = 9, + [2096] = 9, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(170), 1, + ACTIONS(166), 1, sym_address, - STATE(40), 1, + STATE(39), 1, sym_reg, STATE(55), 1, sym_line_comment, - STATE(129), 1, + STATE(148), 1, sym_ident, ACTIONS(55), 2, sym_word, @@ -3691,25 +3902,25 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(57), 2, sym_meta_ident, sym__ident, - [2043] = 8, + [2126] = 8, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(55), 1, - sym__reg, - ACTIONS(172), 1, - anon_sym_RBRACE, + ACTIONS(174), 1, + anon_sym_LPAREN, + ACTIONS(176), 1, + sym_meta_ident, STATE(56), 1, sym_line_comment, - STATE(82), 1, - sym_reg, - ACTIONS(170), 2, - sym_word, - sym_address, - [2069] = 8, + STATE(127), 1, + sym_meta, + ACTIONS(172), 2, + ts_builtin_sym_end, + anon_sym_LF, + [2152] = 8, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -3718,34 +3929,34 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, ACTIONS(55), 1, sym__reg, - ACTIONS(174), 1, - anon_sym_RBRACE, + ACTIONS(178), 1, + anon_sym_COMMA, STATE(57), 1, sym_line_comment, - STATE(104), 1, + STATE(153), 1, sym_reg, - ACTIONS(170), 2, + ACTIONS(166), 2, sym_word, sym_address, - [2095] = 8, + [2178] = 8, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(178), 1, - anon_sym_LPAREN, + ACTIONS(55), 1, + sym__reg, ACTIONS(180), 1, - sym_meta_ident, + anon_sym_RBRACE, STATE(58), 1, sym_line_comment, - STATE(108), 1, - sym_meta, - ACTIONS(176), 2, - ts_builtin_sym_end, - anon_sym_LF, - [2121] = 8, + STATE(91), 1, + sym_reg, + ACTIONS(166), 2, + sym_word, + sym_address, + [2204] = 8, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -3758,126 +3969,145 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, STATE(59), 1, sym_line_comment, - STATE(104), 1, + STATE(107), 1, sym_reg, - ACTIONS(170), 2, + ACTIONS(166), 2, sym_word, sym_address, - [2147] = 8, + [2230] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(180), 1, - sym_meta_ident, - ACTIONS(186), 1, - anon_sym_LPAREN, + ACTIONS(184), 1, + anon_sym_RPAREN, STATE(60), 1, sym_line_comment, - STATE(111), 1, - sym_meta, - ACTIONS(184), 2, - ts_builtin_sym_end, - anon_sym_LF, - [2173] = 7, + ACTIONS(186), 4, + anon_sym_1, + anon_sym_2, + anon_sym_4, + anon_sym_8, + [2252] = 8, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, + ACTIONS(55), 1, + sym__reg, ACTIONS(188), 1, - ts_builtin_sym_end, - ACTIONS(190), 1, - anon_sym_LF, - STATE(41), 1, - aux_sym_program_repeat1, - STATE(61), 2, + anon_sym_RBRACE, + STATE(61), 1, sym_line_comment, - aux_sym_program_repeat2, - [2196] = 8, + STATE(107), 1, + sym_reg, + ACTIONS(166), 2, + sym_word, + sym_address, + [2278] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(182), 1, - anon_sym_RBRACE, - ACTIONS(193), 1, - anon_sym_COMMA, - ACTIONS(195), 1, - anon_sym_DASH, + ACTIONS(190), 1, + anon_sym_RPAREN, STATE(62), 1, sym_line_comment, - STATE(63), 1, - aux_sym_list_repeat1, - [2221] = 6, + ACTIONS(192), 4, + anon_sym_1, + anon_sym_2, + anon_sym_4, + anon_sym_8, + [2300] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(200), 1, - anon_sym_RBRACE, - ACTIONS(197), 2, - anon_sym_COMMA, - anon_sym_DASH, - STATE(63), 2, + ACTIONS(194), 1, + anon_sym_RPAREN, + STATE(63), 1, sym_line_comment, - aux_sym_list_repeat1, - [2242] = 7, + ACTIONS(196), 4, + anon_sym_1, + anon_sym_2, + anon_sym_4, + anon_sym_8, + [2322] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(204), 1, - anon_sym_COMMA, + ACTIONS(198), 1, + anon_sym_RPAREN, STATE(64), 1, sym_line_comment, - STATE(86), 1, - aux_sym_meta_repeat2, - ACTIONS(202), 2, - ts_builtin_sym_end, - anon_sym_LF, - [2265] = 7, + ACTIONS(200), 4, + anon_sym_1, + anon_sym_2, + anon_sym_4, + anon_sym_8, + [2344] = 8, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(208), 1, - anon_sym_COMMA, + ACTIONS(176), 1, + sym_meta_ident, + ACTIONS(204), 1, + anon_sym_LPAREN, STATE(65), 1, sym_line_comment, - STATE(68), 1, - aux_sym_meta_repeat3, - ACTIONS(206), 2, + STATE(120), 1, + sym_meta, + ACTIONS(202), 2, ts_builtin_sym_end, anon_sym_LF, - [2288] = 7, + [2370] = 8, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(210), 1, - anon_sym_COMMA, + ACTIONS(55), 1, + sym__reg, + ACTIONS(206), 1, + anon_sym_COMMA, STATE(66), 1, sym_line_comment, - STATE(87), 1, - aux_sym_meta_repeat1, - ACTIONS(202), 2, + STATE(147), 1, + sym_reg, + ACTIONS(166), 2, + sym_word, + sym_address, + [2396] = 6, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(210), 1, + anon_sym_COMMA, + ACTIONS(208), 2, ts_builtin_sym_end, anon_sym_LF, - [2311] = 7, + STATE(67), 2, + sym_line_comment, + aux_sym_instruction_repeat1, + [2417] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -3886,78 +4116,93 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, ACTIONS(55), 1, sym__reg, - STATE(67), 1, + STATE(68), 1, sym_line_comment, - STATE(121), 1, + STATE(107), 1, sym_reg, - ACTIONS(170), 2, + ACTIONS(166), 2, sym_word, sym_address, - [2334] = 7, + [2440] = 8, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(208), 1, + ACTIONS(182), 1, + anon_sym_RBRACE, + ACTIONS(213), 1, anon_sym_COMMA, - STATE(68), 1, + ACTIONS(215), 1, + anon_sym_DASH, + STATE(69), 1, sym_line_comment, - STATE(84), 1, - aux_sym_meta_repeat3, - ACTIONS(202), 2, - ts_builtin_sym_end, - anon_sym_LF, - [2357] = 7, + STATE(82), 1, + aux_sym_list_repeat1, + [2465] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(212), 1, - anon_sym_COMMA, - STATE(69), 1, + ACTIONS(55), 1, + sym__reg, + STATE(70), 1, sym_line_comment, + STATE(116), 1, + sym_reg, + ACTIONS(166), 2, + sym_word, + sym_address, + [2488] = 6, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(219), 1, + anon_sym_BANG, STATE(71), 1, - aux_sym_instruction_repeat1, - ACTIONS(114), 2, + sym_line_comment, + ACTIONS(217), 3, ts_builtin_sym_end, anon_sym_LF, - [2380] = 7, + anon_sym_COMMA, + [2509] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(204), 1, - anon_sym_COMMA, - STATE(64), 1, - aux_sym_meta_repeat2, - STATE(70), 1, + ACTIONS(70), 1, + anon_sym_LPAREN, + STATE(72), 1, sym_line_comment, - ACTIONS(206), 2, + ACTIONS(68), 3, ts_builtin_sym_end, anon_sym_LF, - [2403] = 7, + anon_sym_COMMA, + [2530] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(214), 1, + ACTIONS(223), 1, anon_sym_COMMA, - STATE(71), 1, + STATE(73), 1, sym_line_comment, - STATE(80), 1, - aux_sym_instruction_repeat1, - ACTIONS(47), 2, + STATE(81), 1, + aux_sym_meta_repeat1, + ACTIONS(221), 2, ts_builtin_sym_end, anon_sym_LF, - [2426] = 7, + [2553] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -3966,14 +4211,14 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, ACTIONS(55), 1, sym__reg, - STATE(72), 1, + STATE(74), 1, sym_line_comment, - STATE(120), 1, + STATE(92), 1, sym_reg, - ACTIONS(170), 2, + ACTIONS(166), 2, sym_word, sym_address, - [2449] = 7, + [2576] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -3982,92 +4227,123 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, ACTIONS(55), 1, sym__reg, - STATE(73), 1, + STATE(75), 1, sym_line_comment, - STATE(104), 1, + STATE(151), 1, sym_reg, - ACTIONS(170), 2, + ACTIONS(166), 2, sym_word, sym_address, - [2472] = 7, + [2599] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(210), 1, + ACTIONS(227), 1, anon_sym_COMMA, - STATE(66), 1, - aux_sym_meta_repeat1, - STATE(74), 1, - sym_line_comment, - ACTIONS(206), 2, + ACTIONS(225), 2, ts_builtin_sym_end, anon_sym_LF, - [2495] = 7, + STATE(76), 2, + sym_line_comment, + aux_sym_meta_repeat2, + [2620] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(55), 1, - sym__reg, - STATE(75), 1, + ACTIONS(232), 1, + anon_sym_COMMA, + ACTIONS(230), 2, + ts_builtin_sym_end, + anon_sym_LF, + STATE(77), 2, sym_line_comment, - STATE(102), 1, - sym_reg, - ACTIONS(170), 2, - sym_word, - sym_address, - [2518] = 7, + aux_sym_meta_repeat1, + [2641] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(216), 1, + ACTIONS(237), 1, anon_sym_COMMA, - ACTIONS(220), 1, - anon_sym_RBRACK, - STATE(76), 1, + ACTIONS(235), 2, + ts_builtin_sym_end, + anon_sym_LF, + STATE(78), 2, sym_line_comment, - ACTIONS(218), 2, - anon_sym_DASH, - anon_sym_PLUS, - [2541] = 6, + aux_sym_meta_repeat3, + [2662] = 8, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(224), 1, - anon_sym_BANG, - STATE(77), 1, + ACTIONS(141), 1, + anon_sym_LF, + ACTIONS(143), 1, + ts_builtin_sym_end, + STATE(36), 1, + aux_sym_program_repeat1, + STATE(79), 1, + sym_line_comment, + STATE(89), 1, + aux_sym_program_repeat2, + [2687] = 7, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(242), 1, + anon_sym_COMMA, + STATE(76), 1, + aux_sym_meta_repeat2, + STATE(80), 1, sym_line_comment, - ACTIONS(222), 3, + ACTIONS(240), 2, ts_builtin_sym_end, anon_sym_LF, - anon_sym_COMMA, - [2562] = 6, + [2710] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(70), 1, - anon_sym_LPAREN, - STATE(78), 1, + ACTIONS(223), 1, + anon_sym_COMMA, + STATE(77), 1, + aux_sym_meta_repeat1, + STATE(81), 1, sym_line_comment, - ACTIONS(68), 3, + ACTIONS(240), 2, ts_builtin_sym_end, anon_sym_LF, + [2733] = 6, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(247), 1, + anon_sym_RBRACE, + ACTIONS(244), 2, anon_sym_COMMA, - [2583] = 7, + anon_sym_DASH, + STATE(82), 2, + sym_line_comment, + aux_sym_list_repeat1, + [2754] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4076,29 +4352,30 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, ACTIONS(55), 1, sym__reg, - STATE(76), 1, - sym_reg, - STATE(79), 1, + STATE(83), 1, sym_line_comment, - ACTIONS(170), 2, + STATE(140), 1, + sym_reg, + ACTIONS(166), 2, sym_word, sym_address, - [2606] = 6, + [2777] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(228), 1, + ACTIONS(249), 1, anon_sym_COMMA, - ACTIONS(226), 2, + STATE(78), 1, + aux_sym_meta_repeat3, + STATE(84), 1, + sym_line_comment, + ACTIONS(240), 2, ts_builtin_sym_end, anon_sym_LF, - STATE(80), 2, - sym_line_comment, - aux_sym_instruction_repeat1, - [2627] = 8, + [2800] = 8, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4107,227 +4384,396 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, ACTIONS(141), 1, anon_sym_LF, - ACTIONS(231), 1, + ACTIONS(251), 1, ts_builtin_sym_end, STATE(37), 1, aux_sym_program_repeat1, - STATE(81), 1, - sym_line_comment, + STATE(79), 1, + aux_sym_program_repeat2, STATE(85), 1, + sym_line_comment, + [2825] = 6, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(255), 1, + anon_sym_BANG, + STATE(86), 1, + sym_line_comment, + ACTIONS(253), 3, + ts_builtin_sym_end, + anon_sym_LF, + anon_sym_COMMA, + [2846] = 7, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(257), 1, + anon_sym_COMMA, + STATE(87), 1, + sym_line_comment, + STATE(95), 1, + aux_sym_instruction_repeat1, + ACTIONS(114), 2, + ts_builtin_sym_end, + anon_sym_LF, + [2869] = 7, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(242), 1, + anon_sym_COMMA, + STATE(80), 1, + aux_sym_meta_repeat2, + STATE(88), 1, + sym_line_comment, + ACTIONS(221), 2, + ts_builtin_sym_end, + anon_sym_LF, + [2892] = 7, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(259), 1, + ts_builtin_sym_end, + ACTIONS(261), 1, + anon_sym_LF, + STATE(41), 1, + aux_sym_program_repeat1, + STATE(89), 2, + sym_line_comment, aux_sym_program_repeat2, - [2652] = 8, + [2915] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(195), 1, + ACTIONS(55), 1, + sym__reg, + STATE(90), 1, + sym_line_comment, + STATE(154), 1, + sym_reg, + ACTIONS(166), 2, + sym_word, + sym_address, + [2938] = 8, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(215), 1, anon_sym_DASH, - ACTIONS(233), 1, + ACTIONS(264), 1, anon_sym_COMMA, - ACTIONS(235), 1, + ACTIONS(266), 1, anon_sym_RBRACE, - STATE(62), 1, + STATE(69), 1, aux_sym_list_repeat1, - STATE(82), 1, + STATE(91), 1, sym_line_comment, - [2677] = 6, + [2963] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(239), 1, - anon_sym_BANG, - STATE(83), 1, + ACTIONS(268), 1, + anon_sym_COMMA, + ACTIONS(272), 1, + anon_sym_RBRACK, + STATE(92), 1, + sym_line_comment, + ACTIONS(270), 2, + anon_sym_DASH, + anon_sym_PLUS, + [2986] = 7, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(55), 1, + sym__reg, + STATE(93), 1, + sym_line_comment, + STATE(134), 1, + sym_reg, + ACTIONS(166), 2, + sym_word, + sym_address, + [3009] = 7, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(249), 1, + anon_sym_COMMA, + STATE(84), 1, + aux_sym_meta_repeat3, + STATE(94), 1, + sym_line_comment, + ACTIONS(221), 2, + ts_builtin_sym_end, + anon_sym_LF, + [3032] = 7, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(274), 1, + anon_sym_COMMA, + STATE(67), 1, + aux_sym_instruction_repeat1, + STATE(95), 1, sym_line_comment, - ACTIONS(237), 3, + ACTIONS(47), 2, + ts_builtin_sym_end, + anon_sym_LF, + [3055] = 5, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + STATE(96), 1, + sym_line_comment, + ACTIONS(276), 3, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [2698] = 6, + [3073] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(243), 1, + STATE(97), 1, + sym_line_comment, + ACTIONS(235), 3, + ts_builtin_sym_end, + anon_sym_LF, anon_sym_COMMA, - ACTIONS(241), 2, + [3091] = 5, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + STATE(98), 1, + sym_line_comment, + ACTIONS(278), 3, ts_builtin_sym_end, anon_sym_LF, - STATE(84), 2, + anon_sym_COMMA, + [3109] = 5, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + STATE(99), 1, sym_line_comment, - aux_sym_meta_repeat3, - [2719] = 8, + ACTIONS(68), 3, + ts_builtin_sym_end, + anon_sym_LF, + anon_sym_COMMA, + [3127] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(139), 1, + STATE(100), 1, + sym_line_comment, + ACTIONS(253), 3, ts_builtin_sym_end, - ACTIONS(141), 1, anon_sym_LF, - STATE(38), 1, - aux_sym_program_repeat1, - STATE(61), 1, - aux_sym_program_repeat2, - STATE(85), 1, + anon_sym_COMMA, + [3145] = 5, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + STATE(101), 1, sym_line_comment, - [2744] = 6, + ACTIONS(280), 3, + ts_builtin_sym_end, + anon_sym_LF, + anon_sym_COMMA, + [3163] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(248), 1, - anon_sym_COMMA, - ACTIONS(246), 2, + STATE(102), 1, + sym_line_comment, + ACTIONS(225), 3, ts_builtin_sym_end, anon_sym_LF, - STATE(86), 2, - sym_line_comment, - aux_sym_meta_repeat2, - [2765] = 6, + anon_sym_COMMA, + [3181] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(253), 1, - anon_sym_COMMA, - ACTIONS(251), 2, + STATE(103), 1, + sym_line_comment, + ACTIONS(282), 3, ts_builtin_sym_end, anon_sym_LF, - STATE(87), 2, - sym_line_comment, - aux_sym_meta_repeat1, - [2786] = 6, + anon_sym_COMMA, + [3199] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(88), 1, + STATE(104), 1, sym_line_comment, - STATE(99), 1, - sym_string, - ACTIONS(53), 2, - aux_sym_string_token1, - aux_sym_string_token2, - [2806] = 5, + ACTIONS(284), 3, + ts_builtin_sym_end, + anon_sym_LF, + anon_sym_COMMA, + [3217] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(89), 1, + STATE(105), 1, sym_line_comment, - ACTIONS(256), 3, + ACTIONS(286), 3, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [2824] = 5, + [3235] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(90), 1, + STATE(106), 1, sym_line_comment, - ACTIONS(258), 3, + ACTIONS(288), 3, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [2842] = 5, + [3253] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(91), 1, + STATE(107), 1, sym_line_comment, - ACTIONS(226), 3, - ts_builtin_sym_end, - anon_sym_LF, + ACTIONS(247), 3, anon_sym_COMMA, - [2860] = 5, + anon_sym_DASH, + anon_sym_RBRACE, + [3271] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(92), 1, + STATE(108), 1, sym_line_comment, - ACTIONS(222), 3, + ACTIONS(290), 3, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [2878] = 5, + [3289] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(93), 1, + STATE(109), 1, sym_line_comment, - ACTIONS(237), 3, + ACTIONS(292), 3, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [2896] = 5, + [3307] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(94), 1, + STATE(110), 1, sym_line_comment, - ACTIONS(260), 3, + ACTIONS(294), 3, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [2914] = 5, + [3325] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(95), 1, + STATE(111), 1, sym_line_comment, - ACTIONS(246), 3, + ACTIONS(296), 3, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [2932] = 5, + [3343] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(96), 1, + STATE(112), 1, sym_line_comment, - ACTIONS(262), 3, + ACTIONS(298), 3, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [2950] = 5, + [3361] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4335,752 +4781,879 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(7), 1, sym_block_comment, STATE(97), 1, + sym_string, + STATE(113), 1, sym_line_comment, - ACTIONS(251), 3, - ts_builtin_sym_end, - anon_sym_LF, - anon_sym_COMMA, - [2968] = 5, + ACTIONS(53), 2, + aux_sym_string_token1, + aux_sym_string_token2, + [3381] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(98), 1, + STATE(114), 1, sym_line_comment, - ACTIONS(264), 3, + ACTIONS(300), 3, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [2986] = 5, + [3399] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(99), 1, + STATE(115), 1, sym_line_comment, - ACTIONS(241), 3, + ACTIONS(230), 3, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [3004] = 5, + [3417] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(100), 1, + ACTIONS(304), 1, + anon_sym_RBRACK, + STATE(116), 1, sym_line_comment, - ACTIONS(68), 3, + ACTIONS(302), 2, + anon_sym_DASH, + anon_sym_PLUS, + [3437] = 5, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + STATE(117), 1, + sym_line_comment, + ACTIONS(306), 3, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [3022] = 5, + [3455] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(101), 1, + STATE(118), 1, sym_line_comment, - ACTIONS(266), 3, + ACTIONS(208), 3, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [3040] = 6, + [3473] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(270), 1, - anon_sym_RBRACK, - STATE(102), 1, + STATE(119), 1, sym_line_comment, - ACTIONS(268), 2, - anon_sym_DASH, - anon_sym_PLUS, - [3060] = 5, + ACTIONS(308), 3, + ts_builtin_sym_end, + anon_sym_LF, + anon_sym_COMMA, + [3491] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(103), 1, + STATE(120), 1, sym_line_comment, - ACTIONS(272), 3, + ACTIONS(310), 2, ts_builtin_sym_end, anon_sym_LF, - anon_sym_COMMA, - [3078] = 5, - ACTIONS(3), 1, + [3508] = 6, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(49), 1, anon_sym_POUND, + ACTIONS(312), 1, + aux_sym_int_token2, + STATE(121), 1, + sym_line_comment, + STATE(142), 1, + sym_int, + [3527] = 6, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(104), 1, + ACTIONS(49), 1, + anon_sym_POUND, + ACTIONS(312), 1, + aux_sym_int_token2, + STATE(122), 1, sym_line_comment, - ACTIONS(200), 3, - anon_sym_COMMA, - anon_sym_DASH, - anon_sym_RBRACE, - [3096] = 6, + STATE(146), 1, + sym_int, + [3546] = 6, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, ACTIONS(49), 1, anon_sym_POUND, - ACTIONS(274), 1, + ACTIONS(312), 1, aux_sym_int_token2, - STATE(97), 1, + STATE(115), 1, sym_int, - STATE(105), 1, + STATE(123), 1, sym_line_comment, - [3115] = 5, + [3565] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(106), 1, + STATE(124), 1, sym_line_comment, - ACTIONS(206), 2, + ACTIONS(259), 2, ts_builtin_sym_end, anon_sym_LF, - [3132] = 5, + [3582] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(107), 1, + STATE(125), 1, sym_line_comment, - ACTIONS(276), 2, + ACTIONS(314), 2, ts_builtin_sym_end, anon_sym_LF, - [3149] = 5, + [3599] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(108), 1, + STATE(126), 1, sym_line_comment, - ACTIONS(278), 2, + ACTIONS(221), 2, ts_builtin_sym_end, anon_sym_LF, - [3166] = 6, + [3616] = 5, + ACTIONS(3), 1, + anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(49), 1, - anon_sym_POUND, - ACTIONS(274), 1, - aux_sym_int_token2, - STATE(109), 1, + STATE(127), 1, sym_line_comment, - STATE(123), 1, - sym_int, - [3185] = 5, + ACTIONS(316), 2, + ts_builtin_sym_end, + anon_sym_LF, + [3633] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(110), 1, + STATE(128), 1, sym_line_comment, - ACTIONS(188), 2, + ACTIONS(318), 2, ts_builtin_sym_end, anon_sym_LF, - [3202] = 5, + [3650] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(111), 1, + STATE(129), 1, sym_line_comment, - ACTIONS(280), 2, + ACTIONS(320), 2, ts_builtin_sym_end, anon_sym_LF, - [3219] = 5, + [3667] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(112), 1, + STATE(130), 1, sym_line_comment, - ACTIONS(282), 2, + ACTIONS(322), 2, ts_builtin_sym_end, anon_sym_LF, - [3236] = 5, + [3684] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(113), 1, + ACTIONS(324), 1, + anon_sym_rel, + STATE(131), 1, sym_line_comment, - ACTIONS(284), 2, - ts_builtin_sym_end, - anon_sym_LF, - [3253] = 5, + [3700] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(114), 1, + ACTIONS(326), 1, + anon_sym_RBRACK, + STATE(132), 1, sym_line_comment, - ACTIONS(286), 2, + [3716] = 5, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(328), 1, ts_builtin_sym_end, - anon_sym_LF, - [3270] = 6, + STATE(133), 1, + sym_line_comment, + [3732] = 5, + ACTIONS(3), 1, + anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(49), 1, + ACTIONS(330), 1, + anon_sym_COMMA, + STATE(134), 1, + sym_line_comment, + [3748] = 5, + ACTIONS(3), 1, anon_sym_POUND, - ACTIONS(274), 1, - aux_sym_int_token2, - STATE(115), 1, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(332), 1, + anon_sym_RPAREN, + STATE(135), 1, sym_line_comment, - STATE(122), 1, - sym_int, - [3289] = 5, - ACTIONS(288), 1, + [3764] = 5, + ACTIONS(3), 1, anon_sym_POUND, - ACTIONS(290), 1, - aux_sym_line_comment_token1, - ACTIONS(292), 1, + ACTIONS(5), 1, aux_sym_line_comment_token2, - ACTIONS(294), 1, + ACTIONS(7), 1, sym_block_comment, - STATE(116), 1, + ACTIONS(334), 1, + sym_float, + STATE(136), 1, sym_line_comment, - [3305] = 5, + [3780] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(296), 1, - anon_sym_RBRACK, - STATE(117), 1, + ACTIONS(336), 1, + anon_sym_RPAREN, + STATE(137), 1, sym_line_comment, - [3321] = 5, + [3796] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(298), 1, - anon_sym_LBRACK, - STATE(118), 1, + ACTIONS(338), 1, + aux_sym_int_token1, + STATE(138), 1, sym_line_comment, - [3337] = 5, + [3812] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(300), 1, - anon_sym_LBRACK, - STATE(119), 1, + ACTIONS(340), 1, + sym_word, + STATE(139), 1, sym_line_comment, - [3353] = 5, + [3828] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(224), 1, - anon_sym_RPAREN, - STATE(120), 1, + ACTIONS(342), 1, + anon_sym_COMMA, + STATE(140), 1, sym_line_comment, - [3369] = 5, + [3844] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(302), 1, + ACTIONS(344), 1, anon_sym_RPAREN, - STATE(121), 1, + STATE(141), 1, sym_line_comment, - [3385] = 5, + [3860] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(270), 1, + ACTIONS(346), 1, anon_sym_RBRACK, - STATE(122), 1, + STATE(142), 1, sym_line_comment, - [3401] = 5, + [3876] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(304), 1, - anon_sym_RBRACK, - STATE(123), 1, + ACTIONS(348), 1, + anon_sym_ptr, + STATE(143), 1, sym_line_comment, - [3417] = 5, + [3892] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(306), 1, - sym_float, - STATE(124), 1, + ACTIONS(350), 1, + sym_word, + STATE(144), 1, sym_line_comment, - [3433] = 5, + [3908] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(308), 1, - aux_sym_int_token1, - STATE(125), 1, + ACTIONS(23), 1, + anon_sym_COLON, + STATE(145), 1, sym_line_comment, - [3449] = 5, + [3924] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(310), 1, - anon_sym_rel, - STATE(126), 1, + ACTIONS(304), 1, + anon_sym_RBRACK, + STATE(146), 1, sym_line_comment, - [3465] = 5, + [3940] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(312), 1, - anon_sym_ptr, - STATE(127), 1, + ACTIONS(352), 1, + anon_sym_COMMA, + STATE(147), 1, sym_line_comment, - [3481] = 5, + [3956] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(314), 1, + ACTIONS(354), 1, anon_sym_RPAREN, - STATE(128), 1, + STATE(148), 1, + sym_line_comment, + [3972] = 5, + ACTIONS(356), 1, + anon_sym_POUND, + ACTIONS(358), 1, + aux_sym_line_comment_token1, + ACTIONS(360), 1, + aux_sym_line_comment_token2, + ACTIONS(362), 1, + sym_block_comment, + STATE(149), 1, sym_line_comment, - [3497] = 5, + [3988] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(316), 1, - anon_sym_RPAREN, - STATE(129), 1, + ACTIONS(364), 1, + anon_sym_LBRACK, + STATE(150), 1, sym_line_comment, - [3513] = 5, + [4004] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(318), 1, - ts_builtin_sym_end, - STATE(130), 1, + ACTIONS(366), 1, + anon_sym_COMMA, + STATE(151), 1, sym_line_comment, - [3529] = 5, + [4020] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(23), 1, - anon_sym_COLON, - STATE(131), 1, + ACTIONS(368), 1, + anon_sym_LBRACK, + STATE(152), 1, sym_line_comment, - [3545] = 5, + [4036] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(320), 1, - sym_word, - STATE(132), 1, + ACTIONS(370), 1, + anon_sym_COMMA, + STATE(153), 1, sym_line_comment, - [3561] = 5, + [4052] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(322), 1, - sym_word, - STATE(133), 1, + ACTIONS(372), 1, + anon_sym_COMMA, + STATE(154), 1, sym_line_comment, - [3577] = 5, + [4068] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(324), 1, + ACTIONS(374), 1, + anon_sym_RPAREN, + STATE(155), 1, + sym_line_comment, + [4084] = 5, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(376), 1, + anon_sym_RPAREN, + STATE(156), 1, + sym_line_comment, + [4100] = 5, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(378), 1, aux_sym_int_token1, - STATE(134), 1, + STATE(157), 1, sym_line_comment, - [3593] = 1, - ACTIONS(326), 1, + [4116] = 1, + ACTIONS(380), 1, ts_builtin_sym_end, - [3597] = 1, - ACTIONS(328), 1, + [4120] = 1, + ACTIONS(382), 1, ts_builtin_sym_end, }; static const uint32_t ts_small_parse_table_map[] = { - [SMALL_STATE(3)] = 0, - [SMALL_STATE(4)] = 69, - [SMALL_STATE(5)] = 138, - [SMALL_STATE(6)] = 203, - [SMALL_STATE(7)] = 238, - [SMALL_STATE(8)] = 279, - [SMALL_STATE(9)] = 314, - [SMALL_STATE(10)] = 348, - [SMALL_STATE(11)] = 386, - [SMALL_STATE(12)] = 420, - [SMALL_STATE(13)] = 454, - [SMALL_STATE(14)] = 493, - [SMALL_STATE(15)] = 536, - [SMALL_STATE(16)] = 569, - [SMALL_STATE(17)] = 606, - [SMALL_STATE(18)] = 639, - [SMALL_STATE(19)] = 686, - [SMALL_STATE(20)] = 721, - [SMALL_STATE(21)] = 769, - [SMALL_STATE(22)] = 815, - [SMALL_STATE(23)] = 866, - [SMALL_STATE(24)] = 914, - [SMALL_STATE(25)] = 955, - [SMALL_STATE(26)] = 996, - [SMALL_STATE(27)] = 1037, - [SMALL_STATE(28)] = 1078, - [SMALL_STATE(29)] = 1119, - [SMALL_STATE(30)] = 1160, - [SMALL_STATE(31)] = 1201, - [SMALL_STATE(32)] = 1242, - [SMALL_STATE(33)] = 1283, - [SMALL_STATE(34)] = 1324, - [SMALL_STATE(35)] = 1365, - [SMALL_STATE(36)] = 1396, - [SMALL_STATE(37)] = 1426, - [SMALL_STATE(38)] = 1472, - [SMALL_STATE(39)] = 1518, - [SMALL_STATE(40)] = 1548, - [SMALL_STATE(41)] = 1578, - [SMALL_STATE(42)] = 1621, - [SMALL_STATE(43)] = 1649, - [SMALL_STATE(44)] = 1676, - [SMALL_STATE(45)] = 1705, - [SMALL_STATE(46)] = 1736, - [SMALL_STATE(47)] = 1773, - [SMALL_STATE(48)] = 1806, - [SMALL_STATE(49)] = 1841, - [SMALL_STATE(50)] = 1868, - [SMALL_STATE(51)] = 1900, - [SMALL_STATE(52)] = 1932, - [SMALL_STATE(53)] = 1959, - [SMALL_STATE(54)] = 1983, - [SMALL_STATE(55)] = 2013, - [SMALL_STATE(56)] = 2043, - [SMALL_STATE(57)] = 2069, - [SMALL_STATE(58)] = 2095, - [SMALL_STATE(59)] = 2121, - [SMALL_STATE(60)] = 2147, - [SMALL_STATE(61)] = 2173, - [SMALL_STATE(62)] = 2196, - [SMALL_STATE(63)] = 2221, - [SMALL_STATE(64)] = 2242, - [SMALL_STATE(65)] = 2265, - [SMALL_STATE(66)] = 2288, - [SMALL_STATE(67)] = 2311, - [SMALL_STATE(68)] = 2334, - [SMALL_STATE(69)] = 2357, - [SMALL_STATE(70)] = 2380, - [SMALL_STATE(71)] = 2403, - [SMALL_STATE(72)] = 2426, - [SMALL_STATE(73)] = 2449, - [SMALL_STATE(74)] = 2472, - [SMALL_STATE(75)] = 2495, - [SMALL_STATE(76)] = 2518, - [SMALL_STATE(77)] = 2541, - [SMALL_STATE(78)] = 2562, - [SMALL_STATE(79)] = 2583, - [SMALL_STATE(80)] = 2606, - [SMALL_STATE(81)] = 2627, - [SMALL_STATE(82)] = 2652, - [SMALL_STATE(83)] = 2677, - [SMALL_STATE(84)] = 2698, - [SMALL_STATE(85)] = 2719, - [SMALL_STATE(86)] = 2744, - [SMALL_STATE(87)] = 2765, - [SMALL_STATE(88)] = 2786, - [SMALL_STATE(89)] = 2806, - [SMALL_STATE(90)] = 2824, - [SMALL_STATE(91)] = 2842, - [SMALL_STATE(92)] = 2860, - [SMALL_STATE(93)] = 2878, - [SMALL_STATE(94)] = 2896, - [SMALL_STATE(95)] = 2914, - [SMALL_STATE(96)] = 2932, - [SMALL_STATE(97)] = 2950, - [SMALL_STATE(98)] = 2968, - [SMALL_STATE(99)] = 2986, - [SMALL_STATE(100)] = 3004, - [SMALL_STATE(101)] = 3022, - [SMALL_STATE(102)] = 3040, - [SMALL_STATE(103)] = 3060, - [SMALL_STATE(104)] = 3078, - [SMALL_STATE(105)] = 3096, - [SMALL_STATE(106)] = 3115, - [SMALL_STATE(107)] = 3132, - [SMALL_STATE(108)] = 3149, - [SMALL_STATE(109)] = 3166, - [SMALL_STATE(110)] = 3185, - [SMALL_STATE(111)] = 3202, - [SMALL_STATE(112)] = 3219, - [SMALL_STATE(113)] = 3236, - [SMALL_STATE(114)] = 3253, - [SMALL_STATE(115)] = 3270, - [SMALL_STATE(116)] = 3289, - [SMALL_STATE(117)] = 3305, - [SMALL_STATE(118)] = 3321, - [SMALL_STATE(119)] = 3337, - [SMALL_STATE(120)] = 3353, - [SMALL_STATE(121)] = 3369, - [SMALL_STATE(122)] = 3385, - [SMALL_STATE(123)] = 3401, - [SMALL_STATE(124)] = 3417, - [SMALL_STATE(125)] = 3433, - [SMALL_STATE(126)] = 3449, - [SMALL_STATE(127)] = 3465, - [SMALL_STATE(128)] = 3481, - [SMALL_STATE(129)] = 3497, - [SMALL_STATE(130)] = 3513, - [SMALL_STATE(131)] = 3529, - [SMALL_STATE(132)] = 3545, - [SMALL_STATE(133)] = 3561, - [SMALL_STATE(134)] = 3577, - [SMALL_STATE(135)] = 3593, - [SMALL_STATE(136)] = 3597, + [SMALL_STATE(2)] = 0, + [SMALL_STATE(3)] = 83, + [SMALL_STATE(4)] = 152, + [SMALL_STATE(5)] = 221, + [SMALL_STATE(6)] = 286, + [SMALL_STATE(7)] = 321, + [SMALL_STATE(8)] = 362, + [SMALL_STATE(9)] = 397, + [SMALL_STATE(10)] = 431, + [SMALL_STATE(11)] = 465, + [SMALL_STATE(12)] = 499, + [SMALL_STATE(13)] = 537, + [SMALL_STATE(14)] = 584, + [SMALL_STATE(15)] = 617, + [SMALL_STATE(16)] = 660, + [SMALL_STATE(17)] = 699, + [SMALL_STATE(18)] = 736, + [SMALL_STATE(19)] = 771, + [SMALL_STATE(20)] = 804, + [SMALL_STATE(21)] = 852, + [SMALL_STATE(22)] = 898, + [SMALL_STATE(23)] = 949, + [SMALL_STATE(24)] = 997, + [SMALL_STATE(25)] = 1038, + [SMALL_STATE(26)] = 1079, + [SMALL_STATE(27)] = 1120, + [SMALL_STATE(28)] = 1161, + [SMALL_STATE(29)] = 1202, + [SMALL_STATE(30)] = 1243, + [SMALL_STATE(31)] = 1284, + [SMALL_STATE(32)] = 1325, + [SMALL_STATE(33)] = 1366, + [SMALL_STATE(34)] = 1397, + [SMALL_STATE(35)] = 1438, + [SMALL_STATE(36)] = 1479, + [SMALL_STATE(37)] = 1525, + [SMALL_STATE(38)] = 1571, + [SMALL_STATE(39)] = 1601, + [SMALL_STATE(40)] = 1631, + [SMALL_STATE(41)] = 1661, + [SMALL_STATE(42)] = 1704, + [SMALL_STATE(43)] = 1732, + [SMALL_STATE(44)] = 1759, + [SMALL_STATE(45)] = 1796, + [SMALL_STATE(46)] = 1831, + [SMALL_STATE(47)] = 1858, + [SMALL_STATE(48)] = 1891, + [SMALL_STATE(49)] = 1922, + [SMALL_STATE(50)] = 1951, + [SMALL_STATE(51)] = 1983, + [SMALL_STATE(52)] = 2015, + [SMALL_STATE(53)] = 2042, + [SMALL_STATE(54)] = 2072, + [SMALL_STATE(55)] = 2096, + [SMALL_STATE(56)] = 2126, + [SMALL_STATE(57)] = 2152, + [SMALL_STATE(58)] = 2178, + [SMALL_STATE(59)] = 2204, + [SMALL_STATE(60)] = 2230, + [SMALL_STATE(61)] = 2252, + [SMALL_STATE(62)] = 2278, + [SMALL_STATE(63)] = 2300, + [SMALL_STATE(64)] = 2322, + [SMALL_STATE(65)] = 2344, + [SMALL_STATE(66)] = 2370, + [SMALL_STATE(67)] = 2396, + [SMALL_STATE(68)] = 2417, + [SMALL_STATE(69)] = 2440, + [SMALL_STATE(70)] = 2465, + [SMALL_STATE(71)] = 2488, + [SMALL_STATE(72)] = 2509, + [SMALL_STATE(73)] = 2530, + [SMALL_STATE(74)] = 2553, + [SMALL_STATE(75)] = 2576, + [SMALL_STATE(76)] = 2599, + [SMALL_STATE(77)] = 2620, + [SMALL_STATE(78)] = 2641, + [SMALL_STATE(79)] = 2662, + [SMALL_STATE(80)] = 2687, + [SMALL_STATE(81)] = 2710, + [SMALL_STATE(82)] = 2733, + [SMALL_STATE(83)] = 2754, + [SMALL_STATE(84)] = 2777, + [SMALL_STATE(85)] = 2800, + [SMALL_STATE(86)] = 2825, + [SMALL_STATE(87)] = 2846, + [SMALL_STATE(88)] = 2869, + [SMALL_STATE(89)] = 2892, + [SMALL_STATE(90)] = 2915, + [SMALL_STATE(91)] = 2938, + [SMALL_STATE(92)] = 2963, + [SMALL_STATE(93)] = 2986, + [SMALL_STATE(94)] = 3009, + [SMALL_STATE(95)] = 3032, + [SMALL_STATE(96)] = 3055, + [SMALL_STATE(97)] = 3073, + [SMALL_STATE(98)] = 3091, + [SMALL_STATE(99)] = 3109, + [SMALL_STATE(100)] = 3127, + [SMALL_STATE(101)] = 3145, + [SMALL_STATE(102)] = 3163, + [SMALL_STATE(103)] = 3181, + [SMALL_STATE(104)] = 3199, + [SMALL_STATE(105)] = 3217, + [SMALL_STATE(106)] = 3235, + [SMALL_STATE(107)] = 3253, + [SMALL_STATE(108)] = 3271, + [SMALL_STATE(109)] = 3289, + [SMALL_STATE(110)] = 3307, + [SMALL_STATE(111)] = 3325, + [SMALL_STATE(112)] = 3343, + [SMALL_STATE(113)] = 3361, + [SMALL_STATE(114)] = 3381, + [SMALL_STATE(115)] = 3399, + [SMALL_STATE(116)] = 3417, + [SMALL_STATE(117)] = 3437, + [SMALL_STATE(118)] = 3455, + [SMALL_STATE(119)] = 3473, + [SMALL_STATE(120)] = 3491, + [SMALL_STATE(121)] = 3508, + [SMALL_STATE(122)] = 3527, + [SMALL_STATE(123)] = 3546, + [SMALL_STATE(124)] = 3565, + [SMALL_STATE(125)] = 3582, + [SMALL_STATE(126)] = 3599, + [SMALL_STATE(127)] = 3616, + [SMALL_STATE(128)] = 3633, + [SMALL_STATE(129)] = 3650, + [SMALL_STATE(130)] = 3667, + [SMALL_STATE(131)] = 3684, + [SMALL_STATE(132)] = 3700, + [SMALL_STATE(133)] = 3716, + [SMALL_STATE(134)] = 3732, + [SMALL_STATE(135)] = 3748, + [SMALL_STATE(136)] = 3764, + [SMALL_STATE(137)] = 3780, + [SMALL_STATE(138)] = 3796, + [SMALL_STATE(139)] = 3812, + [SMALL_STATE(140)] = 3828, + [SMALL_STATE(141)] = 3844, + [SMALL_STATE(142)] = 3860, + [SMALL_STATE(143)] = 3876, + [SMALL_STATE(144)] = 3892, + [SMALL_STATE(145)] = 3908, + [SMALL_STATE(146)] = 3924, + [SMALL_STATE(147)] = 3940, + [SMALL_STATE(148)] = 3956, + [SMALL_STATE(149)] = 3972, + [SMALL_STATE(150)] = 3988, + [SMALL_STATE(151)] = 4004, + [SMALL_STATE(152)] = 4020, + [SMALL_STATE(153)] = 4036, + [SMALL_STATE(154)] = 4052, + [SMALL_STATE(155)] = 4068, + [SMALL_STATE(156)] = 4084, + [SMALL_STATE(157)] = 4100, + [SMALL_STATE(158)] = 4116, + [SMALL_STATE(159)] = 4120, }; 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(116), - [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(136), + [3] = {.entry = {.count = 1, .reusable = true}}, SHIFT(149), + [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(159), [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT_EXTRA(), [9] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_program, 0, 0, 0), - [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(133), - [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(132), + [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(144), + [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(139), [15] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2), [17] = {.entry = {.count = 1, .reusable = false}}, SHIFT(22), - [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(131), + [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(145), [21] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_instruction, 1, 0, 1), - [23] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), - [25] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), - [27] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), - [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(127), - [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79), - [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(126), - [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(125), - [37] = {.entry = {.count = 1, .reusable = false}}, SHIFT(8), - [39] = {.entry = {.count = 1, .reusable = false}}, SHIFT(100), - [41] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), - [43] = {.entry = {.count = 1, .reusable = false}}, SHIFT(9), + [23] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), + [25] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), + [27] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), + [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(143), + [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), + [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(131), + [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(138), + [37] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6), + [39] = {.entry = {.count = 1, .reusable = false}}, SHIFT(99), + [41] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), + [43] = {.entry = {.count = 1, .reusable = false}}, SHIFT(10), [45] = {.entry = {.count = 1, .reusable = false}}, SHIFT(11), [47] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_instruction, 3, 0, 1), - [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(134), - [51] = {.entry = {.count = 1, .reusable = false}}, SHIFT(36), + [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(157), + [51] = {.entry = {.count = 1, .reusable = false}}, SHIFT(38), [53] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), - [55] = {.entry = {.count = 1, .reusable = false}}, SHIFT(35), - [57] = {.entry = {.count = 1, .reusable = false}}, SHIFT(40), + [55] = {.entry = {.count = 1, .reusable = false}}, SHIFT(33), + [57] = {.entry = {.count = 1, .reusable = false}}, SHIFT(39), [59] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_instruction, 4, 0, 1), - [61] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_int, 2, 0, 0), - [63] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_int, 2, 0, 0), + [61] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_int, 1, 0, 0), + [63] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_int, 1, 0, 0), [65] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__expr, 1, 0, 0), REDUCE(sym__tc_expr, 1, 0, 0), [68] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr, 1, 0, 0), - [70] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), + [70] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), [72] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__tc_expr, 1, 0, 0), [74] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__tc_expr, 1, 0, 0), - [76] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_int, 1, 0, 0), - [78] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_int, 1, 0, 0), - [80] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_reg, 1, 0, 0), - [82] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_reg, 1, 0, 0), - [84] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ident, 1, 0, 0), - [86] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_ident, 1, 0, 0), - [88] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string, 1, 0, 0), - [90] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string, 1, 0, 0), - [92] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tc_infix, 3, 0, 5), - [94] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tc_infix, 3, 0, 5), - [96] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), - [98] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), - [100] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), - [102] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), - [104] = {.entry = {.count = 1, .reusable = false}}, SHIFT(27), - [106] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_instruction_repeat2, 1, 0, 0), - [108] = {.entry = {.count = 1, .reusable = false}}, SHIFT(25), - [110] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), - [112] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_instruction_repeat2, 1, 0, 0), + [76] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_int, 2, 0, 0), + [78] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_int, 2, 0, 0), + [80] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string, 1, 0, 0), + [82] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string, 1, 0, 0), + [84] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_reg, 1, 0, 0), + [86] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_reg, 1, 0, 0), + [88] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ident, 1, 0, 0), + [90] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_ident, 1, 0, 0), + [92] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_instruction_repeat2, 1, 0, 0), + [94] = {.entry = {.count = 1, .reusable = false}}, SHIFT(25), + [96] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), + [98] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), + [100] = {.entry = {.count = 1, .reusable = false}}, SHIFT(26), + [102] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), + [104] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), + [106] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), + [108] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_instruction_repeat2, 1, 0, 0), + [110] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tc_infix, 3, 0, 5), + [112] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tc_infix, 3, 0, 5), [114] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_instruction, 2, 0, 1), [116] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_instruction_repeat2, 2, 0, 0), - [118] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_instruction_repeat2, 2, 0, 0), SHIFT_REPEAT(125), - [121] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_instruction_repeat2, 2, 0, 0), SHIFT_REPEAT(8), - [124] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_instruction_repeat2, 2, 0, 0), SHIFT_REPEAT(12), - [127] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_instruction_repeat2, 2, 0, 0), SHIFT_REPEAT(9), + [118] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_instruction_repeat2, 2, 0, 0), SHIFT_REPEAT(138), + [121] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_instruction_repeat2, 2, 0, 0), SHIFT_REPEAT(6), + [124] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_instruction_repeat2, 2, 0, 0), SHIFT_REPEAT(9), + [127] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_instruction_repeat2, 2, 0, 0), SHIFT_REPEAT(10), [130] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_instruction_repeat2, 2, 0, 0), SHIFT_REPEAT(11), [133] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_meta, 1, 0, 1), - [135] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), - [137] = {.entry = {.count = 1, .reusable = false}}, SHIFT(70), - [139] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_program, 2, 0, 0), - [141] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), - [143] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_program, 3, 0, 0), - [145] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), - [147] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), - [149] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_const, 3, 0, 4), - [151] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), - [153] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), - [155] = {.entry = {.count = 1, .reusable = false}}, SHIFT(33), - [157] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), + [135] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), + [137] = {.entry = {.count = 1, .reusable = false}}, SHIFT(88), + [139] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_program, 3, 0, 0), + [141] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), + [143] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_program, 2, 0, 0), + [145] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_const, 3, 0, 4), + [147] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), + [149] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), + [151] = {.entry = {.count = 1, .reusable = false}}, SHIFT(34), + [153] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), + [155] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), + [157] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), [159] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_program_repeat1, 2, 0, 0), - [161] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_program_repeat1, 2, 0, 0), SHIFT_REPEAT(53), + [161] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_program_repeat1, 2, 0, 0), SHIFT_REPEAT(54), [164] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 2, 0, 0), - [166] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_program_repeat1, 1, 0, 0), - [168] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 1, 0, 0), - [170] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), - [172] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), - [174] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), - [176] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 2, 0, 3), - [178] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), - [180] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), - [182] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), - [184] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 2, 0, 0), - [186] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), - [188] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_program_repeat2, 2, 0, 0), - [190] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_program_repeat2, 2, 0, 0), SHIFT_REPEAT(53), - [193] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), - [195] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), - [197] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2, 0, 0), SHIFT_REPEAT(73), - [200] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2, 0, 0), - [202] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_meta, 3, 0, 1), - [204] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124), - [206] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_meta, 2, 0, 1), - [208] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), - [210] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), - [212] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), - [214] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), - [216] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109), - [218] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), - [220] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), - [222] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 3, 0, 0), - [224] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), - [226] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_instruction_repeat1, 2, 0, 0), - [228] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_instruction_repeat1, 2, 0, 0), SHIFT_REPEAT(5), - [231] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_program, 1, 0, 0), - [233] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), - [235] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), - [237] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 5, 0, 0), - [239] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), - [241] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_meta_repeat3, 2, 0, 0), - [243] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_meta_repeat3, 2, 0, 0), SHIFT_REPEAT(88), - [246] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_meta_repeat2, 2, 0, 0), - [248] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_meta_repeat2, 2, 0, 0), SHIFT_REPEAT(124), - [251] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_meta_repeat1, 2, 0, 0), - [253] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_meta_repeat1, 2, 0, 0), SHIFT_REPEAT(105), - [256] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 3, 0, 0), - [258] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 6, 0, 0), - [260] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 5, 0, 0), - [262] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 4, 0, 0), - [264] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 2, 0, 0), - [266] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 7, 0, 0), - [268] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), - [270] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), - [272] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 4, 0, 0), - [274] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), - [276] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 5, 0, 3), - [278] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 3, 0, 3), - [280] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 3, 0, 0), - [282] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 5, 0, 0), - [284] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 2, 0, 2), - [286] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__item, 1, 0, 0), - [288] = {.entry = {.count = 1, .reusable = false}}, SHIFT(116), - [290] = {.entry = {.count = 1, .reusable = false}}, SHIFT(135), - [292] = {.entry = {.count = 1, .reusable = false}}, SHIFT(136), - [294] = {.entry = {.count = 1, .reusable = false}}, SHIFT_EXTRA(), - [296] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), - [298] = {.entry = {.count = 1, .reusable = true}}, SHIFT(115), - [300] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), - [302] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92), - [304] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83), - [306] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), - [308] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), - [310] = {.entry = {.count = 1, .reusable = true}}, SHIFT(118), - [312] = {.entry = {.count = 1, .reusable = true}}, SHIFT(119), - [314] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107), - [316] = {.entry = {.count = 1, .reusable = true}}, SHIFT(112), - [318] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), - [320] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), - [322] = {.entry = {.count = 1, .reusable = true}}, SHIFT(113), - [324] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), - [326] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_line_comment, 2, 0, 0), - [328] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_line_comment, 1, 0, 0), + [166] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), + [168] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_program_repeat1, 1, 0, 0), + [170] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 1, 0, 0), + [172] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 2, 0, 0), + [174] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), + [176] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), + [178] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), + [180] = {.entry = {.count = 1, .reusable = true}}, SHIFT(114), + [182] = {.entry = {.count = 1, .reusable = true}}, SHIFT(106), + [184] = {.entry = {.count = 1, .reusable = true}}, SHIFT(119), + [186] = {.entry = {.count = 1, .reusable = true}}, SHIFT(137), + [188] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), + [190] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104), + [192] = {.entry = {.count = 1, .reusable = true}}, SHIFT(156), + [194] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), + [196] = {.entry = {.count = 1, .reusable = true}}, SHIFT(135), + [198] = {.entry = {.count = 1, .reusable = true}}, SHIFT(111), + [200] = {.entry = {.count = 1, .reusable = true}}, SHIFT(141), + [202] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 2, 0, 3), + [204] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), + [206] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), + [208] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_instruction_repeat1, 2, 0, 0), + [210] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_instruction_repeat1, 2, 0, 0), SHIFT_REPEAT(5), + [213] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), + [215] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), + [217] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 3, 0, 0), + [219] = {.entry = {.count = 1, .reusable = true}}, SHIFT(117), + [221] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_meta, 2, 0, 1), + [223] = {.entry = {.count = 1, .reusable = true}}, SHIFT(123), + [225] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_meta_repeat2, 2, 0, 0), + [227] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_meta_repeat2, 2, 0, 0), SHIFT_REPEAT(136), + [230] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_meta_repeat1, 2, 0, 0), + [232] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_meta_repeat1, 2, 0, 0), SHIFT_REPEAT(123), + [235] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_meta_repeat3, 2, 0, 0), + [237] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_meta_repeat3, 2, 0, 0), SHIFT_REPEAT(113), + [240] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_meta, 3, 0, 1), + [242] = {.entry = {.count = 1, .reusable = true}}, SHIFT(136), + [244] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2, 0, 0), SHIFT_REPEAT(68), + [247] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2, 0, 0), + [249] = {.entry = {.count = 1, .reusable = true}}, SHIFT(113), + [251] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_program, 1, 0, 0), + [253] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 5, 0, 0), + [255] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), + [257] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), + [259] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_program_repeat2, 2, 0, 0), + [261] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_program_repeat2, 2, 0, 0), SHIFT_REPEAT(54), + [264] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), + [266] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), + [268] = {.entry = {.count = 1, .reusable = true}}, SHIFT(121), + [270] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), + [272] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), + [274] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), + [276] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 6, 0, 9), + [278] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 5, 0, 0), + [280] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 3, 0, 0), + [282] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 6, 0, 7), + [284] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 6, 0, 8), + [286] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 6, 0, 0), + [288] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 4, 0, 0), + [290] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 7, 0, 10), + [292] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 7, 0, 0), + [294] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 7, 0, 11), + [296] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 7, 0, 12), + [298] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 8, 0, 13), + [300] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 2, 0, 0), + [302] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), + [304] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100), + [306] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 4, 0, 0), + [308] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 5, 0, 6), + [310] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 3, 0, 3), + [312] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), + [314] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 5, 0, 3), + [316] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 3, 0, 0), + [318] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__item, 1, 0, 0), + [320] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 5, 0, 0), + [322] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 2, 0, 2), + [324] = {.entry = {.count = 1, .reusable = true}}, SHIFT(152), + [326] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109), + [328] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [330] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), + [332] = {.entry = {.count = 1, .reusable = true}}, SHIFT(110), + [334] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102), + [336] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), + [338] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), + [340] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), + [342] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), + [344] = {.entry = {.count = 1, .reusable = true}}, SHIFT(112), + [346] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86), + [348] = {.entry = {.count = 1, .reusable = true}}, SHIFT(150), + [350] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130), + [352] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), + [354] = {.entry = {.count = 1, .reusable = true}}, SHIFT(125), + [356] = {.entry = {.count = 1, .reusable = false}}, SHIFT(149), + [358] = {.entry = {.count = 1, .reusable = false}}, SHIFT(158), + [360] = {.entry = {.count = 1, .reusable = false}}, SHIFT(159), + [362] = {.entry = {.count = 1, .reusable = false}}, SHIFT_EXTRA(), + [364] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), + [366] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), + [368] = {.entry = {.count = 1, .reusable = true}}, SHIFT(122), + [370] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83), + [372] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), + [374] = {.entry = {.count = 1, .reusable = true}}, SHIFT(129), + [376] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108), + [378] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), + [380] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_line_comment, 2, 0, 0), + [382] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_line_comment, 1, 0, 0), }; #ifdef __cplusplus @@ -5096,7 +5669,7 @@ extern "C" { TS_PUBLIC const TSLanguage *tree_sitter_asm(void) { static const TSLanguage language = { - .version = LANGUAGE_VERSION, + .abi_version = LANGUAGE_VERSION, .symbol_count = SYMBOL_COUNT, .alias_count = ALIAS_COUNT, .token_count = TOKEN_COUNT, @@ -5104,6 +5677,7 @@ TS_PUBLIC const TSLanguage *tree_sitter_asm(void) { .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], @@ -5118,9 +5692,16 @@ TS_PUBLIC const TSLanguage *tree_sitter_asm(void) { .public_symbol_map = ts_symbol_map, .alias_map = ts_non_terminal_alias_map, .alias_sequences = &ts_alias_sequences[0][0], - .lex_modes = ts_lex_modes, + .lex_modes = (const void*)ts_lex_modes, .lex_fn = ts_lex, .primary_state_ids = ts_primary_state_ids, + .name = "asm", + .max_reserved_word_set_size = 0, + .metadata = { + .major_version = 0, + .minor_version = 1, + .patch_version = 0, + }, }; return &language; } diff --git a/src/tree_sitter/alloc.h b/src/tree_sitter/alloc.h index 1f4466d7..1abdd120 100644 --- a/src/tree_sitter/alloc.h +++ b/src/tree_sitter/alloc.h @@ -12,10 +12,10 @@ extern "C" { // Allow clients to override allocation functions #ifdef TREE_SITTER_REUSE_ALLOCATOR -extern void *(*ts_current_malloc)(size_t); -extern void *(*ts_current_calloc)(size_t, size_t); -extern void *(*ts_current_realloc)(void *, size_t); -extern void (*ts_current_free)(void *); +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 diff --git a/src/tree_sitter/array.h b/src/tree_sitter/array.h index 15a3b233..56fc8cd4 100644 --- a/src/tree_sitter/array.h +++ b/src/tree_sitter/array.h @@ -14,6 +14,7 @@ extern "C" { #include #ifdef _MSC_VER +#pragma warning(push) #pragma warning(disable : 4101) #elif defined(__GNUC__) || defined(__clang__) #pragma GCC diagnostic push @@ -51,67 +52,96 @@ extern "C" { /// 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) +#define array_reserve(self, new_capacity) \ + ((self)->contents = _array__reserve( \ + (void *)(self)->contents, &(self)->capacity, \ + 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)) +#define array_delete(self) \ + do { \ + if ((self)->contents) ts_free((self)->contents); \ + (self)->contents = NULL; \ + (self)->size = 0; \ + (self)->capacity = 0; \ + } while (0) /// 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)) +#define array_push(self, element) \ + do { \ + (self)->contents = _array__grow( \ + (void *)(self)->contents, (self)->size, &(self)->capacity, \ + 1, array_elem_size(self) \ + ); \ + (self)->contents[(self)->size++] = (element); \ + } while(0) /// 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)); \ +#define array_grow_by(self, count) \ + do { \ + if ((count) == 0) break; \ + (self)->contents = _array__grow( \ + (self)->contents, (self)->size, &(self)->capacity, \ + count, array_elem_size(self) \ + ); \ memset((self)->contents + (self)->size, 0, (count) * array_elem_size(self)); \ - (self)->size += (count); \ + (self)->size += (count); \ } while (0) /// Append all elements from one array to the end of another. -#define array_push_all(self, other) \ +#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 \ +#define array_extend(self, count, other_contents) \ + (self)->contents = _array__splice( \ + (void*)(self)->contents, &(self)->size, &(self)->capacity, \ + array_elem_size(self), (self)->size, 0, count, other_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 \ +#define array_splice(self, _index, old_count, new_count, new_contents) \ + (self)->contents = _array__splice( \ + (void *)(self)->contents, &(self)->size, &(self)->capacity, \ + 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)) +#define array_insert(self, _index, element) \ + (self)->contents = _array__splice( \ + (void *)(self)->contents, &(self)->size, &(self)->capacity, \ + 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) + _array__erase((void *)(self)->contents, &(self)->size, 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)) +#define array_assign(self, other) \ + (self)->contents = _array__assign( \ + (void *)(self)->contents, &(self)->size, &(self)->capacity, \ + (const void *)(other)->contents, (other)->size, array_elem_size(self) \ + ) /// Swap one array with another -#define array_swap(self, other) \ - _array__swap((Array *)(self), (Array *)(other)) +#define array_swap(self, other) \ + do { \ + void *_array_swap_tmp = (void *)(self)->contents; \ + (self)->contents = (other)->contents; \ + (other)->contents = _array_swap_tmp; \ + _array__swap(&(self)->size, &(self)->capacity, \ + &(other)->size, &(other)->capacity); \ + } while (0) /// Get the size of the array contents #define array_elem_size(self) (sizeof *(self)->contents) @@ -156,82 +186,90 @@ extern "C" { // 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; - } -} +// Pointers to individual `Array` fields (rather than the entire `Array` itself) +// are passed to the various `_array__*` functions below to address strict aliasing +// violations that arises when the _entire_ `Array` struct is passed as `Array(void)*`. +// +// The `Array` type itself was not altered as a solution in order to avoid breakage +// with existing consumers (in particular, parsers with external scanners). /// 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; +static inline void _array__erase(void* self_contents, uint32_t *size, + size_t element_size, uint32_t index) { + assert(index < *size); + char *contents = (char *)self_contents; memmove(contents + index * element_size, contents + (index + 1) * element_size, - (self->size - index - 1) * element_size); - self->size--; + (*size - index - 1) * element_size); + (*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); +static inline void *_array__reserve(void *contents, uint32_t *capacity, + size_t element_size, uint32_t new_capacity) { + void *new_contents = contents; + if (new_capacity > *capacity) { + if (contents) { + new_contents = ts_realloc(contents, new_capacity * element_size); } else { - self->contents = ts_malloc(new_capacity * element_size); + new_contents = ts_malloc(new_capacity * element_size); } - self->capacity = new_capacity; + *capacity = new_capacity; } + return new_contents; } /// 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); +static inline void *_array__assign(void* self_contents, uint32_t *self_size, uint32_t *self_capacity, + const void *other_contents, uint32_t other_size, size_t element_size) { + void *new_contents = _array__reserve(self_contents, self_capacity, element_size, other_size); + *self_size = other_size; + memcpy(new_contents, other_contents, *self_size * element_size); + return new_contents; } /// 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; +static inline void _array__swap(uint32_t *self_size, uint32_t *self_capacity, + uint32_t *other_size, uint32_t *other_capacity) { + uint32_t tmp_size = *self_size; + uint32_t tmp_capacity = *self_capacity; + *self_size = *other_size; + *self_capacity = *other_capacity; + *other_size = tmp_size; + *other_capacity = tmp_capacity; } /// 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; +static inline void *_array__grow(void *contents, uint32_t size, uint32_t *capacity, + uint32_t count, size_t element_size) { + void *new_contents = contents; + uint32_t new_size = size + count; + if (new_size > *capacity) { + uint32_t new_capacity = *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); + new_contents = _array__reserve(contents, capacity, element_size, new_capacity); } + return new_contents; } /// This is not what you're looking for, see `array_splice`. -static inline void _array__splice(Array *self, size_t element_size, +static inline void *_array__splice(void *self_contents, uint32_t *size, uint32_t *capacity, + 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 new_size = *size + new_count - old_count; uint32_t old_end = index + old_count; uint32_t new_end = index + new_count; - assert(old_end <= self->size); + assert(old_end <= *size); - _array__reserve(self, element_size, new_size); + void *new_contents = _array__reserve(self_contents, capacity, element_size, new_size); - char *contents = (char *)self->contents; - if (self->size > old_end) { + char *contents = (char *)new_contents; + if (*size > old_end) { memmove( contents + new_end * element_size, contents + old_end * element_size, - (self->size - old_end) * element_size + (*size - old_end) * element_size ); } if (new_count > 0) { @@ -249,7 +287,9 @@ static inline void _array__splice(Array *self, size_t element_size, ); } } - self->size += new_count - old_count; + *size += new_count - old_count; + + return new_contents; } /// A binary search routine, based on Rust's `std::slice::binary_search_by`. @@ -278,7 +318,7 @@ static inline void _array__splice(Array *self, size_t element_size, #define _compare_int(a, b) ((int)*(a) - (int)(b)) #ifdef _MSC_VER -#pragma warning(default : 4101) +#pragma warning(pop) #elif defined(__GNUC__) || defined(__clang__) #pragma GCC diagnostic pop #endif diff --git a/src/tree_sitter/parser.h b/src/tree_sitter/parser.h index 17f0e94b..858107de 100644 --- a/src/tree_sitter/parser.h +++ b/src/tree_sitter/parser.h @@ -18,6 +18,11 @@ typedef uint16_t TSStateId; typedef uint16_t TSSymbol; typedef uint16_t TSFieldId; typedef struct TSLanguage TSLanguage; +typedef struct TSLanguageMetadata { + uint8_t major_version; + uint8_t minor_version; + uint8_t patch_version; +} TSLanguageMetadata; #endif typedef struct { @@ -26,10 +31,11 @@ typedef struct { bool inherited; } TSFieldMapEntry; +// Used to index the field and supertype maps. typedef struct { uint16_t index; uint16_t length; -} TSFieldMapSlice; +} TSMapSlice; typedef struct { bool visible; @@ -47,6 +53,7 @@ struct 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 { @@ -78,6 +85,12 @@ typedef struct { 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 { @@ -92,7 +105,7 @@ typedef struct { } TSCharacterRange; struct TSLanguage { - uint32_t version; + uint32_t abi_version; uint32_t symbol_count; uint32_t alias_count; uint32_t token_count; @@ -108,13 +121,13 @@ struct TSLanguage { const TSParseActionEntry *parse_actions; const char * const *symbol_names; const char * const *field_names; - const TSFieldMapSlice *field_map_slices; + 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 TSLexMode *lex_modes; + const TSLexerMode *lex_modes; bool (*lex_fn)(TSLexer *, TSStateId); bool (*keyword_lex_fn)(TSLexer *, TSStateId); TSSymbol keyword_capture_token; @@ -128,15 +141,23 @@ struct TSLanguage { 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(TSCharacterRange *ranges, uint32_t len, int32_t lookahead) { +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; - TSCharacterRange *range = &ranges[mid_index]; + const TSCharacterRange *range = &ranges[mid_index]; if (lookahead >= range->start && lookahead <= range->end) { return true; } else if (lookahead > range->end) { @@ -144,7 +165,7 @@ static inline bool set_contains(TSCharacterRange *ranges, uint32_t len, int32_t } size -= half_size; } - TSCharacterRange *range = &ranges[index]; + const TSCharacterRange *range = &ranges[index]; return (lookahead >= range->start && lookahead <= range->end); } From 6cb7540fa152f2acb6aa704a580dc209d274212d Mon Sep 17 00:00:00 2001 From: Neptumiun93 Date: Thu, 18 Jun 2026 16:40:58 +0200 Subject: [PATCH 19/31] fix: Pointer offset arg, reg arg --- grammar.js | 11 +++++++---- test/corpus/instr_and_reg.test | 2 +- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/grammar.js b/grammar.js index 87e553d4..d13907c0 100644 --- a/grammar.js +++ b/grammar.js @@ -71,10 +71,13 @@ module.exports = grammar({ seq( field('disp', optional($.int)), '(', - sep(',', - field('base', optional($.reg)), - field('index', $.reg), - field('scale', optional(choice('1', '2', '4', '8'))), + choice( + $.reg, + sep(',', + field('base', optional($.reg)), + field('index', $.reg), + field('scale', optional(choice('1', '2', '4', '8'))), + ), ), ')', ), diff --git a/test/corpus/instr_and_reg.test b/test/corpus/instr_and_reg.test index 7b8b1724..1b9c18da 100644 --- a/test/corpus/instr_and_reg.test +++ b/test/corpus/instr_and_reg.test @@ -36,7 +36,7 @@ movzbl -1(%rbp), %eax (instruction kind: (word) (ptr - (int) + disp: (int) (reg)) (ident (reg)))) From bebead5da452d7690eeaebe800d62044f55470d9 Mon Sep 17 00:00:00 2001 From: Neptumiun93 Date: Thu, 18 Jun 2026 16:41:51 +0200 Subject: [PATCH 20/31] chore: tree-sitter generate --- src/grammar.json | 111 +-- src/parser.c | 2292 +++++++++++++++++++++++----------------------- 2 files changed, 1227 insertions(+), 1176 deletions(-) diff --git a/src/grammar.json b/src/grammar.json index 8351d7b6..e7d6051c 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -583,72 +583,81 @@ "value": "(" }, { - "type": "SEQ", + "type": "CHOICE", "members": [ { - "type": "FIELD", - "name": "base", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "reg" - }, - { - "type": "BLANK" - } - ] - } - }, - { - "type": "STRING", - "value": "," - }, - { - "type": "FIELD", - "name": "index", - "content": { - "type": "SYMBOL", - "name": "reg" - } - }, - { - "type": "STRING", - "value": "," + "type": "SYMBOL", + "name": "reg" }, { - "type": "FIELD", - "name": "scale", - "content": { - "type": "CHOICE", - "members": [ - { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "base", + "content": { "type": "CHOICE", "members": [ { - "type": "STRING", - "value": "1" + "type": "SYMBOL", + "name": "reg" }, { - "type": "STRING", - "value": "2" - }, + "type": "BLANK" + } + ] + } + }, + { + "type": "STRING", + "value": "," + }, + { + "type": "FIELD", + "name": "index", + "content": { + "type": "SYMBOL", + "name": "reg" + } + }, + { + "type": "STRING", + "value": "," + }, + { + "type": "FIELD", + "name": "scale", + "content": { + "type": "CHOICE", + "members": [ { - "type": "STRING", - "value": "4" + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "1" + }, + { + "type": "STRING", + "value": "2" + }, + { + "type": "STRING", + "value": "4" + }, + { + "type": "STRING", + "value": "8" + } + ] }, { - "type": "STRING", - "value": "8" + "type": "BLANK" } ] - }, - { - "type": "BLANK" } - ] - } + } + ] } ] }, diff --git a/src/parser.c b/src/parser.c index 516956ec..b2e598ef 100644 --- a/src/parser.c +++ b/src/parser.c @@ -7,7 +7,7 @@ #endif #define LANGUAGE_VERSION 15 -#define STATE_COUNT 160 +#define STATE_COUNT 162 #define LARGE_STATE_COUNT 2 #define SYMBOL_COUNT 69 #define ALIAS_COUNT 0 @@ -16,7 +16,7 @@ #define FIELD_COUNT 10 #define MAX_ALIAS_SEQUENCE_LENGTH 8 #define MAX_RESERVED_WORD_SET_SIZE 0 -#define PRODUCTION_ID_COUNT 14 +#define PRODUCTION_ID_COUNT 15 #define SUPERTYPE_COUNT 0 enum ts_symbol_identifiers { @@ -546,13 +546,14 @@ static const TSMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { [4] = {.index = 2, .length = 2}, [5] = {.index = 4, .length = 3}, [6] = {.index = 7, .length = 1}, - [7] = {.index = 8, .length = 2}, - [8] = {.index = 10, .length = 2}, - [9] = {.index = 12, .length = 2}, - [10] = {.index = 14, .length = 3}, - [11] = {.index = 17, .length = 3}, - [12] = {.index = 20, .length = 3}, - [13] = {.index = 23, .length = 4}, + [7] = {.index = 8, .length = 1}, + [8] = {.index = 9, .length = 2}, + [9] = {.index = 11, .length = 2}, + [10] = {.index = 13, .length = 2}, + [11] = {.index = 15, .length = 3}, + [12] = {.index = 18, .length = 3}, + [13] = {.index = 21, .length = 3}, + [14] = {.index = 24, .length = 4}, }; static const TSFieldMapEntry ts_field_map_entries[] = { @@ -568,29 +569,31 @@ static const TSFieldMapEntry ts_field_map_entries[] = { {field_op, 1}, {field_rhs, 2}, [7] = - {field_index, 2}, + {field_disp, 0}, [8] = {field_index, 2}, + [9] = + {field_index, 2}, {field_scale, 4}, - [10] = + [11] = {field_base, 1}, {field_index, 3}, - [12] = + [13] = {field_disp, 0}, {field_index, 3}, - [14] = + [15] = {field_base, 1}, {field_index, 3}, {field_scale, 5}, - [17] = + [18] = {field_disp, 0}, {field_index, 3}, {field_scale, 5}, - [20] = + [21] = {field_base, 2}, {field_disp, 0}, {field_index, 4}, - [23] = + [24] = {field_base, 2}, {field_disp, 0}, {field_index, 4}, @@ -638,27 +641,27 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [26] = 26, [27] = 27, [28] = 28, - [29] = 29, - [30] = 27, - [31] = 29, - [32] = 28, - [33] = 10, - [34] = 26, - [35] = 25, - [36] = 36, + [29] = 11, + [30] = 30, + [31] = 24, + [32] = 25, + [33] = 26, + [34] = 27, + [35] = 28, + [36] = 10, [37] = 37, - [38] = 6, - [39] = 11, + [38] = 7, + [39] = 39, [40] = 8, [41] = 41, - [42] = 9, - [43] = 19, - [44] = 44, - [45] = 15, - [46] = 14, + [42] = 12, + [43] = 14, + [44] = 19, + [45] = 45, + [46] = 17, [47] = 16, - [48] = 17, - [49] = 18, + [48] = 18, + [49] = 15, [50] = 50, [51] = 51, [52] = 52, @@ -766,9 +769,11 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [154] = 154, [155] = 155, [156] = 156, - [157] = 138, - [158] = 158, + [157] = 157, + [158] = 148, [159] = 159, + [160] = 160, + [161] = 161, }; static bool ts_lex(TSLexer *lexer, TSStateId state) { @@ -2102,11 +2107,11 @@ static const TSLexerMode ts_lex_modes[STATE_COUNT] = { [26] = {.lex_state = 28}, [27] = {.lex_state = 28}, [28] = {.lex_state = 28}, - [29] = {.lex_state = 28}, + [29] = {.lex_state = 29}, [30] = {.lex_state = 28}, [31] = {.lex_state = 28}, [32] = {.lex_state = 28}, - [33] = {.lex_state = 29}, + [33] = {.lex_state = 28}, [34] = {.lex_state = 28}, [35] = {.lex_state = 28}, [36] = {.lex_state = 29}, @@ -2126,36 +2131,36 @@ static const TSLexerMode ts_lex_modes[STATE_COUNT] = { [50] = {.lex_state = 28}, [51] = {.lex_state = 28}, [52] = {.lex_state = 29}, - [53] = {.lex_state = 4}, - [54] = {.lex_state = 29}, + [53] = {.lex_state = 29}, + [54] = {.lex_state = 4}, [55] = {.lex_state = 4}, [56] = {.lex_state = 30}, - [57] = {.lex_state = 30}, + [57] = {.lex_state = 5}, [58] = {.lex_state = 30}, - [59] = {.lex_state = 30}, + [59] = {.lex_state = 5}, [60] = {.lex_state = 5}, - [61] = {.lex_state = 30}, - [62] = {.lex_state = 5}, - [63] = {.lex_state = 5}, - [64] = {.lex_state = 5}, + [61] = {.lex_state = 5}, + [62] = {.lex_state = 30}, + [63] = {.lex_state = 30}, + [64] = {.lex_state = 30}, [65] = {.lex_state = 30}, [66] = {.lex_state = 30}, [67] = {.lex_state = 0}, - [68] = {.lex_state = 30}, - [69] = {.lex_state = 29}, - [70] = {.lex_state = 30}, + [68] = {.lex_state = 0}, + [69] = {.lex_state = 0}, + [70] = {.lex_state = 0}, [71] = {.lex_state = 0}, - [72] = {.lex_state = 0}, - [73] = {.lex_state = 0}, - [74] = {.lex_state = 30}, - [75] = {.lex_state = 30}, + [72] = {.lex_state = 29}, + [73] = {.lex_state = 30}, + [74] = {.lex_state = 0}, + [75] = {.lex_state = 29}, [76] = {.lex_state = 0}, - [77] = {.lex_state = 0}, - [78] = {.lex_state = 0}, - [79] = {.lex_state = 0}, + [77] = {.lex_state = 30}, + [78] = {.lex_state = 30}, + [79] = {.lex_state = 29}, [80] = {.lex_state = 0}, - [81] = {.lex_state = 0}, - [82] = {.lex_state = 29}, + [81] = {.lex_state = 29}, + [82] = {.lex_state = 30}, [83] = {.lex_state = 30}, [84] = {.lex_state = 0}, [85] = {.lex_state = 0}, @@ -2163,9 +2168,9 @@ static const TSLexerMode ts_lex_modes[STATE_COUNT] = { [87] = {.lex_state = 0}, [88] = {.lex_state = 0}, [89] = {.lex_state = 0}, - [90] = {.lex_state = 30}, - [91] = {.lex_state = 29}, - [92] = {.lex_state = 29}, + [90] = {.lex_state = 0}, + [91] = {.lex_state = 30}, + [92] = {.lex_state = 0}, [93] = {.lex_state = 30}, [94] = {.lex_state = 0}, [95] = {.lex_state = 0}, @@ -2174,13 +2179,13 @@ static const TSLexerMode ts_lex_modes[STATE_COUNT] = { [98] = {.lex_state = 0}, [99] = {.lex_state = 0}, [100] = {.lex_state = 0}, - [101] = {.lex_state = 0}, - [102] = {.lex_state = 0}, + [101] = {.lex_state = 29}, + [102] = {.lex_state = 29}, [103] = {.lex_state = 0}, [104] = {.lex_state = 0}, [105] = {.lex_state = 0}, [106] = {.lex_state = 0}, - [107] = {.lex_state = 29}, + [107] = {.lex_state = 0}, [108] = {.lex_state = 0}, [109] = {.lex_state = 0}, [110] = {.lex_state = 0}, @@ -2189,50 +2194,52 @@ static const TSLexerMode ts_lex_modes[STATE_COUNT] = { [113] = {.lex_state = 0}, [114] = {.lex_state = 0}, [115] = {.lex_state = 0}, - [116] = {.lex_state = 29}, + [116] = {.lex_state = 0}, [117] = {.lex_state = 0}, [118] = {.lex_state = 0}, [119] = {.lex_state = 0}, [120] = {.lex_state = 0}, - [121] = {.lex_state = 2}, - [122] = {.lex_state = 2}, - [123] = {.lex_state = 2}, + [121] = {.lex_state = 0}, + [122] = {.lex_state = 0}, + [123] = {.lex_state = 0}, [124] = {.lex_state = 0}, [125] = {.lex_state = 0}, [126] = {.lex_state = 0}, [127] = {.lex_state = 0}, - [128] = {.lex_state = 0}, + [128] = {.lex_state = 2}, [129] = {.lex_state = 0}, [130] = {.lex_state = 0}, - [131] = {.lex_state = 5}, + [131] = {.lex_state = 2}, [132] = {.lex_state = 0}, [133] = {.lex_state = 0}, - [134] = {.lex_state = 0}, + [134] = {.lex_state = 2}, [135] = {.lex_state = 0}, - [136] = {.lex_state = 26}, + [136] = {.lex_state = 30}, [137] = {.lex_state = 0}, - [138] = {.lex_state = 3}, - [139] = {.lex_state = 30}, - [140] = {.lex_state = 0}, - [141] = {.lex_state = 0}, + [138] = {.lex_state = 5}, + [139] = {.lex_state = 0}, + [140] = {.lex_state = 30}, + [141] = {.lex_state = 5}, [142] = {.lex_state = 0}, - [143] = {.lex_state = 5}, - [144] = {.lex_state = 30}, - [145] = {.lex_state = 0}, + [143] = {.lex_state = 0}, + [144] = {.lex_state = 0}, + [145] = {.lex_state = 26}, [146] = {.lex_state = 0}, [147] = {.lex_state = 0}, - [148] = {.lex_state = 0}, - [149] = {.lex_state = 160}, + [148] = {.lex_state = 3}, + [149] = {.lex_state = 0}, [150] = {.lex_state = 0}, [151] = {.lex_state = 0}, [152] = {.lex_state = 0}, [153] = {.lex_state = 0}, - [154] = {.lex_state = 0}, + [154] = {.lex_state = 160}, [155] = {.lex_state = 0}, [156] = {.lex_state = 0}, - [157] = {.lex_state = 3}, - [158] = {(TSStateId)(-1),}, - [159] = {(TSStateId)(-1),}, + [157] = {.lex_state = 0}, + [158] = {.lex_state = 3}, + [159] = {.lex_state = 0}, + [160] = {(TSStateId)(-1),}, + [161] = {(TSStateId)(-1),}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { @@ -2281,12 +2288,12 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_block_comment] = ACTIONS(7), }, [STATE(1)] = { - [sym_program] = STATE(133), - [sym__item] = STATE(85), - [sym_meta] = STATE(128), - [sym_label] = STATE(128), - [sym_const] = STATE(128), - [sym_instruction] = STATE(128), + [sym_program] = STATE(157), + [sym__item] = STATE(76), + [sym_meta] = STATE(130), + [sym_label] = STATE(130), + [sym_const] = STATE(130), + [sym_instruction] = STATE(130), [sym_line_comment] = STATE(1), [ts_builtin_sym_end] = ACTIONS(9), [anon_sym_label] = ACTIONS(11), @@ -2324,9 +2331,9 @@ static const uint16_t ts_small_parse_table[] = { sym_float, STATE(2), 1, sym_line_comment, - STATE(7), 1, + STATE(6), 1, sym_int, - STATE(11), 1, + STATE(10), 1, sym_reg, STATE(13), 1, sym__tc_expr, @@ -2334,7 +2341,7 @@ static const uint16_t ts_small_parse_table[] = { sym_tc_infix, STATE(20), 1, aux_sym_instruction_repeat2, - STATE(87), 1, + STATE(92), 1, sym__expr, ACTIONS(21), 2, ts_builtin_sym_end, @@ -2345,10 +2352,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(45), 2, sym_meta_ident, sym__ident, - STATE(12), 2, + STATE(9), 2, sym_string, sym_ident, - STATE(99), 2, + STATE(121), 2, sym_list, sym_ptr, ACTIONS(43), 3, @@ -2381,11 +2388,11 @@ static const uint16_t ts_small_parse_table[] = { aux_sym_int_token2, STATE(3), 1, sym_line_comment, - STATE(39), 1, + STATE(36), 1, sym_reg, - STATE(72), 1, + STATE(86), 1, sym_int, - STATE(118), 1, + STATE(120), 1, sym__expr, ACTIONS(47), 2, ts_builtin_sym_end, @@ -2405,7 +2412,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_word, anon_sym_dword, anon_sym_qword, - STATE(99), 4, + STATE(121), 4, sym_list, sym_ptr, sym_string, @@ -2431,11 +2438,11 @@ static const uint16_t ts_small_parse_table[] = { aux_sym_int_token2, STATE(4), 1, sym_line_comment, - STATE(39), 1, + STATE(36), 1, sym_reg, - STATE(72), 1, + STATE(86), 1, sym_int, - STATE(118), 1, + STATE(120), 1, sym__expr, ACTIONS(53), 2, aux_sym_string_token1, @@ -2455,7 +2462,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_word, anon_sym_dword, anon_sym_qword, - STATE(99), 4, + STATE(121), 4, sym_list, sym_ptr, sym_string, @@ -2481,11 +2488,11 @@ static const uint16_t ts_small_parse_table[] = { aux_sym_int_token2, STATE(5), 1, sym_line_comment, - STATE(39), 1, + STATE(36), 1, sym_reg, - STATE(72), 1, + STATE(86), 1, sym_int, - STATE(118), 1, + STATE(120), 1, sym__expr, ACTIONS(53), 2, aux_sym_string_token1, @@ -2502,33 +2509,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_word, anon_sym_dword, anon_sym_qword, - STATE(99), 4, + STATE(121), 4, sym_list, sym_ptr, sym_string, sym_ident, - [286] = 5, + [286] = 8, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, + ACTIONS(64), 1, + anon_sym_COMMA, + ACTIONS(66), 1, + anon_sym_LPAREN, STATE(6), 1, sym_line_comment, - ACTIONS(63), 9, - anon_sym_DASH, - anon_sym_SLASH, - anon_sym_PERCENT, - aux_sym_int_token2, - sym_word, - sym__reg, - sym_address, - sym_meta_ident, - sym__ident, - ACTIONS(61), 12, + ACTIONS(61), 2, ts_builtin_sym_end, anon_sym_LF, - anon_sym_COMMA, - anon_sym_LPAREN, + ACTIONS(70), 8, anon_sym_PLUS, anon_sym_STAR, anon_sym_PIPE, @@ -2537,21 +2537,38 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, aux_sym_string_token1, aux_sym_string_token2, - [321] = 8, + ACTIONS(68), 9, + anon_sym_DASH, + anon_sym_SLASH, + anon_sym_PERCENT, + aux_sym_int_token2, + sym_word, + sym__reg, + sym_address, + sym_meta_ident, + sym__ident, + [327] = 5, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(68), 1, - anon_sym_COMMA, - ACTIONS(70), 1, - anon_sym_LPAREN, STATE(7), 1, sym_line_comment, - ACTIONS(65), 2, + ACTIONS(74), 9, + anon_sym_DASH, + anon_sym_SLASH, + anon_sym_PERCENT, + aux_sym_int_token2, + sym_word, + sym__reg, + sym_address, + sym_meta_ident, + sym__ident, + ACTIONS(72), 12, ts_builtin_sym_end, anon_sym_LF, - ACTIONS(74), 8, + anon_sym_COMMA, + anon_sym_LPAREN, anon_sym_PLUS, anon_sym_STAR, anon_sym_PIPE, @@ -2560,16 +2577,6 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(72), 9, - anon_sym_DASH, - anon_sym_SLASH, - anon_sym_PERCENT, - aux_sym_int_token2, - sym_word, - sym__reg, - sym_address, - sym_meta_ident, - sym__ident, [362] = 5, ACTIONS(5), 1, aux_sym_line_comment_token2, @@ -2600,27 +2607,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, aux_sym_string_token1, aux_sym_string_token2, - [397] = 5, + [397] = 7, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, + ACTIONS(64), 1, + anon_sym_COMMA, STATE(9), 1, sym_line_comment, - ACTIONS(82), 9, - anon_sym_DASH, - anon_sym_SLASH, - anon_sym_PERCENT, - aux_sym_int_token2, - sym_word, - sym__reg, - sym_address, - sym_meta_ident, - sym__ident, - ACTIONS(80), 11, + ACTIONS(61), 2, ts_builtin_sym_end, anon_sym_LF, - anon_sym_COMMA, + ACTIONS(70), 8, anon_sym_PLUS, anon_sym_STAR, anon_sym_PIPE, @@ -2629,14 +2628,24 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, aux_sym_string_token1, aux_sym_string_token2, - [431] = 5, + ACTIONS(68), 9, + anon_sym_DASH, + anon_sym_SLASH, + anon_sym_PERCENT, + aux_sym_int_token2, + sym_word, + sym__reg, + sym_address, + sym_meta_ident, + sym__ident, + [435] = 5, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, STATE(10), 1, sym_line_comment, - ACTIONS(86), 9, + ACTIONS(82), 9, anon_sym_DASH, anon_sym_SLASH, anon_sym_PERCENT, @@ -2646,7 +2655,7 @@ static const uint16_t ts_small_parse_table[] = { sym_address, sym_meta_ident, sym__ident, - ACTIONS(84), 11, + ACTIONS(80), 11, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, @@ -2658,14 +2667,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, aux_sym_string_token1, aux_sym_string_token2, - [465] = 5, + [469] = 5, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, STATE(11), 1, sym_line_comment, - ACTIONS(90), 9, + ACTIONS(86), 9, anon_sym_DASH, anon_sym_SLASH, anon_sym_PERCENT, @@ -2675,7 +2684,7 @@ static const uint16_t ts_small_parse_table[] = { sym_address, sym_meta_ident, sym__ident, - ACTIONS(88), 11, + ACTIONS(84), 11, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, @@ -2687,19 +2696,27 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, aux_sym_string_token1, aux_sym_string_token2, - [499] = 7, + [503] = 5, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(68), 1, - anon_sym_COMMA, STATE(12), 1, sym_line_comment, - ACTIONS(65), 2, + ACTIONS(90), 9, + anon_sym_DASH, + anon_sym_SLASH, + anon_sym_PERCENT, + aux_sym_int_token2, + sym_word, + sym__reg, + sym_address, + sym_meta_ident, + sym__ident, + ACTIONS(88), 11, ts_builtin_sym_end, anon_sym_LF, - ACTIONS(74), 8, + anon_sym_COMMA, anon_sym_PLUS, anon_sym_STAR, anon_sym_PIPE, @@ -2708,16 +2725,6 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(72), 9, - anon_sym_DASH, - anon_sym_SLASH, - anon_sym_PERCENT, - aux_sym_int_token2, - sym_word, - sym__reg, - sym_address, - sym_meta_ident, - sym__ident, [537] = 12, ACTIONS(5), 1, aux_sym_line_comment_token2, @@ -2760,7 +2767,7 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, STATE(14), 1, sym_line_comment, - ACTIONS(72), 9, + ACTIONS(68), 9, anon_sym_DASH, anon_sym_SLASH, anon_sym_PERCENT, @@ -2770,7 +2777,7 @@ static const uint16_t ts_small_parse_table[] = { sym_address, sym_meta_ident, sym__ident, - ACTIONS(74), 10, + ACTIONS(70), 10, ts_builtin_sym_end, anon_sym_LF, anon_sym_PLUS, @@ -2781,57 +2788,51 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, aux_sym_string_token1, aux_sym_string_token2, - [617] = 10, + [617] = 5, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(98), 1, - anon_sym_STAR, - ACTIONS(102), 1, - anon_sym_PIPE, - ACTIONS(104), 1, - anon_sym_CARET, - ACTIONS(106), 1, - anon_sym_AMP, STATE(15), 1, sym_line_comment, - ACTIONS(100), 2, + ACTIONS(112), 9, + anon_sym_DASH, anon_sym_SLASH, anon_sym_PERCENT, - ACTIONS(110), 6, - ts_builtin_sym_end, - anon_sym_LF, - anon_sym_PLUS, - anon_sym_POUND, - aux_sym_string_token1, - aux_sym_string_token2, - ACTIONS(112), 7, - anon_sym_DASH, aux_sym_int_token2, sym_word, sym__reg, sym_address, sym_meta_ident, sym__ident, - [660] = 8, + ACTIONS(110), 10, + ts_builtin_sym_end, + anon_sym_LF, + anon_sym_PLUS, + anon_sym_STAR, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + anon_sym_POUND, + aux_sym_string_token1, + aux_sym_string_token2, + [650] = 7, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(102), 1, - anon_sym_PIPE, ACTIONS(104), 1, anon_sym_CARET, ACTIONS(106), 1, anon_sym_AMP, STATE(16), 1, sym_line_comment, - ACTIONS(110), 7, + ACTIONS(110), 8, ts_builtin_sym_end, anon_sym_LF, anon_sym_PLUS, anon_sym_STAR, + anon_sym_PIPE, anon_sym_POUND, aux_sym_string_token1, aux_sym_string_token2, @@ -2845,23 +2846,24 @@ static const uint16_t ts_small_parse_table[] = { sym_address, sym_meta_ident, sym__ident, - [699] = 7, + [687] = 8, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, + ACTIONS(102), 1, + anon_sym_PIPE, ACTIONS(104), 1, anon_sym_CARET, ACTIONS(106), 1, anon_sym_AMP, STATE(17), 1, sym_line_comment, - ACTIONS(110), 8, + ACTIONS(110), 7, ts_builtin_sym_end, anon_sym_LF, anon_sym_PLUS, anon_sym_STAR, - anon_sym_PIPE, anon_sym_POUND, aux_sym_string_token1, aux_sym_string_token2, @@ -2875,7 +2877,7 @@ static const uint16_t ts_small_parse_table[] = { sym_address, sym_meta_ident, sym__ident, - [736] = 6, + [726] = 6, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, @@ -2904,34 +2906,39 @@ static const uint16_t ts_small_parse_table[] = { sym_address, sym_meta_ident, sym__ident, - [771] = 5, + [761] = 10, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, + ACTIONS(98), 1, + anon_sym_STAR, + ACTIONS(102), 1, + anon_sym_PIPE, + ACTIONS(104), 1, + anon_sym_CARET, + ACTIONS(106), 1, + anon_sym_AMP, STATE(19), 1, sym_line_comment, - ACTIONS(112), 9, - anon_sym_DASH, + ACTIONS(100), 2, anon_sym_SLASH, anon_sym_PERCENT, - aux_sym_int_token2, - sym_word, - sym__reg, - sym_address, - sym_meta_ident, - sym__ident, - ACTIONS(110), 10, + ACTIONS(110), 6, ts_builtin_sym_end, anon_sym_LF, anon_sym_PLUS, - anon_sym_STAR, - anon_sym_PIPE, - anon_sym_CARET, - anon_sym_AMP, anon_sym_POUND, aux_sym_string_token1, aux_sym_string_token2, + ACTIONS(112), 7, + anon_sym_DASH, + aux_sym_int_token2, + sym_word, + sym__reg, + sym_address, + sym_meta_ident, + sym__ident, [804] = 13, ACTIONS(5), 1, aux_sym_line_comment_token2, @@ -2941,7 +2948,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, ACTIONS(37), 1, aux_sym_int_token2, - STATE(11), 1, + STATE(10), 1, sym_reg, STATE(13), 1, sym__tc_expr, @@ -2976,7 +2983,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, ACTIONS(121), 1, aux_sym_int_token2, - STATE(11), 1, + STATE(10), 1, sym_reg, STATE(13), 1, sym__tc_expr, @@ -3016,13 +3023,13 @@ static const uint16_t ts_small_parse_table[] = { sym_float, STATE(22), 1, sym_line_comment, - STATE(39), 1, + STATE(36), 1, sym_reg, - STATE(73), 1, + STATE(67), 1, sym_int, - STATE(94), 1, + STATE(90), 1, sym_string, - STATE(126), 1, + STATE(124), 1, sym_ident, ACTIONS(53), 2, aux_sym_string_token1, @@ -3050,13 +3057,13 @@ static const uint16_t ts_small_parse_table[] = { sym_float, STATE(23), 1, sym_line_comment, - STATE(39), 1, + STATE(36), 1, sym_reg, - STATE(73), 1, + STATE(67), 1, sym_int, - STATE(94), 1, + STATE(90), 1, sym_string, - STATE(126), 1, + STATE(124), 1, sym_ident, ACTIONS(53), 2, aux_sym_string_token1, @@ -3076,27 +3083,27 @@ static const uint16_t ts_small_parse_table[] = { aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(49), 1, + ACTIONS(35), 1, anon_sym_POUND, - ACTIONS(51), 1, + ACTIONS(37), 1, aux_sym_int_token2, - STATE(24), 1, - sym_line_comment, - STATE(39), 1, + STATE(10), 1, sym_reg, - STATE(44), 1, + STATE(19), 1, sym__tc_expr, - ACTIONS(53), 2, + STATE(24), 1, + sym_line_comment, + ACTIONS(41), 2, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(57), 2, + ACTIONS(45), 2, sym_meta_ident, sym__ident, - ACTIONS(55), 3, + ACTIONS(43), 3, sym_word, sym__reg, sym_address, - STATE(46), 4, + STATE(14), 4, sym_tc_infix, sym_int, sym_string, @@ -3110,9 +3117,9 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, ACTIONS(37), 1, aux_sym_int_token2, - STATE(11), 1, + STATE(10), 1, sym_reg, - STATE(15), 1, + STATE(17), 1, sym__tc_expr, STATE(25), 1, sym_line_comment, @@ -3140,7 +3147,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, ACTIONS(37), 1, aux_sym_int_token2, - STATE(11), 1, + STATE(10), 1, sym_reg, STATE(16), 1, sym__tc_expr, @@ -3170,9 +3177,9 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, ACTIONS(37), 1, aux_sym_int_token2, - STATE(11), 1, + STATE(10), 1, sym_reg, - STATE(19), 1, + STATE(18), 1, sym__tc_expr, STATE(27), 1, sym_line_comment, @@ -3200,9 +3207,9 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, ACTIONS(37), 1, aux_sym_int_token2, - STATE(11), 1, + STATE(10), 1, sym_reg, - STATE(17), 1, + STATE(15), 1, sym__tc_expr, STATE(28), 1, sym_line_comment, @@ -3221,37 +3228,62 @@ static const uint16_t ts_small_parse_table[] = { sym_int, sym_string, sym_ident, - [1202] = 11, + [1202] = 6, + ACTIONS(3), 1, + anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(35), 1, - anon_sym_POUND, - ACTIONS(37), 1, + ACTIONS(86), 1, + anon_sym_SLASH, + STATE(29), 1, + sym_line_comment, + ACTIONS(84), 13, + ts_builtin_sym_end, + anon_sym_LF, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_DASH, + anon_sym_RBRACE, + anon_sym_PLUS, + anon_sym_RBRACK, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + [1233] = 11, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(49), 1, + anon_sym_POUND, + ACTIONS(51), 1, aux_sym_int_token2, - STATE(11), 1, + STATE(30), 1, + sym_line_comment, + STATE(36), 1, sym_reg, - STATE(18), 1, + STATE(45), 1, sym__tc_expr, - STATE(29), 1, - sym_line_comment, - ACTIONS(41), 2, + ACTIONS(53), 2, aux_sym_string_token1, aux_sym_string_token2, - ACTIONS(45), 2, + ACTIONS(57), 2, sym_meta_ident, sym__ident, - ACTIONS(43), 3, + ACTIONS(55), 3, sym_word, sym__reg, sym_address, - STATE(14), 4, + STATE(43), 4, sym_tc_infix, sym_int, sym_string, sym_ident, - [1243] = 11, + [1274] = 11, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, @@ -3260,11 +3292,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, ACTIONS(51), 1, aux_sym_int_token2, - STATE(30), 1, + STATE(31), 1, sym_line_comment, - STATE(39), 1, + STATE(36), 1, sym_reg, - STATE(43), 1, + STATE(44), 1, sym__tc_expr, ACTIONS(53), 2, aux_sym_string_token1, @@ -3276,12 +3308,12 @@ static const uint16_t ts_small_parse_table[] = { sym_word, sym__reg, sym_address, - STATE(46), 4, + STATE(43), 4, sym_tc_infix, sym_int, sym_string, sym_ident, - [1284] = 11, + [1315] = 11, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, @@ -3290,11 +3322,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, ACTIONS(51), 1, aux_sym_int_token2, - STATE(31), 1, + STATE(32), 1, sym_line_comment, - STATE(39), 1, + STATE(36), 1, sym_reg, - STATE(49), 1, + STATE(46), 1, sym__tc_expr, ACTIONS(53), 2, aux_sym_string_token1, @@ -3306,12 +3338,12 @@ static const uint16_t ts_small_parse_table[] = { sym_word, sym__reg, sym_address, - STATE(46), 4, + STATE(43), 4, sym_tc_infix, sym_int, sym_string, sym_ident, - [1325] = 11, + [1356] = 11, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, @@ -3320,11 +3352,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, ACTIONS(51), 1, aux_sym_int_token2, - STATE(32), 1, + STATE(33), 1, sym_line_comment, - STATE(39), 1, + STATE(36), 1, sym_reg, - STATE(48), 1, + STATE(47), 1, sym__tc_expr, ACTIONS(53), 2, aux_sym_string_token1, @@ -3336,36 +3368,11 @@ static const uint16_t ts_small_parse_table[] = { sym_word, sym__reg, sym_address, - STATE(46), 4, + STATE(43), 4, sym_tc_infix, sym_int, sym_string, sym_ident, - [1366] = 6, - ACTIONS(3), 1, - anon_sym_POUND, - ACTIONS(5), 1, - aux_sym_line_comment_token2, - ACTIONS(7), 1, - sym_block_comment, - ACTIONS(86), 1, - anon_sym_SLASH, - STATE(33), 1, - sym_line_comment, - ACTIONS(84), 13, - ts_builtin_sym_end, - anon_sym_LF, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_DASH, - anon_sym_RBRACE, - anon_sym_PLUS, - anon_sym_RBRACK, - anon_sym_STAR, - anon_sym_PERCENT, - anon_sym_PIPE, - anon_sym_CARET, - anon_sym_AMP, [1397] = 11, ACTIONS(5), 1, aux_sym_line_comment_token2, @@ -3377,9 +3384,9 @@ static const uint16_t ts_small_parse_table[] = { aux_sym_int_token2, STATE(34), 1, sym_line_comment, - STATE(39), 1, + STATE(36), 1, sym_reg, - STATE(47), 1, + STATE(48), 1, sym__tc_expr, ACTIONS(53), 2, aux_sym_string_token1, @@ -3391,7 +3398,7 @@ static const uint16_t ts_small_parse_table[] = { sym_word, sym__reg, sym_address, - STATE(46), 4, + STATE(43), 4, sym_tc_infix, sym_int, sym_string, @@ -3407,9 +3414,9 @@ static const uint16_t ts_small_parse_table[] = { aux_sym_int_token2, STATE(35), 1, sym_line_comment, - STATE(39), 1, + STATE(36), 1, sym_reg, - STATE(45), 1, + STATE(49), 1, sym__tc_expr, ACTIONS(53), 2, aux_sym_string_token1, @@ -3421,44 +3428,36 @@ static const uint16_t ts_small_parse_table[] = { sym_word, sym__reg, sym_address, - STATE(46), 4, + STATE(43), 4, sym_tc_infix, sym_int, sym_string, sym_ident, - [1479] = 14, + [1479] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(11), 1, - anon_sym_label, - ACTIONS(13), 1, - anon_sym_const, - ACTIONS(15), 1, - sym_word, - ACTIONS(17), 1, - sym_meta_ident, - ACTIONS(19), 1, - sym__ident, - ACTIONS(139), 1, - ts_builtin_sym_end, - ACTIONS(141), 1, - anon_sym_LF, + ACTIONS(82), 1, + anon_sym_SLASH, STATE(36), 1, sym_line_comment, - STATE(52), 1, - aux_sym_program_repeat1, - STATE(124), 1, - sym__item, - STATE(128), 4, - sym_meta, - sym_label, - sym_const, - sym_instruction, - [1525] = 14, + ACTIONS(80), 12, + ts_builtin_sym_end, + anon_sym_LF, + anon_sym_COMMA, + anon_sym_RPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_RBRACK, + anon_sym_STAR, + anon_sym_PERCENT, + anon_sym_PIPE, + anon_sym_CARET, + anon_sym_AMP, + [1509] = 14, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -3475,33 +3474,33 @@ static const uint16_t ts_small_parse_table[] = { sym_meta_ident, ACTIONS(19), 1, sym__ident, + ACTIONS(139), 1, + ts_builtin_sym_end, ACTIONS(141), 1, anon_sym_LF, - ACTIONS(143), 1, - ts_builtin_sym_end, STATE(37), 1, sym_line_comment, STATE(52), 1, aux_sym_program_repeat1, - STATE(124), 1, + STATE(127), 1, sym__item, - STATE(128), 4, + STATE(130), 4, sym_meta, sym_label, sym_const, sym_instruction, - [1571] = 6, + [1555] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(63), 1, + ACTIONS(74), 1, anon_sym_SLASH, STATE(38), 1, sym_line_comment, - ACTIONS(61), 12, + ACTIONS(72), 12, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, @@ -3514,30 +3513,38 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_CARET, anon_sym_AMP, - [1601] = 6, + [1585] = 14, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(90), 1, - anon_sym_SLASH, + ACTIONS(11), 1, + anon_sym_label, + ACTIONS(13), 1, + anon_sym_const, + ACTIONS(15), 1, + sym_word, + ACTIONS(17), 1, + sym_meta_ident, + ACTIONS(19), 1, + sym__ident, + ACTIONS(141), 1, + anon_sym_LF, + ACTIONS(143), 1, + ts_builtin_sym_end, STATE(39), 1, sym_line_comment, - ACTIONS(88), 12, - ts_builtin_sym_end, - anon_sym_LF, - anon_sym_COMMA, - anon_sym_RPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_RBRACK, - anon_sym_STAR, - anon_sym_PERCENT, - anon_sym_PIPE, - anon_sym_CARET, - anon_sym_AMP, + STATE(52), 1, + aux_sym_program_repeat1, + STATE(127), 1, + sym__item, + STATE(130), 4, + sym_meta, + sym_label, + sym_const, + sym_instruction, [1631] = 6, ACTIONS(3), 1, anon_sym_POUND, @@ -3585,9 +3592,9 @@ static const uint16_t ts_small_parse_table[] = { sym_line_comment, STATE(52), 1, aux_sym_program_repeat1, - STATE(124), 1, + STATE(127), 1, sym__item, - STATE(128), 4, + STATE(130), 4, sym_meta, sym_label, sym_const, @@ -3599,11 +3606,11 @@ static const uint16_t ts_small_parse_table[] = { aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(82), 1, + ACTIONS(90), 1, anon_sym_SLASH, STATE(42), 1, sym_line_comment, - ACTIONS(80), 10, + ACTIONS(88), 10, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, @@ -3621,11 +3628,11 @@ static const uint16_t ts_small_parse_table[] = { aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(112), 1, + ACTIONS(68), 1, anon_sym_SLASH, STATE(43), 1, sym_line_comment, - ACTIONS(110), 9, + ACTIONS(70), 9, ts_builtin_sym_end, anon_sym_LF, anon_sym_DASH, @@ -3635,79 +3642,82 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_CARET, anon_sym_AMP, - [1759] = 11, + [1759] = 10, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(151), 1, + ACTIONS(147), 1, anon_sym_SLASH, - ACTIONS(153), 1, + ACTIONS(149), 1, anon_sym_PIPE, - ACTIONS(155), 1, + ACTIONS(151), 1, anon_sym_CARET, - ACTIONS(157), 1, + ACTIONS(153), 1, anon_sym_AMP, STATE(44), 1, sym_line_comment, ACTIONS(145), 2, + anon_sym_STAR, + anon_sym_PERCENT, + ACTIONS(110), 4, ts_builtin_sym_end, anon_sym_LF, - ACTIONS(147), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(149), 2, - anon_sym_STAR, - anon_sym_PERCENT, - [1796] = 10, + [1794] = 11, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(151), 1, + ACTIONS(147), 1, anon_sym_SLASH, - ACTIONS(153), 1, + ACTIONS(149), 1, anon_sym_PIPE, - ACTIONS(155), 1, + ACTIONS(151), 1, anon_sym_CARET, - ACTIONS(157), 1, + ACTIONS(153), 1, anon_sym_AMP, STATE(45), 1, sym_line_comment, - ACTIONS(149), 2, + ACTIONS(145), 2, anon_sym_STAR, anon_sym_PERCENT, - ACTIONS(110), 4, + ACTIONS(155), 2, ts_builtin_sym_end, anon_sym_LF, + ACTIONS(157), 2, anon_sym_DASH, anon_sym_PLUS, - [1831] = 6, + [1831] = 9, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(72), 1, + ACTIONS(112), 1, anon_sym_SLASH, + ACTIONS(149), 1, + anon_sym_PIPE, + ACTIONS(151), 1, + anon_sym_CARET, + ACTIONS(153), 1, + anon_sym_AMP, STATE(46), 1, sym_line_comment, - ACTIONS(74), 9, + ACTIONS(110), 6, ts_builtin_sym_end, anon_sym_LF, anon_sym_DASH, anon_sym_PLUS, anon_sym_STAR, anon_sym_PERCENT, - anon_sym_PIPE, - anon_sym_CARET, - anon_sym_AMP, - [1858] = 9, + [1864] = 8, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -3716,22 +3726,21 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, ACTIONS(112), 1, anon_sym_SLASH, - ACTIONS(153), 1, - anon_sym_PIPE, - ACTIONS(155), 1, + ACTIONS(151), 1, anon_sym_CARET, - ACTIONS(157), 1, + ACTIONS(153), 1, anon_sym_AMP, STATE(47), 1, sym_line_comment, - ACTIONS(110), 6, + ACTIONS(110), 7, ts_builtin_sym_end, anon_sym_LF, anon_sym_DASH, anon_sym_PLUS, anon_sym_STAR, anon_sym_PERCENT, - [1891] = 8, + anon_sym_PIPE, + [1895] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -3740,13 +3749,11 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, ACTIONS(112), 1, anon_sym_SLASH, - ACTIONS(155), 1, - anon_sym_CARET, - ACTIONS(157), 1, + ACTIONS(153), 1, anon_sym_AMP, STATE(48), 1, sym_line_comment, - ACTIONS(110), 7, + ACTIONS(110), 8, ts_builtin_sym_end, anon_sym_LF, anon_sym_DASH, @@ -3754,7 +3761,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_STAR, anon_sym_PERCENT, anon_sym_PIPE, - [1922] = 7, + anon_sym_CARET, + [1924] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -3763,11 +3771,9 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, ACTIONS(112), 1, anon_sym_SLASH, - ACTIONS(157), 1, - anon_sym_AMP, STATE(49), 1, sym_line_comment, - ACTIONS(110), 8, + ACTIONS(110), 9, ts_builtin_sym_end, anon_sym_LF, anon_sym_DASH, @@ -3776,6 +3782,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PERCENT, anon_sym_PIPE, anon_sym_CARET, + anon_sym_AMP, [1951] = 9, ACTIONS(5), 1, aux_sym_line_comment_token2, @@ -3785,14 +3792,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, ACTIONS(51), 1, aux_sym_int_token2, - STATE(39), 1, + STATE(36), 1, sym_reg, STATE(50), 1, sym_line_comment, ACTIONS(57), 2, sym_meta_ident, sym__ident, - STATE(146), 2, + STATE(150), 2, sym_int, sym_ident, ACTIONS(55), 3, @@ -3808,14 +3815,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_POUND, ACTIONS(51), 1, aux_sym_int_token2, - STATE(39), 1, + STATE(36), 1, sym_reg, STATE(51), 1, sym_line_comment, ACTIONS(57), 2, sym_meta_ident, sym__ident, - STATE(132), 2, + STATE(135), 2, sym_int, sym_ident, ACTIONS(55), 3, @@ -3842,43 +3849,43 @@ static const uint16_t ts_small_parse_table[] = { sym_word, sym_meta_ident, sym__ident, - [2042] = 9, + [2042] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(166), 1, - sym_address, - STATE(39), 1, - sym_reg, STATE(53), 1, sym_line_comment, - STATE(155), 1, - sym_ident, - ACTIONS(55), 2, + ACTIONS(166), 2, + ts_builtin_sym_end, + anon_sym_LF, + ACTIONS(168), 5, + anon_sym_label, + anon_sym_const, sym_word, - sym__reg, - ACTIONS(57), 2, sym_meta_ident, sym__ident, - [2072] = 6, + [2066] = 9, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, + ACTIONS(170), 1, + sym_address, + STATE(36), 1, + sym_reg, STATE(54), 1, sym_line_comment, - ACTIONS(168), 2, - ts_builtin_sym_end, - anon_sym_LF, - ACTIONS(170), 5, - anon_sym_label, - anon_sym_const, + STATE(139), 1, + sym_ident, + ACTIONS(55), 2, sym_word, + sym__reg, + ACTIONS(57), 2, sym_meta_ident, sym__ident, [2096] = 9, @@ -3888,13 +3895,13 @@ static const uint16_t ts_small_parse_table[] = { aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(166), 1, + ACTIONS(170), 1, sym_address, - STATE(39), 1, + STATE(36), 1, sym_reg, STATE(55), 1, sym_line_comment, - STATE(148), 1, + STATE(152), 1, sym_ident, ACTIONS(55), 2, sym_word, @@ -3909,36 +3916,34 @@ static const uint16_t ts_small_parse_table[] = { aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(174), 1, - anon_sym_LPAREN, - ACTIONS(176), 1, - sym_meta_ident, + ACTIONS(55), 1, + sym__reg, + ACTIONS(172), 1, + anon_sym_RBRACE, STATE(56), 1, sym_line_comment, - STATE(127), 1, - sym_meta, - ACTIONS(172), 2, - ts_builtin_sym_end, - anon_sym_LF, - [2152] = 8, + STATE(101), 1, + sym_reg, + ACTIONS(170), 2, + sym_word, + sym_address, + [2152] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(55), 1, - sym__reg, - ACTIONS(178), 1, - anon_sym_COMMA, + ACTIONS(174), 1, + anon_sym_RPAREN, STATE(57), 1, sym_line_comment, - STATE(153), 1, - sym_reg, - ACTIONS(166), 2, - sym_word, - sym_address, - [2178] = 8, + ACTIONS(176), 4, + anon_sym_1, + anon_sym_2, + anon_sym_4, + anon_sym_8, + [2174] = 8, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -3947,34 +3952,32 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, ACTIONS(55), 1, sym__reg, - ACTIONS(180), 1, + ACTIONS(178), 1, anon_sym_RBRACE, STATE(58), 1, sym_line_comment, - STATE(91), 1, + STATE(101), 1, sym_reg, - ACTIONS(166), 2, + ACTIONS(170), 2, sym_word, sym_address, - [2204] = 8, + [2200] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(55), 1, - sym__reg, - ACTIONS(182), 1, - anon_sym_RBRACE, + ACTIONS(180), 1, + anon_sym_RPAREN, STATE(59), 1, sym_line_comment, - STATE(107), 1, - sym_reg, - ACTIONS(166), 2, - sym_word, - sym_address, - [2230] = 6, + ACTIONS(182), 4, + anon_sym_1, + anon_sym_2, + anon_sym_4, + anon_sym_8, + [2222] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -3990,72 +3993,76 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_2, anon_sym_4, anon_sym_8, - [2252] = 8, + [2244] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(55), 1, - sym__reg, ACTIONS(188), 1, - anon_sym_RBRACE, + anon_sym_RPAREN, STATE(61), 1, sym_line_comment, - STATE(107), 1, - sym_reg, - ACTIONS(166), 2, - sym_word, - sym_address, - [2278] = 6, + ACTIONS(190), 4, + anon_sym_1, + anon_sym_2, + anon_sym_4, + anon_sym_8, + [2266] = 8, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(190), 1, - anon_sym_RPAREN, + ACTIONS(194), 1, + anon_sym_LPAREN, + ACTIONS(196), 1, + sym_meta_ident, STATE(62), 1, sym_line_comment, - ACTIONS(192), 4, - anon_sym_1, - anon_sym_2, - anon_sym_4, - anon_sym_8, - [2300] = 6, + STATE(123), 1, + sym_meta, + ACTIONS(192), 2, + ts_builtin_sym_end, + anon_sym_LF, + [2292] = 8, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(194), 1, - anon_sym_RPAREN, + ACTIONS(55), 1, + sym__reg, + ACTIONS(198), 1, + anon_sym_COMMA, STATE(63), 1, sym_line_comment, - ACTIONS(196), 4, - anon_sym_1, - anon_sym_2, - anon_sym_4, - anon_sym_8, - [2322] = 6, + STATE(125), 1, + sym_reg, + ACTIONS(170), 2, + sym_word, + sym_address, + [2318] = 8, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(198), 1, - anon_sym_RPAREN, + ACTIONS(55), 1, + sym__reg, + ACTIONS(200), 1, + anon_sym_RBRACE, STATE(64), 1, sym_line_comment, - ACTIONS(200), 4, - anon_sym_1, - anon_sym_2, - anon_sym_4, - anon_sym_8, + STATE(72), 1, + sym_reg, + ACTIONS(170), 2, + sym_word, + sym_address, [2344] = 8, ACTIONS(3), 1, anon_sym_POUND, @@ -4063,13 +4070,13 @@ static const uint16_t ts_small_parse_table[] = { aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(176), 1, + ACTIONS(196), 1, sym_meta_ident, ACTIONS(204), 1, anon_sym_LPAREN, STATE(65), 1, sym_line_comment, - STATE(120), 1, + STATE(126), 1, sym_meta, ACTIONS(202), 2, ts_builtin_sym_end, @@ -4087,12 +4094,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, STATE(66), 1, sym_line_comment, - STATE(147), 1, + STATE(122), 1, sym_reg, - ACTIONS(166), 2, + ACTIONS(170), 2, sym_word, sym_address, - [2396] = 6, + [2396] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4101,62 +4108,46 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, ACTIONS(210), 1, anon_sym_COMMA, + STATE(67), 1, + sym_line_comment, + STATE(95), 1, + aux_sym_meta_repeat1, ACTIONS(208), 2, ts_builtin_sym_end, anon_sym_LF, - STATE(67), 2, - sym_line_comment, - aux_sym_instruction_repeat1, - [2417] = 7, + [2419] = 8, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(55), 1, - sym__reg, + ACTIONS(139), 1, + ts_builtin_sym_end, + ACTIONS(141), 1, + anon_sym_LF, + STATE(39), 1, + aux_sym_program_repeat1, STATE(68), 1, sym_line_comment, - STATE(107), 1, - sym_reg, - ACTIONS(166), 2, - sym_word, - sym_address, - [2440] = 8, + STATE(74), 1, + aux_sym_program_repeat2, + [2444] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(182), 1, - anon_sym_RBRACE, - ACTIONS(213), 1, + ACTIONS(214), 1, anon_sym_COMMA, - ACTIONS(215), 1, - anon_sym_DASH, - STATE(69), 1, - sym_line_comment, - STATE(82), 1, - aux_sym_list_repeat1, - [2465] = 7, - ACTIONS(3), 1, - anon_sym_POUND, - ACTIONS(5), 1, - aux_sym_line_comment_token2, - ACTIONS(7), 1, - sym_block_comment, - ACTIONS(55), 1, - sym__reg, - STATE(70), 1, + ACTIONS(212), 2, + ts_builtin_sym_end, + anon_sym_LF, + STATE(69), 2, sym_line_comment, - STATE(116), 1, - sym_reg, - ACTIONS(166), 2, - sym_word, - sym_address, - [2488] = 6, + aux_sym_meta_repeat2, + [2465] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4164,45 +4155,46 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(7), 1, sym_block_comment, ACTIONS(219), 1, - anon_sym_BANG, - STATE(71), 1, - sym_line_comment, - ACTIONS(217), 3, + anon_sym_COMMA, + ACTIONS(217), 2, ts_builtin_sym_end, anon_sym_LF, - anon_sym_COMMA, - [2509] = 6, + STATE(70), 2, + sym_line_comment, + aux_sym_meta_repeat1, + [2486] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(70), 1, - anon_sym_LPAREN, - STATE(72), 1, - sym_line_comment, - ACTIONS(68), 3, + ACTIONS(224), 1, + anon_sym_COMMA, + ACTIONS(222), 2, ts_builtin_sym_end, anon_sym_LF, - anon_sym_COMMA, - [2530] = 7, + STATE(71), 2, + sym_line_comment, + aux_sym_meta_repeat3, + [2507] = 8, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(223), 1, + ACTIONS(227), 1, anon_sym_COMMA, - STATE(73), 1, + ACTIONS(229), 1, + anon_sym_DASH, + ACTIONS(231), 1, + anon_sym_RBRACE, + STATE(72), 1, sym_line_comment, STATE(81), 1, - aux_sym_meta_repeat1, - ACTIONS(221), 2, - ts_builtin_sym_end, - anon_sym_LF, - [2553] = 7, + aux_sym_list_repeat1, + [2532] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4211,139 +4203,158 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, ACTIONS(55), 1, sym__reg, - STATE(74), 1, + STATE(73), 1, sym_line_comment, - STATE(92), 1, + STATE(151), 1, sym_reg, - ACTIONS(166), 2, + ACTIONS(170), 2, sym_word, sym_address, - [2576] = 7, + [2555] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(55), 1, - sym__reg, - STATE(75), 1, + ACTIONS(233), 1, + ts_builtin_sym_end, + ACTIONS(235), 1, + anon_sym_LF, + STATE(41), 1, + aux_sym_program_repeat1, + STATE(74), 2, sym_line_comment, - STATE(151), 1, - sym_reg, - ACTIONS(166), 2, - sym_word, - sym_address, - [2599] = 6, + aux_sym_program_repeat2, + [2578] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(227), 1, + ACTIONS(241), 1, + anon_sym_RBRACE, + ACTIONS(238), 2, anon_sym_COMMA, - ACTIONS(225), 2, - ts_builtin_sym_end, - anon_sym_LF, - STATE(76), 2, + anon_sym_DASH, + STATE(75), 2, sym_line_comment, - aux_sym_meta_repeat2, - [2620] = 6, + aux_sym_list_repeat1, + [2599] = 8, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(232), 1, - anon_sym_COMMA, - ACTIONS(230), 2, - ts_builtin_sym_end, + ACTIONS(141), 1, anon_sym_LF, - STATE(77), 2, + ACTIONS(243), 1, + ts_builtin_sym_end, + STATE(37), 1, + aux_sym_program_repeat1, + STATE(68), 1, + aux_sym_program_repeat2, + STATE(76), 1, sym_line_comment, - aux_sym_meta_repeat1, - [2641] = 6, + [2624] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(237), 1, - anon_sym_COMMA, - ACTIONS(235), 2, - ts_builtin_sym_end, - anon_sym_LF, - STATE(78), 2, + ACTIONS(55), 1, + sym__reg, + STATE(77), 1, sym_line_comment, - aux_sym_meta_repeat3, - [2662] = 8, + STATE(146), 1, + sym_reg, + ACTIONS(170), 2, + sym_word, + sym_address, + [2647] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(141), 1, - anon_sym_LF, - ACTIONS(143), 1, - ts_builtin_sym_end, - STATE(36), 1, - aux_sym_program_repeat1, - STATE(79), 1, + ACTIONS(55), 1, + sym__reg, + STATE(78), 1, sym_line_comment, - STATE(89), 1, - aux_sym_program_repeat2, - [2687] = 7, + STATE(101), 1, + sym_reg, + ACTIONS(170), 2, + sym_word, + sym_address, + [2670] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(242), 1, + ACTIONS(245), 1, anon_sym_COMMA, - STATE(76), 1, - aux_sym_meta_repeat2, + ACTIONS(249), 1, + anon_sym_RBRACK, + STATE(79), 1, + sym_line_comment, + ACTIONS(247), 2, + anon_sym_DASH, + anon_sym_PLUS, + [2693] = 6, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(253), 1, + anon_sym_BANG, STATE(80), 1, sym_line_comment, - ACTIONS(240), 2, + ACTIONS(251), 3, ts_builtin_sym_end, anon_sym_LF, - [2710] = 7, + anon_sym_COMMA, + [2714] = 8, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(223), 1, + ACTIONS(172), 1, + anon_sym_RBRACE, + ACTIONS(229), 1, + anon_sym_DASH, + ACTIONS(255), 1, anon_sym_COMMA, - STATE(77), 1, - aux_sym_meta_repeat1, + STATE(75), 1, + aux_sym_list_repeat1, STATE(81), 1, sym_line_comment, - ACTIONS(240), 2, - ts_builtin_sym_end, - anon_sym_LF, - [2733] = 6, + [2739] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(247), 1, - anon_sym_RBRACE, - ACTIONS(244), 2, - anon_sym_COMMA, - anon_sym_DASH, - STATE(82), 2, + ACTIONS(55), 1, + sym__reg, + STATE(82), 1, sym_line_comment, - aux_sym_list_repeat1, - [2754] = 7, + STATE(102), 1, + sym_reg, + ACTIONS(170), 2, + sym_word, + sym_address, + [2762] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4354,140 +4365,136 @@ static const uint16_t ts_small_parse_table[] = { sym__reg, STATE(83), 1, sym_line_comment, - STATE(140), 1, + STATE(147), 1, sym_reg, - ACTIONS(166), 2, + ACTIONS(170), 2, sym_word, sym_address, - [2777] = 7, + [2785] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(249), 1, - anon_sym_COMMA, - STATE(78), 1, - aux_sym_meta_repeat3, + ACTIONS(259), 1, + anon_sym_BANG, STATE(84), 1, sym_line_comment, - ACTIONS(240), 2, + ACTIONS(257), 3, ts_builtin_sym_end, anon_sym_LF, - [2800] = 8, + anon_sym_COMMA, + [2806] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(141), 1, - anon_sym_LF, - ACTIONS(251), 1, - ts_builtin_sym_end, - STATE(37), 1, - aux_sym_program_repeat1, - STATE(79), 1, - aux_sym_program_repeat2, + ACTIONS(261), 1, + anon_sym_COMMA, STATE(85), 1, sym_line_comment, - [2825] = 6, + STATE(87), 1, + aux_sym_instruction_repeat1, + ACTIONS(47), 2, + ts_builtin_sym_end, + anon_sym_LF, + [2829] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(255), 1, - anon_sym_BANG, + ACTIONS(66), 1, + anon_sym_LPAREN, STATE(86), 1, sym_line_comment, - ACTIONS(253), 3, + ACTIONS(64), 3, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [2846] = 7, + [2850] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(257), 1, + ACTIONS(265), 1, anon_sym_COMMA, - STATE(87), 1, - sym_line_comment, - STATE(95), 1, - aux_sym_instruction_repeat1, - ACTIONS(114), 2, + ACTIONS(263), 2, ts_builtin_sym_end, anon_sym_LF, - [2869] = 7, + STATE(87), 2, + sym_line_comment, + aux_sym_instruction_repeat1, + [2871] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(242), 1, + ACTIONS(268), 1, anon_sym_COMMA, - STATE(80), 1, - aux_sym_meta_repeat2, STATE(88), 1, sym_line_comment, - ACTIONS(221), 2, + STATE(94), 1, + aux_sym_meta_repeat2, + ACTIONS(208), 2, ts_builtin_sym_end, anon_sym_LF, - [2892] = 7, + [2894] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(259), 1, + ACTIONS(272), 1, + anon_sym_COMMA, + STATE(71), 1, + aux_sym_meta_repeat3, + STATE(89), 1, + sym_line_comment, + ACTIONS(270), 2, ts_builtin_sym_end, - ACTIONS(261), 1, anon_sym_LF, - STATE(41), 1, - aux_sym_program_repeat1, - STATE(89), 2, - sym_line_comment, - aux_sym_program_repeat2, - [2915] = 7, + [2917] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(55), 1, - sym__reg, + ACTIONS(272), 1, + anon_sym_COMMA, + STATE(89), 1, + aux_sym_meta_repeat3, STATE(90), 1, sym_line_comment, - STATE(154), 1, - sym_reg, - ACTIONS(166), 2, - sym_word, - sym_address, - [2938] = 8, + ACTIONS(208), 2, + ts_builtin_sym_end, + anon_sym_LF, + [2940] = 7, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(215), 1, - anon_sym_DASH, - ACTIONS(264), 1, - anon_sym_COMMA, - ACTIONS(266), 1, - anon_sym_RBRACE, - STATE(69), 1, - aux_sym_list_repeat1, + ACTIONS(55), 1, + sym__reg, + STATE(79), 1, + sym_reg, STATE(91), 1, sym_line_comment, + ACTIONS(170), 2, + sym_word, + sym_address, [2963] = 7, ACTIONS(3), 1, anon_sym_POUND, @@ -4495,15 +4502,15 @@ static const uint16_t ts_small_parse_table[] = { aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(268), 1, + ACTIONS(274), 1, anon_sym_COMMA, - ACTIONS(272), 1, - anon_sym_RBRACK, + STATE(85), 1, + aux_sym_instruction_repeat1, STATE(92), 1, sym_line_comment, - ACTIONS(270), 2, - anon_sym_DASH, - anon_sym_PLUS, + ACTIONS(114), 2, + ts_builtin_sym_end, + anon_sym_LF, [2986] = 7, ACTIONS(3), 1, anon_sym_POUND, @@ -4515,9 +4522,9 @@ static const uint16_t ts_small_parse_table[] = { sym__reg, STATE(93), 1, sym_line_comment, - STATE(134), 1, + STATE(142), 1, sym_reg, - ACTIONS(166), 2, + ACTIONS(170), 2, sym_word, sym_address, [3009] = 7, @@ -4527,13 +4534,13 @@ static const uint16_t ts_small_parse_table[] = { aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(249), 1, + ACTIONS(268), 1, anon_sym_COMMA, - STATE(84), 1, - aux_sym_meta_repeat3, + STATE(69), 1, + aux_sym_meta_repeat2, STATE(94), 1, sym_line_comment, - ACTIONS(221), 2, + ACTIONS(270), 2, ts_builtin_sym_end, anon_sym_LF, [3032] = 7, @@ -4543,13 +4550,13 @@ static const uint16_t ts_small_parse_table[] = { aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(274), 1, + ACTIONS(210), 1, anon_sym_COMMA, - STATE(67), 1, - aux_sym_instruction_repeat1, + STATE(70), 1, + aux_sym_meta_repeat1, STATE(95), 1, sym_line_comment, - ACTIONS(47), 2, + ACTIONS(270), 2, ts_builtin_sym_end, anon_sym_LF, [3055] = 5, @@ -4561,11 +4568,11 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, STATE(96), 1, sym_line_comment, - ACTIONS(276), 3, + ACTIONS(217), 3, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [3073] = 5, + [3073] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4574,11 +4581,12 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, STATE(97), 1, sym_line_comment, - ACTIONS(235), 3, - ts_builtin_sym_end, - anon_sym_LF, - anon_sym_COMMA, - [3091] = 5, + STATE(99), 1, + sym_string, + ACTIONS(53), 2, + aux_sym_string_token1, + aux_sym_string_token2, + [3093] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4587,11 +4595,11 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, STATE(98), 1, sym_line_comment, - ACTIONS(278), 3, + ACTIONS(212), 3, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [3109] = 5, + [3111] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4600,11 +4608,11 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, STATE(99), 1, sym_line_comment, - ACTIONS(68), 3, + ACTIONS(222), 3, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [3127] = 5, + [3129] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4613,11 +4621,11 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, STATE(100), 1, sym_line_comment, - ACTIONS(253), 3, + ACTIONS(276), 3, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [3145] = 5, + [3147] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4626,24 +4634,25 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, STATE(101), 1, sym_line_comment, - ACTIONS(280), 3, - ts_builtin_sym_end, - anon_sym_LF, + ACTIONS(241), 3, anon_sym_COMMA, - [3163] = 5, + anon_sym_DASH, + anon_sym_RBRACE, + [3165] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, + ACTIONS(280), 1, + anon_sym_RBRACK, STATE(102), 1, sym_line_comment, - ACTIONS(225), 3, - ts_builtin_sym_end, - anon_sym_LF, - anon_sym_COMMA, - [3181] = 5, + ACTIONS(278), 2, + anon_sym_DASH, + anon_sym_PLUS, + [3185] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4656,7 +4665,7 @@ static const uint16_t ts_small_parse_table[] = { ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [3199] = 5, + [3203] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4665,11 +4674,11 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, STATE(104), 1, sym_line_comment, - ACTIONS(284), 3, + ACTIONS(257), 3, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [3217] = 5, + [3221] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4678,11 +4687,11 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, STATE(105), 1, sym_line_comment, - ACTIONS(286), 3, + ACTIONS(284), 3, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [3235] = 5, + [3239] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4691,11 +4700,11 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, STATE(106), 1, sym_line_comment, - ACTIONS(288), 3, + ACTIONS(286), 3, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [3253] = 5, + [3257] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4704,11 +4713,11 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, STATE(107), 1, sym_line_comment, - ACTIONS(247), 3, + ACTIONS(288), 3, + ts_builtin_sym_end, + anon_sym_LF, anon_sym_COMMA, - anon_sym_DASH, - anon_sym_RBRACE, - [3271] = 5, + [3275] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4721,7 +4730,7 @@ static const uint16_t ts_small_parse_table[] = { ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [3289] = 5, + [3293] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4730,11 +4739,11 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, STATE(109), 1, sym_line_comment, - ACTIONS(292), 3, + ACTIONS(251), 3, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [3307] = 5, + [3311] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4743,11 +4752,11 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, STATE(110), 1, sym_line_comment, - ACTIONS(294), 3, + ACTIONS(292), 3, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [3325] = 5, + [3329] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4756,11 +4765,11 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, STATE(111), 1, sym_line_comment, - ACTIONS(296), 3, + ACTIONS(294), 3, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [3343] = 5, + [3347] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4769,25 +4778,24 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, STATE(112), 1, sym_line_comment, - ACTIONS(298), 3, + ACTIONS(296), 3, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [3361] = 6, + [3365] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - STATE(97), 1, - sym_string, STATE(113), 1, sym_line_comment, - ACTIONS(53), 2, - aux_sym_string_token1, - aux_sym_string_token2, - [3381] = 5, + ACTIONS(298), 3, + ts_builtin_sym_end, + anon_sym_LF, + anon_sym_COMMA, + [3383] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4800,7 +4808,7 @@ static const uint16_t ts_small_parse_table[] = { ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [3399] = 5, + [3401] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4809,24 +4817,23 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, STATE(115), 1, sym_line_comment, - ACTIONS(230), 3, + ACTIONS(302), 3, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, - [3417] = 6, + [3419] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(304), 1, - anon_sym_RBRACK, STATE(116), 1, sym_line_comment, - ACTIONS(302), 2, - anon_sym_DASH, - anon_sym_PLUS, + ACTIONS(304), 3, + ts_builtin_sym_end, + anon_sym_LF, + anon_sym_COMMA, [3437] = 5, ACTIONS(3), 1, anon_sym_POUND, @@ -4849,7 +4856,7 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, STATE(118), 1, sym_line_comment, - ACTIONS(208), 3, + ACTIONS(308), 3, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, @@ -4862,7 +4869,7 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, STATE(119), 1, sym_line_comment, - ACTIONS(308), 3, + ACTIONS(310), 3, ts_builtin_sym_end, anon_sym_LF, anon_sym_COMMA, @@ -4875,49 +4882,49 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, STATE(120), 1, sym_line_comment, - ACTIONS(310), 2, + ACTIONS(263), 3, ts_builtin_sym_end, anon_sym_LF, - [3508] = 6, + anon_sym_COMMA, + [3509] = 5, + ACTIONS(3), 1, + anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(49), 1, - anon_sym_POUND, - ACTIONS(312), 1, - aux_sym_int_token2, STATE(121), 1, sym_line_comment, - STATE(142), 1, - sym_int, + ACTIONS(64), 3, + ts_builtin_sym_end, + anon_sym_LF, + anon_sym_COMMA, [3527] = 6, + ACTIONS(3), 1, + anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(49), 1, - anon_sym_POUND, ACTIONS(312), 1, - aux_sym_int_token2, + anon_sym_COMMA, + ACTIONS(314), 1, + anon_sym_RPAREN, STATE(122), 1, sym_line_comment, - STATE(146), 1, - sym_int, - [3546] = 6, + [3546] = 5, + ACTIONS(3), 1, + anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(49), 1, - anon_sym_POUND, - ACTIONS(312), 1, - aux_sym_int_token2, - STATE(115), 1, - sym_int, STATE(123), 1, sym_line_comment, - [3565] = 5, + ACTIONS(316), 2, + ts_builtin_sym_end, + anon_sym_LF, + [3563] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4926,21 +4933,22 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, STATE(124), 1, sym_line_comment, - ACTIONS(259), 2, + ACTIONS(208), 2, ts_builtin_sym_end, anon_sym_LF, - [3582] = 5, + [3580] = 6, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, + ACTIONS(318), 1, + anon_sym_COMMA, + ACTIONS(320), 1, + anon_sym_RPAREN, STATE(125), 1, sym_line_comment, - ACTIONS(314), 2, - ts_builtin_sym_end, - anon_sym_LF, [3599] = 5, ACTIONS(3), 1, anon_sym_POUND, @@ -4950,7 +4958,7 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, STATE(126), 1, sym_line_comment, - ACTIONS(221), 2, + ACTIONS(322), 2, ts_builtin_sym_end, anon_sym_LF, [3616] = 5, @@ -4962,22 +4970,23 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, STATE(127), 1, sym_line_comment, - ACTIONS(316), 2, + ACTIONS(233), 2, ts_builtin_sym_end, anon_sym_LF, - [3633] = 5, - ACTIONS(3), 1, - anon_sym_POUND, + [3633] = 6, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, + ACTIONS(49), 1, + anon_sym_POUND, + ACTIONS(324), 1, + aux_sym_int_token2, STATE(128), 1, sym_line_comment, - ACTIONS(318), 2, - ts_builtin_sym_end, - anon_sym_LF, - [3650] = 5, + STATE(153), 1, + sym_int, + [3652] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4986,10 +4995,10 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, STATE(129), 1, sym_line_comment, - ACTIONS(320), 2, + ACTIONS(326), 2, ts_builtin_sym_end, anon_sym_LF, - [3667] = 5, + [3669] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -4998,65 +5007,71 @@ static const uint16_t ts_small_parse_table[] = { sym_block_comment, STATE(130), 1, sym_line_comment, - ACTIONS(322), 2, + ACTIONS(328), 2, ts_builtin_sym_end, anon_sym_LF, - [3684] = 5, - ACTIONS(3), 1, - anon_sym_POUND, + [3686] = 6, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, + ACTIONS(49), 1, + anon_sym_POUND, ACTIONS(324), 1, - anon_sym_rel, + aux_sym_int_token2, STATE(131), 1, sym_line_comment, - [3700] = 5, + STATE(135), 1, + sym_int, + [3705] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(326), 1, - anon_sym_RBRACK, STATE(132), 1, sym_line_comment, - [3716] = 5, + ACTIONS(330), 2, + ts_builtin_sym_end, + anon_sym_LF, + [3722] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(328), 1, - ts_builtin_sym_end, STATE(133), 1, sym_line_comment, - [3732] = 5, - ACTIONS(3), 1, - anon_sym_POUND, + ACTIONS(332), 2, + ts_builtin_sym_end, + anon_sym_LF, + [3739] = 6, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(330), 1, - anon_sym_COMMA, + ACTIONS(49), 1, + anon_sym_POUND, + ACTIONS(324), 1, + aux_sym_int_token2, + STATE(96), 1, + sym_int, STATE(134), 1, sym_line_comment, - [3748] = 5, + [3758] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(332), 1, - anon_sym_RPAREN, + ACTIONS(280), 1, + anon_sym_RBRACK, STATE(135), 1, sym_line_comment, - [3764] = 5, + [3774] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -5064,10 +5079,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(7), 1, sym_block_comment, ACTIONS(334), 1, - sym_float, + sym_word, STATE(136), 1, sym_line_comment, - [3780] = 5, + [3790] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -5078,7 +5093,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RPAREN, STATE(137), 1, sym_line_comment, - [3796] = 5, + [3806] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -5086,10 +5101,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(7), 1, sym_block_comment, ACTIONS(338), 1, - aux_sym_int_token1, + anon_sym_ptr, STATE(138), 1, sym_line_comment, - [3812] = 5, + [3822] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -5097,10 +5112,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(7), 1, sym_block_comment, ACTIONS(340), 1, - sym_word, + anon_sym_RPAREN, STATE(139), 1, sym_line_comment, - [3828] = 5, + [3838] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -5108,10 +5123,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(7), 1, sym_block_comment, ACTIONS(342), 1, - anon_sym_COMMA, + sym_word, STATE(140), 1, sym_line_comment, - [3844] = 5, + [3854] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -5119,10 +5134,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(7), 1, sym_block_comment, ACTIONS(344), 1, - anon_sym_RPAREN, + anon_sym_rel, STATE(141), 1, sym_line_comment, - [3860] = 5, + [3870] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -5130,10 +5145,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(7), 1, sym_block_comment, ACTIONS(346), 1, - anon_sym_RBRACK, + anon_sym_COMMA, STATE(142), 1, sym_line_comment, - [3876] = 5, + [3886] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -5141,10 +5156,10 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(7), 1, sym_block_comment, ACTIONS(348), 1, - anon_sym_ptr, + anon_sym_RPAREN, STATE(143), 1, sym_line_comment, - [3892] = 5, + [3902] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, @@ -5152,157 +5167,179 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(7), 1, sym_block_comment, ACTIONS(350), 1, - sym_word, + anon_sym_LBRACK, STATE(144), 1, sym_line_comment, - [3908] = 5, + [3918] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(23), 1, - anon_sym_COLON, + ACTIONS(352), 1, + sym_float, STATE(145), 1, sym_line_comment, - [3924] = 5, + [3934] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(304), 1, - anon_sym_RBRACK, + ACTIONS(354), 1, + anon_sym_COMMA, STATE(146), 1, sym_line_comment, - [3940] = 5, + [3950] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(352), 1, + ACTIONS(356), 1, anon_sym_COMMA, STATE(147), 1, sym_line_comment, - [3956] = 5, + [3966] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(354), 1, - anon_sym_RPAREN, + ACTIONS(358), 1, + aux_sym_int_token1, STATE(148), 1, sym_line_comment, - [3972] = 5, - ACTIONS(356), 1, + [3982] = 5, + ACTIONS(3), 1, anon_sym_POUND, - ACTIONS(358), 1, - aux_sym_line_comment_token1, - ACTIONS(360), 1, + ACTIONS(5), 1, aux_sym_line_comment_token2, - ACTIONS(362), 1, + ACTIONS(7), 1, sym_block_comment, + ACTIONS(360), 1, + anon_sym_RPAREN, STATE(149), 1, sym_line_comment, - [3988] = 5, + [3998] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(364), 1, - anon_sym_LBRACK, + ACTIONS(362), 1, + anon_sym_RBRACK, STATE(150), 1, sym_line_comment, - [4004] = 5, + [4014] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(366), 1, + ACTIONS(364), 1, anon_sym_COMMA, STATE(151), 1, sym_line_comment, - [4020] = 5, + [4030] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(368), 1, - anon_sym_LBRACK, + ACTIONS(366), 1, + anon_sym_RPAREN, STATE(152), 1, sym_line_comment, - [4036] = 5, + [4046] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(370), 1, - anon_sym_COMMA, + ACTIONS(368), 1, + anon_sym_RBRACK, STATE(153), 1, sym_line_comment, - [4052] = 5, - ACTIONS(3), 1, + [4062] = 5, + ACTIONS(370), 1, anon_sym_POUND, - ACTIONS(5), 1, + ACTIONS(372), 1, + aux_sym_line_comment_token1, + ACTIONS(374), 1, aux_sym_line_comment_token2, - ACTIONS(7), 1, + ACTIONS(376), 1, sym_block_comment, - ACTIONS(372), 1, - anon_sym_COMMA, STATE(154), 1, sym_line_comment, - [4068] = 5, + [4078] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(374), 1, + ACTIONS(378), 1, anon_sym_RPAREN, STATE(155), 1, sym_line_comment, - [4084] = 5, + [4094] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(376), 1, - anon_sym_RPAREN, + ACTIONS(23), 1, + anon_sym_COLON, STATE(156), 1, sym_line_comment, - [4100] = 5, + [4110] = 5, ACTIONS(3), 1, anon_sym_POUND, ACTIONS(5), 1, aux_sym_line_comment_token2, ACTIONS(7), 1, sym_block_comment, - ACTIONS(378), 1, - aux_sym_int_token1, - STATE(157), 1, - sym_line_comment, - [4116] = 1, ACTIONS(380), 1, ts_builtin_sym_end, - [4120] = 1, + STATE(157), 1, + sym_line_comment, + [4126] = 5, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, ACTIONS(382), 1, + aux_sym_int_token1, + STATE(158), 1, + sym_line_comment, + [4142] = 5, + ACTIONS(3), 1, + anon_sym_POUND, + ACTIONS(5), 1, + aux_sym_line_comment_token2, + ACTIONS(7), 1, + sym_block_comment, + ACTIONS(384), 1, + anon_sym_LBRACK, + STATE(159), 1, + sym_line_comment, + [4158] = 1, + ACTIONS(386), 1, + ts_builtin_sym_end, + [4162] = 1, + ACTIONS(388), 1, ts_builtin_sym_end, }; @@ -5312,19 +5349,19 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(4)] = 152, [SMALL_STATE(5)] = 221, [SMALL_STATE(6)] = 286, - [SMALL_STATE(7)] = 321, + [SMALL_STATE(7)] = 327, [SMALL_STATE(8)] = 362, [SMALL_STATE(9)] = 397, - [SMALL_STATE(10)] = 431, - [SMALL_STATE(11)] = 465, - [SMALL_STATE(12)] = 499, + [SMALL_STATE(10)] = 435, + [SMALL_STATE(11)] = 469, + [SMALL_STATE(12)] = 503, [SMALL_STATE(13)] = 537, [SMALL_STATE(14)] = 584, [SMALL_STATE(15)] = 617, - [SMALL_STATE(16)] = 660, - [SMALL_STATE(17)] = 699, - [SMALL_STATE(18)] = 736, - [SMALL_STATE(19)] = 771, + [SMALL_STATE(16)] = 650, + [SMALL_STATE(17)] = 687, + [SMALL_STATE(18)] = 726, + [SMALL_STATE(19)] = 761, [SMALL_STATE(20)] = 804, [SMALL_STATE(21)] = 852, [SMALL_STATE(22)] = 898, @@ -5335,325 +5372,330 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(27)] = 1120, [SMALL_STATE(28)] = 1161, [SMALL_STATE(29)] = 1202, - [SMALL_STATE(30)] = 1243, - [SMALL_STATE(31)] = 1284, - [SMALL_STATE(32)] = 1325, - [SMALL_STATE(33)] = 1366, + [SMALL_STATE(30)] = 1233, + [SMALL_STATE(31)] = 1274, + [SMALL_STATE(32)] = 1315, + [SMALL_STATE(33)] = 1356, [SMALL_STATE(34)] = 1397, [SMALL_STATE(35)] = 1438, [SMALL_STATE(36)] = 1479, - [SMALL_STATE(37)] = 1525, - [SMALL_STATE(38)] = 1571, - [SMALL_STATE(39)] = 1601, + [SMALL_STATE(37)] = 1509, + [SMALL_STATE(38)] = 1555, + [SMALL_STATE(39)] = 1585, [SMALL_STATE(40)] = 1631, [SMALL_STATE(41)] = 1661, [SMALL_STATE(42)] = 1704, [SMALL_STATE(43)] = 1732, [SMALL_STATE(44)] = 1759, - [SMALL_STATE(45)] = 1796, + [SMALL_STATE(45)] = 1794, [SMALL_STATE(46)] = 1831, - [SMALL_STATE(47)] = 1858, - [SMALL_STATE(48)] = 1891, - [SMALL_STATE(49)] = 1922, + [SMALL_STATE(47)] = 1864, + [SMALL_STATE(48)] = 1895, + [SMALL_STATE(49)] = 1924, [SMALL_STATE(50)] = 1951, [SMALL_STATE(51)] = 1983, [SMALL_STATE(52)] = 2015, [SMALL_STATE(53)] = 2042, - [SMALL_STATE(54)] = 2072, + [SMALL_STATE(54)] = 2066, [SMALL_STATE(55)] = 2096, [SMALL_STATE(56)] = 2126, [SMALL_STATE(57)] = 2152, - [SMALL_STATE(58)] = 2178, - [SMALL_STATE(59)] = 2204, - [SMALL_STATE(60)] = 2230, - [SMALL_STATE(61)] = 2252, - [SMALL_STATE(62)] = 2278, - [SMALL_STATE(63)] = 2300, - [SMALL_STATE(64)] = 2322, + [SMALL_STATE(58)] = 2174, + [SMALL_STATE(59)] = 2200, + [SMALL_STATE(60)] = 2222, + [SMALL_STATE(61)] = 2244, + [SMALL_STATE(62)] = 2266, + [SMALL_STATE(63)] = 2292, + [SMALL_STATE(64)] = 2318, [SMALL_STATE(65)] = 2344, [SMALL_STATE(66)] = 2370, [SMALL_STATE(67)] = 2396, - [SMALL_STATE(68)] = 2417, - [SMALL_STATE(69)] = 2440, + [SMALL_STATE(68)] = 2419, + [SMALL_STATE(69)] = 2444, [SMALL_STATE(70)] = 2465, - [SMALL_STATE(71)] = 2488, - [SMALL_STATE(72)] = 2509, - [SMALL_STATE(73)] = 2530, - [SMALL_STATE(74)] = 2553, - [SMALL_STATE(75)] = 2576, + [SMALL_STATE(71)] = 2486, + [SMALL_STATE(72)] = 2507, + [SMALL_STATE(73)] = 2532, + [SMALL_STATE(74)] = 2555, + [SMALL_STATE(75)] = 2578, [SMALL_STATE(76)] = 2599, - [SMALL_STATE(77)] = 2620, - [SMALL_STATE(78)] = 2641, - [SMALL_STATE(79)] = 2662, - [SMALL_STATE(80)] = 2687, - [SMALL_STATE(81)] = 2710, - [SMALL_STATE(82)] = 2733, - [SMALL_STATE(83)] = 2754, - [SMALL_STATE(84)] = 2777, - [SMALL_STATE(85)] = 2800, - [SMALL_STATE(86)] = 2825, - [SMALL_STATE(87)] = 2846, - [SMALL_STATE(88)] = 2869, - [SMALL_STATE(89)] = 2892, - [SMALL_STATE(90)] = 2915, - [SMALL_STATE(91)] = 2938, + [SMALL_STATE(77)] = 2624, + [SMALL_STATE(78)] = 2647, + [SMALL_STATE(79)] = 2670, + [SMALL_STATE(80)] = 2693, + [SMALL_STATE(81)] = 2714, + [SMALL_STATE(82)] = 2739, + [SMALL_STATE(83)] = 2762, + [SMALL_STATE(84)] = 2785, + [SMALL_STATE(85)] = 2806, + [SMALL_STATE(86)] = 2829, + [SMALL_STATE(87)] = 2850, + [SMALL_STATE(88)] = 2871, + [SMALL_STATE(89)] = 2894, + [SMALL_STATE(90)] = 2917, + [SMALL_STATE(91)] = 2940, [SMALL_STATE(92)] = 2963, [SMALL_STATE(93)] = 2986, [SMALL_STATE(94)] = 3009, [SMALL_STATE(95)] = 3032, [SMALL_STATE(96)] = 3055, [SMALL_STATE(97)] = 3073, - [SMALL_STATE(98)] = 3091, - [SMALL_STATE(99)] = 3109, - [SMALL_STATE(100)] = 3127, - [SMALL_STATE(101)] = 3145, - [SMALL_STATE(102)] = 3163, - [SMALL_STATE(103)] = 3181, - [SMALL_STATE(104)] = 3199, - [SMALL_STATE(105)] = 3217, - [SMALL_STATE(106)] = 3235, - [SMALL_STATE(107)] = 3253, - [SMALL_STATE(108)] = 3271, - [SMALL_STATE(109)] = 3289, - [SMALL_STATE(110)] = 3307, - [SMALL_STATE(111)] = 3325, - [SMALL_STATE(112)] = 3343, - [SMALL_STATE(113)] = 3361, - [SMALL_STATE(114)] = 3381, - [SMALL_STATE(115)] = 3399, - [SMALL_STATE(116)] = 3417, + [SMALL_STATE(98)] = 3093, + [SMALL_STATE(99)] = 3111, + [SMALL_STATE(100)] = 3129, + [SMALL_STATE(101)] = 3147, + [SMALL_STATE(102)] = 3165, + [SMALL_STATE(103)] = 3185, + [SMALL_STATE(104)] = 3203, + [SMALL_STATE(105)] = 3221, + [SMALL_STATE(106)] = 3239, + [SMALL_STATE(107)] = 3257, + [SMALL_STATE(108)] = 3275, + [SMALL_STATE(109)] = 3293, + [SMALL_STATE(110)] = 3311, + [SMALL_STATE(111)] = 3329, + [SMALL_STATE(112)] = 3347, + [SMALL_STATE(113)] = 3365, + [SMALL_STATE(114)] = 3383, + [SMALL_STATE(115)] = 3401, + [SMALL_STATE(116)] = 3419, [SMALL_STATE(117)] = 3437, [SMALL_STATE(118)] = 3455, [SMALL_STATE(119)] = 3473, [SMALL_STATE(120)] = 3491, - [SMALL_STATE(121)] = 3508, + [SMALL_STATE(121)] = 3509, [SMALL_STATE(122)] = 3527, [SMALL_STATE(123)] = 3546, - [SMALL_STATE(124)] = 3565, - [SMALL_STATE(125)] = 3582, + [SMALL_STATE(124)] = 3563, + [SMALL_STATE(125)] = 3580, [SMALL_STATE(126)] = 3599, [SMALL_STATE(127)] = 3616, [SMALL_STATE(128)] = 3633, - [SMALL_STATE(129)] = 3650, - [SMALL_STATE(130)] = 3667, - [SMALL_STATE(131)] = 3684, - [SMALL_STATE(132)] = 3700, - [SMALL_STATE(133)] = 3716, - [SMALL_STATE(134)] = 3732, - [SMALL_STATE(135)] = 3748, - [SMALL_STATE(136)] = 3764, - [SMALL_STATE(137)] = 3780, - [SMALL_STATE(138)] = 3796, - [SMALL_STATE(139)] = 3812, - [SMALL_STATE(140)] = 3828, - [SMALL_STATE(141)] = 3844, - [SMALL_STATE(142)] = 3860, - [SMALL_STATE(143)] = 3876, - [SMALL_STATE(144)] = 3892, - [SMALL_STATE(145)] = 3908, - [SMALL_STATE(146)] = 3924, - [SMALL_STATE(147)] = 3940, - [SMALL_STATE(148)] = 3956, - [SMALL_STATE(149)] = 3972, - [SMALL_STATE(150)] = 3988, - [SMALL_STATE(151)] = 4004, - [SMALL_STATE(152)] = 4020, - [SMALL_STATE(153)] = 4036, - [SMALL_STATE(154)] = 4052, - [SMALL_STATE(155)] = 4068, - [SMALL_STATE(156)] = 4084, - [SMALL_STATE(157)] = 4100, - [SMALL_STATE(158)] = 4116, - [SMALL_STATE(159)] = 4120, + [SMALL_STATE(129)] = 3652, + [SMALL_STATE(130)] = 3669, + [SMALL_STATE(131)] = 3686, + [SMALL_STATE(132)] = 3705, + [SMALL_STATE(133)] = 3722, + [SMALL_STATE(134)] = 3739, + [SMALL_STATE(135)] = 3758, + [SMALL_STATE(136)] = 3774, + [SMALL_STATE(137)] = 3790, + [SMALL_STATE(138)] = 3806, + [SMALL_STATE(139)] = 3822, + [SMALL_STATE(140)] = 3838, + [SMALL_STATE(141)] = 3854, + [SMALL_STATE(142)] = 3870, + [SMALL_STATE(143)] = 3886, + [SMALL_STATE(144)] = 3902, + [SMALL_STATE(145)] = 3918, + [SMALL_STATE(146)] = 3934, + [SMALL_STATE(147)] = 3950, + [SMALL_STATE(148)] = 3966, + [SMALL_STATE(149)] = 3982, + [SMALL_STATE(150)] = 3998, + [SMALL_STATE(151)] = 4014, + [SMALL_STATE(152)] = 4030, + [SMALL_STATE(153)] = 4046, + [SMALL_STATE(154)] = 4062, + [SMALL_STATE(155)] = 4078, + [SMALL_STATE(156)] = 4094, + [SMALL_STATE(157)] = 4110, + [SMALL_STATE(158)] = 4126, + [SMALL_STATE(159)] = 4142, + [SMALL_STATE(160)] = 4158, + [SMALL_STATE(161)] = 4162, }; 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(149), - [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(159), + [3] = {.entry = {.count = 1, .reusable = true}}, SHIFT(154), + [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(161), [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT_EXTRA(), [9] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_program, 0, 0, 0), - [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(144), - [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(139), + [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(140), + [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(136), [15] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2), [17] = {.entry = {.count = 1, .reusable = false}}, SHIFT(22), - [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(145), + [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(156), [21] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_instruction, 1, 0, 1), - [23] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), - [25] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), - [27] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), - [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(143), - [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), - [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(131), - [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(138), - [37] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6), - [39] = {.entry = {.count = 1, .reusable = false}}, SHIFT(99), - [41] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), - [43] = {.entry = {.count = 1, .reusable = false}}, SHIFT(10), - [45] = {.entry = {.count = 1, .reusable = false}}, SHIFT(11), + [23] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), + [25] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), + [27] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), + [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(138), + [31] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91), + [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(141), + [35] = {.entry = {.count = 1, .reusable = true}}, SHIFT(148), + [37] = {.entry = {.count = 1, .reusable = false}}, SHIFT(8), + [39] = {.entry = {.count = 1, .reusable = false}}, SHIFT(121), + [41] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), + [43] = {.entry = {.count = 1, .reusable = false}}, SHIFT(11), + [45] = {.entry = {.count = 1, .reusable = false}}, SHIFT(10), [47] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_instruction, 3, 0, 1), - [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(157), - [51] = {.entry = {.count = 1, .reusable = false}}, SHIFT(38), + [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(158), + [51] = {.entry = {.count = 1, .reusable = false}}, SHIFT(40), [53] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), - [55] = {.entry = {.count = 1, .reusable = false}}, SHIFT(33), - [57] = {.entry = {.count = 1, .reusable = false}}, SHIFT(39), + [55] = {.entry = {.count = 1, .reusable = false}}, SHIFT(29), + [57] = {.entry = {.count = 1, .reusable = false}}, SHIFT(36), [59] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_instruction, 4, 0, 1), - [61] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_int, 1, 0, 0), - [63] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_int, 1, 0, 0), - [65] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__expr, 1, 0, 0), REDUCE(sym__tc_expr, 1, 0, 0), - [68] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr, 1, 0, 0), - [70] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), - [72] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__tc_expr, 1, 0, 0), - [74] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__tc_expr, 1, 0, 0), - [76] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_int, 2, 0, 0), - [78] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_int, 2, 0, 0), - [80] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string, 1, 0, 0), - [82] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string, 1, 0, 0), + [61] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym__expr, 1, 0, 0), REDUCE(sym__tc_expr, 1, 0, 0), + [64] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expr, 1, 0, 0), + [66] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66), + [68] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__tc_expr, 1, 0, 0), + [70] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__tc_expr, 1, 0, 0), + [72] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_int, 2, 0, 0), + [74] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_int, 2, 0, 0), + [76] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_int, 1, 0, 0), + [78] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_int, 1, 0, 0), + [80] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ident, 1, 0, 0), + [82] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_ident, 1, 0, 0), [84] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_reg, 1, 0, 0), [86] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_reg, 1, 0, 0), - [88] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ident, 1, 0, 0), - [90] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_ident, 1, 0, 0), + [88] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string, 1, 0, 0), + [90] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string, 1, 0, 0), [92] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_instruction_repeat2, 1, 0, 0), - [94] = {.entry = {.count = 1, .reusable = false}}, SHIFT(25), - [96] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), - [98] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), - [100] = {.entry = {.count = 1, .reusable = false}}, SHIFT(26), - [102] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), - [104] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), - [106] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), + [94] = {.entry = {.count = 1, .reusable = false}}, SHIFT(24), + [96] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), + [98] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), + [100] = {.entry = {.count = 1, .reusable = false}}, SHIFT(25), + [102] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), + [104] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), + [106] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), [108] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_instruction_repeat2, 1, 0, 0), [110] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tc_infix, 3, 0, 5), [112] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tc_infix, 3, 0, 5), [114] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_instruction, 2, 0, 1), [116] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_instruction_repeat2, 2, 0, 0), - [118] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_instruction_repeat2, 2, 0, 0), SHIFT_REPEAT(138), - [121] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_instruction_repeat2, 2, 0, 0), SHIFT_REPEAT(6), - [124] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_instruction_repeat2, 2, 0, 0), SHIFT_REPEAT(9), - [127] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_instruction_repeat2, 2, 0, 0), SHIFT_REPEAT(10), - [130] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_instruction_repeat2, 2, 0, 0), SHIFT_REPEAT(11), + [118] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_instruction_repeat2, 2, 0, 0), SHIFT_REPEAT(148), + [121] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_instruction_repeat2, 2, 0, 0), SHIFT_REPEAT(8), + [124] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_instruction_repeat2, 2, 0, 0), SHIFT_REPEAT(12), + [127] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_instruction_repeat2, 2, 0, 0), SHIFT_REPEAT(11), + [130] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_instruction_repeat2, 2, 0, 0), SHIFT_REPEAT(10), [133] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_meta, 1, 0, 1), - [135] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), + [135] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65), [137] = {.entry = {.count = 1, .reusable = false}}, SHIFT(88), - [139] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_program, 3, 0, 0), - [141] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), - [143] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_program, 2, 0, 0), - [145] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_const, 3, 0, 4), - [147] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), - [149] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), - [151] = {.entry = {.count = 1, .reusable = false}}, SHIFT(34), - [153] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), - [155] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), - [157] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), + [139] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_program, 2, 0, 0), + [141] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), + [143] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_program, 3, 0, 0), + [145] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), + [147] = {.entry = {.count = 1, .reusable = false}}, SHIFT(32), + [149] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), + [151] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), + [153] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), + [155] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_const, 3, 0, 4), + [157] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), [159] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_program_repeat1, 2, 0, 0), - [161] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_program_repeat1, 2, 0, 0), SHIFT_REPEAT(54), + [161] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_program_repeat1, 2, 0, 0), SHIFT_REPEAT(53), [164] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 2, 0, 0), - [166] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), - [168] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_program_repeat1, 1, 0, 0), - [170] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 1, 0, 0), - [172] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 2, 0, 0), - [174] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), - [176] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), - [178] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), - [180] = {.entry = {.count = 1, .reusable = true}}, SHIFT(114), - [182] = {.entry = {.count = 1, .reusable = true}}, SHIFT(106), - [184] = {.entry = {.count = 1, .reusable = true}}, SHIFT(119), + [166] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_program_repeat1, 1, 0, 0), + [168] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_program_repeat1, 1, 0, 0), + [170] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), + [172] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100), + [174] = {.entry = {.count = 1, .reusable = true}}, SHIFT(106), + [176] = {.entry = {.count = 1, .reusable = true}}, SHIFT(155), + [178] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107), + [180] = {.entry = {.count = 1, .reusable = true}}, SHIFT(111), + [182] = {.entry = {.count = 1, .reusable = true}}, SHIFT(149), + [184] = {.entry = {.count = 1, .reusable = true}}, SHIFT(113), [186] = {.entry = {.count = 1, .reusable = true}}, SHIFT(137), - [188] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), - [190] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104), - [192] = {.entry = {.count = 1, .reusable = true}}, SHIFT(156), - [194] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), - [196] = {.entry = {.count = 1, .reusable = true}}, SHIFT(135), - [198] = {.entry = {.count = 1, .reusable = true}}, SHIFT(111), - [200] = {.entry = {.count = 1, .reusable = true}}, SHIFT(141), - [202] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 2, 0, 3), - [204] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), - [206] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), - [208] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_instruction_repeat1, 2, 0, 0), - [210] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_instruction_repeat1, 2, 0, 0), SHIFT_REPEAT(5), - [213] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), - [215] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), - [217] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 3, 0, 0), - [219] = {.entry = {.count = 1, .reusable = true}}, SHIFT(117), - [221] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_meta, 2, 0, 1), - [223] = {.entry = {.count = 1, .reusable = true}}, SHIFT(123), - [225] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_meta_repeat2, 2, 0, 0), - [227] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_meta_repeat2, 2, 0, 0), SHIFT_REPEAT(136), - [230] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_meta_repeat1, 2, 0, 0), - [232] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_meta_repeat1, 2, 0, 0), SHIFT_REPEAT(123), - [235] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_meta_repeat3, 2, 0, 0), - [237] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_meta_repeat3, 2, 0, 0), SHIFT_REPEAT(113), - [240] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_meta, 3, 0, 1), - [242] = {.entry = {.count = 1, .reusable = true}}, SHIFT(136), - [244] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2, 0, 0), SHIFT_REPEAT(68), - [247] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2, 0, 0), - [249] = {.entry = {.count = 1, .reusable = true}}, SHIFT(113), - [251] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_program, 1, 0, 0), - [253] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 5, 0, 0), - [255] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), - [257] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), - [259] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_program_repeat2, 2, 0, 0), - [261] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_program_repeat2, 2, 0, 0), SHIFT_REPEAT(54), - [264] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), - [266] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), - [268] = {.entry = {.count = 1, .reusable = true}}, SHIFT(121), - [270] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), - [272] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), - [274] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), - [276] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 6, 0, 9), - [278] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 5, 0, 0), - [280] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 3, 0, 0), - [282] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 6, 0, 7), - [284] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 6, 0, 8), - [286] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 6, 0, 0), - [288] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 4, 0, 0), - [290] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 7, 0, 10), - [292] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 7, 0, 0), - [294] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 7, 0, 11), - [296] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 7, 0, 12), - [298] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 8, 0, 13), - [300] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 2, 0, 0), - [302] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), - [304] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100), - [306] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 4, 0, 0), - [308] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 5, 0, 6), - [310] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 3, 0, 3), - [312] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), - [314] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 5, 0, 3), - [316] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 3, 0, 0), - [318] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__item, 1, 0, 0), - [320] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 5, 0, 0), - [322] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 2, 0, 2), - [324] = {.entry = {.count = 1, .reusable = true}}, SHIFT(152), - [326] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109), - [328] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), - [330] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), - [332] = {.entry = {.count = 1, .reusable = true}}, SHIFT(110), - [334] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102), - [336] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), - [338] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), - [340] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), - [342] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), - [344] = {.entry = {.count = 1, .reusable = true}}, SHIFT(112), - [346] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86), - [348] = {.entry = {.count = 1, .reusable = true}}, SHIFT(150), - [350] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130), - [352] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), - [354] = {.entry = {.count = 1, .reusable = true}}, SHIFT(125), - [356] = {.entry = {.count = 1, .reusable = false}}, SHIFT(149), - [358] = {.entry = {.count = 1, .reusable = false}}, SHIFT(158), - [360] = {.entry = {.count = 1, .reusable = false}}, SHIFT(159), - [362] = {.entry = {.count = 1, .reusable = false}}, SHIFT_EXTRA(), - [364] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), - [366] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), - [368] = {.entry = {.count = 1, .reusable = true}}, SHIFT(122), - [370] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83), - [372] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), - [374] = {.entry = {.count = 1, .reusable = true}}, SHIFT(129), - [376] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108), - [378] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), - [380] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_line_comment, 2, 0, 0), - [382] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_line_comment, 1, 0, 0), + [188] = {.entry = {.count = 1, .reusable = true}}, SHIFT(117), + [190] = {.entry = {.count = 1, .reusable = true}}, SHIFT(143), + [192] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 2, 0, 3), + [194] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), + [196] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), + [198] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83), + [200] = {.entry = {.count = 1, .reusable = true}}, SHIFT(119), + [202] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 2, 0, 0), + [204] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), + [206] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), + [208] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_meta, 2, 0, 1), + [210] = {.entry = {.count = 1, .reusable = true}}, SHIFT(134), + [212] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_meta_repeat2, 2, 0, 0), + [214] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_meta_repeat2, 2, 0, 0), SHIFT_REPEAT(145), + [217] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_meta_repeat1, 2, 0, 0), + [219] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_meta_repeat1, 2, 0, 0), SHIFT_REPEAT(134), + [222] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_meta_repeat3, 2, 0, 0), + [224] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_meta_repeat3, 2, 0, 0), SHIFT_REPEAT(97), + [227] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), + [229] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), + [231] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108), + [233] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_program_repeat2, 2, 0, 0), + [235] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_program_repeat2, 2, 0, 0), SHIFT_REPEAT(53), + [238] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2, 0, 0), SHIFT_REPEAT(78), + [241] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2, 0, 0), + [243] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_program, 1, 0, 0), + [245] = {.entry = {.count = 1, .reusable = true}}, SHIFT(128), + [247] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), + [249] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84), + [251] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 5, 0, 0), + [253] = {.entry = {.count = 1, .reusable = true}}, SHIFT(112), + [255] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), + [257] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 3, 0, 0), + [259] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), + [261] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), + [263] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_instruction_repeat1, 2, 0, 0), + [265] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_instruction_repeat1, 2, 0, 0), SHIFT_REPEAT(5), + [268] = {.entry = {.count = 1, .reusable = true}}, SHIFT(145), + [270] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_meta, 3, 0, 1), + [272] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97), + [274] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), + [276] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 4, 0, 0), + [278] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), + [280] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109), + [282] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 4, 0, 0), + [284] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 4, 0, 6), + [286] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 5, 0, 7), + [288] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 5, 0, 0), + [290] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 3, 0, 0), + [292] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 6, 0, 8), + [294] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 6, 0, 9), + [296] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 6, 0, 0), + [298] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 6, 0, 10), + [300] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 7, 0, 11), + [302] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 7, 0, 0), + [304] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 7, 0, 12), + [306] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 7, 0, 13), + [308] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_ptr, 8, 0, 14), + [310] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 2, 0, 0), + [312] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), + [314] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), + [316] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 3, 0, 3), + [318] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), + [320] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104), + [322] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 3, 0, 0), + [324] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), + [326] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 5, 0, 3), + [328] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__item, 1, 0, 0), + [330] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 5, 0, 0), + [332] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_label, 2, 0, 2), + [334] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), + [336] = {.entry = {.count = 1, .reusable = true}}, SHIFT(116), + [338] = {.entry = {.count = 1, .reusable = true}}, SHIFT(159), + [340] = {.entry = {.count = 1, .reusable = true}}, SHIFT(132), + [342] = {.entry = {.count = 1, .reusable = true}}, SHIFT(133), + [344] = {.entry = {.count = 1, .reusable = true}}, SHIFT(144), + [346] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), + [348] = {.entry = {.count = 1, .reusable = true}}, SHIFT(118), + [350] = {.entry = {.count = 1, .reusable = true}}, SHIFT(131), + [352] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), + [354] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), + [356] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), + [358] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), + [360] = {.entry = {.count = 1, .reusable = true}}, SHIFT(114), + [362] = {.entry = {.count = 1, .reusable = true}}, SHIFT(115), + [364] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), + [366] = {.entry = {.count = 1, .reusable = true}}, SHIFT(129), + [368] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), + [370] = {.entry = {.count = 1, .reusable = false}}, SHIFT(154), + [372] = {.entry = {.count = 1, .reusable = false}}, SHIFT(160), + [374] = {.entry = {.count = 1, .reusable = false}}, SHIFT(161), + [376] = {.entry = {.count = 1, .reusable = false}}, SHIFT_EXTRA(), + [378] = {.entry = {.count = 1, .reusable = true}}, SHIFT(110), + [380] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [382] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), + [384] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), + [386] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_line_comment, 2, 0, 0), + [388] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_line_comment, 1, 0, 0), }; #ifdef __cplusplus From 5851ba1a7fffa9438d629b265feb653b86b4529a Mon Sep 17 00:00:00 2001 From: Neptunium93 <62119053+Neptunium931@users.noreply.github.com> Date: Thu, 9 Jul 2026 10:24:34 +0200 Subject: [PATCH 21/31] Remove Ko-fi funding link --- .github/FUNDING.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 56887989..8b137891 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1 +1 @@ -ko_fi: rubixdev + From 141e345dacf7d380c1a954b0267e0ba7367b53b7 Mon Sep 17 00:00:00 2001 From: Neptunium93 <62119053+Neptunium931@users.noreply.github.com> Date: Thu, 9 Jul 2026 10:36:15 +0200 Subject: [PATCH 22/31] Add GitHub funding information --- .github/FUNDING.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 8b137891..e22f338d 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1 +1 @@ - +github: Neptunium931 From 6dd33a2051714c44675c769c8adb2e59977cb554 Mon Sep 17 00:00:00 2001 From: Neptunium93 <62119053+Neptunium931@users.noreply.github.com> Date: Thu, 9 Jul 2026 10:49:38 +0200 Subject: [PATCH 23/31] Potential fix for code scanning alert no. 1: Workflow does not contain permissions (#2) --- .github/workflows/ts_tests.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/ts_tests.yml b/.github/workflows/ts_tests.yml index fec68739..e17920bf 100644 --- a/.github/workflows/ts_tests.yml +++ b/.github/workflows/ts_tests.yml @@ -5,6 +5,9 @@ on: pull_request: branches: [ main ] +permissions: + contents: read + jobs: test: name: Tree-sitter grammar tests From a3e7466d658e10791835592d04f2e31f09b13bb4 Mon Sep 17 00:00:00 2001 From: Neptunium93 <62119053+Neptunium931@users.noreply.github.com> Date: Thu, 9 Jul 2026 10:50:07 +0200 Subject: [PATCH 24/31] Potential fix for code scanning alert no. 2: Workflow does not contain permissions (#1) --- .github/workflows/typos.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/typos.yml b/.github/workflows/typos.yml index 8b9af1d4..d3678096 100644 --- a/.github/workflows/typos.yml +++ b/.github/workflows/typos.yml @@ -4,6 +4,8 @@ on: branches: [ main ] pull_request: branches: [ main ] +permissions: + contents: read jobs: run: name: Spell Check with Typos From be42bc3b1b5484f917cb966d92204f6cac1d030e Mon Sep 17 00:00:00 2001 From: Neptunium93 <62119053+Neptunium931@users.noreply.github.com> Date: Thu, 9 Jul 2026 11:31:40 +0200 Subject: [PATCH 25/31] feat: Add fork section to README (#3) --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index b7011f4f..93afc029 100644 --- a/README.md +++ b/README.md @@ -3,6 +3,11 @@ Generic assembly grammar for [tree-sitter](https://github.com/tree-sitter/tree-sitter) +# Fork + +This fork is a fork of the original [tree-sitter-asm](https://github.com/RubixDev/tree-sitter-asm) +grammar originally developed by [RubixDev](https://github.com/RubixDev). + ## Usage in Neovim ### Parser Installation From 304e1eb1751fe652151d26cc1acce283b3143497 Mon Sep 17 00:00:00 2001 From: Michel Lind Date: Mon, 29 Jun 2026 21:30:12 +0100 Subject: [PATCH 26/31] Include LICENSE file when packaging The MIT license text is required to be redistributed; discovered when packaging this for Fedora ``` $ cargo package --list --allow-dirty | grep LICENSE LICENSE ``` Signed-off-by: Michel Lind --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index 6f70460e..03583c6c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -12,7 +12,7 @@ readme = "README.md" autoexamples = false build = "bindings/rust/build.rs" -include = ["bindings/rust/*", "grammar.js", "queries/*", "src/*", "tree-sitter.json"] +include = ["LICENSE", "bindings/rust/*", "grammar.js", "queries/*", "src/*", "tree-sitter.json"] [features] wasm = ["dep:tree-sitter-wasm-build-tool"] From 8e3ddefc6778a5cfe6685cb3382a9b4cef19b16e Mon Sep 17 00:00:00 2001 From: Neptumiun93 Date: Thu, 9 Jul 2026 17:54:57 +0200 Subject: [PATCH 27/31] feat: update version and change maintainer --- CMakeLists.txt | 4 ++-- Cargo.toml | 7 +++++-- LICENSE | 1 + Makefile | 4 ++-- bindings/go/binding_test.go | 2 +- go.mod | 2 +- package.json | 10 ++++++++-- pyproject.toml | 9 ++++++--- src/parser.c | 2 +- tree-sitter.json | 4 ++-- 10 files changed, 29 insertions(+), 16 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 52328b3e..3b5ff802 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,9 +1,9 @@ cmake_minimum_required(VERSION 3.13) project(tree-sitter-asm - VERSION "0.1.0" + VERSION "0.24.0" DESCRIPTION "assembly grammar for tree-sitter" - HOMEPAGE_URL "https://github.com/RubixDev/tree-sitter-asm" + HOMEPAGE_URL "https://github.com/Neptunium931/tree-sitter-asm" LANGUAGES C) option(BUILD_SHARED_LIBS "Build using shared libraries" ON) diff --git a/Cargo.toml b/Cargo.toml index 03583c6c..5732abbc 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,11 +1,14 @@ [package] name = "tree-sitter-asm" description = "assembly grammar for the tree-sitter parsing library" -authors = ["RubixDev"] +authors = [ + "RubixDev", + "Tymothé BILLEREY " +] version = "0.24.0" keywords = ["incremental", "parsing", "tree-sitter", "asm"] categories = ["parsing", "text-editors"] -repository = "https://github.com/RubixDev/tree-sitter-asm" +repository = "https://github.com/Neptunium931/tree-sitter-asm" edition = "2021" license = "MIT" readme = "README.md" diff --git a/LICENSE b/LICENSE index af20f4cc..e172a11a 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,5 @@ Copyright (c) 2023 RubixDev +Copyright (c) 2026, Tymothé BILLEREY Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/Makefile b/Makefile index 9bea71c0..a542bb02 100644 --- a/Makefile +++ b/Makefile @@ -3,8 +3,8 @@ $(error Windows is not supported) endif LANGUAGE_NAME := tree-sitter-asm -HOMEPAGE_URL := https://github.com/RubixDev/tree-sitter-asm -VERSION := 0.1.0 +HOMEPAGE_URL := https://github.com/Neptunium931/tree-sitter-asm +VERSION := 0.24.0 # repository SRC_DIR := src diff --git a/bindings/go/binding_test.go b/bindings/go/binding_test.go index 13914a47..497f9032 100644 --- a/bindings/go/binding_test.go +++ b/bindings/go/binding_test.go @@ -4,7 +4,7 @@ import ( "testing" tree_sitter "github.com/tree-sitter/go-tree-sitter" - tree_sitter_asm "github.com/RubixDev/tree-sitter-asm/bindings/go" + tree_sitter_asm "github.com/Neptunium931/tree-sitter-asm/bindings/go" ) func TestCanLoadGrammar(t *testing.T) { diff --git a/go.mod b/go.mod index eecba84f..c8215b83 100644 --- a/go.mod +++ b/go.mod @@ -1,4 +1,4 @@ -module github.com/RubixDev/tree-sitter-asm +module github.com/Neptunium931/tree-sitter-asm go 1.22 diff --git a/package.json b/package.json index 07a92253..ccb70ca8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "tree-sitter-asm", - "version": "0.1.0", + "version": "0.24.0", "description": "assembly grammar for tree-sitter", "main": "bindings/node", "types": "bindings/node", @@ -12,7 +12,7 @@ }, "repository": { "type": "git", - "url": "https://github.com/RubixDev/tree-sitter-asm" + "url": "https://github.com/Neptunium931/tree-sitter-asm" }, "keywords": [ "parser", @@ -28,6 +28,12 @@ ], "author": "RubixDev", "license": "MIT", + "maintainers": [ + { + "name": "Tymothé BILLEREY", + "email": "tymothe_billerey@fastmail.fr" + } + ], "dependencies": { "node-addon-api": "^7.1.0", "node-gyp-build": "^4.8.0" diff --git a/pyproject.toml b/pyproject.toml index b3e01492..352f4054 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta" [project] name = "tree-sitter-asm" description = "assembly grammar for tree-sitter" -version = "0.1.0" +version = "0.24.0" keywords = ["incremental", "parsing", "tree-sitter", "asm"] classifiers = [ "Intended Audience :: Developers", @@ -13,13 +13,16 @@ classifiers = [ "Topic :: Text Processing :: Linguistic", "Typing :: Typed", ] -authors = [{ name = "RubixDev" }] +authors = [ + { name = "RubixDev" }, + { name = "Tymothé BILLEREY", email = "tymothe_billerey@fastmail.fr" }, +] requires-python = ">=3.9" license.text = "MIT" readme = "README.md" [project.urls] -Homepage = "https://github.com/RubixDev/tree-sitter-asm" +Homepage = "https://github.com/Neptunium931/tree-sitter-asm" [project.optional-dependencies] core = ["tree-sitter~=0.22"] diff --git a/src/parser.c b/src/parser.c index 8604ffcc..acbb2d06 100644 --- a/src/parser.c +++ b/src/parser.c @@ -7559,7 +7559,7 @@ TS_PUBLIC const TSLanguage *tree_sitter_asm(void) { .max_reserved_word_set_size = 0, .metadata = { .major_version = 0, - .minor_version = 1, + .minor_version = 24, .patch_version = 0, }, }; diff --git a/tree-sitter.json b/tree-sitter.json index a6fc102b..cf45a0d8 100644 --- a/tree-sitter.json +++ b/tree-sitter.json @@ -15,7 +15,7 @@ } ], "metadata": { - "version": "0.1.0", + "version": "0.24.0", "license": "MIT", "description": "assembly grammar for tree-sitter", "authors": [ @@ -24,7 +24,7 @@ } ], "links": { - "repository": "https://github.com/RubixDev/tree-sitter-asm" + "repository": "https://github.com/Neptunium931/tree-sitter-asm" } }, "bindings": { From 212a6aba104d3a1e9e7b5fd49b7e3d358a43e658 Mon Sep 17 00:00:00 2001 From: Neptumiun93 Date: Thu, 9 Jul 2026 17:57:34 +0200 Subject: [PATCH 28/31] feat: add java and zig bindings --- bindings/c/tree_sitter/tree-sitter-asm.h | 16 ++ .../jtreesitter/asm/TreeSitterAsm.java | 65 ++++++++ bindings/java/test/TreeSitterAsmTest.java | 12 ++ bindings/zig/root.zig | 5 + bindings/zig/test.zig | 17 ++ build.zig | 93 +++++++++++ build.zig.zon | 21 +++ pom.xml | 152 ++++++++++++++++++ tree-sitter.json | 4 +- 9 files changed, 384 insertions(+), 1 deletion(-) create mode 100644 bindings/c/tree_sitter/tree-sitter-asm.h create mode 100644 bindings/java/main/io/github/treesitter/jtreesitter/asm/TreeSitterAsm.java create mode 100644 bindings/java/test/TreeSitterAsmTest.java create mode 100644 bindings/zig/root.zig create mode 100644 bindings/zig/test.zig create mode 100644 build.zig create mode 100644 build.zig.zon create mode 100644 pom.xml diff --git a/bindings/c/tree_sitter/tree-sitter-asm.h b/bindings/c/tree_sitter/tree-sitter-asm.h new file mode 100644 index 00000000..9d4f1819 --- /dev/null +++ b/bindings/c/tree_sitter/tree-sitter-asm.h @@ -0,0 +1,16 @@ +#ifndef TREE_SITTER_ASM_H_ +#define TREE_SITTER_ASM_H_ + +typedef struct TSLanguage TSLanguage; + +#ifdef __cplusplus +extern "C" { +#endif + +const TSLanguage *tree_sitter_asm(void); + +#ifdef __cplusplus +} +#endif + +#endif // TREE_SITTER_ASM_H_ diff --git a/bindings/java/main/io/github/treesitter/jtreesitter/asm/TreeSitterAsm.java b/bindings/java/main/io/github/treesitter/jtreesitter/asm/TreeSitterAsm.java new file mode 100644 index 00000000..1f9f06ee --- /dev/null +++ b/bindings/java/main/io/github/treesitter/jtreesitter/asm/TreeSitterAsm.java @@ -0,0 +1,65 @@ +package io.github.treesitter.jtreesitter.asm; + +import java.lang.foreign.*; + +public final class TreeSitterAsm { + private static final ValueLayout VOID_PTR = + ValueLayout.ADDRESS.withTargetLayout(MemoryLayout.sequenceLayout(Long.MAX_VALUE, ValueLayout.JAVA_BYTE)); + private static final FunctionDescriptor FUNC_DESC = FunctionDescriptor.of(VOID_PTR); + private static final Linker LINKER = Linker.nativeLinker(); + private static final TreeSitterAsm INSTANCE = new TreeSitterAsm(); + + private final Arena arena = Arena.ofAuto(); + private volatile SymbolLookup lookup = null; + + private TreeSitterAsm() {} + + /** + * Get the tree-sitter language for this grammar. + */ + public static MemorySegment language() { + if (INSTANCE.lookup == null) + INSTANCE.lookup = INSTANCE.findLibrary(); + return language(INSTANCE.lookup); + } + + /** + * Get the tree-sitter language for this grammar. + * + * The {@linkplain Arena} used in the {@code lookup} + * must not be closed while the language is being used. + */ + public static MemorySegment language(SymbolLookup lookup) { + return call(lookup, "tree_sitter_asm"); + } + + private SymbolLookup findLibrary() { + try { + var library = System.mapLibraryName("tree-sitter-asm"); + return SymbolLookup.libraryLookup(library, arena); + } catch (IllegalArgumentException ex1) { + try { + System.loadLibrary("tree-sitter-asm"); + return SymbolLookup.loaderLookup(); + } catch (UnsatisfiedLinkError ex2) { + ex1.addSuppressed(ex2); + throw ex1; + } + } + } + + private static UnsatisfiedLinkError unresolved(String name) { + return new UnsatisfiedLinkError("Unresolved symbol: %s".formatted(name)); + } + + @SuppressWarnings("SameParameterValue") + private static MemorySegment call(SymbolLookup lookup, String name) throws UnsatisfiedLinkError { + var address = lookup.find(name).orElseThrow(() -> unresolved(name)); + try { + var function = LINKER.downcallHandle(address, FUNC_DESC); + return (MemorySegment) function.invokeExact(); + } catch (Throwable e) { + throw new RuntimeException("Call to %s failed".formatted(name), e); + } + } +} diff --git a/bindings/java/test/TreeSitterAsmTest.java b/bindings/java/test/TreeSitterAsmTest.java new file mode 100644 index 00000000..4d1807b7 --- /dev/null +++ b/bindings/java/test/TreeSitterAsmTest.java @@ -0,0 +1,12 @@ +import io.github.treesitter.jtreesitter.Language; +import io.github.treesitter.jtreesitter.asm.TreeSitterAsm; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; + +public class TreeSitterAsmTest { + @Test + public void testCanLoadLanguage() { + assertDoesNotThrow(() -> new Language(TreeSitterAsm.language())); + } +} diff --git a/bindings/zig/root.zig b/bindings/zig/root.zig new file mode 100644 index 00000000..5ff101bf --- /dev/null +++ b/bindings/zig/root.zig @@ -0,0 +1,5 @@ +extern fn tree_sitter_asm() callconv(.c) *const anyopaque; + +pub fn language() *const anyopaque { + return tree_sitter_asm(); +} diff --git a/bindings/zig/test.zig b/bindings/zig/test.zig new file mode 100644 index 00000000..3f89e73f --- /dev/null +++ b/bindings/zig/test.zig @@ -0,0 +1,17 @@ +const testing = @import("std").testing; + +const ts = @import("tree-sitter"); +const root = @import("tree-sitter-asm"); +const Language = ts.Language; +const Parser = ts.Parser; + +test "can load grammar" { + const parser = Parser.create(); + defer parser.destroy(); + + const lang: *const ts.Language = Language.fromRaw(root.language()); + defer lang.destroy(); + + try testing.expectEqual(void{}, parser.setLanguage(lang)); + try testing.expectEqual(lang, parser.getLanguage()); +} diff --git a/build.zig b/build.zig new file mode 100644 index 00000000..361c7dd8 --- /dev/null +++ b/build.zig @@ -0,0 +1,93 @@ +const std = @import("std"); + +pub fn build(b: *std.Build) !void { + const target = b.standardTargetOptions(.{}); + const optimize = b.standardOptimizeOption(.{}); + + const shared = b.option(bool, "build-shared", "Build a shared library") orelse true; + const reuse_alloc = b.option(bool, "reuse-allocator", "Reuse the library allocator") orelse false; + + const library_name = "tree-sitter-asm"; + + const lib: *std.Build.Step.Compile = b.addLibrary(.{ + .name = library_name, + .linkage = if (shared) .dynamic else .static, + .root_module = b.createModule(.{ + .target = target, + .optimize = optimize, + .link_libc = true, + .pic = if (shared) true else null, + }), + }); + + lib.addCSourceFile(.{ + .file = b.path("src/parser.c"), + .flags = &.{"-std=c11"}, + }); + if (fileExists(b, "src/scanner.c")) { + lib.addCSourceFile(.{ + .file = b.path("src/scanner.c"), + .flags = &.{"-std=c11"}, + }); + } + + if (reuse_alloc) { + lib.root_module.addCMacro("TREE_SITTER_REUSE_ALLOCATOR", ""); + } + if (optimize == .Debug) { + lib.root_module.addCMacro("TREE_SITTER_DEBUG", ""); + } + + lib.addIncludePath(b.path("src")); + + b.installArtifact(lib); + b.installFile("src/node-types.json", "node-types.json"); + + if (fileExists(b, "queries")) { + b.installDirectory(.{ + .source_dir = b.path("queries"), + .install_dir = .prefix, + .install_subdir = "queries", + .include_extensions = &.{"scm"}, + }); + } + + const module = b.addModule(library_name, .{ + .root_source_file = b.path("bindings/zig/root.zig"), + .target = target, + .optimize = optimize, + }); + module.linkLibrary(lib); + + const tests = b.addTest(.{ + .root_module = b.createModule(.{ + .root_source_file = b.path("bindings/zig/test.zig"), + .target = target, + .optimize = optimize, + }), + }); + tests.root_module.addImport(library_name, module); + + // HACK: fetch tree-sitter dependency only when testing this module + if (b.pkg_hash.len == 0) { + var args = try std.process.argsWithAllocator(b.allocator); + defer args.deinit(); + while (args.next()) |a| { + if (std.mem.eql(u8, a, "test")) { + const ts_dep = b.lazyDependency("tree_sitter", .{}) orelse continue; + tests.root_module.addImport("tree-sitter", ts_dep.module("tree-sitter")); + break; + } + } + } + + const run_tests = b.addRunArtifact(tests); + const test_step = b.step("test", "Run unit tests"); + test_step.dependOn(&run_tests.step); +} + +inline fn fileExists(b: *std.Build, filename: []const u8) bool { + const dir = b.build_root.handle; + dir.access(filename, .{}) catch return false; + return true; +} diff --git a/build.zig.zon b/build.zig.zon new file mode 100644 index 00000000..8dbe6826 --- /dev/null +++ b/build.zig.zon @@ -0,0 +1,21 @@ +.{ + .name = .tree_sitter_asm, + .fingerprint = 0xf35b56342547dca7, + .version = "0.24.0", + .dependencies = .{ + .tree_sitter = .{ + .url = "git+https://github.com/tree-sitter/zig-tree-sitter#b4b72c903e69998fc88e27e154a5e3cc9166551b", + .hash = "tree_sitter-0.25.0-8heIf51vAQConvVIgvm-9mVIbqh7yabZYqPXfOpS3YoG", + .lazy = true, + }, + }, + .paths = .{ + "build.zig", + "build.zig.zon", + "bindings/zig", + "src", + "queries", + "LICENSE", + "README.md", + }, +} diff --git a/pom.xml b/pom.xml new file mode 100644 index 00000000..322e9ced --- /dev/null +++ b/pom.xml @@ -0,0 +1,152 @@ + + + 4.0.0 + io.github.tree-sitter + jtreesitter-asm + JTreeSitter Asm + 0.24.0 + assembly grammar for tree-sitter + https://github.com/neptunium931/tree-sitter-asm + + + MIT + https://spdx.org/licenses/MIT.html + + + + + RubixDev + + + + https://github.com/neptunium931/tree-sitter-asm + scm:git:git://github.com/neptunium931/tree-sitter-asm.git + scm:git:ssh://github.com/neptunium931/tree-sitter-asm.git + + + 23 + UTF-8 + true + true + false + true + + + + io.github.tree-sitter + jtreesitter + 0.26.0 + true + + + org.junit.jupiter + junit-jupiter-api + 6.0.1 + test + + + + bindings/java/main + bindings/java/test + + + maven-surefire-plugin + 3.5.4 + + + ${project.build.directory}/reports/surefire + + --enable-native-access=ALL-UNNAMED + + + + maven-javadoc-plugin + 3.12.0 + + + + jar + + + + + public + true + true + all,-missing + + + + maven-source-plugin + 3.3.1 + + + + jar-no-fork + + + + + + maven-gpg-plugin + 3.2.8 + + + verify + + sign + + + true + + --no-tty + --pinentry-mode + loopback + + + + + + + io.github.mavenplugins + central-publishing-maven-plugin + 1.1.1 + + + deploy + + publish + + + validated + ${publish.auto} + ${publish.skip} + ${project.artifactId}-${project.version}.zip + ${project.artifactId}-${project.version}.zip + + + + true + + + + + + ci + + + env.CI + true + + + + false + true + false + + + + diff --git a/tree-sitter.json b/tree-sitter.json index cf45a0d8..aaff6ac8 100644 --- a/tree-sitter.json +++ b/tree-sitter.json @@ -30,9 +30,11 @@ "bindings": { "c": true, "go": true, + "java": true, "node": true, "python": true, "rust": true, - "swift": true + "swift": true, + "zig": true } } From 3fae6c24d874678fcf8463c881b7134b3f2c25c3 Mon Sep 17 00:00:00 2001 From: Neptumiun93 Date: Thu, 9 Jul 2026 18:07:47 +0200 Subject: [PATCH 29/31] chore: regenerate bindings --- .gitattributes | 25 ++++++++---- binding.gyp | 7 +++- bindings/c/tree-sitter-asm.h | 16 -------- bindings/go/binding.go | 4 +- bindings/go/binding_test.go | 2 +- bindings/node/binding.cc | 1 - bindings/node/binding_test.js | 12 +++--- bindings/node/index.d.ts | 40 +++++++++++++++++-- bindings/node/index.js | 42 ++++++++++++++++---- bindings/python/tests/test_binding.py | 5 ++- bindings/python/tree_sitter_asm/__init__.py | 33 +++++++-------- bindings/python/tree_sitter_asm/__init__.pyi | 19 ++++++--- bindings/python/tree_sitter_asm/binding.c | 14 +++++-- bindings/rust/build.rs | 42 +++++++++++++++++++- bindings/rust/lib.rs | 40 ++++++++++++------- 15 files changed, 213 insertions(+), 89 deletions(-) delete mode 100644 bindings/c/tree-sitter-asm.h diff --git a/.gitattributes b/.gitattributes index 7e2cae0c..996bed37 100644 --- a/.gitattributes +++ b/.gitattributes @@ -10,10 +10,14 @@ bindings/c/* linguist-generated CMakeLists.txt linguist-generated Makefile linguist-generated -# Rust bindings -bindings/rust/* linguist-generated -Cargo.toml linguist-generated -Cargo.lock linguist-generated +# Go bindings +bindings/go/* linguist-generated +go.mod linguist-generated +go.sum linguist-generated + +# Java bindings +bindings/java/* linguist-generated +pom.xml linguist-generated # Node.js bindings bindings/node/* linguist-generated @@ -26,12 +30,17 @@ bindings/python/** linguist-generated setup.py linguist-generated pyproject.toml linguist-generated -# Go bindings -bindings/go/* linguist-generated -go.mod linguist-generated -go.sum linguist-generated +# Rust bindings +bindings/rust/* linguist-generated +Cargo.toml linguist-generated +Cargo.lock linguist-generated # Swift bindings bindings/swift/** linguist-generated Package.swift linguist-generated Package.resolved linguist-generated + +# Zig bindings +bindings/zig/* linguist-generated +build.zig linguist-generated +build.zig.zon linguist-generated diff --git a/binding.gyp b/binding.gyp index d22ce7b0..53f5bc80 100644 --- a/binding.gyp +++ b/binding.gyp @@ -11,9 +11,14 @@ "sources": [ "bindings/node/binding.cc", "src/parser.c", - # NOTE: if your language has an external scanner, add it here. ], + "variables": { + "has_scanner": "::New(env, tree_sitter_asm()); language.TypeTag(&LANGUAGE_TYPE_TAG); exports["language"] = language; diff --git a/bindings/node/binding_test.js b/bindings/node/binding_test.js index 55becacf..7a91a84d 100644 --- a/bindings/node/binding_test.js +++ b/bindings/node/binding_test.js @@ -1,9 +1,11 @@ -const assert = require("node:assert"); -const { test } = require("node:test"); - -const Parser = require("tree-sitter"); +import assert from "node:assert"; +import { test } from "node:test"; +import Parser from "tree-sitter"; test("can load grammar", () => { const parser = new Parser(); - assert.doesNotThrow(() => parser.setLanguage(require("."))); + assert.doesNotReject(async () => { + const { default: language } = await import("./index.js"); + parser.setLanguage(language); + }); }); diff --git a/bindings/node/index.d.ts b/bindings/node/index.d.ts index efe259ee..2a03b836 100644 --- a/bindings/node/index.d.ts +++ b/bindings/node/index.d.ts @@ -18,11 +18,43 @@ type NodeInfo = children: ChildNode[]; }); -type Language = { - name: string; +/** + * The tree-sitter language object for this grammar. + * + * @see {@linkcode https://tree-sitter.github.io/node-tree-sitter/interfaces/Parser.Language.html Parser.Language} + * + * @example + * import Parser from "tree-sitter"; + * import Asm from "tree-sitter-asm"; + * + * const parser = new Parser(); + * parser.setLanguage(Asm); + */ +declare const binding: { + /** + * The inner language object. + * @private + */ language: unknown; + + /** + * The content of the `node-types.json` file for this grammar. + * + * @see {@linkplain https://tree-sitter.github.io/tree-sitter/using-parsers/6-static-node-types Static Node Types} + */ nodeTypeInfo: NodeInfo[]; + + /** The syntax highlighting query for this grammar. */ + HIGHLIGHTS_QUERY?: string; + + /** The language injection query for this grammar. */ + INJECTIONS_QUERY?: string; + + /** The local variable query for this grammar. */ + LOCALS_QUERY?: string; + + /** The symbol tagging query for this grammar. */ + TAGS_QUERY?: string; }; -declare const language: Language; -export = language; +export default binding; diff --git a/bindings/node/index.js b/bindings/node/index.js index 99c17f5b..50f7ac4b 100644 --- a/bindings/node/index.js +++ b/bindings/node/index.js @@ -1,11 +1,37 @@ -const root = require("path").join(__dirname, "..", ".."); +import { readFileSync } from "node:fs"; +import { fileURLToPath } from "node:url"; -module.exports = - typeof process.versions.bun === "string" - // Support `bun build --compile` by being statically analyzable enough to find the .node file at build-time - ? require(`../../prebuilds/${process.platform}-${process.arch}/tree-sitter-asm.node`) - : require("node-gyp-build")(root); +const root = fileURLToPath(new URL("../..", import.meta.url)); + +const binding = typeof process.versions.bun === "string" + // Support `bun build --compile` by being statically analyzable enough to find the .node file at build-time + ? await import(`${root}/prebuilds/${process.platform}-${process.arch}/tree-sitter-asm.node`) + : (await import("node-gyp-build")).default(root); try { - module.exports.nodeTypeInfo = require("../../src/node-types.json"); -} catch (_) {} + const nodeTypes = await import(`${root}/src/node-types.json`, { with: { type: "json" } }); + binding.nodeTypeInfo = nodeTypes.default; +} catch { } + +const queries = [ + ["HIGHLIGHTS_QUERY", `${root}/queries/asm/highlights.scm`], + ["INJECTIONS_QUERY", `${root}/queries/asm/injections.scm`], + ["LOCALS_QUERY", `${root}/queries/locals.scm`], + ["TAGS_QUERY", `${root}/queries/tags.scm`], +]; + +for (const [prop, path] of queries) { + Object.defineProperty(binding, prop, { + configurable: true, + enumerable: true, + get() { + delete binding[prop]; + try { + binding[prop] = readFileSync(path, "utf8"); + } catch { } + return binding[prop]; + } + }); +} + +export default binding; diff --git a/bindings/python/tests/test_binding.py b/bindings/python/tests/test_binding.py index 95f13dbc..5d27c0d7 100644 --- a/bindings/python/tests/test_binding.py +++ b/bindings/python/tests/test_binding.py @@ -1,11 +1,12 @@ from unittest import TestCase -import tree_sitter, tree_sitter_asm +from tree_sitter import Language, Parser +import tree_sitter_asm class TestLanguage(TestCase): def test_can_load_grammar(self): try: - tree_sitter.Language(tree_sitter_asm.language()) + Parser(Language(tree_sitter_asm.language())) except Exception: self.fail("Error loading Asm grammar") diff --git a/bindings/python/tree_sitter_asm/__init__.py b/bindings/python/tree_sitter_asm/__init__.py index 4759049e..826252df 100644 --- a/bindings/python/tree_sitter_asm/__init__.py +++ b/bindings/python/tree_sitter_asm/__init__.py @@ -6,32 +6,33 @@ def _get_query(name, file): - query = _files(f"{__package__}.queries") / file - globals()[name] = query.read_text() + try: + query = _files(f"{__package__}") / file + globals()[name] = query.read_text() + except FileNotFoundError: + globals()[name] = None return globals()[name] def __getattr__(name): - # NOTE: uncomment these to include any queries that this grammar contains: - - # if name == "HIGHLIGHTS_QUERY": - # return _get_query("HIGHLIGHTS_QUERY", "highlights.scm") - # if name == "INJECTIONS_QUERY": - # return _get_query("INJECTIONS_QUERY", "injections.scm") - # if name == "LOCALS_QUERY": - # return _get_query("LOCALS_QUERY", "locals.scm") - # if name == "TAGS_QUERY": - # return _get_query("TAGS_QUERY", "tags.scm") + if name == "HIGHLIGHTS_QUERY": + return _get_query("HIGHLIGHTS_QUERY", "queries/asm/highlights.scm") + if name == "INJECTIONS_QUERY": + return _get_query("INJECTIONS_QUERY", "queries/asm/injections.scm") + if name == "LOCALS_QUERY": + return _get_query("LOCALS_QUERY", "queries/locals.scm") + if name == "TAGS_QUERY": + return _get_query("TAGS_QUERY", "queries/tags.scm") raise AttributeError(f"module {__name__!r} has no attribute {name!r}") __all__ = [ "language", - # "HIGHLIGHTS_QUERY", - # "INJECTIONS_QUERY", - # "LOCALS_QUERY", - # "TAGS_QUERY", + "HIGHLIGHTS_QUERY", + "INJECTIONS_QUERY", + "LOCALS_QUERY", + "TAGS_QUERY", ] diff --git a/bindings/python/tree_sitter_asm/__init__.pyi b/bindings/python/tree_sitter_asm/__init__.pyi index abf6633f..5c88ff6c 100644 --- a/bindings/python/tree_sitter_asm/__init__.pyi +++ b/bindings/python/tree_sitter_asm/__init__.pyi @@ -1,10 +1,17 @@ from typing import Final +from typing_extensions import CapsuleType -# NOTE: uncomment these to include any queries that this grammar contains: +HIGHLIGHTS_QUERY: Final[str] | None +"""The syntax highlighting query for this grammar.""" -# HIGHLIGHTS_QUERY: Final[str] -# INJECTIONS_QUERY: Final[str] -# LOCALS_QUERY: Final[str] -# TAGS_QUERY: Final[str] +INJECTIONS_QUERY: Final[str] | None +"""The language injection query for this grammar.""" -def language() -> object: ... +LOCALS_QUERY: Final[str] | None +"""The local variable query for this grammar.""" + +TAGS_QUERY: Final[str] | None +"""The symbol tagging query for this grammar.""" + +def language() -> CapsuleType: + """The tree-sitter language function for this grammar.""" diff --git a/bindings/python/tree_sitter_asm/binding.c b/bindings/python/tree_sitter_asm/binding.c index 226189ac..ca2ddf09 100644 --- a/bindings/python/tree_sitter_asm/binding.c +++ b/bindings/python/tree_sitter_asm/binding.c @@ -8,6 +8,13 @@ static PyObject* _binding_language(PyObject *Py_UNUSED(self), PyObject *Py_UNUSE return PyCapsule_New(tree_sitter_asm(), "tree_sitter.Language", NULL); } +static struct PyModuleDef_Slot slots[] = { +#ifdef Py_GIL_DISABLED + {Py_mod_gil, Py_MOD_GIL_NOT_USED}, +#endif + {0, NULL} +}; + static PyMethodDef methods[] = { {"language", _binding_language, METH_NOARGS, "Get the tree-sitter language for this grammar."}, @@ -18,10 +25,11 @@ static struct PyModuleDef module = { .m_base = PyModuleDef_HEAD_INIT, .m_name = "_binding", .m_doc = NULL, - .m_size = -1, - .m_methods = methods + .m_size = 0, + .m_methods = methods, + .m_slots = slots, }; PyMODINIT_FUNC PyInit__binding(void) { - return PyModule_Create(&module); + return PyModuleDef_Init(&module); } diff --git a/bindings/rust/build.rs b/bindings/rust/build.rs index c226608c..eb2c9e7d 100644 --- a/bindings/rust/build.rs +++ b/bindings/rust/build.rs @@ -7,12 +7,50 @@ fn main() { #[cfg(target_env = "msvc")] c_config.flag("-utf-8"); + if std::env::var("TARGET").unwrap() == "wasm32-unknown-unknown" { + let Ok(wasm_headers) = std::env::var("DEP_TREE_SITTER_LANGUAGE_WASM_HEADERS") else { + panic!("Environment variable DEP_TREE_SITTER_LANGUAGE_WASM_HEADERS must be set by the language crate"); + }; + let Ok(wasm_src) = + std::env::var("DEP_TREE_SITTER_LANGUAGE_WASM_SRC").map(std::path::PathBuf::from) + else { + panic!("Environment variable DEP_TREE_SITTER_LANGUAGE_WASM_SRC must be set by the language crate"); + }; + + c_config.include(&wasm_headers); + c_config.files([ + wasm_src.join("stdio.c"), + wasm_src.join("stdlib.c"), + wasm_src.join("string.c"), + ]); + } + let parser_path = src_dir.join("parser.c"); c_config.file(&parser_path); println!("cargo:rerun-if-changed={}", parser_path.to_str().unwrap()); - #[cfg(feature = "wasm")] - tree_sitter_wasm_build_tool::add_wasm_headers(&mut c_config).unwrap(); + let scanner_path = src_dir.join("scanner.c"); + if scanner_path.exists() { + c_config.file(&scanner_path); + println!("cargo:rerun-if-changed={}", scanner_path.to_str().unwrap()); + } c_config.compile("tree-sitter-asm"); + + println!("cargo:rustc-check-cfg=cfg(with_highlights_query)"); + if !"queries/asm/highlights.scm".is_empty() && std::path::Path::new("queries/asm/highlights.scm").exists() { + println!("cargo:rustc-cfg=with_highlights_query"); + } + println!("cargo:rustc-check-cfg=cfg(with_injections_query)"); + if !"queries/asm/injections.scm".is_empty() && std::path::Path::new("queries/asm/injections.scm").exists() { + println!("cargo:rustc-cfg=with_injections_query"); + } + println!("cargo:rustc-check-cfg=cfg(with_locals_query)"); + if !"queries/locals.scm".is_empty() && std::path::Path::new("queries/locals.scm").exists() { + println!("cargo:rustc-cfg=with_locals_query"); + } + println!("cargo:rustc-check-cfg=cfg(with_tags_query)"); + if !"queries/tags.scm".is_empty() && std::path::Path::new("queries/tags.scm").exists() { + println!("cargo:rustc-cfg=with_tags_query"); + } } diff --git a/bindings/rust/lib.rs b/bindings/rust/lib.rs index 2cfe4b24..807f31f6 100644 --- a/bindings/rust/lib.rs +++ b/bindings/rust/lib.rs @@ -1,20 +1,21 @@ -//! This crate provides asm language support for the [tree-sitter][] parsing library. +//! This crate provides Asm language support for the [tree-sitter] parsing library. //! -//! Typically, you will use the [LANGUAGE][] constant to add this language to a -//! tree-sitter [Parser][], and then use the parser to parse some code: +//! Typically, you will use the [`LANGUAGE`] constant to add this language to a +//! tree-sitter [`Parser`], and then use the parser to parse some code: //! //! ``` -//! let code = "pushq %rbp, %rbp"; +//! let code = r#" +//! "#; //! let mut parser = tree_sitter::Parser::new(); //! let language = tree_sitter_asm::LANGUAGE; //! parser //! .set_language(&language.into()) -//! .expect("Error loading asm parser"); +//! .expect("Error loading Asm parser"); //! let tree = parser.parse(code, None).unwrap(); //! assert!(!tree.root_node().has_error()); //! ``` //! -//! [Parser]: https://docs.rs/tree-sitter/*/tree_sitter/struct.Parser.html +//! [`Parser`]: https://docs.rs/tree-sitter/0.26.9/tree_sitter/struct.Parser.html //! [tree-sitter]: https://tree-sitter.github.io/ use tree_sitter_language::LanguageFn; @@ -23,20 +24,29 @@ extern "C" { fn tree_sitter_asm() -> *const (); } -/// The tree-sitter [`LanguageFn`][LanguageFn] for this grammar. -/// -/// [LanguageFn]: https://docs.rs/tree-sitter-language/*/tree_sitter_language/struct.LanguageFn.html +/// The tree-sitter [`LanguageFn`] for this grammar. pub const LANGUAGE: LanguageFn = unsafe { LanguageFn::from_raw(tree_sitter_asm) }; -/// The content of the [`node-types.json`][] file for this grammar. +/// The content of the [`node-types.json`] file for this grammar. /// -/// [`node-types.json`]: https://tree-sitter.github.io/tree-sitter/using-parsers#static-node-types +/// [`node-types.json`]: https://tree-sitter.github.io/tree-sitter/using-parsers/6-static-node-types pub const NODE_TYPES: &str = include_str!("../../src/node-types.json"); +#[cfg(with_highlights_query)] +/// The syntax highlighting query for this grammar. pub const HIGHLIGHTS_QUERY: &str = include_str!("../../queries/asm/highlights.scm"); -// pub const INJECTIONS_QUERY: &str = include_str!("../../queries/injections.scm"); -// pub const LOCALS_QUERY: &str = include_str!("../../queries/locals.scm"); -// pub const TAGS_QUERY: &str = include_str!("../../queries/tags.scm"); + +#[cfg(with_injections_query)] +/// The language injection query for this grammar. +pub const INJECTIONS_QUERY: &str = include_str!("../../queries/asm/injections.scm"); + +#[cfg(with_locals_query)] +/// The local variable query for this grammar. +pub const LOCALS_QUERY: &str = include_str!("../../queries/locals.scm"); + +#[cfg(with_tags_query)] +/// The symbol tagging query for this grammar. +pub const TAGS_QUERY: &str = include_str!("../../queries/tags.scm"); #[cfg(test)] mod tests { @@ -45,6 +55,6 @@ mod tests { let mut parser = tree_sitter::Parser::new(); parser .set_language(&super::LANGUAGE.into()) - .expect("Error loading asm parser"); + .expect("Error loading Asm parser"); } } From 52a9706b71d1aab65f3677bbffb122557edac201 Mon Sep 17 00:00:00 2001 From: Neptumiun93 Date: Mon, 13 Jul 2026 13:51:25 +0200 Subject: [PATCH 30/31] fix: fix intel pointers --- grammar.js | 15 +++++++++++++-- test/corpus/instr_and_reg.test | 18 ++++++++++++++++++ 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/grammar.js b/grammar.js index 7570b9e5..c9ba04e5 100644 --- a/grammar.js +++ b/grammar.js @@ -10,6 +10,10 @@ module.exports = grammar({ $._expr, $._tc_expr, ], + [ + $._ptr_expr, + $.ptr + ] ], rules: { @@ -60,14 +64,21 @@ module.exports = grammar({ '}' ), + _ptr_expr: $ => + seq( + field('base', $.reg), + optional(field('signe',choice('+', '-'))), + optional(field('index', $.reg)), + optional(field('multiplication','*')), + optional(field('scale', $.int)) + ), ptr: $ => choice( // Intel seq( optional(seq(choice('byte', 'word', 'dword', 'qword'), 'ptr')), '[', - $.reg, - optional(seq(choice('+', '-'), choice($.int, $.ident))), + $._ptr_expr, ']', ), // AT&T diff --git a/test/corpus/instr_and_reg.test b/test/corpus/instr_and_reg.test index 0471757b..df092295 100644 --- a/test/corpus/instr_and_reg.test +++ b/test/corpus/instr_and_reg.test @@ -401,3 +401,21 @@ movq $-1, %rax (prefix_operator)) (ident (reg)))) +========== +Instruction -- Memory addressing source with base, index and scale (x86 intel) +========== +mov rax, [rsp+rax*8] +--- + +(program + (instruction + (word) + (ident + (reg + (word))) + (ptr + (reg + (word)) + (reg + (word)) + (int)))) From a61881ca891105c7e74d1bdbd8fe62a7a3db9e90 Mon Sep 17 00:00:00 2001 From: Neptumiun93 Date: Thu, 6 Aug 2026 08:20:25 +0200 Subject: [PATCH 31/31] feat(intel): add ptr index scale --- grammar.js | 34 ++++++++++++++++++++++++++-------- test/corpus/instr_and_reg.test | 20 ++++++++++++++++++++ test/corpus/macro.test | 28 ++++++++++++++++++++++++++++ 3 files changed, 74 insertions(+), 8 deletions(-) diff --git a/grammar.js b/grammar.js index c9ba04e5..6717a4b2 100644 --- a/grammar.js +++ b/grammar.js @@ -12,7 +12,12 @@ module.exports = grammar({ ], [ $._ptr_expr, - $.ptr + $.ptr, + $._ptr_index_scale, + ], + [ + $._ptr_expr, + $._ptr_index_scale ] ], @@ -64,13 +69,26 @@ module.exports = grammar({ '}' ), - _ptr_expr: $ => + _ptr_index_scale: $ => seq( - field('base', $.reg), - optional(field('signe',choice('+', '-'))), - optional(field('index', $.reg)), - optional(field('multiplication','*')), - optional(field('scale', $.int)) + field('index', $.reg), + optional(seq( + field('multiplication', '*'), + field('scale', choice($.int, $.word)) + )) + ), + _ptr_expr: $ => + choice( + seq( + field('base', $.reg), + optional(field('signe', choice('+', '-'))), + optional($._ptr_index_scale), + ), + seq( + $._ptr_index_scale, + optional(field('signe', choice('+', '-'))), + optional(field('base', $.reg)), + ), ), ptr: $ => choice( @@ -151,7 +169,7 @@ module.exports = grammar({ choice( /"[^"]*"/, /'[^']*'/ - ), + ), word: $ => /[\\a-zA-Z0-9_]+/, _reg: $ => /%?[a-z0-9]+/, diff --git a/test/corpus/instr_and_reg.test b/test/corpus/instr_and_reg.test index df092295..36bde4fe 100644 --- a/test/corpus/instr_and_reg.test +++ b/test/corpus/instr_and_reg.test @@ -401,6 +401,7 @@ movq $-1, %rax (prefix_operator)) (ident (reg)))) + ========== Instruction -- Memory addressing source with base, index and scale (x86 intel) ========== @@ -419,3 +420,22 @@ mov rax, [rsp+rax*8] (reg (word)) (int)))) + +========== +Instruction -- Memory addressing source with base, index and scale different order (x86 intel) +========== +mov rax, [rax*8+rsp] +--- + +(program + (instruction + (word) + (ident + (reg + (word))) + (ptr + (reg + (word)) + (int) + (reg + (word))))) diff --git a/test/corpus/macro.test b/test/corpus/macro.test index e9821d21..29992792 100644 --- a/test/corpus/macro.test +++ b/test/corpus/macro.test @@ -114,3 +114,31 @@ sum "(\from+1)",\to (meta_ident)) (meta (meta_ident))) + +========== +Macro -- use offset as macro_arg +========== +.macro useOffset offset +mov rdi, [r11*\offset] +.endm +--- +(program + (meta + (meta_ident) + (ident + (reg + (word))) + (ident + (reg + (word)))) + (instruction + (word) + (ident + (reg + (word))) + (ptr + (reg + (word)) + (word))) + (meta + (meta_ident)))