Closed
Description
exportStmt, doBlocks, typeDescK, caseExpr, macroColon, exprColonExpr, indexExprList and moduleName symbols are referred to but not defined in the grammar.
From doc/grammar.txt:
- exportStmt:
simpleStmt = ((returnStmt | raiseStmt | yieldStmt | discardStmt | breakStmt
| continueStmt | pragmaStmt | importStmt | exportStmt | fromStmt
| includeStmt | commentStmt) / exprStmt) COMMENT?
- doBlocks:
primarySuffix = '(' (exprColonEqExpr comma?)* ')' doBlocks?
| doBlocks
| '.' optInd symbol generalizedLit?
| '[' optInd indexExprList optPar ']'
| '{' optInd indexExprList optPar '}'
| &( '`'|IDENT|literal|'cast'|'addr'|'type') expr # command syntax
exprStmt = simpleExpr
(( '=' optInd expr colonBody? )
/ ( expr ^+ comma
doBlocks
/ macroColon
))?
colonBody = colcom stmt doBlocks?
- typeDescK
primary = typeKeyw typeDescK
/ prefixOperator* identOrLiteral primarySuffix*
/ 'bind' primary
- caseExpr:
expr = (blockExpr
| ifExpr
| whenExpr
| caseExpr
| forExpr
| tryExpr)
/ simpleExpr
- macroColon:
exprStmt = simpleExpr
(( '=' optInd expr colonBody? )
/ ( expr ^+ comma
doBlocks
/ macroColon
))?
- exprColonExpr:
pragma = '{.' optInd (exprColonExpr comma?)* optPar ('.}' | '}')
- indexExprList:
primarySuffix = '(' (exprColonEqExpr comma?)* ')' doBlocks?
| doBlocks
| '.' optInd symbol generalizedLit?
| '[' optInd indexExprList optPar ']'
| '{' optInd indexExprList optPar '}'
| &( '`'|IDENT|literal|'cast'|'addr'|'type') expr # command syntax
- moduleName:
fromStmt = 'from' moduleName 'import' optInd expr (comma expr)*