public boolean supportCHR() {
return context.header == null ? false : context.header.chr;
}
+ public boolean supportEDO() {
+ return context.header == null ? false : context.header.edo;
+ }
%}
letter = [a-zA-Z_]
transformation { return sym(supportCHR() ? SCLTerminals.ID : SCLTerminals.TRANSFORMATION); }
select{whitespace}first { return sym(SCLTerminals.SELECT_FIRST); }
select{whitespace}distinct { return sym(SCLTerminals.SELECT_DISTINCT); }
- select { return sym(SCLTerminals.SELECT); }
+ select { return sym(supportCHR() ? SCLTerminals.CHR_SELECT : SCLTerminals.SELECT); }
enforce { return sym(SCLTerminals.ENFORCE); }
do { return sym(SCLTerminals.DO); }
eq { return sym(options.supportEq ? SCLTerminals.EQ : SCLTerminals.ID); }
mdo { return sym(SCLTerminals.MDO); }
+ edo { return sym(supportEDO() ? SCLTerminals.EDO : SCLTerminals.ID); }
class { return sym(SCLTerminals.CLASS); }
effect { return sym(SCLTerminals.EFFECT); }
match { return sym(SCLTerminals.MATCH); }
"." { return sym(SCLTerminals.ATTACHED_DOT, "."); }
"-" { return sym(SCLTerminals.MINUS, "-"); }
// "<" {existentialVar} ">" { yybegin(XML); return sym(SCLTerminals.XML_BEGIN); }
+ "<<" { return sym(SCLTerminals.DOUBLE_LESS, "<<"); }
"<" { return sym(SCLTerminals.LESS, "<"); }
+ ">>" { return sym(SCLTerminals.DOUBLE_GREATER, ">>"); }
">" { return sym(SCLTerminals.GREATER, ">"); }
";" { return sym(SCLTerminals.SEMICOLON); }
"|" { return sym(SCLTerminals.BAR); }