chore: generate

pull/559/head
Amaan Qureshi 2023-08-18 04:18:00 +07:00
parent bfc63872f7
commit 26cf636d86
3 changed files with 132634 additions and 143250 deletions

560
src/grammar.json generated vendored

@ -139,7 +139,7 @@
"members": [ "members": [
{ {
"type": "SYMBOL", "type": "SYMBOL",
"name": "_statement" "name": "_statement_not_subshell"
}, },
{ {
"type": "SYMBOL", "type": "SYMBOL",
@ -148,6 +148,19 @@
] ]
}, },
"_statement": { "_statement": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_statement_not_subshell"
},
{
"type": "SYMBOL",
"name": "subshell"
}
]
},
"_statement_not_subshell": {
"type": "CHOICE", "type": "CHOICE",
"members": [ "members": [
{ {
@ -158,6 +171,10 @@
"type": "SYMBOL", "type": "SYMBOL",
"name": "variable_assignment" "name": "variable_assignment"
}, },
{
"type": "SYMBOL",
"name": "variable_assignments"
},
{ {
"type": "SYMBOL", "type": "SYMBOL",
"name": "command" "name": "command"
@ -206,10 +223,6 @@
"type": "SYMBOL", "type": "SYMBOL",
"name": "list" "name": "list"
}, },
{
"type": "SYMBOL",
"name": "subshell"
},
{ {
"type": "SYMBOL", "type": "SYMBOL",
"name": "compound_statement" "name": "compound_statement"
@ -338,22 +351,85 @@
"type": "STRING", "type": "STRING",
"value": "((" "value": "(("
}, },
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_for_body"
},
{
"type": "STRING",
"value": ";;"
}
]
},
{
"type": "STRING",
"value": "))"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ";"
},
{
"type": "BLANK"
}
]
},
{ {
"type": "FIELD", "type": "FIELD",
"name": "initializer", "name": "body",
"content": { "content": {
"type": "CHOICE", "type": "CHOICE",
"members": [ "members": [
{ {
"type": "SYMBOL",
"name": "do_group"
},
{
"type": "SYMBOL",
"name": "compound_statement"
}
]
}
}
]
},
"_for_body": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "initializer",
"content": {
"type": "CHOICE", "type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [ "members": [
{ {
"type": "SYMBOL", "type": "SYMBOL",
"name": "variable_assignment" "name": "_c_expression"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
}, },
{ {
"type": "SYMBOL", "type": "SYMBOL",
"name": "_expression" "name": "_c_expression"
}
]
}
} }
] ]
}, },
@ -372,10 +448,31 @@
"name": "condition", "name": "condition",
"content": { "content": {
"type": "CHOICE", "type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [ "members": [
{ {
"type": "SYMBOL", "type": "SYMBOL",
"name": "_expression" "name": "_c_expression"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_c_expression"
}
]
}
}
]
}, },
{ {
"type": "BLANK" "type": "BLANK"
@ -392,52 +489,354 @@
"name": "update", "name": "update",
"content": { "content": {
"type": "CHOICE", "type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [ "members": [
{ {
"type": "SYMBOL", "type": "SYMBOL",
"name": "_expression" "name": "_c_expression"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_c_expression"
}
]
}
}
]
}, },
{ {
"type": "BLANK" "type": "BLANK"
} }
] ]
} }
}
]
},
"_c_expression": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_c_expression_not_assignment"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_c_variable_assignment"
},
"named": true,
"value": "variable_assignment"
}
]
},
"_c_expression_not_assignment": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_c_word"
},
{
"type": "SYMBOL",
"name": "simple_expansion"
},
{
"type": "SYMBOL",
"name": "expansion"
},
{
"type": "SYMBOL",
"name": "number"
},
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_c_unary_expression"
},
"named": true,
"value": "unary_expression"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_c_binary_expression"
},
"named": true,
"value": "binary_expression"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_c_postfix_expression"
},
"named": true,
"value": "postfix_expression"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_c_parenthesized_expression"
},
"named": true,
"value": "parenthesized_expression"
}
]
},
"_c_variable_assignment": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_c_word"
},
"named": true,
"value": "variable_name"
}, },
{ {
"type": "STRING", "type": "STRING",
"value": "))" "value": "="
}, },
{
"type": "SYMBOL",
"name": "_c_expression"
}
]
},
"_c_unary_expression": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{ {
"type": "CHOICE", "type": "CHOICE",
"members": [ "members": [
{ {
"type": "STRING", "type": "STRING",
"value": ";" "value": "++"
}, },
{ {
"type": "BLANK" "type": "STRING",
"value": "--"
} }
] ]
}, },
{ {
"type": "FIELD", "type": "SYMBOL",
"name": "body", "name": "_c_expression_not_assignment"
}
]
}
},
"_c_binary_expression": {
"type": "PREC_RIGHT",
"value": 0,
"content": { "content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE", "type": "CHOICE",
"members": [ "members": [
{ {
"type": "SYMBOL", "type": "SYMBOL",
"name": "do_group" "name": "_c_word"
}, },
{ {
"type": "SYMBOL", "type": "SYMBOL",
"name": "compound_statement" "name": "simple_expansion"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "+="
},
{
"type": "STRING",
"value": "-="
},
{
"type": "STRING",
"value": "*="
},
{
"type": "STRING",
"value": "/="
},
{
"type": "STRING",
"value": "%="
},
{
"type": "STRING",
"value": "**="
},
{
"type": "STRING",
"value": "<<="
},
{
"type": "STRING",
"value": ">>="
},
{
"type": "STRING",
"value": "&="
},
{
"type": "STRING",
"value": "^="
},
{
"type": "STRING",
"value": "|="
},
{
"type": "STRING",
"value": "=="
},
{
"type": "STRING",
"value": "!="
},
{
"type": "STRING",
"value": "<="
},
{
"type": "STRING",
"value": ">="
},
{
"type": "STRING",
"value": "&&"
},
{
"type": "STRING",
"value": "||"
},
{
"type": "STRING",
"value": "<<"
},
{
"type": "STRING",
"value": ">>"
},
{
"type": "STRING",
"value": "+"
},
{
"type": "STRING",
"value": "-"
},
{
"type": "STRING",
"value": "*"
},
{
"type": "STRING",
"value": "/"
},
{
"type": "STRING",
"value": "%"
},
{
"type": "STRING",
"value": "**"
},
{
"type": "STRING",
"value": "<"
},
{
"type": "STRING",
"value": ">"
} }
] ]
},
{
"type": "SYMBOL",
"name": "_c_expression_not_assignment"
} }
]
}
},
"_c_postfix_expression": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_c_expression_not_assignment"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "++"
},
{
"type": "STRING",
"value": "--"
}
]
} }
] ]
}, },
"_c_parenthesized_expression": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "_c_expression"
},
{
"type": "STRING",
"value": ")"
}
]
},
"_c_word": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[a-zA-Z_][a-zA-Z0-9_]*"
},
"named": true,
"value": "word"
},
"while_statement": { "while_statement": {
"type": "SEQ", "type": "SEQ",
"members": [ "members": [
@ -1096,10 +1495,19 @@
"type": "STRING", "type": "STRING",
"value": "[" "value": "["
}, },
{
"type": "CHOICE",
"members": [
{ {
"type": "SYMBOL", "type": "SYMBOL",
"name": "_expression" "name": "_expression"
}, },
{
"type": "SYMBOL",
"name": "redirected_statement"
}
]
},
{ {
"type": "STRING", "type": "STRING",
"value": "]" "value": "]"
@ -1128,7 +1536,11 @@
"members": [ "members": [
{ {
"type": "STRING", "type": "STRING",
"value": "((" "value": "("
},
{
"type": "STRING",
"value": "("
}, },
{ {
"type": "SYMBOL", "type": "SYMBOL",
@ -1385,6 +1797,22 @@
} }
] ]
}, },
"variable_assignments": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "variable_assignment"
},
{
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "variable_assignment"
}
}
]
},
"subscript": { "subscript": {
"type": "SEQ", "type": "SEQ",
"members": [ "members": [
@ -1404,8 +1832,21 @@
"type": "FIELD", "type": "FIELD",
"name": "index", "name": "index",
"content": { "content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL", "type": "SYMBOL",
"name": "_literal" "name": "_literal"
},
{
"type": "SYMBOL",
"name": "binary_expression"
},
{
"type": "SYMBOL",
"name": "unary_expression"
}
]
} }
}, },
{ {
@ -1500,11 +1941,14 @@
{ {
"type": "FIELD", "type": "FIELD",
"name": "destination", "name": "destination",
"content": {
"type": "REPEAT1",
"content": { "content": {
"type": "SYMBOL", "type": "SYMBOL",
"name": "_literal" "name": "_literal"
} }
} }
}
] ]
} }
}, },
@ -2389,6 +2833,10 @@
"type": "SYMBOL", "type": "SYMBOL",
"name": "_simple_variable_name" "name": "_simple_variable_name"
}, },
{
"type": "SYMBOL",
"name": "_multiline_variable_name"
},
{ {
"type": "SYMBOL", "type": "SYMBOL",
"name": "_special_variable_name" "name": "_special_variable_name"
@ -2447,6 +2895,10 @@
{ {
"type": "STRING", "type": "STRING",
"value": "!" "value": "!"
},
{
"type": "STRING",
"value": "="
} }
] ]
} }
@ -2455,6 +2907,21 @@
"type": "CHOICE", "type": "CHOICE",
"members": [ "members": [
{ {
"type": "SYMBOL",
"name": "_expansion_body"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "}"
}
]
},
"_expansion_body": {
"type": "CHOICE", "type": "CHOICE",
"members": [ "members": [
{ {
@ -2499,6 +2966,10 @@
{ {
"type": "SYMBOL", "type": "SYMBOL",
"name": "_special_variable_name" "name": "_special_variable_name"
},
{
"type": "SYMBOL",
"name": "command_substitution"
} }
] ]
}, },
@ -2614,17 +3085,6 @@
} }
] ]
}, },
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "}"
}
]
},
"command_substitution": { "command_substitution": {
"type": "CHOICE", "type": "CHOICE",
"members": [ "members": [
@ -2682,6 +3142,23 @@
} }
] ]
} }
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "$`"
},
{
"type": "SYMBOL",
"name": "_statements"
},
{
"type": "STRING",
"value": "`"
}
]
} }
] ]
}, },
@ -2794,6 +3271,22 @@
"named": true, "named": true,
"value": "variable_name" "value": "variable_name"
}, },
"_multiline_variable_name": {
"type": "ALIAS",
"content": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": -1,
"content": {
"type": "PATTERN",
"value": "(\\w|\\\\\\r?\\n)+"
}
}
},
"named": true,
"value": "variable_name"
},
"_special_variable_name": { "_special_variable_name": {
"type": "ALIAS", "type": "ALIAS",
"content": { "content": {
@ -2955,6 +3448,10 @@
[ [
"_expression", "_expression",
"command_name" "command_name"
],
[
"command",
"variable_assignments"
] ]
], ],
"precedences": [], "precedences": [],
@ -3027,7 +3524,10 @@
"_statements2", "_statements2",
"_primary_expression", "_primary_expression",
"_simple_variable_name", "_simple_variable_name",
"_special_variable_name" "_multiline_variable_name",
"_special_variable_name",
"_c_word",
"_statement_not_subshell"
], ],
"supertypes": [ "supertypes": [
"_statement", "_statement",

459
src/node-types.json generated vendored

@ -155,6 +155,10 @@
"type": "variable_assignment", "type": "variable_assignment",
"named": true "named": true
}, },
{
"type": "variable_assignments",
"named": true
},
{ {
"type": "while_statement", "type": "while_statement",
"named": true "named": true
@ -201,7 +205,7 @@
"fields": { "fields": {
"left": { "left": {
"multiple": false, "multiple": false,
"required": true, "required": false,
"types": [ "types": [
{ {
"type": "_expression", "type": "_expression",
@ -211,7 +215,7 @@
}, },
"operator": { "operator": {
"multiple": false, "multiple": false,
"required": true, "required": false,
"types": [ "types": [
{ {
"type": "!=", "type": "!=",
@ -345,7 +349,7 @@
}, },
"right": { "right": {
"multiple": false, "multiple": false,
"required": true, "required": false,
"types": [ "types": [
{ {
"type": "_expression", "type": "_expression",
@ -357,6 +361,48 @@
} }
] ]
} }
},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "binary_expression",
"named": true
},
{
"type": "expansion",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "postfix_expression",
"named": true
},
{
"type": "simple_expansion",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "unary_expression",
"named": true
},
{
"type": "word",
"named": true
}
]
} }
}, },
{ {
@ -378,35 +424,151 @@
] ]
}, },
"condition": { "condition": {
"multiple": false, "multiple": true,
"required": false, "required": false,
"types": [ "types": [
{ {
"type": "_expression", "type": ",",
"named": false
},
{
"type": "binary_expression",
"named": true
},
{
"type": "expansion",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "postfix_expression",
"named": true
},
{
"type": "simple_expansion",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "unary_expression",
"named": true
},
{
"type": "variable_assignment",
"named": true
},
{
"type": "word",
"named": true "named": true
} }
] ]
}, },
"initializer": { "initializer": {
"multiple": false, "multiple": true,
"required": false, "required": false,
"types": [ "types": [
{ {
"type": "_expression", "type": ",",
"named": false
},
{
"type": "binary_expression",
"named": true
},
{
"type": "expansion",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "postfix_expression",
"named": true
},
{
"type": "simple_expansion",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "unary_expression",
"named": true "named": true
}, },
{ {
"type": "variable_assignment", "type": "variable_assignment",
"named": true "named": true
},
{
"type": "word",
"named": true
} }
] ]
}, },
"update": { "update": {
"multiple": false, "multiple": true,
"required": false, "required": false,
"types": [ "types": [
{ {
"type": "_expression", "type": ",",
"named": false
},
{
"type": "binary_expression",
"named": true
},
{
"type": "expansion",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "postfix_expression",
"named": true
},
{
"type": "simple_expansion",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "unary_expression",
"named": true
},
{
"type": "variable_assignment",
"named": true
},
{
"type": "word",
"named": true "named": true
} }
] ]
@ -771,7 +933,7 @@
] ]
}, },
"destination": { "destination": {
"multiple": false, "multiple": true,
"required": true, "required": true,
"types": [ "types": [
{ {
@ -964,7 +1126,71 @@
"named": false "named": false
}, },
{ {
"type": "_statement", "type": "c_style_for_statement",
"named": true
},
{
"type": "case_statement",
"named": true
},
{
"type": "command",
"named": true
},
{
"type": "compound_statement",
"named": true
},
{
"type": "declaration_command",
"named": true
},
{
"type": "for_statement",
"named": true
},
{
"type": "function_definition",
"named": true
},
{
"type": "if_statement",
"named": true
},
{
"type": "list",
"named": true
},
{
"type": "negated_command",
"named": true
},
{
"type": "pipeline",
"named": true
},
{
"type": "redirected_statement",
"named": true
},
{
"type": "test_command",
"named": true
},
{
"type": "unset_command",
"named": true
},
{
"type": "variable_assignment",
"named": true
},
{
"type": "variable_assignments",
"named": true
},
{
"type": "while_statement",
"named": true "named": true
} }
] ]
@ -1046,6 +1272,26 @@
{ {
"type": "_expression", "type": "_expression",
"named": true "named": true
},
{
"type": "expansion",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "simple_expansion",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "variable_assignment",
"named": true
} }
] ]
} }
@ -1076,6 +1322,22 @@
{ {
"type": "_expression", "type": "_expression",
"named": true "named": true
},
{
"type": "expansion",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "simple_expansion",
"named": true
},
{
"type": "string",
"named": true
} }
] ]
} }
@ -1210,9 +1472,17 @@
"type": "_primary_expression", "type": "_primary_expression",
"named": true "named": true
}, },
{
"type": "binary_expression",
"named": true
},
{ {
"type": "concatenation", "type": "concatenation",
"named": true "named": true
},
{
"type": "unary_expression",
"named": true
} }
] ]
}, },
@ -1294,6 +1564,10 @@
{ {
"type": "_expression", "type": "_expression",
"named": true "named": true
},
{
"type": "redirected_statement",
"named": true
} }
] ]
} }
@ -1325,6 +1599,22 @@
"type": "_expression", "type": "_expression",
"named": true "named": true
}, },
{
"type": "expansion",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "simple_expansion",
"named": true
},
{
"type": "string",
"named": true
},
{ {
"type": "test_operator", "type": "test_operator",
"named": true "named": true
@ -1361,7 +1651,7 @@
"fields": { "fields": {
"name": { "name": {
"multiple": false, "multiple": false,
"required": true, "required": false,
"types": [ "types": [
{ {
"type": "subscript", "type": "subscript",
@ -1375,7 +1665,7 @@
}, },
"value": { "value": {
"multiple": false, "multiple": false,
"required": true, "required": false,
"types": [ "types": [
{ {
"type": "_primary_expression", "type": "_primary_expression",
@ -1391,6 +1681,71 @@
} }
] ]
} }
},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "binary_expression",
"named": true
},
{
"type": "expansion",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "postfix_expression",
"named": true
},
{
"type": "simple_expansion",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "unary_expression",
"named": true
},
{
"type": "variable_assignment",
"named": true
},
{
"type": "variable_name",
"named": true
},
{
"type": "word",
"named": true
}
]
}
},
{
"type": "variable_assignments",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "variable_assignment",
"named": true
}
]
} }
}, },
{ {
@ -1428,7 +1783,71 @@
"named": false "named": false
}, },
{ {
"type": "_statement", "type": "c_style_for_statement",
"named": true
},
{
"type": "case_statement",
"named": true
},
{
"type": "command",
"named": true
},
{
"type": "compound_statement",
"named": true
},
{
"type": "declaration_command",
"named": true
},
{
"type": "for_statement",
"named": true
},
{
"type": "function_definition",
"named": true
},
{
"type": "if_statement",
"named": true
},
{
"type": "list",
"named": true
},
{
"type": "negated_command",
"named": true
},
{
"type": "pipeline",
"named": true
},
{
"type": "redirected_statement",
"named": true
},
{
"type": "test_command",
"named": true
},
{
"type": "unset_command",
"named": true
},
{
"type": "variable_assignment",
"named": true
},
{
"type": "variable_assignments",
"named": true
},
{
"type": "while_statement",
"named": true "named": true
} }
] ]
@ -1468,6 +1887,10 @@
"type": "$(", "type": "$(",
"named": false "named": false
}, },
{
"type": "$`",
"named": false
},
{ {
"type": "${", "type": "${",
"named": false "named": false
@ -1524,6 +1947,10 @@
"type": "**", "type": "**",
"named": false "named": false
}, },
{
"type": "**=",
"named": false
},
{ {
"type": "*=", "type": "*=",
"named": false "named": false
@ -1540,6 +1967,10 @@
"type": "+=", "type": "+=",
"named": false "named": false
}, },
{
"type": ",",
"named": false
},
{ {
"type": "-", "type": "-",
"named": false "named": false

274581
src/parser.c generated vendored

File diff suppressed because it is too large Load Diff