]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.graph.compiler/src/org/simantics/graph/compiler/internal/parsing/GraphLexer.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.graph.compiler / src / org / simantics / graph / compiler / internal / parsing / GraphLexer.java
diff --git a/bundles/org.simantics.graph.compiler/src/org/simantics/graph/compiler/internal/parsing/GraphLexer.java b/bundles/org.simantics.graph.compiler/src/org/simantics/graph/compiler/internal/parsing/GraphLexer.java
new file mode 100644 (file)
index 0000000..98a10ec
--- /dev/null
@@ -0,0 +1,2474 @@
+// $ANTLR 3.3 Nov 30, 2010 12:50:56 src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g 2011-12-19 14:53:14\r
+ package org.simantics.graph.compiler.internal.parsing; \r
+\r
+import gnu.trove.list.array.*;\r
+\r
+\r
+import org.antlr.runtime.*;\r
+import java.util.Stack;\r
+import java.util.List;\r
+import java.util.ArrayList;\r
+\r
+@SuppressWarnings({"unused", "unchecked", "rawtypes"})\r
+public class GraphLexer extends Lexer {\r
+    public static final int EOF=-1;\r
+    public static final int T__65=65;\r
+    public static final int T__66=66;\r
+    public static final int T__67=67;\r
+    public static final int T__68=68;\r
+    public static final int T__69=69;\r
+    public static final int T__70=70;\r
+    public static final int T__71=71;\r
+    public static final int T__72=72;\r
+    public static final int T__73=73;\r
+    public static final int T__74=74;\r
+    public static final int T__75=75;\r
+    public static final int T__76=76;\r
+    public static final int T__77=77;\r
+    public static final int T__78=78;\r
+    public static final int T__79=79;\r
+    public static final int T__80=80;\r
+    public static final int INDENT=4;\r
+    public static final int DEDENT=5;\r
+    public static final int FILE=6;\r
+    public static final int RESOURCE=7;\r
+    public static final int PROPERTY=8;\r
+    public static final int VARIABLE=9;\r
+    public static final int EMBEDDED_VALUE=10;\r
+    public static final int EMBEDDED_TYPE=11;\r
+    public static final int TEMPLATE_INSTANCE=12;\r
+    public static final int TEMPLATE_DEFINITION=13;\r
+    public static final int BLANK=14;\r
+    public static final int REF=15;\r
+    public static final int EQUALS=16;\r
+    public static final int INSTANCE_OF=17;\r
+    public static final int INHERITS=18;\r
+    public static final int SUBRELATION_OF=19;\r
+    public static final int HAS_DOMAIN=20;\r
+    public static final int HAS_RANGE=21;\r
+    public static final int DOMAIN_OF=22;\r
+    public static final int REQUIRES_VALUE_TYPE=23;\r
+    public static final int TYPE_DEFINITIONS=24;\r
+    public static final int TYPE_DEFINITION=25;\r
+    public static final int UNION_TYPE=26;\r
+    public static final int RECORD_TYPE=27;\r
+    public static final int TUPLE_TYPE=28;\r
+    public static final int ARRAY_TYPE=29;\r
+    public static final int TYPE_REFERENCE=30;\r
+    public static final int TYPE_ANNOTATION=31;\r
+    public static final int TYPE_COMPONENT=32;\r
+    public static final int VALUE_DEFINITIONS=33;\r
+    public static final int VALUE_DEFINITION=34;\r
+    public static final int NO_VALUE=35;\r
+    public static final int VARIANT=36;\r
+    public static final int ARRAY=37;\r
+    public static final int TUPLE=38;\r
+    public static final int TAGGED_VALUE=39;\r
+    public static final int RECORD=40;\r
+    public static final int MAP=41;\r
+    public static final int ASSIGNMENT=42;\r
+    public static final int TRUE=43;\r
+    public static final int FALSE=44;\r
+    public static final int ID=45;\r
+    public static final int COMMENT=46;\r
+    public static final int WS=47;\r
+    public static final int LPAREN=48;\r
+    public static final int RPAREN=49;\r
+    public static final int LBRACKET=50;\r
+    public static final int RBRACKET=51;\r
+    public static final int LCURLY=52;\r
+    public static final int RCURLY=53;\r
+    public static final int INT=54;\r
+    public static final int INT_RANGE=55;\r
+    public static final int FLOAT=56;\r
+    public static final int RANGE=57;\r
+    public static final int NEWLINE=58;\r
+    public static final int EXPONENT=59;\r
+    public static final int ESC_SEQ=60;\r
+    public static final int STRING=61;\r
+    public static final int URI=62;\r
+    public static final int HEX_DIGIT=63;\r
+    public static final int UNICODE_ESC=64;\r
+\r
+    int inParen = 0;\r
+\r
+    TIntArrayList iStack = new TIntArrayList();\r
+    { iStack.add(0); }\r
+\r
+    List tokens = new ArrayList();\r
+    public void emit(Token token) {\r
+        state.token = token;\r
+        tokens.add(token);\r
+    }\r
+    public Token nextToken() {\r
+        if(tokens.isEmpty()) {\r
+            super.nextToken();\r
+            if ( tokens.isEmpty() ) {\r
+                /* When end-of-file is encountered, we \r
+                   emit balancing number of DEDENT tokens.\r
+                */\r
+                if(iStack.size() <= 1)\r
+                    return Token.EOF_TOKEN;\r
+                else {                \r
+                    while(iStack.size() > 1) {\r
+                        iStack.removeAt(iStack.size()-1);\r
+                        state.type = DEDENT;\r
+                        emit();\r
+                    }\r
+                    iStack.clear();\r
+                }\r
+            } \r
+        }\r
+        return (Token)tokens.remove(0);\r
+    }\r
+\r
+\r
+\r
+    // delegates\r
+    // delegators\r
+\r
+    public GraphLexer() {;} \r
+    public GraphLexer(CharStream input) {\r
+        this(input, new RecognizerSharedState());\r
+    }\r
+    public GraphLexer(CharStream input, RecognizerSharedState state) {\r
+        super(input,state);\r
+\r
+    }\r
+    public String getGrammarFileName() { return "src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g"; }\r
+\r
+    // $ANTLR start "T__65"\r
+    public final void mT__65() throws RecognitionException {\r
+        try {\r
+            int _type = T__65;\r
+            int _channel = DEFAULT_TOKEN_CHANNEL;\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:46:7: ( '@' )\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:46:9: '@'\r
+            {\r
+            match('@'); \r
+\r
+            }\r
+\r
+            state.type = _type;\r
+            state.channel = _channel;\r
+        }\r
+        finally {\r
+        }\r
+    }\r
+    // $ANTLR end "T__65"\r
+\r
+    // $ANTLR start "T__66"\r
+    public final void mT__66() throws RecognitionException {\r
+        try {\r
+            int _type = T__66;\r
+            int _channel = DEFAULT_TOKEN_CHANNEL;\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:47:7: ( '.' )\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:47:9: '.'\r
+            {\r
+            match('.'); \r
+\r
+            }\r
+\r
+            state.type = _type;\r
+            state.channel = _channel;\r
+        }\r
+        finally {\r
+        }\r
+    }\r
+    // $ANTLR end "T__66"\r
+\r
+    // $ANTLR start "T__67"\r
+    public final void mT__67() throws RecognitionException {\r
+        try {\r
+            int _type = T__67;\r
+            int _channel = DEFAULT_TOKEN_CHANNEL;\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:48:7: ( '<T' )\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:48:9: '<T'\r
+            {\r
+            match("<T"); \r
+\r
+\r
+            }\r
+\r
+            state.type = _type;\r
+            state.channel = _channel;\r
+        }\r
+        finally {\r
+        }\r
+    }\r
+    // $ANTLR end "T__67"\r
+\r
+    // $ANTLR start "T__68"\r
+    public final void mT__68() throws RecognitionException {\r
+        try {\r
+            int _type = T__68;\r
+            int _channel = DEFAULT_TOKEN_CHANNEL;\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:49:7: ( '<R' )\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:49:9: '<R'\r
+            {\r
+            match("<R"); \r
+\r
+\r
+            }\r
+\r
+            state.type = _type;\r
+            state.channel = _channel;\r
+        }\r
+        finally {\r
+        }\r
+    }\r
+    // $ANTLR end "T__68"\r
+\r
+    // $ANTLR start "T__69"\r
+    public final void mT__69() throws RecognitionException {\r
+        try {\r
+            int _type = T__69;\r
+            int _channel = DEFAULT_TOKEN_CHANNEL;\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:50:7: ( '<--' )\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:50:9: '<--'\r
+            {\r
+            match("<--"); \r
+\r
+\r
+            }\r
+\r
+            state.type = _type;\r
+            state.channel = _channel;\r
+        }\r
+        finally {\r
+        }\r
+    }\r
+    // $ANTLR end "T__69"\r
+\r
+    // $ANTLR start "T__70"\r
+    public final void mT__70() throws RecognitionException {\r
+        try {\r
+            int _type = T__70;\r
+            int _channel = DEFAULT_TOKEN_CHANNEL;\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:51:7: ( '-->' )\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:51:9: '-->'\r
+            {\r
+            match("-->"); \r
+\r
+\r
+            }\r
+\r
+            state.type = _type;\r
+            state.channel = _channel;\r
+        }\r
+        finally {\r
+        }\r
+    }\r
+    // $ANTLR end "T__70"\r
+\r
+    // $ANTLR start "T__71"\r
+    public final void mT__71() throws RecognitionException {\r
+        try {\r
+            int _type = T__71;\r
+            int _channel = DEFAULT_TOKEN_CHANNEL;\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:52:7: ( '==>' )\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:52:9: '==>'\r
+            {\r
+            match("==>"); \r
+\r
+\r
+            }\r
+\r
+            state.type = _type;\r
+            state.channel = _channel;\r
+        }\r
+        finally {\r
+        }\r
+    }\r
+    // $ANTLR end "T__71"\r
+\r
+    // $ANTLR start "T__72"\r
+    public final void mT__72() throws RecognitionException {\r
+        try {\r
+            int _type = T__72;\r
+            int _channel = DEFAULT_TOKEN_CHANNEL;\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:53:7: ( '>--' )\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:53:9: '>--'\r
+            {\r
+            match(">--"); \r
+\r
+\r
+            }\r
+\r
+            state.type = _type;\r
+            state.channel = _channel;\r
+        }\r
+        finally {\r
+        }\r
+    }\r
+    // $ANTLR end "T__72"\r
+\r
+    // $ANTLR start "T__73"\r
+    public final void mT__73() throws RecognitionException {\r
+        try {\r
+            int _type = T__73;\r
+            int _channel = DEFAULT_TOKEN_CHANNEL;\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:54:7: ( ':' )\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:54:9: ':'\r
+            {\r
+            match(':'); \r
+\r
+            }\r
+\r
+            state.type = _type;\r
+            state.channel = _channel;\r
+        }\r
+        finally {\r
+        }\r
+    }\r
+    // $ANTLR end "T__73"\r
+\r
+    // $ANTLR start "T__74"\r
+    public final void mT__74() throws RecognitionException {\r
+        try {\r
+            int _type = T__74;\r
+            int _channel = DEFAULT_TOKEN_CHANNEL;\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:55:7: ( '=' )\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:55:9: '='\r
+            {\r
+            match('='); \r
+\r
+            }\r
+\r
+            state.type = _type;\r
+            state.channel = _channel;\r
+        }\r
+        finally {\r
+        }\r
+    }\r
+    // $ANTLR end "T__74"\r
+\r
+    // $ANTLR start "T__75"\r
+    public final void mT__75() throws RecognitionException {\r
+        try {\r
+            int _type = T__75;\r
+            int _channel = DEFAULT_TOKEN_CHANNEL;\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:56:7: ( '%' )\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:56:9: '%'\r
+            {\r
+            match('%'); \r
+\r
+            }\r
+\r
+            state.type = _type;\r
+            state.channel = _channel;\r
+        }\r
+        finally {\r
+        }\r
+    }\r
+    // $ANTLR end "T__75"\r
+\r
+    // $ANTLR start "T__76"\r
+    public final void mT__76() throws RecognitionException {\r
+        try {\r
+            int _type = T__76;\r
+            int _channel = DEFAULT_TOKEN_CHANNEL;\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:57:7: ( '$' )\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:57:9: '$'\r
+            {\r
+            match('$'); \r
+\r
+            }\r
+\r
+            state.type = _type;\r
+            state.channel = _channel;\r
+        }\r
+        finally {\r
+        }\r
+    }\r
+    // $ANTLR end "T__76"\r
+\r
+    // $ANTLR start "T__77"\r
+    public final void mT__77() throws RecognitionException {\r
+        try {\r
+            int _type = T__77;\r
+            int _channel = DEFAULT_TOKEN_CHANNEL;\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:58:7: ( '|' )\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:58:9: '|'\r
+            {\r
+            match('|'); \r
+\r
+            }\r
+\r
+            state.type = _type;\r
+            state.channel = _channel;\r
+        }\r
+        finally {\r
+        }\r
+    }\r
+    // $ANTLR end "T__77"\r
+\r
+    // $ANTLR start "T__78"\r
+    public final void mT__78() throws RecognitionException {\r
+        try {\r
+            int _type = T__78;\r
+            int _channel = DEFAULT_TOKEN_CHANNEL;\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:59:7: ( ',' )\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:59:9: ','\r
+            {\r
+            match(','); \r
+\r
+            }\r
+\r
+            state.type = _type;\r
+            state.channel = _channel;\r
+        }\r
+        finally {\r
+        }\r
+    }\r
+    // $ANTLR end "T__78"\r
+\r
+    // $ANTLR start "T__79"\r
+    public final void mT__79() throws RecognitionException {\r
+        try {\r
+            int _type = T__79;\r
+            int _channel = DEFAULT_TOKEN_CHANNEL;\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:60:7: ( 'true' )\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:60:9: 'true'\r
+            {\r
+            match("true"); \r
+\r
+\r
+            }\r
+\r
+            state.type = _type;\r
+            state.channel = _channel;\r
+        }\r
+        finally {\r
+        }\r
+    }\r
+    // $ANTLR end "T__79"\r
+\r
+    // $ANTLR start "T__80"\r
+    public final void mT__80() throws RecognitionException {\r
+        try {\r
+            int _type = T__80;\r
+            int _channel = DEFAULT_TOKEN_CHANNEL;\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:61:7: ( 'false' )\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:61:9: 'false'\r
+            {\r
+            match("false"); \r
+\r
+\r
+            }\r
+\r
+            state.type = _type;\r
+            state.channel = _channel;\r
+        }\r
+        finally {\r
+        }\r
+    }\r
+    // $ANTLR end "T__80"\r
+\r
+    // $ANTLR start "ID"\r
+    public final void mID() throws RecognitionException {\r
+        try {\r
+            int _type = ID;\r
+            int _channel = DEFAULT_TOKEN_CHANNEL;\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:108:5: ( ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' )* )\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:108:7: ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' )*\r
+            {\r
+            if ( (input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {\r
+                input.consume();\r
+\r
+            }\r
+            else {\r
+                MismatchedSetException mse = new MismatchedSetException(null,input);\r
+                recover(mse);\r
+                throw mse;}\r
+\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:108:31: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' )*\r
+            loop1:\r
+            do {\r
+                int alt1=2;\r
+                int LA1_0 = input.LA(1);\r
+\r
+                if ( ((LA1_0>='0' && LA1_0<='9')||(LA1_0>='A' && LA1_0<='Z')||LA1_0=='_'||(LA1_0>='a' && LA1_0<='z')) ) {\r
+                    alt1=1;\r
+                }\r
+\r
+\r
+                switch (alt1) {\r
+               case 1 :\r
+                   // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:\r
+                   {\r
+                   if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) {\r
+                       input.consume();\r
+\r
+                   }\r
+                   else {\r
+                       MismatchedSetException mse = new MismatchedSetException(null,input);\r
+                       recover(mse);\r
+                       throw mse;}\r
+\r
+\r
+                   }\r
+                   break;\r
+\r
+               default :\r
+                   break loop1;\r
+                }\r
+            } while (true);\r
+\r
+\r
+            }\r
+\r
+            state.type = _type;\r
+            state.channel = _channel;\r
+        }\r
+        finally {\r
+        }\r
+    }\r
+    // $ANTLR end "ID"\r
+\r
+    // $ANTLR start "COMMENT"\r
+    public final void mCOMMENT() throws RecognitionException {\r
+        try {\r
+            int _type = COMMENT;\r
+            int _channel = DEFAULT_TOKEN_CHANNEL;\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:112:5: ( '//' (~ ( '\\n' ) )* | '/*' ( options {greedy=false; } : . )* '*/' )\r
+            int alt4=2;\r
+            int LA4_0 = input.LA(1);\r
+\r
+            if ( (LA4_0=='/') ) {\r
+                int LA4_1 = input.LA(2);\r
+\r
+                if ( (LA4_1=='/') ) {\r
+                    alt4=1;\r
+                }\r
+                else if ( (LA4_1=='*') ) {\r
+                    alt4=2;\r
+                }\r
+                else {\r
+                    NoViableAltException nvae =\r
+                        new NoViableAltException("", 4, 1, input);\r
+\r
+                    throw nvae;\r
+                }\r
+            }\r
+            else {\r
+                NoViableAltException nvae =\r
+                    new NoViableAltException("", 4, 0, input);\r
+\r
+                throw nvae;\r
+            }\r
+            switch (alt4) {\r
+                case 1 :\r
+                    // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:112:9: '//' (~ ( '\\n' ) )*\r
+                    {\r
+                    match("//"); \r
+\r
+                    // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:112:14: (~ ( '\\n' ) )*\r
+                    loop2:\r
+                    do {\r
+                        int alt2=2;\r
+                        int LA2_0 = input.LA(1);\r
+\r
+                        if ( ((LA2_0>='\u0000' && LA2_0<='\t')||(LA2_0>='\u000B' && LA2_0<='\uFFFF')) ) {\r
+                            alt2=1;\r
+                        }\r
+\r
+\r
+                        switch (alt2) {\r
+                       case 1 :\r
+                           // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:112:14: ~ ( '\\n' )\r
+                           {\r
+                           if ( (input.LA(1)>='\u0000' && input.LA(1)<='\t')||(input.LA(1)>='\u000B' && input.LA(1)<='\uFFFF') ) {\r
+                               input.consume();\r
+\r
+                           }\r
+                           else {\r
+                               MismatchedSetException mse = new MismatchedSetException(null,input);\r
+                               recover(mse);\r
+                               throw mse;}\r
+\r
+\r
+                           }\r
+                           break;\r
+\r
+                       default :\r
+                           break loop2;\r
+                        }\r
+                    } while (true);\r
+\r
+                    _channel=HIDDEN;\r
+\r
+                    }\r
+                    break;\r
+                case 2 :\r
+                    // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:113:9: '/*' ( options {greedy=false; } : . )* '*/'\r
+                    {\r
+                    match("/*"); \r
+\r
+                    // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:113:14: ( options {greedy=false; } : . )*\r
+                    loop3:\r
+                    do {\r
+                        int alt3=2;\r
+                        int LA3_0 = input.LA(1);\r
+\r
+                        if ( (LA3_0=='*') ) {\r
+                            int LA3_1 = input.LA(2);\r
+\r
+                            if ( (LA3_1=='/') ) {\r
+                                alt3=2;\r
+                            }\r
+                            else if ( ((LA3_1>='\u0000' && LA3_1<='.')||(LA3_1>='0' && LA3_1<='\uFFFF')) ) {\r
+                                alt3=1;\r
+                            }\r
+\r
+\r
+                        }\r
+                        else if ( ((LA3_0>='\u0000' && LA3_0<=')')||(LA3_0>='+' && LA3_0<='\uFFFF')) ) {\r
+                            alt3=1;\r
+                        }\r
+\r
+\r
+                        switch (alt3) {\r
+                       case 1 :\r
+                           // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:113:42: .\r
+                           {\r
+                           matchAny(); \r
+\r
+                           }\r
+                           break;\r
+\r
+                       default :\r
+                           break loop3;\r
+                        }\r
+                    } while (true);\r
+\r
+                    match("*/"); \r
+\r
+                    _channel=HIDDEN;\r
+\r
+                    }\r
+                    break;\r
+\r
+            }\r
+            state.type = _type;\r
+            state.channel = _channel;\r
+        }\r
+        finally {\r
+        }\r
+    }\r
+    // $ANTLR end "COMMENT"\r
+\r
+    // $ANTLR start "WS"\r
+    public final void mWS() throws RecognitionException {\r
+        try {\r
+            int _type = WS;\r
+            int _channel = DEFAULT_TOKEN_CHANNEL;\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:116:5: ( ( ' ' | '\\t' | '\\r' ) )\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:116:7: ( ' ' | '\\t' | '\\r' )\r
+            {\r
+            if ( input.LA(1)=='\t'||input.LA(1)=='\r'||input.LA(1)==' ' ) {\r
+                input.consume();\r
+\r
+            }\r
+            else {\r
+                MismatchedSetException mse = new MismatchedSetException(null,input);\r
+                recover(mse);\r
+                throw mse;}\r
+\r
+            _channel=HIDDEN;\r
+\r
+            }\r
+\r
+            state.type = _type;\r
+            state.channel = _channel;\r
+        }\r
+        finally {\r
+        }\r
+    }\r
+    // $ANTLR end "WS"\r
+\r
+    // $ANTLR start "LPAREN"\r
+    public final void mLPAREN() throws RecognitionException {\r
+        try {\r
+            int _type = LPAREN;\r
+            int _channel = DEFAULT_TOKEN_CHANNEL;\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:122:11: ( '(' )\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:122:13: '('\r
+            {\r
+            match('('); \r
+             ++ inParen; \r
+\r
+            }\r
+\r
+            state.type = _type;\r
+            state.channel = _channel;\r
+        }\r
+        finally {\r
+        }\r
+    }\r
+    // $ANTLR end "LPAREN"\r
+\r
+    // $ANTLR start "RPAREN"\r
+    public final void mRPAREN() throws RecognitionException {\r
+        try {\r
+            int _type = RPAREN;\r
+            int _channel = DEFAULT_TOKEN_CHANNEL;\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:123:11: ( ')' )\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:123:13: ')'\r
+            {\r
+            match(')'); \r
+             -- inParen; \r
+\r
+            }\r
+\r
+            state.type = _type;\r
+            state.channel = _channel;\r
+        }\r
+        finally {\r
+        }\r
+    }\r
+    // $ANTLR end "RPAREN"\r
+\r
+    // $ANTLR start "LBRACKET"\r
+    public final void mLBRACKET() throws RecognitionException {\r
+        try {\r
+            int _type = LBRACKET;\r
+            int _channel = DEFAULT_TOKEN_CHANNEL;\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:124:11: ( '[' )\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:124:13: '['\r
+            {\r
+            match('['); \r
+             ++ inParen; \r
+\r
+            }\r
+\r
+            state.type = _type;\r
+            state.channel = _channel;\r
+        }\r
+        finally {\r
+        }\r
+    }\r
+    // $ANTLR end "LBRACKET"\r
+\r
+    // $ANTLR start "RBRACKET"\r
+    public final void mRBRACKET() throws RecognitionException {\r
+        try {\r
+            int _type = RBRACKET;\r
+            int _channel = DEFAULT_TOKEN_CHANNEL;\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:125:11: ( ']' )\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:125:13: ']'\r
+            {\r
+            match(']'); \r
+             -- inParen; \r
+\r
+            }\r
+\r
+            state.type = _type;\r
+            state.channel = _channel;\r
+        }\r
+        finally {\r
+        }\r
+    }\r
+    // $ANTLR end "RBRACKET"\r
+\r
+    // $ANTLR start "LCURLY"\r
+    public final void mLCURLY() throws RecognitionException {\r
+        try {\r
+            int _type = LCURLY;\r
+            int _channel = DEFAULT_TOKEN_CHANNEL;\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:126:11: ( '{' )\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:126:13: '{'\r
+            {\r
+            match('{'); \r
+             ++ inParen; \r
+\r
+            }\r
+\r
+            state.type = _type;\r
+            state.channel = _channel;\r
+        }\r
+        finally {\r
+        }\r
+    }\r
+    // $ANTLR end "LCURLY"\r
+\r
+    // $ANTLR start "RCURLY"\r
+    public final void mRCURLY() throws RecognitionException {\r
+        try {\r
+            int _type = RCURLY;\r
+            int _channel = DEFAULT_TOKEN_CHANNEL;\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:127:11: ( '}' )\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:127:13: '}'\r
+            {\r
+            match('}'); \r
+             -- inParen; \r
+\r
+            }\r
+\r
+            state.type = _type;\r
+            state.channel = _channel;\r
+        }\r
+        finally {\r
+        }\r
+    }\r
+    // $ANTLR end "RCURLY"\r
+\r
+    // $ANTLR start "INT_RANGE"\r
+    public final void mINT_RANGE() throws RecognitionException {\r
+        try {\r
+            int _type = INT_RANGE;\r
+            int _channel = DEFAULT_TOKEN_CHANNEL;\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:129:11: ( INT '..' ( INT )? | '..' INT )\r
+            int alt6=2;\r
+            int LA6_0 = input.LA(1);\r
+\r
+            if ( (LA6_0=='-'||(LA6_0>='0' && LA6_0<='9')) ) {\r
+                alt6=1;\r
+            }\r
+            else if ( (LA6_0=='.') ) {\r
+                alt6=2;\r
+            }\r
+            else {\r
+                NoViableAltException nvae =\r
+                    new NoViableAltException("", 6, 0, input);\r
+\r
+                throw nvae;\r
+            }\r
+            switch (alt6) {\r
+                case 1 :\r
+                    // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:129:13: INT '..' ( INT )?\r
+                    {\r
+                    mINT(); \r
+                    match(".."); \r
+\r
+                    // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:129:22: ( INT )?\r
+                    int alt5=2;\r
+                    int LA5_0 = input.LA(1);\r
+\r
+                    if ( (LA5_0=='-'||(LA5_0>='0' && LA5_0<='9')) ) {\r
+                        alt5=1;\r
+                    }\r
+                    switch (alt5) {\r
+                        case 1 :\r
+                            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:129:22: INT\r
+                            {\r
+                            mINT(); \r
+\r
+                            }\r
+                            break;\r
+\r
+                    }\r
+\r
+\r
+                    }\r
+                    break;\r
+                case 2 :\r
+                    // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:130:13: '..' INT\r
+                    {\r
+                    match(".."); \r
+\r
+                    mINT(); \r
+\r
+                    }\r
+                    break;\r
+\r
+            }\r
+            state.type = _type;\r
+            state.channel = _channel;\r
+        }\r
+        finally {\r
+        }\r
+    }\r
+    // $ANTLR end "INT_RANGE"\r
+\r
+    // $ANTLR start "RANGE"\r
+    public final void mRANGE() throws RecognitionException {\r
+        try {\r
+            int _type = RANGE;\r
+            int _channel = DEFAULT_TOKEN_CHANNEL;\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:132:11: ( FLOAT '..' ( FLOAT | INT )? | '..' FLOAT | INT '..' FLOAT )\r
+            int alt8=3;\r
+            alt8 = dfa8.predict(input);\r
+            switch (alt8) {\r
+                case 1 :\r
+                    // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:132:13: FLOAT '..' ( FLOAT | INT )?\r
+                    {\r
+                    mFLOAT(); \r
+                    match(".."); \r
+\r
+                    // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:132:24: ( FLOAT | INT )?\r
+                    int alt7=3;\r
+                    alt7 = dfa7.predict(input);\r
+                    switch (alt7) {\r
+                        case 1 :\r
+                            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:132:25: FLOAT\r
+                            {\r
+                            mFLOAT(); \r
+\r
+                            }\r
+                            break;\r
+                        case 2 :\r
+                            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:132:33: INT\r
+                            {\r
+                            mINT(); \r
+\r
+                            }\r
+                            break;\r
+\r
+                    }\r
+\r
+\r
+                    }\r
+                    break;\r
+                case 2 :\r
+                    // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:133:13: '..' FLOAT\r
+                    {\r
+                    match(".."); \r
+\r
+                    mFLOAT(); \r
+\r
+                    }\r
+                    break;\r
+                case 3 :\r
+                    // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:134:13: INT '..' FLOAT\r
+                    {\r
+                    mINT(); \r
+                    match(".."); \r
+\r
+                    mFLOAT(); \r
+\r
+                    }\r
+                    break;\r
+\r
+            }\r
+            state.type = _type;\r
+            state.channel = _channel;\r
+        }\r
+        finally {\r
+        }\r
+    }\r
+    // $ANTLR end "RANGE"\r
+\r
+    // $ANTLR start "NEWLINE"\r
+    public final void mNEWLINE() throws RecognitionException {\r
+        try {\r
+            int _type = NEWLINE;\r
+            int _channel = DEFAULT_TOKEN_CHANNEL;\r
+             int spaces = 0; \r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:139:5: ( '\\n' ( ' ' | '//' (~ ( '\\n' ) )* '\\n' | '/*' ( options {greedy=false; } : . )* '*/' | '\\r' | '\\n' )* )\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:139:7: '\\n' ( ' ' | '//' (~ ( '\\n' ) )* '\\n' | '/*' ( options {greedy=false; } : . )* '*/' | '\\r' | '\\n' )*\r
+            {\r
+            match('\n'); \r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:140:7: ( ' ' | '//' (~ ( '\\n' ) )* '\\n' | '/*' ( options {greedy=false; } : . )* '*/' | '\\r' | '\\n' )*\r
+            loop11:\r
+            do {\r
+                int alt11=6;\r
+                switch ( input.LA(1) ) {\r
+                case ' ':\r
+                    {\r
+                    alt11=1;\r
+                    }\r
+                    break;\r
+                case '/':\r
+                    {\r
+                    int LA11_3 = input.LA(2);\r
+\r
+                    if ( (LA11_3=='/') ) {\r
+                        alt11=2;\r
+                    }\r
+                    else if ( (LA11_3=='*') ) {\r
+                        alt11=3;\r
+                    }\r
+\r
+\r
+                    }\r
+                    break;\r
+                case '\r':\r
+                    {\r
+                    alt11=4;\r
+                    }\r
+                    break;\r
+                case '\n':\r
+                    {\r
+                    alt11=5;\r
+                    }\r
+                    break;\r
+\r
+                }\r
+\r
+                switch (alt11) {\r
+               case 1 :\r
+                   // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:140:9: ' '\r
+                   {\r
+                   match(' '); \r
+                    ++spaces; \r
+\r
+                   }\r
+                   break;\r
+               case 2 :\r
+                   // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:141:9: '//' (~ ( '\\n' ) )* '\\n'\r
+                   {\r
+                   match("//"); \r
+\r
+                   // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:141:14: (~ ( '\\n' ) )*\r
+                   loop9:\r
+                   do {\r
+                       int alt9=2;\r
+                       int LA9_0 = input.LA(1);\r
+\r
+                       if ( ((LA9_0>='\u0000' && LA9_0<='\t')||(LA9_0>='\u000B' && LA9_0<='\uFFFF')) ) {\r
+                           alt9=1;\r
+                       }\r
+\r
+\r
+                       switch (alt9) {\r
+                       case 1 :\r
+                           // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:141:14: ~ ( '\\n' )\r
+                           {\r
+                           if ( (input.LA(1)>='\u0000' && input.LA(1)<='\t')||(input.LA(1)>='\u000B' && input.LA(1)<='\uFFFF') ) {\r
+                               input.consume();\r
+\r
+                           }\r
+                           else {\r
+                               MismatchedSetException mse = new MismatchedSetException(null,input);\r
+                               recover(mse);\r
+                               throw mse;}\r
+\r
+\r
+                           }\r
+                           break;\r
+\r
+                       default :\r
+                           break loop9;\r
+                       }\r
+                   } while (true);\r
+\r
+                   match('\n'); \r
+                    spaces = 0; \r
+\r
+                   }\r
+                   break;\r
+               case 3 :\r
+                   // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:142:9: '/*' ( options {greedy=false; } : . )* '*/'\r
+                   {\r
+                   match("/*"); \r
+\r
+                   // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:142:14: ( options {greedy=false; } : . )*\r
+                   loop10:\r
+                   do {\r
+                       int alt10=2;\r
+                       int LA10_0 = input.LA(1);\r
+\r
+                       if ( (LA10_0=='*') ) {\r
+                           int LA10_1 = input.LA(2);\r
+\r
+                           if ( (LA10_1=='/') ) {\r
+                               alt10=2;\r
+                           }\r
+                           else if ( ((LA10_1>='\u0000' && LA10_1<='.')||(LA10_1>='0' && LA10_1<='\uFFFF')) ) {\r
+                               alt10=1;\r
+                           }\r
+\r
+\r
+                       }\r
+                       else if ( ((LA10_0>='\u0000' && LA10_0<=')')||(LA10_0>='+' && LA10_0<='\uFFFF')) ) {\r
+                           alt10=1;\r
+                       }\r
+\r
+\r
+                       switch (alt10) {\r
+                       case 1 :\r
+                           // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:142:42: .\r
+                           {\r
+                           matchAny(); \r
+\r
+                           }\r
+                           break;\r
+\r
+                       default :\r
+                           break loop10;\r
+                       }\r
+                   } while (true);\r
+\r
+                   match("*/"); \r
+\r
+\r
+                   }\r
+                   break;\r
+               case 4 :\r
+                   // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:143:9: '\\r'\r
+                   {\r
+                   match('\r'); \r
+\r
+                   }\r
+                   break;\r
+               case 5 :\r
+                   // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:144:9: '\\n'\r
+                   {\r
+                   match('\n'); \r
+                    spaces = 0; \r
+\r
+                   }\r
+                   break;\r
+\r
+               default :\r
+                   break loop11;\r
+                }\r
+            } while (true);\r
+\r
+             \r
+                      int c = input.LA(1);\r
+                      \r
+                      if(inParen > 0) {\r
+                          _channel = HIDDEN;\r
+                      }\r
+                      else if(c == EOF) {\r
+                          while(iStack.size() > 1) {\r
+                              iStack.removeAt(iStack.size()-1);\r
+                              state.type = DEDENT;\r
+                              emit();\r
+                          }\r
+                          _channel = HIDDEN;\r
+                          iStack.clear();\r
+                      }\r
+                      else {\r
+                          int stackTop = iStack.get(iStack.size()-1);\r
+                          if(spaces > stackTop) {\r
+                              iStack.add(spaces);\r
+                              _type = INDENT;\r
+                          }\r
+                          else if(spaces < stackTop) {\r
+                              while(spaces < iStack.get(iStack.size()-1)) {\r
+                                  iStack.removeAt(iStack.size()-1);\r
+                                  state.type = DEDENT;\r
+                                  emit();\r
+                              }\r
+                              state.type = NEWLINE;\r
+                              emit();\r
+                              // TODO check that spaces == iStack.get(iStack.size()-1)\r
+                          }\r
+                      }\r
+                  \r
+\r
+            }\r
+\r
+            state.type = _type;\r
+            state.channel = _channel;\r
+        }\r
+        finally {\r
+        }\r
+    }\r
+    // $ANTLR end "NEWLINE"\r
+\r
+    // $ANTLR start "INDENT"\r
+    public final void mINDENT() throws RecognitionException {\r
+        try {\r
+            int _type = INDENT;\r
+            int _channel = DEFAULT_TOKEN_CHANNEL;\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:181:7: ({...}? => 'INDENT' )\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:181:9: {...}? => 'INDENT'\r
+            {\r
+            if ( !(( false )) ) {\r
+                throw new FailedPredicateException(input, "INDENT", " false ");\r
+            }\r
+            match("INDENT"); \r
+\r
+\r
+            }\r
+\r
+            state.type = _type;\r
+            state.channel = _channel;\r
+        }\r
+        finally {\r
+        }\r
+    }\r
+    // $ANTLR end "INDENT"\r
+\r
+    // $ANTLR start "DEDENT"\r
+    public final void mDEDENT() throws RecognitionException {\r
+        try {\r
+            int _type = DEDENT;\r
+            int _channel = DEFAULT_TOKEN_CHANNEL;\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:182:7: ({...}? => 'DEDENT' )\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:182:9: {...}? => 'DEDENT'\r
+            {\r
+            if ( !(( false )) ) {\r
+                throw new FailedPredicateException(input, "DEDENT", " false ");\r
+            }\r
+            match("DEDENT"); \r
+\r
+\r
+            }\r
+\r
+            state.type = _type;\r
+            state.channel = _channel;\r
+        }\r
+        finally {\r
+        }\r
+    }\r
+    // $ANTLR end "DEDENT"\r
+\r
+    // $ANTLR start "INT"\r
+    public final void mINT() throws RecognitionException {\r
+        try {\r
+            int _type = INT;\r
+            int _channel = DEFAULT_TOKEN_CHANNEL;\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:184:5: ( ( '-' )? ( '0' .. '9' )+ )\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:184:7: ( '-' )? ( '0' .. '9' )+\r
+            {\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:184:7: ( '-' )?\r
+            int alt12=2;\r
+            int LA12_0 = input.LA(1);\r
+\r
+            if ( (LA12_0=='-') ) {\r
+                alt12=1;\r
+            }\r
+            switch (alt12) {\r
+                case 1 :\r
+                    // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:184:7: '-'\r
+                    {\r
+                    match('-'); \r
+\r
+                    }\r
+                    break;\r
+\r
+            }\r
+\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:184:12: ( '0' .. '9' )+\r
+            int cnt13=0;\r
+            loop13:\r
+            do {\r
+                int alt13=2;\r
+                int LA13_0 = input.LA(1);\r
+\r
+                if ( ((LA13_0>='0' && LA13_0<='9')) ) {\r
+                    alt13=1;\r
+                }\r
+\r
+\r
+                switch (alt13) {\r
+               case 1 :\r
+                   // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:184:12: '0' .. '9'\r
+                   {\r
+                   matchRange('0','9'); \r
+\r
+                   }\r
+                   break;\r
+\r
+               default :\r
+                   if ( cnt13 >= 1 ) break loop13;\r
+                        EarlyExitException eee =\r
+                            new EarlyExitException(13, input);\r
+                        throw eee;\r
+                }\r
+                cnt13++;\r
+            } while (true);\r
+\r
+\r
+            }\r
+\r
+            state.type = _type;\r
+            state.channel = _channel;\r
+        }\r
+        finally {\r
+        }\r
+    }\r
+    // $ANTLR end "INT"\r
+\r
+    // $ANTLR start "FLOAT"\r
+    public final void mFLOAT() throws RecognitionException {\r
+        try {\r
+            int _type = FLOAT;\r
+            int _channel = DEFAULT_TOKEN_CHANNEL;\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:188:5: ( ( '-' )? ( ( '0' .. '9' )+ '.' ( '0' .. '9' )* ( EXPONENT )? | ( '0' .. '9' )+ EXPONENT ) )\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:188:7: ( '-' )? ( ( '0' .. '9' )+ '.' ( '0' .. '9' )* ( EXPONENT )? | ( '0' .. '9' )+ EXPONENT )\r
+            {\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:188:7: ( '-' )?\r
+            int alt14=2;\r
+            int LA14_0 = input.LA(1);\r
+\r
+            if ( (LA14_0=='-') ) {\r
+                alt14=1;\r
+            }\r
+            switch (alt14) {\r
+                case 1 :\r
+                    // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:188:7: '-'\r
+                    {\r
+                    match('-'); \r
+\r
+                    }\r
+                    break;\r
+\r
+            }\r
+\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:189:5: ( ( '0' .. '9' )+ '.' ( '0' .. '9' )* ( EXPONENT )? | ( '0' .. '9' )+ EXPONENT )\r
+            int alt19=2;\r
+            alt19 = dfa19.predict(input);\r
+            switch (alt19) {\r
+                case 1 :\r
+                    // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:189:7: ( '0' .. '9' )+ '.' ( '0' .. '9' )* ( EXPONENT )?\r
+                    {\r
+                    // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:189:7: ( '0' .. '9' )+\r
+                    int cnt15=0;\r
+                    loop15:\r
+                    do {\r
+                        int alt15=2;\r
+                        int LA15_0 = input.LA(1);\r
+\r
+                        if ( ((LA15_0>='0' && LA15_0<='9')) ) {\r
+                            alt15=1;\r
+                        }\r
+\r
+\r
+                        switch (alt15) {\r
+                       case 1 :\r
+                           // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:189:8: '0' .. '9'\r
+                           {\r
+                           matchRange('0','9'); \r
+\r
+                           }\r
+                           break;\r
+\r
+                       default :\r
+                           if ( cnt15 >= 1 ) break loop15;\r
+                                EarlyExitException eee =\r
+                                    new EarlyExitException(15, input);\r
+                                throw eee;\r
+                        }\r
+                        cnt15++;\r
+                    } while (true);\r
+\r
+                    match('.'); \r
+                    // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:189:23: ( '0' .. '9' )*\r
+                    loop16:\r
+                    do {\r
+                        int alt16=2;\r
+                        int LA16_0 = input.LA(1);\r
+\r
+                        if ( ((LA16_0>='0' && LA16_0<='9')) ) {\r
+                            alt16=1;\r
+                        }\r
+\r
+\r
+                        switch (alt16) {\r
+                       case 1 :\r
+                           // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:189:24: '0' .. '9'\r
+                           {\r
+                           matchRange('0','9'); \r
+\r
+                           }\r
+                           break;\r
+\r
+                       default :\r
+                           break loop16;\r
+                        }\r
+                    } while (true);\r
+\r
+                    // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:189:35: ( EXPONENT )?\r
+                    int alt17=2;\r
+                    int LA17_0 = input.LA(1);\r
+\r
+                    if ( (LA17_0=='E'||LA17_0=='e') ) {\r
+                        alt17=1;\r
+                    }\r
+                    switch (alt17) {\r
+                        case 1 :\r
+                            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:189:35: EXPONENT\r
+                            {\r
+                            mEXPONENT(); \r
+\r
+                            }\r
+                            break;\r
+\r
+                    }\r
+\r
+\r
+                    }\r
+                    break;\r
+                case 2 :\r
+                    // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:190:7: ( '0' .. '9' )+ EXPONENT\r
+                    {\r
+                    // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:190:7: ( '0' .. '9' )+\r
+                    int cnt18=0;\r
+                    loop18:\r
+                    do {\r
+                        int alt18=2;\r
+                        int LA18_0 = input.LA(1);\r
+\r
+                        if ( ((LA18_0>='0' && LA18_0<='9')) ) {\r
+                            alt18=1;\r
+                        }\r
+\r
+\r
+                        switch (alt18) {\r
+                       case 1 :\r
+                           // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:190:8: '0' .. '9'\r
+                           {\r
+                           matchRange('0','9'); \r
+\r
+                           }\r
+                           break;\r
+\r
+                       default :\r
+                           if ( cnt18 >= 1 ) break loop18;\r
+                                EarlyExitException eee =\r
+                                    new EarlyExitException(18, input);\r
+                                throw eee;\r
+                        }\r
+                        cnt18++;\r
+                    } while (true);\r
+\r
+                    mEXPONENT(); \r
+\r
+                    }\r
+                    break;\r
+\r
+            }\r
+\r
+\r
+            }\r
+\r
+            state.type = _type;\r
+            state.channel = _channel;\r
+        }\r
+        finally {\r
+        }\r
+    }\r
+    // $ANTLR end "FLOAT"\r
+\r
+    // $ANTLR start "STRING"\r
+    public final void mSTRING() throws RecognitionException {\r
+        try {\r
+            int _type = STRING;\r
+            int _channel = DEFAULT_TOKEN_CHANNEL;\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:195:5: ( '\"' ( ESC_SEQ | ~ ( '\\\\' | '\"' ) )* '\"' | '\"\"\"' (~ ( '\"' ) | '\"' ~ ( '\"' ) | '\"\"' ~ ( '\"' ) )* '\"\"\"' )\r
+            int alt22=2;\r
+            int LA22_0 = input.LA(1);\r
+\r
+            if ( (LA22_0=='\"') ) {\r
+                int LA22_1 = input.LA(2);\r
+\r
+                if ( (LA22_1=='\"') ) {\r
+                    int LA22_2 = input.LA(3);\r
+\r
+                    if ( (LA22_2=='\"') ) {\r
+                        alt22=2;\r
+                    }\r
+                    else {\r
+                        alt22=1;}\r
+                }\r
+                else if ( ((LA22_1>='\u0000' && LA22_1<='!')||(LA22_1>='#' && LA22_1<='\uFFFF')) ) {\r
+                    alt22=1;\r
+                }\r
+                else {\r
+                    NoViableAltException nvae =\r
+                        new NoViableAltException("", 22, 1, input);\r
+\r
+                    throw nvae;\r
+                }\r
+            }\r
+            else {\r
+                NoViableAltException nvae =\r
+                    new NoViableAltException("", 22, 0, input);\r
+\r
+                throw nvae;\r
+            }\r
+            switch (alt22) {\r
+                case 1 :\r
+                    // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:195:8: '\"' ( ESC_SEQ | ~ ( '\\\\' | '\"' ) )* '\"'\r
+                    {\r
+                    match('\"'); \r
+                    // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:195:12: ( ESC_SEQ | ~ ( '\\\\' | '\"' ) )*\r
+                    loop20:\r
+                    do {\r
+                        int alt20=3;\r
+                        int LA20_0 = input.LA(1);\r
+\r
+                        if ( (LA20_0=='\\') ) {\r
+                            alt20=1;\r
+                        }\r
+                        else if ( ((LA20_0>='\u0000' && LA20_0<='!')||(LA20_0>='#' && LA20_0<='[')||(LA20_0>=']' && LA20_0<='\uFFFF')) ) {\r
+                            alt20=2;\r
+                        }\r
+\r
+\r
+                        switch (alt20) {\r
+                       case 1 :\r
+                           // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:195:14: ESC_SEQ\r
+                           {\r
+                           mESC_SEQ(); \r
+\r
+                           }\r
+                           break;\r
+                       case 2 :\r
+                           // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:195:24: ~ ( '\\\\' | '\"' )\r
+                           {\r
+                           if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='[')||(input.LA(1)>=']' && input.LA(1)<='\uFFFF') ) {\r
+                               input.consume();\r
+\r
+                           }\r
+                           else {\r
+                               MismatchedSetException mse = new MismatchedSetException(null,input);\r
+                               recover(mse);\r
+                               throw mse;}\r
+\r
+\r
+                           }\r
+                           break;\r
+\r
+                       default :\r
+                           break loop20;\r
+                        }\r
+                    } while (true);\r
+\r
+                    match('\"'); \r
+\r
+                    }\r
+                    break;\r
+                case 2 :\r
+                    // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:196:8: '\"\"\"' (~ ( '\"' ) | '\"' ~ ( '\"' ) | '\"\"' ~ ( '\"' ) )* '\"\"\"'\r
+                    {\r
+                    match("\"\"\""); \r
+\r
+                    // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:196:14: (~ ( '\"' ) | '\"' ~ ( '\"' ) | '\"\"' ~ ( '\"' ) )*\r
+                    loop21:\r
+                    do {\r
+                        int alt21=4;\r
+                        int LA21_0 = input.LA(1);\r
+\r
+                        if ( (LA21_0=='\"') ) {\r
+                            int LA21_1 = input.LA(2);\r
+\r
+                            if ( (LA21_1=='\"') ) {\r
+                                int LA21_3 = input.LA(3);\r
+\r
+                                if ( ((LA21_3>='\u0000' && LA21_3<='!')||(LA21_3>='#' && LA21_3<='\uFFFF')) ) {\r
+                                    alt21=3;\r
+                                }\r
+\r
+\r
+                            }\r
+                            else if ( ((LA21_1>='\u0000' && LA21_1<='!')||(LA21_1>='#' && LA21_1<='\uFFFF')) ) {\r
+                                alt21=2;\r
+                            }\r
+\r
+\r
+                        }\r
+                        else if ( ((LA21_0>='\u0000' && LA21_0<='!')||(LA21_0>='#' && LA21_0<='\uFFFF')) ) {\r
+                            alt21=1;\r
+                        }\r
+\r
+\r
+                        switch (alt21) {\r
+                       case 1 :\r
+                           // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:196:16: ~ ( '\"' )\r
+                           {\r
+                           if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='\uFFFF') ) {\r
+                               input.consume();\r
+\r
+                           }\r
+                           else {\r
+                               MismatchedSetException mse = new MismatchedSetException(null,input);\r
+                               recover(mse);\r
+                               throw mse;}\r
+\r
+\r
+                           }\r
+                           break;\r
+                       case 2 :\r
+                           // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:196:25: '\"' ~ ( '\"' )\r
+                           {\r
+                           match('\"'); \r
+                           if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='\uFFFF') ) {\r
+                               input.consume();\r
+\r
+                           }\r
+                           else {\r
+                               MismatchedSetException mse = new MismatchedSetException(null,input);\r
+                               recover(mse);\r
+                               throw mse;}\r
+\r
+\r
+                           }\r
+                           break;\r
+                       case 3 :\r
+                           // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:196:38: '\"\"' ~ ( '\"' )\r
+                           {\r
+                           match("\"\""); \r
+\r
+                           if ( (input.LA(1)>='\u0000' && input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='\uFFFF') ) {\r
+                               input.consume();\r
+\r
+                           }\r
+                           else {\r
+                               MismatchedSetException mse = new MismatchedSetException(null,input);\r
+                               recover(mse);\r
+                               throw mse;}\r
+\r
+\r
+                           }\r
+                           break;\r
+\r
+                       default :\r
+                           break loop21;\r
+                        }\r
+                    } while (true);\r
+\r
+                    match("\"\"\""); \r
+\r
+\r
+                    }\r
+                    break;\r
+\r
+            }\r
+            state.type = _type;\r
+            state.channel = _channel;\r
+        }\r
+        finally {\r
+        }\r
+    }\r
+    // $ANTLR end "STRING"\r
+\r
+    // $ANTLR start "URI"\r
+    public final void mURI() throws RecognitionException {\r
+        try {\r
+            int _type = URI;\r
+            int _channel = DEFAULT_TOKEN_CHANNEL;\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:200:5: ( '<http:' (~ ( '>' ) )* '>' )\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:200:8: '<http:' (~ ( '>' ) )* '>'\r
+            {\r
+            match("<http:"); \r
+\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:200:17: (~ ( '>' ) )*\r
+            loop23:\r
+            do {\r
+                int alt23=2;\r
+                int LA23_0 = input.LA(1);\r
+\r
+                if ( ((LA23_0>='\u0000' && LA23_0<='=')||(LA23_0>='?' && LA23_0<='\uFFFF')) ) {\r
+                    alt23=1;\r
+                }\r
+\r
+\r
+                switch (alt23) {\r
+               case 1 :\r
+                   // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:200:19: ~ ( '>' )\r
+                   {\r
+                   if ( (input.LA(1)>='\u0000' && input.LA(1)<='=')||(input.LA(1)>='?' && input.LA(1)<='\uFFFF') ) {\r
+                       input.consume();\r
+\r
+                   }\r
+                   else {\r
+                       MismatchedSetException mse = new MismatchedSetException(null,input);\r
+                       recover(mse);\r
+                       throw mse;}\r
+\r
+\r
+                   }\r
+                   break;\r
+\r
+               default :\r
+                   break loop23;\r
+                }\r
+            } while (true);\r
+\r
+            match('>'); \r
+\r
+            }\r
+\r
+            state.type = _type;\r
+            state.channel = _channel;\r
+        }\r
+        finally {\r
+        }\r
+    }\r
+    // $ANTLR end "URI"\r
+\r
+    // $ANTLR start "EXPONENT"\r
+    public final void mEXPONENT() throws RecognitionException {\r
+        try {\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:204:10: ( ( 'e' | 'E' ) ( '+' | '-' )? ( '0' .. '9' )+ )\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:204:12: ( 'e' | 'E' ) ( '+' | '-' )? ( '0' .. '9' )+\r
+            {\r
+            if ( input.LA(1)=='E'||input.LA(1)=='e' ) {\r
+                input.consume();\r
+\r
+            }\r
+            else {\r
+                MismatchedSetException mse = new MismatchedSetException(null,input);\r
+                recover(mse);\r
+                throw mse;}\r
+\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:204:22: ( '+' | '-' )?\r
+            int alt24=2;\r
+            int LA24_0 = input.LA(1);\r
+\r
+            if ( (LA24_0=='+'||LA24_0=='-') ) {\r
+                alt24=1;\r
+            }\r
+            switch (alt24) {\r
+                case 1 :\r
+                    // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:\r
+                    {\r
+                    if ( input.LA(1)=='+'||input.LA(1)=='-' ) {\r
+                        input.consume();\r
+\r
+                    }\r
+                    else {\r
+                        MismatchedSetException mse = new MismatchedSetException(null,input);\r
+                        recover(mse);\r
+                        throw mse;}\r
+\r
+\r
+                    }\r
+                    break;\r
+\r
+            }\r
+\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:204:33: ( '0' .. '9' )+\r
+            int cnt25=0;\r
+            loop25:\r
+            do {\r
+                int alt25=2;\r
+                int LA25_0 = input.LA(1);\r
+\r
+                if ( ((LA25_0>='0' && LA25_0<='9')) ) {\r
+                    alt25=1;\r
+                }\r
+\r
+\r
+                switch (alt25) {\r
+               case 1 :\r
+                   // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:204:34: '0' .. '9'\r
+                   {\r
+                   matchRange('0','9'); \r
+\r
+                   }\r
+                   break;\r
+\r
+               default :\r
+                   if ( cnt25 >= 1 ) break loop25;\r
+                        EarlyExitException eee =\r
+                            new EarlyExitException(25, input);\r
+                        throw eee;\r
+                }\r
+                cnt25++;\r
+            } while (true);\r
+\r
+\r
+            }\r
+\r
+        }\r
+        finally {\r
+        }\r
+    }\r
+    // $ANTLR end "EXPONENT"\r
+\r
+    // $ANTLR start "HEX_DIGIT"\r
+    public final void mHEX_DIGIT() throws RecognitionException {\r
+        try {\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:207:11: ( ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) )\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:207:13: ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' )\r
+            {\r
+            if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='F')||(input.LA(1)>='a' && input.LA(1)<='f') ) {\r
+                input.consume();\r
+\r
+            }\r
+            else {\r
+                MismatchedSetException mse = new MismatchedSetException(null,input);\r
+                recover(mse);\r
+                throw mse;}\r
+\r
+\r
+            }\r
+\r
+        }\r
+        finally {\r
+        }\r
+    }\r
+    // $ANTLR end "HEX_DIGIT"\r
+\r
+    // $ANTLR start "ESC_SEQ"\r
+    public final void mESC_SEQ() throws RecognitionException {\r
+        try {\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:211:5: ( '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' ) | UNICODE_ESC )\r
+            int alt26=2;\r
+            int LA26_0 = input.LA(1);\r
+\r
+            if ( (LA26_0=='\\') ) {\r
+                int LA26_1 = input.LA(2);\r
+\r
+                if ( (LA26_1=='\"'||LA26_1=='\''||LA26_1=='\\'||LA26_1=='b'||LA26_1=='f'||LA26_1=='n'||LA26_1=='r'||LA26_1=='t') ) {\r
+                    alt26=1;\r
+                }\r
+                else if ( (LA26_1=='u') ) {\r
+                    alt26=2;\r
+                }\r
+                else {\r
+                    NoViableAltException nvae =\r
+                        new NoViableAltException("", 26, 1, input);\r
+\r
+                    throw nvae;\r
+                }\r
+            }\r
+            else {\r
+                NoViableAltException nvae =\r
+                    new NoViableAltException("", 26, 0, input);\r
+\r
+                throw nvae;\r
+            }\r
+            switch (alt26) {\r
+                case 1 :\r
+                    // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:211:9: '\\\\' ( 'b' | 't' | 'n' | 'f' | 'r' | '\\\"' | '\\'' | '\\\\' )\r
+                    {\r
+                    match('\\'); \r
+                    if ( input.LA(1)=='\"'||input.LA(1)=='\''||input.LA(1)=='\\'||input.LA(1)=='b'||input.LA(1)=='f'||input.LA(1)=='n'||input.LA(1)=='r'||input.LA(1)=='t' ) {\r
+                        input.consume();\r
+\r
+                    }\r
+                    else {\r
+                        MismatchedSetException mse = new MismatchedSetException(null,input);\r
+                        recover(mse);\r
+                        throw mse;}\r
+\r
+\r
+                    }\r
+                    break;\r
+                case 2 :\r
+                    // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:212:9: UNICODE_ESC\r
+                    {\r
+                    mUNICODE_ESC(); \r
+\r
+                    }\r
+                    break;\r
+\r
+            }\r
+        }\r
+        finally {\r
+        }\r
+    }\r
+    // $ANTLR end "ESC_SEQ"\r
+\r
+    // $ANTLR start "UNICODE_ESC"\r
+    public final void mUNICODE_ESC() throws RecognitionException {\r
+        try {\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:217:5: ( '\\\\' 'u' HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT )\r
+            // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:217:9: '\\\\' 'u' HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT\r
+            {\r
+            match('\\'); \r
+            match('u'); \r
+            mHEX_DIGIT(); \r
+            mHEX_DIGIT(); \r
+            mHEX_DIGIT(); \r
+            mHEX_DIGIT(); \r
+\r
+            }\r
+\r
+        }\r
+        finally {\r
+        }\r
+    }\r
+    // $ANTLR end "UNICODE_ESC"\r
+\r
+    public void mTokens() throws RecognitionException {\r
+        // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:1:8: ( T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | ID | COMMENT | WS | LPAREN | RPAREN | LBRACKET | RBRACKET | LCURLY | RCURLY | INT_RANGE | RANGE | NEWLINE | INDENT | DEDENT | INT | FLOAT | STRING | URI )\r
+        int alt27=34;\r
+        alt27 = dfa27.predict(input);\r
+        switch (alt27) {\r
+            case 1 :\r
+                // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:1:10: T__65\r
+                {\r
+                mT__65(); \r
+\r
+                }\r
+                break;\r
+            case 2 :\r
+                // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:1:16: T__66\r
+                {\r
+                mT__66(); \r
+\r
+                }\r
+                break;\r
+            case 3 :\r
+                // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:1:22: T__67\r
+                {\r
+                mT__67(); \r
+\r
+                }\r
+                break;\r
+            case 4 :\r
+                // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:1:28: T__68\r
+                {\r
+                mT__68(); \r
+\r
+                }\r
+                break;\r
+            case 5 :\r
+                // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:1:34: T__69\r
+                {\r
+                mT__69(); \r
+\r
+                }\r
+                break;\r
+            case 6 :\r
+                // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:1:40: T__70\r
+                {\r
+                mT__70(); \r
+\r
+                }\r
+                break;\r
+            case 7 :\r
+                // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:1:46: T__71\r
+                {\r
+                mT__71(); \r
+\r
+                }\r
+                break;\r
+            case 8 :\r
+                // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:1:52: T__72\r
+                {\r
+                mT__72(); \r
+\r
+                }\r
+                break;\r
+            case 9 :\r
+                // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:1:58: T__73\r
+                {\r
+                mT__73(); \r
+\r
+                }\r
+                break;\r
+            case 10 :\r
+                // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:1:64: T__74\r
+                {\r
+                mT__74(); \r
+\r
+                }\r
+                break;\r
+            case 11 :\r
+                // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:1:70: T__75\r
+                {\r
+                mT__75(); \r
+\r
+                }\r
+                break;\r
+            case 12 :\r
+                // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:1:76: T__76\r
+                {\r
+                mT__76(); \r
+\r
+                }\r
+                break;\r
+            case 13 :\r
+                // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:1:82: T__77\r
+                {\r
+                mT__77(); \r
+\r
+                }\r
+                break;\r
+            case 14 :\r
+                // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:1:88: T__78\r
+                {\r
+                mT__78(); \r
+\r
+                }\r
+                break;\r
+            case 15 :\r
+                // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:1:94: T__79\r
+                {\r
+                mT__79(); \r
+\r
+                }\r
+                break;\r
+            case 16 :\r
+                // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:1:100: T__80\r
+                {\r
+                mT__80(); \r
+\r
+                }\r
+                break;\r
+            case 17 :\r
+                // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:1:106: ID\r
+                {\r
+                mID(); \r
+\r
+                }\r
+                break;\r
+            case 18 :\r
+                // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:1:109: COMMENT\r
+                {\r
+                mCOMMENT(); \r
+\r
+                }\r
+                break;\r
+            case 19 :\r
+                // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:1:117: WS\r
+                {\r
+                mWS(); \r
+\r
+                }\r
+                break;\r
+            case 20 :\r
+                // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:1:120: LPAREN\r
+                {\r
+                mLPAREN(); \r
+\r
+                }\r
+                break;\r
+            case 21 :\r
+                // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:1:127: RPAREN\r
+                {\r
+                mRPAREN(); \r
+\r
+                }\r
+                break;\r
+            case 22 :\r
+                // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:1:134: LBRACKET\r
+                {\r
+                mLBRACKET(); \r
+\r
+                }\r
+                break;\r
+            case 23 :\r
+                // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:1:143: RBRACKET\r
+                {\r
+                mRBRACKET(); \r
+\r
+                }\r
+                break;\r
+            case 24 :\r
+                // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:1:152: LCURLY\r
+                {\r
+                mLCURLY(); \r
+\r
+                }\r
+                break;\r
+            case 25 :\r
+                // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:1:159: RCURLY\r
+                {\r
+                mRCURLY(); \r
+\r
+                }\r
+                break;\r
+            case 26 :\r
+                // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:1:166: INT_RANGE\r
+                {\r
+                mINT_RANGE(); \r
+\r
+                }\r
+                break;\r
+            case 27 :\r
+                // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:1:176: RANGE\r
+                {\r
+                mRANGE(); \r
+\r
+                }\r
+                break;\r
+            case 28 :\r
+                // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:1:182: NEWLINE\r
+                {\r
+                mNEWLINE(); \r
+\r
+                }\r
+                break;\r
+            case 29 :\r
+                // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:1:190: INDENT\r
+                {\r
+                mINDENT(); \r
+\r
+                }\r
+                break;\r
+            case 30 :\r
+                // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:1:197: DEDENT\r
+                {\r
+                mDEDENT(); \r
+\r
+                }\r
+                break;\r
+            case 31 :\r
+                // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:1:204: INT\r
+                {\r
+                mINT(); \r
+\r
+                }\r
+                break;\r
+            case 32 :\r
+                // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:1:208: FLOAT\r
+                {\r
+                mFLOAT(); \r
+\r
+                }\r
+                break;\r
+            case 33 :\r
+                // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:1:214: STRING\r
+                {\r
+                mSTRING(); \r
+\r
+                }\r
+                break;\r
+            case 34 :\r
+                // src\\org\\simantics\\graph\\compiler\\internal\\parsing\\Graph.g:1:221: URI\r
+                {\r
+                mURI(); \r
+\r
+                }\r
+                break;\r
+\r
+        }\r
+\r
+    }\r
+\r
+\r
+    protected DFA8 dfa8 = new DFA8(this);\r
+    protected DFA7 dfa7 = new DFA7(this);\r
+    protected DFA19 dfa19 = new DFA19(this);\r
+    protected DFA27 dfa27 = new DFA27(this);\r
+    static final String DFA8_eotS =\r
+        "\10\uffff";\r
+    static final String DFA8_eofS =\r
+        "\10\uffff";\r
+    static final String DFA8_minS =\r
+        "\1\55\1\60\1\56\1\uffff\1\56\1\uffff\1\55\1\uffff";\r
+    static final String DFA8_maxS =\r
+        "\2\71\1\145\1\uffff\1\145\1\uffff\1\71\1\uffff";\r
+    static final String DFA8_acceptS =\r
+        "\3\uffff\1\2\1\uffff\1\1\1\uffff\1\3";\r
+    static final String DFA8_specialS =\r
+        "\10\uffff}>";\r
+    static final String[] DFA8_transitionS = {\r
+            "\1\1\1\3\1\uffff\12\2",\r
+            "\12\2",\r
+            "\1\4\1\uffff\12\2\13\uffff\1\5\37\uffff\1\5",\r
+            "",\r
+            "\1\6\1\uffff\12\5\13\uffff\1\5\37\uffff\1\5",\r
+            "",\r
+            "\1\7\1\5\1\uffff\12\7",\r
+            ""\r
+    };\r
+\r
+    static final short[] DFA8_eot = DFA.unpackEncodedString(DFA8_eotS);\r
+    static final short[] DFA8_eof = DFA.unpackEncodedString(DFA8_eofS);\r
+    static final char[] DFA8_min = DFA.unpackEncodedStringToUnsignedChars(DFA8_minS);\r
+    static final char[] DFA8_max = DFA.unpackEncodedStringToUnsignedChars(DFA8_maxS);\r
+    static final short[] DFA8_accept = DFA.unpackEncodedString(DFA8_acceptS);\r
+    static final short[] DFA8_special = DFA.unpackEncodedString(DFA8_specialS);\r
+    static final short[][] DFA8_transition;\r
+\r
+    static {\r
+        int numStates = DFA8_transitionS.length;\r
+        DFA8_transition = new short[numStates][];\r
+        for (int i=0; i<numStates; i++) {\r
+            DFA8_transition[i] = DFA.unpackEncodedString(DFA8_transitionS[i]);\r
+        }\r
+    }\r
+\r
+    class DFA8 extends DFA {\r
+\r
+        public DFA8(BaseRecognizer recognizer) {\r
+            this.recognizer = recognizer;\r
+            this.decisionNumber = 8;\r
+            this.eot = DFA8_eot;\r
+            this.eof = DFA8_eof;\r
+            this.min = DFA8_min;\r
+            this.max = DFA8_max;\r
+            this.accept = DFA8_accept;\r
+            this.special = DFA8_special;\r
+            this.transition = DFA8_transition;\r
+        }\r
+        public String getDescription() {\r
+            return "132:1: RANGE : ( FLOAT '..' ( FLOAT | INT )? | '..' FLOAT | INT '..' FLOAT );";\r
+        }\r
+    }\r
+    static final String DFA7_eotS =\r
+        "\1\3\1\uffff\1\5\3\uffff";\r
+    static final String DFA7_eofS =\r
+        "\6\uffff";\r
+    static final String DFA7_minS =\r
+        "\1\55\1\60\1\56\3\uffff";\r
+    static final String DFA7_maxS =\r
+        "\2\71\1\145\3\uffff";\r
+    static final String DFA7_acceptS =\r
+        "\3\uffff\1\3\1\1\1\2";\r
+    static final String DFA7_specialS =\r
+        "\6\uffff}>";\r
+    static final String[] DFA7_transitionS = {\r
+            "\1\1\2\uffff\12\2",\r
+            "\12\2",\r
+            "\1\4\1\uffff\12\2\13\uffff\1\4\37\uffff\1\4",\r
+            "",\r
+            "",\r
+            ""\r
+    };\r
+\r
+    static final short[] DFA7_eot = DFA.unpackEncodedString(DFA7_eotS);\r
+    static final short[] DFA7_eof = DFA.unpackEncodedString(DFA7_eofS);\r
+    static final char[] DFA7_min = DFA.unpackEncodedStringToUnsignedChars(DFA7_minS);\r
+    static final char[] DFA7_max = DFA.unpackEncodedStringToUnsignedChars(DFA7_maxS);\r
+    static final short[] DFA7_accept = DFA.unpackEncodedString(DFA7_acceptS);\r
+    static final short[] DFA7_special = DFA.unpackEncodedString(DFA7_specialS);\r
+    static final short[][] DFA7_transition;\r
+\r
+    static {\r
+        int numStates = DFA7_transitionS.length;\r
+        DFA7_transition = new short[numStates][];\r
+        for (int i=0; i<numStates; i++) {\r
+            DFA7_transition[i] = DFA.unpackEncodedString(DFA7_transitionS[i]);\r
+        }\r
+    }\r
+\r
+    class DFA7 extends DFA {\r
+\r
+        public DFA7(BaseRecognizer recognizer) {\r
+            this.recognizer = recognizer;\r
+            this.decisionNumber = 7;\r
+            this.eot = DFA7_eot;\r
+            this.eof = DFA7_eof;\r
+            this.min = DFA7_min;\r
+            this.max = DFA7_max;\r
+            this.accept = DFA7_accept;\r
+            this.special = DFA7_special;\r
+            this.transition = DFA7_transition;\r
+        }\r
+        public String getDescription() {\r
+            return "132:24: ( FLOAT | INT )?";\r
+        }\r
+    }\r
+    static final String DFA19_eotS =\r
+        "\4\uffff";\r
+    static final String DFA19_eofS =\r
+        "\4\uffff";\r
+    static final String DFA19_minS =\r
+        "\1\60\1\56\2\uffff";\r
+    static final String DFA19_maxS =\r
+        "\1\71\1\145\2\uffff";\r
+    static final String DFA19_acceptS =\r
+        "\2\uffff\1\1\1\2";\r
+    static final String DFA19_specialS =\r
+        "\4\uffff}>";\r
+    static final String[] DFA19_transitionS = {\r
+            "\12\1",\r
+            "\1\2\1\uffff\12\1\13\uffff\1\3\37\uffff\1\3",\r
+            "",\r
+            ""\r
+    };\r
+\r
+    static final short[] DFA19_eot = DFA.unpackEncodedString(DFA19_eotS);\r
+    static final short[] DFA19_eof = DFA.unpackEncodedString(DFA19_eofS);\r
+    static final char[] DFA19_min = DFA.unpackEncodedStringToUnsignedChars(DFA19_minS);\r
+    static final char[] DFA19_max = DFA.unpackEncodedStringToUnsignedChars(DFA19_maxS);\r
+    static final short[] DFA19_accept = DFA.unpackEncodedString(DFA19_acceptS);\r
+    static final short[] DFA19_special = DFA.unpackEncodedString(DFA19_specialS);\r
+    static final short[][] DFA19_transition;\r
+\r
+    static {\r
+        int numStates = DFA19_transitionS.length;\r
+        DFA19_transition = new short[numStates][];\r
+        for (int i=0; i<numStates; i++) {\r
+            DFA19_transition[i] = DFA.unpackEncodedString(DFA19_transitionS[i]);\r
+        }\r
+    }\r
+\r
+    class DFA19 extends DFA {\r
+\r
+        public DFA19(BaseRecognizer recognizer) {\r
+            this.recognizer = recognizer;\r
+            this.decisionNumber = 19;\r
+            this.eot = DFA19_eot;\r
+            this.eof = DFA19_eof;\r
+            this.min = DFA19_min;\r
+            this.max = DFA19_max;\r
+            this.accept = DFA19_accept;\r
+            this.special = DFA19_special;\r
+            this.transition = DFA19_transition;\r
+        }\r
+        public String getDescription() {\r
+            return "189:5: ( ( '0' .. '9' )+ '.' ( '0' .. '9' )* ( EXPONENT )? | ( '0' .. '9' )+ EXPONENT )";\r
+        }\r
+    }\r
+    static final String DFA27_eotS =\r
+        "\2\uffff\1\35\2\uffff\1\44\6\uffff\3\32\10\uffff\1\50\1\uffff\1"+\r
+        "\32\13\uffff\3\32\1\uffff\1\64\1\uffff\1\32\1\uffff\1\70\3\32\1"+\r
+        "\70\1\64\3\uffff\1\64\1\32\2\uffff\1\102\2\32\1\uffff\1\70\1\uffff"+\r
+        "\1\64\1\32\1\uffff\1\106\2\32\1\uffff\1\111\1\112\4\uffff";\r
+    static final String DFA27_eofS =\r
+        "\115\uffff";\r
+    static final String DFA27_minS =\r
+        "\1\11\1\uffff\1\56\2\55\1\75\6\uffff\1\162\1\141\1\116\10\uffff"+\r
+        "\1\56\1\uffff\1\105\2\uffff\1\55\10\uffff\1\165\1\154\1\104\1\uffff"+\r
+        "\1\56\1\53\1\104\1\60\1\56\1\145\1\163\1\105\1\55\1\56\1\53\1\uffff"+\r
+        "\1\60\1\56\1\105\2\uffff\1\60\1\145\1\116\1\60\1\56\1\60\1\56\1"+\r
+        "\116\1\uffff\1\60\2\124\1\uffff\2\60\2\0\2\uffff";\r
+    static final String DFA27_maxS =\r
+        "\1\175\1\uffff\1\56\1\150\1\71\1\75\6\uffff\1\162\1\141\1\116\10"+\r
+        "\uffff\1\145\1\uffff\1\105\2\uffff\1\71\10\uffff\1\165\1\154\1\104"+\r
+        "\1\uffff\1\145\1\71\1\104\1\71\2\145\1\163\1\105\1\71\1\145\1\71"+\r
+        "\1\uffff\2\71\1\105\2\uffff\1\172\1\145\1\116\1\71\1\145\2\71\1"+\r
+        "\116\1\uffff\1\172\2\124\1\uffff\2\172\2\0\2\uffff";\r
+    static final String DFA27_acceptS =\r
+        "\1\uffff\1\1\4\uffff\1\10\1\11\1\13\1\14\1\15\1\16\3\uffff\1\22"+\r
+        "\1\23\1\24\1\25\1\26\1\27\1\30\1\31\1\uffff\1\34\1\uffff\1\21\1"+\r
+        "\41\1\uffff\1\2\1\3\1\4\1\5\1\42\1\6\1\7\1\12\3\uffff\1\37\13\uffff"+\r
+        "\1\40\3\uffff\1\32\1\33\10\uffff\1\17\3\uffff\1\20\4\uffff\1\35"+\r
+        "\1\36";\r
+    static final String DFA27_specialS =\r
+        "\111\uffff\1\1\1\0\2\uffff}>";\r
+    static final String[] DFA27_transitionS = {\r
+            "\1\20\1\30\2\uffff\1\20\22\uffff\1\20\1\uffff\1\33\1\uffff"+\r
+            "\1\11\1\10\2\uffff\1\21\1\22\2\uffff\1\13\1\4\1\2\1\17\12\27"+\r
+            "\1\7\1\uffff\1\3\1\5\1\6\1\uffff\1\1\3\32\1\31\4\32\1\16\21"+\r
+            "\32\1\23\1\uffff\1\24\1\uffff\1\32\1\uffff\5\32\1\15\15\32\1"+\r
+            "\14\6\32\1\25\1\12\1\26",\r
+            "",\r
+            "\1\34",\r
+            "\1\40\44\uffff\1\37\1\uffff\1\36\23\uffff\1\41",\r
+            "\1\42\2\uffff\12\27",\r
+            "\1\43",\r
+            "",\r
+            "",\r
+            "",\r
+            "",\r
+            "",\r
+            "",\r
+            "\1\45",\r
+            "\1\46",\r
+            "\1\47",\r
+            "",\r
+            "",\r
+            "",\r
+            "",\r
+            "",\r
+            "",\r
+            "",\r
+            "",\r
+            "\1\51\1\uffff\12\27\13\uffff\1\52\37\uffff\1\52",\r
+            "",\r
+            "\1\53",\r
+            "",\r
+            "",\r
+            "\1\54\2\uffff\12\55",\r
+            "",\r
+            "",\r
+            "",\r
+            "",\r
+            "",\r
+            "",\r
+            "",\r
+            "",\r
+            "\1\56",\r
+            "\1\57",\r
+            "\1\60",\r
+            "",\r
+            "\1\61\1\uffff\12\62\13\uffff\1\63\37\uffff\1\63",\r
+            "\1\65\1\uffff\1\65\2\uffff\12\66",\r
+            "\1\67",\r
+            "\12\55",\r
+            "\1\71\1\uffff\12\55\13\uffff\1\71\37\uffff\1\71",\r
+            "\1\72",\r
+            "\1\73",\r
+            "\1\74",\r
+            "\1\75\1\71\1\uffff\12\76",\r
+            "\1\71\1\uffff\12\62\13\uffff\1\63\37\uffff\1\63",\r
+            "\1\77\1\uffff\1\77\2\uffff\12\100",\r
+            "",\r
+            "\12\66",\r
+            "\1\71\1\uffff\12\66",\r
+            "\1\101",\r
+            "",\r
+            "",\r
+            "\12\32\7\uffff\32\32\4\uffff\1\32\1\uffff\32\32",\r
+            "\1\103",\r
+            "\1\104",\r
+            "\12\76",\r
+            "\1\71\1\uffff\12\76\13\uffff\1\71\37\uffff\1\71",\r
+            "\12\100",\r
+            "\1\71\1\uffff\12\100",\r
+            "\1\105",\r
+            "",\r
+            "\12\32\7\uffff\32\32\4\uffff\1\32\1\uffff\32\32",\r
+            "\1\107",\r
+            "\1\110",\r
+            "",\r
+            "\12\32\7\uffff\32\32\4\uffff\1\32\1\uffff\32\32",\r
+            "\12\32\7\uffff\32\32\4\uffff\1\32\1\uffff\32\32",\r
+            "\1\uffff",\r
+            "\1\uffff",\r
+            "",\r
+            ""\r
+    };\r
+\r
+    static final short[] DFA27_eot = DFA.unpackEncodedString(DFA27_eotS);\r
+    static final short[] DFA27_eof = DFA.unpackEncodedString(DFA27_eofS);\r
+    static final char[] DFA27_min = DFA.unpackEncodedStringToUnsignedChars(DFA27_minS);\r
+    static final char[] DFA27_max = DFA.unpackEncodedStringToUnsignedChars(DFA27_maxS);\r
+    static final short[] DFA27_accept = DFA.unpackEncodedString(DFA27_acceptS);\r
+    static final short[] DFA27_special = DFA.unpackEncodedString(DFA27_specialS);\r
+    static final short[][] DFA27_transition;\r
+\r
+    static {\r
+        int numStates = DFA27_transitionS.length;\r
+        DFA27_transition = new short[numStates][];\r
+        for (int i=0; i<numStates; i++) {\r
+            DFA27_transition[i] = DFA.unpackEncodedString(DFA27_transitionS[i]);\r
+        }\r
+    }\r
+\r
+    class DFA27 extends DFA {\r
+\r
+        public DFA27(BaseRecognizer recognizer) {\r
+            this.recognizer = recognizer;\r
+            this.decisionNumber = 27;\r
+            this.eot = DFA27_eot;\r
+            this.eof = DFA27_eof;\r
+            this.min = DFA27_min;\r
+            this.max = DFA27_max;\r
+            this.accept = DFA27_accept;\r
+            this.special = DFA27_special;\r
+            this.transition = DFA27_transition;\r
+        }\r
+        public String getDescription() {\r
+            return "1:1: Tokens : ( T__65 | T__66 | T__67 | T__68 | T__69 | T__70 | T__71 | T__72 | T__73 | T__74 | T__75 | T__76 | T__77 | T__78 | T__79 | T__80 | ID | COMMENT | WS | LPAREN | RPAREN | LBRACKET | RBRACKET | LCURLY | RCURLY | INT_RANGE | RANGE | NEWLINE | INDENT | DEDENT | INT | FLOAT | STRING | URI );";\r
+        }\r
+        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {\r
+            IntStream input = _input;\r
+               int _s = s;\r
+            switch ( s ) {\r
+                    case 0 : \r
+                        int LA27_74 = input.LA(1);\r
+\r
+                         \r
+                        int index27_74 = input.index();\r
+                        input.rewind();\r
+                        s = -1;\r
+                        if ( (!((( false )))) ) {s = 26;}\r
+\r
+                        else if ( (( false )) ) {s = 76;}\r
+\r
+                         \r
+                        input.seek(index27_74);\r
+                        if ( s>=0 ) return s;\r
+                        break;\r
+                    case 1 : \r
+                        int LA27_73 = input.LA(1);\r
+\r
+                         \r
+                        int index27_73 = input.index();\r
+                        input.rewind();\r
+                        s = -1;\r
+                        if ( (!((( false )))) ) {s = 26;}\r
+\r
+                        else if ( (( false )) ) {s = 75;}\r
+\r
+                         \r
+                        input.seek(index27_73);\r
+                        if ( s>=0 ) return s;\r
+                        break;\r
+            }\r
+            NoViableAltException nvae =\r
+                new NoViableAltException(getDescription(), 27, _s, input);\r
+            error(nvae);\r
+            throw nvae;\r
+        }\r
+    }\r
\r
+\r
+}
\ No newline at end of file