Read | ::= | ( clause )* <EOF> |
clause | ::= | ( <CLAUSE_NAME> )? ( body )? "--->" ( head )? "." |
body | ::= | ( atom ( "," atom )* ) |
head | ::= | ( atom ( ";" atom )* ) |
atom | ::= | ( <FKT_SYMBOL> ( args )? ( <FKT_SYMBOL> term )? ) |
| | ( <VAR> | <INTEGER> ) <FKT_SYMBOL> term | |
term | ::= | <VAR> |
| | compound | |
| | <INTEGER> | |
compound | ::= | <FKT_SYMBOL> ( args )? |
args | ::= | "(" term ( "," term )* ")" |