Allow for statements without in clauses

This commit is contained in:
Max Brunsfeld 2018-03-02 10:18:12 -08:00
parent 16b90823a2
commit 68e93bd898
5 changed files with 88666 additions and 88594 deletions

View File

@ -42,6 +42,11 @@ for a in 1 2 $(seq 5 10); do
echo $a
done
for ARG; do
echo $ARG
ARG=''
done
---
(program
@ -51,7 +56,12 @@ done
(word)
(command_substitution (command (command_name (word)) (word) (word)))
(do_group
(command (command_name (word)) (simple_expansion (variable_name))))))
(command (command_name (word)) (simple_expansion (variable_name)))))
(for_statement
(variable_name)
(do_group
(command (command_name (word)) (simple_expansion (variable_name)))
(variable_assignment (variable_name) (raw_string)))))
====================================
If statements

View File

@ -71,8 +71,10 @@ module.exports = grammar({
for_statement: $ => seq(
'for',
$._simple_variable_name,
'in',
repeat1($._expression),
optional(seq(
'in',
repeat1($._expression)
)),
$._terminator,
$.do_group
),

View File

@ -1,9 +1,7 @@
examples/bash-it/plugins/available/git.plugin.bash
examples/bash-it/plugins/available/extract.plugin.bash
examples/bash-it/plugins/available/less-pretty-cat.plugin.bash
examples/bash-it/plugins/available/z_autoenv.plugin.bash
examples/bash-it/plugins/available/sshagent.plugin.bash
examples/bash-it/plugins/available/gif.plugin.bash
examples/bash-it/plugins/available/go.plugin.bash
examples/bash-it/plugins/available/proxy.plugin.bash
examples/bash-it/plugins/available/browser.plugin.bash

31
src/grammar.json vendored
View File

@ -90,15 +90,28 @@
"name": "_simple_variable_name"
},
{
"type": "STRING",
"value": "in"
},
{
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "in"
},
{
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",

177209
src/parser.c vendored

File diff suppressed because it is too large Load Diff