You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@systemds.apache.org by mb...@apache.org on 2022/02/23 21:39:41 UTC
[systemds] 01/02: [MINOR] Fixed outdated generated ANTLR parser (4.5.3 vs 4.8)
This is an automated email from the ASF dual-hosted git repository.
mboehm7 pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/systemds.git
commit 98b98314e79107678cc36b5308d63beaead35d0a
Author: Matthias Boehm <mb...@gmail.com>
AuthorDate: Wed Feb 23 21:59:36 2022 +0100
[MINOR] Fixed outdated generated ANTLR parser (4.5.3 vs 4.8)
---
.../java/org/apache/sysds/parser/dml/Dml.interp | 165 +++++++++++++++
.../apache/sysds/parser/dml/DmlBaseListener.java | 2 +-
.../org/apache/sysds/parser/dml/DmlLexer.interp | 229 +++++++++++++++++++++
.../java/org/apache/sysds/parser/dml/DmlLexer.java | 110 +++++-----
.../org/apache/sysds/parser/dml/DmlListener.java | 2 +-
.../org/apache/sysds/parser/dml/DmlParser.java | 186 ++++++++++++-----
6 files changed, 589 insertions(+), 105 deletions(-)
diff --git a/src/main/java/org/apache/sysds/parser/dml/Dml.interp b/src/main/java/org/apache/sysds/parser/dml/Dml.interp
new file mode 100644
index 0000000..d106522
--- /dev/null
+++ b/src/main/java/org/apache/sysds/parser/dml/Dml.interp
@@ -0,0 +1,165 @@
+token literal names:
+null
+'source'
+'('
+')'
+'as'
+';'
+'setwd'
+'='
+'<-'
+','
+'['
+']'
+'ifdef'
+'+='
+'if'
+'{'
+'}'
+'else'
+'for'
+'in'
+'parfor'
+'while'
+':'
+'function'
+'return'
+'externalFunction'
+'implemented'
+'^'
+'-'
+'+'
+'%*%'
+'%/%'
+'%%'
+'*'
+'/'
+'>'
+'>='
+'<'
+'<='
+'=='
+'!='
+'!'
+'&'
+'&&'
+'|'
+'||'
+'TRUE'
+'FALSE'
+'int'
+'integer'
+'string'
+'boolean'
+'double'
+'unknown'
+'Int'
+'Integer'
+'String'
+'Boolean'
+'Double'
+'Unknown'
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+
+token symbolic names:
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+ID
+INT
+DOUBLE
+DIGIT
+ALPHABET
+COMMANDLINE_NAMED_ID
+COMMANDLINE_POSITION_ID
+STRING
+LINE_COMMENT
+MULTILINE_BLOCK_COMMENT
+WHITESPACE
+
+rule names:
+programroot
+statement
+iterablePredicate
+functionStatement
+dataIdentifier
+expression
+typedArgNoAssign
+typedArgAssign
+parameterizedExpression
+strictParameterizedExpression
+strictParameterizedKeyValueString
+ml_type
+valueType
+dataType
+
+
+atn:
+[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 3, 72, 560, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 3, 2, 3, 2, 7, 2, 33, 10, 2, 12, 2, 14, 2, 36, 11, 2, 3, 2, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 7, 3, 47, 10, 3, 12, 3, 14, 3, 50, 11, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 7, 3, 57, 10, 3, 12, 3, 14, 3, 60, 11, 3, 3, 3, 3, 3, 3, 3, [...]
\ No newline at end of file
diff --git a/src/main/java/org/apache/sysds/parser/dml/DmlBaseListener.java b/src/main/java/org/apache/sysds/parser/dml/DmlBaseListener.java
index b165586..2d033c8 100644
--- a/src/main/java/org/apache/sysds/parser/dml/DmlBaseListener.java
+++ b/src/main/java/org/apache/sysds/parser/dml/DmlBaseListener.java
@@ -1,4 +1,4 @@
-// Generated from org\apache\sysds\parser\dml\Dml.g4 by ANTLR 4.5.3
+// Generated from org\apache\sysds\parser\dml\Dml.g4 by ANTLR 4.8
package org.apache.sysds.parser.dml;
/*
diff --git a/src/main/java/org/apache/sysds/parser/dml/DmlLexer.interp b/src/main/java/org/apache/sysds/parser/dml/DmlLexer.interp
new file mode 100644
index 0000000..e9647b3
--- /dev/null
+++ b/src/main/java/org/apache/sysds/parser/dml/DmlLexer.interp
@@ -0,0 +1,229 @@
+token literal names:
+null
+'source'
+'('
+')'
+'as'
+';'
+'setwd'
+'='
+'<-'
+','
+'['
+']'
+'ifdef'
+'+='
+'if'
+'{'
+'}'
+'else'
+'for'
+'in'
+'parfor'
+'while'
+':'
+'function'
+'return'
+'externalFunction'
+'implemented'
+'^'
+'-'
+'+'
+'%*%'
+'%/%'
+'%%'
+'*'
+'/'
+'>'
+'>='
+'<'
+'<='
+'=='
+'!='
+'!'
+'&'
+'&&'
+'|'
+'||'
+'TRUE'
+'FALSE'
+'int'
+'integer'
+'string'
+'boolean'
+'double'
+'unknown'
+'Int'
+'Integer'
+'String'
+'Boolean'
+'Double'
+'Unknown'
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+
+token symbolic names:
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+null
+ID
+INT
+DOUBLE
+DIGIT
+ALPHABET
+COMMANDLINE_NAMED_ID
+COMMANDLINE_POSITION_ID
+STRING
+LINE_COMMENT
+MULTILINE_BLOCK_COMMENT
+WHITESPACE
+
+rule names:
+T__0
+T__1
+T__2
+T__3
+T__4
+T__5
+T__6
+T__7
+T__8
+T__9
+T__10
+T__11
+T__12
+T__13
+T__14
+T__15
+T__16
+T__17
+T__18
+T__19
+T__20
+T__21
+T__22
+T__23
+T__24
+T__25
+T__26
+T__27
+T__28
+T__29
+T__30
+T__31
+T__32
+T__33
+T__34
+T__35
+T__36
+T__37
+T__38
+T__39
+T__40
+T__41
+T__42
+T__43
+T__44
+T__45
+T__46
+T__47
+T__48
+T__49
+T__50
+T__51
+T__52
+T__53
+T__54
+T__55
+T__56
+T__57
+T__58
+ID
+INT
+DOUBLE
+DIGIT
+ALPHABET
+EXP
+COMMANDLINE_NAMED_ID
+COMMANDLINE_POSITION_ID
+STRING
+ESC
+LINE_COMMENT
+MULTILINE_BLOCK_COMMENT
+WHITESPACE
+
+channel names:
+DEFAULT_TOKEN_CHANNEL
+HIDDEN
+
+mode names:
+DEFAULT_MODE
+
+atn:
+[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 2, 72, 701, 8, 1, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 4, 30, 9, 30, 4, 31, 9, 31, 4, 32, 9, [...]
\ No newline at end of file
diff --git a/src/main/java/org/apache/sysds/parser/dml/DmlLexer.java b/src/main/java/org/apache/sysds/parser/dml/DmlLexer.java
index 3dd23d2..719af52 100644
--- a/src/main/java/org/apache/sysds/parser/dml/DmlLexer.java
+++ b/src/main/java/org/apache/sysds/parser/dml/DmlLexer.java
@@ -1,4 +1,4 @@
-// Generated from org\apache\sysds\parser\dml\Dml.g4 by ANTLR 4.5.3
+// Generated from org\apache\sysds\parser\dml\Dml.g4 by ANTLR 4.8
package org.apache.sysds.parser.dml;
/*
@@ -31,7 +31,7 @@ import org.antlr.v4.runtime.misc.*;
@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"})
public class DmlLexer extends Lexer {
- static { RuntimeMetaData.checkVersion("4.5.3", RuntimeMetaData.VERSION); }
+ static { RuntimeMetaData.checkVersion("4.8", RuntimeMetaData.VERSION); }
protected static final DFA[] _decisionToDFA;
protected static final PredictionContextCache _sharedContextCache =
@@ -48,42 +48,55 @@ public class DmlLexer extends Lexer {
ID=60, INT=61, DOUBLE=62, DIGIT=63, ALPHABET=64, COMMANDLINE_NAMED_ID=65,
COMMANDLINE_POSITION_ID=66, STRING=67, LINE_COMMENT=68, MULTILINE_BLOCK_COMMENT=69,
WHITESPACE=70;
+ public static String[] channelNames = {
+ "DEFAULT_TOKEN_CHANNEL", "HIDDEN"
+ };
+
public static String[] modeNames = {
"DEFAULT_MODE"
};
- public static final String[] ruleNames = {
- "T__0", "T__1", "T__2", "T__3", "T__4", "T__5", "T__6", "T__7", "T__8",
- "T__9", "T__10", "T__11", "T__12", "T__13", "T__14", "T__15", "T__16",
- "T__17", "T__18", "T__19", "T__20", "T__21", "T__22", "T__23", "T__24",
- "T__25", "T__26", "T__27", "T__28", "T__29", "T__30", "T__31", "T__32",
- "T__33", "T__34", "T__35", "T__36", "T__37", "T__38", "T__39", "T__40",
- "T__41", "T__42", "T__43", "T__44", "T__45", "T__46", "T__47", "T__48",
- "T__49", "T__50", "T__51", "T__52", "T__53", "T__54", "T__55", "T__56",
- "T__57", "T__58", "ID", "INT", "DOUBLE", "DIGIT", "ALPHABET", "EXP", "COMMANDLINE_NAMED_ID",
- "COMMANDLINE_POSITION_ID", "STRING", "ESC", "LINE_COMMENT", "MULTILINE_BLOCK_COMMENT",
- "WHITESPACE"
- };
+ private static String[] makeRuleNames() {
+ return new String[] {
+ "T__0", "T__1", "T__2", "T__3", "T__4", "T__5", "T__6", "T__7", "T__8",
+ "T__9", "T__10", "T__11", "T__12", "T__13", "T__14", "T__15", "T__16",
+ "T__17", "T__18", "T__19", "T__20", "T__21", "T__22", "T__23", "T__24",
+ "T__25", "T__26", "T__27", "T__28", "T__29", "T__30", "T__31", "T__32",
+ "T__33", "T__34", "T__35", "T__36", "T__37", "T__38", "T__39", "T__40",
+ "T__41", "T__42", "T__43", "T__44", "T__45", "T__46", "T__47", "T__48",
+ "T__49", "T__50", "T__51", "T__52", "T__53", "T__54", "T__55", "T__56",
+ "T__57", "T__58", "ID", "INT", "DOUBLE", "DIGIT", "ALPHABET", "EXP",
+ "COMMANDLINE_NAMED_ID", "COMMANDLINE_POSITION_ID", "STRING", "ESC", "LINE_COMMENT",
+ "MULTILINE_BLOCK_COMMENT", "WHITESPACE"
+ };
+ }
+ public static final String[] ruleNames = makeRuleNames();
- private static final String[] _LITERAL_NAMES = {
- null, "'source'", "'('", "')'", "'as'", "';'", "'setwd'", "'='", "'<-'",
- "','", "'['", "']'", "'ifdef'", "'+='", "'if'", "'{'", "'}'", "'else'",
- "'for'", "'in'", "'parfor'", "'while'", "':'", "'function'", "'return'",
- "'externalFunction'", "'implemented'", "'^'", "'-'", "'+'", "'%*%'", "'%/%'",
- "'%%'", "'*'", "'/'", "'>'", "'>='", "'<'", "'<='", "'=='", "'!='", "'!'",
- "'&'", "'&&'", "'|'", "'||'", "'TRUE'", "'FALSE'", "'int'", "'integer'",
- "'string'", "'boolean'", "'double'", "'unknown'", "'Int'", "'Integer'",
- "'String'", "'Boolean'", "'Double'", "'Unknown'"
- };
- private static final String[] _SYMBOLIC_NAMES = {
- null, null, null, null, null, null, null, null, null, null, null, null,
- null, null, null, null, null, null, null, null, null, null, null, null,
- null, null, null, null, null, null, null, null, null, null, null, null,
- null, null, null, null, null, null, null, null, null, null, null, null,
- null, null, null, null, null, null, null, null, null, null, null, null,
- "ID", "INT", "DOUBLE", "DIGIT", "ALPHABET", "COMMANDLINE_NAMED_ID", "COMMANDLINE_POSITION_ID",
- "STRING", "LINE_COMMENT", "MULTILINE_BLOCK_COMMENT", "WHITESPACE"
- };
+ private static String[] makeLiteralNames() {
+ return new String[] {
+ null, "'source'", "'('", "')'", "'as'", "';'", "'setwd'", "'='", "'<-'",
+ "','", "'['", "']'", "'ifdef'", "'+='", "'if'", "'{'", "'}'", "'else'",
+ "'for'", "'in'", "'parfor'", "'while'", "':'", "'function'", "'return'",
+ "'externalFunction'", "'implemented'", "'^'", "'-'", "'+'", "'%*%'",
+ "'%/%'", "'%%'", "'*'", "'/'", "'>'", "'>='", "'<'", "'<='", "'=='",
+ "'!='", "'!'", "'&'", "'&&'", "'|'", "'||'", "'TRUE'", "'FALSE'", "'int'",
+ "'integer'", "'string'", "'boolean'", "'double'", "'unknown'", "'Int'",
+ "'Integer'", "'String'", "'Boolean'", "'Double'", "'Unknown'"
+ };
+ }
+ private static final String[] _LITERAL_NAMES = makeLiteralNames();
+ private static String[] makeSymbolicNames() {
+ return new String[] {
+ null, null, null, null, null, null, null, null, null, null, null, null,
+ null, null, null, null, null, null, null, null, null, null, null, null,
+ null, null, null, null, null, null, null, null, null, null, null, null,
+ null, null, null, null, null, null, null, null, null, null, null, null,
+ null, null, null, null, null, null, null, null, null, null, null, null,
+ "ID", "INT", "DOUBLE", "DIGIT", "ALPHABET", "COMMANDLINE_NAMED_ID", "COMMANDLINE_POSITION_ID",
+ "STRING", "LINE_COMMENT", "MULTILINE_BLOCK_COMMENT", "WHITESPACE"
+ };
+ }
+ private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames();
public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES);
/**
@@ -133,13 +146,16 @@ public class DmlLexer extends Lexer {
public String getSerializedATN() { return _serializedATN; }
@Override
+ public String[] getChannelNames() { return channelNames; }
+
+ @Override
public String[] getModeNames() { return modeNames; }
@Override
public ATN getATN() { return _ATN; }
public static final String _serializedATN =
- "\3\u0430\ud6d1\u8206\uad2d\u4417\uaef1\u8d80\uaadd\2H\u02bd\b\1\4\2\t"+
+ "\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\2H\u02bd\b\1\4\2\t"+
"\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13"+
"\t\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22"+
"\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30\4\31\t\31"+
@@ -186,19 +202,19 @@ public class DmlLexer extends Lexer {
"A\"C#E$G%I&K\'M(O)Q*S+U,W-Y.[/]\60_\61a\62c\63e\64g\65i\66k\67m8o9q:s"+
";u<w=y>{?}@\177A\u0081B\u0083\2\u0085C\u0087D\u0089E\u008b\2\u008dF\u008f"+
"G\u0091H\3\2\n\4\2NNnn\4\2C\\c|\4\2GGgg\4\2--//\4\2$$^^\4\2))^^\n\2$$"+
- "))^^ddhhppttvv\5\2\13\f\17\17\"\"\u02eb\2\3\3\2\2\2\2\5\3\2\2\2\2\7\3"+
- "\2\2\2\2\t\3\2\2\2\2\13\3\2\2\2\2\r\3\2\2\2\2\17\3\2\2\2\2\21\3\2\2\2"+
- "\2\23\3\2\2\2\2\25\3\2\2\2\2\27\3\2\2\2\2\31\3\2\2\2\2\33\3\2\2\2\2\35"+
- "\3\2\2\2\2\37\3\2\2\2\2!\3\2\2\2\2#\3\2\2\2\2%\3\2\2\2\2\'\3\2\2\2\2)"+
- "\3\2\2\2\2+\3\2\2\2\2-\3\2\2\2\2/\3\2\2\2\2\61\3\2\2\2\2\63\3\2\2\2\2"+
- "\65\3\2\2\2\2\67\3\2\2\2\29\3\2\2\2\2;\3\2\2\2\2=\3\2\2\2\2?\3\2\2\2\2"+
- "A\3\2\2\2\2C\3\2\2\2\2E\3\2\2\2\2G\3\2\2\2\2I\3\2\2\2\2K\3\2\2\2\2M\3"+
- "\2\2\2\2O\3\2\2\2\2Q\3\2\2\2\2S\3\2\2\2\2U\3\2\2\2\2W\3\2\2\2\2Y\3\2\2"+
- "\2\2[\3\2\2\2\2]\3\2\2\2\2_\3\2\2\2\2a\3\2\2\2\2c\3\2\2\2\2e\3\2\2\2\2"+
- "g\3\2\2\2\2i\3\2\2\2\2k\3\2\2\2\2m\3\2\2\2\2o\3\2\2\2\2q\3\2\2\2\2s\3"+
- "\2\2\2\2u\3\2\2\2\2w\3\2\2\2\2y\3\2\2\2\2{\3\2\2\2\2}\3\2\2\2\2\177\3"+
- "\2\2\2\2\u0081\3\2\2\2\2\u0085\3\2\2\2\2\u0087\3\2\2\2\2\u0089\3\2\2\2"+
- "\2\u008d\3\2\2\2\2\u008f\3\2\2\2\2\u0091\3\2\2\2\3\u0093\3\2\2\2\5\u009a"+
+ "))^^ddhhppttvv\5\2\13\f\17\17\"\"\2\u02eb\2\3\3\2\2\2\2\5\3\2\2\2\2\7"+
+ "\3\2\2\2\2\t\3\2\2\2\2\13\3\2\2\2\2\r\3\2\2\2\2\17\3\2\2\2\2\21\3\2\2"+
+ "\2\2\23\3\2\2\2\2\25\3\2\2\2\2\27\3\2\2\2\2\31\3\2\2\2\2\33\3\2\2\2\2"+
+ "\35\3\2\2\2\2\37\3\2\2\2\2!\3\2\2\2\2#\3\2\2\2\2%\3\2\2\2\2\'\3\2\2\2"+
+ "\2)\3\2\2\2\2+\3\2\2\2\2-\3\2\2\2\2/\3\2\2\2\2\61\3\2\2\2\2\63\3\2\2\2"+
+ "\2\65\3\2\2\2\2\67\3\2\2\2\29\3\2\2\2\2;\3\2\2\2\2=\3\2\2\2\2?\3\2\2\2"+
+ "\2A\3\2\2\2\2C\3\2\2\2\2E\3\2\2\2\2G\3\2\2\2\2I\3\2\2\2\2K\3\2\2\2\2M"+
+ "\3\2\2\2\2O\3\2\2\2\2Q\3\2\2\2\2S\3\2\2\2\2U\3\2\2\2\2W\3\2\2\2\2Y\3\2"+
+ "\2\2\2[\3\2\2\2\2]\3\2\2\2\2_\3\2\2\2\2a\3\2\2\2\2c\3\2\2\2\2e\3\2\2\2"+
+ "\2g\3\2\2\2\2i\3\2\2\2\2k\3\2\2\2\2m\3\2\2\2\2o\3\2\2\2\2q\3\2\2\2\2s"+
+ "\3\2\2\2\2u\3\2\2\2\2w\3\2\2\2\2y\3\2\2\2\2{\3\2\2\2\2}\3\2\2\2\2\177"+
+ "\3\2\2\2\2\u0081\3\2\2\2\2\u0085\3\2\2\2\2\u0087\3\2\2\2\2\u0089\3\2\2"+
+ "\2\2\u008d\3\2\2\2\2\u008f\3\2\2\2\2\u0091\3\2\2\2\3\u0093\3\2\2\2\5\u009a"+
"\3\2\2\2\7\u009c\3\2\2\2\t\u009e\3\2\2\2\13\u00a1\3\2\2\2\r\u00a3\3\2"+
"\2\2\17\u00a9\3\2\2\2\21\u00ab\3\2\2\2\23\u00ae\3\2\2\2\25\u00b0\3\2\2"+
"\2\27\u00b2\3\2\2\2\31\u00b4\3\2\2\2\33\u00ba\3\2\2\2\35\u00bd\3\2\2\2"+
diff --git a/src/main/java/org/apache/sysds/parser/dml/DmlListener.java b/src/main/java/org/apache/sysds/parser/dml/DmlListener.java
index 36904af..470d22f 100644
--- a/src/main/java/org/apache/sysds/parser/dml/DmlListener.java
+++ b/src/main/java/org/apache/sysds/parser/dml/DmlListener.java
@@ -1,4 +1,4 @@
-// Generated from org\apache\sysds\parser\dml\Dml.g4 by ANTLR 4.5.3
+// Generated from org\apache\sysds\parser\dml\Dml.g4 by ANTLR 4.8
package org.apache.sysds.parser.dml;
/*
diff --git a/src/main/java/org/apache/sysds/parser/dml/DmlParser.java b/src/main/java/org/apache/sysds/parser/dml/DmlParser.java
index c751526..531b93c 100644
--- a/src/main/java/org/apache/sysds/parser/dml/DmlParser.java
+++ b/src/main/java/org/apache/sysds/parser/dml/DmlParser.java
@@ -1,4 +1,4 @@
-// Generated from org\apache\sysds\parser\dml\Dml.g4 by ANTLR 4.5.3
+// Generated from org\apache\sysds\parser\dml\Dml.g4 by ANTLR 4.8
package org.apache.sysds.parser.dml;
/*
@@ -31,7 +31,7 @@ import java.util.ArrayList;
@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"})
public class DmlParser extends Parser {
- static { RuntimeMetaData.checkVersion("4.5.3", RuntimeMetaData.VERSION); }
+ static { RuntimeMetaData.checkVersion("4.8", RuntimeMetaData.VERSION); }
protected static final DFA[] _decisionToDFA;
protected static final PredictionContextCache _sharedContextCache =
@@ -54,32 +54,41 @@ public class DmlParser extends Parser {
RULE_typedArgNoAssign = 6, RULE_typedArgAssign = 7, RULE_parameterizedExpression = 8,
RULE_strictParameterizedExpression = 9, RULE_strictParameterizedKeyValueString = 10,
RULE_ml_type = 11, RULE_valueType = 12, RULE_dataType = 13;
- public static final String[] ruleNames = {
- "programroot", "statement", "iterablePredicate", "functionStatement",
- "dataIdentifier", "expression", "typedArgNoAssign", "typedArgAssign",
- "parameterizedExpression", "strictParameterizedExpression", "strictParameterizedKeyValueString",
- "ml_type", "valueType", "dataType"
- };
-
- private static final String[] _LITERAL_NAMES = {
- null, "'source'", "'('", "')'", "'as'", "';'", "'setwd'", "'='", "'<-'",
- "','", "'['", "']'", "'ifdef'", "'+='", "'if'", "'{'", "'}'", "'else'",
- "'for'", "'in'", "'parfor'", "'while'", "':'", "'function'", "'return'",
- "'externalFunction'", "'implemented'", "'^'", "'-'", "'+'", "'%*%'", "'%/%'",
- "'%%'", "'*'", "'/'", "'>'", "'>='", "'<'", "'<='", "'=='", "'!='", "'!'",
- "'&'", "'&&'", "'|'", "'||'", "'TRUE'", "'FALSE'", "'int'", "'integer'",
- "'string'", "'boolean'", "'double'", "'unknown'", "'Int'", "'Integer'",
- "'String'", "'Boolean'", "'Double'", "'Unknown'"
- };
- private static final String[] _SYMBOLIC_NAMES = {
- null, null, null, null, null, null, null, null, null, null, null, null,
- null, null, null, null, null, null, null, null, null, null, null, null,
- null, null, null, null, null, null, null, null, null, null, null, null,
- null, null, null, null, null, null, null, null, null, null, null, null,
- null, null, null, null, null, null, null, null, null, null, null, null,
- "ID", "INT", "DOUBLE", "DIGIT", "ALPHABET", "COMMANDLINE_NAMED_ID", "COMMANDLINE_POSITION_ID",
- "STRING", "LINE_COMMENT", "MULTILINE_BLOCK_COMMENT", "WHITESPACE"
- };
+ private static String[] makeRuleNames() {
+ return new String[] {
+ "programroot", "statement", "iterablePredicate", "functionStatement",
+ "dataIdentifier", "expression", "typedArgNoAssign", "typedArgAssign",
+ "parameterizedExpression", "strictParameterizedExpression", "strictParameterizedKeyValueString",
+ "ml_type", "valueType", "dataType"
+ };
+ }
+ public static final String[] ruleNames = makeRuleNames();
+
+ private static String[] makeLiteralNames() {
+ return new String[] {
+ null, "'source'", "'('", "')'", "'as'", "';'", "'setwd'", "'='", "'<-'",
+ "','", "'['", "']'", "'ifdef'", "'+='", "'if'", "'{'", "'}'", "'else'",
+ "'for'", "'in'", "'parfor'", "'while'", "':'", "'function'", "'return'",
+ "'externalFunction'", "'implemented'", "'^'", "'-'", "'+'", "'%*%'",
+ "'%/%'", "'%%'", "'*'", "'/'", "'>'", "'>='", "'<'", "'<='", "'=='",
+ "'!='", "'!'", "'&'", "'&&'", "'|'", "'||'", "'TRUE'", "'FALSE'", "'int'",
+ "'integer'", "'string'", "'boolean'", "'double'", "'unknown'", "'Int'",
+ "'Integer'", "'String'", "'Boolean'", "'Double'", "'Unknown'"
+ };
+ }
+ private static final String[] _LITERAL_NAMES = makeLiteralNames();
+ private static String[] makeSymbolicNames() {
+ return new String[] {
+ null, null, null, null, null, null, null, null, null, null, null, null,
+ null, null, null, null, null, null, null, null, null, null, null, null,
+ null, null, null, null, null, null, null, null, null, null, null, null,
+ null, null, null, null, null, null, null, null, null, null, null, null,
+ null, null, null, null, null, null, null, null, null, null, null, null,
+ "ID", "INT", "DOUBLE", "DIGIT", "ALPHABET", "COMMANDLINE_NAMED_ID", "COMMANDLINE_POSITION_ID",
+ "STRING", "LINE_COMMENT", "MULTILINE_BLOCK_COMMENT", "WHITESPACE"
+ };
+ }
+ private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames();
public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES);
/**
@@ -129,6 +138,7 @@ public class DmlParser extends Parser {
super(input);
_interp = new ParserATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache);
}
+
public static class ProgramrootContext extends ParserRuleContext {
public StatementContext statement;
public List<StatementContext> blocks = new ArrayList<StatementContext>();
@@ -576,7 +586,10 @@ public class DmlParser extends Parser {
_la = _input.LA(1);
if ( !(_la==T__6 || _la==T__7) ) {
_errHandler.recoverInline(this);
- } else {
+ }
+ else {
+ if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
+ _errHandler.reportMatch(this);
consume();
}
}
@@ -587,6 +600,7 @@ public class DmlParser extends Parser {
setState(65);
match(T__1);
setState(74);
+ _errHandler.sync(this);
_la = _input.LA(1);
if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__1) | (1L << T__9) | (1L << T__27) | (1L << T__28) | (1L << T__40) | (1L << T__45) | (1L << T__46) | (1L << ID) | (1L << INT) | (1L << DOUBLE))) != 0) || ((((_la - 65)) & ~0x3f) == 0 && ((1L << (_la - 65)) & ((1L << (COMMANDLINE_NAMED_ID - 65)) | (1L << (COMMANDLINE_POSITION_ID - 65)) | (1L << (STRING - 65)))) != 0)) {
{
@@ -665,7 +679,10 @@ public class DmlParser extends Parser {
_la = _input.LA(1);
if ( !(_la==T__6 || _la==T__7) ) {
_errHandler.recoverInline(this);
- } else {
+ }
+ else {
+ if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
+ _errHandler.reportMatch(this);
consume();
}
setState(94);
@@ -673,6 +690,7 @@ public class DmlParser extends Parser {
setState(95);
match(T__1);
setState(104);
+ _errHandler.sync(this);
_la = _input.LA(1);
if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__1) | (1L << T__9) | (1L << T__27) | (1L << T__28) | (1L << T__40) | (1L << T__45) | (1L << T__46) | (1L << ID) | (1L << INT) | (1L << DOUBLE))) != 0) || ((((_la - 65)) & ~0x3f) == 0 && ((1L << (_la - 65)) & ((1L << (COMMANDLINE_NAMED_ID - 65)) | (1L << (COMMANDLINE_POSITION_ID - 65)) | (1L << (STRING - 65)))) != 0)) {
{
@@ -730,7 +748,10 @@ public class DmlParser extends Parser {
_la = _input.LA(1);
if ( !(_la==T__6 || _la==T__7) ) {
((IfdefAssignmentStatementContext)_localctx).op = (Token)_errHandler.recoverInline(this);
- } else {
+ }
+ else {
+ if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
+ _errHandler.reportMatch(this);
consume();
}
setState(115);
@@ -774,7 +795,10 @@ public class DmlParser extends Parser {
_la = _input.LA(1);
if ( !(_la==T__6 || _la==T__7) ) {
((AssignmentStatementContext)_localctx).op = (Token)_errHandler.recoverInline(this);
- } else {
+ }
+ else {
+ if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
+ _errHandler.reportMatch(this);
consume();
}
setState(129);
@@ -838,6 +862,7 @@ public class DmlParser extends Parser {
setState(148);
match(T__2);
setState(170);
+ _errHandler.sync(this);
switch (_input.LA(1)) {
case T__0:
case T__5:
@@ -919,6 +944,7 @@ public class DmlParser extends Parser {
setState(172);
match(T__16);
setState(194);
+ _errHandler.sync(this);
switch (_input.LA(1)) {
case T__0:
case T__5:
@@ -1031,6 +1057,7 @@ public class DmlParser extends Parser {
setState(210);
match(T__2);
setState(232);
+ _errHandler.sync(this);
switch (_input.LA(1)) {
case T__0:
case T__5:
@@ -1140,6 +1167,7 @@ public class DmlParser extends Parser {
setState(246);
match(T__2);
setState(268);
+ _errHandler.sync(this);
switch (_input.LA(1)) {
case T__0:
case T__5:
@@ -1228,6 +1256,7 @@ public class DmlParser extends Parser {
setState(273);
match(T__2);
setState(295);
+ _errHandler.sync(this);
switch (_input.LA(1)) {
case T__0:
case T__5:
@@ -1409,6 +1438,7 @@ public class DmlParser extends Parser {
setState(307);
((IterablePredicateSeqExpressionContext)_localctx).to = expression(0);
setState(310);
+ _errHandler.sync(this);
_la = _input.LA(1);
if (_la==T__8) {
{
@@ -1539,7 +1569,10 @@ public class DmlParser extends Parser {
_la = _input.LA(1);
if ( !(_la==T__6 || _la==T__7) ) {
_errHandler.recoverInline(this);
- } else {
+ }
+ else {
+ if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
+ _errHandler.reportMatch(this);
consume();
}
setState(318);
@@ -1547,6 +1580,7 @@ public class DmlParser extends Parser {
setState(319);
match(T__1);
setState(328);
+ _errHandler.sync(this);
_la = _input.LA(1);
if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__47) | (1L << T__48) | (1L << T__49) | (1L << T__50) | (1L << T__51) | (1L << T__52) | (1L << T__53) | (1L << T__54) | (1L << T__55) | (1L << T__56) | (1L << T__57) | (1L << T__58) | (1L << ID))) != 0)) {
{
@@ -1576,6 +1610,7 @@ public class DmlParser extends Parser {
setState(330);
match(T__2);
setState(344);
+ _errHandler.sync(this);
_la = _input.LA(1);
if (_la==T__23) {
{
@@ -1584,6 +1619,7 @@ public class DmlParser extends Parser {
setState(332);
match(T__1);
setState(341);
+ _errHandler.sync(this);
_la = _input.LA(1);
if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__47) | (1L << T__48) | (1L << T__49) | (1L << T__50) | (1L << T__51) | (1L << T__52) | (1L << T__53) | (1L << T__54) | (1L << T__55) | (1L << T__56) | (1L << T__57) | (1L << T__58) | (1L << ID))) != 0)) {
{
@@ -1674,7 +1710,10 @@ public class DmlParser extends Parser {
_la = _input.LA(1);
if ( !(_la==T__6 || _la==T__7) ) {
_errHandler.recoverInline(this);
- } else {
+ }
+ else {
+ if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
+ _errHandler.reportMatch(this);
consume();
}
setState(368);
@@ -1682,6 +1721,7 @@ public class DmlParser extends Parser {
setState(369);
match(T__1);
setState(378);
+ _errHandler.sync(this);
_la = _input.LA(1);
if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__47) | (1L << T__48) | (1L << T__49) | (1L << T__50) | (1L << T__51) | (1L << T__52) | (1L << T__53) | (1L << T__54) | (1L << T__55) | (1L << T__56) | (1L << T__57) | (1L << T__58) | (1L << ID))) != 0)) {
{
@@ -1711,6 +1751,7 @@ public class DmlParser extends Parser {
setState(380);
match(T__2);
setState(394);
+ _errHandler.sync(this);
_la = _input.LA(1);
if (_la==T__23) {
{
@@ -1719,6 +1760,7 @@ public class DmlParser extends Parser {
setState(382);
match(T__1);
setState(391);
+ _errHandler.sync(this);
_la = _input.LA(1);
if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__47) | (1L << T__48) | (1L << T__49) | (1L << T__50) | (1L << T__51) | (1L << T__52) | (1L << T__53) | (1L << T__54) | (1L << T__55) | (1L << T__56) | (1L << T__57) | (1L << T__58) | (1L << ID))) != 0)) {
{
@@ -1757,6 +1799,7 @@ public class DmlParser extends Parser {
setState(398);
match(T__1);
setState(407);
+ _errHandler.sync(this);
_la = _input.LA(1);
if (_la==ID) {
{
@@ -1909,12 +1952,14 @@ public class DmlParser extends Parser {
setState(419);
match(T__9);
setState(425);
+ _errHandler.sync(this);
_la = _input.LA(1);
if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__1) | (1L << T__9) | (1L << T__27) | (1L << T__28) | (1L << T__40) | (1L << T__45) | (1L << T__46) | (1L << ID) | (1L << INT) | (1L << DOUBLE))) != 0) || ((((_la - 65)) & ~0x3f) == 0 && ((1L << (_la - 65)) & ((1L << (COMMANDLINE_NAMED_ID - 65)) | (1L << (COMMANDLINE_POSITION_ID - 65)) | (1L << (STRING - 65)))) != 0)) {
{
setState(420);
((IndexedExpressionContext)_localctx).rowLower = expression(0);
setState(423);
+ _errHandler.sync(this);
_la = _input.LA(1);
if (_la==T__21) {
{
@@ -1929,18 +1974,21 @@ public class DmlParser extends Parser {
}
setState(435);
+ _errHandler.sync(this);
_la = _input.LA(1);
if (_la==T__8) {
{
setState(427);
match(T__8);
setState(433);
+ _errHandler.sync(this);
_la = _input.LA(1);
if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__1) | (1L << T__9) | (1L << T__27) | (1L << T__28) | (1L << T__40) | (1L << T__45) | (1L << T__46) | (1L << ID) | (1L << INT) | (1L << DOUBLE))) != 0) || ((((_la - 65)) & ~0x3f) == 0 && ((1L << (_la - 65)) & ((1L << (COMMANDLINE_NAMED_ID - 65)) | (1L << (COMMANDLINE_POSITION_ID - 65)) | (1L << (STRING - 65)))) != 0)) {
{
setState(428);
((IndexedExpressionContext)_localctx).colLower = expression(0);
setState(431);
+ _errHandler.sync(this);
_la = _input.LA(1);
if (_la==T__21) {
{
@@ -2366,7 +2414,10 @@ public class DmlParser extends Parser {
_la = _input.LA(1);
if ( !(_la==T__27 || _la==T__28) ) {
((UnaryExpressionContext)_localctx).op = (Token)_errHandler.recoverInline(this);
- } else {
+ }
+ else {
+ if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
+ _errHandler.reportMatch(this);
consume();
}
setState(445);
@@ -2394,6 +2445,7 @@ public class DmlParser extends Parser {
setState(449);
match(T__1);
setState(458);
+ _errHandler.sync(this);
_la = _input.LA(1);
if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__1) | (1L << T__9) | (1L << T__27) | (1L << T__28) | (1L << T__40) | (1L << T__45) | (1L << T__46) | (1L << ID) | (1L << INT) | (1L << DOUBLE))) != 0) || ((((_la - 65)) & ~0x3f) == 0 && ((1L << (_la - 65)) & ((1L << (COMMANDLINE_NAMED_ID - 65)) | (1L << (COMMANDLINE_POSITION_ID - 65)) | (1L << (STRING - 65)))) != 0)) {
{
@@ -2589,7 +2641,10 @@ public class DmlParser extends Parser {
_la = _input.LA(1);
if ( !(_la==T__30 || _la==T__31) ) {
((ModIntDivExpressionContext)_localctx).op = (Token)_errHandler.recoverInline(this);
- } else {
+ }
+ else {
+ if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
+ _errHandler.reportMatch(this);
consume();
}
setState(498);
@@ -2608,7 +2663,10 @@ public class DmlParser extends Parser {
_la = _input.LA(1);
if ( !(_la==T__32 || _la==T__33) ) {
((MultDivExpressionContext)_localctx).op = (Token)_errHandler.recoverInline(this);
- } else {
+ }
+ else {
+ if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
+ _errHandler.reportMatch(this);
consume();
}
setState(501);
@@ -2627,7 +2685,10 @@ public class DmlParser extends Parser {
_la = _input.LA(1);
if ( !(_la==T__27 || _la==T__28) ) {
((AddSubExpressionContext)_localctx).op = (Token)_errHandler.recoverInline(this);
- } else {
+ }
+ else {
+ if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
+ _errHandler.reportMatch(this);
consume();
}
setState(504);
@@ -2646,7 +2707,10 @@ public class DmlParser extends Parser {
_la = _input.LA(1);
if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__34) | (1L << T__35) | (1L << T__36) | (1L << T__37) | (1L << T__38) | (1L << T__39))) != 0)) ) {
((RelationalExpressionContext)_localctx).op = (Token)_errHandler.recoverInline(this);
- } else {
+ }
+ else {
+ if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
+ _errHandler.reportMatch(this);
consume();
}
setState(507);
@@ -2665,7 +2729,10 @@ public class DmlParser extends Parser {
_la = _input.LA(1);
if ( !(_la==T__41 || _la==T__42) ) {
((BooleanAndExpressionContext)_localctx).op = (Token)_errHandler.recoverInline(this);
- } else {
+ }
+ else {
+ if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
+ _errHandler.reportMatch(this);
consume();
}
setState(510);
@@ -2684,7 +2751,10 @@ public class DmlParser extends Parser {
_la = _input.LA(1);
if ( !(_la==T__43 || _la==T__44) ) {
((BooleanOrExpressionContext)_localctx).op = (Token)_errHandler.recoverInline(this);
- } else {
+ }
+ else {
+ if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
+ _errHandler.reportMatch(this);
consume();
}
setState(513);
@@ -2999,6 +3069,7 @@ public class DmlParser extends Parser {
enterRule(_localctx, 22, RULE_ml_type);
try {
setState(551);
+ _errHandler.sync(this);
switch (_input.LA(1)) {
case T__47:
case T__48:
@@ -3072,7 +3143,10 @@ public class DmlParser extends Parser {
_la = _input.LA(1);
if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__47) | (1L << T__48) | (1L << T__49) | (1L << T__50) | (1L << T__51) | (1L << T__52) | (1L << T__53) | (1L << T__54) | (1L << T__55) | (1L << T__56) | (1L << T__57) | (1L << T__58))) != 0)) ) {
_errHandler.recoverInline(this);
- } else {
+ }
+ else {
+ if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
+ _errHandler.reportMatch(this);
consume();
}
}
@@ -3164,7 +3238,7 @@ public class DmlParser extends Parser {
}
public static final String _serializedATN =
- "\3\u0430\ud6d1\u8206\uad2d\u4417\uaef1\u8d80\uaadd\3H\u0230\4\2\t\2\4"+
+ "\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\3H\u0230\4\2\t\2\4"+
"\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13\t"+
"\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\3\2\3\2\7\2!\n\2\f\2\16\2$\13"+
"\2\3\2\3\2\3\3\3\3\3\3\3\3\3\3\3\3\3\3\7\3/\n\3\f\3\16\3\62\13\3\3\3\3"+
@@ -3208,19 +3282,19 @@ public class DmlParser extends Parser {
"\n\3\n\3\13\3\13\3\13\3\13\3\f\3\f\3\f\3\f\3\r\3\r\3\r\3\r\3\r\3\r\5\r"+
"\u022a\n\r\3\16\3\16\3\17\3\17\3\17\2\3\f\20\2\4\6\b\n\f\16\20\22\24\26"+
"\30\32\34\2\n\3\2\t\n\3\2\36\37\3\2!\"\3\2#$\3\2%*\3\2,-\3\2./\3\2\62"+
- "=\u0286\2\"\3\2\2\2\4\u012b\3\2\2\2\6\u013c\3\2\2\2\b\u01a2\3\2\2\2\n"+
- "\u01bb\3\2\2\2\f\u01ea\3\2\2\2\16\u0209\3\2\2\2\20\u020c\3\2\2\2\22\u0217"+
- "\3\2\2\2\24\u021b\3\2\2\2\26\u021f\3\2\2\2\30\u0229\3\2\2\2\32\u022b\3"+
- "\2\2\2\34\u022d\3\2\2\2\36!\5\4\3\2\37!\5\b\5\2 \36\3\2\2\2 \37\3\2\2"+
- "\2!$\3\2\2\2\" \3\2\2\2\"#\3\2\2\2#%\3\2\2\2$\"\3\2\2\2%&\7\2\2\3&\3\3"+
- "\2\2\2\'(\7\3\2\2()\7\4\2\2)*\7E\2\2*+\7\5\2\2+,\7\6\2\2,\60\7>\2\2-/"+
- "\7\7\2\2.-\3\2\2\2/\62\3\2\2\2\60.\3\2\2\2\60\61\3\2\2\2\61\u012c\3\2"+
- "\2\2\62\60\3\2\2\2\63\64\7\b\2\2\64\65\7\4\2\2\65\66\7E\2\2\66:\7\5\2"+
- "\2\679\7\7\2\28\67\3\2\2\29<\3\2\2\2:8\3\2\2\2:;\3\2\2\2;\u012c\3\2\2"+
- "\2<:\3\2\2\2=>\5\n\6\2>?\t\2\2\2?A\3\2\2\2@=\3\2\2\2@A\3\2\2\2AB\3\2\2"+
- "\2BC\7>\2\2CL\7\4\2\2DI\5\22\n\2EF\7\13\2\2FH\5\22\n\2GE\3\2\2\2HK\3\2"+
- "\2\2IG\3\2\2\2IJ\3\2\2\2JM\3\2\2\2KI\3\2\2\2LD\3\2\2\2LM\3\2\2\2MN\3\2"+
- "\2\2NR\7\5\2\2OQ\7\7\2\2PO\3\2\2\2QT\3\2\2\2RP\3\2\2\2RS\3\2\2\2S\u012c"+
+ "=\2\u0286\2\"\3\2\2\2\4\u012b\3\2\2\2\6\u013c\3\2\2\2\b\u01a2\3\2\2\2"+
+ "\n\u01bb\3\2\2\2\f\u01ea\3\2\2\2\16\u0209\3\2\2\2\20\u020c\3\2\2\2\22"+
+ "\u0217\3\2\2\2\24\u021b\3\2\2\2\26\u021f\3\2\2\2\30\u0229\3\2\2\2\32\u022b"+
+ "\3\2\2\2\34\u022d\3\2\2\2\36!\5\4\3\2\37!\5\b\5\2 \36\3\2\2\2 \37\3\2"+
+ "\2\2!$\3\2\2\2\" \3\2\2\2\"#\3\2\2\2#%\3\2\2\2$\"\3\2\2\2%&\7\2\2\3&\3"+
+ "\3\2\2\2\'(\7\3\2\2()\7\4\2\2)*\7E\2\2*+\7\5\2\2+,\7\6\2\2,\60\7>\2\2"+
+ "-/\7\7\2\2.-\3\2\2\2/\62\3\2\2\2\60.\3\2\2\2\60\61\3\2\2\2\61\u012c\3"+
+ "\2\2\2\62\60\3\2\2\2\63\64\7\b\2\2\64\65\7\4\2\2\65\66\7E\2\2\66:\7\5"+
+ "\2\2\679\7\7\2\28\67\3\2\2\29<\3\2\2\2:8\3\2\2\2:;\3\2\2\2;\u012c\3\2"+
+ "\2\2<:\3\2\2\2=>\5\n\6\2>?\t\2\2\2?A\3\2\2\2@=\3\2\2\2@A\3\2\2\2AB\3\2"+
+ "\2\2BC\7>\2\2CL\7\4\2\2DI\5\22\n\2EF\7\13\2\2FH\5\22\n\2GE\3\2\2\2HK\3"+
+ "\2\2\2IG\3\2\2\2IJ\3\2\2\2JM\3\2\2\2KI\3\2\2\2LD\3\2\2\2LM\3\2\2\2MN\3"+
+ "\2\2\2NR\7\5\2\2OQ\7\7\2\2PO\3\2\2\2QT\3\2\2\2RP\3\2\2\2RS\3\2\2\2S\u012c"+
"\3\2\2\2TR\3\2\2\2UV\7\f\2\2V[\5\n\6\2WX\7\13\2\2XZ\5\n\6\2YW\3\2\2\2"+
"Z]\3\2\2\2[Y\3\2\2\2[\\\3\2\2\2\\^\3\2\2\2][\3\2\2\2^_\7\r\2\2_`\t\2\2"+
"\2`a\7>\2\2aj\7\4\2\2bg\5\22\n\2cd\7\13\2\2df\5\22\n\2ec\3\2\2\2fi\3\2"+