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 echo $a
done done
for ARG; do
echo $ARG
ARG=''
done
--- ---
(program (program
@ -51,7 +56,12 @@ done
(word) (word)
(command_substitution (command (command_name (word)) (word) (word))) (command_substitution (command (command_name (word)) (word) (word)))
(do_group (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 If statements

View File

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

View File

@ -1,9 +1,7 @@
examples/bash-it/plugins/available/git.plugin.bash examples/bash-it/plugins/available/git.plugin.bash
examples/bash-it/plugins/available/extract.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/z_autoenv.plugin.bash
examples/bash-it/plugins/available/sshagent.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/go.plugin.bash
examples/bash-it/plugins/available/proxy.plugin.bash examples/bash-it/plugins/available/proxy.plugin.bash
examples/bash-it/plugins/available/browser.plugin.bash examples/bash-it/plugins/available/browser.plugin.bash

13
src/grammar.json vendored
View File

@ -89,6 +89,12 @@
"type": "SYMBOL", "type": "SYMBOL",
"name": "_simple_variable_name" "name": "_simple_variable_name"
}, },
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{ {
"type": "STRING", "type": "STRING",
"value": "in" "value": "in"
@ -99,6 +105,13 @@
"type": "SYMBOL", "type": "SYMBOL",
"name": "_expression" "name": "_expression"
} }
}
]
},
{
"type": "BLANK"
}
]
}, },
{ {
"type": "SYMBOL", "type": "SYMBOL",

177209
src/parser.c vendored

File diff suppressed because it is too large Load Diff