<DEFAULT,LFG> SKIP : { " " | "\t" | "\n" | "\r" | "\f" | <COMMENT: "#" (~["\n","\r"])* ("\n" | "\r" | "\r\n")?> } |
//TOKEN : { < EOL : "\n" | "\r" | "\r\n" > } |
<DEFAULT,LFG> TOKEN : { <Feature: "feature"> | <NonGovernableGF: "NonGovernableGF"> | <NonFunction: "NonFunction"> | <DiscourseFunction: "DiscourseFunction"> | <PRED: "PRED"> | <PLUS: "+"> | <MINUS: "-"> | <HOOK: "?"> } |
<DEFAULT> TOKEN : { <CFGSYMBOL: ~[" ","\t","\r","\n","\f","\'","&","(",")","*",",",":",";","<",">","=","[","]","{","}","|","\u00ac","\u21d2","\u2208","\u2261","-","\u2192"] (~[" ","\t","\r","\n","\f","&","(",")","*",",",":",";","<",">","=","[","]","{","}","|","\u00ac","\u21d2","\u2208","\u2261","-","\u2192"])*> } |
<LFG> TOKEN : { <LFGSYMBOL: (<CHARACTER> | <PLUS> | <MINUS>) (<CHARACTER> | "_" | <HOOK> | <PLUS> | <MINUS>)*> } |
<DEFAULT,LFG> TOKEN : { <#_ESCAPED_CHAR: "\\" ~[]> | <AND: "&"> | <IDENTICALTO: "\u2261"> | <EQ: "=="> | <NE: "!=" | "\u2260"> | <NOT: "\u00ac"> | <ARROW: "\u2192" | "->"> | <LEFTARROW: "\u2190" | "<-"> | <UPARROW: "\u2191" | "^"> | <DOWNARROW: "\u2193" | "!"> | <DARROW: "\u21d2"> | <MEMBERSHIP: "\u2208"> | <SEMICOLON: ";"> | <COMMA: ","> | <VBAR: "|"> | <ASSIGN: "="> | <SINGLEQUOTE: "\'"> | <LBRACKET: "["> | <RBRACKET: "]"> | <LT: "<"> | <GT: ">"> | <#CHARACTER: ["a"-"z","A"-"Z","\u0386"-"\u03ce","0"-"9"]> | <LPAREN: "("> | <RPAREN: ")"> | <LBRACE: "{"> | <RBRACE: "}"> | <STAR: "*"> } |
/** Top level production. */ |
||
Grammar | ::= | ( FeatureDeclarator | NonGGF | MetaCategory | RuleDeclarator | LemmaDeclarator )* <EOF> |
DF | ::= | "DiscourseFunction" <ASSIGN> <LBRACE> ( ( CFGSYMBOL ) ( <COMMA> ( CFGSYMBOL ) )* )? <RBRACE> <SEMICOLON> |
NF | ::= | "NonFunction" <ASSIGN> <LBRACE> ( ( CFGSYMBOL ) ( <COMMA> ( CFGSYMBOL ) )* )? <RBRACE> <SEMICOLON> |
NonGGF | ::= | <NonGovernableGF> <ASSIGN> <LBRACE> ( ( CFGSYMBOL ) ( <COMMA> ( CFGSYMBOL ) )* )? <RBRACE> <SEMICOLON> |
FeatureDeclarator | ::= | <Feature> CFGSYMBOL <ASSIGN> <LBRACE> ( CFGSYMBOL ) ( <COMMA> ( CFGSYMBOL ) )* <RBRACE> <SEMICOLON> |
MetaCategory | ::= | CFGSYMBOL ( <ASSIGN> | <IDENTICALTO> ) <LBRACE> ( CFGSYMBOL ) ( <VBAR> ( CFGSYMBOL ) )* <RBRACE> <SEMICOLON> |
RuleDeclarator | ::= | CFGSYMBOL <ARROW> ( Constituent ( RuleBody )? )+ <SEMICOLON> |
Constituent | ::= | "(" CFGSYMBOL ")" ( "+" )? ( "*" )? ( "?" )? |
| | CFGSYMBOL ( "+" )? ( "*" )? ( "?" )? | |
RuleBody | ::= | "{" ( fNotation <SEMICOLON> ( fNotation <SEMICOLON> )* )? "}" |
fNotation | ::= | ( ( Designator ( ( assignfNotation ) | ( constrainfNotation ( <DARROW> fNotation )? ) ) ) | ( <NOT> Designator constrainfNotation ( <DARROW> fNotation )? ) ) |
constrainfNotation | ::= | ( _constrainfNotation ( <VBAR> Designator _constrainfNotation | <AND> Designator _constrainfNotation )* ) |
_constrainfNotation | ::= | ( ( <EQ> Designator | <NE> Designator )? ) |
assignfNotation | ::= | ( <ASSIGN> ( Designator ) | <MEMBERSHIP> ( Designator ) ) |
offPath | ::= | "(" Designator constrainfNotation ")" |
Designator | ::= | ( arrowDesignator | symbolDesignator | "(" ( ( ( Designator ) ) ( ( Designator ) )* )? ")" ) |
arrowDesignator | ::= | ( <UPARROW> | <DOWNARROW> | <ARROW> | <LEFTARROW> ) |
symbolDesignator | ::= | ( ( LFGSYMBOL ( <STAR> )? ( ":" "(" Designator constrainfNotation ")" )? ) | ( <PRED> ) | ( PredicateValue ) | ( <LBRACE> LFGSYMBOL ( ( "," | "|" ) LFGSYMBOL )* <RBRACE> ( <STAR> )? ( ":" "(" Designator constrainfNotation ")" )? ) ) |
LemmaDeclarator | ::= | CFGSYMBOL CFGSYMBOL CFGSYMBOL ( FSBody )? ( RuleBody )? <SEMICOLON> |
FSBody | ::= | "[" ( ( FS ) ( "," FS )* )? "]" |
FS | ::= | LFGSYMBOL "=" ( LFGSYMBOL | FSBody ) |
| | Predicate | |
Predicate | ::= | <PRED> "=" PredicateValue |
PredicateValue | ::= | "\'" LFGSYMBOL ( "<" ( LFGSYMBOL ( "," LFGSYMBOL )* )? ">" ( LFGSYMBOL ( "," LFGSYMBOL )* )? )? "\'" |
LFGSYMBOL | ::= | ( <LFGSYMBOL> | <PLUS> | <MINUS> | <HOOK> ) |
CFGSYMBOL | ::= | ( <CFGSYMBOL> ) |