Node:Term Token, Next:Token String, Previous:Sentence, Up:Full Syntax
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 layout-text }
|
| op(N,fy) subterm(N) | { if subterm starts with a ( , op must be followed by layout-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(1000) | ::= subterm(999) , subterm(1000)
| |
term(0) | ::= functor ( arguments ) | { provided there is no layout-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
| ||
| sign inf
| ||
| sign nan
| ||
unsigned-number | ::= natural-number | unsigned-float
| |
atom | ::= name
| |
functor | ::= name
|