X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.scl.compiler%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fcompiler%2Finternal%2Fparsing%2Fparser%2FSCLLexer.flex;h=595c082ca4c70151f946cf37a63353d4a078bd2e;hb=34656219dde2130ecbeedd274ddd83c6df5699e0;hp=0f45c2511b297a3e6575c7a953c6cd5e9f752c34;hpb=78f577368ba4c71ad6fb3d9f16c03c634585cf7b;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/parsing/parser/SCLLexer.flex b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/parsing/parser/SCLLexer.flex index 0f45c2511..595c082ca 100644 --- a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/parsing/parser/SCLLexer.flex +++ b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/parsing/parser/SCLLexer.flex @@ -42,6 +42,9 @@ import gnu.trove.list.array.TIntArrayList; 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_] @@ -100,11 +103,12 @@ char_literal = "'" ([^'\\\ufffd] | "\\" [^\ufffd]) "'" 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); }