Complete parser grammar in comment
This commit is contained in:
parent
1978509685
commit
f92cf94abf
1 changed files with 12 additions and 5 deletions
|
@ -4,15 +4,22 @@
|
|||
// @date 2017
|
||||
|
||||
// Grammar:
|
||||
// <prog> ::= `def' <ide> `(' <arguments> `):\\n' <stat-list>
|
||||
//
|
||||
// <arguments> ::= <ide> <more-args> | $\varepsilon$
|
||||
//
|
||||
// <more-args> ::= `,' <ide> <more-args> | $\varepsilon$
|
||||
//
|
||||
// <stat-list> ::= <statement> <stat-list> | <return>
|
||||
//
|
||||
// <statement> ::= <ide> <statement'>
|
||||
// | `if' <expr> <comparator> <expr> `then' <expr> `else' <expr> `fi' <expr'> `==` <expr> `\\n`
|
||||
// | `(' <expr> `)' <term'> <expr'> `==` <expr> `\\n`
|
||||
// | <num> <term'> <expr'> `==` <expr> `\\n`
|
||||
// | `#` <ide> `=` <expr> `\\n`
|
||||
// | `if' <expr> <comparator> <expr> `then' <expr> `else' <expr> `fi' <expr'> `==' <expr> `\\n'
|
||||
// | `(' <expr> `)' <term'> <expr'> `==' <expr> `\\n'
|
||||
// | <num> <term'> <expr'> `==' <expr> `\\n'
|
||||
// | `#' <ide> `=' <expr> `\\n'
|
||||
//
|
||||
// <statement'> ::= `=' <expr> `\\n'
|
||||
// | <term'> <expr'> `==` <expr> `\\n`
|
||||
// | <term'> <expr'> `==' <expr> `\\n'
|
||||
//
|
||||
// <expr> ::= `if' <expr> <comparator> <expr> `then' <expr> `else' <expr> `fi' <expr'>
|
||||
// | `(' <expr> `)' <term'> <expr'>
|
||||
|
|
Loading…
Reference in a new issue