| Goal | ::= | ( Query )* ( InterfaceDeclaration )* <EOF> |
| Query | ::= | Identifier "<=" Identifier "?" |
| InterfaceDeclaration | ::= | "interface" Identifier InterfaceBody |
| InterfaceBody | ::= | "{" ( InterfaceMember )* "}" |
| InterfaceMember | ::= | ResultType Identifier "(" Type Identifier ")" ";" |
| Type | ::= | BooleanType |
| | | IntegerType | |
| | | Identifier | |
| BooleanType | ::= | "boolean" |
| IntegerType | ::= | "int" |
| ResultType | ::= | VoidType |
| | | Type | |
| VoidType | ::= | "void" |
| Identifier | ::= | <IDENTIFIER> |