Parse regular `for` with body in curly braces

Fixes #1694
This commit is contained in:
gabriele.lana 2019-10-26 15:41:46 +02:00
parent 60f75e5b8a
commit 30c75340e6
1 changed files with 2 additions and 2 deletions

View File

@ -2448,6 +2448,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"
@ -2487,7 +2488,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"
@ -3431,4 +3432,3 @@ tryWithErrors parser = do
return [] return []
runTests = $quickCheckAll runTests = $quickCheckAll