Merge pull request #1734 from gabrielelana/braced-regular-for

Parse regular `for` with body in curly braces
This commit is contained in:
Vidar Holen 2019-11-15 20:59:51 -08:00 committed by GitHub
commit 989ac32625
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 2 additions and 2 deletions

View File

@ -2454,6 +2454,7 @@ readDoGroup kwId = do
prop_readForClause = isOk readForClause "for f in *; do rm \"$f\"; done" prop_readForClause = isOk readForClause "for f in *; do rm \"$f\"; done"
prop_readForClause1 = isOk readForClause "for f in *; { rm \"$f\"; }"
prop_readForClause3 = isOk readForClause "for f; do foo; done" prop_readForClause3 = isOk readForClause "for f; do foo; done"
prop_readForClause4 = isOk readForClause "for((i=0; i<10; i++)); do echo $i; done" prop_readForClause4 = isOk readForClause "for((i=0; i<10; i++)); do echo $i; done"
prop_readForClause5 = isOk readForClause "for ((i=0;i<10 && n>x;i++,--n))\ndo \necho $i\ndone" prop_readForClause5 = isOk readForClause "for ((i=0;i<10 && n>x;i++,--n))\ndo \necho $i\ndone"
@ -2493,7 +2494,7 @@ readForClause = called "for loop" $ do
"Don't use $ on the iterator name in for loops." "Don't use $ on the iterator name in for loops."
name <- readVariableName `thenSkip` allspacing name <- readVariableName `thenSkip` allspacing
values <- readInClause <|> (optional readSequentialSep >> return []) values <- readInClause <|> (optional readSequentialSep >> return [])
group <- readDoGroup id group <- readBraced <|> readDoGroup id
return $ T_ForIn id name values group return $ T_ForIn id name values group
prop_readSelectClause1 = isOk readSelectClause "select foo in *; do echo $foo; done" prop_readSelectClause1 = isOk readSelectClause "select foo in *; do echo $foo; done"
@ -3437,4 +3438,3 @@ tryWithErrors parser = do
return [] return []
runTests = $quickCheckAll runTests = $quickCheckAll