- program → declist | ε
- declist → declist dec | dec
- dec → vardec | funcdec
- vardec → var type-id vardecid [= simpleexpr] ;
- vardecid → ID | ID [ NUMCONST ]
- funcdec → def ID ( paramlist| ε ) type-id { locvardecList stmtlist }
- paramlist → paramlist , paramt | paramt
- paramt → type-id ID
- stmt → exprstmt | compoundstmt | ifstmt | whilestmt | forstmt | returnstmt | breakstmt
- compoundstmt→ { locvardecList stmtlist }
- locvardecList → locvardecList locvardec | locvardec
- locvardec → var type-id vardecid [= simpleexpr] ;
- stmtlist → stmtlist stmt | ε
- exprstmt → exprlist ; | ;
- ifstmt → if ( exprlist ) stmt [ else stmt ]
- whilestmt → while ( exprlist ) stmt
- forstmt → for ( exprlist ; exprlist ; exprlist ) stmt
- returnstmt → return ; | return exprlist ;
- breakstmt → break ;
- exprlist → exprlist , expr | expr
- expr → assignexpr | simpleexpr
- assignexpr → $ mutable = expr
- simpleexpr → simpleexpr | andexpr | andexpr
- andexpr → andexpr & unaryRelExpr | unaryRelExpr
- unaryRelExpr → ! relExpr | relExpr
- relExpr → sumExpr relop sumExpr | sumExpr
- relop → <= | < | > | >= | == | !=
- sumExpr → sumExpr sumop term | term
- sumop → + | −
- term → term mulop unaryexpr | unaryexpr
- mulop → '*' | / | %
- unaryexpr → [−] factor
- factor → immutable | mutables
- mutable → ID
- immutable → ( expr | ε ) | call | NUMCONST | CHARCONST | STRINGCONST | true | false
- call → [ arglist ] ID
- arglist → arglist ',' expr | expr
-
Notifications
You must be signed in to change notification settings - Fork 0
goldknife6/cs
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|