Update DSL and sample

This commit is contained in:
Sipke Schoorstra 2022-03-28 13:25:45 +02:00
parent c13825a930
commit 3deac4fb0c
33 changed files with 5815 additions and 3189 deletions

163
gen/ElsaLexer.interp Normal file

File diff suppressed because one or more lines are too long

236
gen/ElsaLexer.java Normal file
View file

@ -0,0 +1,236 @@
// Generated from C:/Projects/Elsa/v3/src/dsl/Elsa.Dsl/Dsl\ElsaLexer.g4 by ANTLR 4.9.2
import org.antlr.v4.runtime.Lexer;
import org.antlr.v4.runtime.CharStream;
import org.antlr.v4.runtime.Token;
import org.antlr.v4.runtime.TokenStream;
import org.antlr.v4.runtime.*;
import org.antlr.v4.runtime.atn.*;
import org.antlr.v4.runtime.dfa.DFA;
import org.antlr.v4.runtime.misc.*;
@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"})
public class ElsaLexer extends Lexer {
static { RuntimeMetaData.checkVersion("4.9.2", RuntimeMetaData.VERSION); }
protected static final DFA[] _decisionToDFA;
protected static final PredictionContextCache _sharedContextCache =
new PredictionContextCache();
public static final int
EQ=1, GREATER=2, INCREMENT=3, DECREMENT=4, NEW=5, VARIABLE=6, LET=7, IF=8,
THEN=9, ELSE=10, FOR=11, RETURN=12, VOID=13, FLOAT=14, INT=15, STRING=16,
OBJECT=17, EXPRESSION_MARKER=18, SYMBOL=19, COLON=20, SEMICOLON=21, COMMA=22,
PLUS=23, MINUS=24, STAR=25, EQUALS=26, NOT_EQUALS=27, GREATER_EQUALS=28,
LESS=29, LESS_EQUALS=30, LAMBDA=31, PARENTHESES_OPEN=32, PARENTHESES_CLOSE=33,
BRACKET_OPEN=34, BRACKET_CLOSE=35, CURLYBRACE_OPEN=36, CURLYBRACE_CLOSE=37,
EXCLAMATION=38, PIPE=39, PIPE_DBL=40, PERIOD=41, STRING_VAL=42, BACKTICKSTRING_VAL=43,
LINE_COMMENT=44, INTEGER_VAL=45, ID=46, WS=47, ESC=48;
public static String[] channelNames = {
"DEFAULT_TOKEN_CHANNEL", "HIDDEN"
};
public static String[] modeNames = {
"DEFAULT_MODE"
};
private static String[] makeRuleNames() {
return new String[] {
"EQ", "GREATER", "INCREMENT", "DECREMENT", "NEW", "VARIABLE", "LET",
"IF", "THEN", "ELSE", "FOR", "RETURN", "VOID", "FLOAT", "INT", "STRING",
"OBJECT", "EXPRESSION_MARKER", "SYMBOL", "COLON", "SEMICOLON", "COMMA",
"PLUS", "MINUS", "STAR", "EQUALS", "NOT_EQUALS", "GREATER_EQUALS", "LESS",
"LESS_EQUALS", "LAMBDA", "PARENTHESES_OPEN", "PARENTHESES_CLOSE", "BRACKET_OPEN",
"BRACKET_CLOSE", "CURLYBRACE_OPEN", "CURLYBRACE_CLOSE", "EXCLAMATION",
"PIPE", "PIPE_DBL", "PERIOD", "STRING_VAL", "BACKTICKSTRING_VAL", "LINE_COMMENT",
"INTEGER_VAL", "ID", "WS", "LETTER", "DIGIT", "ESC"
};
}
public static final String[] ruleNames = makeRuleNames();
private static String[] makeLiteralNames() {
return new String[] {
null, "'='", "'>'", "'++'", "'--'", "'new'", "'variable'", "'let'", "'if'",
"'then'", "'else'", "'for'", "'return'", "'void'", "'float'", "'int'",
"'string'", "'object'", "'expression'", null, "':'", "';'", "','", "'+'",
"'-'", "'*'", "'=='", "'!='", "'>='", "'<'", "'<='", "'=>'", "'('", "')'",
"'['", "']'", "'{'", "'}'", "'!'", "'|'", "'||'", "'.'", null, null,
null, null, null, null, "'\\|'"
};
}
private static final String[] _LITERAL_NAMES = makeLiteralNames();
private static String[] makeSymbolicNames() {
return new String[] {
null, "EQ", "GREATER", "INCREMENT", "DECREMENT", "NEW", "VARIABLE", "LET",
"IF", "THEN", "ELSE", "FOR", "RETURN", "VOID", "FLOAT", "INT", "STRING",
"OBJECT", "EXPRESSION_MARKER", "SYMBOL", "COLON", "SEMICOLON", "COMMA",
"PLUS", "MINUS", "STAR", "EQUALS", "NOT_EQUALS", "GREATER_EQUALS", "LESS",
"LESS_EQUALS", "LAMBDA", "PARENTHESES_OPEN", "PARENTHESES_CLOSE", "BRACKET_OPEN",
"BRACKET_CLOSE", "CURLYBRACE_OPEN", "CURLYBRACE_CLOSE", "EXCLAMATION",
"PIPE", "PIPE_DBL", "PERIOD", "STRING_VAL", "BACKTICKSTRING_VAL", "LINE_COMMENT",
"INTEGER_VAL", "ID", "WS", "ESC"
};
}
private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames();
public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES);
/**
* @deprecated Use {@link #VOCABULARY} instead.
*/
@Deprecated
public static final String[] tokenNames;
static {
tokenNames = new String[_SYMBOLIC_NAMES.length];
for (int i = 0; i < tokenNames.length; i++) {
tokenNames[i] = VOCABULARY.getLiteralName(i);
if (tokenNames[i] == null) {
tokenNames[i] = VOCABULARY.getSymbolicName(i);
}
if (tokenNames[i] == null) {
tokenNames[i] = "<INVALID>";
}
}
}
@Override
@Deprecated
public String[] getTokenNames() {
return tokenNames;
}
@Override
public Vocabulary getVocabulary() {
return VOCABULARY;
}
public ElsaLexer(CharStream input) {
super(input);
_interp = new LexerATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache);
}
@Override
public String getGrammarFileName() { return "ElsaLexer.g4"; }
@Override
public String[] getRuleNames() { return ruleNames; }
@Override
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\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\2\62\u0134\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\4\32\t\32\4\33\t\33\4\34\t\34\4\35\t\35\4\36\t\36\4\37\t\37\4 \t"+
" \4!\t!\4\"\t\"\4#\t#\4$\t$\4%\t%\4&\t&\4\'\t\'\4(\t(\4)\t)\4*\t*\4+\t"+
"+\4,\t,\4-\t-\4.\t.\4/\t/\4\60\t\60\4\61\t\61\4\62\t\62\4\63\t\63\3\2"+
"\3\2\3\3\3\3\3\4\3\4\3\4\3\5\3\5\3\5\3\6\3\6\3\6\3\6\3\7\3\7\3\7\3\7\3"+
"\7\3\7\3\7\3\7\3\7\3\b\3\b\3\b\3\b\3\t\3\t\3\t\3\n\3\n\3\n\3\n\3\n\3\13"+
"\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\3\r\3\16"+
"\3\16\3\16\3\16\3\16\3\17\3\17\3\17\3\17\3\17\3\17\3\20\3\20\3\20\3\20"+
"\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\22\3\22\3\22\3\22\3\22\3\22\3\22"+
"\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\24\3\24\3\25"+
"\3\25\3\26\3\26\3\27\3\27\3\30\3\30\3\31\3\31\3\32\3\32\3\33\3\33\3\33"+
"\3\34\3\34\3\34\3\35\3\35\3\35\3\36\3\36\3\37\3\37\3\37\3 \3 \3 \3!\3"+
"!\3\"\3\"\3#\3#\3$\3$\3%\3%\3&\3&\3\'\3\'\3(\3(\3)\3)\3)\3*\3*\3+\3+\3"+
"+\3+\7+\u00fb\n+\f+\16+\u00fe\13+\3+\3+\3,\3,\3,\3,\7,\u0106\n,\f,\16"+
",\u0109\13,\3,\3,\3-\3-\3-\3-\7-\u0111\n-\f-\16-\u0114\13-\3-\5-\u0117"+
"\n-\3-\3-\3-\3-\3.\6.\u011e\n.\r.\16.\u011f\3/\3/\3/\7/\u0125\n/\f/\16"+
"/\u0128\13/\3\60\3\60\3\60\3\60\3\61\3\61\3\62\3\62\3\63\3\63\3\63\5\u00fc"+
"\u0107\u0112\2\64\3\3\5\4\7\5\t\6\13\7\r\b\17\t\21\n\23\13\25\f\27\r\31"+
"\16\33\17\35\20\37\21!\22#\23%\24\'\25)\26+\27-\30/\31\61\32\63\33\65"+
"\34\67\359\36;\37= ?!A\"C#E$G%I&K\'M(O)Q*S+U,W-Y.[/]\60_\61a\2c\2e\62"+
"\3\2\6\6\2&&--?@bb\5\2\13\f\17\17\"\"\5\2C\\aac|\3\2\62;\2\u013a\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\2e\3\2\2\2"+
"\3g\3\2\2\2\5i\3\2\2\2\7k\3\2\2\2\tn\3\2\2\2\13q\3\2\2\2\ru\3\2\2\2\17"+
"~\3\2\2\2\21\u0082\3\2\2\2\23\u0085\3\2\2\2\25\u008a\3\2\2\2\27\u008f"+
"\3\2\2\2\31\u0093\3\2\2\2\33\u009a\3\2\2\2\35\u009f\3\2\2\2\37\u00a5\3"+
"\2\2\2!\u00a9\3\2\2\2#\u00b0\3\2\2\2%\u00b7\3\2\2\2\'\u00c2\3\2\2\2)\u00c4"+
"\3\2\2\2+\u00c6\3\2\2\2-\u00c8\3\2\2\2/\u00ca\3\2\2\2\61\u00cc\3\2\2\2"+
"\63\u00ce\3\2\2\2\65\u00d0\3\2\2\2\67\u00d3\3\2\2\29\u00d6\3\2\2\2;\u00d9"+
"\3\2\2\2=\u00db\3\2\2\2?\u00de\3\2\2\2A\u00e1\3\2\2\2C\u00e3\3\2\2\2E"+
"\u00e5\3\2\2\2G\u00e7\3\2\2\2I\u00e9\3\2\2\2K\u00eb\3\2\2\2M\u00ed\3\2"+
"\2\2O\u00ef\3\2\2\2Q\u00f1\3\2\2\2S\u00f4\3\2\2\2U\u00f6\3\2\2\2W\u0101"+
"\3\2\2\2Y\u010c\3\2\2\2[\u011d\3\2\2\2]\u0121\3\2\2\2_\u0129\3\2\2\2a"+
"\u012d\3\2\2\2c\u012f\3\2\2\2e\u0131\3\2\2\2gh\7?\2\2h\4\3\2\2\2ij\7@"+
"\2\2j\6\3\2\2\2kl\7-\2\2lm\7-\2\2m\b\3\2\2\2no\7/\2\2op\7/\2\2p\n\3\2"+
"\2\2qr\7p\2\2rs\7g\2\2st\7y\2\2t\f\3\2\2\2uv\7x\2\2vw\7c\2\2wx\7t\2\2"+
"xy\7k\2\2yz\7c\2\2z{\7d\2\2{|\7n\2\2|}\7g\2\2}\16\3\2\2\2~\177\7n\2\2"+
"\177\u0080\7g\2\2\u0080\u0081\7v\2\2\u0081\20\3\2\2\2\u0082\u0083\7k\2"+
"\2\u0083\u0084\7h\2\2\u0084\22\3\2\2\2\u0085\u0086\7v\2\2\u0086\u0087"+
"\7j\2\2\u0087\u0088\7g\2\2\u0088\u0089\7p\2\2\u0089\24\3\2\2\2\u008a\u008b"+
"\7g\2\2\u008b\u008c\7n\2\2\u008c\u008d\7u\2\2\u008d\u008e\7g\2\2\u008e"+
"\26\3\2\2\2\u008f\u0090\7h\2\2\u0090\u0091\7q\2\2\u0091\u0092\7t\2\2\u0092"+
"\30\3\2\2\2\u0093\u0094\7t\2\2\u0094\u0095\7g\2\2\u0095\u0096\7v\2\2\u0096"+
"\u0097\7w\2\2\u0097\u0098\7t\2\2\u0098\u0099\7p\2\2\u0099\32\3\2\2\2\u009a"+
"\u009b\7x\2\2\u009b\u009c\7q\2\2\u009c\u009d\7k\2\2\u009d\u009e\7f\2\2"+
"\u009e\34\3\2\2\2\u009f\u00a0\7h\2\2\u00a0\u00a1\7n\2\2\u00a1\u00a2\7"+
"q\2\2\u00a2\u00a3\7c\2\2\u00a3\u00a4\7v\2\2\u00a4\36\3\2\2\2\u00a5\u00a6"+
"\7k\2\2\u00a6\u00a7\7p\2\2\u00a7\u00a8\7v\2\2\u00a8 \3\2\2\2\u00a9\u00aa"+
"\7u\2\2\u00aa\u00ab\7v\2\2\u00ab\u00ac\7t\2\2\u00ac\u00ad\7k\2\2\u00ad"+
"\u00ae\7p\2\2\u00ae\u00af\7i\2\2\u00af\"\3\2\2\2\u00b0\u00b1\7q\2\2\u00b1"+
"\u00b2\7d\2\2\u00b2\u00b3\7l\2\2\u00b3\u00b4\7g\2\2\u00b4\u00b5\7e\2\2"+
"\u00b5\u00b6\7v\2\2\u00b6$\3\2\2\2\u00b7\u00b8\7g\2\2\u00b8\u00b9\7z\2"+
"\2\u00b9\u00ba\7r\2\2\u00ba\u00bb\7t\2\2\u00bb\u00bc\7g\2\2\u00bc\u00bd"+
"\7u\2\2\u00bd\u00be\7u\2\2\u00be\u00bf\7k\2\2\u00bf\u00c0\7q\2\2\u00c0"+
"\u00c1\7p\2\2\u00c1&\3\2\2\2\u00c2\u00c3\t\2\2\2\u00c3(\3\2\2\2\u00c4"+
"\u00c5\7<\2\2\u00c5*\3\2\2\2\u00c6\u00c7\7=\2\2\u00c7,\3\2\2\2\u00c8\u00c9"+
"\7.\2\2\u00c9.\3\2\2\2\u00ca\u00cb\7-\2\2\u00cb\60\3\2\2\2\u00cc\u00cd"+
"\7/\2\2\u00cd\62\3\2\2\2\u00ce\u00cf\7,\2\2\u00cf\64\3\2\2\2\u00d0\u00d1"+
"\7?\2\2\u00d1\u00d2\7?\2\2\u00d2\66\3\2\2\2\u00d3\u00d4\7#\2\2\u00d4\u00d5"+
"\7?\2\2\u00d58\3\2\2\2\u00d6\u00d7\7@\2\2\u00d7\u00d8\7?\2\2\u00d8:\3"+
"\2\2\2\u00d9\u00da\7>\2\2\u00da<\3\2\2\2\u00db\u00dc\7>\2\2\u00dc\u00dd"+
"\7?\2\2\u00dd>\3\2\2\2\u00de\u00df\7?\2\2\u00df\u00e0\7@\2\2\u00e0@\3"+
"\2\2\2\u00e1\u00e2\7*\2\2\u00e2B\3\2\2\2\u00e3\u00e4\7+\2\2\u00e4D\3\2"+
"\2\2\u00e5\u00e6\7]\2\2\u00e6F\3\2\2\2\u00e7\u00e8\7_\2\2\u00e8H\3\2\2"+
"\2\u00e9\u00ea\7}\2\2\u00eaJ\3\2\2\2\u00eb\u00ec\7\177\2\2\u00ecL\3\2"+
"\2\2\u00ed\u00ee\7#\2\2\u00eeN\3\2\2\2\u00ef\u00f0\7~\2\2\u00f0P\3\2\2"+
"\2\u00f1\u00f2\7~\2\2\u00f2\u00f3\7~\2\2\u00f3R\3\2\2\2\u00f4\u00f5\7"+
"\60\2\2\u00f5T\3\2\2\2\u00f6\u00fc\7$\2\2\u00f7\u00f8\7^\2\2\u00f8\u00fb"+
"\7$\2\2\u00f9\u00fb\13\2\2\2\u00fa\u00f7\3\2\2\2\u00fa\u00f9\3\2\2\2\u00fb"+
"\u00fe\3\2\2\2\u00fc\u00fd\3\2\2\2\u00fc\u00fa\3\2\2\2\u00fd\u00ff\3\2"+
"\2\2\u00fe\u00fc\3\2\2\2\u00ff\u0100\7$\2\2\u0100V\3\2\2\2\u0101\u0107"+
"\7b\2\2\u0102\u0103\7^\2\2\u0103\u0106\7$\2\2\u0104\u0106\13\2\2\2\u0105"+
"\u0102\3\2\2\2\u0105\u0104\3\2\2\2\u0106\u0109\3\2\2\2\u0107\u0108\3\2"+
"\2\2\u0107\u0105\3\2\2\2\u0108\u010a\3\2\2\2\u0109\u0107\3\2\2\2\u010a"+
"\u010b\7b\2\2\u010bX\3\2\2\2\u010c\u010d\7\61\2\2\u010d\u010e\7\61\2\2"+
"\u010e\u0112\3\2\2\2\u010f\u0111\13\2\2\2\u0110\u010f\3\2\2\2\u0111\u0114"+
"\3\2\2\2\u0112\u0113\3\2\2\2\u0112\u0110\3\2\2\2\u0113\u0116\3\2\2\2\u0114"+
"\u0112\3\2\2\2\u0115\u0117\7\17\2\2\u0116\u0115\3\2\2\2\u0116\u0117\3"+
"\2\2\2\u0117\u0118\3\2\2\2\u0118\u0119\7\f\2\2\u0119\u011a\3\2\2\2\u011a"+
"\u011b\b-\2\2\u011bZ\3\2\2\2\u011c\u011e\5c\62\2\u011d\u011c\3\2\2\2\u011e"+
"\u011f\3\2\2\2\u011f\u011d\3\2\2\2\u011f\u0120\3\2\2\2\u0120\\\3\2\2\2"+
"\u0121\u0126\5a\61\2\u0122\u0125\5a\61\2\u0123\u0125\5c\62\2\u0124\u0122"+
"\3\2\2\2\u0124\u0123\3\2\2\2\u0125\u0128\3\2\2\2\u0126\u0124\3\2\2\2\u0126"+
"\u0127\3\2\2\2\u0127^\3\2\2\2\u0128\u0126\3\2\2\2\u0129\u012a\t\3\2\2"+
"\u012a\u012b\3\2\2\2\u012b\u012c\b\60\2\2\u012c`\3\2\2\2\u012d\u012e\t"+
"\4\2\2\u012eb\3\2\2\2\u012f\u0130\t\5\2\2\u0130d\3\2\2\2\u0131\u0132\7"+
"^\2\2\u0132\u0133\7~\2\2\u0133f\3\2\2\2\f\2\u00fa\u00fc\u0105\u0107\u0112"+
"\u0116\u011f\u0124\u0126\3\b\2\2";
public static final ATN _ATN =
new ATNDeserializer().deserialize(_serializedATN.toCharArray());
static {
_decisionToDFA = new DFA[_ATN.getNumberOfDecisions()];
for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) {
_decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i);
}
}
}

View file

@ -3,19 +3,19 @@ GREATER=2
INCREMENT=3
DECREMENT=4
NEW=5
TRIGGER=6
VARIABLE=7
LET=8
IF=9
THEN=10
ELSE=11
FOR=12
RETURN=13
VOID=14
FLOAT=15
INT=16
STRING=17
OBJECT=18
VARIABLE=6
LET=7
IF=8
THEN=9
ELSE=10
FOR=11
RETURN=12
VOID=13
FLOAT=14
INT=15
STRING=16
OBJECT=17
EXPRESSION_MARKER=18
SYMBOL=19
COLON=20
SEMICOLON=21
@ -40,7 +40,7 @@ PIPE=39
PIPE_DBL=40
PERIOD=41
STRING_VAL=42
STRINGTICK_VAL=43
BACKTICKSTRING_VAL=43
LINE_COMMENT=44
INTEGER_VAL=45
ID=46
@ -51,19 +51,19 @@ ESC=48
'++'=3
'--'=4
'new'=5
'trigger'=6
'variable'=7
'let'=8
'if'=9
'then'=10
'else'=11
'for'=12
'return'=13
'void'=14
'float'=15
'int'=16
'string'=17
'object'=18
'variable'=6
'let'=7
'if'=8
'then'=9
'else'=10
'for'=11
'return'=12
'void'=13
'float'=14
'int'=15
'string'=16
'object'=17
'expression'=18
':'=20
';'=21
','=22

128
gen/ElsaParser.interp Normal file

File diff suppressed because one or more lines are too long

2471
gen/ElsaParser.java Normal file

File diff suppressed because it is too large Load diff

89
gen/ElsaParser.tokens Normal file
View file

@ -0,0 +1,89 @@
EQ=1
GREATER=2
INCREMENT=3
DECREMENT=4
NEW=5
VARIABLE=6
LET=7
IF=8
THEN=9
ELSE=10
FOR=11
RETURN=12
VOID=13
FLOAT=14
INT=15
STRING=16
OBJECT=17
EXPRESSION_MARKER=18
SYMBOL=19
COLON=20
SEMICOLON=21
COMMA=22
PLUS=23
MINUS=24
STAR=25
EQUALS=26
NOT_EQUALS=27
GREATER_EQUALS=28
LESS=29
LESS_EQUALS=30
LAMBDA=31
PARENTHESES_OPEN=32
PARENTHESES_CLOSE=33
BRACKET_OPEN=34
BRACKET_CLOSE=35
CURLYBRACE_OPEN=36
CURLYBRACE_CLOSE=37
EXCLAMATION=38
PIPE=39
PIPE_DBL=40
PERIOD=41
STRING_VAL=42
BACKTICKSTRING_VAL=43
LINE_COMMENT=44
INTEGER_VAL=45
ID=46
WS=47
ESC=48
'='=1
'>'=2
'++'=3
'--'=4
'new'=5
'variable'=6
'let'=7
'if'=8
'then'=9
'else'=10
'for'=11
'return'=12
'void'=13
'float'=14
'int'=15
'string'=16
'object'=17
'expression'=18
':'=20
';'=21
','=22
'+'=23
'-'=24
'*'=25
'=='=26
'!='=27
'>='=28
'<'=29
'<='=30
'=>'=31
'('=32
')'=33
'['=34
']'=35
'{'=36
'}'=37
'!'=38
'|'=39
'||'=40
'.'=41
'\\|'=48

View file

@ -0,0 +1,590 @@
// Generated from C:/Projects/Elsa/v3/src/dsl/Elsa.Dsl/Dsl\ElsaParser.g4 by ANTLR 4.9.2
import org.antlr.v4.runtime.ParserRuleContext;
import org.antlr.v4.runtime.tree.ErrorNode;
import org.antlr.v4.runtime.tree.TerminalNode;
/**
* This class provides an empty implementation of {@link ElsaParserListener},
* which can be extended to create a listener which only needs to handle a subset
* of the available methods.
*/
public class ElsaParserBaseListener implements ElsaParserListener {
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterProgram(ElsaParser.ProgramContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitProgram(ElsaParser.ProgramContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterObject(ElsaParser.ObjectContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitObject(ElsaParser.ObjectContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterNewObject(ElsaParser.NewObjectContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitNewObject(ElsaParser.NewObjectContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterVarDecl(ElsaParser.VarDeclContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitVarDecl(ElsaParser.VarDeclContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterLocalVarDecl(ElsaParser.LocalVarDeclContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitLocalVarDecl(ElsaParser.LocalVarDeclContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterType(ElsaParser.TypeContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitType(ElsaParser.TypeContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterExpressionMarker(ElsaParser.ExpressionMarkerContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitExpressionMarker(ElsaParser.ExpressionMarkerContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterExpressionContent(ElsaParser.ExpressionContentContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitExpressionContent(ElsaParser.ExpressionContentContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterMethodCall(ElsaParser.MethodCallContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitMethodCall(ElsaParser.MethodCallContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterFuncCall(ElsaParser.FuncCallContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitFuncCall(ElsaParser.FuncCallContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterArgs(ElsaParser.ArgsContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitArgs(ElsaParser.ArgsContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterArg(ElsaParser.ArgContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitArg(ElsaParser.ArgContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterBlock(ElsaParser.BlockContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitBlock(ElsaParser.BlockContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterObjectInitializer(ElsaParser.ObjectInitializerContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitObjectInitializer(ElsaParser.ObjectInitializerContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterPropertyList(ElsaParser.PropertyListContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitPropertyList(ElsaParser.PropertyListContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterProperty(ElsaParser.PropertyContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitProperty(ElsaParser.PropertyContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterObjectStat(ElsaParser.ObjectStatContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitObjectStat(ElsaParser.ObjectStatContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterIfStat(ElsaParser.IfStatContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitIfStat(ElsaParser.IfStatContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterForStat(ElsaParser.ForStatContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitForStat(ElsaParser.ForStatContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterReturnStat(ElsaParser.ReturnStatContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitReturnStat(ElsaParser.ReturnStatContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterBlockStat(ElsaParser.BlockStatContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitBlockStat(ElsaParser.BlockStatContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterVariableDeclarationStat(ElsaParser.VariableDeclarationStatContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitVariableDeclarationStat(ElsaParser.VariableDeclarationStatContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterLocalVariableDeclarationStat(ElsaParser.LocalVariableDeclarationStatContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitLocalVariableDeclarationStat(ElsaParser.LocalVariableDeclarationStatContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterAssignmentStat(ElsaParser.AssignmentStatContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitAssignmentStat(ElsaParser.AssignmentStatContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterExpressionStat(ElsaParser.ExpressionStatContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitExpressionStat(ElsaParser.ExpressionStatContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterThenStat(ElsaParser.ThenStatContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitThenStat(ElsaParser.ThenStatContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterElseStat(ElsaParser.ElseStatContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitElseStat(ElsaParser.ElseStatContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterNewObjectExpr(ElsaParser.NewObjectExprContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitNewObjectExpr(ElsaParser.NewObjectExprContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterSubtractExpr(ElsaParser.SubtractExprContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitSubtractExpr(ElsaParser.SubtractExprContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterIncrementExpr(ElsaParser.IncrementExprContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitIncrementExpr(ElsaParser.IncrementExprContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterObjectExpr(ElsaParser.ObjectExprContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitObjectExpr(ElsaParser.ObjectExprContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterStringValueExpr(ElsaParser.StringValueExprContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitStringValueExpr(ElsaParser.StringValueExprContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterMultiplyExpr(ElsaParser.MultiplyExprContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitMultiplyExpr(ElsaParser.MultiplyExprContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterParenthesesExpr(ElsaParser.ParenthesesExprContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitParenthesesExpr(ElsaParser.ParenthesesExprContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterFunctionExpr(ElsaParser.FunctionExprContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitFunctionExpr(ElsaParser.FunctionExprContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterDecrementExpr(ElsaParser.DecrementExprContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitDecrementExpr(ElsaParser.DecrementExprContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterNegateExpr(ElsaParser.NegateExprContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitNegateExpr(ElsaParser.NegateExprContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterMethodCallExpr(ElsaParser.MethodCallExprContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitMethodCallExpr(ElsaParser.MethodCallExprContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterVariableExpr(ElsaParser.VariableExprContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitVariableExpr(ElsaParser.VariableExprContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterNotExpr(ElsaParser.NotExprContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitNotExpr(ElsaParser.NotExprContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterIntegerValueExpr(ElsaParser.IntegerValueExprContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitIntegerValueExpr(ElsaParser.IntegerValueExprContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterAddExpr(ElsaParser.AddExprContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitAddExpr(ElsaParser.AddExprContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterBackTickStringValueExpr(ElsaParser.BackTickStringValueExprContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitBackTickStringValueExpr(ElsaParser.BackTickStringValueExprContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterBracketsExpr(ElsaParser.BracketsExprContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitBracketsExpr(ElsaParser.BracketsExprContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterCompareExpr(ElsaParser.CompareExprContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitCompareExpr(ElsaParser.CompareExprContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterExprList(ElsaParser.ExprListContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitExprList(ElsaParser.ExprListContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterEveryRule(ParserRuleContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitEveryRule(ParserRuleContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void visitTerminal(TerminalNode node) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void visitErrorNode(ErrorNode node) { }
}

View file

@ -0,0 +1,335 @@
// Generated from C:/Projects/Elsa/v3/src/dsl/Elsa.Dsl/Dsl\ElsaParser.g4 by ANTLR 4.9.2
import org.antlr.v4.runtime.tree.AbstractParseTreeVisitor;
/**
* This class provides an empty implementation of {@link ElsaParserVisitor},
* which can be extended to create a visitor which only needs to handle a subset
* of the available methods.
*
* @param <T> The return type of the visit operation. Use {@link Void} for
* operations with no return type.
*/
public class ElsaParserBaseVisitor<T> extends AbstractParseTreeVisitor<T> implements ElsaParserVisitor<T> {
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitProgram(ElsaParser.ProgramContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitObject(ElsaParser.ObjectContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitNewObject(ElsaParser.NewObjectContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitVarDecl(ElsaParser.VarDeclContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitLocalVarDecl(ElsaParser.LocalVarDeclContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitType(ElsaParser.TypeContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitExpressionMarker(ElsaParser.ExpressionMarkerContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitExpressionContent(ElsaParser.ExpressionContentContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitMethodCall(ElsaParser.MethodCallContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitFuncCall(ElsaParser.FuncCallContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitArgs(ElsaParser.ArgsContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitArg(ElsaParser.ArgContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitBlock(ElsaParser.BlockContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitObjectInitializer(ElsaParser.ObjectInitializerContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitPropertyList(ElsaParser.PropertyListContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitProperty(ElsaParser.PropertyContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitObjectStat(ElsaParser.ObjectStatContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitIfStat(ElsaParser.IfStatContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitForStat(ElsaParser.ForStatContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitReturnStat(ElsaParser.ReturnStatContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitBlockStat(ElsaParser.BlockStatContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitVariableDeclarationStat(ElsaParser.VariableDeclarationStatContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitLocalVariableDeclarationStat(ElsaParser.LocalVariableDeclarationStatContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitAssignmentStat(ElsaParser.AssignmentStatContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitExpressionStat(ElsaParser.ExpressionStatContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitThenStat(ElsaParser.ThenStatContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitElseStat(ElsaParser.ElseStatContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitNewObjectExpr(ElsaParser.NewObjectExprContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitSubtractExpr(ElsaParser.SubtractExprContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitIncrementExpr(ElsaParser.IncrementExprContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitObjectExpr(ElsaParser.ObjectExprContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitStringValueExpr(ElsaParser.StringValueExprContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitMultiplyExpr(ElsaParser.MultiplyExprContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitParenthesesExpr(ElsaParser.ParenthesesExprContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitFunctionExpr(ElsaParser.FunctionExprContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitDecrementExpr(ElsaParser.DecrementExprContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitNegateExpr(ElsaParser.NegateExprContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitMethodCallExpr(ElsaParser.MethodCallExprContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitVariableExpr(ElsaParser.VariableExprContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitNotExpr(ElsaParser.NotExprContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitIntegerValueExpr(ElsaParser.IntegerValueExprContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitAddExpr(ElsaParser.AddExprContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitBackTickStringValueExpr(ElsaParser.BackTickStringValueExprContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitBracketsExpr(ElsaParser.BracketsExprContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitCompareExpr(ElsaParser.CompareExprContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitExprList(ElsaParser.ExprListContext ctx) { return visitChildren(ctx); }
}

523
gen/ElsaParserListener.java Normal file
View file

@ -0,0 +1,523 @@
// Generated from C:/Projects/Elsa/v3/src/dsl/Elsa.Dsl/Dsl\ElsaParser.g4 by ANTLR 4.9.2
import org.antlr.v4.runtime.tree.ParseTreeListener;
/**
* This interface defines a complete listener for a parse tree produced by
* {@link ElsaParser}.
*/
public interface ElsaParserListener extends ParseTreeListener {
/**
* Enter a parse tree produced by {@link ElsaParser#program}.
* @param ctx the parse tree
*/
void enterProgram(ElsaParser.ProgramContext ctx);
/**
* Exit a parse tree produced by {@link ElsaParser#program}.
* @param ctx the parse tree
*/
void exitProgram(ElsaParser.ProgramContext ctx);
/**
* Enter a parse tree produced by {@link ElsaParser#object}.
* @param ctx the parse tree
*/
void enterObject(ElsaParser.ObjectContext ctx);
/**
* Exit a parse tree produced by {@link ElsaParser#object}.
* @param ctx the parse tree
*/
void exitObject(ElsaParser.ObjectContext ctx);
/**
* Enter a parse tree produced by {@link ElsaParser#newObject}.
* @param ctx the parse tree
*/
void enterNewObject(ElsaParser.NewObjectContext ctx);
/**
* Exit a parse tree produced by {@link ElsaParser#newObject}.
* @param ctx the parse tree
*/
void exitNewObject(ElsaParser.NewObjectContext ctx);
/**
* Enter a parse tree produced by {@link ElsaParser#varDecl}.
* @param ctx the parse tree
*/
void enterVarDecl(ElsaParser.VarDeclContext ctx);
/**
* Exit a parse tree produced by {@link ElsaParser#varDecl}.
* @param ctx the parse tree
*/
void exitVarDecl(ElsaParser.VarDeclContext ctx);
/**
* Enter a parse tree produced by {@link ElsaParser#localVarDecl}.
* @param ctx the parse tree
*/
void enterLocalVarDecl(ElsaParser.LocalVarDeclContext ctx);
/**
* Exit a parse tree produced by {@link ElsaParser#localVarDecl}.
* @param ctx the parse tree
*/
void exitLocalVarDecl(ElsaParser.LocalVarDeclContext ctx);
/**
* Enter a parse tree produced by {@link ElsaParser#type}.
* @param ctx the parse tree
*/
void enterType(ElsaParser.TypeContext ctx);
/**
* Exit a parse tree produced by {@link ElsaParser#type}.
* @param ctx the parse tree
*/
void exitType(ElsaParser.TypeContext ctx);
/**
* Enter a parse tree produced by {@link ElsaParser#expressionMarker}.
* @param ctx the parse tree
*/
void enterExpressionMarker(ElsaParser.ExpressionMarkerContext ctx);
/**
* Exit a parse tree produced by {@link ElsaParser#expressionMarker}.
* @param ctx the parse tree
*/
void exitExpressionMarker(ElsaParser.ExpressionMarkerContext ctx);
/**
* Enter a parse tree produced by {@link ElsaParser#expressionContent}.
* @param ctx the parse tree
*/
void enterExpressionContent(ElsaParser.ExpressionContentContext ctx);
/**
* Exit a parse tree produced by {@link ElsaParser#expressionContent}.
* @param ctx the parse tree
*/
void exitExpressionContent(ElsaParser.ExpressionContentContext ctx);
/**
* Enter a parse tree produced by {@link ElsaParser#methodCall}.
* @param ctx the parse tree
*/
void enterMethodCall(ElsaParser.MethodCallContext ctx);
/**
* Exit a parse tree produced by {@link ElsaParser#methodCall}.
* @param ctx the parse tree
*/
void exitMethodCall(ElsaParser.MethodCallContext ctx);
/**
* Enter a parse tree produced by {@link ElsaParser#funcCall}.
* @param ctx the parse tree
*/
void enterFuncCall(ElsaParser.FuncCallContext ctx);
/**
* Exit a parse tree produced by {@link ElsaParser#funcCall}.
* @param ctx the parse tree
*/
void exitFuncCall(ElsaParser.FuncCallContext ctx);
/**
* Enter a parse tree produced by {@link ElsaParser#args}.
* @param ctx the parse tree
*/
void enterArgs(ElsaParser.ArgsContext ctx);
/**
* Exit a parse tree produced by {@link ElsaParser#args}.
* @param ctx the parse tree
*/
void exitArgs(ElsaParser.ArgsContext ctx);
/**
* Enter a parse tree produced by {@link ElsaParser#arg}.
* @param ctx the parse tree
*/
void enterArg(ElsaParser.ArgContext ctx);
/**
* Exit a parse tree produced by {@link ElsaParser#arg}.
* @param ctx the parse tree
*/
void exitArg(ElsaParser.ArgContext ctx);
/**
* Enter a parse tree produced by {@link ElsaParser#block}.
* @param ctx the parse tree
*/
void enterBlock(ElsaParser.BlockContext ctx);
/**
* Exit a parse tree produced by {@link ElsaParser#block}.
* @param ctx the parse tree
*/
void exitBlock(ElsaParser.BlockContext ctx);
/**
* Enter a parse tree produced by {@link ElsaParser#objectInitializer}.
* @param ctx the parse tree
*/
void enterObjectInitializer(ElsaParser.ObjectInitializerContext ctx);
/**
* Exit a parse tree produced by {@link ElsaParser#objectInitializer}.
* @param ctx the parse tree
*/
void exitObjectInitializer(ElsaParser.ObjectInitializerContext ctx);
/**
* Enter a parse tree produced by {@link ElsaParser#propertyList}.
* @param ctx the parse tree
*/
void enterPropertyList(ElsaParser.PropertyListContext ctx);
/**
* Exit a parse tree produced by {@link ElsaParser#propertyList}.
* @param ctx the parse tree
*/
void exitPropertyList(ElsaParser.PropertyListContext ctx);
/**
* Enter a parse tree produced by {@link ElsaParser#property}.
* @param ctx the parse tree
*/
void enterProperty(ElsaParser.PropertyContext ctx);
/**
* Exit a parse tree produced by {@link ElsaParser#property}.
* @param ctx the parse tree
*/
void exitProperty(ElsaParser.PropertyContext ctx);
/**
* Enter a parse tree produced by the {@code objectStat}
* labeled alternative in {@link ElsaParser#stat}.
* @param ctx the parse tree
*/
void enterObjectStat(ElsaParser.ObjectStatContext ctx);
/**
* Exit a parse tree produced by the {@code objectStat}
* labeled alternative in {@link ElsaParser#stat}.
* @param ctx the parse tree
*/
void exitObjectStat(ElsaParser.ObjectStatContext ctx);
/**
* Enter a parse tree produced by the {@code ifStat}
* labeled alternative in {@link ElsaParser#stat}.
* @param ctx the parse tree
*/
void enterIfStat(ElsaParser.IfStatContext ctx);
/**
* Exit a parse tree produced by the {@code ifStat}
* labeled alternative in {@link ElsaParser#stat}.
* @param ctx the parse tree
*/
void exitIfStat(ElsaParser.IfStatContext ctx);
/**
* Enter a parse tree produced by the {@code forStat}
* labeled alternative in {@link ElsaParser#stat}.
* @param ctx the parse tree
*/
void enterForStat(ElsaParser.ForStatContext ctx);
/**
* Exit a parse tree produced by the {@code forStat}
* labeled alternative in {@link ElsaParser#stat}.
* @param ctx the parse tree
*/
void exitForStat(ElsaParser.ForStatContext ctx);
/**
* Enter a parse tree produced by the {@code returnStat}
* labeled alternative in {@link ElsaParser#stat}.
* @param ctx the parse tree
*/
void enterReturnStat(ElsaParser.ReturnStatContext ctx);
/**
* Exit a parse tree produced by the {@code returnStat}
* labeled alternative in {@link ElsaParser#stat}.
* @param ctx the parse tree
*/
void exitReturnStat(ElsaParser.ReturnStatContext ctx);
/**
* Enter a parse tree produced by the {@code blockStat}
* labeled alternative in {@link ElsaParser#stat}.
* @param ctx the parse tree
*/
void enterBlockStat(ElsaParser.BlockStatContext ctx);
/**
* Exit a parse tree produced by the {@code blockStat}
* labeled alternative in {@link ElsaParser#stat}.
* @param ctx the parse tree
*/
void exitBlockStat(ElsaParser.BlockStatContext ctx);
/**
* Enter a parse tree produced by the {@code variableDeclarationStat}
* labeled alternative in {@link ElsaParser#stat}.
* @param ctx the parse tree
*/
void enterVariableDeclarationStat(ElsaParser.VariableDeclarationStatContext ctx);
/**
* Exit a parse tree produced by the {@code variableDeclarationStat}
* labeled alternative in {@link ElsaParser#stat}.
* @param ctx the parse tree
*/
void exitVariableDeclarationStat(ElsaParser.VariableDeclarationStatContext ctx);
/**
* Enter a parse tree produced by the {@code localVariableDeclarationStat}
* labeled alternative in {@link ElsaParser#stat}.
* @param ctx the parse tree
*/
void enterLocalVariableDeclarationStat(ElsaParser.LocalVariableDeclarationStatContext ctx);
/**
* Exit a parse tree produced by the {@code localVariableDeclarationStat}
* labeled alternative in {@link ElsaParser#stat}.
* @param ctx the parse tree
*/
void exitLocalVariableDeclarationStat(ElsaParser.LocalVariableDeclarationStatContext ctx);
/**
* Enter a parse tree produced by the {@code assignmentStat}
* labeled alternative in {@link ElsaParser#stat}.
* @param ctx the parse tree
*/
void enterAssignmentStat(ElsaParser.AssignmentStatContext ctx);
/**
* Exit a parse tree produced by the {@code assignmentStat}
* labeled alternative in {@link ElsaParser#stat}.
* @param ctx the parse tree
*/
void exitAssignmentStat(ElsaParser.AssignmentStatContext ctx);
/**
* Enter a parse tree produced by the {@code expressionStat}
* labeled alternative in {@link ElsaParser#stat}.
* @param ctx the parse tree
*/
void enterExpressionStat(ElsaParser.ExpressionStatContext ctx);
/**
* Exit a parse tree produced by the {@code expressionStat}
* labeled alternative in {@link ElsaParser#stat}.
* @param ctx the parse tree
*/
void exitExpressionStat(ElsaParser.ExpressionStatContext ctx);
/**
* Enter a parse tree produced by {@link ElsaParser#thenStat}.
* @param ctx the parse tree
*/
void enterThenStat(ElsaParser.ThenStatContext ctx);
/**
* Exit a parse tree produced by {@link ElsaParser#thenStat}.
* @param ctx the parse tree
*/
void exitThenStat(ElsaParser.ThenStatContext ctx);
/**
* Enter a parse tree produced by {@link ElsaParser#elseStat}.
* @param ctx the parse tree
*/
void enterElseStat(ElsaParser.ElseStatContext ctx);
/**
* Exit a parse tree produced by {@link ElsaParser#elseStat}.
* @param ctx the parse tree
*/
void exitElseStat(ElsaParser.ElseStatContext ctx);
/**
* Enter a parse tree produced by the {@code newObjectExpr}
* labeled alternative in {@link ElsaParser#expr}.
* @param ctx the parse tree
*/
void enterNewObjectExpr(ElsaParser.NewObjectExprContext ctx);
/**
* Exit a parse tree produced by the {@code newObjectExpr}
* labeled alternative in {@link ElsaParser#expr}.
* @param ctx the parse tree
*/
void exitNewObjectExpr(ElsaParser.NewObjectExprContext ctx);
/**
* Enter a parse tree produced by the {@code subtractExpr}
* labeled alternative in {@link ElsaParser#expr}.
* @param ctx the parse tree
*/
void enterSubtractExpr(ElsaParser.SubtractExprContext ctx);
/**
* Exit a parse tree produced by the {@code subtractExpr}
* labeled alternative in {@link ElsaParser#expr}.
* @param ctx the parse tree
*/
void exitSubtractExpr(ElsaParser.SubtractExprContext ctx);
/**
* Enter a parse tree produced by the {@code incrementExpr}
* labeled alternative in {@link ElsaParser#expr}.
* @param ctx the parse tree
*/
void enterIncrementExpr(ElsaParser.IncrementExprContext ctx);
/**
* Exit a parse tree produced by the {@code incrementExpr}
* labeled alternative in {@link ElsaParser#expr}.
* @param ctx the parse tree
*/
void exitIncrementExpr(ElsaParser.IncrementExprContext ctx);
/**
* Enter a parse tree produced by the {@code objectExpr}
* labeled alternative in {@link ElsaParser#expr}.
* @param ctx the parse tree
*/
void enterObjectExpr(ElsaParser.ObjectExprContext ctx);
/**
* Exit a parse tree produced by the {@code objectExpr}
* labeled alternative in {@link ElsaParser#expr}.
* @param ctx the parse tree
*/
void exitObjectExpr(ElsaParser.ObjectExprContext ctx);
/**
* Enter a parse tree produced by the {@code stringValueExpr}
* labeled alternative in {@link ElsaParser#expr}.
* @param ctx the parse tree
*/
void enterStringValueExpr(ElsaParser.StringValueExprContext ctx);
/**
* Exit a parse tree produced by the {@code stringValueExpr}
* labeled alternative in {@link ElsaParser#expr}.
* @param ctx the parse tree
*/
void exitStringValueExpr(ElsaParser.StringValueExprContext ctx);
/**
* Enter a parse tree produced by the {@code multiplyExpr}
* labeled alternative in {@link ElsaParser#expr}.
* @param ctx the parse tree
*/
void enterMultiplyExpr(ElsaParser.MultiplyExprContext ctx);
/**
* Exit a parse tree produced by the {@code multiplyExpr}
* labeled alternative in {@link ElsaParser#expr}.
* @param ctx the parse tree
*/
void exitMultiplyExpr(ElsaParser.MultiplyExprContext ctx);
/**
* Enter a parse tree produced by the {@code parenthesesExpr}
* labeled alternative in {@link ElsaParser#expr}.
* @param ctx the parse tree
*/
void enterParenthesesExpr(ElsaParser.ParenthesesExprContext ctx);
/**
* Exit a parse tree produced by the {@code parenthesesExpr}
* labeled alternative in {@link ElsaParser#expr}.
* @param ctx the parse tree
*/
void exitParenthesesExpr(ElsaParser.ParenthesesExprContext ctx);
/**
* Enter a parse tree produced by the {@code functionExpr}
* labeled alternative in {@link ElsaParser#expr}.
* @param ctx the parse tree
*/
void enterFunctionExpr(ElsaParser.FunctionExprContext ctx);
/**
* Exit a parse tree produced by the {@code functionExpr}
* labeled alternative in {@link ElsaParser#expr}.
* @param ctx the parse tree
*/
void exitFunctionExpr(ElsaParser.FunctionExprContext ctx);
/**
* Enter a parse tree produced by the {@code decrementExpr}
* labeled alternative in {@link ElsaParser#expr}.
* @param ctx the parse tree
*/
void enterDecrementExpr(ElsaParser.DecrementExprContext ctx);
/**
* Exit a parse tree produced by the {@code decrementExpr}
* labeled alternative in {@link ElsaParser#expr}.
* @param ctx the parse tree
*/
void exitDecrementExpr(ElsaParser.DecrementExprContext ctx);
/**
* Enter a parse tree produced by the {@code negateExpr}
* labeled alternative in {@link ElsaParser#expr}.
* @param ctx the parse tree
*/
void enterNegateExpr(ElsaParser.NegateExprContext ctx);
/**
* Exit a parse tree produced by the {@code negateExpr}
* labeled alternative in {@link ElsaParser#expr}.
* @param ctx the parse tree
*/
void exitNegateExpr(ElsaParser.NegateExprContext ctx);
/**
* Enter a parse tree produced by the {@code methodCallExpr}
* labeled alternative in {@link ElsaParser#expr}.
* @param ctx the parse tree
*/
void enterMethodCallExpr(ElsaParser.MethodCallExprContext ctx);
/**
* Exit a parse tree produced by the {@code methodCallExpr}
* labeled alternative in {@link ElsaParser#expr}.
* @param ctx the parse tree
*/
void exitMethodCallExpr(ElsaParser.MethodCallExprContext ctx);
/**
* Enter a parse tree produced by the {@code variableExpr}
* labeled alternative in {@link ElsaParser#expr}.
* @param ctx the parse tree
*/
void enterVariableExpr(ElsaParser.VariableExprContext ctx);
/**
* Exit a parse tree produced by the {@code variableExpr}
* labeled alternative in {@link ElsaParser#expr}.
* @param ctx the parse tree
*/
void exitVariableExpr(ElsaParser.VariableExprContext ctx);
/**
* Enter a parse tree produced by the {@code notExpr}
* labeled alternative in {@link ElsaParser#expr}.
* @param ctx the parse tree
*/
void enterNotExpr(ElsaParser.NotExprContext ctx);
/**
* Exit a parse tree produced by the {@code notExpr}
* labeled alternative in {@link ElsaParser#expr}.
* @param ctx the parse tree
*/
void exitNotExpr(ElsaParser.NotExprContext ctx);
/**
* Enter a parse tree produced by the {@code integerValueExpr}
* labeled alternative in {@link ElsaParser#expr}.
* @param ctx the parse tree
*/
void enterIntegerValueExpr(ElsaParser.IntegerValueExprContext ctx);
/**
* Exit a parse tree produced by the {@code integerValueExpr}
* labeled alternative in {@link ElsaParser#expr}.
* @param ctx the parse tree
*/
void exitIntegerValueExpr(ElsaParser.IntegerValueExprContext ctx);
/**
* Enter a parse tree produced by the {@code addExpr}
* labeled alternative in {@link ElsaParser#expr}.
* @param ctx the parse tree
*/
void enterAddExpr(ElsaParser.AddExprContext ctx);
/**
* Exit a parse tree produced by the {@code addExpr}
* labeled alternative in {@link ElsaParser#expr}.
* @param ctx the parse tree
*/
void exitAddExpr(ElsaParser.AddExprContext ctx);
/**
* Enter a parse tree produced by the {@code backTickStringValueExpr}
* labeled alternative in {@link ElsaParser#expr}.
* @param ctx the parse tree
*/
void enterBackTickStringValueExpr(ElsaParser.BackTickStringValueExprContext ctx);
/**
* Exit a parse tree produced by the {@code backTickStringValueExpr}
* labeled alternative in {@link ElsaParser#expr}.
* @param ctx the parse tree
*/
void exitBackTickStringValueExpr(ElsaParser.BackTickStringValueExprContext ctx);
/**
* Enter a parse tree produced by the {@code bracketsExpr}
* labeled alternative in {@link ElsaParser#expr}.
* @param ctx the parse tree
*/
void enterBracketsExpr(ElsaParser.BracketsExprContext ctx);
/**
* Exit a parse tree produced by the {@code bracketsExpr}
* labeled alternative in {@link ElsaParser#expr}.
* @param ctx the parse tree
*/
void exitBracketsExpr(ElsaParser.BracketsExprContext ctx);
/**
* Enter a parse tree produced by the {@code compareExpr}
* labeled alternative in {@link ElsaParser#expr}.
* @param ctx the parse tree
*/
void enterCompareExpr(ElsaParser.CompareExprContext ctx);
/**
* Exit a parse tree produced by the {@code compareExpr}
* labeled alternative in {@link ElsaParser#expr}.
* @param ctx the parse tree
*/
void exitCompareExpr(ElsaParser.CompareExprContext ctx);
/**
* Enter a parse tree produced by {@link ElsaParser#exprList}.
* @param ctx the parse tree
*/
void enterExprList(ElsaParser.ExprListContext ctx);
/**
* Exit a parse tree produced by {@link ElsaParser#exprList}.
* @param ctx the parse tree
*/
void exitExprList(ElsaParser.ExprListContext ctx);
}

315
gen/ElsaParserVisitor.java Normal file
View file

@ -0,0 +1,315 @@
// Generated from C:/Projects/Elsa/v3/src/dsl/Elsa.Dsl/Dsl\ElsaParser.g4 by ANTLR 4.9.2
import org.antlr.v4.runtime.tree.ParseTreeVisitor;
/**
* This interface defines a complete generic visitor for a parse tree produced
* by {@link ElsaParser}.
*
* @param <T> The return type of the visit operation. Use {@link Void} for
* operations with no return type.
*/
public interface ElsaParserVisitor<T> extends ParseTreeVisitor<T> {
/**
* Visit a parse tree produced by {@link ElsaParser#program}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitProgram(ElsaParser.ProgramContext ctx);
/**
* Visit a parse tree produced by {@link ElsaParser#object}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitObject(ElsaParser.ObjectContext ctx);
/**
* Visit a parse tree produced by {@link ElsaParser#newObject}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitNewObject(ElsaParser.NewObjectContext ctx);
/**
* Visit a parse tree produced by {@link ElsaParser#varDecl}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitVarDecl(ElsaParser.VarDeclContext ctx);
/**
* Visit a parse tree produced by {@link ElsaParser#localVarDecl}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitLocalVarDecl(ElsaParser.LocalVarDeclContext ctx);
/**
* Visit a parse tree produced by {@link ElsaParser#type}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitType(ElsaParser.TypeContext ctx);
/**
* Visit a parse tree produced by {@link ElsaParser#expressionMarker}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitExpressionMarker(ElsaParser.ExpressionMarkerContext ctx);
/**
* Visit a parse tree produced by {@link ElsaParser#expressionContent}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitExpressionContent(ElsaParser.ExpressionContentContext ctx);
/**
* Visit a parse tree produced by {@link ElsaParser#methodCall}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitMethodCall(ElsaParser.MethodCallContext ctx);
/**
* Visit a parse tree produced by {@link ElsaParser#funcCall}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitFuncCall(ElsaParser.FuncCallContext ctx);
/**
* Visit a parse tree produced by {@link ElsaParser#args}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitArgs(ElsaParser.ArgsContext ctx);
/**
* Visit a parse tree produced by {@link ElsaParser#arg}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitArg(ElsaParser.ArgContext ctx);
/**
* Visit a parse tree produced by {@link ElsaParser#block}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitBlock(ElsaParser.BlockContext ctx);
/**
* Visit a parse tree produced by {@link ElsaParser#objectInitializer}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitObjectInitializer(ElsaParser.ObjectInitializerContext ctx);
/**
* Visit a parse tree produced by {@link ElsaParser#propertyList}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitPropertyList(ElsaParser.PropertyListContext ctx);
/**
* Visit a parse tree produced by {@link ElsaParser#property}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitProperty(ElsaParser.PropertyContext ctx);
/**
* Visit a parse tree produced by the {@code objectStat}
* labeled alternative in {@link ElsaParser#stat}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitObjectStat(ElsaParser.ObjectStatContext ctx);
/**
* Visit a parse tree produced by the {@code ifStat}
* labeled alternative in {@link ElsaParser#stat}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitIfStat(ElsaParser.IfStatContext ctx);
/**
* Visit a parse tree produced by the {@code forStat}
* labeled alternative in {@link ElsaParser#stat}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitForStat(ElsaParser.ForStatContext ctx);
/**
* Visit a parse tree produced by the {@code returnStat}
* labeled alternative in {@link ElsaParser#stat}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitReturnStat(ElsaParser.ReturnStatContext ctx);
/**
* Visit a parse tree produced by the {@code blockStat}
* labeled alternative in {@link ElsaParser#stat}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitBlockStat(ElsaParser.BlockStatContext ctx);
/**
* Visit a parse tree produced by the {@code variableDeclarationStat}
* labeled alternative in {@link ElsaParser#stat}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitVariableDeclarationStat(ElsaParser.VariableDeclarationStatContext ctx);
/**
* Visit a parse tree produced by the {@code localVariableDeclarationStat}
* labeled alternative in {@link ElsaParser#stat}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitLocalVariableDeclarationStat(ElsaParser.LocalVariableDeclarationStatContext ctx);
/**
* Visit a parse tree produced by the {@code assignmentStat}
* labeled alternative in {@link ElsaParser#stat}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitAssignmentStat(ElsaParser.AssignmentStatContext ctx);
/**
* Visit a parse tree produced by the {@code expressionStat}
* labeled alternative in {@link ElsaParser#stat}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitExpressionStat(ElsaParser.ExpressionStatContext ctx);
/**
* Visit a parse tree produced by {@link ElsaParser#thenStat}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitThenStat(ElsaParser.ThenStatContext ctx);
/**
* Visit a parse tree produced by {@link ElsaParser#elseStat}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitElseStat(ElsaParser.ElseStatContext ctx);
/**
* Visit a parse tree produced by the {@code newObjectExpr}
* labeled alternative in {@link ElsaParser#expr}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitNewObjectExpr(ElsaParser.NewObjectExprContext ctx);
/**
* Visit a parse tree produced by the {@code subtractExpr}
* labeled alternative in {@link ElsaParser#expr}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitSubtractExpr(ElsaParser.SubtractExprContext ctx);
/**
* Visit a parse tree produced by the {@code incrementExpr}
* labeled alternative in {@link ElsaParser#expr}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitIncrementExpr(ElsaParser.IncrementExprContext ctx);
/**
* Visit a parse tree produced by the {@code objectExpr}
* labeled alternative in {@link ElsaParser#expr}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitObjectExpr(ElsaParser.ObjectExprContext ctx);
/**
* Visit a parse tree produced by the {@code stringValueExpr}
* labeled alternative in {@link ElsaParser#expr}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitStringValueExpr(ElsaParser.StringValueExprContext ctx);
/**
* Visit a parse tree produced by the {@code multiplyExpr}
* labeled alternative in {@link ElsaParser#expr}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitMultiplyExpr(ElsaParser.MultiplyExprContext ctx);
/**
* Visit a parse tree produced by the {@code parenthesesExpr}
* labeled alternative in {@link ElsaParser#expr}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitParenthesesExpr(ElsaParser.ParenthesesExprContext ctx);
/**
* Visit a parse tree produced by the {@code functionExpr}
* labeled alternative in {@link ElsaParser#expr}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitFunctionExpr(ElsaParser.FunctionExprContext ctx);
/**
* Visit a parse tree produced by the {@code decrementExpr}
* labeled alternative in {@link ElsaParser#expr}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitDecrementExpr(ElsaParser.DecrementExprContext ctx);
/**
* Visit a parse tree produced by the {@code negateExpr}
* labeled alternative in {@link ElsaParser#expr}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitNegateExpr(ElsaParser.NegateExprContext ctx);
/**
* Visit a parse tree produced by the {@code methodCallExpr}
* labeled alternative in {@link ElsaParser#expr}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitMethodCallExpr(ElsaParser.MethodCallExprContext ctx);
/**
* Visit a parse tree produced by the {@code variableExpr}
* labeled alternative in {@link ElsaParser#expr}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitVariableExpr(ElsaParser.VariableExprContext ctx);
/**
* Visit a parse tree produced by the {@code notExpr}
* labeled alternative in {@link ElsaParser#expr}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitNotExpr(ElsaParser.NotExprContext ctx);
/**
* Visit a parse tree produced by the {@code integerValueExpr}
* labeled alternative in {@link ElsaParser#expr}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitIntegerValueExpr(ElsaParser.IntegerValueExprContext ctx);
/**
* Visit a parse tree produced by the {@code addExpr}
* labeled alternative in {@link ElsaParser#expr}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitAddExpr(ElsaParser.AddExprContext ctx);
/**
* Visit a parse tree produced by the {@code backTickStringValueExpr}
* labeled alternative in {@link ElsaParser#expr}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitBackTickStringValueExpr(ElsaParser.BackTickStringValueExprContext ctx);
/**
* Visit a parse tree produced by the {@code bracketsExpr}
* labeled alternative in {@link ElsaParser#expr}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitBracketsExpr(ElsaParser.BracketsExprContext ctx);
/**
* Visit a parse tree produced by the {@code compareExpr}
* labeled alternative in {@link ElsaParser#expr}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitCompareExpr(ElsaParser.CompareExprContext ctx);
/**
* Visit a parse tree produced by {@link ElsaParser#exprList}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitExprList(ElsaParser.ExprListContext ctx);
}

View file

@ -1,6 +1,7 @@
using Elsa.ActivityNodeResolvers;
using Elsa.Contracts;
using Elsa.Expressions;
using Elsa.Mediator.Extensions;
using Elsa.Modules.Activities.Extensions;
using Elsa.Options;
using Elsa.Persistence.Extensions;
@ -52,6 +53,9 @@ public static class ServiceCollectionExtensions
// Persistence services.
.AddPersistenceServices()
// Mediator.
.AddMediator()
// Logging
.AddLogging();

View file

@ -1,14 +1,14 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// ANTLR Version: 4.9.1
// ANTLR Version: 4.9.2
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
// Generated from C:/Projects/Elsa/experimental/src/dsl/Elsa.Dsl/Dsl\ElsaLexer.g4 by ANTLR 4.9.1
// Generated from C:/Projects/Elsa/v3/src/dsl/Elsa.Dsl/Dsl\ElsaLexer.g4 by ANTLR 4.9.2
// Unreachable code detected
#pragma warning disable 0162
@ -27,20 +27,20 @@ using Antlr4.Runtime.Atn;
using Antlr4.Runtime.Misc;
using DFA = Antlr4.Runtime.Dfa.DFA;
[System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.9.1")]
[System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.9.2")]
[System.CLSCompliant(false)]
public partial class ElsaLexer : Lexer {
protected static DFA[] decisionToDFA;
protected static PredictionContextCache sharedContextCache = new PredictionContextCache();
public const int
EQ=1, GREATER=2, INCREMENT=3, DECREMENT=4, NEW=5, TRIGGER=6, VARIABLE=7,
LET=8, IF=9, THEN=10, ELSE=11, FOR=12, RETURN=13, VOID=14, FLOAT=15, INT=16,
STRING=17, OBJECT=18, EXPRESSION_MARKER=19, SYMBOL=20, COLON=21, SEMICOLON=22,
COMMA=23, PLUS=24, MINUS=25, STAR=26, EQUALS=27, NOT_EQUALS=28, GREATER_EQUALS=29,
LESS=30, LESS_EQUALS=31, LAMBDA=32, PARENTHESES_OPEN=33, PARENTHESES_CLOSE=34,
BRACKET_OPEN=35, BRACKET_CLOSE=36, CURLYBRACE_OPEN=37, CURLYBRACE_CLOSE=38,
EXCLAMATION=39, PIPE=40, PIPE_DBL=41, PERIOD=42, STRING_VAL=43, BACKTICKSTRING_VAL=44,
LINE_COMMENT=45, INTEGER_VAL=46, ID=47, WS=48, ESC=49;
EQ=1, GREATER=2, INCREMENT=3, DECREMENT=4, NEW=5, VARIABLE=6, LET=7, IF=8,
THEN=9, ELSE=10, FOR=11, RETURN=12, VOID=13, FLOAT=14, INT=15, STRING=16,
OBJECT=17, EXPRESSION_MARKER=18, SYMBOL=19, COLON=20, SEMICOLON=21, COMMA=22,
PLUS=23, MINUS=24, STAR=25, EQUALS=26, NOT_EQUALS=27, GREATER_EQUALS=28,
LESS=29, LESS_EQUALS=30, LAMBDA=31, PARENTHESES_OPEN=32, PARENTHESES_CLOSE=33,
BRACKET_OPEN=34, BRACKET_CLOSE=35, CURLYBRACE_OPEN=36, CURLYBRACE_CLOSE=37,
EXCLAMATION=38, PIPE=39, PIPE_DBL=40, PERIOD=41, STRING_VAL=42, BACKTICKSTRING_VAL=43,
LINE_COMMENT=44, INTEGER_VAL=45, ID=46, WS=47, ESC=48;
public static string[] channelNames = {
"DEFAULT_TOKEN_CHANNEL", "HIDDEN"
};
@ -50,14 +50,14 @@ public partial class ElsaLexer : Lexer {
};
public static readonly string[] ruleNames = {
"EQ", "GREATER", "INCREMENT", "DECREMENT", "NEW", "TRIGGER", "VARIABLE",
"LET", "IF", "THEN", "ELSE", "FOR", "RETURN", "VOID", "FLOAT", "INT",
"STRING", "OBJECT", "EXPRESSION_MARKER", "SYMBOL", "COLON", "SEMICOLON",
"COMMA", "PLUS", "MINUS", "STAR", "EQUALS", "NOT_EQUALS", "GREATER_EQUALS",
"LESS", "LESS_EQUALS", "LAMBDA", "PARENTHESES_OPEN", "PARENTHESES_CLOSE",
"BRACKET_OPEN", "BRACKET_CLOSE", "CURLYBRACE_OPEN", "CURLYBRACE_CLOSE",
"EXCLAMATION", "PIPE", "PIPE_DBL", "PERIOD", "STRING_VAL", "BACKTICKSTRING_VAL",
"LINE_COMMENT", "INTEGER_VAL", "ID", "WS", "LETTER", "DIGIT", "ESC"
"EQ", "GREATER", "INCREMENT", "DECREMENT", "NEW", "VARIABLE", "LET", "IF",
"THEN", "ELSE", "FOR", "RETURN", "VOID", "FLOAT", "INT", "STRING", "OBJECT",
"EXPRESSION_MARKER", "SYMBOL", "COLON", "SEMICOLON", "COMMA", "PLUS",
"MINUS", "STAR", "EQUALS", "NOT_EQUALS", "GREATER_EQUALS", "LESS", "LESS_EQUALS",
"LAMBDA", "PARENTHESES_OPEN", "PARENTHESES_CLOSE", "BRACKET_OPEN", "BRACKET_CLOSE",
"CURLYBRACE_OPEN", "CURLYBRACE_CLOSE", "EXCLAMATION", "PIPE", "PIPE_DBL",
"PERIOD", "STRING_VAL", "BACKTICKSTRING_VAL", "LINE_COMMENT", "INTEGER_VAL",
"ID", "WS", "LETTER", "DIGIT", "ESC"
};
@ -71,22 +71,22 @@ public partial class ElsaLexer : Lexer {
}
private static readonly string[] _LiteralNames = {
null, "'='", "'>'", "'++'", "'--'", "'new'", "'trigger'", "'variable'",
"'let'", "'if'", "'then'", "'else'", "'for'", "'return'", "'void'", "'float'",
"'int'", "'string'", "'object'", "'expression'", null, "':'", "';'", "','",
"'+'", "'-'", "'*'", "'=='", "'!='", "'>='", "'<'", "'<='", "'=>'", "'('",
"')'", "'['", "']'", "'{'", "'}'", "'!'", "'|'", "'||'", "'.'", null,
null, null, null, null, null, "'\\|'"
null, "'='", "'>'", "'++'", "'--'", "'new'", "'variable'", "'let'", "'if'",
"'then'", "'else'", "'for'", "'return'", "'void'", "'float'", "'int'",
"'string'", "'object'", "'expression'", null, "':'", "';'", "','", "'+'",
"'-'", "'*'", "'=='", "'!='", "'>='", "'<'", "'<='", "'=>'", "'('", "')'",
"'['", "']'", "'{'", "'}'", "'!'", "'|'", "'||'", "'.'", null, null, null,
null, null, null, "'\\|'"
};
private static readonly string[] _SymbolicNames = {
null, "EQ", "GREATER", "INCREMENT", "DECREMENT", "NEW", "TRIGGER", "VARIABLE",
"LET", "IF", "THEN", "ELSE", "FOR", "RETURN", "VOID", "FLOAT", "INT",
"STRING", "OBJECT", "EXPRESSION_MARKER", "SYMBOL", "COLON", "SEMICOLON",
"COMMA", "PLUS", "MINUS", "STAR", "EQUALS", "NOT_EQUALS", "GREATER_EQUALS",
"LESS", "LESS_EQUALS", "LAMBDA", "PARENTHESES_OPEN", "PARENTHESES_CLOSE",
"BRACKET_OPEN", "BRACKET_CLOSE", "CURLYBRACE_OPEN", "CURLYBRACE_CLOSE",
"EXCLAMATION", "PIPE", "PIPE_DBL", "PERIOD", "STRING_VAL", "BACKTICKSTRING_VAL",
"LINE_COMMENT", "INTEGER_VAL", "ID", "WS", "ESC"
null, "EQ", "GREATER", "INCREMENT", "DECREMENT", "NEW", "VARIABLE", "LET",
"IF", "THEN", "ELSE", "FOR", "RETURN", "VOID", "FLOAT", "INT", "STRING",
"OBJECT", "EXPRESSION_MARKER", "SYMBOL", "COLON", "SEMICOLON", "COMMA",
"PLUS", "MINUS", "STAR", "EQUALS", "NOT_EQUALS", "GREATER_EQUALS", "LESS",
"LESS_EQUALS", "LAMBDA", "PARENTHESES_OPEN", "PARENTHESES_CLOSE", "BRACKET_OPEN",
"BRACKET_CLOSE", "CURLYBRACE_OPEN", "CURLYBRACE_CLOSE", "EXCLAMATION",
"PIPE", "PIPE_DBL", "PERIOD", "STRING_VAL", "BACKTICKSTRING_VAL", "LINE_COMMENT",
"INTEGER_VAL", "ID", "WS", "ESC"
};
public static readonly IVocabulary DefaultVocabulary = new Vocabulary(_LiteralNames, _SymbolicNames);
@ -117,7 +117,7 @@ public partial class ElsaLexer : Lexer {
}
private static char[] _serializedATN = {
'\x3', '\x608B', '\xA72A', '\x8133', '\xB9ED', '\x417C', '\x3BE7', '\x7786',
'\x5964', '\x2', '\x33', '\x13E', '\b', '\x1', '\x4', '\x2', '\t', '\x2',
'\x5964', '\x2', '\x32', '\x134', '\b', '\x1', '\x4', '\x2', '\t', '\x2',
'\x4', '\x3', '\t', '\x3', '\x4', '\x4', '\t', '\x4', '\x4', '\x5', '\t',
'\x5', '\x4', '\x6', '\t', '\x6', '\x4', '\a', '\t', '\a', '\x4', '\b',
'\t', '\b', '\x4', '\t', '\t', '\t', '\x4', '\n', '\t', '\n', '\x4', '\v',
@ -135,248 +135,240 @@ public partial class ElsaLexer : Lexer {
'\t', ')', '\x4', '*', '\t', '*', '\x4', '+', '\t', '+', '\x4', ',', '\t',
',', '\x4', '-', '\t', '-', '\x4', '.', '\t', '.', '\x4', '/', '\t', '/',
'\x4', '\x30', '\t', '\x30', '\x4', '\x31', '\t', '\x31', '\x4', '\x32',
'\t', '\x32', '\x4', '\x33', '\t', '\x33', '\x4', '\x34', '\t', '\x34',
'\x3', '\x2', '\x3', '\x2', '\x3', '\x3', '\x3', '\x3', '\x3', '\x4',
'\x3', '\x4', '\x3', '\x4', '\x3', '\x5', '\x3', '\x5', '\x3', '\x5',
'\x3', '\x6', '\x3', '\x6', '\x3', '\x6', '\x3', '\x6', '\x3', '\a', '\x3',
'\t', '\x32', '\x4', '\x33', '\t', '\x33', '\x3', '\x2', '\x3', '\x2',
'\x3', '\x3', '\x3', '\x3', '\x3', '\x4', '\x3', '\x4', '\x3', '\x4',
'\x3', '\x5', '\x3', '\x5', '\x3', '\x5', '\x3', '\x6', '\x3', '\x6',
'\x3', '\x6', '\x3', '\x6', '\x3', '\a', '\x3', '\a', '\x3', '\a', '\x3',
'\a', '\x3', '\a', '\x3', '\a', '\x3', '\a', '\x3', '\a', '\x3', '\a',
'\x3', '\a', '\x3', '\b', '\x3', '\b', '\x3', '\b', '\x3', '\b', '\x3',
'\b', '\x3', '\b', '\x3', '\b', '\x3', '\b', '\x3', '\b', '\x3', '\t',
'\x3', '\t', '\x3', '\t', '\x3', '\t', '\x3', '\n', '\x3', '\n', '\x3',
'\n', '\x3', '\v', '\x3', '\v', '\x3', '\v', '\x3', '\v', '\x3', '\v',
'\x3', '\f', '\x3', '\f', '\x3', '\f', '\x3', '\f', '\x3', '\f', '\x3',
'\r', '\x3', '\r', '\x3', '\r', '\x3', '\r', '\x3', '\xE', '\x3', '\xE',
'\x3', '\xE', '\x3', '\xE', '\x3', '\xE', '\x3', '\xE', '\x3', '\xE',
'\x3', '\b', '\x3', '\b', '\x3', '\b', '\x3', '\b', '\x3', '\t', '\x3',
'\t', '\x3', '\t', '\x3', '\n', '\x3', '\n', '\x3', '\n', '\x3', '\n',
'\x3', '\n', '\x3', '\v', '\x3', '\v', '\x3', '\v', '\x3', '\v', '\x3',
'\v', '\x3', '\f', '\x3', '\f', '\x3', '\f', '\x3', '\f', '\x3', '\r',
'\x3', '\r', '\x3', '\r', '\x3', '\r', '\x3', '\r', '\x3', '\r', '\x3',
'\r', '\x3', '\xE', '\x3', '\xE', '\x3', '\xE', '\x3', '\xE', '\x3', '\xE',
'\x3', '\xF', '\x3', '\xF', '\x3', '\xF', '\x3', '\xF', '\x3', '\xF',
'\x3', '\x10', '\x3', '\x10', '\x3', '\x10', '\x3', '\x10', '\x3', '\x10',
'\x3', '\x10', '\x3', '\x11', '\x3', '\x11', '\x3', '\x11', '\x3', '\x11',
'\x3', '\x12', '\x3', '\x12', '\x3', '\x12', '\x3', '\x12', '\x3', '\x12',
'\x3', '\x12', '\x3', '\x12', '\x3', '\x13', '\x3', '\x13', '\x3', '\x13',
'\x3', '\x13', '\x3', '\x13', '\x3', '\x13', '\x3', '\x13', '\x3', '\x14',
'\x3', '\x14', '\x3', '\x14', '\x3', '\x14', '\x3', '\x14', '\x3', '\x14',
'\x3', '\x14', '\x3', '\x14', '\x3', '\x14', '\x3', '\x14', '\x3', '\x14',
'\x3', '\x15', '\x3', '\x15', '\x3', '\x16', '\x3', '\x16', '\x3', '\x17',
'\x3', '\x17', '\x3', '\x18', '\x3', '\x18', '\x3', '\x19', '\x3', '\x19',
'\x3', '\x1A', '\x3', '\x1A', '\x3', '\x1B', '\x3', '\x1B', '\x3', '\x1C',
'\x3', '\x1C', '\x3', '\x1C', '\x3', '\x1D', '\x3', '\x1D', '\x3', '\x1D',
'\x3', '\x1E', '\x3', '\x1E', '\x3', '\x1E', '\x3', '\x1F', '\x3', '\x1F',
'\x3', ' ', '\x3', ' ', '\x3', ' ', '\x3', '!', '\x3', '!', '\x3', '!',
'\x3', '\"', '\x3', '\"', '\x3', '#', '\x3', '#', '\x3', '$', '\x3', '$',
'\x3', '%', '\x3', '%', '\x3', '&', '\x3', '&', '\x3', '\'', '\x3', '\'',
'\x3', '(', '\x3', '(', '\x3', ')', '\x3', ')', '\x3', '*', '\x3', '*',
'\x3', '*', '\x3', '+', '\x3', '+', '\x3', ',', '\x3', ',', '\x3', ',',
'\x3', ',', '\a', ',', '\x105', '\n', ',', '\f', ',', '\xE', ',', '\x108',
'\v', ',', '\x3', ',', '\x3', ',', '\x3', '-', '\x3', '-', '\x3', '-',
'\x3', '-', '\a', '-', '\x110', '\n', '-', '\f', '-', '\xE', '-', '\x113',
'\v', '-', '\x3', '-', '\x3', '-', '\x3', '.', '\x3', '.', '\x3', '.',
'\x3', '.', '\a', '.', '\x11B', '\n', '.', '\f', '.', '\xE', '.', '\x11E',
'\v', '.', '\x3', '.', '\x5', '.', '\x121', '\n', '.', '\x3', '.', '\x3',
'.', '\x3', '.', '\x3', '.', '\x3', '/', '\x6', '/', '\x128', '\n', '/',
'\r', '/', '\xE', '/', '\x129', '\x3', '\x30', '\x3', '\x30', '\x3', '\x30',
'\a', '\x30', '\x12F', '\n', '\x30', '\f', '\x30', '\xE', '\x30', '\x132',
'\v', '\x30', '\x3', '\x31', '\x3', '\x31', '\x3', '\x31', '\x3', '\x31',
'\x3', '\x32', '\x3', '\x32', '\x3', '\x33', '\x3', '\x33', '\x3', '\x34',
'\x3', '\x34', '\x3', '\x34', '\x5', '\x106', '\x111', '\x11C', '\x2',
'\x35', '\x3', '\x3', '\x5', '\x4', '\a', '\x5', '\t', '\x6', '\v', '\a',
'\r', '\b', '\xF', '\t', '\x11', '\n', '\x13', '\v', '\x15', '\f', '\x17',
'\r', '\x19', '\xE', '\x1B', '\xF', '\x1D', '\x10', '\x1F', '\x11', '!',
'\x12', '#', '\x13', '%', '\x14', '\'', '\x15', ')', '\x16', '+', '\x17',
'-', '\x18', '/', '\x19', '\x31', '\x1A', '\x33', '\x1B', '\x35', '\x1C',
'\x37', '\x1D', '\x39', '\x1E', ';', '\x1F', '=', ' ', '?', '!', '\x41',
'\"', '\x43', '#', '\x45', '$', 'G', '%', 'I', '&', 'K', '\'', 'M', '(',
'O', ')', 'Q', '*', 'S', '+', 'U', ',', 'W', '-', 'Y', '.', '[', '/',
']', '\x30', '_', '\x31', '\x61', '\x32', '\x63', '\x2', '\x65', '\x2',
'g', '\x33', '\x3', '\x2', '\x6', '\x6', '\x2', '&', '&', '-', '-', '?',
'@', '\x62', '\x62', '\x5', '\x2', '\v', '\f', '\xF', '\xF', '\"', '\"',
'\x5', '\x2', '\x43', '\\', '\x61', '\x61', '\x63', '|', '\x3', '\x2',
'\x32', ';', '\x2', '\x144', '\x2', '\x3', '\x3', '\x2', '\x2', '\x2',
'\x2', '\x5', '\x3', '\x2', '\x2', '\x2', '\x2', '\a', '\x3', '\x2', '\x2',
'\x2', '\x2', '\t', '\x3', '\x2', '\x2', '\x2', '\x2', '\v', '\x3', '\x2',
'\x2', '\x2', '\x2', '\r', '\x3', '\x2', '\x2', '\x2', '\x2', '\xF', '\x3',
'\x2', '\x2', '\x2', '\x2', '\x11', '\x3', '\x2', '\x2', '\x2', '\x2',
'\x13', '\x3', '\x2', '\x2', '\x2', '\x2', '\x15', '\x3', '\x2', '\x2',
'\x2', '\x2', '\x17', '\x3', '\x2', '\x2', '\x2', '\x2', '\x19', '\x3',
'\x2', '\x2', '\x2', '\x2', '\x1B', '\x3', '\x2', '\x2', '\x2', '\x2',
'\x1D', '\x3', '\x2', '\x2', '\x2', '\x2', '\x1F', '\x3', '\x2', '\x2',
'\x2', '\x2', '!', '\x3', '\x2', '\x2', '\x2', '\x2', '#', '\x3', '\x2',
'\x2', '\x2', '\x2', '%', '\x3', '\x2', '\x2', '\x2', '\x2', '\'', '\x3',
'\x2', '\x2', '\x2', '\x2', ')', '\x3', '\x2', '\x2', '\x2', '\x2', '+',
'\x3', '\x2', '\x2', '\x2', '\x2', '-', '\x3', '\x2', '\x2', '\x2', '\x2',
'/', '\x3', '\x2', '\x2', '\x2', '\x2', '\x31', '\x3', '\x2', '\x2', '\x2',
'\x2', '\x33', '\x3', '\x2', '\x2', '\x2', '\x2', '\x35', '\x3', '\x2',
'\x2', '\x2', '\x2', '\x37', '\x3', '\x2', '\x2', '\x2', '\x2', '\x39',
'\x3', '\x2', '\x2', '\x2', '\x2', ';', '\x3', '\x2', '\x2', '\x2', '\x2',
'=', '\x3', '\x2', '\x2', '\x2', '\x2', '?', '\x3', '\x2', '\x2', '\x2',
'\x2', '\x41', '\x3', '\x2', '\x2', '\x2', '\x2', '\x43', '\x3', '\x2',
'\x2', '\x2', '\x2', '\x45', '\x3', '\x2', '\x2', '\x2', '\x2', 'G', '\x3',
'\x2', '\x2', '\x2', '\x2', 'I', '\x3', '\x2', '\x2', '\x2', '\x2', 'K',
'\x3', '\x2', '\x2', '\x2', '\x2', 'M', '\x3', '\x2', '\x2', '\x2', '\x2',
'O', '\x3', '\x2', '\x2', '\x2', '\x2', 'Q', '\x3', '\x2', '\x2', '\x2',
'\x2', 'S', '\x3', '\x2', '\x2', '\x2', '\x2', 'U', '\x3', '\x2', '\x2',
'\x2', '\x2', 'W', '\x3', '\x2', '\x2', '\x2', '\x2', 'Y', '\x3', '\x2',
'\x2', '\x2', '\x2', '[', '\x3', '\x2', '\x2', '\x2', '\x2', ']', '\x3',
'\x2', '\x2', '\x2', '\x2', '_', '\x3', '\x2', '\x2', '\x2', '\x2', '\x61',
'\x3', '\x2', '\x2', '\x2', '\x2', 'g', '\x3', '\x2', '\x2', '\x2', '\x3',
'i', '\x3', '\x2', '\x2', '\x2', '\x5', 'k', '\x3', '\x2', '\x2', '\x2',
'\a', 'm', '\x3', '\x2', '\x2', '\x2', '\t', 'p', '\x3', '\x2', '\x2',
'\x2', '\v', 's', '\x3', '\x2', '\x2', '\x2', '\r', 'w', '\x3', '\x2',
'\x2', '\x2', '\xF', '\x7F', '\x3', '\x2', '\x2', '\x2', '\x11', '\x88',
'\x3', '\x2', '\x2', '\x2', '\x13', '\x8C', '\x3', '\x2', '\x2', '\x2',
'\x15', '\x8F', '\x3', '\x2', '\x2', '\x2', '\x17', '\x94', '\x3', '\x2',
'\x2', '\x2', '\x19', '\x99', '\x3', '\x2', '\x2', '\x2', '\x1B', '\x9D',
'\x3', '\x2', '\x2', '\x2', '\x1D', '\xA4', '\x3', '\x2', '\x2', '\x2',
'\x1F', '\xA9', '\x3', '\x2', '\x2', '\x2', '!', '\xAF', '\x3', '\x2',
'\x2', '\x2', '#', '\xB3', '\x3', '\x2', '\x2', '\x2', '%', '\xBA', '\x3',
'\x2', '\x2', '\x2', '\'', '\xC1', '\x3', '\x2', '\x2', '\x2', ')', '\xCC',
'\x3', '\x2', '\x2', '\x2', '+', '\xCE', '\x3', '\x2', '\x2', '\x2', '-',
'\xD0', '\x3', '\x2', '\x2', '\x2', '/', '\xD2', '\x3', '\x2', '\x2',
'\x2', '\x31', '\xD4', '\x3', '\x2', '\x2', '\x2', '\x33', '\xD6', '\x3',
'\x2', '\x2', '\x2', '\x35', '\xD8', '\x3', '\x2', '\x2', '\x2', '\x37',
'\xDA', '\x3', '\x2', '\x2', '\x2', '\x39', '\xDD', '\x3', '\x2', '\x2',
'\x2', ';', '\xE0', '\x3', '\x2', '\x2', '\x2', '=', '\xE3', '\x3', '\x2',
'\x2', '\x2', '?', '\xE5', '\x3', '\x2', '\x2', '\x2', '\x41', '\xE8',
'\x3', '\x2', '\x2', '\x2', '\x43', '\xEB', '\x3', '\x2', '\x2', '\x2',
'\x45', '\xED', '\x3', '\x2', '\x2', '\x2', 'G', '\xEF', '\x3', '\x2',
'\x2', '\x2', 'I', '\xF1', '\x3', '\x2', '\x2', '\x2', 'K', '\xF3', '\x3',
'\x2', '\x2', '\x2', 'M', '\xF5', '\x3', '\x2', '\x2', '\x2', 'O', '\xF7',
'\x3', '\x2', '\x2', '\x2', 'Q', '\xF9', '\x3', '\x2', '\x2', '\x2', 'S',
'\xFB', '\x3', '\x2', '\x2', '\x2', 'U', '\xFE', '\x3', '\x2', '\x2',
'\x2', 'W', '\x100', '\x3', '\x2', '\x2', '\x2', 'Y', '\x10B', '\x3',
'\x2', '\x2', '\x2', '[', '\x116', '\x3', '\x2', '\x2', '\x2', ']', '\x127',
'\x3', '\x2', '\x2', '\x2', '_', '\x12B', '\x3', '\x2', '\x2', '\x2',
'\x61', '\x133', '\x3', '\x2', '\x2', '\x2', '\x63', '\x137', '\x3', '\x2',
'\x2', '\x2', '\x65', '\x139', '\x3', '\x2', '\x2', '\x2', 'g', '\x13B',
'\x3', '\x2', '\x2', '\x2', 'i', 'j', '\a', '?', '\x2', '\x2', 'j', '\x4',
'\x3', '\x2', '\x2', '\x2', 'k', 'l', '\a', '@', '\x2', '\x2', 'l', '\x6',
'\x3', '\x2', '\x2', '\x2', 'm', 'n', '\a', '-', '\x2', '\x2', 'n', 'o',
'\a', '-', '\x2', '\x2', 'o', '\b', '\x3', '\x2', '\x2', '\x2', 'p', 'q',
'\a', '/', '\x2', '\x2', 'q', 'r', '\a', '/', '\x2', '\x2', 'r', '\n',
'\x3', '\x2', '\x2', '\x2', 's', 't', '\a', 'p', '\x2', '\x2', 't', 'u',
'\a', 'g', '\x2', '\x2', 'u', 'v', '\a', 'y', '\x2', '\x2', 'v', '\f',
'\x3', '\x2', '\x2', '\x2', 'w', 'x', '\a', 'v', '\x2', '\x2', 'x', 'y',
'\a', 't', '\x2', '\x2', 'y', 'z', '\a', 'k', '\x2', '\x2', 'z', '{',
'\a', 'i', '\x2', '\x2', '{', '|', '\a', 'i', '\x2', '\x2', '|', '}',
'\a', 'g', '\x2', '\x2', '}', '~', '\a', 't', '\x2', '\x2', '~', '\xE',
'\x3', '\x2', '\x2', '\x2', '\x7F', '\x80', '\a', 'x', '\x2', '\x2', '\x80',
'\x81', '\a', '\x63', '\x2', '\x2', '\x81', '\x82', '\a', 't', '\x2',
'\x2', '\x82', '\x83', '\a', 'k', '\x2', '\x2', '\x83', '\x84', '\a',
'\x63', '\x2', '\x2', '\x84', '\x85', '\a', '\x64', '\x2', '\x2', '\x85',
'\x86', '\a', 'n', '\x2', '\x2', '\x86', '\x87', '\a', 'g', '\x2', '\x2',
'\x87', '\x10', '\x3', '\x2', '\x2', '\x2', '\x88', '\x89', '\a', 'n',
'\x2', '\x2', '\x89', '\x8A', '\a', 'g', '\x2', '\x2', '\x8A', '\x8B',
'\a', 'v', '\x2', '\x2', '\x8B', '\x12', '\x3', '\x2', '\x2', '\x2', '\x8C',
'\x8D', '\a', 'k', '\x2', '\x2', '\x8D', '\x8E', '\a', 'h', '\x2', '\x2',
'\x8E', '\x14', '\x3', '\x2', '\x2', '\x2', '\x8F', '\x90', '\a', 'v',
'\x2', '\x2', '\x90', '\x91', '\a', 'j', '\x2', '\x2', '\x91', '\x92',
'\a', 'g', '\x2', '\x2', '\x92', '\x93', '\a', 'p', '\x2', '\x2', '\x93',
'\x16', '\x3', '\x2', '\x2', '\x2', '\x94', '\x95', '\a', 'g', '\x2',
'\x2', '\x95', '\x96', '\a', 'n', '\x2', '\x2', '\x96', '\x97', '\a',
'u', '\x2', '\x2', '\x97', '\x98', '\a', 'g', '\x2', '\x2', '\x98', '\x18',
'\x3', '\x2', '\x2', '\x2', '\x99', '\x9A', '\a', 'h', '\x2', '\x2', '\x9A',
'\x9B', '\a', 'q', '\x2', '\x2', '\x9B', '\x9C', '\a', 't', '\x2', '\x2',
'\x9C', '\x1A', '\x3', '\x2', '\x2', '\x2', '\x9D', '\x9E', '\a', 't',
'\x2', '\x2', '\x9E', '\x9F', '\a', 'g', '\x2', '\x2', '\x9F', '\xA0',
'\a', 'v', '\x2', '\x2', '\xA0', '\xA1', '\a', 'w', '\x2', '\x2', '\xA1',
'\xA2', '\a', 't', '\x2', '\x2', '\xA2', '\xA3', '\a', 'p', '\x2', '\x2',
'\xA3', '\x1C', '\x3', '\x2', '\x2', '\x2', '\xA4', '\xA5', '\a', 'x',
'\x2', '\x2', '\xA5', '\xA6', '\a', 'q', '\x2', '\x2', '\xA6', '\xA7',
'\a', 'k', '\x2', '\x2', '\xA7', '\xA8', '\a', '\x66', '\x2', '\x2', '\xA8',
'\x1E', '\x3', '\x2', '\x2', '\x2', '\xA9', '\xAA', '\a', 'h', '\x2',
'\x2', '\xAA', '\xAB', '\a', 'n', '\x2', '\x2', '\xAB', '\xAC', '\a',
'q', '\x2', '\x2', '\xAC', '\xAD', '\a', '\x63', '\x2', '\x2', '\xAD',
'\xAE', '\a', 'v', '\x2', '\x2', '\xAE', ' ', '\x3', '\x2', '\x2', '\x2',
'\xAF', '\xB0', '\a', 'k', '\x2', '\x2', '\xB0', '\xB1', '\a', 'p', '\x2',
'\x2', '\xB1', '\xB2', '\a', 'v', '\x2', '\x2', '\xB2', '\"', '\x3', '\x2',
'\x2', '\x2', '\xB3', '\xB4', '\a', 'u', '\x2', '\x2', '\xB4', '\xB5',
'\a', 'v', '\x2', '\x2', '\xB5', '\xB6', '\a', 't', '\x2', '\x2', '\xB6',
'\xB7', '\a', 'k', '\x2', '\x2', '\xB7', '\xB8', '\a', 'p', '\x2', '\x2',
'\xB8', '\xB9', '\a', 'i', '\x2', '\x2', '\xB9', '$', '\x3', '\x2', '\x2',
'\x2', '\xBA', '\xBB', '\a', 'q', '\x2', '\x2', '\xBB', '\xBC', '\a',
'\x64', '\x2', '\x2', '\xBC', '\xBD', '\a', 'l', '\x2', '\x2', '\xBD',
'\xBE', '\a', 'g', '\x2', '\x2', '\xBE', '\xBF', '\a', '\x65', '\x2',
'\x2', '\xBF', '\xC0', '\a', 'v', '\x2', '\x2', '\xC0', '&', '\x3', '\x2',
'\x2', '\x2', '\xC1', '\xC2', '\a', 'g', '\x2', '\x2', '\xC2', '\xC3',
'\a', 'z', '\x2', '\x2', '\xC3', '\xC4', '\a', 'r', '\x2', '\x2', '\xC4',
'\xC5', '\a', 't', '\x2', '\x2', '\xC5', '\xC6', '\a', 'g', '\x2', '\x2',
'\xC6', '\xC7', '\a', 'u', '\x2', '\x2', '\xC7', '\xC8', '\a', 'u', '\x2',
'\x2', '\xC8', '\xC9', '\a', 'k', '\x2', '\x2', '\xC9', '\xCA', '\a',
'q', '\x2', '\x2', '\xCA', '\xCB', '\a', 'p', '\x2', '\x2', '\xCB', '(',
'\x3', '\x2', '\x2', '\x2', '\xCC', '\xCD', '\t', '\x2', '\x2', '\x2',
'\xCD', '*', '\x3', '\x2', '\x2', '\x2', '\xCE', '\xCF', '\a', '<', '\x2',
'\x2', '\xCF', ',', '\x3', '\x2', '\x2', '\x2', '\xD0', '\xD1', '\a',
'=', '\x2', '\x2', '\xD1', '.', '\x3', '\x2', '\x2', '\x2', '\xD2', '\xD3',
'\a', '.', '\x2', '\x2', '\xD3', '\x30', '\x3', '\x2', '\x2', '\x2', '\xD4',
'\xD5', '\a', '-', '\x2', '\x2', '\xD5', '\x32', '\x3', '\x2', '\x2',
'\x2', '\xD6', '\xD7', '\a', '/', '\x2', '\x2', '\xD7', '\x34', '\x3',
'\x2', '\x2', '\x2', '\xD8', '\xD9', '\a', ',', '\x2', '\x2', '\xD9',
'\x36', '\x3', '\x2', '\x2', '\x2', '\xDA', '\xDB', '\a', '?', '\x2',
'\x2', '\xDB', '\xDC', '\a', '?', '\x2', '\x2', '\xDC', '\x38', '\x3',
'\x2', '\x2', '\x2', '\xDD', '\xDE', '\a', '#', '\x2', '\x2', '\xDE',
'\xDF', '\a', '?', '\x2', '\x2', '\xDF', ':', '\x3', '\x2', '\x2', '\x2',
'\xE0', '\xE1', '\a', '@', '\x2', '\x2', '\xE1', '\xE2', '\a', '?', '\x2',
'\x2', '\xE2', '<', '\x3', '\x2', '\x2', '\x2', '\xE3', '\xE4', '\a',
'>', '\x2', '\x2', '\xE4', '>', '\x3', '\x2', '\x2', '\x2', '\xE5', '\xE6',
'\a', '>', '\x2', '\x2', '\xE6', '\xE7', '\a', '?', '\x2', '\x2', '\xE7',
'@', '\x3', '\x2', '\x2', '\x2', '\xE8', '\xE9', '\a', '?', '\x2', '\x2',
'\xE9', '\xEA', '\a', '@', '\x2', '\x2', '\xEA', '\x42', '\x3', '\x2',
'\x2', '\x2', '\xEB', '\xEC', '\a', '*', '\x2', '\x2', '\xEC', '\x44',
'\x3', '\x2', '\x2', '\x2', '\xED', '\xEE', '\a', '+', '\x2', '\x2', '\xEE',
'\x46', '\x3', '\x2', '\x2', '\x2', '\xEF', '\xF0', '\a', ']', '\x2',
'\x2', '\xF0', 'H', '\x3', '\x2', '\x2', '\x2', '\xF1', '\xF2', '\a',
'_', '\x2', '\x2', '\xF2', 'J', '\x3', '\x2', '\x2', '\x2', '\xF3', '\xF4',
'\a', '}', '\x2', '\x2', '\xF4', 'L', '\x3', '\x2', '\x2', '\x2', '\xF5',
'\xF6', '\a', '\x7F', '\x2', '\x2', '\xF6', 'N', '\x3', '\x2', '\x2',
'\x2', '\xF7', '\xF8', '\a', '#', '\x2', '\x2', '\xF8', 'P', '\x3', '\x2',
'\x2', '\x2', '\xF9', '\xFA', '\a', '~', '\x2', '\x2', '\xFA', 'R', '\x3',
'\x2', '\x2', '\x2', '\xFB', '\xFC', '\a', '~', '\x2', '\x2', '\xFC',
'\xFD', '\a', '~', '\x2', '\x2', '\xFD', 'T', '\x3', '\x2', '\x2', '\x2',
'\xFE', '\xFF', '\a', '\x30', '\x2', '\x2', '\xFF', 'V', '\x3', '\x2',
'\x2', '\x2', '\x100', '\x106', '\a', '$', '\x2', '\x2', '\x101', '\x102',
'\a', '^', '\x2', '\x2', '\x102', '\x105', '\a', '$', '\x2', '\x2', '\x103',
'\x105', '\v', '\x2', '\x2', '\x2', '\x104', '\x101', '\x3', '\x2', '\x2',
'\x2', '\x104', '\x103', '\x3', '\x2', '\x2', '\x2', '\x105', '\x108',
'\x3', '\x2', '\x2', '\x2', '\x106', '\x107', '\x3', '\x2', '\x2', '\x2',
'\x106', '\x104', '\x3', '\x2', '\x2', '\x2', '\x107', '\x109', '\x3',
'\x2', '\x2', '\x2', '\x108', '\x106', '\x3', '\x2', '\x2', '\x2', '\x109',
'\x10A', '\a', '$', '\x2', '\x2', '\x10A', 'X', '\x3', '\x2', '\x2', '\x2',
'\x10B', '\x111', '\a', '\x62', '\x2', '\x2', '\x10C', '\x10D', '\a',
'^', '\x2', '\x2', '\x10D', '\x110', '\a', '$', '\x2', '\x2', '\x10E',
'\x110', '\v', '\x2', '\x2', '\x2', '\x10F', '\x10C', '\x3', '\x2', '\x2',
'\x2', '\x10F', '\x10E', '\x3', '\x2', '\x2', '\x2', '\x110', '\x113',
'\x3', '\x2', '\x2', '\x2', '\x111', '\x112', '\x3', '\x2', '\x2', '\x2',
'\x111', '\x10F', '\x3', '\x2', '\x2', '\x2', '\x112', '\x114', '\x3',
'\x2', '\x2', '\x2', '\x113', '\x111', '\x3', '\x2', '\x2', '\x2', '\x114',
'\x115', '\a', '\x62', '\x2', '\x2', '\x115', 'Z', '\x3', '\x2', '\x2',
'\x2', '\x116', '\x117', '\a', '\x31', '\x2', '\x2', '\x117', '\x118',
'\a', '\x31', '\x2', '\x2', '\x118', '\x11C', '\x3', '\x2', '\x2', '\x2',
'\x119', '\x11B', '\v', '\x2', '\x2', '\x2', '\x11A', '\x119', '\x3',
'\x2', '\x2', '\x2', '\x11B', '\x11E', '\x3', '\x2', '\x2', '\x2', '\x11C',
'\x11D', '\x3', '\x2', '\x2', '\x2', '\x11C', '\x11A', '\x3', '\x2', '\x2',
'\x2', '\x11D', '\x120', '\x3', '\x2', '\x2', '\x2', '\x11E', '\x11C',
'\x3', '\x2', '\x2', '\x2', '\x11F', '\x121', '\a', '\xF', '\x2', '\x2',
'\x120', '\x11F', '\x3', '\x2', '\x2', '\x2', '\x120', '\x121', '\x3',
'\x2', '\x2', '\x2', '\x121', '\x122', '\x3', '\x2', '\x2', '\x2', '\x122',
'\x123', '\a', '\f', '\x2', '\x2', '\x123', '\x124', '\x3', '\x2', '\x2',
'\x2', '\x124', '\x125', '\b', '.', '\x2', '\x2', '\x125', '\\', '\x3',
'\x2', '\x2', '\x2', '\x126', '\x128', '\x5', '\x65', '\x33', '\x2', '\x127',
'\x126', '\x3', '\x2', '\x2', '\x2', '\x128', '\x129', '\x3', '\x2', '\x2',
'\x2', '\x129', '\x127', '\x3', '\x2', '\x2', '\x2', '\x129', '\x12A',
'\x3', '\x2', '\x2', '\x2', '\x12A', '^', '\x3', '\x2', '\x2', '\x2',
'\x12B', '\x130', '\x5', '\x63', '\x32', '\x2', '\x12C', '\x12F', '\x5',
'\x63', '\x32', '\x2', '\x12D', '\x12F', '\x5', '\x65', '\x33', '\x2',
'\x12E', '\x12C', '\x3', '\x2', '\x2', '\x2', '\x12E', '\x12D', '\x3',
'\x2', '\x2', '\x2', '\x12F', '\x132', '\x3', '\x2', '\x2', '\x2', '\x130',
'\x12E', '\x3', '\x2', '\x2', '\x2', '\x130', '\x131', '\x3', '\x2', '\x2',
'\x2', '\x131', '`', '\x3', '\x2', '\x2', '\x2', '\x132', '\x130', '\x3',
'\x2', '\x2', '\x2', '\x133', '\x134', '\t', '\x3', '\x2', '\x2', '\x134',
'\x135', '\x3', '\x2', '\x2', '\x2', '\x135', '\x136', '\b', '\x31', '\x2',
'\x2', '\x136', '\x62', '\x3', '\x2', '\x2', '\x2', '\x137', '\x138',
'\t', '\x4', '\x2', '\x2', '\x138', '\x64', '\x3', '\x2', '\x2', '\x2',
'\x139', '\x13A', '\t', '\x5', '\x2', '\x2', '\x13A', '\x66', '\x3', '\x2',
'\x2', '\x2', '\x13B', '\x13C', '\a', '^', '\x2', '\x2', '\x13C', '\x13D',
'\a', '~', '\x2', '\x2', '\x13D', 'h', '\x3', '\x2', '\x2', '\x2', '\f',
'\x2', '\x104', '\x106', '\x10F', '\x111', '\x11C', '\x120', '\x129',
'\x12E', '\x130', '\x3', '\b', '\x2', '\x2',
'\x3', '\xF', '\x3', '\x10', '\x3', '\x10', '\x3', '\x10', '\x3', '\x10',
'\x3', '\x11', '\x3', '\x11', '\x3', '\x11', '\x3', '\x11', '\x3', '\x11',
'\x3', '\x11', '\x3', '\x11', '\x3', '\x12', '\x3', '\x12', '\x3', '\x12',
'\x3', '\x12', '\x3', '\x12', '\x3', '\x12', '\x3', '\x12', '\x3', '\x13',
'\x3', '\x13', '\x3', '\x13', '\x3', '\x13', '\x3', '\x13', '\x3', '\x13',
'\x3', '\x13', '\x3', '\x13', '\x3', '\x13', '\x3', '\x13', '\x3', '\x13',
'\x3', '\x14', '\x3', '\x14', '\x3', '\x15', '\x3', '\x15', '\x3', '\x16',
'\x3', '\x16', '\x3', '\x17', '\x3', '\x17', '\x3', '\x18', '\x3', '\x18',
'\x3', '\x19', '\x3', '\x19', '\x3', '\x1A', '\x3', '\x1A', '\x3', '\x1B',
'\x3', '\x1B', '\x3', '\x1B', '\x3', '\x1C', '\x3', '\x1C', '\x3', '\x1C',
'\x3', '\x1D', '\x3', '\x1D', '\x3', '\x1D', '\x3', '\x1E', '\x3', '\x1E',
'\x3', '\x1F', '\x3', '\x1F', '\x3', '\x1F', '\x3', ' ', '\x3', ' ', '\x3',
' ', '\x3', '!', '\x3', '!', '\x3', '\"', '\x3', '\"', '\x3', '#', '\x3',
'#', '\x3', '$', '\x3', '$', '\x3', '%', '\x3', '%', '\x3', '&', '\x3',
'&', '\x3', '\'', '\x3', '\'', '\x3', '(', '\x3', '(', '\x3', ')', '\x3',
')', '\x3', ')', '\x3', '*', '\x3', '*', '\x3', '+', '\x3', '+', '\x3',
'+', '\x3', '+', '\a', '+', '\xFB', '\n', '+', '\f', '+', '\xE', '+',
'\xFE', '\v', '+', '\x3', '+', '\x3', '+', '\x3', ',', '\x3', ',', '\x3',
',', '\x3', ',', '\a', ',', '\x106', '\n', ',', '\f', ',', '\xE', ',',
'\x109', '\v', ',', '\x3', ',', '\x3', ',', '\x3', '-', '\x3', '-', '\x3',
'-', '\x3', '-', '\a', '-', '\x111', '\n', '-', '\f', '-', '\xE', '-',
'\x114', '\v', '-', '\x3', '-', '\x5', '-', '\x117', '\n', '-', '\x3',
'-', '\x3', '-', '\x3', '-', '\x3', '-', '\x3', '.', '\x6', '.', '\x11E',
'\n', '.', '\r', '.', '\xE', '.', '\x11F', '\x3', '/', '\x3', '/', '\x3',
'/', '\a', '/', '\x125', '\n', '/', '\f', '/', '\xE', '/', '\x128', '\v',
'/', '\x3', '\x30', '\x3', '\x30', '\x3', '\x30', '\x3', '\x30', '\x3',
'\x31', '\x3', '\x31', '\x3', '\x32', '\x3', '\x32', '\x3', '\x33', '\x3',
'\x33', '\x3', '\x33', '\x5', '\xFC', '\x107', '\x112', '\x2', '\x34',
'\x3', '\x3', '\x5', '\x4', '\a', '\x5', '\t', '\x6', '\v', '\a', '\r',
'\b', '\xF', '\t', '\x11', '\n', '\x13', '\v', '\x15', '\f', '\x17', '\r',
'\x19', '\xE', '\x1B', '\xF', '\x1D', '\x10', '\x1F', '\x11', '!', '\x12',
'#', '\x13', '%', '\x14', '\'', '\x15', ')', '\x16', '+', '\x17', '-',
'\x18', '/', '\x19', '\x31', '\x1A', '\x33', '\x1B', '\x35', '\x1C', '\x37',
'\x1D', '\x39', '\x1E', ';', '\x1F', '=', ' ', '?', '!', '\x41', '\"',
'\x43', '#', '\x45', '$', 'G', '%', 'I', '&', 'K', '\'', 'M', '(', 'O',
')', 'Q', '*', 'S', '+', 'U', ',', 'W', '-', 'Y', '.', '[', '/', ']',
'\x30', '_', '\x31', '\x61', '\x2', '\x63', '\x2', '\x65', '\x32', '\x3',
'\x2', '\x6', '\x6', '\x2', '&', '&', '-', '-', '?', '@', '\x62', '\x62',
'\x5', '\x2', '\v', '\f', '\xF', '\xF', '\"', '\"', '\x5', '\x2', '\x43',
'\\', '\x61', '\x61', '\x63', '|', '\x3', '\x2', '\x32', ';', '\x2', '\x13A',
'\x2', '\x3', '\x3', '\x2', '\x2', '\x2', '\x2', '\x5', '\x3', '\x2',
'\x2', '\x2', '\x2', '\a', '\x3', '\x2', '\x2', '\x2', '\x2', '\t', '\x3',
'\x2', '\x2', '\x2', '\x2', '\v', '\x3', '\x2', '\x2', '\x2', '\x2', '\r',
'\x3', '\x2', '\x2', '\x2', '\x2', '\xF', '\x3', '\x2', '\x2', '\x2',
'\x2', '\x11', '\x3', '\x2', '\x2', '\x2', '\x2', '\x13', '\x3', '\x2',
'\x2', '\x2', '\x2', '\x15', '\x3', '\x2', '\x2', '\x2', '\x2', '\x17',
'\x3', '\x2', '\x2', '\x2', '\x2', '\x19', '\x3', '\x2', '\x2', '\x2',
'\x2', '\x1B', '\x3', '\x2', '\x2', '\x2', '\x2', '\x1D', '\x3', '\x2',
'\x2', '\x2', '\x2', '\x1F', '\x3', '\x2', '\x2', '\x2', '\x2', '!', '\x3',
'\x2', '\x2', '\x2', '\x2', '#', '\x3', '\x2', '\x2', '\x2', '\x2', '%',
'\x3', '\x2', '\x2', '\x2', '\x2', '\'', '\x3', '\x2', '\x2', '\x2', '\x2',
')', '\x3', '\x2', '\x2', '\x2', '\x2', '+', '\x3', '\x2', '\x2', '\x2',
'\x2', '-', '\x3', '\x2', '\x2', '\x2', '\x2', '/', '\x3', '\x2', '\x2',
'\x2', '\x2', '\x31', '\x3', '\x2', '\x2', '\x2', '\x2', '\x33', '\x3',
'\x2', '\x2', '\x2', '\x2', '\x35', '\x3', '\x2', '\x2', '\x2', '\x2',
'\x37', '\x3', '\x2', '\x2', '\x2', '\x2', '\x39', '\x3', '\x2', '\x2',
'\x2', '\x2', ';', '\x3', '\x2', '\x2', '\x2', '\x2', '=', '\x3', '\x2',
'\x2', '\x2', '\x2', '?', '\x3', '\x2', '\x2', '\x2', '\x2', '\x41', '\x3',
'\x2', '\x2', '\x2', '\x2', '\x43', '\x3', '\x2', '\x2', '\x2', '\x2',
'\x45', '\x3', '\x2', '\x2', '\x2', '\x2', 'G', '\x3', '\x2', '\x2', '\x2',
'\x2', 'I', '\x3', '\x2', '\x2', '\x2', '\x2', 'K', '\x3', '\x2', '\x2',
'\x2', '\x2', 'M', '\x3', '\x2', '\x2', '\x2', '\x2', 'O', '\x3', '\x2',
'\x2', '\x2', '\x2', 'Q', '\x3', '\x2', '\x2', '\x2', '\x2', 'S', '\x3',
'\x2', '\x2', '\x2', '\x2', 'U', '\x3', '\x2', '\x2', '\x2', '\x2', 'W',
'\x3', '\x2', '\x2', '\x2', '\x2', 'Y', '\x3', '\x2', '\x2', '\x2', '\x2',
'[', '\x3', '\x2', '\x2', '\x2', '\x2', ']', '\x3', '\x2', '\x2', '\x2',
'\x2', '_', '\x3', '\x2', '\x2', '\x2', '\x2', '\x65', '\x3', '\x2', '\x2',
'\x2', '\x3', 'g', '\x3', '\x2', '\x2', '\x2', '\x5', 'i', '\x3', '\x2',
'\x2', '\x2', '\a', 'k', '\x3', '\x2', '\x2', '\x2', '\t', 'n', '\x3',
'\x2', '\x2', '\x2', '\v', 'q', '\x3', '\x2', '\x2', '\x2', '\r', 'u',
'\x3', '\x2', '\x2', '\x2', '\xF', '~', '\x3', '\x2', '\x2', '\x2', '\x11',
'\x82', '\x3', '\x2', '\x2', '\x2', '\x13', '\x85', '\x3', '\x2', '\x2',
'\x2', '\x15', '\x8A', '\x3', '\x2', '\x2', '\x2', '\x17', '\x8F', '\x3',
'\x2', '\x2', '\x2', '\x19', '\x93', '\x3', '\x2', '\x2', '\x2', '\x1B',
'\x9A', '\x3', '\x2', '\x2', '\x2', '\x1D', '\x9F', '\x3', '\x2', '\x2',
'\x2', '\x1F', '\xA5', '\x3', '\x2', '\x2', '\x2', '!', '\xA9', '\x3',
'\x2', '\x2', '\x2', '#', '\xB0', '\x3', '\x2', '\x2', '\x2', '%', '\xB7',
'\x3', '\x2', '\x2', '\x2', '\'', '\xC2', '\x3', '\x2', '\x2', '\x2',
')', '\xC4', '\x3', '\x2', '\x2', '\x2', '+', '\xC6', '\x3', '\x2', '\x2',
'\x2', '-', '\xC8', '\x3', '\x2', '\x2', '\x2', '/', '\xCA', '\x3', '\x2',
'\x2', '\x2', '\x31', '\xCC', '\x3', '\x2', '\x2', '\x2', '\x33', '\xCE',
'\x3', '\x2', '\x2', '\x2', '\x35', '\xD0', '\x3', '\x2', '\x2', '\x2',
'\x37', '\xD3', '\x3', '\x2', '\x2', '\x2', '\x39', '\xD6', '\x3', '\x2',
'\x2', '\x2', ';', '\xD9', '\x3', '\x2', '\x2', '\x2', '=', '\xDB', '\x3',
'\x2', '\x2', '\x2', '?', '\xDE', '\x3', '\x2', '\x2', '\x2', '\x41',
'\xE1', '\x3', '\x2', '\x2', '\x2', '\x43', '\xE3', '\x3', '\x2', '\x2',
'\x2', '\x45', '\xE5', '\x3', '\x2', '\x2', '\x2', 'G', '\xE7', '\x3',
'\x2', '\x2', '\x2', 'I', '\xE9', '\x3', '\x2', '\x2', '\x2', 'K', '\xEB',
'\x3', '\x2', '\x2', '\x2', 'M', '\xED', '\x3', '\x2', '\x2', '\x2', 'O',
'\xEF', '\x3', '\x2', '\x2', '\x2', 'Q', '\xF1', '\x3', '\x2', '\x2',
'\x2', 'S', '\xF4', '\x3', '\x2', '\x2', '\x2', 'U', '\xF6', '\x3', '\x2',
'\x2', '\x2', 'W', '\x101', '\x3', '\x2', '\x2', '\x2', 'Y', '\x10C',
'\x3', '\x2', '\x2', '\x2', '[', '\x11D', '\x3', '\x2', '\x2', '\x2',
']', '\x121', '\x3', '\x2', '\x2', '\x2', '_', '\x129', '\x3', '\x2',
'\x2', '\x2', '\x61', '\x12D', '\x3', '\x2', '\x2', '\x2', '\x63', '\x12F',
'\x3', '\x2', '\x2', '\x2', '\x65', '\x131', '\x3', '\x2', '\x2', '\x2',
'g', 'h', '\a', '?', '\x2', '\x2', 'h', '\x4', '\x3', '\x2', '\x2', '\x2',
'i', 'j', '\a', '@', '\x2', '\x2', 'j', '\x6', '\x3', '\x2', '\x2', '\x2',
'k', 'l', '\a', '-', '\x2', '\x2', 'l', 'm', '\a', '-', '\x2', '\x2',
'm', '\b', '\x3', '\x2', '\x2', '\x2', 'n', 'o', '\a', '/', '\x2', '\x2',
'o', 'p', '\a', '/', '\x2', '\x2', 'p', '\n', '\x3', '\x2', '\x2', '\x2',
'q', 'r', '\a', 'p', '\x2', '\x2', 'r', 's', '\a', 'g', '\x2', '\x2',
's', 't', '\a', 'y', '\x2', '\x2', 't', '\f', '\x3', '\x2', '\x2', '\x2',
'u', 'v', '\a', 'x', '\x2', '\x2', 'v', 'w', '\a', '\x63', '\x2', '\x2',
'w', 'x', '\a', 't', '\x2', '\x2', 'x', 'y', '\a', 'k', '\x2', '\x2',
'y', 'z', '\a', '\x63', '\x2', '\x2', 'z', '{', '\a', '\x64', '\x2', '\x2',
'{', '|', '\a', 'n', '\x2', '\x2', '|', '}', '\a', 'g', '\x2', '\x2',
'}', '\xE', '\x3', '\x2', '\x2', '\x2', '~', '\x7F', '\a', 'n', '\x2',
'\x2', '\x7F', '\x80', '\a', 'g', '\x2', '\x2', '\x80', '\x81', '\a',
'v', '\x2', '\x2', '\x81', '\x10', '\x3', '\x2', '\x2', '\x2', '\x82',
'\x83', '\a', 'k', '\x2', '\x2', '\x83', '\x84', '\a', 'h', '\x2', '\x2',
'\x84', '\x12', '\x3', '\x2', '\x2', '\x2', '\x85', '\x86', '\a', 'v',
'\x2', '\x2', '\x86', '\x87', '\a', 'j', '\x2', '\x2', '\x87', '\x88',
'\a', 'g', '\x2', '\x2', '\x88', '\x89', '\a', 'p', '\x2', '\x2', '\x89',
'\x14', '\x3', '\x2', '\x2', '\x2', '\x8A', '\x8B', '\a', 'g', '\x2',
'\x2', '\x8B', '\x8C', '\a', 'n', '\x2', '\x2', '\x8C', '\x8D', '\a',
'u', '\x2', '\x2', '\x8D', '\x8E', '\a', 'g', '\x2', '\x2', '\x8E', '\x16',
'\x3', '\x2', '\x2', '\x2', '\x8F', '\x90', '\a', 'h', '\x2', '\x2', '\x90',
'\x91', '\a', 'q', '\x2', '\x2', '\x91', '\x92', '\a', 't', '\x2', '\x2',
'\x92', '\x18', '\x3', '\x2', '\x2', '\x2', '\x93', '\x94', '\a', 't',
'\x2', '\x2', '\x94', '\x95', '\a', 'g', '\x2', '\x2', '\x95', '\x96',
'\a', 'v', '\x2', '\x2', '\x96', '\x97', '\a', 'w', '\x2', '\x2', '\x97',
'\x98', '\a', 't', '\x2', '\x2', '\x98', '\x99', '\a', 'p', '\x2', '\x2',
'\x99', '\x1A', '\x3', '\x2', '\x2', '\x2', '\x9A', '\x9B', '\a', 'x',
'\x2', '\x2', '\x9B', '\x9C', '\a', 'q', '\x2', '\x2', '\x9C', '\x9D',
'\a', 'k', '\x2', '\x2', '\x9D', '\x9E', '\a', '\x66', '\x2', '\x2', '\x9E',
'\x1C', '\x3', '\x2', '\x2', '\x2', '\x9F', '\xA0', '\a', 'h', '\x2',
'\x2', '\xA0', '\xA1', '\a', 'n', '\x2', '\x2', '\xA1', '\xA2', '\a',
'q', '\x2', '\x2', '\xA2', '\xA3', '\a', '\x63', '\x2', '\x2', '\xA3',
'\xA4', '\a', 'v', '\x2', '\x2', '\xA4', '\x1E', '\x3', '\x2', '\x2',
'\x2', '\xA5', '\xA6', '\a', 'k', '\x2', '\x2', '\xA6', '\xA7', '\a',
'p', '\x2', '\x2', '\xA7', '\xA8', '\a', 'v', '\x2', '\x2', '\xA8', ' ',
'\x3', '\x2', '\x2', '\x2', '\xA9', '\xAA', '\a', 'u', '\x2', '\x2', '\xAA',
'\xAB', '\a', 'v', '\x2', '\x2', '\xAB', '\xAC', '\a', 't', '\x2', '\x2',
'\xAC', '\xAD', '\a', 'k', '\x2', '\x2', '\xAD', '\xAE', '\a', 'p', '\x2',
'\x2', '\xAE', '\xAF', '\a', 'i', '\x2', '\x2', '\xAF', '\"', '\x3', '\x2',
'\x2', '\x2', '\xB0', '\xB1', '\a', 'q', '\x2', '\x2', '\xB1', '\xB2',
'\a', '\x64', '\x2', '\x2', '\xB2', '\xB3', '\a', 'l', '\x2', '\x2', '\xB3',
'\xB4', '\a', 'g', '\x2', '\x2', '\xB4', '\xB5', '\a', '\x65', '\x2',
'\x2', '\xB5', '\xB6', '\a', 'v', '\x2', '\x2', '\xB6', '$', '\x3', '\x2',
'\x2', '\x2', '\xB7', '\xB8', '\a', 'g', '\x2', '\x2', '\xB8', '\xB9',
'\a', 'z', '\x2', '\x2', '\xB9', '\xBA', '\a', 'r', '\x2', '\x2', '\xBA',
'\xBB', '\a', 't', '\x2', '\x2', '\xBB', '\xBC', '\a', 'g', '\x2', '\x2',
'\xBC', '\xBD', '\a', 'u', '\x2', '\x2', '\xBD', '\xBE', '\a', 'u', '\x2',
'\x2', '\xBE', '\xBF', '\a', 'k', '\x2', '\x2', '\xBF', '\xC0', '\a',
'q', '\x2', '\x2', '\xC0', '\xC1', '\a', 'p', '\x2', '\x2', '\xC1', '&',
'\x3', '\x2', '\x2', '\x2', '\xC2', '\xC3', '\t', '\x2', '\x2', '\x2',
'\xC3', '(', '\x3', '\x2', '\x2', '\x2', '\xC4', '\xC5', '\a', '<', '\x2',
'\x2', '\xC5', '*', '\x3', '\x2', '\x2', '\x2', '\xC6', '\xC7', '\a',
'=', '\x2', '\x2', '\xC7', ',', '\x3', '\x2', '\x2', '\x2', '\xC8', '\xC9',
'\a', '.', '\x2', '\x2', '\xC9', '.', '\x3', '\x2', '\x2', '\x2', '\xCA',
'\xCB', '\a', '-', '\x2', '\x2', '\xCB', '\x30', '\x3', '\x2', '\x2',
'\x2', '\xCC', '\xCD', '\a', '/', '\x2', '\x2', '\xCD', '\x32', '\x3',
'\x2', '\x2', '\x2', '\xCE', '\xCF', '\a', ',', '\x2', '\x2', '\xCF',
'\x34', '\x3', '\x2', '\x2', '\x2', '\xD0', '\xD1', '\a', '?', '\x2',
'\x2', '\xD1', '\xD2', '\a', '?', '\x2', '\x2', '\xD2', '\x36', '\x3',
'\x2', '\x2', '\x2', '\xD3', '\xD4', '\a', '#', '\x2', '\x2', '\xD4',
'\xD5', '\a', '?', '\x2', '\x2', '\xD5', '\x38', '\x3', '\x2', '\x2',
'\x2', '\xD6', '\xD7', '\a', '@', '\x2', '\x2', '\xD7', '\xD8', '\a',
'?', '\x2', '\x2', '\xD8', ':', '\x3', '\x2', '\x2', '\x2', '\xD9', '\xDA',
'\a', '>', '\x2', '\x2', '\xDA', '<', '\x3', '\x2', '\x2', '\x2', '\xDB',
'\xDC', '\a', '>', '\x2', '\x2', '\xDC', '\xDD', '\a', '?', '\x2', '\x2',
'\xDD', '>', '\x3', '\x2', '\x2', '\x2', '\xDE', '\xDF', '\a', '?', '\x2',
'\x2', '\xDF', '\xE0', '\a', '@', '\x2', '\x2', '\xE0', '@', '\x3', '\x2',
'\x2', '\x2', '\xE1', '\xE2', '\a', '*', '\x2', '\x2', '\xE2', '\x42',
'\x3', '\x2', '\x2', '\x2', '\xE3', '\xE4', '\a', '+', '\x2', '\x2', '\xE4',
'\x44', '\x3', '\x2', '\x2', '\x2', '\xE5', '\xE6', '\a', ']', '\x2',
'\x2', '\xE6', '\x46', '\x3', '\x2', '\x2', '\x2', '\xE7', '\xE8', '\a',
'_', '\x2', '\x2', '\xE8', 'H', '\x3', '\x2', '\x2', '\x2', '\xE9', '\xEA',
'\a', '}', '\x2', '\x2', '\xEA', 'J', '\x3', '\x2', '\x2', '\x2', '\xEB',
'\xEC', '\a', '\x7F', '\x2', '\x2', '\xEC', 'L', '\x3', '\x2', '\x2',
'\x2', '\xED', '\xEE', '\a', '#', '\x2', '\x2', '\xEE', 'N', '\x3', '\x2',
'\x2', '\x2', '\xEF', '\xF0', '\a', '~', '\x2', '\x2', '\xF0', 'P', '\x3',
'\x2', '\x2', '\x2', '\xF1', '\xF2', '\a', '~', '\x2', '\x2', '\xF2',
'\xF3', '\a', '~', '\x2', '\x2', '\xF3', 'R', '\x3', '\x2', '\x2', '\x2',
'\xF4', '\xF5', '\a', '\x30', '\x2', '\x2', '\xF5', 'T', '\x3', '\x2',
'\x2', '\x2', '\xF6', '\xFC', '\a', '$', '\x2', '\x2', '\xF7', '\xF8',
'\a', '^', '\x2', '\x2', '\xF8', '\xFB', '\a', '$', '\x2', '\x2', '\xF9',
'\xFB', '\v', '\x2', '\x2', '\x2', '\xFA', '\xF7', '\x3', '\x2', '\x2',
'\x2', '\xFA', '\xF9', '\x3', '\x2', '\x2', '\x2', '\xFB', '\xFE', '\x3',
'\x2', '\x2', '\x2', '\xFC', '\xFD', '\x3', '\x2', '\x2', '\x2', '\xFC',
'\xFA', '\x3', '\x2', '\x2', '\x2', '\xFD', '\xFF', '\x3', '\x2', '\x2',
'\x2', '\xFE', '\xFC', '\x3', '\x2', '\x2', '\x2', '\xFF', '\x100', '\a',
'$', '\x2', '\x2', '\x100', 'V', '\x3', '\x2', '\x2', '\x2', '\x101',
'\x107', '\a', '\x62', '\x2', '\x2', '\x102', '\x103', '\a', '^', '\x2',
'\x2', '\x103', '\x106', '\a', '$', '\x2', '\x2', '\x104', '\x106', '\v',
'\x2', '\x2', '\x2', '\x105', '\x102', '\x3', '\x2', '\x2', '\x2', '\x105',
'\x104', '\x3', '\x2', '\x2', '\x2', '\x106', '\x109', '\x3', '\x2', '\x2',
'\x2', '\x107', '\x108', '\x3', '\x2', '\x2', '\x2', '\x107', '\x105',
'\x3', '\x2', '\x2', '\x2', '\x108', '\x10A', '\x3', '\x2', '\x2', '\x2',
'\x109', '\x107', '\x3', '\x2', '\x2', '\x2', '\x10A', '\x10B', '\a',
'\x62', '\x2', '\x2', '\x10B', 'X', '\x3', '\x2', '\x2', '\x2', '\x10C',
'\x10D', '\a', '\x31', '\x2', '\x2', '\x10D', '\x10E', '\a', '\x31', '\x2',
'\x2', '\x10E', '\x112', '\x3', '\x2', '\x2', '\x2', '\x10F', '\x111',
'\v', '\x2', '\x2', '\x2', '\x110', '\x10F', '\x3', '\x2', '\x2', '\x2',
'\x111', '\x114', '\x3', '\x2', '\x2', '\x2', '\x112', '\x113', '\x3',
'\x2', '\x2', '\x2', '\x112', '\x110', '\x3', '\x2', '\x2', '\x2', '\x113',
'\x116', '\x3', '\x2', '\x2', '\x2', '\x114', '\x112', '\x3', '\x2', '\x2',
'\x2', '\x115', '\x117', '\a', '\xF', '\x2', '\x2', '\x116', '\x115',
'\x3', '\x2', '\x2', '\x2', '\x116', '\x117', '\x3', '\x2', '\x2', '\x2',
'\x117', '\x118', '\x3', '\x2', '\x2', '\x2', '\x118', '\x119', '\a',
'\f', '\x2', '\x2', '\x119', '\x11A', '\x3', '\x2', '\x2', '\x2', '\x11A',
'\x11B', '\b', '-', '\x2', '\x2', '\x11B', 'Z', '\x3', '\x2', '\x2', '\x2',
'\x11C', '\x11E', '\x5', '\x63', '\x32', '\x2', '\x11D', '\x11C', '\x3',
'\x2', '\x2', '\x2', '\x11E', '\x11F', '\x3', '\x2', '\x2', '\x2', '\x11F',
'\x11D', '\x3', '\x2', '\x2', '\x2', '\x11F', '\x120', '\x3', '\x2', '\x2',
'\x2', '\x120', '\\', '\x3', '\x2', '\x2', '\x2', '\x121', '\x126', '\x5',
'\x61', '\x31', '\x2', '\x122', '\x125', '\x5', '\x61', '\x31', '\x2',
'\x123', '\x125', '\x5', '\x63', '\x32', '\x2', '\x124', '\x122', '\x3',
'\x2', '\x2', '\x2', '\x124', '\x123', '\x3', '\x2', '\x2', '\x2', '\x125',
'\x128', '\x3', '\x2', '\x2', '\x2', '\x126', '\x124', '\x3', '\x2', '\x2',
'\x2', '\x126', '\x127', '\x3', '\x2', '\x2', '\x2', '\x127', '^', '\x3',
'\x2', '\x2', '\x2', '\x128', '\x126', '\x3', '\x2', '\x2', '\x2', '\x129',
'\x12A', '\t', '\x3', '\x2', '\x2', '\x12A', '\x12B', '\x3', '\x2', '\x2',
'\x2', '\x12B', '\x12C', '\b', '\x30', '\x2', '\x2', '\x12C', '`', '\x3',
'\x2', '\x2', '\x2', '\x12D', '\x12E', '\t', '\x4', '\x2', '\x2', '\x12E',
'\x62', '\x3', '\x2', '\x2', '\x2', '\x12F', '\x130', '\t', '\x5', '\x2',
'\x2', '\x130', '\x64', '\x3', '\x2', '\x2', '\x2', '\x131', '\x132',
'\a', '^', '\x2', '\x2', '\x132', '\x133', '\a', '~', '\x2', '\x2', '\x133',
'\x66', '\x3', '\x2', '\x2', '\x2', '\f', '\x2', '\xFA', '\xFC', '\x105',
'\x107', '\x112', '\x116', '\x11F', '\x124', '\x126', '\x3', '\b', '\x2',
'\x2',
};
public static readonly ATN _ATN =

File diff suppressed because one or more lines are too long

View file

@ -3,89 +3,87 @@ GREATER=2
INCREMENT=3
DECREMENT=4
NEW=5
TRIGGER=6
VARIABLE=7
LET=8
IF=9
THEN=10
ELSE=11
FOR=12
RETURN=13
VOID=14
FLOAT=15
INT=16
STRING=17
OBJECT=18
EXPRESSION_MARKER=19
SYMBOL=20
COLON=21
SEMICOLON=22
COMMA=23
PLUS=24
MINUS=25
STAR=26
EQUALS=27
NOT_EQUALS=28
GREATER_EQUALS=29
LESS=30
LESS_EQUALS=31
LAMBDA=32
PARENTHESES_OPEN=33
PARENTHESES_CLOSE=34
BRACKET_OPEN=35
BRACKET_CLOSE=36
CURLYBRACE_OPEN=37
CURLYBRACE_CLOSE=38
EXCLAMATION=39
PIPE=40
PIPE_DBL=41
PERIOD=42
STRING_VAL=43
BACKTICKSTRING_VAL=44
LINE_COMMENT=45
INTEGER_VAL=46
ID=47
WS=48
ESC=49
VARIABLE=6
LET=7
IF=8
THEN=9
ELSE=10
FOR=11
RETURN=12
VOID=13
FLOAT=14
INT=15
STRING=16
OBJECT=17
EXPRESSION_MARKER=18
SYMBOL=19
COLON=20
SEMICOLON=21
COMMA=22
PLUS=23
MINUS=24
STAR=25
EQUALS=26
NOT_EQUALS=27
GREATER_EQUALS=28
LESS=29
LESS_EQUALS=30
LAMBDA=31
PARENTHESES_OPEN=32
PARENTHESES_CLOSE=33
BRACKET_OPEN=34
BRACKET_CLOSE=35
CURLYBRACE_OPEN=36
CURLYBRACE_CLOSE=37
EXCLAMATION=38
PIPE=39
PIPE_DBL=40
PERIOD=41
STRING_VAL=42
BACKTICKSTRING_VAL=43
LINE_COMMENT=44
INTEGER_VAL=45
ID=46
WS=47
ESC=48
'='=1
'>'=2
'++'=3
'--'=4
'new'=5
'trigger'=6
'variable'=7
'let'=8
'if'=9
'then'=10
'else'=11
'for'=12
'return'=13
'void'=14
'float'=15
'int'=16
'string'=17
'object'=18
'expression'=19
':'=21
';'=22
','=23
'+'=24
'-'=25
'*'=26
'=='=27
'!='=28
'>='=29
'<'=30
'<='=31
'=>'=32
'('=33
')'=34
'['=35
']'=36
'{'=37
'}'=38
'!'=39
'|'=40
'||'=41
'.'=42
'\\|'=49
'variable'=6
'let'=7
'if'=8
'then'=9
'else'=10
'for'=11
'return'=12
'void'=13
'float'=14
'int'=15
'string'=16
'object'=17
'expression'=18
':'=20
';'=21
','=22
'+'=23
'-'=24
'*'=25
'=='=26
'!='=27
'>='=28
'<'=29
'<='=30
'=>'=31
'('=32
')'=33
'['=34
']'=35
'{'=36
'}'=37
'!'=38
'|'=39
'||'=40
'.'=41
'\\|'=48

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

View file

@ -3,89 +3,87 @@ GREATER=2
INCREMENT=3
DECREMENT=4
NEW=5
TRIGGER=6
VARIABLE=7
LET=8
IF=9
THEN=10
ELSE=11
FOR=12
RETURN=13
VOID=14
FLOAT=15
INT=16
STRING=17
OBJECT=18
EXPRESSION_MARKER=19
SYMBOL=20
COLON=21
SEMICOLON=22
COMMA=23
PLUS=24
MINUS=25
STAR=26
EQUALS=27
NOT_EQUALS=28
GREATER_EQUALS=29
LESS=30
LESS_EQUALS=31
LAMBDA=32
PARENTHESES_OPEN=33
PARENTHESES_CLOSE=34
BRACKET_OPEN=35
BRACKET_CLOSE=36
CURLYBRACE_OPEN=37
CURLYBRACE_CLOSE=38
EXCLAMATION=39
PIPE=40
PIPE_DBL=41
PERIOD=42
STRING_VAL=43
BACKTICKSTRING_VAL=44
LINE_COMMENT=45
INTEGER_VAL=46
ID=47
WS=48
ESC=49
VARIABLE=6
LET=7
IF=8
THEN=9
ELSE=10
FOR=11
RETURN=12
VOID=13
FLOAT=14
INT=15
STRING=16
OBJECT=17
EXPRESSION_MARKER=18
SYMBOL=19
COLON=20
SEMICOLON=21
COMMA=22
PLUS=23
MINUS=24
STAR=25
EQUALS=26
NOT_EQUALS=27
GREATER_EQUALS=28
LESS=29
LESS_EQUALS=30
LAMBDA=31
PARENTHESES_OPEN=32
PARENTHESES_CLOSE=33
BRACKET_OPEN=34
BRACKET_CLOSE=35
CURLYBRACE_OPEN=36
CURLYBRACE_CLOSE=37
EXCLAMATION=38
PIPE=39
PIPE_DBL=40
PERIOD=41
STRING_VAL=42
BACKTICKSTRING_VAL=43
LINE_COMMENT=44
INTEGER_VAL=45
ID=46
WS=47
ESC=48
'='=1
'>'=2
'++'=3
'--'=4
'new'=5
'trigger'=6
'variable'=7
'let'=8
'if'=9
'then'=10
'else'=11
'for'=12
'return'=13
'void'=14
'float'=15
'int'=16
'string'=17
'object'=18
'expression'=19
':'=21
';'=22
','=23
'+'=24
'-'=25
'*'=26
'=='=27
'!='=28
'>='=29
'<'=30
'<='=31
'=>'=32
'('=33
')'=34
'['=35
']'=36
'{'=37
'}'=38
'!'=39
'|'=40
'||'=41
'.'=42
'\\|'=49
'variable'=6
'let'=7
'if'=8
'then'=9
'else'=10
'for'=11
'return'=12
'void'=13
'float'=14
'int'=15
'string'=16
'object'=17
'expression'=18
':'=20
';'=21
','=22
'+'=23
'-'=24
'*'=25
'=='=26
'!='=27
'>='=28
'<'=29
'<='=30
'=>'=31
'('=32
')'=33
'['=34
']'=35
'{'=36
'}'=37
'!'=38
'|'=39
'||'=40
'.'=41
'\\|'=48

View file

@ -1,683 +0,0 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// ANTLR Version: 4.9.1
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
// Generated from C:/Projects/Elsa/experimental/src/dsl/Elsa.Dsl/Dsl\ElsaParser.g4 by ANTLR 4.9.1
// Unreachable code detected
#pragma warning disable 0162
// The variable '...' is assigned but its value is never used
#pragma warning disable 0219
// Missing XML comment for publicly visible type or member '...'
#pragma warning disable 1591
// Ambiguous reference in cref attribute
#pragma warning disable 419
using Antlr4.Runtime.Misc;
using IErrorNode = Antlr4.Runtime.Tree.IErrorNode;
using ITerminalNode = Antlr4.Runtime.Tree.ITerminalNode;
using IToken = Antlr4.Runtime.IToken;
using ParserRuleContext = Antlr4.Runtime.ParserRuleContext;
/// <summary>
/// This class provides an empty implementation of <see cref="IElsaParserListener"/>,
/// which can be extended to create a listener which only needs to handle a subset
/// of the available methods.
/// </summary>
[System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.9.1")]
[System.Diagnostics.DebuggerNonUserCode]
[System.CLSCompliant(false)]
public partial class ElsaParserBaseListener : IElsaParserListener {
/// <summary>
/// Enter a parse tree produced by <see cref="ElsaParser.program"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void EnterProgram([NotNull] ElsaParser.ProgramContext context) { }
/// <summary>
/// Exit a parse tree produced by <see cref="ElsaParser.program"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void ExitProgram([NotNull] ElsaParser.ProgramContext context) { }
/// <summary>
/// Enter a parse tree produced by <see cref="ElsaParser.trigger"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void EnterTrigger([NotNull] ElsaParser.TriggerContext context) { }
/// <summary>
/// Exit a parse tree produced by <see cref="ElsaParser.trigger"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void ExitTrigger([NotNull] ElsaParser.TriggerContext context) { }
/// <summary>
/// Enter a parse tree produced by <see cref="ElsaParser.object"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void EnterObject([NotNull] ElsaParser.ObjectContext context) { }
/// <summary>
/// Exit a parse tree produced by <see cref="ElsaParser.object"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void ExitObject([NotNull] ElsaParser.ObjectContext context) { }
/// <summary>
/// Enter a parse tree produced by <see cref="ElsaParser.newObject"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void EnterNewObject([NotNull] ElsaParser.NewObjectContext context) { }
/// <summary>
/// Exit a parse tree produced by <see cref="ElsaParser.newObject"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void ExitNewObject([NotNull] ElsaParser.NewObjectContext context) { }
/// <summary>
/// Enter a parse tree produced by <see cref="ElsaParser.varDecl"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void EnterVarDecl([NotNull] ElsaParser.VarDeclContext context) { }
/// <summary>
/// Exit a parse tree produced by <see cref="ElsaParser.varDecl"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void ExitVarDecl([NotNull] ElsaParser.VarDeclContext context) { }
/// <summary>
/// Enter a parse tree produced by <see cref="ElsaParser.localVarDecl"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void EnterLocalVarDecl([NotNull] ElsaParser.LocalVarDeclContext context) { }
/// <summary>
/// Exit a parse tree produced by <see cref="ElsaParser.localVarDecl"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void ExitLocalVarDecl([NotNull] ElsaParser.LocalVarDeclContext context) { }
/// <summary>
/// Enter a parse tree produced by <see cref="ElsaParser.type"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void EnterType([NotNull] ElsaParser.TypeContext context) { }
/// <summary>
/// Exit a parse tree produced by <see cref="ElsaParser.type"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void ExitType([NotNull] ElsaParser.TypeContext context) { }
/// <summary>
/// Enter a parse tree produced by <see cref="ElsaParser.expressionMarker"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void EnterExpressionMarker([NotNull] ElsaParser.ExpressionMarkerContext context) { }
/// <summary>
/// Exit a parse tree produced by <see cref="ElsaParser.expressionMarker"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void ExitExpressionMarker([NotNull] ElsaParser.ExpressionMarkerContext context) { }
/// <summary>
/// Enter a parse tree produced by <see cref="ElsaParser.expressionContent"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void EnterExpressionContent([NotNull] ElsaParser.ExpressionContentContext context) { }
/// <summary>
/// Exit a parse tree produced by <see cref="ElsaParser.expressionContent"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void ExitExpressionContent([NotNull] ElsaParser.ExpressionContentContext context) { }
/// <summary>
/// Enter a parse tree produced by <see cref="ElsaParser.methodCall"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void EnterMethodCall([NotNull] ElsaParser.MethodCallContext context) { }
/// <summary>
/// Exit a parse tree produced by <see cref="ElsaParser.methodCall"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void ExitMethodCall([NotNull] ElsaParser.MethodCallContext context) { }
/// <summary>
/// Enter a parse tree produced by <see cref="ElsaParser.funcCall"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void EnterFuncCall([NotNull] ElsaParser.FuncCallContext context) { }
/// <summary>
/// Exit a parse tree produced by <see cref="ElsaParser.funcCall"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void ExitFuncCall([NotNull] ElsaParser.FuncCallContext context) { }
/// <summary>
/// Enter a parse tree produced by <see cref="ElsaParser.args"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void EnterArgs([NotNull] ElsaParser.ArgsContext context) { }
/// <summary>
/// Exit a parse tree produced by <see cref="ElsaParser.args"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void ExitArgs([NotNull] ElsaParser.ArgsContext context) { }
/// <summary>
/// Enter a parse tree produced by <see cref="ElsaParser.arg"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void EnterArg([NotNull] ElsaParser.ArgContext context) { }
/// <summary>
/// Exit a parse tree produced by <see cref="ElsaParser.arg"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void ExitArg([NotNull] ElsaParser.ArgContext context) { }
/// <summary>
/// Enter a parse tree produced by <see cref="ElsaParser.block"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void EnterBlock([NotNull] ElsaParser.BlockContext context) { }
/// <summary>
/// Exit a parse tree produced by <see cref="ElsaParser.block"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void ExitBlock([NotNull] ElsaParser.BlockContext context) { }
/// <summary>
/// Enter a parse tree produced by <see cref="ElsaParser.objectInitializer"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void EnterObjectInitializer([NotNull] ElsaParser.ObjectInitializerContext context) { }
/// <summary>
/// Exit a parse tree produced by <see cref="ElsaParser.objectInitializer"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void ExitObjectInitializer([NotNull] ElsaParser.ObjectInitializerContext context) { }
/// <summary>
/// Enter a parse tree produced by <see cref="ElsaParser.propertyList"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void EnterPropertyList([NotNull] ElsaParser.PropertyListContext context) { }
/// <summary>
/// Exit a parse tree produced by <see cref="ElsaParser.propertyList"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void ExitPropertyList([NotNull] ElsaParser.PropertyListContext context) { }
/// <summary>
/// Enter a parse tree produced by <see cref="ElsaParser.property"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void EnterProperty([NotNull] ElsaParser.PropertyContext context) { }
/// <summary>
/// Exit a parse tree produced by <see cref="ElsaParser.property"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void ExitProperty([NotNull] ElsaParser.PropertyContext context) { }
/// <summary>
/// Enter a parse tree produced by the <c>triggerStat</c>
/// labeled alternative in <see cref="ElsaParser.stat"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void EnterTriggerStat([NotNull] ElsaParser.TriggerStatContext context) { }
/// <summary>
/// Exit a parse tree produced by the <c>triggerStat</c>
/// labeled alternative in <see cref="ElsaParser.stat"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void ExitTriggerStat([NotNull] ElsaParser.TriggerStatContext context) { }
/// <summary>
/// Enter a parse tree produced by the <c>objectStat</c>
/// labeled alternative in <see cref="ElsaParser.stat"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void EnterObjectStat([NotNull] ElsaParser.ObjectStatContext context) { }
/// <summary>
/// Exit a parse tree produced by the <c>objectStat</c>
/// labeled alternative in <see cref="ElsaParser.stat"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void ExitObjectStat([NotNull] ElsaParser.ObjectStatContext context) { }
/// <summary>
/// Enter a parse tree produced by the <c>ifStat</c>
/// labeled alternative in <see cref="ElsaParser.stat"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void EnterIfStat([NotNull] ElsaParser.IfStatContext context) { }
/// <summary>
/// Exit a parse tree produced by the <c>ifStat</c>
/// labeled alternative in <see cref="ElsaParser.stat"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void ExitIfStat([NotNull] ElsaParser.IfStatContext context) { }
/// <summary>
/// Enter a parse tree produced by the <c>forStat</c>
/// labeled alternative in <see cref="ElsaParser.stat"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void EnterForStat([NotNull] ElsaParser.ForStatContext context) { }
/// <summary>
/// Exit a parse tree produced by the <c>forStat</c>
/// labeled alternative in <see cref="ElsaParser.stat"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void ExitForStat([NotNull] ElsaParser.ForStatContext context) { }
/// <summary>
/// Enter a parse tree produced by the <c>returnStat</c>
/// labeled alternative in <see cref="ElsaParser.stat"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void EnterReturnStat([NotNull] ElsaParser.ReturnStatContext context) { }
/// <summary>
/// Exit a parse tree produced by the <c>returnStat</c>
/// labeled alternative in <see cref="ElsaParser.stat"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void ExitReturnStat([NotNull] ElsaParser.ReturnStatContext context) { }
/// <summary>
/// Enter a parse tree produced by the <c>blockStat</c>
/// labeled alternative in <see cref="ElsaParser.stat"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void EnterBlockStat([NotNull] ElsaParser.BlockStatContext context) { }
/// <summary>
/// Exit a parse tree produced by the <c>blockStat</c>
/// labeled alternative in <see cref="ElsaParser.stat"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void ExitBlockStat([NotNull] ElsaParser.BlockStatContext context) { }
/// <summary>
/// Enter a parse tree produced by the <c>variableDeclarationStat</c>
/// labeled alternative in <see cref="ElsaParser.stat"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void EnterVariableDeclarationStat([NotNull] ElsaParser.VariableDeclarationStatContext context) { }
/// <summary>
/// Exit a parse tree produced by the <c>variableDeclarationStat</c>
/// labeled alternative in <see cref="ElsaParser.stat"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void ExitVariableDeclarationStat([NotNull] ElsaParser.VariableDeclarationStatContext context) { }
/// <summary>
/// Enter a parse tree produced by the <c>localVariableDeclarationStat</c>
/// labeled alternative in <see cref="ElsaParser.stat"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void EnterLocalVariableDeclarationStat([NotNull] ElsaParser.LocalVariableDeclarationStatContext context) { }
/// <summary>
/// Exit a parse tree produced by the <c>localVariableDeclarationStat</c>
/// labeled alternative in <see cref="ElsaParser.stat"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void ExitLocalVariableDeclarationStat([NotNull] ElsaParser.LocalVariableDeclarationStatContext context) { }
/// <summary>
/// Enter a parse tree produced by the <c>assignmentStat</c>
/// labeled alternative in <see cref="ElsaParser.stat"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void EnterAssignmentStat([NotNull] ElsaParser.AssignmentStatContext context) { }
/// <summary>
/// Exit a parse tree produced by the <c>assignmentStat</c>
/// labeled alternative in <see cref="ElsaParser.stat"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void ExitAssignmentStat([NotNull] ElsaParser.AssignmentStatContext context) { }
/// <summary>
/// Enter a parse tree produced by the <c>expressionStat</c>
/// labeled alternative in <see cref="ElsaParser.stat"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void EnterExpressionStat([NotNull] ElsaParser.ExpressionStatContext context) { }
/// <summary>
/// Exit a parse tree produced by the <c>expressionStat</c>
/// labeled alternative in <see cref="ElsaParser.stat"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void ExitExpressionStat([NotNull] ElsaParser.ExpressionStatContext context) { }
/// <summary>
/// Enter a parse tree produced by <see cref="ElsaParser.thenStat"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void EnterThenStat([NotNull] ElsaParser.ThenStatContext context) { }
/// <summary>
/// Exit a parse tree produced by <see cref="ElsaParser.thenStat"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void ExitThenStat([NotNull] ElsaParser.ThenStatContext context) { }
/// <summary>
/// Enter a parse tree produced by <see cref="ElsaParser.elseStat"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void EnterElseStat([NotNull] ElsaParser.ElseStatContext context) { }
/// <summary>
/// Exit a parse tree produced by <see cref="ElsaParser.elseStat"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void ExitElseStat([NotNull] ElsaParser.ElseStatContext context) { }
/// <summary>
/// Enter a parse tree produced by the <c>newObjectExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void EnterNewObjectExpr([NotNull] ElsaParser.NewObjectExprContext context) { }
/// <summary>
/// Exit a parse tree produced by the <c>newObjectExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void ExitNewObjectExpr([NotNull] ElsaParser.NewObjectExprContext context) { }
/// <summary>
/// Enter a parse tree produced by the <c>subtractExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void EnterSubtractExpr([NotNull] ElsaParser.SubtractExprContext context) { }
/// <summary>
/// Exit a parse tree produced by the <c>subtractExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void ExitSubtractExpr([NotNull] ElsaParser.SubtractExprContext context) { }
/// <summary>
/// Enter a parse tree produced by the <c>incrementExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void EnterIncrementExpr([NotNull] ElsaParser.IncrementExprContext context) { }
/// <summary>
/// Exit a parse tree produced by the <c>incrementExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void ExitIncrementExpr([NotNull] ElsaParser.IncrementExprContext context) { }
/// <summary>
/// Enter a parse tree produced by the <c>objectExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void EnterObjectExpr([NotNull] ElsaParser.ObjectExprContext context) { }
/// <summary>
/// Exit a parse tree produced by the <c>objectExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void ExitObjectExpr([NotNull] ElsaParser.ObjectExprContext context) { }
/// <summary>
/// Enter a parse tree produced by the <c>stringValueExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void EnterStringValueExpr([NotNull] ElsaParser.StringValueExprContext context) { }
/// <summary>
/// Exit a parse tree produced by the <c>stringValueExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void ExitStringValueExpr([NotNull] ElsaParser.StringValueExprContext context) { }
/// <summary>
/// Enter a parse tree produced by the <c>multiplyExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void EnterMultiplyExpr([NotNull] ElsaParser.MultiplyExprContext context) { }
/// <summary>
/// Exit a parse tree produced by the <c>multiplyExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void ExitMultiplyExpr([NotNull] ElsaParser.MultiplyExprContext context) { }
/// <summary>
/// Enter a parse tree produced by the <c>parenthesesExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void EnterParenthesesExpr([NotNull] ElsaParser.ParenthesesExprContext context) { }
/// <summary>
/// Exit a parse tree produced by the <c>parenthesesExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void ExitParenthesesExpr([NotNull] ElsaParser.ParenthesesExprContext context) { }
/// <summary>
/// Enter a parse tree produced by the <c>functionExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void EnterFunctionExpr([NotNull] ElsaParser.FunctionExprContext context) { }
/// <summary>
/// Exit a parse tree produced by the <c>functionExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void ExitFunctionExpr([NotNull] ElsaParser.FunctionExprContext context) { }
/// <summary>
/// Enter a parse tree produced by the <c>decrementExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void EnterDecrementExpr([NotNull] ElsaParser.DecrementExprContext context) { }
/// <summary>
/// Exit a parse tree produced by the <c>decrementExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void ExitDecrementExpr([NotNull] ElsaParser.DecrementExprContext context) { }
/// <summary>
/// Enter a parse tree produced by the <c>negateExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void EnterNegateExpr([NotNull] ElsaParser.NegateExprContext context) { }
/// <summary>
/// Exit a parse tree produced by the <c>negateExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void ExitNegateExpr([NotNull] ElsaParser.NegateExprContext context) { }
/// <summary>
/// Enter a parse tree produced by the <c>methodCallExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void EnterMethodCallExpr([NotNull] ElsaParser.MethodCallExprContext context) { }
/// <summary>
/// Exit a parse tree produced by the <c>methodCallExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void ExitMethodCallExpr([NotNull] ElsaParser.MethodCallExprContext context) { }
/// <summary>
/// Enter a parse tree produced by the <c>variableExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void EnterVariableExpr([NotNull] ElsaParser.VariableExprContext context) { }
/// <summary>
/// Exit a parse tree produced by the <c>variableExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void ExitVariableExpr([NotNull] ElsaParser.VariableExprContext context) { }
/// <summary>
/// Enter a parse tree produced by the <c>notExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void EnterNotExpr([NotNull] ElsaParser.NotExprContext context) { }
/// <summary>
/// Exit a parse tree produced by the <c>notExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void ExitNotExpr([NotNull] ElsaParser.NotExprContext context) { }
/// <summary>
/// Enter a parse tree produced by the <c>integerValueExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void EnterIntegerValueExpr([NotNull] ElsaParser.IntegerValueExprContext context) { }
/// <summary>
/// Exit a parse tree produced by the <c>integerValueExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void ExitIntegerValueExpr([NotNull] ElsaParser.IntegerValueExprContext context) { }
/// <summary>
/// Enter a parse tree produced by the <c>addExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void EnterAddExpr([NotNull] ElsaParser.AddExprContext context) { }
/// <summary>
/// Exit a parse tree produced by the <c>addExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void ExitAddExpr([NotNull] ElsaParser.AddExprContext context) { }
/// <summary>
/// Enter a parse tree produced by the <c>backTickStringValueExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void EnterBackTickStringValueExpr([NotNull] ElsaParser.BackTickStringValueExprContext context) { }
/// <summary>
/// Exit a parse tree produced by the <c>backTickStringValueExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void ExitBackTickStringValueExpr([NotNull] ElsaParser.BackTickStringValueExprContext context) { }
/// <summary>
/// Enter a parse tree produced by the <c>bracketsExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void EnterBracketsExpr([NotNull] ElsaParser.BracketsExprContext context) { }
/// <summary>
/// Exit a parse tree produced by the <c>bracketsExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void ExitBracketsExpr([NotNull] ElsaParser.BracketsExprContext context) { }
/// <summary>
/// Enter a parse tree produced by the <c>compareExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void EnterCompareExpr([NotNull] ElsaParser.CompareExprContext context) { }
/// <summary>
/// Exit a parse tree produced by the <c>compareExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void ExitCompareExpr([NotNull] ElsaParser.CompareExprContext context) { }
/// <summary>
/// Enter a parse tree produced by <see cref="ElsaParser.exprList"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void EnterExprList([NotNull] ElsaParser.ExprListContext context) { }
/// <summary>
/// Exit a parse tree produced by <see cref="ElsaParser.exprList"/>.
/// <para>The default implementation does nothing.</para>
/// </summary>
/// <param name="context">The parse tree.</param>
public virtual void ExitExprList([NotNull] ElsaParser.ExprListContext context) { }
/// <inheritdoc/>
/// <remarks>The default implementation does nothing.</remarks>
public virtual void EnterEveryRule([NotNull] ParserRuleContext context) { }
/// <inheritdoc/>
/// <remarks>The default implementation does nothing.</remarks>
public virtual void ExitEveryRule([NotNull] ParserRuleContext context) { }
/// <inheritdoc/>
/// <remarks>The default implementation does nothing.</remarks>
public virtual void VisitTerminal([NotNull] ITerminalNode node) { }
/// <inheritdoc/>
/// <remarks>The default implementation does nothing.</remarks>
public virtual void VisitErrorNode([NotNull] IErrorNode node) { }
}

View file

@ -1,14 +1,14 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// ANTLR Version: 4.9.1
// ANTLR Version: 4.9.2
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
// Generated from C:/Projects/Elsa/experimental/src/dsl/Elsa.Dsl/Dsl\ElsaParser.g4 by ANTLR 4.9.1
// Generated from C:/Projects/Elsa/v3/src/dsl/Elsa.Dsl/Dsl\ElsaParser.g4 by ANTLR 4.9.2
// Unreachable code detected
#pragma warning disable 0162
@ -30,7 +30,7 @@ using ParserRuleContext = Antlr4.Runtime.ParserRuleContext;
/// of the available methods.
/// </summary>
/// <typeparam name="Result">The return type of the visit operation.</typeparam>
[System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.9.1")]
[System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.9.2")]
[System.Diagnostics.DebuggerNonUserCode]
[System.CLSCompliant(false)]
public partial class ElsaParserBaseVisitor<Result> : AbstractParseTreeVisitor<Result>, IElsaParserVisitor<Result> {
@ -45,16 +45,6 @@ public partial class ElsaParserBaseVisitor<Result> : AbstractParseTreeVisitor<Re
/// <return>The visitor result.</return>
public virtual Result VisitProgram([NotNull] ElsaParser.ProgramContext context) { return VisitChildren(context); }
/// <summary>
/// Visit a parse tree produced by <see cref="ElsaParser.trigger"/>.
/// <para>
/// The default implementation returns the result of calling <see cref="AbstractParseTreeVisitor{Result}.VisitChildren(IRuleNode)"/>
/// on <paramref name="context"/>.
/// </para>
/// </summary>
/// <param name="context">The parse tree.</param>
/// <return>The visitor result.</return>
public virtual Result VisitTrigger([NotNull] ElsaParser.TriggerContext context) { return VisitChildren(context); }
/// <summary>
/// Visit a parse tree produced by <see cref="ElsaParser.object"/>.
/// <para>
/// The default implementation returns the result of calling <see cref="AbstractParseTreeVisitor{Result}.VisitChildren(IRuleNode)"/>
@ -205,17 +195,6 @@ public partial class ElsaParserBaseVisitor<Result> : AbstractParseTreeVisitor<Re
/// <return>The visitor result.</return>
public virtual Result VisitProperty([NotNull] ElsaParser.PropertyContext context) { return VisitChildren(context); }
/// <summary>
/// Visit a parse tree produced by the <c>triggerStat</c>
/// labeled alternative in <see cref="ElsaParser.stat"/>.
/// <para>
/// The default implementation returns the result of calling <see cref="AbstractParseTreeVisitor{Result}.VisitChildren(IRuleNode)"/>
/// on <paramref name="context"/>.
/// </para>
/// </summary>
/// <param name="context">The parse tree.</param>
/// <return>The visitor result.</return>
public virtual Result VisitTriggerStat([NotNull] ElsaParser.TriggerStatContext context) { return VisitChildren(context); }
/// <summary>
/// Visit a parse tree produced by the <c>objectStat</c>
/// labeled alternative in <see cref="ElsaParser.stat"/>.
/// <para>

View file

@ -1,569 +0,0 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// ANTLR Version: 4.9.1
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
// Generated from C:/Projects/Elsa/experimental/src/dsl/Elsa.Dsl/Dsl\ElsaParser.g4 by ANTLR 4.9.1
// Unreachable code detected
#pragma warning disable 0162
// The variable '...' is assigned but its value is never used
#pragma warning disable 0219
// Missing XML comment for publicly visible type or member '...'
#pragma warning disable 1591
// Ambiguous reference in cref attribute
#pragma warning disable 419
using Antlr4.Runtime.Misc;
using IParseTreeListener = Antlr4.Runtime.Tree.IParseTreeListener;
using IToken = Antlr4.Runtime.IToken;
/// <summary>
/// This interface defines a complete listener for a parse tree produced by
/// <see cref="ElsaParser"/>.
/// </summary>
[System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.9.1")]
[System.CLSCompliant(false)]
public interface IElsaParserListener : IParseTreeListener {
/// <summary>
/// Enter a parse tree produced by <see cref="ElsaParser.program"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void EnterProgram([NotNull] ElsaParser.ProgramContext context);
/// <summary>
/// Exit a parse tree produced by <see cref="ElsaParser.program"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void ExitProgram([NotNull] ElsaParser.ProgramContext context);
/// <summary>
/// Enter a parse tree produced by <see cref="ElsaParser.trigger"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void EnterTrigger([NotNull] ElsaParser.TriggerContext context);
/// <summary>
/// Exit a parse tree produced by <see cref="ElsaParser.trigger"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void ExitTrigger([NotNull] ElsaParser.TriggerContext context);
/// <summary>
/// Enter a parse tree produced by <see cref="ElsaParser.object"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void EnterObject([NotNull] ElsaParser.ObjectContext context);
/// <summary>
/// Exit a parse tree produced by <see cref="ElsaParser.object"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void ExitObject([NotNull] ElsaParser.ObjectContext context);
/// <summary>
/// Enter a parse tree produced by <see cref="ElsaParser.newObject"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void EnterNewObject([NotNull] ElsaParser.NewObjectContext context);
/// <summary>
/// Exit a parse tree produced by <see cref="ElsaParser.newObject"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void ExitNewObject([NotNull] ElsaParser.NewObjectContext context);
/// <summary>
/// Enter a parse tree produced by <see cref="ElsaParser.varDecl"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void EnterVarDecl([NotNull] ElsaParser.VarDeclContext context);
/// <summary>
/// Exit a parse tree produced by <see cref="ElsaParser.varDecl"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void ExitVarDecl([NotNull] ElsaParser.VarDeclContext context);
/// <summary>
/// Enter a parse tree produced by <see cref="ElsaParser.localVarDecl"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void EnterLocalVarDecl([NotNull] ElsaParser.LocalVarDeclContext context);
/// <summary>
/// Exit a parse tree produced by <see cref="ElsaParser.localVarDecl"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void ExitLocalVarDecl([NotNull] ElsaParser.LocalVarDeclContext context);
/// <summary>
/// Enter a parse tree produced by <see cref="ElsaParser.type"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void EnterType([NotNull] ElsaParser.TypeContext context);
/// <summary>
/// Exit a parse tree produced by <see cref="ElsaParser.type"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void ExitType([NotNull] ElsaParser.TypeContext context);
/// <summary>
/// Enter a parse tree produced by <see cref="ElsaParser.expressionMarker"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void EnterExpressionMarker([NotNull] ElsaParser.ExpressionMarkerContext context);
/// <summary>
/// Exit a parse tree produced by <see cref="ElsaParser.expressionMarker"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void ExitExpressionMarker([NotNull] ElsaParser.ExpressionMarkerContext context);
/// <summary>
/// Enter a parse tree produced by <see cref="ElsaParser.expressionContent"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void EnterExpressionContent([NotNull] ElsaParser.ExpressionContentContext context);
/// <summary>
/// Exit a parse tree produced by <see cref="ElsaParser.expressionContent"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void ExitExpressionContent([NotNull] ElsaParser.ExpressionContentContext context);
/// <summary>
/// Enter a parse tree produced by <see cref="ElsaParser.methodCall"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void EnterMethodCall([NotNull] ElsaParser.MethodCallContext context);
/// <summary>
/// Exit a parse tree produced by <see cref="ElsaParser.methodCall"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void ExitMethodCall([NotNull] ElsaParser.MethodCallContext context);
/// <summary>
/// Enter a parse tree produced by <see cref="ElsaParser.funcCall"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void EnterFuncCall([NotNull] ElsaParser.FuncCallContext context);
/// <summary>
/// Exit a parse tree produced by <see cref="ElsaParser.funcCall"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void ExitFuncCall([NotNull] ElsaParser.FuncCallContext context);
/// <summary>
/// Enter a parse tree produced by <see cref="ElsaParser.args"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void EnterArgs([NotNull] ElsaParser.ArgsContext context);
/// <summary>
/// Exit a parse tree produced by <see cref="ElsaParser.args"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void ExitArgs([NotNull] ElsaParser.ArgsContext context);
/// <summary>
/// Enter a parse tree produced by <see cref="ElsaParser.arg"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void EnterArg([NotNull] ElsaParser.ArgContext context);
/// <summary>
/// Exit a parse tree produced by <see cref="ElsaParser.arg"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void ExitArg([NotNull] ElsaParser.ArgContext context);
/// <summary>
/// Enter a parse tree produced by <see cref="ElsaParser.block"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void EnterBlock([NotNull] ElsaParser.BlockContext context);
/// <summary>
/// Exit a parse tree produced by <see cref="ElsaParser.block"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void ExitBlock([NotNull] ElsaParser.BlockContext context);
/// <summary>
/// Enter a parse tree produced by <see cref="ElsaParser.objectInitializer"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void EnterObjectInitializer([NotNull] ElsaParser.ObjectInitializerContext context);
/// <summary>
/// Exit a parse tree produced by <see cref="ElsaParser.objectInitializer"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void ExitObjectInitializer([NotNull] ElsaParser.ObjectInitializerContext context);
/// <summary>
/// Enter a parse tree produced by <see cref="ElsaParser.propertyList"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void EnterPropertyList([NotNull] ElsaParser.PropertyListContext context);
/// <summary>
/// Exit a parse tree produced by <see cref="ElsaParser.propertyList"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void ExitPropertyList([NotNull] ElsaParser.PropertyListContext context);
/// <summary>
/// Enter a parse tree produced by <see cref="ElsaParser.property"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void EnterProperty([NotNull] ElsaParser.PropertyContext context);
/// <summary>
/// Exit a parse tree produced by <see cref="ElsaParser.property"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void ExitProperty([NotNull] ElsaParser.PropertyContext context);
/// <summary>
/// Enter a parse tree produced by the <c>triggerStat</c>
/// labeled alternative in <see cref="ElsaParser.stat"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void EnterTriggerStat([NotNull] ElsaParser.TriggerStatContext context);
/// <summary>
/// Exit a parse tree produced by the <c>triggerStat</c>
/// labeled alternative in <see cref="ElsaParser.stat"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void ExitTriggerStat([NotNull] ElsaParser.TriggerStatContext context);
/// <summary>
/// Enter a parse tree produced by the <c>objectStat</c>
/// labeled alternative in <see cref="ElsaParser.stat"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void EnterObjectStat([NotNull] ElsaParser.ObjectStatContext context);
/// <summary>
/// Exit a parse tree produced by the <c>objectStat</c>
/// labeled alternative in <see cref="ElsaParser.stat"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void ExitObjectStat([NotNull] ElsaParser.ObjectStatContext context);
/// <summary>
/// Enter a parse tree produced by the <c>ifStat</c>
/// labeled alternative in <see cref="ElsaParser.stat"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void EnterIfStat([NotNull] ElsaParser.IfStatContext context);
/// <summary>
/// Exit a parse tree produced by the <c>ifStat</c>
/// labeled alternative in <see cref="ElsaParser.stat"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void ExitIfStat([NotNull] ElsaParser.IfStatContext context);
/// <summary>
/// Enter a parse tree produced by the <c>forStat</c>
/// labeled alternative in <see cref="ElsaParser.stat"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void EnterForStat([NotNull] ElsaParser.ForStatContext context);
/// <summary>
/// Exit a parse tree produced by the <c>forStat</c>
/// labeled alternative in <see cref="ElsaParser.stat"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void ExitForStat([NotNull] ElsaParser.ForStatContext context);
/// <summary>
/// Enter a parse tree produced by the <c>returnStat</c>
/// labeled alternative in <see cref="ElsaParser.stat"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void EnterReturnStat([NotNull] ElsaParser.ReturnStatContext context);
/// <summary>
/// Exit a parse tree produced by the <c>returnStat</c>
/// labeled alternative in <see cref="ElsaParser.stat"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void ExitReturnStat([NotNull] ElsaParser.ReturnStatContext context);
/// <summary>
/// Enter a parse tree produced by the <c>blockStat</c>
/// labeled alternative in <see cref="ElsaParser.stat"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void EnterBlockStat([NotNull] ElsaParser.BlockStatContext context);
/// <summary>
/// Exit a parse tree produced by the <c>blockStat</c>
/// labeled alternative in <see cref="ElsaParser.stat"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void ExitBlockStat([NotNull] ElsaParser.BlockStatContext context);
/// <summary>
/// Enter a parse tree produced by the <c>variableDeclarationStat</c>
/// labeled alternative in <see cref="ElsaParser.stat"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void EnterVariableDeclarationStat([NotNull] ElsaParser.VariableDeclarationStatContext context);
/// <summary>
/// Exit a parse tree produced by the <c>variableDeclarationStat</c>
/// labeled alternative in <see cref="ElsaParser.stat"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void ExitVariableDeclarationStat([NotNull] ElsaParser.VariableDeclarationStatContext context);
/// <summary>
/// Enter a parse tree produced by the <c>localVariableDeclarationStat</c>
/// labeled alternative in <see cref="ElsaParser.stat"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void EnterLocalVariableDeclarationStat([NotNull] ElsaParser.LocalVariableDeclarationStatContext context);
/// <summary>
/// Exit a parse tree produced by the <c>localVariableDeclarationStat</c>
/// labeled alternative in <see cref="ElsaParser.stat"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void ExitLocalVariableDeclarationStat([NotNull] ElsaParser.LocalVariableDeclarationStatContext context);
/// <summary>
/// Enter a parse tree produced by the <c>assignmentStat</c>
/// labeled alternative in <see cref="ElsaParser.stat"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void EnterAssignmentStat([NotNull] ElsaParser.AssignmentStatContext context);
/// <summary>
/// Exit a parse tree produced by the <c>assignmentStat</c>
/// labeled alternative in <see cref="ElsaParser.stat"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void ExitAssignmentStat([NotNull] ElsaParser.AssignmentStatContext context);
/// <summary>
/// Enter a parse tree produced by the <c>expressionStat</c>
/// labeled alternative in <see cref="ElsaParser.stat"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void EnterExpressionStat([NotNull] ElsaParser.ExpressionStatContext context);
/// <summary>
/// Exit a parse tree produced by the <c>expressionStat</c>
/// labeled alternative in <see cref="ElsaParser.stat"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void ExitExpressionStat([NotNull] ElsaParser.ExpressionStatContext context);
/// <summary>
/// Enter a parse tree produced by <see cref="ElsaParser.thenStat"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void EnterThenStat([NotNull] ElsaParser.ThenStatContext context);
/// <summary>
/// Exit a parse tree produced by <see cref="ElsaParser.thenStat"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void ExitThenStat([NotNull] ElsaParser.ThenStatContext context);
/// <summary>
/// Enter a parse tree produced by <see cref="ElsaParser.elseStat"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void EnterElseStat([NotNull] ElsaParser.ElseStatContext context);
/// <summary>
/// Exit a parse tree produced by <see cref="ElsaParser.elseStat"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void ExitElseStat([NotNull] ElsaParser.ElseStatContext context);
/// <summary>
/// Enter a parse tree produced by the <c>newObjectExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void EnterNewObjectExpr([NotNull] ElsaParser.NewObjectExprContext context);
/// <summary>
/// Exit a parse tree produced by the <c>newObjectExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void ExitNewObjectExpr([NotNull] ElsaParser.NewObjectExprContext context);
/// <summary>
/// Enter a parse tree produced by the <c>subtractExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void EnterSubtractExpr([NotNull] ElsaParser.SubtractExprContext context);
/// <summary>
/// Exit a parse tree produced by the <c>subtractExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void ExitSubtractExpr([NotNull] ElsaParser.SubtractExprContext context);
/// <summary>
/// Enter a parse tree produced by the <c>incrementExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void EnterIncrementExpr([NotNull] ElsaParser.IncrementExprContext context);
/// <summary>
/// Exit a parse tree produced by the <c>incrementExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void ExitIncrementExpr([NotNull] ElsaParser.IncrementExprContext context);
/// <summary>
/// Enter a parse tree produced by the <c>objectExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void EnterObjectExpr([NotNull] ElsaParser.ObjectExprContext context);
/// <summary>
/// Exit a parse tree produced by the <c>objectExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void ExitObjectExpr([NotNull] ElsaParser.ObjectExprContext context);
/// <summary>
/// Enter a parse tree produced by the <c>stringValueExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void EnterStringValueExpr([NotNull] ElsaParser.StringValueExprContext context);
/// <summary>
/// Exit a parse tree produced by the <c>stringValueExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void ExitStringValueExpr([NotNull] ElsaParser.StringValueExprContext context);
/// <summary>
/// Enter a parse tree produced by the <c>multiplyExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void EnterMultiplyExpr([NotNull] ElsaParser.MultiplyExprContext context);
/// <summary>
/// Exit a parse tree produced by the <c>multiplyExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void ExitMultiplyExpr([NotNull] ElsaParser.MultiplyExprContext context);
/// <summary>
/// Enter a parse tree produced by the <c>parenthesesExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void EnterParenthesesExpr([NotNull] ElsaParser.ParenthesesExprContext context);
/// <summary>
/// Exit a parse tree produced by the <c>parenthesesExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void ExitParenthesesExpr([NotNull] ElsaParser.ParenthesesExprContext context);
/// <summary>
/// Enter a parse tree produced by the <c>functionExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void EnterFunctionExpr([NotNull] ElsaParser.FunctionExprContext context);
/// <summary>
/// Exit a parse tree produced by the <c>functionExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void ExitFunctionExpr([NotNull] ElsaParser.FunctionExprContext context);
/// <summary>
/// Enter a parse tree produced by the <c>decrementExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void EnterDecrementExpr([NotNull] ElsaParser.DecrementExprContext context);
/// <summary>
/// Exit a parse tree produced by the <c>decrementExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void ExitDecrementExpr([NotNull] ElsaParser.DecrementExprContext context);
/// <summary>
/// Enter a parse tree produced by the <c>negateExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void EnterNegateExpr([NotNull] ElsaParser.NegateExprContext context);
/// <summary>
/// Exit a parse tree produced by the <c>negateExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void ExitNegateExpr([NotNull] ElsaParser.NegateExprContext context);
/// <summary>
/// Enter a parse tree produced by the <c>methodCallExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void EnterMethodCallExpr([NotNull] ElsaParser.MethodCallExprContext context);
/// <summary>
/// Exit a parse tree produced by the <c>methodCallExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void ExitMethodCallExpr([NotNull] ElsaParser.MethodCallExprContext context);
/// <summary>
/// Enter a parse tree produced by the <c>variableExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void EnterVariableExpr([NotNull] ElsaParser.VariableExprContext context);
/// <summary>
/// Exit a parse tree produced by the <c>variableExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void ExitVariableExpr([NotNull] ElsaParser.VariableExprContext context);
/// <summary>
/// Enter a parse tree produced by the <c>notExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void EnterNotExpr([NotNull] ElsaParser.NotExprContext context);
/// <summary>
/// Exit a parse tree produced by the <c>notExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void ExitNotExpr([NotNull] ElsaParser.NotExprContext context);
/// <summary>
/// Enter a parse tree produced by the <c>integerValueExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void EnterIntegerValueExpr([NotNull] ElsaParser.IntegerValueExprContext context);
/// <summary>
/// Exit a parse tree produced by the <c>integerValueExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void ExitIntegerValueExpr([NotNull] ElsaParser.IntegerValueExprContext context);
/// <summary>
/// Enter a parse tree produced by the <c>addExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void EnterAddExpr([NotNull] ElsaParser.AddExprContext context);
/// <summary>
/// Exit a parse tree produced by the <c>addExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void ExitAddExpr([NotNull] ElsaParser.AddExprContext context);
/// <summary>
/// Enter a parse tree produced by the <c>backTickStringValueExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void EnterBackTickStringValueExpr([NotNull] ElsaParser.BackTickStringValueExprContext context);
/// <summary>
/// Exit a parse tree produced by the <c>backTickStringValueExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void ExitBackTickStringValueExpr([NotNull] ElsaParser.BackTickStringValueExprContext context);
/// <summary>
/// Enter a parse tree produced by the <c>bracketsExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void EnterBracketsExpr([NotNull] ElsaParser.BracketsExprContext context);
/// <summary>
/// Exit a parse tree produced by the <c>bracketsExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void ExitBracketsExpr([NotNull] ElsaParser.BracketsExprContext context);
/// <summary>
/// Enter a parse tree produced by the <c>compareExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void EnterCompareExpr([NotNull] ElsaParser.CompareExprContext context);
/// <summary>
/// Exit a parse tree produced by the <c>compareExpr</c>
/// labeled alternative in <see cref="ElsaParser.expr"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void ExitCompareExpr([NotNull] ElsaParser.CompareExprContext context);
/// <summary>
/// Enter a parse tree produced by <see cref="ElsaParser.exprList"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void EnterExprList([NotNull] ElsaParser.ExprListContext context);
/// <summary>
/// Exit a parse tree produced by <see cref="ElsaParser.exprList"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
void ExitExprList([NotNull] ElsaParser.ExprListContext context);
}

View file

@ -1,14 +1,14 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// ANTLR Version: 4.9.1
// ANTLR Version: 4.9.2
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
// Generated from C:/Projects/Elsa/experimental/src/dsl/Elsa.Dsl/Dsl\ElsaParser.g4 by ANTLR 4.9.1
// Generated from C:/Projects/Elsa/v3/src/dsl/Elsa.Dsl/Dsl\ElsaParser.g4 by ANTLR 4.9.2
// Unreachable code detected
#pragma warning disable 0162
@ -28,7 +28,7 @@ using IToken = Antlr4.Runtime.IToken;
/// by <see cref="ElsaParser"/>.
/// </summary>
/// <typeparam name="Result">The return type of the visit operation.</typeparam>
[System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.9.1")]
[System.CodeDom.Compiler.GeneratedCode("ANTLR", "4.9.2")]
[System.CLSCompliant(false)]
public interface IElsaParserVisitor<Result> : IParseTreeVisitor<Result> {
/// <summary>
@ -38,12 +38,6 @@ public interface IElsaParserVisitor<Result> : IParseTreeVisitor<Result> {
/// <return>The visitor result.</return>
Result VisitProgram([NotNull] ElsaParser.ProgramContext context);
/// <summary>
/// Visit a parse tree produced by <see cref="ElsaParser.trigger"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
/// <return>The visitor result.</return>
Result VisitTrigger([NotNull] ElsaParser.TriggerContext context);
/// <summary>
/// Visit a parse tree produced by <see cref="ElsaParser.object"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
@ -134,13 +128,6 @@ public interface IElsaParserVisitor<Result> : IParseTreeVisitor<Result> {
/// <return>The visitor result.</return>
Result VisitProperty([NotNull] ElsaParser.PropertyContext context);
/// <summary>
/// Visit a parse tree produced by the <c>triggerStat</c>
/// labeled alternative in <see cref="ElsaParser.stat"/>.
/// </summary>
/// <param name="context">The parse tree.</param>
/// <return>The visitor result.</return>
Result VisitTriggerStat([NotNull] ElsaParser.TriggerStatContext context);
/// <summary>
/// Visit a parse tree produced by the <c>objectStat</c>
/// labeled alternative in <see cref="ElsaParser.stat"/>.
/// </summary>

View file

@ -5,11 +5,7 @@ options { tokenVocab = ElsaLexer; }
program
: (stat | LINE_COMMENT)*
;
trigger
: TRIGGER object
;
object
: ID objectInitializer?
;
@ -78,8 +74,7 @@ property
;
stat
: trigger ';' #triggerStat
| object ';' #objectStat
: object ';' #objectStat
| 'if' expr 'then' thenStat ('else' elseStat)? #ifStat
| 'for' '(' ID '=' expr ';' expr ';' expr ')' stat #forStat
| 'return' expr? ';' #returnStat

File diff suppressed because one or more lines are too long

View file

@ -1,235 +0,0 @@
// Generated from C:/Projects/Elsa/experimental/src/dsl/Elsa.Dsl/Dsl\ElsaLexer.g4 by ANTLR 4.9.1
import org.antlr.v4.runtime.Lexer;
import org.antlr.v4.runtime.CharStream;
import org.antlr.v4.runtime.Token;
import org.antlr.v4.runtime.TokenStream;
import org.antlr.v4.runtime.*;
import org.antlr.v4.runtime.atn.*;
import org.antlr.v4.runtime.dfa.DFA;
import org.antlr.v4.runtime.misc.*;
@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"})
public class ElsaLexer extends Lexer {
static { RuntimeMetaData.checkVersion("4.9.1", RuntimeMetaData.VERSION); }
protected static final DFA[] _decisionToDFA;
protected static final PredictionContextCache _sharedContextCache =
new PredictionContextCache();
public static final int
EQ=1, GREATER=2, INCREMENT=3, DECREMENT=4, NEW=5, TRIGGER=6, VARIABLE=7,
LET=8, IF=9, THEN=10, ELSE=11, FOR=12, RETURN=13, VOID=14, FLOAT=15, INT=16,
STRING=17, OBJECT=18, SYMBOL=19, COLON=20, SEMICOLON=21, COMMA=22, PLUS=23,
MINUS=24, STAR=25, EQUALS=26, NOT_EQUALS=27, GREATER_EQUALS=28, LESS=29,
LESS_EQUALS=30, LAMBDA=31, PARENTHESES_OPEN=32, PARENTHESES_CLOSE=33,
BRACKET_OPEN=34, BRACKET_CLOSE=35, CURLYBRACE_OPEN=36, CURLYBRACE_CLOSE=37,
EXCLAMATION=38, PIPE=39, PIPE_DBL=40, PERIOD=41, STRING_VAL=42, STRINGTICK_VAL=43,
LINE_COMMENT=44, INTEGER_VAL=45, ID=46, WS=47, ESC=48;
public static String[] channelNames = {
"DEFAULT_TOKEN_CHANNEL", "HIDDEN"
};
public static String[] modeNames = {
"DEFAULT_MODE"
};
private static String[] makeRuleNames() {
return new String[] {
"EQ", "GREATER", "INCREMENT", "DECREMENT", "NEW", "TRIGGER", "VARIABLE",
"LET", "IF", "THEN", "ELSE", "FOR", "RETURN", "VOID", "FLOAT", "INT",
"STRING", "OBJECT", "SYMBOL", "COLON", "SEMICOLON", "COMMA", "PLUS",
"MINUS", "STAR", "EQUALS", "NOT_EQUALS", "GREATER_EQUALS", "LESS", "LESS_EQUALS",
"LAMBDA", "PARENTHESES_OPEN", "PARENTHESES_CLOSE", "BRACKET_OPEN", "BRACKET_CLOSE",
"CURLYBRACE_OPEN", "CURLYBRACE_CLOSE", "EXCLAMATION", "PIPE", "PIPE_DBL",
"PERIOD", "STRING_VAL", "STRINGTICK_VAL", "LINE_COMMENT", "INTEGER_VAL",
"ID", "WS", "LETTER", "DIGIT", "ESC"
};
}
public static final String[] ruleNames = makeRuleNames();
private static String[] makeLiteralNames() {
return new String[] {
null, "'='", "'>'", "'++'", "'--'", "'new'", "'trigger'", "'variable'",
"'let'", "'if'", "'then'", "'else'", "'for'", "'return'", "'void'", "'float'",
"'int'", "'string'", "'object'", null, "':'", "';'", "','", "'+'", "'-'",
"'*'", "'=='", "'!='", "'>='", "'<'", "'<='", "'=>'", "'('", "')'", "'['",
"']'", "'{'", "'}'", "'!'", "'|'", "'||'", "'.'", null, null, null, null,
null, null, "'\\|'"
};
}
private static final String[] _LITERAL_NAMES = makeLiteralNames();
private static String[] makeSymbolicNames() {
return new String[] {
null, "EQ", "GREATER", "INCREMENT", "DECREMENT", "NEW", "TRIGGER", "VARIABLE",
"LET", "IF", "THEN", "ELSE", "FOR", "RETURN", "VOID", "FLOAT", "INT",
"STRING", "OBJECT", "SYMBOL", "COLON", "SEMICOLON", "COMMA", "PLUS",
"MINUS", "STAR", "EQUALS", "NOT_EQUALS", "GREATER_EQUALS", "LESS", "LESS_EQUALS",
"LAMBDA", "PARENTHESES_OPEN", "PARENTHESES_CLOSE", "BRACKET_OPEN", "BRACKET_CLOSE",
"CURLYBRACE_OPEN", "CURLYBRACE_CLOSE", "EXCLAMATION", "PIPE", "PIPE_DBL",
"PERIOD", "STRING_VAL", "STRINGTICK_VAL", "LINE_COMMENT", "INTEGER_VAL",
"ID", "WS", "ESC"
};
}
private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames();
public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES);
/**
* @deprecated Use {@link #VOCABULARY} instead.
*/
@Deprecated
public static final String[] tokenNames;
static {
tokenNames = new String[_SYMBOLIC_NAMES.length];
for (int i = 0; i < tokenNames.length; i++) {
tokenNames[i] = VOCABULARY.getLiteralName(i);
if (tokenNames[i] == null) {
tokenNames[i] = VOCABULARY.getSymbolicName(i);
}
if (tokenNames[i] == null) {
tokenNames[i] = "<INVALID>";
}
}
}
@Override
@Deprecated
public String[] getTokenNames() {
return tokenNames;
}
@Override
public Vocabulary getVocabulary() {
return VOCABULARY;
}
public ElsaLexer(CharStream input) {
super(input);
_interp = new LexerATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache);
}
@Override
public String getGrammarFileName() { return "ElsaLexer.g4"; }
@Override
public String[] getRuleNames() { return ruleNames; }
@Override
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\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\2\62\u0131\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\4\32\t\32\4\33\t\33\4\34\t\34\4\35\t\35\4\36\t\36\4\37\t\37\4 \t"+
" \4!\t!\4\"\t\"\4#\t#\4$\t$\4%\t%\4&\t&\4\'\t\'\4(\t(\4)\t)\4*\t*\4+\t"+
"+\4,\t,\4-\t-\4.\t.\4/\t/\4\60\t\60\4\61\t\61\4\62\t\62\4\63\t\63\3\2"+
"\3\2\3\3\3\3\3\4\3\4\3\4\3\5\3\5\3\5\3\6\3\6\3\6\3\6\3\7\3\7\3\7\3\7\3"+
"\7\3\7\3\7\3\7\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\b\3\t\3\t\3\t\3\t\3\n"+
"\3\n\3\n\3\13\3\13\3\13\3\13\3\13\3\f\3\f\3\f\3\f\3\f\3\r\3\r\3\r\3\r"+
"\3\16\3\16\3\16\3\16\3\16\3\16\3\16\3\17\3\17\3\17\3\17\3\17\3\20\3\20"+
"\3\20\3\20\3\20\3\20\3\21\3\21\3\21\3\21\3\22\3\22\3\22\3\22\3\22\3\22"+
"\3\22\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\24\3\24\3\25\3\25\3\26\3\26"+
"\3\27\3\27\3\30\3\30\3\31\3\31\3\32\3\32\3\33\3\33\3\33\3\34\3\34\3\34"+
"\3\35\3\35\3\35\3\36\3\36\3\37\3\37\3\37\3 \3 \3 \3!\3!\3\"\3\"\3#\3#"+
"\3$\3$\3%\3%\3&\3&\3\'\3\'\3(\3(\3)\3)\3)\3*\3*\3+\3+\3+\3+\7+\u00f8\n"+
"+\f+\16+\u00fb\13+\3+\3+\3,\3,\3,\3,\7,\u0103\n,\f,\16,\u0106\13,\3,\3"+
",\3-\3-\3-\3-\7-\u010e\n-\f-\16-\u0111\13-\3-\5-\u0114\n-\3-\3-\3-\3-"+
"\3.\6.\u011b\n.\r.\16.\u011c\3/\3/\3/\7/\u0122\n/\f/\16/\u0125\13/\3\60"+
"\3\60\3\60\3\60\3\61\3\61\3\62\3\62\3\63\3\63\3\63\5\u00f9\u0104\u010f"+
"\2\64\3\3\5\4\7\5\t\6\13\7\r\b\17\t\21\n\23\13\25\f\27\r\31\16\33\17\35"+
"\20\37\21!\22#\23%\24\'\25)\26+\27-\30/\31\61\32\63\33\65\34\67\359\36"+
";\37= ?!A\"C#E$G%I&K\'M(O)Q*S+U,W-Y.[/]\60_\61a\2c\2e\62\3\2\6\6\2&&-"+
"-?@bb\5\2\13\f\17\17\"\"\5\2C\\aac|\3\2\62;\2\u0137\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\2e\3\2\2\2\3g\3\2\2\2\5"+
"i\3\2\2\2\7k\3\2\2\2\tn\3\2\2\2\13q\3\2\2\2\ru\3\2\2\2\17}\3\2\2\2\21"+
"\u0086\3\2\2\2\23\u008a\3\2\2\2\25\u008d\3\2\2\2\27\u0092\3\2\2\2\31\u0097"+
"\3\2\2\2\33\u009b\3\2\2\2\35\u00a2\3\2\2\2\37\u00a7\3\2\2\2!\u00ad\3\2"+
"\2\2#\u00b1\3\2\2\2%\u00b8\3\2\2\2\'\u00bf\3\2\2\2)\u00c1\3\2\2\2+\u00c3"+
"\3\2\2\2-\u00c5\3\2\2\2/\u00c7\3\2\2\2\61\u00c9\3\2\2\2\63\u00cb\3\2\2"+
"\2\65\u00cd\3\2\2\2\67\u00d0\3\2\2\29\u00d3\3\2\2\2;\u00d6\3\2\2\2=\u00d8"+
"\3\2\2\2?\u00db\3\2\2\2A\u00de\3\2\2\2C\u00e0\3\2\2\2E\u00e2\3\2\2\2G"+
"\u00e4\3\2\2\2I\u00e6\3\2\2\2K\u00e8\3\2\2\2M\u00ea\3\2\2\2O\u00ec\3\2"+
"\2\2Q\u00ee\3\2\2\2S\u00f1\3\2\2\2U\u00f3\3\2\2\2W\u00fe\3\2\2\2Y\u0109"+
"\3\2\2\2[\u011a\3\2\2\2]\u011e\3\2\2\2_\u0126\3\2\2\2a\u012a\3\2\2\2c"+
"\u012c\3\2\2\2e\u012e\3\2\2\2gh\7?\2\2h\4\3\2\2\2ij\7@\2\2j\6\3\2\2\2"+
"kl\7-\2\2lm\7-\2\2m\b\3\2\2\2no\7/\2\2op\7/\2\2p\n\3\2\2\2qr\7p\2\2rs"+
"\7g\2\2st\7y\2\2t\f\3\2\2\2uv\7v\2\2vw\7t\2\2wx\7k\2\2xy\7i\2\2yz\7i\2"+
"\2z{\7g\2\2{|\7t\2\2|\16\3\2\2\2}~\7x\2\2~\177\7c\2\2\177\u0080\7t\2\2"+
"\u0080\u0081\7k\2\2\u0081\u0082\7c\2\2\u0082\u0083\7d\2\2\u0083\u0084"+
"\7n\2\2\u0084\u0085\7g\2\2\u0085\20\3\2\2\2\u0086\u0087\7n\2\2\u0087\u0088"+
"\7g\2\2\u0088\u0089\7v\2\2\u0089\22\3\2\2\2\u008a\u008b\7k\2\2\u008b\u008c"+
"\7h\2\2\u008c\24\3\2\2\2\u008d\u008e\7v\2\2\u008e\u008f\7j\2\2\u008f\u0090"+
"\7g\2\2\u0090\u0091\7p\2\2\u0091\26\3\2\2\2\u0092\u0093\7g\2\2\u0093\u0094"+
"\7n\2\2\u0094\u0095\7u\2\2\u0095\u0096\7g\2\2\u0096\30\3\2\2\2\u0097\u0098"+
"\7h\2\2\u0098\u0099\7q\2\2\u0099\u009a\7t\2\2\u009a\32\3\2\2\2\u009b\u009c"+
"\7t\2\2\u009c\u009d\7g\2\2\u009d\u009e\7v\2\2\u009e\u009f\7w\2\2\u009f"+
"\u00a0\7t\2\2\u00a0\u00a1\7p\2\2\u00a1\34\3\2\2\2\u00a2\u00a3\7x\2\2\u00a3"+
"\u00a4\7q\2\2\u00a4\u00a5\7k\2\2\u00a5\u00a6\7f\2\2\u00a6\36\3\2\2\2\u00a7"+
"\u00a8\7h\2\2\u00a8\u00a9\7n\2\2\u00a9\u00aa\7q\2\2\u00aa\u00ab\7c\2\2"+
"\u00ab\u00ac\7v\2\2\u00ac \3\2\2\2\u00ad\u00ae\7k\2\2\u00ae\u00af\7p\2"+
"\2\u00af\u00b0\7v\2\2\u00b0\"\3\2\2\2\u00b1\u00b2\7u\2\2\u00b2\u00b3\7"+
"v\2\2\u00b3\u00b4\7t\2\2\u00b4\u00b5\7k\2\2\u00b5\u00b6\7p\2\2\u00b6\u00b7"+
"\7i\2\2\u00b7$\3\2\2\2\u00b8\u00b9\7q\2\2\u00b9\u00ba\7d\2\2\u00ba\u00bb"+
"\7l\2\2\u00bb\u00bc\7g\2\2\u00bc\u00bd\7e\2\2\u00bd\u00be\7v\2\2\u00be"+
"&\3\2\2\2\u00bf\u00c0\t\2\2\2\u00c0(\3\2\2\2\u00c1\u00c2\7<\2\2\u00c2"+
"*\3\2\2\2\u00c3\u00c4\7=\2\2\u00c4,\3\2\2\2\u00c5\u00c6\7.\2\2\u00c6."+
"\3\2\2\2\u00c7\u00c8\7-\2\2\u00c8\60\3\2\2\2\u00c9\u00ca\7/\2\2\u00ca"+
"\62\3\2\2\2\u00cb\u00cc\7,\2\2\u00cc\64\3\2\2\2\u00cd\u00ce\7?\2\2\u00ce"+
"\u00cf\7?\2\2\u00cf\66\3\2\2\2\u00d0\u00d1\7#\2\2\u00d1\u00d2\7?\2\2\u00d2"+
"8\3\2\2\2\u00d3\u00d4\7@\2\2\u00d4\u00d5\7?\2\2\u00d5:\3\2\2\2\u00d6\u00d7"+
"\7>\2\2\u00d7<\3\2\2\2\u00d8\u00d9\7>\2\2\u00d9\u00da\7?\2\2\u00da>\3"+
"\2\2\2\u00db\u00dc\7?\2\2\u00dc\u00dd\7@\2\2\u00dd@\3\2\2\2\u00de\u00df"+
"\7*\2\2\u00dfB\3\2\2\2\u00e0\u00e1\7+\2\2\u00e1D\3\2\2\2\u00e2\u00e3\7"+
"]\2\2\u00e3F\3\2\2\2\u00e4\u00e5\7_\2\2\u00e5H\3\2\2\2\u00e6\u00e7\7}"+
"\2\2\u00e7J\3\2\2\2\u00e8\u00e9\7\177\2\2\u00e9L\3\2\2\2\u00ea\u00eb\7"+
"#\2\2\u00ebN\3\2\2\2\u00ec\u00ed\7~\2\2\u00edP\3\2\2\2\u00ee\u00ef\7~"+
"\2\2\u00ef\u00f0\7~\2\2\u00f0R\3\2\2\2\u00f1\u00f2\7\60\2\2\u00f2T\3\2"+
"\2\2\u00f3\u00f9\7$\2\2\u00f4\u00f5\7^\2\2\u00f5\u00f8\7$\2\2\u00f6\u00f8"+
"\13\2\2\2\u00f7\u00f4\3\2\2\2\u00f7\u00f6\3\2\2\2\u00f8\u00fb\3\2\2\2"+
"\u00f9\u00fa\3\2\2\2\u00f9\u00f7\3\2\2\2\u00fa\u00fc\3\2\2\2\u00fb\u00f9"+
"\3\2\2\2\u00fc\u00fd\7$\2\2\u00fdV\3\2\2\2\u00fe\u0104\7b\2\2\u00ff\u0100"+
"\7^\2\2\u0100\u0103\7$\2\2\u0101\u0103\13\2\2\2\u0102\u00ff\3\2\2\2\u0102"+
"\u0101\3\2\2\2\u0103\u0106\3\2\2\2\u0104\u0105\3\2\2\2\u0104\u0102\3\2"+
"\2\2\u0105\u0107\3\2\2\2\u0106\u0104\3\2\2\2\u0107\u0108\7b\2\2\u0108"+
"X\3\2\2\2\u0109\u010a\7\61\2\2\u010a\u010b\7\61\2\2\u010b\u010f\3\2\2"+
"\2\u010c\u010e\13\2\2\2\u010d\u010c\3\2\2\2\u010e\u0111\3\2\2\2\u010f"+
"\u0110\3\2\2\2\u010f\u010d\3\2\2\2\u0110\u0113\3\2\2\2\u0111\u010f\3\2"+
"\2\2\u0112\u0114\7\17\2\2\u0113\u0112\3\2\2\2\u0113\u0114\3\2\2\2\u0114"+
"\u0115\3\2\2\2\u0115\u0116\7\f\2\2\u0116\u0117\3\2\2\2\u0117\u0118\b-"+
"\2\2\u0118Z\3\2\2\2\u0119\u011b\5c\62\2\u011a\u0119\3\2\2\2\u011b\u011c"+
"\3\2\2\2\u011c\u011a\3\2\2\2\u011c\u011d\3\2\2\2\u011d\\\3\2\2\2\u011e"+
"\u0123\5a\61\2\u011f\u0122\5a\61\2\u0120\u0122\5c\62\2\u0121\u011f\3\2"+
"\2\2\u0121\u0120\3\2\2\2\u0122\u0125\3\2\2\2\u0123\u0121\3\2\2\2\u0123"+
"\u0124\3\2\2\2\u0124^\3\2\2\2\u0125\u0123\3\2\2\2\u0126\u0127\t\3\2\2"+
"\u0127\u0128\3\2\2\2\u0128\u0129\b\60\2\2\u0129`\3\2\2\2\u012a\u012b\t"+
"\4\2\2\u012bb\3\2\2\2\u012c\u012d\t\5\2\2\u012dd\3\2\2\2\u012e\u012f\7"+
"^\2\2\u012f\u0130\7~\2\2\u0130f\3\2\2\2\f\2\u00f7\u00f9\u0102\u0104\u010f"+
"\u0113\u011c\u0121\u0123\3\b\2\2";
public static final ATN _ATN =
new ATNDeserializer().deserialize(_serializedATN.toCharArray());
static {
_decisionToDFA = new DFA[_ATN.getNumberOfDecisions()];
for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) {
_decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i);
}
}
}

View file

@ -14,4 +14,8 @@
<ProjectReference Include="..\..\scripting\Elsa.Scripting.JavaScript\Elsa.Scripting.JavaScript.csproj" />
</ItemGroup>
<ItemGroup>
<Folder Include="Abstractions" />
</ItemGroup>
</Project>

View file

@ -11,6 +11,7 @@ public static class ServiceCollectionExtensions
{
return services
.AddSingleton<IDslEngine, DslEngine>()
.AddSingleton<ITypeSystem, TypeSystem>()
.AddSingleton<IFunctionActivityRegistry, FunctionActivityRegistry>();
}
}

View file

@ -1,4 +1,5 @@
using System;
using System.Linq;
using Elsa.Contracts;
using Elsa.Models;
@ -32,7 +33,7 @@ public partial class WorkflowDefinitionBuilderInterpreter
{
// When an activity is assigned to a workflow variable, what we really are doing is setting the variable to the activity's output.
var activityType = activity.GetType();
var outputProperty = activityType.GetProperty("Output");
var outputProperty = activityType.GetProperties().FirstOrDefault(x => x.Name == "Result");
if (outputProperty == null)
throw new Exception("Cannot assign output of an activity that does not have an Output property.");

View file

@ -35,7 +35,7 @@ public class FunctionActivityRegistry : IFunctionActivityRegistry
var propertyNameList = propertyNames?.ToList() ?? new List<string>();
var properties = propertyNameList.Select(propertyName =>
{
var property = activityType.GetProperty(propertyName);
var property = activityType.GetProperties().FirstOrDefault(x => x.Name == propertyName);
if (property == null)
throw new Exception($"Activity type {typeDescriptor.Type.Name} does not have a property named {propertyName}");

View file

@ -41,7 +41,6 @@ var sqlServerConnectionString = configuration.GetConnectionString("SqlServer");
// Add services.
services
.AddElsa()
.AddMediator()
.AddEntityFrameworkCorePersistence((_, ef) => ef.UseSqlite())
.AddProtoActorWorkflowHost()
.IndexWorkflowTriggers()

View file

@ -89,7 +89,6 @@ class Program
services
.AddElsa()
.AddMediator()
.AddInMemoryPersistence()
.AddLogging(logging => logging.AddConsole().SetMinimumLevel(LogLevel.Warning));

View file

@ -49,6 +49,7 @@ IServiceProvider CreateServices()
services
.AddElsa()
.AddDsl()
.AddLogging(logging => logging.AddConsole().SetMinimumLevel(LogLevel.Warning))
.AddInMemoryPersistence()
.AddJavaScriptExpressions();

View file

@ -1,3 +1,3 @@
print("Hi! What's your name?");
variable name = read(name);
variable name = read();
print(js => `Nice to meet you, ${name}!`);

View file

@ -40,6 +40,13 @@ namespace Elsa.Scripting.JavaScript.Services
});
configureEngine?.Invoke(engine);
// Add workflow variables.
var variables = GetVariables(context);
foreach (var variable in variables)
{
engine.SetValue(variable.Key, variable.Value.Value);
}
// Allow listeners invoked by the mediator to configure the engine.
await _mediator.PublishAsync(new EvaluatingJavaScript(engine, context), cancellationToken);
@ -52,5 +59,24 @@ namespace Elsa.Scripting.JavaScript.Services
var result = engine.Execute(expression).GetCompletionValue();
return result?.ToObject();
}
private IDictionary<string, RegisterLocation> GetVariables(ExpressionExecutionContext context)
{
var currentContext = context;
var dictionary = new Dictionary<string, RegisterLocation>();
while (currentContext != null)
{
foreach (var l in currentContext.Register.Locations)
{
if(!dictionary.ContainsKey(l.Key))
dictionary.Add(l.Key, l.Value);
}
currentContext = currentContext.ParentContext;
}
return dictionary;
}
}
}