2017-07-14 19:28:54 +00:00
|
|
|
{
|
|
|
|
"name": "bash",
|
2018-06-15 21:05:05 +00:00
|
|
|
"word": "word",
|
2017-07-14 19:28:54 +00:00
|
|
|
"rules": {
|
|
|
|
"program": {
|
2018-08-06 18:18:33 +00:00
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_statements"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "BLANK"
|
|
|
|
}
|
|
|
|
]
|
2017-07-14 19:28:54 +00:00
|
|
|
},
|
2018-10-18 22:29:07 +00:00
|
|
|
"_statements": {
|
|
|
|
"type": "PREC",
|
|
|
|
"value": 1,
|
|
|
|
"content": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "REPEAT",
|
|
|
|
"content": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_statement"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
2019-04-18 22:25:40 +00:00
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "\n"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "heredoc_body"
|
|
|
|
}
|
|
|
|
]
|
2018-10-18 22:29:07 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "BLANK"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_terminator"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_statement"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
2019-04-18 22:25:40 +00:00
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "\n"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "heredoc_body"
|
|
|
|
}
|
|
|
|
]
|
2018-10-18 22:29:07 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "BLANK"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_terminator"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "BLANK"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
},
|
2019-04-18 22:38:34 +00:00
|
|
|
"_statements2": {
|
|
|
|
"type": "REPEAT1",
|
|
|
|
"content": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_statement"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "\n"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "heredoc_body"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "BLANK"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_terminator"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
},
|
2017-07-14 23:11:35 +00:00
|
|
|
"_terminated_statement": {
|
2017-07-14 19:28:54 +00:00
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
2017-07-14 23:11:35 +00:00
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
2017-07-16 05:23:38 +00:00
|
|
|
"name": "_statement"
|
2017-07-14 23:11:35 +00:00
|
|
|
},
|
2017-07-14 19:28:54 +00:00
|
|
|
{
|
2017-07-14 23:29:28 +00:00
|
|
|
"type": "SYMBOL",
|
2017-07-16 05:23:38 +00:00
|
|
|
"name": "_terminator"
|
2017-07-14 23:11:35 +00:00
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
2017-07-16 05:23:38 +00:00
|
|
|
"_statement": {
|
2017-07-14 23:11:35 +00:00
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
2018-10-18 18:05:58 +00:00
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "redirected_statement"
|
|
|
|
},
|
2017-07-14 23:47:25 +00:00
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
2018-02-27 21:22:28 +00:00
|
|
|
"name": "variable_assignment"
|
2017-07-14 23:47:25 +00:00
|
|
|
},
|
2018-02-24 23:02:24 +00:00
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
2018-02-27 21:22:28 +00:00
|
|
|
"name": "command"
|
2018-02-24 23:02:24 +00:00
|
|
|
},
|
2017-07-14 23:11:35 +00:00
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
2018-02-27 21:22:28 +00:00
|
|
|
"name": "declaration_command"
|
2017-07-14 23:11:35 +00:00
|
|
|
},
|
2018-03-01 18:12:10 +00:00
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "unset_command"
|
|
|
|
},
|
2018-03-01 06:46:47 +00:00
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
2018-05-24 18:46:57 +00:00
|
|
|
"name": "test_command"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "negated_command"
|
2018-03-01 06:46:47 +00:00
|
|
|
},
|
2017-07-15 00:51:06 +00:00
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "for_statement"
|
|
|
|
},
|
2018-08-06 02:25:19 +00:00
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "c_style_for_statement"
|
|
|
|
},
|
2017-07-14 23:11:35 +00:00
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "while_statement"
|
|
|
|
},
|
2017-07-14 23:18:46 +00:00
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "if_statement"
|
|
|
|
},
|
2017-07-14 23:29:28 +00:00
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "case_statement"
|
|
|
|
},
|
2017-07-14 23:11:35 +00:00
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "pipeline"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "list"
|
2017-07-15 00:32:55 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "subshell"
|
2017-07-15 00:35:51 +00:00
|
|
|
},
|
2018-10-18 18:05:58 +00:00
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "compound_statement"
|
|
|
|
},
|
2017-07-15 00:35:51 +00:00
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "function_definition"
|
2017-07-14 23:11:35 +00:00
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
2018-10-18 18:05:58 +00:00
|
|
|
"redirected_statement": {
|
|
|
|
"type": "PREC",
|
|
|
|
"value": -1,
|
|
|
|
"content": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
2019-12-10 21:18:29 +00:00
|
|
|
"type": "FIELD",
|
|
|
|
"name": "body",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_statement"
|
|
|
|
}
|
2018-10-18 18:05:58 +00:00
|
|
|
},
|
|
|
|
{
|
2019-12-10 21:18:29 +00:00
|
|
|
"type": "FIELD",
|
|
|
|
"name": "redirect",
|
2018-10-18 18:05:58 +00:00
|
|
|
"content": {
|
2019-12-10 21:18:29 +00:00
|
|
|
"type": "REPEAT1",
|
|
|
|
"content": {
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "file_redirect"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "heredoc_redirect"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "herestring_redirect"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
2018-10-18 18:05:58 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
},
|
2017-07-15 00:51:06 +00:00
|
|
|
"for_statement": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "for"
|
|
|
|
},
|
|
|
|
{
|
2019-12-10 21:18:29 +00:00
|
|
|
"type": "FIELD",
|
|
|
|
"name": "variable",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_simple_variable_name"
|
|
|
|
}
|
2017-07-15 00:51:06 +00:00
|
|
|
},
|
|
|
|
{
|
2018-03-02 18:18:12 +00:00
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "in"
|
|
|
|
},
|
|
|
|
{
|
2019-12-10 21:18:29 +00:00
|
|
|
"type": "FIELD",
|
|
|
|
"name": "value",
|
2018-03-02 18:18:12 +00:00
|
|
|
"content": {
|
2019-12-10 21:18:29 +00:00
|
|
|
"type": "REPEAT1",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_literal"
|
|
|
|
}
|
2018-03-02 18:18:12 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "BLANK"
|
|
|
|
}
|
|
|
|
]
|
2017-07-17 17:19:35 +00:00
|
|
|
},
|
2017-07-15 00:51:06 +00:00
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
2017-07-17 17:19:35 +00:00
|
|
|
"name": "_terminator"
|
2017-07-15 00:51:06 +00:00
|
|
|
},
|
|
|
|
{
|
2019-12-10 21:18:29 +00:00
|
|
|
"type": "FIELD",
|
|
|
|
"name": "body",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "do_group"
|
|
|
|
}
|
2017-07-15 00:51:06 +00:00
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
2018-08-06 02:25:19 +00:00
|
|
|
"c_style_for_statement": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "for"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "(("
|
|
|
|
},
|
|
|
|
{
|
2019-12-10 21:18:29 +00:00
|
|
|
"type": "FIELD",
|
|
|
|
"name": "initializer",
|
|
|
|
"content": {
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_expression"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "BLANK"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
2018-08-06 02:25:19 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_terminator"
|
|
|
|
},
|
|
|
|
{
|
2019-12-10 21:18:29 +00:00
|
|
|
"type": "FIELD",
|
|
|
|
"name": "condition",
|
|
|
|
"content": {
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_expression"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "BLANK"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
2018-08-06 02:25:19 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_terminator"
|
|
|
|
},
|
|
|
|
{
|
2019-12-10 21:18:29 +00:00
|
|
|
"type": "FIELD",
|
|
|
|
"name": "update",
|
|
|
|
"content": {
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_expression"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "BLANK"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
2018-08-06 02:25:19 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "))"
|
|
|
|
},
|
2018-10-01 19:48:50 +00:00
|
|
|
{
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": ";"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "BLANK"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
2018-08-06 02:25:19 +00:00
|
|
|
{
|
2019-12-10 21:18:29 +00:00
|
|
|
"type": "FIELD",
|
|
|
|
"name": "body",
|
|
|
|
"content": {
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "do_group"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "compound_statement"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
2018-08-06 02:25:19 +00:00
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
2017-07-14 23:11:35 +00:00
|
|
|
"while_statement": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "while"
|
2017-07-14 19:28:54 +00:00
|
|
|
},
|
|
|
|
{
|
2019-12-10 21:18:29 +00:00
|
|
|
"type": "FIELD",
|
|
|
|
"name": "condition",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_terminated_statement"
|
|
|
|
}
|
2017-07-14 23:11:35 +00:00
|
|
|
},
|
|
|
|
{
|
2019-12-10 21:18:29 +00:00
|
|
|
"type": "FIELD",
|
|
|
|
"name": "body",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "do_group"
|
|
|
|
}
|
2017-07-14 19:28:54 +00:00
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
2017-07-14 23:29:28 +00:00
|
|
|
"do_group": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "do"
|
|
|
|
},
|
|
|
|
{
|
2018-10-18 22:29:07 +00:00
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
2019-04-18 22:38:34 +00:00
|
|
|
"name": "_statements2"
|
2018-10-18 22:29:07 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "BLANK"
|
|
|
|
}
|
|
|
|
]
|
2017-07-14 23:29:28 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "done"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
2017-07-14 23:18:46 +00:00
|
|
|
"if_statement": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "if"
|
|
|
|
},
|
|
|
|
{
|
2019-12-10 21:18:29 +00:00
|
|
|
"type": "FIELD",
|
|
|
|
"name": "condition",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_terminated_statement"
|
|
|
|
}
|
2017-07-14 23:18:46 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "then"
|
|
|
|
},
|
|
|
|
{
|
2018-10-18 22:29:07 +00:00
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
2019-04-18 22:38:34 +00:00
|
|
|
"name": "_statements2"
|
2018-10-18 22:29:07 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "BLANK"
|
|
|
|
}
|
|
|
|
]
|
2017-07-14 23:18:46 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "REPEAT",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "elif_clause"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "else_clause"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "BLANK"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "fi"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"elif_clause": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "elif"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_terminated_statement"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "then"
|
|
|
|
},
|
|
|
|
{
|
2018-10-18 22:29:07 +00:00
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
2019-04-18 22:38:34 +00:00
|
|
|
"name": "_statements2"
|
2018-10-18 22:29:07 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "BLANK"
|
|
|
|
}
|
|
|
|
]
|
2017-07-14 23:18:46 +00:00
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"else_clause": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "else"
|
|
|
|
},
|
|
|
|
{
|
2018-10-18 22:29:07 +00:00
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
2019-04-18 22:38:34 +00:00
|
|
|
"name": "_statements2"
|
2018-10-18 22:29:07 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "BLANK"
|
|
|
|
}
|
|
|
|
]
|
2017-07-14 23:18:46 +00:00
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
2017-07-14 23:29:28 +00:00
|
|
|
"case_statement": {
|
2017-07-14 23:11:35 +00:00
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
2017-07-14 23:29:28 +00:00
|
|
|
"value": "case"
|
|
|
|
},
|
|
|
|
{
|
2019-12-10 21:18:29 +00:00
|
|
|
"type": "FIELD",
|
|
|
|
"name": "value",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_literal"
|
|
|
|
}
|
2017-07-14 23:29:28 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
2017-07-16 05:23:38 +00:00
|
|
|
"name": "_terminator"
|
2017-07-14 23:29:28 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "BLANK"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "in"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
2017-07-16 05:23:38 +00:00
|
|
|
"name": "_terminator"
|
2017-07-14 23:11:35 +00:00
|
|
|
},
|
|
|
|
{
|
2018-03-01 00:29:42 +00:00
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "REPEAT",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "case_item"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "ALIAS",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "last_case_item"
|
|
|
|
},
|
|
|
|
"named": true,
|
|
|
|
"value": "case_item"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "BLANK"
|
|
|
|
}
|
|
|
|
]
|
2017-07-14 23:11:35 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
2017-07-14 23:29:28 +00:00
|
|
|
"value": "esac"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"case_item": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
2019-12-10 21:18:29 +00:00
|
|
|
"type": "FIELD",
|
|
|
|
"name": "value",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_literal"
|
|
|
|
}
|
2017-07-14 23:29:28 +00:00
|
|
|
},
|
2017-07-17 17:19:35 +00:00
|
|
|
{
|
|
|
|
"type": "REPEAT",
|
|
|
|
"content": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "|"
|
|
|
|
},
|
|
|
|
{
|
2019-12-10 21:18:29 +00:00
|
|
|
"type": "FIELD",
|
|
|
|
"name": "value",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_literal"
|
|
|
|
}
|
2017-07-17 17:19:35 +00:00
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
},
|
2017-07-14 23:29:28 +00:00
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": ")"
|
|
|
|
},
|
|
|
|
{
|
2018-03-01 22:04:29 +00:00
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
2018-10-18 22:29:07 +00:00
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_statements"
|
2018-03-01 22:04:29 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "BLANK"
|
|
|
|
}
|
|
|
|
]
|
2017-07-14 23:29:28 +00:00
|
|
|
},
|
|
|
|
{
|
2018-03-01 22:04:29 +00:00
|
|
|
"type": "PREC",
|
|
|
|
"value": 1,
|
|
|
|
"content": {
|
2020-05-29 20:09:38 +00:00
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "termination",
|
|
|
|
"content": {
|
|
|
|
"type": "STRING",
|
|
|
|
"value": ";;"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "fallthrough",
|
|
|
|
"content": {
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": ";&"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": ";;&"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
]
|
2018-03-01 22:04:29 +00:00
|
|
|
}
|
2017-07-14 23:11:35 +00:00
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
2018-03-01 00:29:42 +00:00
|
|
|
"last_case_item": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
2019-12-10 21:18:29 +00:00
|
|
|
"type": "FIELD",
|
|
|
|
"name": "value",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_literal"
|
|
|
|
}
|
2018-03-01 00:29:42 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "REPEAT",
|
|
|
|
"content": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "|"
|
|
|
|
},
|
|
|
|
{
|
2019-12-10 21:18:29 +00:00
|
|
|
"type": "FIELD",
|
|
|
|
"name": "value",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_literal"
|
|
|
|
}
|
2018-03-01 00:29:42 +00:00
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": ")"
|
|
|
|
},
|
|
|
|
{
|
2018-03-01 22:04:29 +00:00
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
2018-10-18 22:29:07 +00:00
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_statements"
|
2018-03-01 22:04:29 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "BLANK"
|
|
|
|
}
|
|
|
|
]
|
2018-03-01 00:29:42 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
2018-03-01 22:04:29 +00:00
|
|
|
"type": "PREC",
|
|
|
|
"value": 1,
|
|
|
|
"content": {
|
|
|
|
"type": "STRING",
|
|
|
|
"value": ";;"
|
|
|
|
}
|
2018-03-01 00:29:42 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "BLANK"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
2017-07-15 00:35:51 +00:00
|
|
|
"function_definition": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
2018-02-27 18:54:40 +00:00
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "function"
|
|
|
|
},
|
|
|
|
{
|
2019-12-10 21:18:29 +00:00
|
|
|
"type": "FIELD",
|
|
|
|
"name": "name",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "word"
|
|
|
|
}
|
2018-02-27 18:54:40 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "("
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": ")"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "BLANK"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
]
|
2017-07-15 00:35:51 +00:00
|
|
|
},
|
2017-12-26 22:27:05 +00:00
|
|
|
{
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
2018-02-27 18:54:40 +00:00
|
|
|
{
|
2019-12-10 21:18:29 +00:00
|
|
|
"type": "FIELD",
|
|
|
|
"name": "name",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "word"
|
|
|
|
}
|
2018-02-27 18:54:40 +00:00
|
|
|
},
|
2017-12-26 22:27:05 +00:00
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "("
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": ")"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
]
|
2017-07-15 00:35:51 +00:00
|
|
|
},
|
|
|
|
{
|
2019-12-10 21:18:29 +00:00
|
|
|
"type": "FIELD",
|
|
|
|
"name": "body",
|
|
|
|
"content": {
|
2020-05-15 18:25:46 +00:00
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "compound_statement"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "subshell"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "test_command"
|
|
|
|
}
|
|
|
|
]
|
2019-12-10 21:18:29 +00:00
|
|
|
}
|
2017-07-15 00:35:51 +00:00
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
2017-07-16 05:13:55 +00:00
|
|
|
"compound_statement": {
|
2017-07-15 00:35:51 +00:00
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "{"
|
|
|
|
},
|
|
|
|
{
|
2019-12-10 21:18:29 +00:00
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_statements2"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "BLANK"
|
|
|
|
}
|
|
|
|
]
|
2017-07-15 00:35:51 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "}"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
2017-07-16 05:22:38 +00:00
|
|
|
"subshell": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "("
|
|
|
|
},
|
2017-07-17 17:19:35 +00:00
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
2018-08-06 17:39:05 +00:00
|
|
|
"name": "_statements"
|
2017-07-17 17:19:35 +00:00
|
|
|
},
|
2017-07-16 05:22:38 +00:00
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": ")"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"pipeline": {
|
|
|
|
"type": "PREC_LEFT",
|
|
|
|
"value": 1,
|
|
|
|
"content": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
2017-07-16 05:23:38 +00:00
|
|
|
"name": "_statement"
|
2017-07-16 05:22:38 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "|"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "|&"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
2017-07-16 05:23:38 +00:00
|
|
|
"name": "_statement"
|
2017-07-16 05:22:38 +00:00
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"list": {
|
|
|
|
"type": "PREC_LEFT",
|
2017-07-16 05:41:56 +00:00
|
|
|
"value": -1,
|
2017-07-16 05:22:38 +00:00
|
|
|
"content": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
2017-07-16 05:23:38 +00:00
|
|
|
"name": "_statement"
|
2017-07-16 05:22:38 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "&&"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "||"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
2017-07-16 05:23:38 +00:00
|
|
|
"name": "_statement"
|
2017-07-16 05:22:38 +00:00
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
},
|
2018-05-24 18:46:57 +00:00
|
|
|
"negated_command": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "!"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "command"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "test_command"
|
2018-05-24 22:00:48 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "subshell"
|
2017-07-14 19:28:54 +00:00
|
|
|
}
|
2018-05-24 18:46:57 +00:00
|
|
|
]
|
|
|
|
}
|
|
|
|
]
|
2017-07-17 17:19:35 +00:00
|
|
|
},
|
2018-05-24 18:46:57 +00:00
|
|
|
"test_command": {
|
2018-03-01 18:42:20 +00:00
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "["
|
|
|
|
},
|
|
|
|
{
|
2018-05-24 18:46:57 +00:00
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_expression"
|
2018-03-01 18:42:20 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "]"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "[["
|
|
|
|
},
|
|
|
|
{
|
2018-05-24 18:46:57 +00:00
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_expression"
|
2018-03-01 18:42:20 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "]]"
|
|
|
|
}
|
|
|
|
]
|
2018-10-01 20:29:04 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "(("
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_expression"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "))"
|
|
|
|
}
|
|
|
|
]
|
2018-03-01 18:42:20 +00:00
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
2018-02-27 21:22:28 +00:00
|
|
|
"declaration_command": {
|
2018-03-01 01:32:48 +00:00
|
|
|
"type": "PREC_LEFT",
|
|
|
|
"value": 0,
|
|
|
|
"content": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
2018-02-27 21:22:28 +00:00
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
2018-03-01 01:32:48 +00:00
|
|
|
"type": "STRING",
|
|
|
|
"value": "declare"
|
2018-02-27 18:54:40 +00:00
|
|
|
},
|
|
|
|
{
|
2018-03-01 01:32:48 +00:00
|
|
|
"type": "STRING",
|
|
|
|
"value": "typeset"
|
2018-02-27 21:22:28 +00:00
|
|
|
},
|
|
|
|
{
|
2018-03-01 01:32:48 +00:00
|
|
|
"type": "STRING",
|
|
|
|
"value": "export"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "readonly"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "local"
|
2018-02-27 21:22:28 +00:00
|
|
|
}
|
|
|
|
]
|
2018-03-01 01:32:48 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "REPEAT",
|
|
|
|
"content": {
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
2018-05-24 18:46:57 +00:00
|
|
|
"name": "_literal"
|
2018-03-01 01:32:48 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_simple_variable_name"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "variable_assignment"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
2018-02-27 21:22:28 +00:00
|
|
|
}
|
2018-03-01 01:32:48 +00:00
|
|
|
]
|
|
|
|
}
|
2018-02-24 23:02:24 +00:00
|
|
|
},
|
2018-03-01 18:12:10 +00:00
|
|
|
"unset_command": {
|
|
|
|
"type": "PREC_LEFT",
|
|
|
|
"value": 0,
|
|
|
|
"content": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "unset"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "unsetenv"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "REPEAT",
|
|
|
|
"content": {
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
2018-05-24 18:46:57 +00:00
|
|
|
"name": "_literal"
|
2018-03-01 18:12:10 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_simple_variable_name"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
},
|
2018-05-24 18:46:57 +00:00
|
|
|
"command": {
|
|
|
|
"type": "PREC_LEFT",
|
|
|
|
"value": 0,
|
|
|
|
"content": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "REPEAT",
|
|
|
|
"content": {
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "variable_assignment"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "file_redirect"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
2019-12-10 21:18:29 +00:00
|
|
|
"type": "FIELD",
|
|
|
|
"name": "name",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "command_name"
|
|
|
|
}
|
2018-05-24 18:46:57 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "REPEAT",
|
|
|
|
"content": {
|
2019-12-10 21:18:29 +00:00
|
|
|
"type": "FIELD",
|
|
|
|
"name": "argument",
|
|
|
|
"content": {
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_literal"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "=~"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "=="
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_literal"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "regex"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
2018-05-24 18:46:57 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"command_name": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_literal"
|
|
|
|
},
|
|
|
|
"variable_assignment": {
|
2018-02-24 23:02:24 +00:00
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
2018-05-24 18:46:57 +00:00
|
|
|
{
|
2019-12-10 21:18:29 +00:00
|
|
|
"type": "FIELD",
|
|
|
|
"name": "name",
|
|
|
|
"content": {
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "variable_name"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "subscript"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
2018-05-24 18:46:57 +00:00
|
|
|
},
|
2017-07-16 05:22:38 +00:00
|
|
|
{
|
2017-12-26 22:55:37 +00:00
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "="
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "+="
|
|
|
|
}
|
|
|
|
]
|
2017-07-16 05:22:38 +00:00
|
|
|
},
|
|
|
|
{
|
2019-12-10 21:18:29 +00:00
|
|
|
"type": "FIELD",
|
|
|
|
"name": "value",
|
|
|
|
"content": {
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_literal"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "array"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_empty_value"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
2017-07-16 05:22:38 +00:00
|
|
|
}
|
|
|
|
]
|
2017-07-14 19:28:54 +00:00
|
|
|
},
|
2017-07-17 17:19:35 +00:00
|
|
|
"subscript": {
|
2017-07-15 00:32:55 +00:00
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
2019-12-10 21:18:29 +00:00
|
|
|
"type": "FIELD",
|
|
|
|
"name": "name",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "variable_name"
|
|
|
|
}
|
2017-07-15 00:32:55 +00:00
|
|
|
},
|
|
|
|
{
|
2017-07-17 17:19:35 +00:00
|
|
|
"type": "STRING",
|
|
|
|
"value": "["
|
2017-07-15 00:32:55 +00:00
|
|
|
},
|
|
|
|
{
|
2019-12-10 21:18:29 +00:00
|
|
|
"type": "FIELD",
|
|
|
|
"name": "index",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_literal"
|
|
|
|
}
|
2017-07-17 17:19:35 +00:00
|
|
|
},
|
2018-02-28 19:13:49 +00:00
|
|
|
{
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_concat"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "BLANK"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
2017-07-17 17:19:35 +00:00
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "]"
|
2018-02-28 19:13:49 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_concat"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "BLANK"
|
|
|
|
}
|
|
|
|
]
|
2017-07-15 00:32:55 +00:00
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
2017-07-17 17:19:35 +00:00
|
|
|
"file_redirect": {
|
|
|
|
"type": "PREC_LEFT",
|
|
|
|
"value": 0,
|
|
|
|
"content": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
2019-12-10 21:18:29 +00:00
|
|
|
"type": "FIELD",
|
|
|
|
"name": "descriptor",
|
|
|
|
"content": {
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "file_descriptor"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "BLANK"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
2017-07-17 17:19:35 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "<"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": ">"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": ">>"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "&>"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "&>>"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "<&"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": ">&"
|
2020-05-14 22:48:18 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": ">|"
|
2017-07-17 17:19:35 +00:00
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
2019-12-10 21:18:29 +00:00
|
|
|
"type": "FIELD",
|
|
|
|
"name": "destination",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_literal"
|
|
|
|
}
|
2017-07-17 17:19:35 +00:00
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
},
|
2017-07-16 05:22:38 +00:00
|
|
|
"heredoc_redirect": {
|
2017-07-14 19:28:54 +00:00
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
2017-07-16 05:22:38 +00:00
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "<<"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "<<-"
|
|
|
|
}
|
|
|
|
]
|
2017-07-14 19:28:54 +00:00
|
|
|
},
|
|
|
|
{
|
2017-07-16 05:22:38 +00:00
|
|
|
"type": "SYMBOL",
|
2018-03-29 16:54:05 +00:00
|
|
|
"name": "heredoc_start"
|
2017-07-16 05:22:38 +00:00
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
2018-03-29 16:54:05 +00:00
|
|
|
"heredoc_body": {
|
2017-07-16 05:22:38 +00:00
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
2018-03-29 16:54:05 +00:00
|
|
|
"name": "_simple_heredoc_body"
|
2017-07-14 19:28:54 +00:00
|
|
|
},
|
2017-07-14 23:47:25 +00:00
|
|
|
{
|
2017-07-16 05:22:38 +00:00
|
|
|
"type": "SEQ",
|
2017-07-15 00:41:14 +00:00
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
2018-03-29 16:54:05 +00:00
|
|
|
"name": "_heredoc_body_beginning"
|
2017-07-16 05:22:38 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "REPEAT",
|
|
|
|
"content": {
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "expansion"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "simple_expansion"
|
|
|
|
},
|
2018-10-18 18:24:08 +00:00
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "command_substitution"
|
|
|
|
},
|
2017-07-16 05:22:38 +00:00
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
2018-03-29 16:54:05 +00:00
|
|
|
"name": "_heredoc_body_middle"
|
2017-07-16 05:22:38 +00:00
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
2017-07-15 00:41:14 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
2018-03-29 16:54:05 +00:00
|
|
|
"name": "_heredoc_body_end"
|
2017-07-15 00:41:14 +00:00
|
|
|
}
|
|
|
|
]
|
2017-07-14 23:47:25 +00:00
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
2018-02-28 19:13:49 +00:00
|
|
|
"herestring_redirect": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "<<<"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
2018-05-24 18:46:57 +00:00
|
|
|
"name": "_literal"
|
2018-02-28 19:13:49 +00:00
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
2017-07-16 05:23:38 +00:00
|
|
|
"_expression": {
|
2018-05-24 18:46:57 +00:00
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_literal"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "unary_expression"
|
|
|
|
},
|
2020-05-15 17:50:29 +00:00
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "ternary_expression"
|
|
|
|
},
|
2018-05-24 18:46:57 +00:00
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "binary_expression"
|
|
|
|
},
|
2018-10-01 20:29:04 +00:00
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "postfix_expression"
|
|
|
|
},
|
2018-05-24 18:46:57 +00:00
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "parenthesized_expression"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"binary_expression": {
|
|
|
|
"type": "PREC_LEFT",
|
|
|
|
"value": 0,
|
|
|
|
"content": {
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
2019-12-10 21:18:29 +00:00
|
|
|
"type": "FIELD",
|
|
|
|
"name": "left",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_expression"
|
|
|
|
}
|
2018-05-24 18:46:57 +00:00
|
|
|
},
|
|
|
|
{
|
2019-12-10 21:18:29 +00:00
|
|
|
"type": "FIELD",
|
|
|
|
"name": "operator",
|
|
|
|
"content": {
|
|
|
|
"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": "SYMBOL",
|
|
|
|
"name": "test_operator"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
2018-05-24 18:46:57 +00:00
|
|
|
},
|
|
|
|
{
|
2019-12-10 21:18:29 +00:00
|
|
|
"type": "FIELD",
|
|
|
|
"name": "right",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_expression"
|
|
|
|
}
|
2018-05-24 18:46:57 +00:00
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
2019-12-10 21:18:29 +00:00
|
|
|
"type": "FIELD",
|
|
|
|
"name": "left",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_expression"
|
|
|
|
}
|
2018-05-24 18:46:57 +00:00
|
|
|
},
|
|
|
|
{
|
2019-12-10 21:18:29 +00:00
|
|
|
"type": "FIELD",
|
|
|
|
"name": "operator",
|
|
|
|
"content": {
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "=="
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "=~"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
2018-05-24 18:46:57 +00:00
|
|
|
},
|
|
|
|
{
|
2019-12-10 21:18:29 +00:00
|
|
|
"type": "FIELD",
|
|
|
|
"name": "right",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "regex"
|
|
|
|
}
|
2018-05-24 18:46:57 +00:00
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
},
|
2020-05-15 17:50:29 +00:00
|
|
|
"ternary_expression": {
|
|
|
|
"type": "PREC_LEFT",
|
|
|
|
"value": 0,
|
|
|
|
"content": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "condition",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_expression"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "?"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "consequence",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_expression"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": ":"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "FIELD",
|
|
|
|
"name": "alternative",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_expression"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
},
|
2018-05-24 18:46:57 +00:00
|
|
|
"unary_expression": {
|
|
|
|
"type": "PREC_RIGHT",
|
|
|
|
"value": 0,
|
|
|
|
"content": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "!"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "test_operator"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_expression"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
},
|
2018-10-01 20:29:04 +00:00
|
|
|
"postfix_expression": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_expression"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "++"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "--"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
2018-05-24 18:46:57 +00:00
|
|
|
"parenthesized_expression": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "("
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_expression"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": ")"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"_literal": {
|
2018-02-27 18:54:40 +00:00
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "concatenation"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_primary_expression"
|
2018-02-28 19:13:49 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "ALIAS",
|
|
|
|
"content": {
|
|
|
|
"type": "PREC",
|
|
|
|
"value": -2,
|
|
|
|
"content": {
|
2018-11-04 21:14:13 +00:00
|
|
|
"type": "REPEAT1",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_special_character"
|
|
|
|
}
|
2018-02-28 19:13:49 +00:00
|
|
|
}
|
|
|
|
},
|
|
|
|
"named": true,
|
|
|
|
"value": "word"
|
2018-02-27 18:54:40 +00:00
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
"_primary_expression": {
|
2017-07-14 23:47:25 +00:00
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
2017-07-14 19:28:54 +00:00
|
|
|
{
|
2017-07-16 05:13:55 +00:00
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "word"
|
2017-07-14 23:47:25 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
2017-07-16 05:13:55 +00:00
|
|
|
"name": "string"
|
2017-07-14 23:47:25 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
2017-07-16 05:13:55 +00:00
|
|
|
"name": "raw_string"
|
2017-07-14 23:47:25 +00:00
|
|
|
},
|
2019-07-26 17:29:35 +00:00
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "ansii_c_string"
|
|
|
|
},
|
2017-07-14 23:47:25 +00:00
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
2017-07-16 05:13:55 +00:00
|
|
|
"name": "expansion"
|
2017-07-14 23:47:25 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
2017-07-16 05:13:55 +00:00
|
|
|
"name": "simple_expansion"
|
2017-07-14 23:47:25 +00:00
|
|
|
},
|
2018-03-01 17:54:08 +00:00
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "string_expansion"
|
|
|
|
},
|
2017-07-14 23:47:25 +00:00
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
2017-07-16 05:13:55 +00:00
|
|
|
"name": "command_substitution"
|
2017-07-16 05:22:38 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "process_substitution"
|
2017-07-14 19:28:54 +00:00
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
2017-07-17 17:19:35 +00:00
|
|
|
"concatenation": {
|
|
|
|
"type": "PREC",
|
|
|
|
"value": -1,
|
|
|
|
"content": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
2018-02-28 19:13:49 +00:00
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_primary_expression"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
2018-11-04 21:14:13 +00:00
|
|
|
"name": "_special_character"
|
2018-02-28 19:13:49 +00:00
|
|
|
}
|
|
|
|
]
|
2017-07-17 17:19:35 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "REPEAT1",
|
|
|
|
"content": {
|
2018-02-28 19:13:49 +00:00
|
|
|
"type": "PREC",
|
|
|
|
"value": -1,
|
|
|
|
"content": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_concat"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_primary_expression"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
2018-11-04 21:14:13 +00:00
|
|
|
"name": "_special_character"
|
2018-02-28 19:13:49 +00:00
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
2017-07-17 17:19:35 +00:00
|
|
|
}
|
2018-11-04 23:33:45 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_concat"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "$"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "BLANK"
|
|
|
|
}
|
|
|
|
]
|
2017-07-17 17:19:35 +00:00
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
},
|
2018-11-04 21:14:13 +00:00
|
|
|
"_special_character": {
|
2018-02-28 19:13:49 +00:00
|
|
|
"type": "TOKEN",
|
|
|
|
"content": {
|
|
|
|
"type": "PREC",
|
|
|
|
"value": -1,
|
|
|
|
"content": {
|
2018-11-04 21:14:13 +00:00
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "{"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "}"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "["
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "]"
|
|
|
|
}
|
|
|
|
]
|
2018-02-28 19:13:49 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
2017-07-16 05:13:55 +00:00
|
|
|
"string": {
|
2017-07-14 23:47:25 +00:00
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "\""
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "REPEAT",
|
|
|
|
"content": {
|
2018-02-28 19:13:49 +00:00
|
|
|
"type": "SEQ",
|
2017-07-14 23:47:25 +00:00
|
|
|
"members": [
|
|
|
|
{
|
2018-02-28 19:13:49 +00:00
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
2018-03-01 17:54:08 +00:00
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "$"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "BLANK"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_string_content"
|
|
|
|
}
|
|
|
|
]
|
2018-02-28 19:13:49 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "expansion"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "simple_expansion"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "command_substitution"
|
|
|
|
}
|
|
|
|
]
|
2017-07-14 23:47:25 +00:00
|
|
|
},
|
|
|
|
{
|
2018-02-28 19:13:49 +00:00
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_concat"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "BLANK"
|
|
|
|
}
|
|
|
|
]
|
2017-07-14 23:47:25 +00:00
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
},
|
2018-08-02 23:32:30 +00:00
|
|
|
{
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "$"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "BLANK"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
2017-07-14 23:47:25 +00:00
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "\""
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
2018-02-27 18:54:40 +00:00
|
|
|
"_string_content": {
|
2018-03-01 17:54:08 +00:00
|
|
|
"type": "TOKEN",
|
|
|
|
"content": {
|
|
|
|
"type": "PREC",
|
|
|
|
"value": -1,
|
|
|
|
"content": {
|
|
|
|
"type": "PATTERN",
|
2018-10-18 22:29:07 +00:00
|
|
|
"value": "([^\"`$\\\\]|\\\\(.|\\n))+"
|
2018-03-01 17:54:08 +00:00
|
|
|
}
|
|
|
|
}
|
2018-02-27 18:54:40 +00:00
|
|
|
},
|
2017-07-16 05:41:56 +00:00
|
|
|
"array": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "("
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "REPEAT",
|
|
|
|
"content": {
|
|
|
|
"type": "SYMBOL",
|
2018-05-24 18:46:57 +00:00
|
|
|
"name": "_literal"
|
2017-07-16 05:41:56 +00:00
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": ")"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
2017-07-16 05:13:55 +00:00
|
|
|
"raw_string": {
|
2017-07-14 23:47:25 +00:00
|
|
|
"type": "PATTERN",
|
|
|
|
"value": "'[^']*'"
|
|
|
|
},
|
2019-07-26 17:29:35 +00:00
|
|
|
"ansii_c_string": {
|
|
|
|
"type": "PATTERN",
|
|
|
|
"value": "\\$'([^']|\\\\')*'"
|
|
|
|
},
|
2017-07-16 05:13:55 +00:00
|
|
|
"simple_expansion": {
|
2017-07-14 20:00:41 +00:00
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "$"
|
|
|
|
},
|
|
|
|
{
|
2018-02-28 19:13:49 +00:00
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_simple_variable_name"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_special_variable_name"
|
2018-03-01 01:32:48 +00:00
|
|
|
},
|
2019-04-18 22:46:58 +00:00
|
|
|
{
|
|
|
|
"type": "ALIAS",
|
|
|
|
"content": {
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "!"
|
|
|
|
},
|
|
|
|
"named": true,
|
|
|
|
"value": "special_variable_name"
|
|
|
|
},
|
2018-03-01 01:32:48 +00:00
|
|
|
{
|
|
|
|
"type": "ALIAS",
|
|
|
|
"content": {
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "#"
|
|
|
|
},
|
|
|
|
"named": true,
|
|
|
|
"value": "special_variable_name"
|
2018-02-28 19:13:49 +00:00
|
|
|
}
|
|
|
|
]
|
2017-07-14 20:00:41 +00:00
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
2018-03-01 17:54:08 +00:00
|
|
|
"string_expansion": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "$"
|
|
|
|
},
|
|
|
|
{
|
2018-03-01 22:15:29 +00:00
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "string"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "raw_string"
|
|
|
|
}
|
|
|
|
]
|
2018-03-01 17:54:08 +00:00
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
2017-07-16 05:13:55 +00:00
|
|
|
"expansion": {
|
2017-07-14 20:00:41 +00:00
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "${"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
2017-07-16 06:12:22 +00:00
|
|
|
{
|
2018-08-06 17:42:48 +00:00
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "#"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "!"
|
|
|
|
}
|
|
|
|
]
|
2017-07-16 06:12:22 +00:00
|
|
|
},
|
2017-07-17 17:19:35 +00:00
|
|
|
{
|
2018-02-28 19:13:49 +00:00
|
|
|
"type": "BLANK"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
2017-07-17 17:19:35 +00:00
|
|
|
{
|
2020-05-15 19:32:47 +00:00
|
|
|
"type": "CHOICE",
|
2017-07-14 20:00:41 +00:00
|
|
|
"members": [
|
|
|
|
{
|
2020-05-15 19:32:47 +00:00
|
|
|
"type": "SEQ",
|
2017-07-14 20:00:41 +00:00
|
|
|
"members": [
|
|
|
|
{
|
2018-02-28 19:13:49 +00:00
|
|
|
"type": "SYMBOL",
|
2020-05-15 19:32:47 +00:00
|
|
|
"name": "variable_name"
|
2017-07-15 00:32:55 +00:00
|
|
|
},
|
|
|
|
{
|
2020-05-15 19:32:47 +00:00
|
|
|
"type": "STRING",
|
|
|
|
"value": "="
|
2017-07-17 17:19:35 +00:00
|
|
|
},
|
|
|
|
{
|
2020-05-15 19:32:47 +00:00
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_literal"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "BLANK"
|
|
|
|
}
|
|
|
|
]
|
2017-07-14 20:00:41 +00:00
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
2018-03-01 18:42:20 +00:00
|
|
|
{
|
2020-05-15 19:32:47 +00:00
|
|
|
"type": "SEQ",
|
2018-03-01 18:42:20 +00:00
|
|
|
"members": [
|
|
|
|
{
|
2020-05-15 19:32:47 +00:00
|
|
|
"type": "CHOICE",
|
2018-03-01 18:42:20 +00:00
|
|
|
"members": [
|
|
|
|
{
|
2020-05-15 19:32:47 +00:00
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "subscript"
|
2018-03-01 18:42:20 +00:00
|
|
|
},
|
|
|
|
{
|
2020-05-15 19:32:47 +00:00
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_simple_variable_name"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_special_variable_name"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SEQ",
|
2018-10-01 20:29:04 +00:00
|
|
|
"members": [
|
|
|
|
{
|
2020-05-15 19:32:47 +00:00
|
|
|
"type": "TOKEN",
|
|
|
|
"content": {
|
|
|
|
"type": "PREC",
|
|
|
|
"value": 1,
|
|
|
|
"content": {
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "/"
|
|
|
|
}
|
|
|
|
}
|
2018-10-01 20:29:04 +00:00
|
|
|
},
|
|
|
|
{
|
2020-05-15 19:32:47 +00:00
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "regex"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "BLANK"
|
|
|
|
}
|
|
|
|
]
|
2018-10-01 20:29:04 +00:00
|
|
|
}
|
|
|
|
]
|
2020-05-15 19:32:47 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "BLANK"
|
2018-03-01 18:42:20 +00:00
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
2020-05-15 19:32:47 +00:00
|
|
|
"type": "REPEAT",
|
|
|
|
"content": {
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_literal"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": ":"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": ":?"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "="
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": ":-"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "%"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "-"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "#"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
2018-03-01 18:42:20 +00:00
|
|
|
}
|
|
|
|
]
|
2017-07-14 20:00:41 +00:00
|
|
|
}
|
|
|
|
]
|
2020-05-15 19:32:47 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "BLANK"
|
2017-07-14 20:00:41 +00:00
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "}"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
2017-07-16 05:13:55 +00:00
|
|
|
"command_substitution": {
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "$("
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
2018-08-06 17:39:05 +00:00
|
|
|
"name": "_statements"
|
2017-07-16 05:13:55 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": ")"
|
|
|
|
}
|
|
|
|
]
|
2017-07-14 23:47:25 +00:00
|
|
|
},
|
2018-10-18 22:31:24 +00:00
|
|
|
{
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "$("
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "file_redirect"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": ")"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
2017-07-14 23:47:25 +00:00
|
|
|
{
|
2017-07-16 05:41:56 +00:00
|
|
|
"type": "PREC",
|
|
|
|
"value": 1,
|
|
|
|
"content": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "`"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
2018-08-06 17:39:05 +00:00
|
|
|
"name": "_statements"
|
2017-07-16 05:41:56 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "`"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
2017-07-14 23:47:25 +00:00
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
2017-07-16 05:22:38 +00:00
|
|
|
"process_substitution": {
|
2017-07-14 19:43:42 +00:00
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
2017-07-17 17:19:35 +00:00
|
|
|
"value": "<("
|
2017-07-14 19:43:42 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
2017-07-17 17:19:35 +00:00
|
|
|
"value": ">("
|
2017-07-14 19:43:42 +00:00
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
2017-07-14 20:54:05 +00:00
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
2018-08-06 17:39:05 +00:00
|
|
|
"name": "_statements"
|
2017-07-14 21:27:13 +00:00
|
|
|
},
|
|
|
|
{
|
2017-07-16 05:22:38 +00:00
|
|
|
"type": "STRING",
|
|
|
|
"value": ")"
|
2017-07-14 21:27:13 +00:00
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
2017-07-14 21:34:49 +00:00
|
|
|
"comment": {
|
2017-07-17 17:19:35 +00:00
|
|
|
"type": "TOKEN",
|
|
|
|
"content": {
|
|
|
|
"type": "PREC",
|
2018-03-01 17:54:08 +00:00
|
|
|
"value": -10,
|
2017-07-17 17:19:35 +00:00
|
|
|
"content": {
|
|
|
|
"type": "PATTERN",
|
|
|
|
"value": "#.*"
|
|
|
|
}
|
|
|
|
}
|
2017-07-14 23:29:28 +00:00
|
|
|
},
|
2018-02-27 18:54:40 +00:00
|
|
|
"_simple_variable_name": {
|
|
|
|
"type": "ALIAS",
|
|
|
|
"content": {
|
2018-02-28 19:13:49 +00:00
|
|
|
"type": "PATTERN",
|
|
|
|
"value": "\\w+"
|
2018-02-27 18:54:40 +00:00
|
|
|
},
|
|
|
|
"named": true,
|
|
|
|
"value": "variable_name"
|
|
|
|
},
|
2018-02-28 19:13:49 +00:00
|
|
|
"_special_variable_name": {
|
2018-02-27 18:54:40 +00:00
|
|
|
"type": "ALIAS",
|
|
|
|
"content": {
|
2018-02-28 19:13:49 +00:00
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "*"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "@"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "?"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "-"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "$"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "0"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "_"
|
|
|
|
}
|
|
|
|
]
|
2018-02-27 18:54:40 +00:00
|
|
|
},
|
|
|
|
"named": true,
|
2018-02-28 19:13:49 +00:00
|
|
|
"value": "special_variable_name"
|
2018-02-27 18:54:40 +00:00
|
|
|
},
|
2018-02-28 19:13:49 +00:00
|
|
|
"word": {
|
|
|
|
"type": "TOKEN",
|
|
|
|
"content": {
|
|
|
|
"type": "REPEAT1",
|
|
|
|
"content": {
|
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "PATTERN",
|
2018-03-01 00:29:42 +00:00
|
|
|
"value": "[^'\"<>{}\\[\\]()`$|&;\\\\\\s#]"
|
2018-02-28 19:13:49 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "\\"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "PATTERN",
|
|
|
|
"value": "[^\\s]"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
]
|
2017-07-16 05:13:55 +00:00
|
|
|
}
|
2018-02-28 19:13:49 +00:00
|
|
|
}
|
2017-07-16 05:13:55 +00:00
|
|
|
},
|
2018-05-24 18:46:57 +00:00
|
|
|
"test_operator": {
|
|
|
|
"type": "TOKEN",
|
|
|
|
"content": {
|
|
|
|
"type": "PREC",
|
|
|
|
"value": 1,
|
|
|
|
"content": {
|
|
|
|
"type": "SEQ",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "-"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "PATTERN",
|
|
|
|
"value": "[a-zA-Z]+"
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
2017-07-16 05:23:38 +00:00
|
|
|
"_terminator": {
|
2017-07-14 23:29:28 +00:00
|
|
|
"type": "CHOICE",
|
|
|
|
"members": [
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": ";"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": ";;"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "\n"
|
2017-07-15 00:32:55 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "&"
|
2017-07-14 23:29:28 +00:00
|
|
|
}
|
|
|
|
]
|
2017-07-14 19:28:54 +00:00
|
|
|
}
|
|
|
|
},
|
|
|
|
"extras": [
|
2017-07-14 21:34:49 +00:00
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "comment"
|
|
|
|
},
|
2017-07-14 19:28:54 +00:00
|
|
|
{
|
2018-08-06 18:13:42 +00:00
|
|
|
"type": "PATTERN",
|
|
|
|
"value": "\\\\?\\s"
|
2017-07-14 19:28:54 +00:00
|
|
|
}
|
|
|
|
],
|
|
|
|
"conflicts": [],
|
2021-03-04 22:15:19 +00:00
|
|
|
"precedences": [],
|
2017-07-14 20:54:05 +00:00
|
|
|
"externals": [
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
2018-03-29 16:54:05 +00:00
|
|
|
"name": "heredoc_start"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_simple_heredoc_body"
|
2017-07-14 21:27:13 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
2018-03-29 16:54:05 +00:00
|
|
|
"name": "_heredoc_body_beginning"
|
2017-07-14 21:27:13 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
2018-03-29 16:54:05 +00:00
|
|
|
"name": "_heredoc_body_middle"
|
2017-07-14 21:27:13 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
2018-03-29 16:54:05 +00:00
|
|
|
"name": "_heredoc_body_end"
|
2017-07-15 00:14:23 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "file_descriptor"
|
2017-07-15 00:41:14 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_empty_value"
|
2017-07-16 06:12:22 +00:00
|
|
|
},
|
2017-07-17 17:19:35 +00:00
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "_concat"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "variable_name"
|
|
|
|
},
|
2018-10-01 20:29:04 +00:00
|
|
|
{
|
|
|
|
"type": "SYMBOL",
|
|
|
|
"name": "regex"
|
|
|
|
},
|
2017-07-16 06:12:22 +00:00
|
|
|
{
|
|
|
|
"type": "STRING",
|
2018-02-28 19:13:49 +00:00
|
|
|
"value": "}"
|
2018-02-27 18:54:40 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "]"
|
|
|
|
},
|
2018-10-19 20:06:56 +00:00
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "<<"
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"type": "STRING",
|
|
|
|
"value": "<<-"
|
|
|
|
},
|
2018-02-27 18:54:40 +00:00
|
|
|
{
|
|
|
|
"type": "STRING",
|
2018-02-28 19:13:49 +00:00
|
|
|
"value": "\n"
|
2017-07-14 20:54:05 +00:00
|
|
|
}
|
|
|
|
],
|
2017-07-14 19:28:54 +00:00
|
|
|
"inline": [
|
2017-07-16 05:23:38 +00:00
|
|
|
"_statement",
|
|
|
|
"_terminator",
|
2018-05-24 18:46:57 +00:00
|
|
|
"_literal",
|
2019-04-18 22:38:34 +00:00
|
|
|
"_statements2",
|
2018-02-27 18:54:40 +00:00
|
|
|
"_primary_expression",
|
2018-02-27 18:54:40 +00:00
|
|
|
"_simple_variable_name",
|
2018-02-28 19:13:49 +00:00
|
|
|
"_special_variable_name"
|
2019-06-19 00:00:42 +00:00
|
|
|
],
|
2020-05-14 22:28:42 +00:00
|
|
|
"supertypes": [
|
|
|
|
"_statement",
|
|
|
|
"_expression",
|
|
|
|
"_primary_expression"
|
|
|
|
]
|
2019-04-18 22:25:40 +00:00
|
|
|
}
|
2019-06-19 00:00:42 +00:00
|
|
|
|