Next: ref-syn-syn-tok, Previous: ref-syn-syn-sen, Up: ref-syn-syn [Contents][Index]
term-read-in | ::= subterm(1200) full stop | |
subterm(N) | ::= term(M) | { where M is less than or equal to N } |
term(N) | ::= op(N,fx) subterm(N-1) | { except in the case of a number if subterm starts with a ‘(’, op must be followed by whitespace-text } |
| op(N,fy) subterm(N) | { if subterm starts with a ‘(’, op must be followed by whitespace-text } | |
| subterm(N-1) op(N,xfx) subterm(N-1) | ||
| subterm(N-1) op(N,xfy) subterm(N) | ||
| subterm(N) op(N,yfx) subterm(N-1) | ||
| subterm(N-1) op(N,xf) | ||
| subterm(N) op(N,yf) | ||
term(1100) | ::= subterm(1099) | subterm(1100) | { term with functor ;/2 unless | is declared infix } |
term(1000) | ::= subterm(999) , subterm(1000) | { term with functor ','/2 } |
term(0) | ::= functor ( arguments ) | { provided there is no whitespace-text between the functor and the ‘(’ } |
| ( subterm(1200) ) | ||
| { subterm(1200) } | ||
| list | ||
| string | ||
| constant | ||
| variable | ||
op(N,T) | ::= name | { where name has been declared as an operator of type T and precedence N } |
arguments | ::= subterm(999) | |
| subterm(999) , arguments | ||
list | ::= [] | |
| [ listexpr ] | ||
listexpr | ::= subterm(999) | |
| subterm(999) , listexpr | ||
| subterm(999) | subterm(999) | ||
constant | ::= atom | number | |
number | ::= unsigned-number | |
| sign unsigned-number | ||
unsigned-number | ::= natural-number | unsigned-float | |
atom | ::= name | |
functor | ::= name |