|
sentence | --> clause
|
| | directive
|
| | grammar-rule
|
|
clause | --> non-unit-clause
|
| | unit-clause
|
|
directive | --> command
|
| | query
|
|
non-unit-clause | --> head :- goals
|
|
unit-clause | --> head | {where head is not otherwise a sentence}
|
|
command | --> :- goals
|
|
query | --> ?- goals
|
|
head | --> term | {where term is not a number or a variable}
|
|
goals | --> goals , goals
|
| | goals -> goals ; goals
|
| | goals -> goals
|
| | goals ; goals
|
| | goal
|
|
goal | --> term | {where term is not a number and is not otherwise a goals}
|
|
grammar-rule | --> gr-head --> gr-body
|
|
gr-head | --> nonterminal
|
| | nonterminal , terminals
|
|
gr-body | --> gr-body , gr-body
|
| | gr-body ; gr-body
|
| | gr-body -> gr-body ; gr-body
|
| | gr-body -> gr-body
|
| | nonterminal
|
| | terminals
|
| | gr-condition
|
|
nonterminal | --> term | {where term is not a number or variable and is not otherwise a gr-body}
|
|
terminals | --> list | string
|
|
gr-condition | --> { goals }
|