Convert more fixture grammars from JSON to JS
This commit is contained in:
parent
622359b400
commit
8df0b8de7e
6 changed files with 51 additions and 153 deletions
28
test/fixtures/test_grammars/inlined_aliased_rules/grammar.js
vendored
Normal file
28
test/fixtures/test_grammars/inlined_aliased_rules/grammar.js
vendored
Normal file
|
|
@ -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]+/,
|
||||
},
|
||||
});
|
||||
|
|
@ -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]+"}
|
||||
}
|
||||
}
|
||||
15
test/fixtures/test_grammars/inverted_external_token/grammar.js
vendored
Normal file
15
test/fixtures/test_grammars/inverted_external_token/grammar.js
vendored
Normal file
|
|
@ -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]+/,
|
||||
},
|
||||
});
|
||||
|
|
@ -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]+"
|
||||
}
|
||||
}
|
||||
}
|
||||
8
test/fixtures/test_grammars/invisible_start_rule/grammar.js
vendored
Normal file
8
test/fixtures/test_grammars/invisible_start_rule/grammar.js
vendored
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
module.exports = grammar({
|
||||
name: "invisible_start_rule",
|
||||
rules: {
|
||||
_value: $ => choice($.a, $.b),
|
||||
a: $ => "a",
|
||||
b: $ => "b",
|
||||
},
|
||||
});
|
||||
|
|
@ -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"
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue