diff --git a/test/fixtures/test_grammars/inlined_aliased_rules/grammar.js b/test/fixtures/test_grammars/inlined_aliased_rules/grammar.js new file mode 100644 index 00000000..8578659b --- /dev/null +++ b/test/fixtures/test_grammars/inlined_aliased_rules/grammar.js @@ -0,0 +1,28 @@ +module.exports = grammar({ + name: "inlined_aliased_rules", + + extras: $ => [/\s/], + + inline: $ => [$.expression], + + rules: { + statement: $ => seq($.expression, ";"), + + expression: $ => + choice( + $.call_expression, + $.member_expression, + alias($.identifier, $.variable_name), + ), + + call_expression: $ => prec.left(seq($.expression, "(", $.expression, ")")), + + member_expression: $ => + prec.left( + 1, + seq($.expression, ".", alias($.identifier, $.property_name)), + ), + + identifier: $ => /[a-z]+/, + }, +}); diff --git a/test/fixtures/test_grammars/inlined_aliased_rules/grammar.json b/test/fixtures/test_grammars/inlined_aliased_rules/grammar.json deleted file mode 100644 index d98f6e6c..00000000 --- a/test/fixtures/test_grammars/inlined_aliased_rules/grammar.json +++ /dev/null @@ -1,75 +0,0 @@ -{ - "name": "inlined_aliased_rules", - - "extras": [ - {"type": "PATTERN", "value": "\\s"} - ], - - "inline": [ - "expression" - ], - - "rules": { - "statement": { - "type": "SEQ", - "members": [ - {"type": "SYMBOL", "name": "expression"}, - {"type": "STRING", "value": ";"} - ] - }, - - "expression": { - "type": "CHOICE", - "members": [ - {"type": "SYMBOL", "name": "call_expression"}, - {"type": "SYMBOL", "name": "member_expression"}, - { - "type": "ALIAS", - "value": "variable_name", - "named": true, - "content": { - "type": "SYMBOL", - "name": "identifier" - } - } - ] - }, - - "call_expression": { - "type": "PREC_LEFT", - "value": 0, - "content": { - "type": "SEQ", - "members": [ - {"type": "SYMBOL", "name": "expression"}, - {"type": "STRING", "value": "("}, - {"type": "SYMBOL", "name": "expression"}, - {"type": "STRING", "value": ")"} - ] - } - }, - - "member_expression": { - "type": "PREC_LEFT", - "value": 1, - "content": { - "type": "SEQ", - "members": [ - {"type": "SYMBOL", "name": "expression"}, - {"type": "STRING", "value": "."}, - { - "type": "ALIAS", - "named": true, - "value": "property_name", - "content": { - "type": "SYMBOL", - "name": "identifier" - } - } - ] - } - }, - - "identifier": {"type": "PATTERN", "value": "[a-z]+"} - } -} diff --git a/test/fixtures/test_grammars/inverted_external_token/grammar.js b/test/fixtures/test_grammars/inverted_external_token/grammar.js new file mode 100644 index 00000000..3530d0db --- /dev/null +++ b/test/fixtures/test_grammars/inverted_external_token/grammar.js @@ -0,0 +1,15 @@ +module.exports = grammar({ + name: "inverted_external_token", + + externals: $ => [$.line_break], + + extras: $ => [/\s/], + + rules: { + program: $ => repeat($.statement), + statement: $ => seq($._expression, $.line_break), + _expression: $ => choice($.identifier, $.member_expression), + member_expression: $ => prec.left(seq($._expression, ".", $.identifier)), + identifier: $ => /[a-z]+/, + }, +}); diff --git a/test/fixtures/test_grammars/inverted_external_token/grammar.json b/test/fixtures/test_grammars/inverted_external_token/grammar.json deleted file mode 100644 index 6dee3d03..00000000 --- a/test/fixtures/test_grammars/inverted_external_token/grammar.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "name": "inverted_external_token", - - "externals": [ - {"type": "SYMBOL", "name": "line_break"} - ], - - "extras": [ - {"type": "PATTERN", "value": "\\s"} - ], - - "rules": { - "program": { - "type": "REPEAT", - "content": { - "type": "SYMBOL", - "name": "statement" - } - }, - - "statement": { - "type": "SEQ", - "members": [ - {"type": "SYMBOL", "name": "_expression"}, - {"type": "SYMBOL", "name": "line_break"} - ] - }, - - "_expression": { - "type": "CHOICE", - "members": [ - {"type": "SYMBOL", "name": "identifier"}, - {"type": "SYMBOL", "name": "member_expression"} - ] - }, - - "member_expression": { - "type": "PREC_LEFT", - "value": 0, - "content": { - "type": "SEQ", - "members": [ - {"type": "SYMBOL", "name": "_expression"}, - {"type": "STRING", "value": "."}, - {"type": "SYMBOL", "name": "identifier"} - ] - } - }, - - "identifier": { - "type": "PATTERN", - "value": "[a-z]+" - } - } -} diff --git a/test/fixtures/test_grammars/invisible_start_rule/grammar.js b/test/fixtures/test_grammars/invisible_start_rule/grammar.js new file mode 100644 index 00000000..4afa4d66 --- /dev/null +++ b/test/fixtures/test_grammars/invisible_start_rule/grammar.js @@ -0,0 +1,8 @@ +module.exports = grammar({ + name: "invisible_start_rule", + rules: { + _value: $ => choice($.a, $.b), + a: $ => "a", + b: $ => "b", + }, +}); diff --git a/test/fixtures/test_grammars/invisible_start_rule/grammar.json b/test/fixtures/test_grammars/invisible_start_rule/grammar.json deleted file mode 100644 index 809624bd..00000000 --- a/test/fixtures/test_grammars/invisible_start_rule/grammar.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "invisible_start_rule", - - "rules": { - "_value": { - "type": "CHOICE", - "members": [ - {"type": "SYMBOL", "name": "a"}, - {"type": "SYMBOL", "name": "b"} - ] - }, - - "a": { - "type": "STRING", - "value": "a" - }, - - "b": { - "type": "STRING", - "value": "b" - } - } -} \ No newline at end of file