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=e1abd5fd3051c509d695cd6626b6c3f40b731df3;hb=refs%2Fchanges%2F32%2F1732%2F1;hp=0aafe287261101a5ac1d099ae9b3c988e223a40b;hpb=82a87b8535628d47d9c381e1a3a2296fb67c7fd0;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 0aafe2872..e1abd5fd3 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_] @@ -105,7 +108,7 @@ char_literal = "'" ([^'\\\ufffd] | "\\" [^\ufffd]) "'" do { return sym(SCLTerminals.DO); } eq { return sym(options.supportEq ? SCLTerminals.EQ : SCLTerminals.ID); } mdo { return sym(SCLTerminals.MDO); } - edo { return sym(SCLTerminals.EDO); } + edo { return sym(supportEDO() ? SCLTerminals.EDO : SCLTerminals.ID); } class { return sym(SCLTerminals.CLASS); } effect { return sym(SCLTerminals.EFFECT); } match { return sym(SCLTerminals.MATCH); } @@ -155,7 +158,9 @@ char_literal = "'" ([^'\\\ufffd] | "\\" [^\ufffd]) "'" "." { 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); }