Clean Slate
This commit is contained in:
File diff suppressed because one or more lines are too long
@@ -1,795 +0,0 @@
|
|||||||
// Generated from /Users/mannpatel/Desktop/CPSC-499/ExprLexer.g4 by ANTLR 4.13.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", "CheckReturnValue", "this-escape"})
|
|
||||||
public class ExprLexer extends Lexer {
|
|
||||||
static { RuntimeMetaData.checkVersion("4.13.1", RuntimeMetaData.VERSION); }
|
|
||||||
|
|
||||||
protected static final DFA[] _decisionToDFA;
|
|
||||||
protected static final PredictionContextCache _sharedContextCache =
|
|
||||||
new PredictionContextCache();
|
|
||||||
public static final int
|
|
||||||
WhiteSpace=1, Comment=2, Abstract=3, Assert=4, Boolean=5, Break=6, Byte=7,
|
|
||||||
Case=8, Catch=9, Char=10, Class=11, Const=12, Continue=13, Default=14,
|
|
||||||
Do=15, Double=16, Else=17, Extends=18, Final=19, Finally=20, Float=21,
|
|
||||||
For=22, Goto=23, If=24, Implements=25, Import=26, InstanceOf=27, Int=28,
|
|
||||||
Interface=29, Long=30, Native=31, New=32, Package=33, Private=34, Protected=35,
|
|
||||||
Public=36, Return=37, Short=38, Static=39, Strictfp=40, Super=41, Switch=42,
|
|
||||||
Synchronized=43, This=44, Throw=45, Throws=46, Transient=47, Try=48, Void=49,
|
|
||||||
Volatile=50, While=51, Dot=52, IntegerLiteral=53, FloatingPointLiteral=54,
|
|
||||||
CharacterLiteral=55, StringLiteral=56, BooleanLiteral=57, NullLiteral=58,
|
|
||||||
ParenthesesLeft=59, ParenthesesRight=60, CurlyBracketLeft=61, CurlyBracketRight=62,
|
|
||||||
SquareBracketLeft=63, SquareBracketRight=64, Semicolon=65, Comma=66, UnsignedRightShiftAssign=67,
|
|
||||||
EqualTo=68, NotEqualTo=69, LessThanEqualTo=70, GreaterThanEqualTo=71,
|
|
||||||
ConditionalAND=72, ConditionalOR=73, Increment=74, Decrement=75, LeftShift=76,
|
|
||||||
SignedRightShift=77, UnsignedRightShift=78, AddAssign=79, SubtractAssign=80,
|
|
||||||
MultiplyAssign=81, DivideAssign=82, BitwiseANDAssign=83, BitwiseORAssign=84,
|
|
||||||
BitwiseXORAssign=85, RemainderAssign=86, LeftShiftAssign=87, SignedRightShiftAssign=88,
|
|
||||||
Assignment=89, BitwiseComplement=90, LessThan=91, GreaterThan=92, LogicalComplement=93,
|
|
||||||
Question=94, Colon=95, Addition=96, Subtraction=97, Multiplication=98,
|
|
||||||
Division=99, BitwiseAND=100, BitwiseOR=101, BitwiseXOR=102, Remainder=103,
|
|
||||||
IDENTIFIER=104;
|
|
||||||
public static String[] channelNames = {
|
|
||||||
"DEFAULT_TOKEN_CHANNEL", "HIDDEN"
|
|
||||||
};
|
|
||||||
|
|
||||||
public static String[] modeNames = {
|
|
||||||
"DEFAULT_MODE"
|
|
||||||
};
|
|
||||||
|
|
||||||
private static String[] makeRuleNames() {
|
|
||||||
return new String[] {
|
|
||||||
"LineTerminator", "WhiteSpace", "EndOfLineComment", "Comment", "TraditionalComment",
|
|
||||||
"CommentTail", "CommentTailStar", "NotStar", "NotStarNotSlash", "Abstract",
|
|
||||||
"Assert", "Boolean", "Break", "Byte", "Case", "Catch", "Char", "Class",
|
|
||||||
"Const", "Continue", "Default", "Do", "Double", "Else", "Extends", "Final",
|
|
||||||
"Finally", "Float", "For", "Goto", "If", "Implements", "Import", "InstanceOf",
|
|
||||||
"Int", "Interface", "Long", "Native", "New", "Package", "Private", "Protected",
|
|
||||||
"Public", "Return", "Short", "Static", "Strictfp", "Super", "Switch",
|
|
||||||
"Synchronized", "This", "Throw", "Throws", "Transient", "Try", "Void",
|
|
||||||
"Volatile", "While", "Dot", "IntegerLiteral", "DecimalIntegerLiteral",
|
|
||||||
"HexIntegerLiteral", "OctalIntegerLiteral", "IntegerTypeSuffix", "DecimalNumeral",
|
|
||||||
"HexNumeral", "HexDigits", "HexDigit", "FloatingPointLiteral", "ExponentPart",
|
|
||||||
"ExponentIndicator", "SignedInteger", "Digits", "Digit", "NonZeroDigit",
|
|
||||||
"Sign", "FloatTypeSuffix", "CharacterLiteral", "SingleCharacter", "StringLiteral",
|
|
||||||
"StringCharacters", "StringCharacter", "EscapeSequence", "OctalEscape",
|
|
||||||
"OctalNumeral", "OctalDigits", "OctalDigit", "ZeroToThree", "BooleanLiteral",
|
|
||||||
"NullLiteral", "ParenthesesLeft", "ParenthesesRight", "CurlyBracketLeft",
|
|
||||||
"CurlyBracketRight", "SquareBracketLeft", "SquareBracketRight", "Semicolon",
|
|
||||||
"Comma", "UnsignedRightShiftAssign", "EqualTo", "NotEqualTo", "LessThanEqualTo",
|
|
||||||
"GreaterThanEqualTo", "ConditionalAND", "ConditionalOR", "Increment",
|
|
||||||
"Decrement", "LeftShift", "SignedRightShift", "UnsignedRightShift", "AddAssign",
|
|
||||||
"SubtractAssign", "MultiplyAssign", "DivideAssign", "BitwiseANDAssign",
|
|
||||||
"BitwiseORAssign", "BitwiseXORAssign", "RemainderAssign", "LeftShiftAssign",
|
|
||||||
"SignedRightShiftAssign", "Assignment", "BitwiseComplement", "LessThan",
|
|
||||||
"GreaterThan", "LogicalComplement", "Question", "Colon", "Addition",
|
|
||||||
"Subtraction", "Multiplication", "Division", "BitwiseAND", "BitwiseOR",
|
|
||||||
"BitwiseXOR", "Remainder", "IDENTIFIER", "JavaLetter", "JavaLetterOrDigit"
|
|
||||||
};
|
|
||||||
}
|
|
||||||
public static final String[] ruleNames = makeRuleNames();
|
|
||||||
|
|
||||||
private static String[] makeLiteralNames() {
|
|
||||||
return new String[] {
|
|
||||||
null, null, null, "'abstract'", "'assert'", "'boolean'", "'break'", "'byte'",
|
|
||||||
"'case'", "'catch'", "'char'", "'class'", "'const'", "'continue'", "'default'",
|
|
||||||
"'do'", "'double'", "'else'", "'extends'", "'final'", "'finally'", "'float'",
|
|
||||||
"'for'", "'goto'", "'if'", "'implements'", "'import'", "'instanceof'",
|
|
||||||
"'int'", "'interface'", "'long'", "'native'", "'new'", "'package'", "'private'",
|
|
||||||
"'protected'", "'public'", "'return'", "'short'", "'static'", "'strictfp'",
|
|
||||||
"'super'", "'switch'", "'synchronized'", "'this'", "'throw'", "'throws'",
|
|
||||||
"'transient'", "'try'", "'void'", "'volatile'", "'while'", "'.'", null,
|
|
||||||
null, null, null, null, "'null'", "'('", "')'", "'{'", "'}'", "'['",
|
|
||||||
"']'", "';'", "','", "'>>>='", "'=='", "'!='", "'<='", "'>='", "'&&'",
|
|
||||||
"'||'", "'++'", "'--'", "'<<'", "'>>'", "'>>>'", "'+='", "'-='", "'*='",
|
|
||||||
"'/='", "'&='", "'|='", "'^='", "'%='", "'<<='", "'>>='", "'='", "'~'",
|
|
||||||
"'<'", "'>'", "'!'", "'?'", "':'", "'+'", "'-'", "'*'", "'/'", "'&'",
|
|
||||||
"'|'", "'^'", "'%'"
|
|
||||||
};
|
|
||||||
}
|
|
||||||
private static final String[] _LITERAL_NAMES = makeLiteralNames();
|
|
||||||
private static String[] makeSymbolicNames() {
|
|
||||||
return new String[] {
|
|
||||||
null, "WhiteSpace", "Comment", "Abstract", "Assert", "Boolean", "Break",
|
|
||||||
"Byte", "Case", "Catch", "Char", "Class", "Const", "Continue", "Default",
|
|
||||||
"Do", "Double", "Else", "Extends", "Final", "Finally", "Float", "For",
|
|
||||||
"Goto", "If", "Implements", "Import", "InstanceOf", "Int", "Interface",
|
|
||||||
"Long", "Native", "New", "Package", "Private", "Protected", "Public",
|
|
||||||
"Return", "Short", "Static", "Strictfp", "Super", "Switch", "Synchronized",
|
|
||||||
"This", "Throw", "Throws", "Transient", "Try", "Void", "Volatile", "While",
|
|
||||||
"Dot", "IntegerLiteral", "FloatingPointLiteral", "CharacterLiteral",
|
|
||||||
"StringLiteral", "BooleanLiteral", "NullLiteral", "ParenthesesLeft",
|
|
||||||
"ParenthesesRight", "CurlyBracketLeft", "CurlyBracketRight", "SquareBracketLeft",
|
|
||||||
"SquareBracketRight", "Semicolon", "Comma", "UnsignedRightShiftAssign",
|
|
||||||
"EqualTo", "NotEqualTo", "LessThanEqualTo", "GreaterThanEqualTo", "ConditionalAND",
|
|
||||||
"ConditionalOR", "Increment", "Decrement", "LeftShift", "SignedRightShift",
|
|
||||||
"UnsignedRightShift", "AddAssign", "SubtractAssign", "MultiplyAssign",
|
|
||||||
"DivideAssign", "BitwiseANDAssign", "BitwiseORAssign", "BitwiseXORAssign",
|
|
||||||
"RemainderAssign", "LeftShiftAssign", "SignedRightShiftAssign", "Assignment",
|
|
||||||
"BitwiseComplement", "LessThan", "GreaterThan", "LogicalComplement",
|
|
||||||
"Question", "Colon", "Addition", "Subtraction", "Multiplication", "Division",
|
|
||||||
"BitwiseAND", "BitwiseOR", "BitwiseXOR", "Remainder", "IDENTIFIER"
|
|
||||||
};
|
|
||||||
}
|
|
||||||
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 ExprLexer(CharStream input) {
|
|
||||||
super(input);
|
|
||||||
_interp = new LexerATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getGrammarFileName() { return "ExprLexer.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 =
|
|
||||||
"\u0004\u0000h\u03ef\u0006\uffff\uffff\u0002\u0000\u0007\u0000\u0002\u0001"+
|
|
||||||
"\u0007\u0001\u0002\u0002\u0007\u0002\u0002\u0003\u0007\u0003\u0002\u0004"+
|
|
||||||
"\u0007\u0004\u0002\u0005\u0007\u0005\u0002\u0006\u0007\u0006\u0002\u0007"+
|
|
||||||
"\u0007\u0007\u0002\b\u0007\b\u0002\t\u0007\t\u0002\n\u0007\n\u0002\u000b"+
|
|
||||||
"\u0007\u000b\u0002\f\u0007\f\u0002\r\u0007\r\u0002\u000e\u0007\u000e\u0002"+
|
|
||||||
"\u000f\u0007\u000f\u0002\u0010\u0007\u0010\u0002\u0011\u0007\u0011\u0002"+
|
|
||||||
"\u0012\u0007\u0012\u0002\u0013\u0007\u0013\u0002\u0014\u0007\u0014\u0002"+
|
|
||||||
"\u0015\u0007\u0015\u0002\u0016\u0007\u0016\u0002\u0017\u0007\u0017\u0002"+
|
|
||||||
"\u0018\u0007\u0018\u0002\u0019\u0007\u0019\u0002\u001a\u0007\u001a\u0002"+
|
|
||||||
"\u001b\u0007\u001b\u0002\u001c\u0007\u001c\u0002\u001d\u0007\u001d\u0002"+
|
|
||||||
"\u001e\u0007\u001e\u0002\u001f\u0007\u001f\u0002 \u0007 \u0002!\u0007"+
|
|
||||||
"!\u0002\"\u0007\"\u0002#\u0007#\u0002$\u0007$\u0002%\u0007%\u0002&\u0007"+
|
|
||||||
"&\u0002\'\u0007\'\u0002(\u0007(\u0002)\u0007)\u0002*\u0007*\u0002+\u0007"+
|
|
||||||
"+\u0002,\u0007,\u0002-\u0007-\u0002.\u0007.\u0002/\u0007/\u00020\u0007"+
|
|
||||||
"0\u00021\u00071\u00022\u00072\u00023\u00073\u00024\u00074\u00025\u0007"+
|
|
||||||
"5\u00026\u00076\u00027\u00077\u00028\u00078\u00029\u00079\u0002:\u0007"+
|
|
||||||
":\u0002;\u0007;\u0002<\u0007<\u0002=\u0007=\u0002>\u0007>\u0002?\u0007"+
|
|
||||||
"?\u0002@\u0007@\u0002A\u0007A\u0002B\u0007B\u0002C\u0007C\u0002D\u0007"+
|
|
||||||
"D\u0002E\u0007E\u0002F\u0007F\u0002G\u0007G\u0002H\u0007H\u0002I\u0007"+
|
|
||||||
"I\u0002J\u0007J\u0002K\u0007K\u0002L\u0007L\u0002M\u0007M\u0002N\u0007"+
|
|
||||||
"N\u0002O\u0007O\u0002P\u0007P\u0002Q\u0007Q\u0002R\u0007R\u0002S\u0007"+
|
|
||||||
"S\u0002T\u0007T\u0002U\u0007U\u0002V\u0007V\u0002W\u0007W\u0002X\u0007"+
|
|
||||||
"X\u0002Y\u0007Y\u0002Z\u0007Z\u0002[\u0007[\u0002\\\u0007\\\u0002]\u0007"+
|
|
||||||
"]\u0002^\u0007^\u0002_\u0007_\u0002`\u0007`\u0002a\u0007a\u0002b\u0007"+
|
|
||||||
"b\u0002c\u0007c\u0002d\u0007d\u0002e\u0007e\u0002f\u0007f\u0002g\u0007"+
|
|
||||||
"g\u0002h\u0007h\u0002i\u0007i\u0002j\u0007j\u0002k\u0007k\u0002l\u0007"+
|
|
||||||
"l\u0002m\u0007m\u0002n\u0007n\u0002o\u0007o\u0002p\u0007p\u0002q\u0007"+
|
|
||||||
"q\u0002r\u0007r\u0002s\u0007s\u0002t\u0007t\u0002u\u0007u\u0002v\u0007"+
|
|
||||||
"v\u0002w\u0007w\u0002x\u0007x\u0002y\u0007y\u0002z\u0007z\u0002{\u0007"+
|
|
||||||
"{\u0002|\u0007|\u0002}\u0007}\u0002~\u0007~\u0002\u007f\u0007\u007f\u0002"+
|
|
||||||
"\u0080\u0007\u0080\u0002\u0081\u0007\u0081\u0002\u0082\u0007\u0082\u0002"+
|
|
||||||
"\u0083\u0007\u0083\u0002\u0084\u0007\u0084\u0002\u0085\u0007\u0085\u0002"+
|
|
||||||
"\u0086\u0007\u0086\u0002\u0087\u0007\u0087\u0002\u0088\u0007\u0088\u0002"+
|
|
||||||
"\u0089\u0007\u0089\u0001\u0000\u0001\u0000\u0003\u0000\u0118\b\u0000\u0001"+
|
|
||||||
"\u0000\u0003\u0000\u011b\b\u0000\u0001\u0001\u0001\u0001\u0003\u0001\u011f"+
|
|
||||||
"\b\u0001\u0001\u0001\u0001\u0001\u0001\u0002\u0001\u0002\u0001\u0002\u0001"+
|
|
||||||
"\u0002\u0005\u0002\u0127\b\u0002\n\u0002\f\u0002\u012a\t\u0002\u0001\u0002"+
|
|
||||||
"\u0003\u0002\u012d\b\u0002\u0001\u0003\u0001\u0003\u0003\u0003\u0131\b"+
|
|
||||||
"\u0003\u0001\u0003\u0001\u0003\u0001\u0004\u0001\u0004\u0001\u0004\u0001"+
|
|
||||||
"\u0004\u0001\u0004\u0001\u0004\u0001\u0005\u0001\u0005\u0001\u0005\u0003"+
|
|
||||||
"\u0005\u013e\b\u0005\u0001\u0006\u0001\u0006\u0001\u0006\u0001\u0006\u0001"+
|
|
||||||
"\u0006\u0001\u0006\u0003\u0006\u0146\b\u0006\u0001\u0007\u0001\u0007\u0003"+
|
|
||||||
"\u0007\u014a\b\u0007\u0001\b\u0001\b\u0003\b\u014e\b\b\u0001\t\u0001\t"+
|
|
||||||
"\u0001\t\u0001\t\u0001\t\u0001\t\u0001\t\u0001\t\u0001\t\u0001\n\u0001"+
|
|
||||||
"\n\u0001\n\u0001\n\u0001\n\u0001\n\u0001\n\u0001\u000b\u0001\u000b\u0001"+
|
|
||||||
"\u000b\u0001\u000b\u0001\u000b\u0001\u000b\u0001\u000b\u0001\u000b\u0001"+
|
|
||||||
"\f\u0001\f\u0001\f\u0001\f\u0001\f\u0001\f\u0001\r\u0001\r\u0001\r\u0001"+
|
|
||||||
"\r\u0001\r\u0001\u000e\u0001\u000e\u0001\u000e\u0001\u000e\u0001\u000e"+
|
|
||||||
"\u0001\u000f\u0001\u000f\u0001\u000f\u0001\u000f\u0001\u000f\u0001\u000f"+
|
|
||||||
"\u0001\u0010\u0001\u0010\u0001\u0010\u0001\u0010\u0001\u0010\u0001\u0011"+
|
|
||||||
"\u0001\u0011\u0001\u0011\u0001\u0011\u0001\u0011\u0001\u0011\u0001\u0012"+
|
|
||||||
"\u0001\u0012\u0001\u0012\u0001\u0012\u0001\u0012\u0001\u0012\u0001\u0013"+
|
|
||||||
"\u0001\u0013\u0001\u0013\u0001\u0013\u0001\u0013\u0001\u0013\u0001\u0013"+
|
|
||||||
"\u0001\u0013\u0001\u0013\u0001\u0014\u0001\u0014\u0001\u0014\u0001\u0014"+
|
|
||||||
"\u0001\u0014\u0001\u0014\u0001\u0014\u0001\u0014\u0001\u0015\u0001\u0015"+
|
|
||||||
"\u0001\u0015\u0001\u0016\u0001\u0016\u0001\u0016\u0001\u0016\u0001\u0016"+
|
|
||||||
"\u0001\u0016\u0001\u0016\u0001\u0017\u0001\u0017\u0001\u0017\u0001\u0017"+
|
|
||||||
"\u0001\u0017\u0001\u0018\u0001\u0018\u0001\u0018\u0001\u0018\u0001\u0018"+
|
|
||||||
"\u0001\u0018\u0001\u0018\u0001\u0018\u0001\u0019\u0001\u0019\u0001\u0019"+
|
|
||||||
"\u0001\u0019\u0001\u0019\u0001\u0019\u0001\u001a\u0001\u001a\u0001\u001a"+
|
|
||||||
"\u0001\u001a\u0001\u001a\u0001\u001a\u0001\u001a\u0001\u001a\u0001\u001b"+
|
|
||||||
"\u0001\u001b\u0001\u001b\u0001\u001b\u0001\u001b\u0001\u001b\u0001\u001c"+
|
|
||||||
"\u0001\u001c\u0001\u001c\u0001\u001c\u0001\u001d\u0001\u001d\u0001\u001d"+
|
|
||||||
"\u0001\u001d\u0001\u001d\u0001\u001e\u0001\u001e\u0001\u001e\u0001\u001f"+
|
|
||||||
"\u0001\u001f\u0001\u001f\u0001\u001f\u0001\u001f\u0001\u001f\u0001\u001f"+
|
|
||||||
"\u0001\u001f\u0001\u001f\u0001\u001f\u0001\u001f\u0001 \u0001 \u0001 "+
|
|
||||||
"\u0001 \u0001 \u0001 \u0001 \u0001!\u0001!\u0001!\u0001!\u0001!\u0001"+
|
|
||||||
"!\u0001!\u0001!\u0001!\u0001!\u0001!\u0001\"\u0001\"\u0001\"\u0001\"\u0001"+
|
|
||||||
"#\u0001#\u0001#\u0001#\u0001#\u0001#\u0001#\u0001#\u0001#\u0001#\u0001"+
|
|
||||||
"$\u0001$\u0001$\u0001$\u0001$\u0001%\u0001%\u0001%\u0001%\u0001%\u0001"+
|
|
||||||
"%\u0001%\u0001&\u0001&\u0001&\u0001&\u0001\'\u0001\'\u0001\'\u0001\'\u0001"+
|
|
||||||
"\'\u0001\'\u0001\'\u0001\'\u0001(\u0001(\u0001(\u0001(\u0001(\u0001(\u0001"+
|
|
||||||
"(\u0001(\u0001)\u0001)\u0001)\u0001)\u0001)\u0001)\u0001)\u0001)\u0001"+
|
|
||||||
")\u0001)\u0001*\u0001*\u0001*\u0001*\u0001*\u0001*\u0001*\u0001+\u0001"+
|
|
||||||
"+\u0001+\u0001+\u0001+\u0001+\u0001+\u0001,\u0001,\u0001,\u0001,\u0001"+
|
|
||||||
",\u0001,\u0001-\u0001-\u0001-\u0001-\u0001-\u0001-\u0001-\u0001.\u0001"+
|
|
||||||
".\u0001.\u0001.\u0001.\u0001.\u0001.\u0001.\u0001.\u0001/\u0001/\u0001"+
|
|
||||||
"/\u0001/\u0001/\u0001/\u00010\u00010\u00010\u00010\u00010\u00010\u0001"+
|
|
||||||
"0\u00011\u00011\u00011\u00011\u00011\u00011\u00011\u00011\u00011\u0001"+
|
|
||||||
"1\u00011\u00011\u00011\u00012\u00012\u00012\u00012\u00012\u00013\u0001"+
|
|
||||||
"3\u00013\u00013\u00013\u00013\u00014\u00014\u00014\u00014\u00014\u0001"+
|
|
||||||
"4\u00014\u00015\u00015\u00015\u00015\u00015\u00015\u00015\u00015\u0001"+
|
|
||||||
"5\u00015\u00016\u00016\u00016\u00016\u00017\u00017\u00017\u00017\u0001"+
|
|
||||||
"7\u00018\u00018\u00018\u00018\u00018\u00018\u00018\u00018\u00018\u0001"+
|
|
||||||
"9\u00019\u00019\u00019\u00019\u00019\u0001:\u0001:\u0001;\u0001;\u0001"+
|
|
||||||
";\u0003;\u02a3\b;\u0001<\u0001<\u0003<\u02a7\b<\u0001=\u0001=\u0003=\u02ab"+
|
|
||||||
"\b=\u0001>\u0001>\u0003>\u02af\b>\u0001?\u0001?\u0001@\u0001@\u0001@\u0003"+
|
|
||||||
"@\u02b6\b@\u0003@\u02b8\b@\u0001A\u0001A\u0001A\u0001A\u0001A\u0001A\u0003"+
|
|
||||||
"A\u02c0\bA\u0001B\u0001B\u0001B\u0001B\u0003B\u02c6\bB\u0001C\u0001C\u0001"+
|
|
||||||
"D\u0001D\u0001D\u0003D\u02cd\bD\u0001D\u0003D\u02d0\bD\u0001D\u0003D\u02d3"+
|
|
||||||
"\bD\u0001D\u0001D\u0001D\u0003D\u02d8\bD\u0001D\u0003D\u02db\bD\u0001"+
|
|
||||||
"D\u0001D\u0001D\u0003D\u02e0\bD\u0001D\u0001D\u0003D\u02e4\bD\u0001D\u0001"+
|
|
||||||
"D\u0003D\u02e8\bD\u0001E\u0001E\u0001E\u0001F\u0001F\u0001G\u0003G\u02f0"+
|
|
||||||
"\bG\u0001G\u0001G\u0001H\u0004H\u02f5\bH\u000bH\fH\u02f6\u0001I\u0001"+
|
|
||||||
"I\u0003I\u02fb\bI\u0001J\u0001J\u0001K\u0001K\u0001L\u0001L\u0001M\u0001"+
|
|
||||||
"M\u0001M\u0001M\u0001M\u0001M\u0001M\u0001M\u0003M\u030b\bM\u0001N\u0001"+
|
|
||||||
"N\u0001O\u0001O\u0003O\u0311\bO\u0001O\u0001O\u0001P\u0004P\u0316\bP\u000b"+
|
|
||||||
"P\fP\u0317\u0001Q\u0001Q\u0003Q\u031c\bQ\u0001R\u0001R\u0001R\u0001R\u0001"+
|
|
||||||
"R\u0001R\u0001R\u0001R\u0001R\u0001R\u0001R\u0001R\u0001R\u0001R\u0001"+
|
|
||||||
"R\u0001R\u0001R\u0001R\u0001R\u0001R\u0001R\u0001R\u0001R\u0001R\u0001"+
|
|
||||||
"R\u0001R\u0001R\u0001R\u0001R\u0001R\u0001R\u0001R\u0001R\u0001R\u0001"+
|
|
||||||
"R\u0001R\u0001R\u0001R\u0001R\u0001R\u0001R\u0001R\u0003R\u0348\bR\u0001"+
|
|
||||||
"S\u0001S\u0001S\u0001S\u0001S\u0001S\u0001S\u0001S\u0001S\u0001S\u0001"+
|
|
||||||
"S\u0003S\u0355\bS\u0001T\u0001T\u0001T\u0001U\u0001U\u0001V\u0001V\u0001"+
|
|
||||||
"W\u0001W\u0001X\u0001X\u0001X\u0001X\u0001X\u0001X\u0001X\u0001X\u0001"+
|
|
||||||
"X\u0003X\u0369\bX\u0001Y\u0001Y\u0001Y\u0001Y\u0001Y\u0001Z\u0001Z\u0001"+
|
|
||||||
"[\u0001[\u0001\\\u0001\\\u0001]\u0001]\u0001^\u0001^\u0001_\u0001_\u0001"+
|
|
||||||
"`\u0001`\u0001a\u0001a\u0001b\u0001b\u0001b\u0001b\u0001b\u0001c\u0001"+
|
|
||||||
"c\u0001c\u0001d\u0001d\u0001d\u0001e\u0001e\u0001e\u0001f\u0001f\u0001"+
|
|
||||||
"f\u0001g\u0001g\u0001g\u0001h\u0001h\u0001h\u0001i\u0001i\u0001i\u0001"+
|
|
||||||
"j\u0001j\u0001j\u0001k\u0001k\u0001k\u0001l\u0001l\u0001l\u0001m\u0001"+
|
|
||||||
"m\u0001m\u0001m\u0001n\u0001n\u0001n\u0001o\u0001o\u0001o\u0001p\u0001"+
|
|
||||||
"p\u0001p\u0001q\u0001q\u0001q\u0001r\u0001r\u0001r\u0001s\u0001s\u0001"+
|
|
||||||
"s\u0001t\u0001t\u0001t\u0001u\u0001u\u0001u\u0001v\u0001v\u0001v\u0001"+
|
|
||||||
"v\u0001w\u0001w\u0001w\u0001w\u0001x\u0001x\u0001y\u0001y\u0001z\u0001"+
|
|
||||||
"z\u0001{\u0001{\u0001|\u0001|\u0001}\u0001}\u0001~\u0001~\u0001\u007f"+
|
|
||||||
"\u0001\u007f\u0001\u0080\u0001\u0080\u0001\u0081\u0001\u0081\u0001\u0082"+
|
|
||||||
"\u0001\u0082\u0001\u0083\u0001\u0083\u0001\u0084\u0001\u0084\u0001\u0085"+
|
|
||||||
"\u0001\u0085\u0001\u0086\u0001\u0086\u0001\u0087\u0001\u0087\u0005\u0087"+
|
|
||||||
"\u03e7\b\u0087\n\u0087\f\u0087\u03ea\t\u0087\u0001\u0088\u0001\u0088\u0001"+
|
|
||||||
"\u0089\u0001\u0089\u0000\u0000\u008a\u0001\u0000\u0003\u0001\u0005\u0000"+
|
|
||||||
"\u0007\u0002\t\u0000\u000b\u0000\r\u0000\u000f\u0000\u0011\u0000\u0013"+
|
|
||||||
"\u0003\u0015\u0004\u0017\u0005\u0019\u0006\u001b\u0007\u001d\b\u001f\t"+
|
|
||||||
"!\n#\u000b%\f\'\r)\u000e+\u000f-\u0010/\u00111\u00123\u00135\u00147\u0015"+
|
|
||||||
"9\u0016;\u0017=\u0018?\u0019A\u001aC\u001bE\u001cG\u001dI\u001eK\u001f"+
|
|
||||||
"M O!Q\"S#U$W%Y&[\'](_)a*c+e,g-i.k/m0o1q2s3u4w5y\u0000{\u0000}\u0000\u007f"+
|
|
||||||
"\u0000\u0081\u0000\u0083\u0000\u0085\u0000\u0087\u0000\u00896\u008b\u0000"+
|
|
||||||
"\u008d\u0000\u008f\u0000\u0091\u0000\u0093\u0000\u0095\u0000\u0097\u0000"+
|
|
||||||
"\u0099\u0000\u009b7\u009d\u0000\u009f8\u00a1\u0000\u00a3\u0000\u00a5\u0000"+
|
|
||||||
"\u00a7\u0000\u00a9\u0000\u00ab\u0000\u00ad\u0000\u00af\u0000\u00b19\u00b3"+
|
|
||||||
":\u00b5;\u00b7<\u00b9=\u00bb>\u00bd?\u00bf@\u00c1A\u00c3B\u00c5C\u00c7"+
|
|
||||||
"D\u00c9E\u00cbF\u00cdG\u00cfH\u00d1I\u00d3J\u00d5K\u00d7L\u00d9M\u00db"+
|
|
||||||
"N\u00ddO\u00dfP\u00e1Q\u00e3R\u00e5S\u00e7T\u00e9U\u00ebV\u00edW\u00ef"+
|
|
||||||
"X\u00f1Y\u00f3Z\u00f5[\u00f7\\\u00f9]\u00fb^\u00fd_\u00ff`\u0101a\u0103"+
|
|
||||||
"b\u0105c\u0107d\u0109e\u010bf\u010dg\u010fh\u0111\u0000\u0113\u0000\u0001"+
|
|
||||||
"\u0000\u000f\u0003\u0000\t\t\f\f \u0002\u0000\n\n\r\r\u0002\u0000**^"+
|
|
||||||
"^\u0003\u0000**//^^\u0002\u0000LLll\u0003\u000009AFaf\u0002\u0000EEee"+
|
|
||||||
"\u0001\u000019\u0002\u0000++--\u0004\u0000DDFFddff\u0003\u0000\'\'\\\\"+
|
|
||||||
"^^\u0001\u000007\u0001\u000003\u0004\u0000$$AZ__az\u0005\u0000$$09AZ_"+
|
|
||||||
"_az\u03fd\u0000\u0003\u0001\u0000\u0000\u0000\u0000\u0007\u0001\u0000"+
|
|
||||||
"\u0000\u0000\u0000\u0013\u0001\u0000\u0000\u0000\u0000\u0015\u0001\u0000"+
|
|
||||||
"\u0000\u0000\u0000\u0017\u0001\u0000\u0000\u0000\u0000\u0019\u0001\u0000"+
|
|
||||||
"\u0000\u0000\u0000\u001b\u0001\u0000\u0000\u0000\u0000\u001d\u0001\u0000"+
|
|
||||||
"\u0000\u0000\u0000\u001f\u0001\u0000\u0000\u0000\u0000!\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u0000#\u0001\u0000\u0000\u0000\u0000%\u0001\u0000\u0000\u0000\u0000"+
|
|
||||||
"\'\u0001\u0000\u0000\u0000\u0000)\u0001\u0000\u0000\u0000\u0000+\u0001"+
|
|
||||||
"\u0000\u0000\u0000\u0000-\u0001\u0000\u0000\u0000\u0000/\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u00001\u0001\u0000\u0000\u0000\u00003\u0001\u0000\u0000\u0000\u0000"+
|
|
||||||
"5\u0001\u0000\u0000\u0000\u00007\u0001\u0000\u0000\u0000\u00009\u0001"+
|
|
||||||
"\u0000\u0000\u0000\u0000;\u0001\u0000\u0000\u0000\u0000=\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u0000?\u0001\u0000\u0000\u0000\u0000A\u0001\u0000\u0000\u0000\u0000"+
|
|
||||||
"C\u0001\u0000\u0000\u0000\u0000E\u0001\u0000\u0000\u0000\u0000G\u0001"+
|
|
||||||
"\u0000\u0000\u0000\u0000I\u0001\u0000\u0000\u0000\u0000K\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u0000M\u0001\u0000\u0000\u0000\u0000O\u0001\u0000\u0000\u0000\u0000"+
|
|
||||||
"Q\u0001\u0000\u0000\u0000\u0000S\u0001\u0000\u0000\u0000\u0000U\u0001"+
|
|
||||||
"\u0000\u0000\u0000\u0000W\u0001\u0000\u0000\u0000\u0000Y\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u0000[\u0001\u0000\u0000\u0000\u0000]\u0001\u0000\u0000\u0000\u0000"+
|
|
||||||
"_\u0001\u0000\u0000\u0000\u0000a\u0001\u0000\u0000\u0000\u0000c\u0001"+
|
|
||||||
"\u0000\u0000\u0000\u0000e\u0001\u0000\u0000\u0000\u0000g\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u0000i\u0001\u0000\u0000\u0000\u0000k\u0001\u0000\u0000\u0000\u0000"+
|
|
||||||
"m\u0001\u0000\u0000\u0000\u0000o\u0001\u0000\u0000\u0000\u0000q\u0001"+
|
|
||||||
"\u0000\u0000\u0000\u0000s\u0001\u0000\u0000\u0000\u0000u\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u0000w\u0001\u0000\u0000\u0000\u0000\u0089\u0001\u0000\u0000\u0000"+
|
|
||||||
"\u0000\u009b\u0001\u0000\u0000\u0000\u0000\u009f\u0001\u0000\u0000\u0000"+
|
|
||||||
"\u0000\u00b1\u0001\u0000\u0000\u0000\u0000\u00b3\u0001\u0000\u0000\u0000"+
|
|
||||||
"\u0000\u00b5\u0001\u0000\u0000\u0000\u0000\u00b7\u0001\u0000\u0000\u0000"+
|
|
||||||
"\u0000\u00b9\u0001\u0000\u0000\u0000\u0000\u00bb\u0001\u0000\u0000\u0000"+
|
|
||||||
"\u0000\u00bd\u0001\u0000\u0000\u0000\u0000\u00bf\u0001\u0000\u0000\u0000"+
|
|
||||||
"\u0000\u00c1\u0001\u0000\u0000\u0000\u0000\u00c3\u0001\u0000\u0000\u0000"+
|
|
||||||
"\u0000\u00c5\u0001\u0000\u0000\u0000\u0000\u00c7\u0001\u0000\u0000\u0000"+
|
|
||||||
"\u0000\u00c9\u0001\u0000\u0000\u0000\u0000\u00cb\u0001\u0000\u0000\u0000"+
|
|
||||||
"\u0000\u00cd\u0001\u0000\u0000\u0000\u0000\u00cf\u0001\u0000\u0000\u0000"+
|
|
||||||
"\u0000\u00d1\u0001\u0000\u0000\u0000\u0000\u00d3\u0001\u0000\u0000\u0000"+
|
|
||||||
"\u0000\u00d5\u0001\u0000\u0000\u0000\u0000\u00d7\u0001\u0000\u0000\u0000"+
|
|
||||||
"\u0000\u00d9\u0001\u0000\u0000\u0000\u0000\u00db\u0001\u0000\u0000\u0000"+
|
|
||||||
"\u0000\u00dd\u0001\u0000\u0000\u0000\u0000\u00df\u0001\u0000\u0000\u0000"+
|
|
||||||
"\u0000\u00e1\u0001\u0000\u0000\u0000\u0000\u00e3\u0001\u0000\u0000\u0000"+
|
|
||||||
"\u0000\u00e5\u0001\u0000\u0000\u0000\u0000\u00e7\u0001\u0000\u0000\u0000"+
|
|
||||||
"\u0000\u00e9\u0001\u0000\u0000\u0000\u0000\u00eb\u0001\u0000\u0000\u0000"+
|
|
||||||
"\u0000\u00ed\u0001\u0000\u0000\u0000\u0000\u00ef\u0001\u0000\u0000\u0000"+
|
|
||||||
"\u0000\u00f1\u0001\u0000\u0000\u0000\u0000\u00f3\u0001\u0000\u0000\u0000"+
|
|
||||||
"\u0000\u00f5\u0001\u0000\u0000\u0000\u0000\u00f7\u0001\u0000\u0000\u0000"+
|
|
||||||
"\u0000\u00f9\u0001\u0000\u0000\u0000\u0000\u00fb\u0001\u0000\u0000\u0000"+
|
|
||||||
"\u0000\u00fd\u0001\u0000\u0000\u0000\u0000\u00ff\u0001\u0000\u0000\u0000"+
|
|
||||||
"\u0000\u0101\u0001\u0000\u0000\u0000\u0000\u0103\u0001\u0000\u0000\u0000"+
|
|
||||||
"\u0000\u0105\u0001\u0000\u0000\u0000\u0000\u0107\u0001\u0000\u0000\u0000"+
|
|
||||||
"\u0000\u0109\u0001\u0000\u0000\u0000\u0000\u010b\u0001\u0000\u0000\u0000"+
|
|
||||||
"\u0000\u010d\u0001\u0000\u0000\u0000\u0000\u010f\u0001\u0000\u0000\u0000"+
|
|
||||||
"\u0001\u011a\u0001\u0000\u0000\u0000\u0003\u011e\u0001\u0000\u0000\u0000"+
|
|
||||||
"\u0005\u0122\u0001\u0000\u0000\u0000\u0007\u0130\u0001\u0000\u0000\u0000"+
|
|
||||||
"\t\u0134\u0001\u0000\u0000\u0000\u000b\u013d\u0001\u0000\u0000\u0000\r"+
|
|
||||||
"\u0145\u0001\u0000\u0000\u0000\u000f\u0149\u0001\u0000\u0000\u0000\u0011"+
|
|
||||||
"\u014d\u0001\u0000\u0000\u0000\u0013\u014f\u0001\u0000\u0000\u0000\u0015"+
|
|
||||||
"\u0158\u0001\u0000\u0000\u0000\u0017\u015f\u0001\u0000\u0000\u0000\u0019"+
|
|
||||||
"\u0167\u0001\u0000\u0000\u0000\u001b\u016d\u0001\u0000\u0000\u0000\u001d"+
|
|
||||||
"\u0172\u0001\u0000\u0000\u0000\u001f\u0177\u0001\u0000\u0000\u0000!\u017d"+
|
|
||||||
"\u0001\u0000\u0000\u0000#\u0182\u0001\u0000\u0000\u0000%\u0188\u0001\u0000"+
|
|
||||||
"\u0000\u0000\'\u018e\u0001\u0000\u0000\u0000)\u0197\u0001\u0000\u0000"+
|
|
||||||
"\u0000+\u019f\u0001\u0000\u0000\u0000-\u01a2\u0001\u0000\u0000\u0000/"+
|
|
||||||
"\u01a9\u0001\u0000\u0000\u00001\u01ae\u0001\u0000\u0000\u00003\u01b6\u0001"+
|
|
||||||
"\u0000\u0000\u00005\u01bc\u0001\u0000\u0000\u00007\u01c4\u0001\u0000\u0000"+
|
|
||||||
"\u00009\u01ca\u0001\u0000\u0000\u0000;\u01ce\u0001\u0000\u0000\u0000="+
|
|
||||||
"\u01d3\u0001\u0000\u0000\u0000?\u01d6\u0001\u0000\u0000\u0000A\u01e1\u0001"+
|
|
||||||
"\u0000\u0000\u0000C\u01e8\u0001\u0000\u0000\u0000E\u01f3\u0001\u0000\u0000"+
|
|
||||||
"\u0000G\u01f7\u0001\u0000\u0000\u0000I\u0201\u0001\u0000\u0000\u0000K"+
|
|
||||||
"\u0206\u0001\u0000\u0000\u0000M\u020d\u0001\u0000\u0000\u0000O\u0211\u0001"+
|
|
||||||
"\u0000\u0000\u0000Q\u0219\u0001\u0000\u0000\u0000S\u0221\u0001\u0000\u0000"+
|
|
||||||
"\u0000U\u022b\u0001\u0000\u0000\u0000W\u0232\u0001\u0000\u0000\u0000Y"+
|
|
||||||
"\u0239\u0001\u0000\u0000\u0000[\u023f\u0001\u0000\u0000\u0000]\u0246\u0001"+
|
|
||||||
"\u0000\u0000\u0000_\u024f\u0001\u0000\u0000\u0000a\u0255\u0001\u0000\u0000"+
|
|
||||||
"\u0000c\u025c\u0001\u0000\u0000\u0000e\u0269\u0001\u0000\u0000\u0000g"+
|
|
||||||
"\u026e\u0001\u0000\u0000\u0000i\u0274\u0001\u0000\u0000\u0000k\u027b\u0001"+
|
|
||||||
"\u0000\u0000\u0000m\u0285\u0001\u0000\u0000\u0000o\u0289\u0001\u0000\u0000"+
|
|
||||||
"\u0000q\u028e\u0001\u0000\u0000\u0000s\u0297\u0001\u0000\u0000\u0000u"+
|
|
||||||
"\u029d\u0001\u0000\u0000\u0000w\u02a2\u0001\u0000\u0000\u0000y\u02a4\u0001"+
|
|
||||||
"\u0000\u0000\u0000{\u02a8\u0001\u0000\u0000\u0000}\u02ac\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u007f\u02b0\u0001\u0000\u0000\u0000\u0081\u02b7\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u0083\u02bf\u0001\u0000\u0000\u0000\u0085\u02c5\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u0087\u02c7\u0001\u0000\u0000\u0000\u0089\u02e7\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u008b\u02e9\u0001\u0000\u0000\u0000\u008d\u02ec\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u008f\u02ef\u0001\u0000\u0000\u0000\u0091\u02f4\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u0093\u02fa\u0001\u0000\u0000\u0000\u0095\u02fc\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u0097\u02fe\u0001\u0000\u0000\u0000\u0099\u0300\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u009b\u030a\u0001\u0000\u0000\u0000\u009d\u030c\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u009f\u030e\u0001\u0000\u0000\u0000\u00a1\u0315\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u00a3\u031b\u0001\u0000\u0000\u0000\u00a5\u031d\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u00a7\u0354\u0001\u0000\u0000\u0000\u00a9\u0356\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u00ab\u0359\u0001\u0000\u0000\u0000\u00ad\u035b\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u00af\u035d\u0001\u0000\u0000\u0000\u00b1\u0368\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u00b3\u036a\u0001\u0000\u0000\u0000\u00b5\u036f\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u00b7\u0371\u0001\u0000\u0000\u0000\u00b9\u0373\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u00bb\u0375\u0001\u0000\u0000\u0000\u00bd\u0377\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u00bf\u0379\u0001\u0000\u0000\u0000\u00c1\u037b\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u00c3\u037d\u0001\u0000\u0000\u0000\u00c5\u037f\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u00c7\u0384\u0001\u0000\u0000\u0000\u00c9\u0387\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u00cb\u038a\u0001\u0000\u0000\u0000\u00cd\u038d\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u00cf\u0390\u0001\u0000\u0000\u0000\u00d1\u0393\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u00d3\u0396\u0001\u0000\u0000\u0000\u00d5\u0399\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u00d7\u039c\u0001\u0000\u0000\u0000\u00d9\u039f\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u00db\u03a2\u0001\u0000\u0000\u0000\u00dd\u03a6\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u00df\u03a9\u0001\u0000\u0000\u0000\u00e1\u03ac\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u00e3\u03af\u0001\u0000\u0000\u0000\u00e5\u03b2\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u00e7\u03b5\u0001\u0000\u0000\u0000\u00e9\u03b8\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u00eb\u03bb\u0001\u0000\u0000\u0000\u00ed\u03be\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u00ef\u03c2\u0001\u0000\u0000\u0000\u00f1\u03c6\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u00f3\u03c8\u0001\u0000\u0000\u0000\u00f5\u03ca\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u00f7\u03cc\u0001\u0000\u0000\u0000\u00f9\u03ce\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u00fb\u03d0\u0001\u0000\u0000\u0000\u00fd\u03d2\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u00ff\u03d4\u0001\u0000\u0000\u0000\u0101\u03d6\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u0103\u03d8\u0001\u0000\u0000\u0000\u0105\u03da\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u0107\u03dc\u0001\u0000\u0000\u0000\u0109\u03de\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u010b\u03e0\u0001\u0000\u0000\u0000\u010d\u03e2\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u010f\u03e4\u0001\u0000\u0000\u0000\u0111\u03eb\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u0113\u03ed\u0001\u0000\u0000\u0000\u0115\u0117\u0005\r\u0000\u0000"+
|
|
||||||
"\u0116\u0118\u0005\n\u0000\u0000\u0117\u0116\u0001\u0000\u0000\u0000\u0117"+
|
|
||||||
"\u0118\u0001\u0000\u0000\u0000\u0118\u011b\u0001\u0000\u0000\u0000\u0119"+
|
|
||||||
"\u011b\u0005\n\u0000\u0000\u011a\u0115\u0001\u0000\u0000\u0000\u011a\u0119"+
|
|
||||||
"\u0001\u0000\u0000\u0000\u011b\u0002\u0001\u0000\u0000\u0000\u011c\u011f"+
|
|
||||||
"\u0007\u0000\u0000\u0000\u011d\u011f\u0003\u0001\u0000\u0000\u011e\u011c"+
|
|
||||||
"\u0001\u0000\u0000\u0000\u011e\u011d\u0001\u0000\u0000\u0000\u011f\u0120"+
|
|
||||||
"\u0001\u0000\u0000\u0000\u0120\u0121\u0006\u0001\u0000\u0000\u0121\u0004"+
|
|
||||||
"\u0001\u0000\u0000\u0000\u0122\u0123\u0005/\u0000\u0000\u0123\u0124\u0005"+
|
|
||||||
"/\u0000\u0000\u0124\u0128\u0001\u0000\u0000\u0000\u0125\u0127\b\u0001"+
|
|
||||||
"\u0000\u0000\u0126\u0125\u0001\u0000\u0000\u0000\u0127\u012a\u0001\u0000"+
|
|
||||||
"\u0000\u0000\u0128\u0126\u0001\u0000\u0000\u0000\u0128\u0129\u0001\u0000"+
|
|
||||||
"\u0000\u0000\u0129\u012c\u0001\u0000\u0000\u0000\u012a\u0128\u0001\u0000"+
|
|
||||||
"\u0000\u0000\u012b\u012d\u0003\u0001\u0000\u0000\u012c\u012b\u0001\u0000"+
|
|
||||||
"\u0000\u0000\u012c\u012d\u0001\u0000\u0000\u0000\u012d\u0006\u0001\u0000"+
|
|
||||||
"\u0000\u0000\u012e\u0131\u0003\t\u0004\u0000\u012f\u0131\u0003\u0005\u0002"+
|
|
||||||
"\u0000\u0130\u012e\u0001\u0000\u0000\u0000\u0130\u012f\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u0131\u0132\u0001\u0000\u0000\u0000\u0132\u0133\u0006\u0003\u0000"+
|
|
||||||
"\u0000\u0133\b\u0001\u0000\u0000\u0000\u0134\u0135\u0005/\u0000\u0000"+
|
|
||||||
"\u0135\u0136\u0005*\u0000\u0000\u0136\u0137\u0001\u0000\u0000\u0000\u0137"+
|
|
||||||
"\u0138\u0003\u000f\u0007\u0000\u0138\u0139\u0003\u000b\u0005\u0000\u0139"+
|
|
||||||
"\n\u0001\u0000\u0000\u0000\u013a\u013b\u0005*\u0000\u0000\u013b\u013e"+
|
|
||||||
"\u0003\r\u0006\u0000\u013c\u013e\u0003\u000f\u0007\u0000\u013d\u013a\u0001"+
|
|
||||||
"\u0000\u0000\u0000\u013d\u013c\u0001\u0000\u0000\u0000\u013e\f\u0001\u0000"+
|
|
||||||
"\u0000\u0000\u013f\u0146\u0005/\u0000\u0000\u0140\u0141\u0005*\u0000\u0000"+
|
|
||||||
"\u0141\u0146\u0003\r\u0006\u0000\u0142\u0143\u0003\u0011\b\u0000\u0143"+
|
|
||||||
"\u0144\u0003\u000b\u0005\u0000\u0144\u0146\u0001\u0000\u0000\u0000\u0145"+
|
|
||||||
"\u013f\u0001\u0000\u0000\u0000\u0145\u0140\u0001\u0000\u0000\u0000\u0145"+
|
|
||||||
"\u0142\u0001\u0000\u0000\u0000\u0146\u000e\u0001\u0000\u0000\u0000\u0147"+
|
|
||||||
"\u014a\u0007\u0002\u0000\u0000\u0148\u014a\u0003\u0001\u0000\u0000\u0149"+
|
|
||||||
"\u0147\u0001\u0000\u0000\u0000\u0149\u0148\u0001\u0000\u0000\u0000\u014a"+
|
|
||||||
"\u0010\u0001\u0000\u0000\u0000\u014b\u014e\u0007\u0003\u0000\u0000\u014c"+
|
|
||||||
"\u014e\u0003\u0001\u0000\u0000\u014d\u014b\u0001\u0000\u0000\u0000\u014d"+
|
|
||||||
"\u014c\u0001\u0000\u0000\u0000\u014e\u0012\u0001\u0000\u0000\u0000\u014f"+
|
|
||||||
"\u0150\u0005a\u0000\u0000\u0150\u0151\u0005b\u0000\u0000\u0151\u0152\u0005"+
|
|
||||||
"s\u0000\u0000\u0152\u0153\u0005t\u0000\u0000\u0153\u0154\u0005r\u0000"+
|
|
||||||
"\u0000\u0154\u0155\u0005a\u0000\u0000\u0155\u0156\u0005c\u0000\u0000\u0156"+
|
|
||||||
"\u0157\u0005t\u0000\u0000\u0157\u0014\u0001\u0000\u0000\u0000\u0158\u0159"+
|
|
||||||
"\u0005a\u0000\u0000\u0159\u015a\u0005s\u0000\u0000\u015a\u015b\u0005s"+
|
|
||||||
"\u0000\u0000\u015b\u015c\u0005e\u0000\u0000\u015c\u015d\u0005r\u0000\u0000"+
|
|
||||||
"\u015d\u015e\u0005t\u0000\u0000\u015e\u0016\u0001\u0000\u0000\u0000\u015f"+
|
|
||||||
"\u0160\u0005b\u0000\u0000\u0160\u0161\u0005o\u0000\u0000\u0161\u0162\u0005"+
|
|
||||||
"o\u0000\u0000\u0162\u0163\u0005l\u0000\u0000\u0163\u0164\u0005e\u0000"+
|
|
||||||
"\u0000\u0164\u0165\u0005a\u0000\u0000\u0165\u0166\u0005n\u0000\u0000\u0166"+
|
|
||||||
"\u0018\u0001\u0000\u0000\u0000\u0167\u0168\u0005b\u0000\u0000\u0168\u0169"+
|
|
||||||
"\u0005r\u0000\u0000\u0169\u016a\u0005e\u0000\u0000\u016a\u016b\u0005a"+
|
|
||||||
"\u0000\u0000\u016b\u016c\u0005k\u0000\u0000\u016c\u001a\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u016d\u016e\u0005b\u0000\u0000\u016e\u016f\u0005y\u0000\u0000\u016f"+
|
|
||||||
"\u0170\u0005t\u0000\u0000\u0170\u0171\u0005e\u0000\u0000\u0171\u001c\u0001"+
|
|
||||||
"\u0000\u0000\u0000\u0172\u0173\u0005c\u0000\u0000\u0173\u0174\u0005a\u0000"+
|
|
||||||
"\u0000\u0174\u0175\u0005s\u0000\u0000\u0175\u0176\u0005e\u0000\u0000\u0176"+
|
|
||||||
"\u001e\u0001\u0000\u0000\u0000\u0177\u0178\u0005c\u0000\u0000\u0178\u0179"+
|
|
||||||
"\u0005a\u0000\u0000\u0179\u017a\u0005t\u0000\u0000\u017a\u017b\u0005c"+
|
|
||||||
"\u0000\u0000\u017b\u017c\u0005h\u0000\u0000\u017c \u0001\u0000\u0000\u0000"+
|
|
||||||
"\u017d\u017e\u0005c\u0000\u0000\u017e\u017f\u0005h\u0000\u0000\u017f\u0180"+
|
|
||||||
"\u0005a\u0000\u0000\u0180\u0181\u0005r\u0000\u0000\u0181\"\u0001\u0000"+
|
|
||||||
"\u0000\u0000\u0182\u0183\u0005c\u0000\u0000\u0183\u0184\u0005l\u0000\u0000"+
|
|
||||||
"\u0184\u0185\u0005a\u0000\u0000\u0185\u0186\u0005s\u0000\u0000\u0186\u0187"+
|
|
||||||
"\u0005s\u0000\u0000\u0187$\u0001\u0000\u0000\u0000\u0188\u0189\u0005c"+
|
|
||||||
"\u0000\u0000\u0189\u018a\u0005o\u0000\u0000\u018a\u018b\u0005n\u0000\u0000"+
|
|
||||||
"\u018b\u018c\u0005s\u0000\u0000\u018c\u018d\u0005t\u0000\u0000\u018d&"+
|
|
||||||
"\u0001\u0000\u0000\u0000\u018e\u018f\u0005c\u0000\u0000\u018f\u0190\u0005"+
|
|
||||||
"o\u0000\u0000\u0190\u0191\u0005n\u0000\u0000\u0191\u0192\u0005t\u0000"+
|
|
||||||
"\u0000\u0192\u0193\u0005i\u0000\u0000\u0193\u0194\u0005n\u0000\u0000\u0194"+
|
|
||||||
"\u0195\u0005u\u0000\u0000\u0195\u0196\u0005e\u0000\u0000\u0196(\u0001"+
|
|
||||||
"\u0000\u0000\u0000\u0197\u0198\u0005d\u0000\u0000\u0198\u0199\u0005e\u0000"+
|
|
||||||
"\u0000\u0199\u019a\u0005f\u0000\u0000\u019a\u019b\u0005a\u0000\u0000\u019b"+
|
|
||||||
"\u019c\u0005u\u0000\u0000\u019c\u019d\u0005l\u0000\u0000\u019d\u019e\u0005"+
|
|
||||||
"t\u0000\u0000\u019e*\u0001\u0000\u0000\u0000\u019f\u01a0\u0005d\u0000"+
|
|
||||||
"\u0000\u01a0\u01a1\u0005o\u0000\u0000\u01a1,\u0001\u0000\u0000\u0000\u01a2"+
|
|
||||||
"\u01a3\u0005d\u0000\u0000\u01a3\u01a4\u0005o\u0000\u0000\u01a4\u01a5\u0005"+
|
|
||||||
"u\u0000\u0000\u01a5\u01a6\u0005b\u0000\u0000\u01a6\u01a7\u0005l\u0000"+
|
|
||||||
"\u0000\u01a7\u01a8\u0005e\u0000\u0000\u01a8.\u0001\u0000\u0000\u0000\u01a9"+
|
|
||||||
"\u01aa\u0005e\u0000\u0000\u01aa\u01ab\u0005l\u0000\u0000\u01ab\u01ac\u0005"+
|
|
||||||
"s\u0000\u0000\u01ac\u01ad\u0005e\u0000\u0000\u01ad0\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u01ae\u01af\u0005e\u0000\u0000\u01af\u01b0\u0005x\u0000\u0000\u01b0"+
|
|
||||||
"\u01b1\u0005t\u0000\u0000\u01b1\u01b2\u0005e\u0000\u0000\u01b2\u01b3\u0005"+
|
|
||||||
"n\u0000\u0000\u01b3\u01b4\u0005d\u0000\u0000\u01b4\u01b5\u0005s\u0000"+
|
|
||||||
"\u0000\u01b52\u0001\u0000\u0000\u0000\u01b6\u01b7\u0005f\u0000\u0000\u01b7"+
|
|
||||||
"\u01b8\u0005i\u0000\u0000\u01b8\u01b9\u0005n\u0000\u0000\u01b9\u01ba\u0005"+
|
|
||||||
"a\u0000\u0000\u01ba\u01bb\u0005l\u0000\u0000\u01bb4\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u01bc\u01bd\u0005f\u0000\u0000\u01bd\u01be\u0005i\u0000\u0000\u01be"+
|
|
||||||
"\u01bf\u0005n\u0000\u0000\u01bf\u01c0\u0005a\u0000\u0000\u01c0\u01c1\u0005"+
|
|
||||||
"l\u0000\u0000\u01c1\u01c2\u0005l\u0000\u0000\u01c2\u01c3\u0005y\u0000"+
|
|
||||||
"\u0000\u01c36\u0001\u0000\u0000\u0000\u01c4\u01c5\u0005f\u0000\u0000\u01c5"+
|
|
||||||
"\u01c6\u0005l\u0000\u0000\u01c6\u01c7\u0005o\u0000\u0000\u01c7\u01c8\u0005"+
|
|
||||||
"a\u0000\u0000\u01c8\u01c9\u0005t\u0000\u0000\u01c98\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u01ca\u01cb\u0005f\u0000\u0000\u01cb\u01cc\u0005o\u0000\u0000\u01cc"+
|
|
||||||
"\u01cd\u0005r\u0000\u0000\u01cd:\u0001\u0000\u0000\u0000\u01ce\u01cf\u0005"+
|
|
||||||
"g\u0000\u0000\u01cf\u01d0\u0005o\u0000\u0000\u01d0\u01d1\u0005t\u0000"+
|
|
||||||
"\u0000\u01d1\u01d2\u0005o\u0000\u0000\u01d2<\u0001\u0000\u0000\u0000\u01d3"+
|
|
||||||
"\u01d4\u0005i\u0000\u0000\u01d4\u01d5\u0005f\u0000\u0000\u01d5>\u0001"+
|
|
||||||
"\u0000\u0000\u0000\u01d6\u01d7\u0005i\u0000\u0000\u01d7\u01d8\u0005m\u0000"+
|
|
||||||
"\u0000\u01d8\u01d9\u0005p\u0000\u0000\u01d9\u01da\u0005l\u0000\u0000\u01da"+
|
|
||||||
"\u01db\u0005e\u0000\u0000\u01db\u01dc\u0005m\u0000\u0000\u01dc\u01dd\u0005"+
|
|
||||||
"e\u0000\u0000\u01dd\u01de\u0005n\u0000\u0000\u01de\u01df\u0005t\u0000"+
|
|
||||||
"\u0000\u01df\u01e0\u0005s\u0000\u0000\u01e0@\u0001\u0000\u0000\u0000\u01e1"+
|
|
||||||
"\u01e2\u0005i\u0000\u0000\u01e2\u01e3\u0005m\u0000\u0000\u01e3\u01e4\u0005"+
|
|
||||||
"p\u0000\u0000\u01e4\u01e5\u0005o\u0000\u0000\u01e5\u01e6\u0005r\u0000"+
|
|
||||||
"\u0000\u01e6\u01e7\u0005t\u0000\u0000\u01e7B\u0001\u0000\u0000\u0000\u01e8"+
|
|
||||||
"\u01e9\u0005i\u0000\u0000\u01e9\u01ea\u0005n\u0000\u0000\u01ea\u01eb\u0005"+
|
|
||||||
"s\u0000\u0000\u01eb\u01ec\u0005t\u0000\u0000\u01ec\u01ed\u0005a\u0000"+
|
|
||||||
"\u0000\u01ed\u01ee\u0005n\u0000\u0000\u01ee\u01ef\u0005c\u0000\u0000\u01ef"+
|
|
||||||
"\u01f0\u0005e\u0000\u0000\u01f0\u01f1\u0005o\u0000\u0000\u01f1\u01f2\u0005"+
|
|
||||||
"f\u0000\u0000\u01f2D\u0001\u0000\u0000\u0000\u01f3\u01f4\u0005i\u0000"+
|
|
||||||
"\u0000\u01f4\u01f5\u0005n\u0000\u0000\u01f5\u01f6\u0005t\u0000\u0000\u01f6"+
|
|
||||||
"F\u0001\u0000\u0000\u0000\u01f7\u01f8\u0005i\u0000\u0000\u01f8\u01f9\u0005"+
|
|
||||||
"n\u0000\u0000\u01f9\u01fa\u0005t\u0000\u0000\u01fa\u01fb\u0005e\u0000"+
|
|
||||||
"\u0000\u01fb\u01fc\u0005r\u0000\u0000\u01fc\u01fd\u0005f\u0000\u0000\u01fd"+
|
|
||||||
"\u01fe\u0005a\u0000\u0000\u01fe\u01ff\u0005c\u0000\u0000\u01ff\u0200\u0005"+
|
|
||||||
"e\u0000\u0000\u0200H\u0001\u0000\u0000\u0000\u0201\u0202\u0005l\u0000"+
|
|
||||||
"\u0000\u0202\u0203\u0005o\u0000\u0000\u0203\u0204\u0005n\u0000\u0000\u0204"+
|
|
||||||
"\u0205\u0005g\u0000\u0000\u0205J\u0001\u0000\u0000\u0000\u0206\u0207\u0005"+
|
|
||||||
"n\u0000\u0000\u0207\u0208\u0005a\u0000\u0000\u0208\u0209\u0005t\u0000"+
|
|
||||||
"\u0000\u0209\u020a\u0005i\u0000\u0000\u020a\u020b\u0005v\u0000\u0000\u020b"+
|
|
||||||
"\u020c\u0005e\u0000\u0000\u020cL\u0001\u0000\u0000\u0000\u020d\u020e\u0005"+
|
|
||||||
"n\u0000\u0000\u020e\u020f\u0005e\u0000\u0000\u020f\u0210\u0005w\u0000"+
|
|
||||||
"\u0000\u0210N\u0001\u0000\u0000\u0000\u0211\u0212\u0005p\u0000\u0000\u0212"+
|
|
||||||
"\u0213\u0005a\u0000\u0000\u0213\u0214\u0005c\u0000\u0000\u0214\u0215\u0005"+
|
|
||||||
"k\u0000\u0000\u0215\u0216\u0005a\u0000\u0000\u0216\u0217\u0005g\u0000"+
|
|
||||||
"\u0000\u0217\u0218\u0005e\u0000\u0000\u0218P\u0001\u0000\u0000\u0000\u0219"+
|
|
||||||
"\u021a\u0005p\u0000\u0000\u021a\u021b\u0005r\u0000\u0000\u021b\u021c\u0005"+
|
|
||||||
"i\u0000\u0000\u021c\u021d\u0005v\u0000\u0000\u021d\u021e\u0005a\u0000"+
|
|
||||||
"\u0000\u021e\u021f\u0005t\u0000\u0000\u021f\u0220\u0005e\u0000\u0000\u0220"+
|
|
||||||
"R\u0001\u0000\u0000\u0000\u0221\u0222\u0005p\u0000\u0000\u0222\u0223\u0005"+
|
|
||||||
"r\u0000\u0000\u0223\u0224\u0005o\u0000\u0000\u0224\u0225\u0005t\u0000"+
|
|
||||||
"\u0000\u0225\u0226\u0005e\u0000\u0000\u0226\u0227\u0005c\u0000\u0000\u0227"+
|
|
||||||
"\u0228\u0005t\u0000\u0000\u0228\u0229\u0005e\u0000\u0000\u0229\u022a\u0005"+
|
|
||||||
"d\u0000\u0000\u022aT\u0001\u0000\u0000\u0000\u022b\u022c\u0005p\u0000"+
|
|
||||||
"\u0000\u022c\u022d\u0005u\u0000\u0000\u022d\u022e\u0005b\u0000\u0000\u022e"+
|
|
||||||
"\u022f\u0005l\u0000\u0000\u022f\u0230\u0005i\u0000\u0000\u0230\u0231\u0005"+
|
|
||||||
"c\u0000\u0000\u0231V\u0001\u0000\u0000\u0000\u0232\u0233\u0005r\u0000"+
|
|
||||||
"\u0000\u0233\u0234\u0005e\u0000\u0000\u0234\u0235\u0005t\u0000\u0000\u0235"+
|
|
||||||
"\u0236\u0005u\u0000\u0000\u0236\u0237\u0005r\u0000\u0000\u0237\u0238\u0005"+
|
|
||||||
"n\u0000\u0000\u0238X\u0001\u0000\u0000\u0000\u0239\u023a\u0005s\u0000"+
|
|
||||||
"\u0000\u023a\u023b\u0005h\u0000\u0000\u023b\u023c\u0005o\u0000\u0000\u023c"+
|
|
||||||
"\u023d\u0005r\u0000\u0000\u023d\u023e\u0005t\u0000\u0000\u023eZ\u0001"+
|
|
||||||
"\u0000\u0000\u0000\u023f\u0240\u0005s\u0000\u0000\u0240\u0241\u0005t\u0000"+
|
|
||||||
"\u0000\u0241\u0242\u0005a\u0000\u0000\u0242\u0243\u0005t\u0000\u0000\u0243"+
|
|
||||||
"\u0244\u0005i\u0000\u0000\u0244\u0245\u0005c\u0000\u0000\u0245\\\u0001"+
|
|
||||||
"\u0000\u0000\u0000\u0246\u0247\u0005s\u0000\u0000\u0247\u0248\u0005t\u0000"+
|
|
||||||
"\u0000\u0248\u0249\u0005r\u0000\u0000\u0249\u024a\u0005i\u0000\u0000\u024a"+
|
|
||||||
"\u024b\u0005c\u0000\u0000\u024b\u024c\u0005t\u0000\u0000\u024c\u024d\u0005"+
|
|
||||||
"f\u0000\u0000\u024d\u024e\u0005p\u0000\u0000\u024e^\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u024f\u0250\u0005s\u0000\u0000\u0250\u0251\u0005u\u0000\u0000\u0251"+
|
|
||||||
"\u0252\u0005p\u0000\u0000\u0252\u0253\u0005e\u0000\u0000\u0253\u0254\u0005"+
|
|
||||||
"r\u0000\u0000\u0254`\u0001\u0000\u0000\u0000\u0255\u0256\u0005s\u0000"+
|
|
||||||
"\u0000\u0256\u0257\u0005w\u0000\u0000\u0257\u0258\u0005i\u0000\u0000\u0258"+
|
|
||||||
"\u0259\u0005t\u0000\u0000\u0259\u025a\u0005c\u0000\u0000\u025a\u025b\u0005"+
|
|
||||||
"h\u0000\u0000\u025bb\u0001\u0000\u0000\u0000\u025c\u025d\u0005s\u0000"+
|
|
||||||
"\u0000\u025d\u025e\u0005y\u0000\u0000\u025e\u025f\u0005n\u0000\u0000\u025f"+
|
|
||||||
"\u0260\u0005c\u0000\u0000\u0260\u0261\u0005h\u0000\u0000\u0261\u0262\u0005"+
|
|
||||||
"r\u0000\u0000\u0262\u0263\u0005o\u0000\u0000\u0263\u0264\u0005n\u0000"+
|
|
||||||
"\u0000\u0264\u0265\u0005i\u0000\u0000\u0265\u0266\u0005z\u0000\u0000\u0266"+
|
|
||||||
"\u0267\u0005e\u0000\u0000\u0267\u0268\u0005d\u0000\u0000\u0268d\u0001"+
|
|
||||||
"\u0000\u0000\u0000\u0269\u026a\u0005t\u0000\u0000\u026a\u026b\u0005h\u0000"+
|
|
||||||
"\u0000\u026b\u026c\u0005i\u0000\u0000\u026c\u026d\u0005s\u0000\u0000\u026d"+
|
|
||||||
"f\u0001\u0000\u0000\u0000\u026e\u026f\u0005t\u0000\u0000\u026f\u0270\u0005"+
|
|
||||||
"h\u0000\u0000\u0270\u0271\u0005r\u0000\u0000\u0271\u0272\u0005o\u0000"+
|
|
||||||
"\u0000\u0272\u0273\u0005w\u0000\u0000\u0273h\u0001\u0000\u0000\u0000\u0274"+
|
|
||||||
"\u0275\u0005t\u0000\u0000\u0275\u0276\u0005h\u0000\u0000\u0276\u0277\u0005"+
|
|
||||||
"r\u0000\u0000\u0277\u0278\u0005o\u0000\u0000\u0278\u0279\u0005w\u0000"+
|
|
||||||
"\u0000\u0279\u027a\u0005s\u0000\u0000\u027aj\u0001\u0000\u0000\u0000\u027b"+
|
|
||||||
"\u027c\u0005t\u0000\u0000\u027c\u027d\u0005r\u0000\u0000\u027d\u027e\u0005"+
|
|
||||||
"a\u0000\u0000\u027e\u027f\u0005n\u0000\u0000\u027f\u0280\u0005s\u0000"+
|
|
||||||
"\u0000\u0280\u0281\u0005i\u0000\u0000\u0281\u0282\u0005e\u0000\u0000\u0282"+
|
|
||||||
"\u0283\u0005n\u0000\u0000\u0283\u0284\u0005t\u0000\u0000\u0284l\u0001"+
|
|
||||||
"\u0000\u0000\u0000\u0285\u0286\u0005t\u0000\u0000\u0286\u0287\u0005r\u0000"+
|
|
||||||
"\u0000\u0287\u0288\u0005y\u0000\u0000\u0288n\u0001\u0000\u0000\u0000\u0289"+
|
|
||||||
"\u028a\u0005v\u0000\u0000\u028a\u028b\u0005o\u0000\u0000\u028b\u028c\u0005"+
|
|
||||||
"i\u0000\u0000\u028c\u028d\u0005d\u0000\u0000\u028dp\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u028e\u028f\u0005v\u0000\u0000\u028f\u0290\u0005o\u0000\u0000\u0290"+
|
|
||||||
"\u0291\u0005l\u0000\u0000\u0291\u0292\u0005a\u0000\u0000\u0292\u0293\u0005"+
|
|
||||||
"t\u0000\u0000\u0293\u0294\u0005i\u0000\u0000\u0294\u0295\u0005l\u0000"+
|
|
||||||
"\u0000\u0295\u0296\u0005e\u0000\u0000\u0296r\u0001\u0000\u0000\u0000\u0297"+
|
|
||||||
"\u0298\u0005w\u0000\u0000\u0298\u0299\u0005h\u0000\u0000\u0299\u029a\u0005"+
|
|
||||||
"i\u0000\u0000\u029a\u029b\u0005l\u0000\u0000\u029b\u029c\u0005e\u0000"+
|
|
||||||
"\u0000\u029ct\u0001\u0000\u0000\u0000\u029d\u029e\u0005.\u0000\u0000\u029e"+
|
|
||||||
"v\u0001\u0000\u0000\u0000\u029f\u02a3\u0003y<\u0000\u02a0\u02a3\u0003"+
|
|
||||||
"{=\u0000\u02a1\u02a3\u0003}>\u0000\u02a2\u029f\u0001\u0000\u0000\u0000"+
|
|
||||||
"\u02a2\u02a0\u0001\u0000\u0000\u0000\u02a2\u02a1\u0001\u0000\u0000\u0000"+
|
|
||||||
"\u02a3x\u0001\u0000\u0000\u0000\u02a4\u02a6\u0003\u0081@\u0000\u02a5\u02a7"+
|
|
||||||
"\u0003\u007f?\u0000\u02a6\u02a5\u0001\u0000\u0000\u0000\u02a6\u02a7\u0001"+
|
|
||||||
"\u0000\u0000\u0000\u02a7z\u0001\u0000\u0000\u0000\u02a8\u02aa\u0003\u0083"+
|
|
||||||
"A\u0000\u02a9\u02ab\u0003\u007f?\u0000\u02aa\u02a9\u0001\u0000\u0000\u0000"+
|
|
||||||
"\u02aa\u02ab\u0001\u0000\u0000\u0000\u02ab|\u0001\u0000\u0000\u0000\u02ac"+
|
|
||||||
"\u02ae\u0003\u00a9T\u0000\u02ad\u02af\u0003\u007f?\u0000\u02ae\u02ad\u0001"+
|
|
||||||
"\u0000\u0000\u0000\u02ae\u02af\u0001\u0000\u0000\u0000\u02af~\u0001\u0000"+
|
|
||||||
"\u0000\u0000\u02b0\u02b1\u0007\u0004\u0000\u0000\u02b1\u0080\u0001\u0000"+
|
|
||||||
"\u0000\u0000\u02b2\u02b8\u00050\u0000\u0000\u02b3\u02b5\u0003\u0095J\u0000"+
|
|
||||||
"\u02b4\u02b6\u0003\u0091H\u0000\u02b5\u02b4\u0001\u0000\u0000\u0000\u02b5"+
|
|
||||||
"\u02b6\u0001\u0000\u0000\u0000\u02b6\u02b8\u0001\u0000\u0000\u0000\u02b7"+
|
|
||||||
"\u02b2\u0001\u0000\u0000\u0000\u02b7\u02b3\u0001\u0000\u0000\u0000\u02b8"+
|
|
||||||
"\u0082\u0001\u0000\u0000\u0000\u02b9\u02ba\u00050\u0000\u0000\u02ba\u02bb"+
|
|
||||||
"\u0005x\u0000\u0000\u02bb\u02c0\u0003\u0085B\u0000\u02bc\u02bd\u00050"+
|
|
||||||
"\u0000\u0000\u02bd\u02be\u0005X\u0000\u0000\u02be\u02c0\u0003\u0085B\u0000"+
|
|
||||||
"\u02bf\u02b9\u0001\u0000\u0000\u0000\u02bf\u02bc\u0001\u0000\u0000\u0000"+
|
|
||||||
"\u02c0\u0084\u0001\u0000\u0000\u0000\u02c1\u02c6\u0003\u0087C\u0000\u02c2"+
|
|
||||||
"\u02c3\u0003\u0087C\u0000\u02c3\u02c4\u0003\u0085B\u0000\u02c4\u02c6\u0001"+
|
|
||||||
"\u0000\u0000\u0000\u02c5\u02c1\u0001\u0000\u0000\u0000\u02c5\u02c2\u0001"+
|
|
||||||
"\u0000\u0000\u0000\u02c6\u0086\u0001\u0000\u0000\u0000\u02c7\u02c8\u0007"+
|
|
||||||
"\u0005\u0000\u0000\u02c8\u0088\u0001\u0000\u0000\u0000\u02c9\u02ca\u0003"+
|
|
||||||
"\u0091H\u0000\u02ca\u02cc\u0005.\u0000\u0000\u02cb\u02cd\u0003\u0091H"+
|
|
||||||
"\u0000\u02cc\u02cb\u0001\u0000\u0000\u0000\u02cc\u02cd\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u02cd\u02cf\u0001\u0000\u0000\u0000\u02ce\u02d0\u0003\u008bE\u0000"+
|
|
||||||
"\u02cf\u02ce\u0001\u0000\u0000\u0000\u02cf\u02d0\u0001\u0000\u0000\u0000"+
|
|
||||||
"\u02d0\u02d2\u0001\u0000\u0000\u0000\u02d1\u02d3\u0003\u0099L\u0000\u02d2"+
|
|
||||||
"\u02d1\u0001\u0000\u0000\u0000\u02d2\u02d3\u0001\u0000\u0000\u0000\u02d3"+
|
|
||||||
"\u02e8\u0001\u0000\u0000\u0000\u02d4\u02d5\u0005.\u0000\u0000\u02d5\u02d7"+
|
|
||||||
"\u0003\u0091H\u0000\u02d6\u02d8\u0003\u008bE\u0000\u02d7\u02d6\u0001\u0000"+
|
|
||||||
"\u0000\u0000\u02d7\u02d8\u0001\u0000\u0000\u0000\u02d8\u02da\u0001\u0000"+
|
|
||||||
"\u0000\u0000\u02d9\u02db\u0003\u0099L\u0000\u02da\u02d9\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u02da\u02db\u0001\u0000\u0000\u0000\u02db\u02e8\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u02dc\u02dd\u0003\u0091H\u0000\u02dd\u02df\u0003\u008bE\u0000\u02de"+
|
|
||||||
"\u02e0\u0003\u0099L\u0000\u02df\u02de\u0001\u0000\u0000\u0000\u02df\u02e0"+
|
|
||||||
"\u0001\u0000\u0000\u0000\u02e0\u02e8\u0001\u0000\u0000\u0000\u02e1\u02e3"+
|
|
||||||
"\u0003\u0091H\u0000\u02e2\u02e4\u0003\u008bE\u0000\u02e3\u02e2\u0001\u0000"+
|
|
||||||
"\u0000\u0000\u02e3\u02e4\u0001\u0000\u0000\u0000\u02e4\u02e5\u0001\u0000"+
|
|
||||||
"\u0000\u0000\u02e5\u02e6\u0003\u0099L\u0000\u02e6\u02e8\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u02e7\u02c9\u0001\u0000\u0000\u0000\u02e7\u02d4\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u02e7\u02dc\u0001\u0000\u0000\u0000\u02e7\u02e1\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u02e8\u008a\u0001\u0000\u0000\u0000\u02e9\u02ea\u0003\u008dF\u0000"+
|
|
||||||
"\u02ea\u02eb\u0003\u008fG\u0000\u02eb\u008c\u0001\u0000\u0000\u0000\u02ec"+
|
|
||||||
"\u02ed\u0007\u0006\u0000\u0000\u02ed\u008e\u0001\u0000\u0000\u0000\u02ee"+
|
|
||||||
"\u02f0\u0003\u0097K\u0000\u02ef\u02ee\u0001\u0000\u0000\u0000\u02ef\u02f0"+
|
|
||||||
"\u0001\u0000\u0000\u0000\u02f0\u02f1\u0001\u0000\u0000\u0000\u02f1\u02f2"+
|
|
||||||
"\u0003\u0091H\u0000\u02f2\u0090\u0001\u0000\u0000\u0000\u02f3\u02f5\u0003"+
|
|
||||||
"\u0093I\u0000\u02f4\u02f3\u0001\u0000\u0000\u0000\u02f5\u02f6\u0001\u0000"+
|
|
||||||
"\u0000\u0000\u02f6\u02f4\u0001\u0000\u0000\u0000\u02f6\u02f7\u0001\u0000"+
|
|
||||||
"\u0000\u0000\u02f7\u0092\u0001\u0000\u0000\u0000\u02f8\u02fb\u00050\u0000"+
|
|
||||||
"\u0000\u02f9\u02fb\u0003\u0095J\u0000\u02fa\u02f8\u0001\u0000\u0000\u0000"+
|
|
||||||
"\u02fa\u02f9\u0001\u0000\u0000\u0000\u02fb\u0094\u0001\u0000\u0000\u0000"+
|
|
||||||
"\u02fc\u02fd\u0007\u0007\u0000\u0000\u02fd\u0096\u0001\u0000\u0000\u0000"+
|
|
||||||
"\u02fe\u02ff\u0007\b\u0000\u0000\u02ff\u0098\u0001\u0000\u0000\u0000\u0300"+
|
|
||||||
"\u0301\u0007\t\u0000\u0000\u0301\u009a\u0001\u0000\u0000\u0000\u0302\u0303"+
|
|
||||||
"\u0005\'\u0000\u0000\u0303\u0304\u0003\u009dN\u0000\u0304\u0305\u0005"+
|
|
||||||
"\'\u0000\u0000\u0305\u030b\u0001\u0000\u0000\u0000\u0306\u0307\u0005\'"+
|
|
||||||
"\u0000\u0000\u0307\u0308\u0003\u00a5R\u0000\u0308\u0309\u0005\'\u0000"+
|
|
||||||
"\u0000\u0309\u030b\u0001\u0000\u0000\u0000\u030a\u0302\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u030a\u0306\u0001\u0000\u0000\u0000\u030b\u009c\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u030c\u030d\u0007\n\u0000\u0000\u030d\u009e\u0001\u0000\u0000\u0000"+
|
|
||||||
"\u030e\u0310\u0005\"\u0000\u0000\u030f\u0311\u0003\u00a1P\u0000\u0310"+
|
|
||||||
"\u030f\u0001\u0000\u0000\u0000\u0310\u0311\u0001\u0000\u0000\u0000\u0311"+
|
|
||||||
"\u0312\u0001\u0000\u0000\u0000\u0312\u0313\u0005\"\u0000\u0000\u0313\u00a0"+
|
|
||||||
"\u0001\u0000\u0000\u0000\u0314\u0316\u0003\u00a3Q\u0000\u0315\u0314\u0001"+
|
|
||||||
"\u0000\u0000\u0000\u0316\u0317\u0001\u0000\u0000\u0000\u0317\u0315\u0001"+
|
|
||||||
"\u0000\u0000\u0000\u0317\u0318\u0001\u0000\u0000\u0000\u0318\u00a2\u0001"+
|
|
||||||
"\u0000\u0000\u0000\u0319\u031c\u0003\u009dN\u0000\u031a\u031c\u0003\u00a5"+
|
|
||||||
"R\u0000\u031b\u0319\u0001\u0000\u0000\u0000\u031b\u031a\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u031c\u00a4\u0001\u0000\u0000\u0000\u031d\u0347\u0005\\\u0000\u0000"+
|
|
||||||
"\u031e\u031f\u0005u\u0000\u0000\u031f\u0320\u00050\u0000\u0000\u0320\u0321"+
|
|
||||||
"\u00050\u0000\u0000\u0321\u0322\u00050\u0000\u0000\u0322\u0348\u00058"+
|
|
||||||
"\u0000\u0000\u0323\u0324\u0005u\u0000\u0000\u0324\u0325\u00050\u0000\u0000"+
|
|
||||||
"\u0325\u0326\u00050\u0000\u0000\u0326\u0327\u00050\u0000\u0000\u0327\u0348"+
|
|
||||||
"\u00059\u0000\u0000\u0328\u0329\u0005u\u0000\u0000\u0329\u032a\u00050"+
|
|
||||||
"\u0000\u0000\u032a\u032b\u00050\u0000\u0000\u032b\u032c\u00050\u0000\u0000"+
|
|
||||||
"\u032c\u0348\u0005a\u0000\u0000\u032d\u032e\u0005u\u0000\u0000\u032e\u032f"+
|
|
||||||
"\u00050\u0000\u0000\u032f\u0330\u00050\u0000\u0000\u0330\u0331\u00050"+
|
|
||||||
"\u0000\u0000\u0331\u0348\u0005c\u0000\u0000\u0332\u0333\u0005u\u0000\u0000"+
|
|
||||||
"\u0333\u0334\u00050\u0000\u0000\u0334\u0335\u00050\u0000\u0000\u0335\u0336"+
|
|
||||||
"\u00050\u0000\u0000\u0336\u0348\u0005d\u0000\u0000\u0337\u0338\u0005u"+
|
|
||||||
"\u0000\u0000\u0338\u0339\u00050\u0000\u0000\u0339\u033a\u00050\u0000\u0000"+
|
|
||||||
"\u033a\u033b\u00052\u0000\u0000\u033b\u0348\u00052\u0000\u0000\u033c\u033d"+
|
|
||||||
"\u0005u\u0000\u0000\u033d\u033e\u00050\u0000\u0000\u033e\u033f\u00050"+
|
|
||||||
"\u0000\u0000\u033f\u0340\u00052\u0000\u0000\u0340\u0348\u00057\u0000\u0000"+
|
|
||||||
"\u0341\u0342\u0005u\u0000\u0000\u0342\u0343\u00050\u0000\u0000\u0343\u0344"+
|
|
||||||
"\u00050\u0000\u0000\u0344\u0345\u00055\u0000\u0000\u0345\u0348\u0005c"+
|
|
||||||
"\u0000\u0000\u0346\u0348\u0003\u00a7S\u0000\u0347\u031e\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u0347\u0323\u0001\u0000\u0000\u0000\u0347\u0328\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u0347\u032d\u0001\u0000\u0000\u0000\u0347\u0332\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u0347\u0337\u0001\u0000\u0000\u0000\u0347\u033c\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u0347\u0341\u0001\u0000\u0000\u0000\u0347\u0346\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u0348\u00a6\u0001\u0000\u0000\u0000\u0349\u034a\u0005\\\u0000\u0000"+
|
|
||||||
"\u034a\u0355\u0003\u00adV\u0000\u034b\u034c\u0005\\\u0000\u0000\u034c"+
|
|
||||||
"\u034d\u0003\u00adV\u0000\u034d\u034e\u0003\u00adV\u0000\u034e\u0355\u0001"+
|
|
||||||
"\u0000\u0000\u0000\u034f\u0350\u0005\\\u0000\u0000\u0350\u0351\u0003\u00af"+
|
|
||||||
"W\u0000\u0351\u0352\u0003\u00adV\u0000\u0352\u0353\u0003\u00adV\u0000"+
|
|
||||||
"\u0353\u0355\u0001\u0000\u0000\u0000\u0354\u0349\u0001\u0000\u0000\u0000"+
|
|
||||||
"\u0354\u034b\u0001\u0000\u0000\u0000\u0354\u034f\u0001\u0000\u0000\u0000"+
|
|
||||||
"\u0355\u00a8\u0001\u0000\u0000\u0000\u0356\u0357\u00050\u0000\u0000\u0357"+
|
|
||||||
"\u0358\u0003\u00abU\u0000\u0358\u00aa\u0001\u0000\u0000\u0000\u0359\u035a"+
|
|
||||||
"\u0003\u00adV\u0000\u035a\u00ac\u0001\u0000\u0000\u0000\u035b\u035c\u0007"+
|
|
||||||
"\u000b\u0000\u0000\u035c\u00ae\u0001\u0000\u0000\u0000\u035d\u035e\u0007"+
|
|
||||||
"\f\u0000\u0000\u035e\u00b0\u0001\u0000\u0000\u0000\u035f\u0360\u0005t"+
|
|
||||||
"\u0000\u0000\u0360\u0361\u0005r\u0000\u0000\u0361\u0362\u0005u\u0000\u0000"+
|
|
||||||
"\u0362\u0369\u0005e\u0000\u0000\u0363\u0364\u0005f\u0000\u0000\u0364\u0365"+
|
|
||||||
"\u0005a\u0000\u0000\u0365\u0366\u0005l\u0000\u0000\u0366\u0367\u0005s"+
|
|
||||||
"\u0000\u0000\u0367\u0369\u0005e\u0000\u0000\u0368\u035f\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u0368\u0363\u0001\u0000\u0000\u0000\u0369\u00b2\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u036a\u036b\u0005n\u0000\u0000\u036b\u036c\u0005u\u0000\u0000\u036c"+
|
|
||||||
"\u036d\u0005l\u0000\u0000\u036d\u036e\u0005l\u0000\u0000\u036e\u00b4\u0001"+
|
|
||||||
"\u0000\u0000\u0000\u036f\u0370\u0005(\u0000\u0000\u0370\u00b6\u0001\u0000"+
|
|
||||||
"\u0000\u0000\u0371\u0372\u0005)\u0000\u0000\u0372\u00b8\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u0373\u0374\u0005{\u0000\u0000\u0374\u00ba\u0001\u0000\u0000\u0000"+
|
|
||||||
"\u0375\u0376\u0005}\u0000\u0000\u0376\u00bc\u0001\u0000\u0000\u0000\u0377"+
|
|
||||||
"\u0378\u0005[\u0000\u0000\u0378\u00be\u0001\u0000\u0000\u0000\u0379\u037a"+
|
|
||||||
"\u0005]\u0000\u0000\u037a\u00c0\u0001\u0000\u0000\u0000\u037b\u037c\u0005"+
|
|
||||||
";\u0000\u0000\u037c\u00c2\u0001\u0000\u0000\u0000\u037d\u037e\u0005,\u0000"+
|
|
||||||
"\u0000\u037e\u00c4\u0001\u0000\u0000\u0000\u037f\u0380\u0005>\u0000\u0000"+
|
|
||||||
"\u0380\u0381\u0005>\u0000\u0000\u0381\u0382\u0005>\u0000\u0000\u0382\u0383"+
|
|
||||||
"\u0005=\u0000\u0000\u0383\u00c6\u0001\u0000\u0000\u0000\u0384\u0385\u0005"+
|
|
||||||
"=\u0000\u0000\u0385\u0386\u0005=\u0000\u0000\u0386\u00c8\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u0387\u0388\u0005!\u0000\u0000\u0388\u0389\u0005=\u0000\u0000\u0389"+
|
|
||||||
"\u00ca\u0001\u0000\u0000\u0000\u038a\u038b\u0005<\u0000\u0000\u038b\u038c"+
|
|
||||||
"\u0005=\u0000\u0000\u038c\u00cc\u0001\u0000\u0000\u0000\u038d\u038e\u0005"+
|
|
||||||
">\u0000\u0000\u038e\u038f\u0005=\u0000\u0000\u038f\u00ce\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u0390\u0391\u0005&\u0000\u0000\u0391\u0392\u0005&\u0000\u0000\u0392"+
|
|
||||||
"\u00d0\u0001\u0000\u0000\u0000\u0393\u0394\u0005|\u0000\u0000\u0394\u0395"+
|
|
||||||
"\u0005|\u0000\u0000\u0395\u00d2\u0001\u0000\u0000\u0000\u0396\u0397\u0005"+
|
|
||||||
"+\u0000\u0000\u0397\u0398\u0005+\u0000\u0000\u0398\u00d4\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u0399\u039a\u0005-\u0000\u0000\u039a\u039b\u0005-\u0000\u0000\u039b"+
|
|
||||||
"\u00d6\u0001\u0000\u0000\u0000\u039c\u039d\u0005<\u0000\u0000\u039d\u039e"+
|
|
||||||
"\u0005<\u0000\u0000\u039e\u00d8\u0001\u0000\u0000\u0000\u039f\u03a0\u0005"+
|
|
||||||
">\u0000\u0000\u03a0\u03a1\u0005>\u0000\u0000\u03a1\u00da\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u03a2\u03a3\u0005>\u0000\u0000\u03a3\u03a4\u0005>\u0000\u0000\u03a4"+
|
|
||||||
"\u03a5\u0005>\u0000\u0000\u03a5\u00dc\u0001\u0000\u0000\u0000\u03a6\u03a7"+
|
|
||||||
"\u0005+\u0000\u0000\u03a7\u03a8\u0005=\u0000\u0000\u03a8\u00de\u0001\u0000"+
|
|
||||||
"\u0000\u0000\u03a9\u03aa\u0005-\u0000\u0000\u03aa\u03ab\u0005=\u0000\u0000"+
|
|
||||||
"\u03ab\u00e0\u0001\u0000\u0000\u0000\u03ac\u03ad\u0005*\u0000\u0000\u03ad"+
|
|
||||||
"\u03ae\u0005=\u0000\u0000\u03ae\u00e2\u0001\u0000\u0000\u0000\u03af\u03b0"+
|
|
||||||
"\u0005/\u0000\u0000\u03b0\u03b1\u0005=\u0000\u0000\u03b1\u00e4\u0001\u0000"+
|
|
||||||
"\u0000\u0000\u03b2\u03b3\u0005&\u0000\u0000\u03b3\u03b4\u0005=\u0000\u0000"+
|
|
||||||
"\u03b4\u00e6\u0001\u0000\u0000\u0000\u03b5\u03b6\u0005|\u0000\u0000\u03b6"+
|
|
||||||
"\u03b7\u0005=\u0000\u0000\u03b7\u00e8\u0001\u0000\u0000\u0000\u03b8\u03b9"+
|
|
||||||
"\u0005^\u0000\u0000\u03b9\u03ba\u0005=\u0000\u0000\u03ba\u00ea\u0001\u0000"+
|
|
||||||
"\u0000\u0000\u03bb\u03bc\u0005%\u0000\u0000\u03bc\u03bd\u0005=\u0000\u0000"+
|
|
||||||
"\u03bd\u00ec\u0001\u0000\u0000\u0000\u03be\u03bf\u0005<\u0000\u0000\u03bf"+
|
|
||||||
"\u03c0\u0005<\u0000\u0000\u03c0\u03c1\u0005=\u0000\u0000\u03c1\u00ee\u0001"+
|
|
||||||
"\u0000\u0000\u0000\u03c2\u03c3\u0005>\u0000\u0000\u03c3\u03c4\u0005>\u0000"+
|
|
||||||
"\u0000\u03c4\u03c5\u0005=\u0000\u0000\u03c5\u00f0\u0001\u0000\u0000\u0000"+
|
|
||||||
"\u03c6\u03c7\u0005=\u0000\u0000\u03c7\u00f2\u0001\u0000\u0000\u0000\u03c8"+
|
|
||||||
"\u03c9\u0005~\u0000\u0000\u03c9\u00f4\u0001\u0000\u0000\u0000\u03ca\u03cb"+
|
|
||||||
"\u0005<\u0000\u0000\u03cb\u00f6\u0001\u0000\u0000\u0000\u03cc\u03cd\u0005"+
|
|
||||||
">\u0000\u0000\u03cd\u00f8\u0001\u0000\u0000\u0000\u03ce\u03cf\u0005!\u0000"+
|
|
||||||
"\u0000\u03cf\u00fa\u0001\u0000\u0000\u0000\u03d0\u03d1\u0005?\u0000\u0000"+
|
|
||||||
"\u03d1\u00fc\u0001\u0000\u0000\u0000\u03d2\u03d3\u0005:\u0000\u0000\u03d3"+
|
|
||||||
"\u00fe\u0001\u0000\u0000\u0000\u03d4\u03d5\u0005+\u0000\u0000\u03d5\u0100"+
|
|
||||||
"\u0001\u0000\u0000\u0000\u03d6\u03d7\u0005-\u0000\u0000\u03d7\u0102\u0001"+
|
|
||||||
"\u0000\u0000\u0000\u03d8\u03d9\u0005*\u0000\u0000\u03d9\u0104\u0001\u0000"+
|
|
||||||
"\u0000\u0000\u03da\u03db\u0005/\u0000\u0000\u03db\u0106\u0001\u0000\u0000"+
|
|
||||||
"\u0000\u03dc\u03dd\u0005&\u0000\u0000\u03dd\u0108\u0001\u0000\u0000\u0000"+
|
|
||||||
"\u03de\u03df\u0005|\u0000\u0000\u03df\u010a\u0001\u0000\u0000\u0000\u03e0"+
|
|
||||||
"\u03e1\u0005^\u0000\u0000\u03e1\u010c\u0001\u0000\u0000\u0000\u03e2\u03e3"+
|
|
||||||
"\u0005%\u0000\u0000\u03e3\u010e\u0001\u0000\u0000\u0000\u03e4\u03e8\u0003"+
|
|
||||||
"\u0111\u0088\u0000\u03e5\u03e7\u0003\u0113\u0089\u0000\u03e6\u03e5\u0001"+
|
|
||||||
"\u0000\u0000\u0000\u03e7\u03ea\u0001\u0000\u0000\u0000\u03e8\u03e6\u0001"+
|
|
||||||
"\u0000\u0000\u0000\u03e8\u03e9\u0001\u0000\u0000\u0000\u03e9\u0110\u0001"+
|
|
||||||
"\u0000\u0000\u0000\u03ea\u03e8\u0001\u0000\u0000\u0000\u03eb\u03ec\u0007"+
|
|
||||||
"\r\u0000\u0000\u03ec\u0112\u0001\u0000\u0000\u0000\u03ed\u03ee\u0007\u000e"+
|
|
||||||
"\u0000\u0000\u03ee\u0114\u0001\u0000\u0000\u0000&\u0000\u0117\u011a\u011e"+
|
|
||||||
"\u0128\u012c\u0130\u013d\u0145\u0149\u014d\u02a2\u02a6\u02aa\u02ae\u02b5"+
|
|
||||||
"\u02b7\u02bf\u02c5\u02cc\u02cf\u02d2\u02d7\u02da\u02df\u02e3\u02e7\u02ef"+
|
|
||||||
"\u02f6\u02fa\u030a\u0310\u0317\u031b\u0347\u0354\u0368\u03e8\u0001\u0006"+
|
|
||||||
"\u0000\u0000";
|
|
||||||
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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,200 +0,0 @@
|
|||||||
WhiteSpace=1
|
|
||||||
Comment=2
|
|
||||||
Abstract=3
|
|
||||||
Assert=4
|
|
||||||
Boolean=5
|
|
||||||
Break=6
|
|
||||||
Byte=7
|
|
||||||
Case=8
|
|
||||||
Catch=9
|
|
||||||
Char=10
|
|
||||||
Class=11
|
|
||||||
Const=12
|
|
||||||
Continue=13
|
|
||||||
Default=14
|
|
||||||
Do=15
|
|
||||||
Double=16
|
|
||||||
Else=17
|
|
||||||
Extends=18
|
|
||||||
Final=19
|
|
||||||
Finally=20
|
|
||||||
Float=21
|
|
||||||
For=22
|
|
||||||
Goto=23
|
|
||||||
If=24
|
|
||||||
Implements=25
|
|
||||||
Import=26
|
|
||||||
InstanceOf=27
|
|
||||||
Int=28
|
|
||||||
Interface=29
|
|
||||||
Long=30
|
|
||||||
Native=31
|
|
||||||
New=32
|
|
||||||
Package=33
|
|
||||||
Private=34
|
|
||||||
Protected=35
|
|
||||||
Public=36
|
|
||||||
Return=37
|
|
||||||
Short=38
|
|
||||||
Static=39
|
|
||||||
Strictfp=40
|
|
||||||
Super=41
|
|
||||||
Switch=42
|
|
||||||
Synchronized=43
|
|
||||||
This=44
|
|
||||||
Throw=45
|
|
||||||
Throws=46
|
|
||||||
Transient=47
|
|
||||||
Try=48
|
|
||||||
Void=49
|
|
||||||
Volatile=50
|
|
||||||
While=51
|
|
||||||
Dot=52
|
|
||||||
IntegerLiteral=53
|
|
||||||
FloatingPointLiteral=54
|
|
||||||
CharacterLiteral=55
|
|
||||||
StringLiteral=56
|
|
||||||
BooleanLiteral=57
|
|
||||||
NullLiteral=58
|
|
||||||
ParenthesesLeft=59
|
|
||||||
ParenthesesRight=60
|
|
||||||
CurlyBracketLeft=61
|
|
||||||
CurlyBracketRight=62
|
|
||||||
SquareBracketLeft=63
|
|
||||||
SquareBracketRight=64
|
|
||||||
Semicolon=65
|
|
||||||
Comma=66
|
|
||||||
UnsignedRightShiftAssign=67
|
|
||||||
EqualTo=68
|
|
||||||
NotEqualTo=69
|
|
||||||
LessThanEqualTo=70
|
|
||||||
GreaterThanEqualTo=71
|
|
||||||
ConditionalAND=72
|
|
||||||
ConditionalOR=73
|
|
||||||
Increment=74
|
|
||||||
Decrement=75
|
|
||||||
LeftShift=76
|
|
||||||
SignedRightShift=77
|
|
||||||
UnsignedRightShift=78
|
|
||||||
AddAssign=79
|
|
||||||
SubtractAssign=80
|
|
||||||
MultiplyAssign=81
|
|
||||||
DivideAssign=82
|
|
||||||
BitwiseANDAssign=83
|
|
||||||
BitwiseORAssign=84
|
|
||||||
BitwiseXORAssign=85
|
|
||||||
RemainderAssign=86
|
|
||||||
LeftShiftAssign=87
|
|
||||||
SignedRightShiftAssign=88
|
|
||||||
Assignment=89
|
|
||||||
BitwiseComplement=90
|
|
||||||
LessThan=91
|
|
||||||
GreaterThan=92
|
|
||||||
LogicalComplement=93
|
|
||||||
Question=94
|
|
||||||
Colon=95
|
|
||||||
Addition=96
|
|
||||||
Subtraction=97
|
|
||||||
Multiplication=98
|
|
||||||
Division=99
|
|
||||||
BitwiseAND=100
|
|
||||||
BitwiseOR=101
|
|
||||||
BitwiseXOR=102
|
|
||||||
Remainder=103
|
|
||||||
IDENTIFIER=104
|
|
||||||
'abstract'=3
|
|
||||||
'assert'=4
|
|
||||||
'boolean'=5
|
|
||||||
'break'=6
|
|
||||||
'byte'=7
|
|
||||||
'case'=8
|
|
||||||
'catch'=9
|
|
||||||
'char'=10
|
|
||||||
'class'=11
|
|
||||||
'const'=12
|
|
||||||
'continue'=13
|
|
||||||
'default'=14
|
|
||||||
'do'=15
|
|
||||||
'double'=16
|
|
||||||
'else'=17
|
|
||||||
'extends'=18
|
|
||||||
'final'=19
|
|
||||||
'finally'=20
|
|
||||||
'float'=21
|
|
||||||
'for'=22
|
|
||||||
'goto'=23
|
|
||||||
'if'=24
|
|
||||||
'implements'=25
|
|
||||||
'import'=26
|
|
||||||
'instanceof'=27
|
|
||||||
'int'=28
|
|
||||||
'interface'=29
|
|
||||||
'long'=30
|
|
||||||
'native'=31
|
|
||||||
'new'=32
|
|
||||||
'package'=33
|
|
||||||
'private'=34
|
|
||||||
'protected'=35
|
|
||||||
'public'=36
|
|
||||||
'return'=37
|
|
||||||
'short'=38
|
|
||||||
'static'=39
|
|
||||||
'strictfp'=40
|
|
||||||
'super'=41
|
|
||||||
'switch'=42
|
|
||||||
'synchronized'=43
|
|
||||||
'this'=44
|
|
||||||
'throw'=45
|
|
||||||
'throws'=46
|
|
||||||
'transient'=47
|
|
||||||
'try'=48
|
|
||||||
'void'=49
|
|
||||||
'volatile'=50
|
|
||||||
'while'=51
|
|
||||||
'.'=52
|
|
||||||
'null'=58
|
|
||||||
'('=59
|
|
||||||
')'=60
|
|
||||||
'{'=61
|
|
||||||
'}'=62
|
|
||||||
'['=63
|
|
||||||
']'=64
|
|
||||||
';'=65
|
|
||||||
','=66
|
|
||||||
'>>>='=67
|
|
||||||
'=='=68
|
|
||||||
'!='=69
|
|
||||||
'<='=70
|
|
||||||
'>='=71
|
|
||||||
'&&'=72
|
|
||||||
'||'=73
|
|
||||||
'++'=74
|
|
||||||
'--'=75
|
|
||||||
'<<'=76
|
|
||||||
'>>'=77
|
|
||||||
'>>>'=78
|
|
||||||
'+='=79
|
|
||||||
'-='=80
|
|
||||||
'*='=81
|
|
||||||
'/='=82
|
|
||||||
'&='=83
|
|
||||||
'|='=84
|
|
||||||
'^='=85
|
|
||||||
'%='=86
|
|
||||||
'<<='=87
|
|
||||||
'>>='=88
|
|
||||||
'='=89
|
|
||||||
'~'=90
|
|
||||||
'<'=91
|
|
||||||
'>'=92
|
|
||||||
'!'=93
|
|
||||||
'?'=94
|
|
||||||
':'=95
|
|
||||||
'+'=96
|
|
||||||
'-'=97
|
|
||||||
'*'=98
|
|
||||||
'/'=99
|
|
||||||
'&'=100
|
|
||||||
'|'=101
|
|
||||||
'^'=102
|
|
||||||
'%'=103
|
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
@@ -1,200 +0,0 @@
|
|||||||
WhiteSpace=1
|
|
||||||
Comment=2
|
|
||||||
Abstract=3
|
|
||||||
Assert=4
|
|
||||||
Boolean=5
|
|
||||||
Break=6
|
|
||||||
Byte=7
|
|
||||||
Case=8
|
|
||||||
Catch=9
|
|
||||||
Char=10
|
|
||||||
Class=11
|
|
||||||
Const=12
|
|
||||||
Continue=13
|
|
||||||
Default=14
|
|
||||||
Do=15
|
|
||||||
Double=16
|
|
||||||
Else=17
|
|
||||||
Extends=18
|
|
||||||
Final=19
|
|
||||||
Finally=20
|
|
||||||
Float=21
|
|
||||||
For=22
|
|
||||||
Goto=23
|
|
||||||
If=24
|
|
||||||
Implements=25
|
|
||||||
Import=26
|
|
||||||
InstanceOf=27
|
|
||||||
Int=28
|
|
||||||
Interface=29
|
|
||||||
Long=30
|
|
||||||
Native=31
|
|
||||||
New=32
|
|
||||||
Package=33
|
|
||||||
Private=34
|
|
||||||
Protected=35
|
|
||||||
Public=36
|
|
||||||
Return=37
|
|
||||||
Short=38
|
|
||||||
Static=39
|
|
||||||
Strictfp=40
|
|
||||||
Super=41
|
|
||||||
Switch=42
|
|
||||||
Synchronized=43
|
|
||||||
This=44
|
|
||||||
Throw=45
|
|
||||||
Throws=46
|
|
||||||
Transient=47
|
|
||||||
Try=48
|
|
||||||
Void=49
|
|
||||||
Volatile=50
|
|
||||||
While=51
|
|
||||||
Dot=52
|
|
||||||
IntegerLiteral=53
|
|
||||||
FloatingPointLiteral=54
|
|
||||||
CharacterLiteral=55
|
|
||||||
StringLiteral=56
|
|
||||||
BooleanLiteral=57
|
|
||||||
NullLiteral=58
|
|
||||||
ParenthesesLeft=59
|
|
||||||
ParenthesesRight=60
|
|
||||||
CurlyBracketLeft=61
|
|
||||||
CurlyBracketRight=62
|
|
||||||
SquareBracketLeft=63
|
|
||||||
SquareBracketRight=64
|
|
||||||
Semicolon=65
|
|
||||||
Comma=66
|
|
||||||
UnsignedRightShiftAssign=67
|
|
||||||
EqualTo=68
|
|
||||||
NotEqualTo=69
|
|
||||||
LessThanEqualTo=70
|
|
||||||
GreaterThanEqualTo=71
|
|
||||||
ConditionalAND=72
|
|
||||||
ConditionalOR=73
|
|
||||||
Increment=74
|
|
||||||
Decrement=75
|
|
||||||
LeftShift=76
|
|
||||||
SignedRightShift=77
|
|
||||||
UnsignedRightShift=78
|
|
||||||
AddAssign=79
|
|
||||||
SubtractAssign=80
|
|
||||||
MultiplyAssign=81
|
|
||||||
DivideAssign=82
|
|
||||||
BitwiseANDAssign=83
|
|
||||||
BitwiseORAssign=84
|
|
||||||
BitwiseXORAssign=85
|
|
||||||
RemainderAssign=86
|
|
||||||
LeftShiftAssign=87
|
|
||||||
SignedRightShiftAssign=88
|
|
||||||
Assignment=89
|
|
||||||
BitwiseComplement=90
|
|
||||||
LessThan=91
|
|
||||||
GreaterThan=92
|
|
||||||
LogicalComplement=93
|
|
||||||
Question=94
|
|
||||||
Colon=95
|
|
||||||
Addition=96
|
|
||||||
Subtraction=97
|
|
||||||
Multiplication=98
|
|
||||||
Division=99
|
|
||||||
BitwiseAND=100
|
|
||||||
BitwiseOR=101
|
|
||||||
BitwiseXOR=102
|
|
||||||
Remainder=103
|
|
||||||
IDENTIFIER=104
|
|
||||||
'abstract'=3
|
|
||||||
'assert'=4
|
|
||||||
'boolean'=5
|
|
||||||
'break'=6
|
|
||||||
'byte'=7
|
|
||||||
'case'=8
|
|
||||||
'catch'=9
|
|
||||||
'char'=10
|
|
||||||
'class'=11
|
|
||||||
'const'=12
|
|
||||||
'continue'=13
|
|
||||||
'default'=14
|
|
||||||
'do'=15
|
|
||||||
'double'=16
|
|
||||||
'else'=17
|
|
||||||
'extends'=18
|
|
||||||
'final'=19
|
|
||||||
'finally'=20
|
|
||||||
'float'=21
|
|
||||||
'for'=22
|
|
||||||
'goto'=23
|
|
||||||
'if'=24
|
|
||||||
'implements'=25
|
|
||||||
'import'=26
|
|
||||||
'instanceof'=27
|
|
||||||
'int'=28
|
|
||||||
'interface'=29
|
|
||||||
'long'=30
|
|
||||||
'native'=31
|
|
||||||
'new'=32
|
|
||||||
'package'=33
|
|
||||||
'private'=34
|
|
||||||
'protected'=35
|
|
||||||
'public'=36
|
|
||||||
'return'=37
|
|
||||||
'short'=38
|
|
||||||
'static'=39
|
|
||||||
'strictfp'=40
|
|
||||||
'super'=41
|
|
||||||
'switch'=42
|
|
||||||
'synchronized'=43
|
|
||||||
'this'=44
|
|
||||||
'throw'=45
|
|
||||||
'throws'=46
|
|
||||||
'transient'=47
|
|
||||||
'try'=48
|
|
||||||
'void'=49
|
|
||||||
'volatile'=50
|
|
||||||
'while'=51
|
|
||||||
'.'=52
|
|
||||||
'null'=58
|
|
||||||
'('=59
|
|
||||||
')'=60
|
|
||||||
'{'=61
|
|
||||||
'}'=62
|
|
||||||
'['=63
|
|
||||||
']'=64
|
|
||||||
';'=65
|
|
||||||
','=66
|
|
||||||
'>>>='=67
|
|
||||||
'=='=68
|
|
||||||
'!='=69
|
|
||||||
'<='=70
|
|
||||||
'>='=71
|
|
||||||
'&&'=72
|
|
||||||
'||'=73
|
|
||||||
'++'=74
|
|
||||||
'--'=75
|
|
||||||
'<<'=76
|
|
||||||
'>>'=77
|
|
||||||
'>>>'=78
|
|
||||||
'+='=79
|
|
||||||
'-='=80
|
|
||||||
'*='=81
|
|
||||||
'/='=82
|
|
||||||
'&='=83
|
|
||||||
'|='=84
|
|
||||||
'^='=85
|
|
||||||
'%='=86
|
|
||||||
'<<='=87
|
|
||||||
'>>='=88
|
|
||||||
'='=89
|
|
||||||
'~'=90
|
|
||||||
'<'=91
|
|
||||||
'>'=92
|
|
||||||
'!'=93
|
|
||||||
'?'=94
|
|
||||||
':'=95
|
|
||||||
'+'=96
|
|
||||||
'-'=97
|
|
||||||
'*'=98
|
|
||||||
'/'=99
|
|
||||||
'&'=100
|
|
||||||
'|'=101
|
|
||||||
'^'=102
|
|
||||||
'%'=103
|
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
@@ -1,200 +0,0 @@
|
|||||||
WhiteSpace=1
|
|
||||||
Comment=2
|
|
||||||
Abstract=3
|
|
||||||
Assert=4
|
|
||||||
Boolean=5
|
|
||||||
Break=6
|
|
||||||
Byte=7
|
|
||||||
Case=8
|
|
||||||
Catch=9
|
|
||||||
Char=10
|
|
||||||
Class=11
|
|
||||||
Const=12
|
|
||||||
Continue=13
|
|
||||||
Default=14
|
|
||||||
Do=15
|
|
||||||
Double=16
|
|
||||||
Else=17
|
|
||||||
Extends=18
|
|
||||||
Final=19
|
|
||||||
Finally=20
|
|
||||||
Float=21
|
|
||||||
For=22
|
|
||||||
Goto=23
|
|
||||||
If=24
|
|
||||||
Implements=25
|
|
||||||
Import=26
|
|
||||||
InstanceOf=27
|
|
||||||
Int=28
|
|
||||||
Interface=29
|
|
||||||
Long=30
|
|
||||||
Native=31
|
|
||||||
New=32
|
|
||||||
Package=33
|
|
||||||
Private=34
|
|
||||||
Protected=35
|
|
||||||
Public=36
|
|
||||||
Return=37
|
|
||||||
Short=38
|
|
||||||
Static=39
|
|
||||||
Strictfp=40
|
|
||||||
Super=41
|
|
||||||
Switch=42
|
|
||||||
Synchronized=43
|
|
||||||
This=44
|
|
||||||
Throw=45
|
|
||||||
Throws=46
|
|
||||||
Transient=47
|
|
||||||
Try=48
|
|
||||||
Void=49
|
|
||||||
Volatile=50
|
|
||||||
While=51
|
|
||||||
Dot=52
|
|
||||||
IntegerLiteral=53
|
|
||||||
FloatingPointLiteral=54
|
|
||||||
CharacterLiteral=55
|
|
||||||
StringLiteral=56
|
|
||||||
BooleanLiteral=57
|
|
||||||
NullLiteral=58
|
|
||||||
ParenthesesLeft=59
|
|
||||||
ParenthesesRight=60
|
|
||||||
CurlyBracketLeft=61
|
|
||||||
CurlyBracketRight=62
|
|
||||||
SquareBracketLeft=63
|
|
||||||
SquareBracketRight=64
|
|
||||||
Semicolon=65
|
|
||||||
Comma=66
|
|
||||||
UnsignedRightShiftAssign=67
|
|
||||||
EqualTo=68
|
|
||||||
NotEqualTo=69
|
|
||||||
LessThanEqualTo=70
|
|
||||||
GreaterThanEqualTo=71
|
|
||||||
ConditionalAND=72
|
|
||||||
ConditionalOR=73
|
|
||||||
Increment=74
|
|
||||||
Decrement=75
|
|
||||||
LeftShift=76
|
|
||||||
SignedRightShift=77
|
|
||||||
UnsignedRightShift=78
|
|
||||||
AddAssign=79
|
|
||||||
SubtractAssign=80
|
|
||||||
MultiplyAssign=81
|
|
||||||
DivideAssign=82
|
|
||||||
BitwiseANDAssign=83
|
|
||||||
BitwiseORAssign=84
|
|
||||||
BitwiseXORAssign=85
|
|
||||||
RemainderAssign=86
|
|
||||||
LeftShiftAssign=87
|
|
||||||
SignedRightShiftAssign=88
|
|
||||||
Assignment=89
|
|
||||||
BitwiseComplement=90
|
|
||||||
LessThan=91
|
|
||||||
GreaterThan=92
|
|
||||||
LogicalComplement=93
|
|
||||||
Question=94
|
|
||||||
Colon=95
|
|
||||||
Addition=96
|
|
||||||
Subtraction=97
|
|
||||||
Multiplication=98
|
|
||||||
Division=99
|
|
||||||
BitwiseAND=100
|
|
||||||
BitwiseOR=101
|
|
||||||
BitwiseXOR=102
|
|
||||||
Remainder=103
|
|
||||||
IDENTIFIER=104
|
|
||||||
'abstract'=3
|
|
||||||
'assert'=4
|
|
||||||
'boolean'=5
|
|
||||||
'break'=6
|
|
||||||
'byte'=7
|
|
||||||
'case'=8
|
|
||||||
'catch'=9
|
|
||||||
'char'=10
|
|
||||||
'class'=11
|
|
||||||
'const'=12
|
|
||||||
'continue'=13
|
|
||||||
'default'=14
|
|
||||||
'do'=15
|
|
||||||
'double'=16
|
|
||||||
'else'=17
|
|
||||||
'extends'=18
|
|
||||||
'final'=19
|
|
||||||
'finally'=20
|
|
||||||
'float'=21
|
|
||||||
'for'=22
|
|
||||||
'goto'=23
|
|
||||||
'if'=24
|
|
||||||
'implements'=25
|
|
||||||
'import'=26
|
|
||||||
'instanceof'=27
|
|
||||||
'int'=28
|
|
||||||
'interface'=29
|
|
||||||
'long'=30
|
|
||||||
'native'=31
|
|
||||||
'new'=32
|
|
||||||
'package'=33
|
|
||||||
'private'=34
|
|
||||||
'protected'=35
|
|
||||||
'public'=36
|
|
||||||
'return'=37
|
|
||||||
'short'=38
|
|
||||||
'static'=39
|
|
||||||
'strictfp'=40
|
|
||||||
'super'=41
|
|
||||||
'switch'=42
|
|
||||||
'synchronized'=43
|
|
||||||
'this'=44
|
|
||||||
'throw'=45
|
|
||||||
'throws'=46
|
|
||||||
'transient'=47
|
|
||||||
'try'=48
|
|
||||||
'void'=49
|
|
||||||
'volatile'=50
|
|
||||||
'while'=51
|
|
||||||
'.'=52
|
|
||||||
'null'=58
|
|
||||||
'('=59
|
|
||||||
')'=60
|
|
||||||
'{'=61
|
|
||||||
'}'=62
|
|
||||||
'['=63
|
|
||||||
']'=64
|
|
||||||
';'=65
|
|
||||||
','=66
|
|
||||||
'>>>='=67
|
|
||||||
'=='=68
|
|
||||||
'!='=69
|
|
||||||
'<='=70
|
|
||||||
'>='=71
|
|
||||||
'&&'=72
|
|
||||||
'||'=73
|
|
||||||
'++'=74
|
|
||||||
'--'=75
|
|
||||||
'<<'=76
|
|
||||||
'>>'=77
|
|
||||||
'>>>'=78
|
|
||||||
'+='=79
|
|
||||||
'-='=80
|
|
||||||
'*='=81
|
|
||||||
'/='=82
|
|
||||||
'&='=83
|
|
||||||
'|='=84
|
|
||||||
'^='=85
|
|
||||||
'%='=86
|
|
||||||
'<<='=87
|
|
||||||
'>>='=88
|
|
||||||
'='=89
|
|
||||||
'~'=90
|
|
||||||
'<'=91
|
|
||||||
'>'=92
|
|
||||||
'!'=93
|
|
||||||
'?'=94
|
|
||||||
':'=95
|
|
||||||
'+'=96
|
|
||||||
'-'=97
|
|
||||||
'*'=98
|
|
||||||
'/'=99
|
|
||||||
'&'=100
|
|
||||||
'|'=101
|
|
||||||
'^'=102
|
|
||||||
'%'=103
|
|
||||||
3
.idea/.gitignore
generated
vendored
3
.idea/.gitignore
generated
vendored
@@ -1,3 +0,0 @@
|
|||||||
# Default ignored files
|
|
||||||
/shelf/
|
|
||||||
/workspace.xml
|
|
||||||
9
.idea/CPSC-499.iml
generated
9
.idea/CPSC-499.iml
generated
@@ -1,9 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<module type="JAVA_MODULE" version="4">
|
|
||||||
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
|
||||||
<exclude-output />
|
|
||||||
<content url="file://$MODULE_DIR$" />
|
|
||||||
<orderEntry type="inheritedJdk" />
|
|
||||||
<orderEntry type="sourceFolder" forTests="false" />
|
|
||||||
</component>
|
|
||||||
</module>
|
|
||||||
4
.idea/misc.xml
generated
4
.idea/misc.xml
generated
@@ -1,4 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="ProjectRootManager" version="2" project-jdk-name="corretto-1.8" project-jdk-type="JavaSDK" />
|
|
||||||
</project>
|
|
||||||
8
.idea/modules.xml
generated
8
.idea/modules.xml
generated
@@ -1,8 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="ProjectModuleManager">
|
|
||||||
<modules>
|
|
||||||
<module fileurl="file://$PROJECT_DIR$/.idea/CPSC-499.iml" filepath="$PROJECT_DIR$/.idea/CPSC-499.iml" />
|
|
||||||
</modules>
|
|
||||||
</component>
|
|
||||||
</project>
|
|
||||||
6
.idea/vcs.xml
generated
6
.idea/vcs.xml
generated
@@ -1,6 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="VcsDirectoryMappings">
|
|
||||||
<mapping directory="" vcs="Git" />
|
|
||||||
</component>
|
|
||||||
</project>
|
|
||||||
230
ExprLexer.g4
230
ExprLexer.g4
@@ -1,230 +0,0 @@
|
|||||||
lexer grammar ExprLexer;
|
|
||||||
|
|
||||||
// LINE TERMINATORS -----------------------------------------------------------------------------------------------------------------------
|
|
||||||
fragment LineTerminator: '\r' '\n'? | '\n';
|
|
||||||
|
|
||||||
//WHITE SPACE ----------------------------------------------------------------------------------------------------------------------------------------
|
|
||||||
WhiteSpace: (' ' | '\t' | '\f' | LineTerminator) -> skip;
|
|
||||||
|
|
||||||
//COMMENTS --------------------------------------------------------------------------------------------------------------------------------------------------
|
|
||||||
fragment EndOfLineComment: '//' ~('\r' | '\n')* LineTerminator?;
|
|
||||||
|
|
||||||
|
|
||||||
Comment: (TraditionalComment | EndOfLineComment) -> skip;
|
|
||||||
|
|
||||||
fragment TraditionalComment:
|
|
||||||
'/*' NotStar CommentTail;
|
|
||||||
|
|
||||||
fragment CommentTail: '*' CommentTailStar | NotStar ;
|
|
||||||
|
|
||||||
fragment CommentTailStar:
|
|
||||||
'/' | '*' CommentTailStar | NotStarNotSlash CommentTail;
|
|
||||||
|
|
||||||
fragment NotStar:
|
|
||||||
[^*] | LineTerminator;
|
|
||||||
|
|
||||||
fragment NotStarNotSlash:
|
|
||||||
[^*/] | LineTerminator;
|
|
||||||
|
|
||||||
// KEYWORDS --------------------------------------------------------------------------------------------------------
|
|
||||||
Abstract: 'abstract';
|
|
||||||
Assert: 'assert';
|
|
||||||
Boolean: 'boolean';
|
|
||||||
Break: 'break';
|
|
||||||
Byte: 'byte';
|
|
||||||
Case: 'case';
|
|
||||||
Catch: 'catch';
|
|
||||||
Char: 'char';
|
|
||||||
Class: 'class';
|
|
||||||
Const: 'const';
|
|
||||||
Continue: 'continue';
|
|
||||||
Default: 'default';
|
|
||||||
Do: 'do';
|
|
||||||
Double: 'double';
|
|
||||||
Else: 'else';
|
|
||||||
Extends: 'extends';
|
|
||||||
Final: 'final';
|
|
||||||
Finally: 'finally';
|
|
||||||
Float: 'float';
|
|
||||||
For: 'for';
|
|
||||||
Goto: 'goto';
|
|
||||||
If: 'if';
|
|
||||||
Implements: 'implements';
|
|
||||||
Import: 'import';
|
|
||||||
InstanceOf: 'instanceof';
|
|
||||||
Int: 'int';
|
|
||||||
Interface: 'interface';
|
|
||||||
Long: 'long';
|
|
||||||
Native: 'native';
|
|
||||||
New: 'new';
|
|
||||||
Package: 'package';
|
|
||||||
Private: 'private';
|
|
||||||
Protected: 'protected';
|
|
||||||
Public: 'public';
|
|
||||||
Return: 'return';
|
|
||||||
Short: 'short';
|
|
||||||
Static: 'static';
|
|
||||||
Strictfp: 'strictfp';
|
|
||||||
Super: 'super';
|
|
||||||
Switch: 'switch';
|
|
||||||
Synchronized: 'synchronized';
|
|
||||||
This: 'this';
|
|
||||||
Throw: 'throw';
|
|
||||||
Throws: 'throws';
|
|
||||||
Transient: 'transient';
|
|
||||||
Try: 'try';
|
|
||||||
Void: 'void';
|
|
||||||
Volatile: 'volatile';
|
|
||||||
While: 'while';
|
|
||||||
|
|
||||||
Dot: '.';
|
|
||||||
// LITERALS -------------------------------------------------------------------------------------------------------------------
|
|
||||||
IntegerLiteral: DecimalIntegerLiteral | HexIntegerLiteral | OctalIntegerLiteral;
|
|
||||||
|
|
||||||
fragment DecimalIntegerLiteral:
|
|
||||||
DecimalNumeral IntegerTypeSuffix?;
|
|
||||||
|
|
||||||
fragment HexIntegerLiteral:
|
|
||||||
HexNumeral IntegerTypeSuffix?;
|
|
||||||
|
|
||||||
fragment OctalIntegerLiteral:
|
|
||||||
OctalNumeral IntegerTypeSuffix?;
|
|
||||||
|
|
||||||
fragment IntegerTypeSuffix:
|
|
||||||
[lL];
|
|
||||||
|
|
||||||
fragment DecimalNumeral:
|
|
||||||
'0' | NonZeroDigit Digits?;
|
|
||||||
|
|
||||||
fragment HexNumeral:
|
|
||||||
'0' 'x' HexDigits | '0' 'X' HexDigits;
|
|
||||||
|
|
||||||
fragment HexDigits:
|
|
||||||
HexDigit | HexDigit HexDigits;
|
|
||||||
|
|
||||||
fragment HexDigit:
|
|
||||||
[0-9a-fA-F];
|
|
||||||
|
|
||||||
FloatingPointLiteral: Digits '.' Digits? ExponentPart? FloatTypeSuffix?
|
|
||||||
| '.' Digits ExponentPart? FloatTypeSuffix?
|
|
||||||
| Digits ExponentPart FloatTypeSuffix?
|
|
||||||
| Digits ExponentPart? FloatTypeSuffix;
|
|
||||||
|
|
||||||
fragment ExponentPart:
|
|
||||||
ExponentIndicator SignedInteger;
|
|
||||||
|
|
||||||
fragment ExponentIndicator:
|
|
||||||
[eE];
|
|
||||||
|
|
||||||
fragment SignedInteger:
|
|
||||||
Sign? Digits;
|
|
||||||
|
|
||||||
fragment Digits:
|
|
||||||
Digit+;
|
|
||||||
|
|
||||||
fragment Digit:
|
|
||||||
'0' | NonZeroDigit;
|
|
||||||
|
|
||||||
fragment NonZeroDigit:
|
|
||||||
[1-9];
|
|
||||||
|
|
||||||
fragment Sign:
|
|
||||||
[+-];
|
|
||||||
|
|
||||||
fragment FloatTypeSuffix:
|
|
||||||
[fFdD];
|
|
||||||
|
|
||||||
CharacterLiteral: '\'' SingleCharacter '\'' | '\'' EscapeSequence '\'';
|
|
||||||
|
|
||||||
fragment SingleCharacter:
|
|
||||||
[^'\\];
|
|
||||||
|
|
||||||
StringLiteral: '"' StringCharacters? '"';
|
|
||||||
|
|
||||||
fragment StringCharacters:
|
|
||||||
StringCharacter+;
|
|
||||||
|
|
||||||
fragment StringCharacter:
|
|
||||||
SingleCharacter | EscapeSequence;
|
|
||||||
|
|
||||||
fragment EscapeSequence:
|
|
||||||
'\\' ('u0008' | 'u0009' | 'u000a' | 'u000c' | 'u000d' | 'u0022' | 'u0027' | 'u005c' | OctalEscape);
|
|
||||||
|
|
||||||
fragment OctalEscape:
|
|
||||||
'\\' OctalDigit | '\\' OctalDigit OctalDigit | '\\' ZeroToThree OctalDigit OctalDigit;
|
|
||||||
|
|
||||||
fragment OctalNumeral:
|
|
||||||
'0' OctalDigits;
|
|
||||||
|
|
||||||
fragment OctalDigits:
|
|
||||||
OctalDigit;
|
|
||||||
|
|
||||||
fragment OctalDigit:
|
|
||||||
[0-7];
|
|
||||||
|
|
||||||
fragment ZeroToThree:
|
|
||||||
[0-3];
|
|
||||||
|
|
||||||
BooleanLiteral: 'true' | 'false' ;
|
|
||||||
|
|
||||||
NullLiteral: 'null';
|
|
||||||
|
|
||||||
//SEPRATORS -------------------------------------------------------------------------------------------------------------------------
|
|
||||||
ParenthesesLeft: '(';
|
|
||||||
ParenthesesRight: ')';
|
|
||||||
CurlyBracketLeft: '{';
|
|
||||||
CurlyBracketRight: '}';
|
|
||||||
SquareBracketLeft: '[';
|
|
||||||
SquareBracketRight: ']';
|
|
||||||
Semicolon: ';';
|
|
||||||
Comma: ',';
|
|
||||||
|
|
||||||
|
|
||||||
//OPERATORS ---------------------------------------------------------------------------------------------------------------------------------------
|
|
||||||
UnsignedRightShiftAssign: '>>>=';
|
|
||||||
EqualTo: '==';
|
|
||||||
NotEqualTo: '!=';
|
|
||||||
LessThanEqualTo: '<=';
|
|
||||||
GreaterThanEqualTo: '>=';
|
|
||||||
ConditionalAND: '&&';
|
|
||||||
ConditionalOR: '||';
|
|
||||||
Increment: '++';
|
|
||||||
Decrement: '--';
|
|
||||||
LeftShift: '<<';
|
|
||||||
SignedRightShift: '>>';
|
|
||||||
UnsignedRightShift: '>>>';
|
|
||||||
AddAssign: '+=';
|
|
||||||
SubtractAssign: '-=';
|
|
||||||
MultiplyAssign: '*=';
|
|
||||||
DivideAssign: '/=';
|
|
||||||
BitwiseANDAssign: '&=';
|
|
||||||
BitwiseORAssign: '|=';
|
|
||||||
BitwiseXORAssign: '^=';
|
|
||||||
RemainderAssign: '%=';
|
|
||||||
LeftShiftAssign: '<<=';
|
|
||||||
SignedRightShiftAssign: '>>=';
|
|
||||||
Assignment: '=';
|
|
||||||
BitwiseComplement: '~';
|
|
||||||
LessThan: '<';
|
|
||||||
GreaterThan: '>';
|
|
||||||
LogicalComplement: '!';
|
|
||||||
Question: '?';
|
|
||||||
Colon: ':';
|
|
||||||
Addition: '+';
|
|
||||||
Subtraction: '-';
|
|
||||||
Multiplication: '*';
|
|
||||||
Division: '/';
|
|
||||||
BitwiseAND: '&';
|
|
||||||
BitwiseOR: '|';
|
|
||||||
BitwiseXOR: '^';
|
|
||||||
Remainder: '%';
|
|
||||||
|
|
||||||
|
|
||||||
//IDENTIFIERS -------------------------------------------------------------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
IDENTIFIER: JavaLetter JavaLetterOrDigit*;
|
|
||||||
fragment JavaLetter:
|
|
||||||
[a-zA-Z$_];
|
|
||||||
|
|
||||||
fragment JavaLetterOrDigit:
|
|
||||||
[A-Za-z0-9$_];
|
|
||||||
248
ExprParser.g4
248
ExprParser.g4
@@ -1,248 +0,0 @@
|
|||||||
parser grammar ExprParser;
|
|
||||||
|
|
||||||
options {
|
|
||||||
tokenVocab=ExprLexer;
|
|
||||||
}
|
|
||||||
prog: compilationUnit EOF;
|
|
||||||
identifier: IDENTIFIER;
|
|
||||||
|
|
||||||
qualifiedIdentifier: identifier (Dot identifier)*;
|
|
||||||
|
|
||||||
literal: IntegerLiteral
|
|
||||||
| FloatingPointLiteral
|
|
||||||
| CharacterLiteral
|
|
||||||
| StringLiteral
|
|
||||||
| BooleanLiteral
|
|
||||||
| NullLiteral;
|
|
||||||
//Section 15.26: Assignment Operators
|
|
||||||
expression: unaryExpr assignmentOperator expression | conditionalExpr ;
|
|
||||||
|
|
||||||
//Highest Prescedence _Expr = expression
|
|
||||||
//CI cha 6
|
|
||||||
conditionalExpr: logicalOrExpr Question conditionalExpr Colon conditionalExpr | logicalOrExpr;
|
|
||||||
|
|
||||||
logicalOrExpr: logicalAndExpr (ConditionalOR logicalAndExpr)*;
|
|
||||||
|
|
||||||
logicalAndExpr: equalityExpr (ConditionalAND equalityExpr)*;
|
|
||||||
|
|
||||||
equalityExpr: relationalExpr ((EqualTo | NotEqualTo) relationalExpr)*;
|
|
||||||
|
|
||||||
relationalExpr: additiveExpr((LessThan | GreaterThan | LessThanEqualTo | GreaterThanEqualTo) additiveExpr | InstanceOf type)*;
|
|
||||||
|
|
||||||
additiveExpr: multiplicativeExpr((Addition | Subtraction) multiplicativeExpr)*;
|
|
||||||
multiplicativeExpr: unaryExpr((Multiplication | Division | Remainder) unaryExpr)*;
|
|
||||||
|
|
||||||
unaryExpr:postfixExpr |(Addition | Subtraction | LogicalComplement | BitwiseComplement | Increment | Decrement) unaryExpr | parExpression type unaryExpr;
|
|
||||||
|
|
||||||
postfixExpr: primaryExpr (Increment| Decrement| Dot IDENTIFIER | SquareBracketLeft expression SquareBracketRight | arguments)*;
|
|
||||||
|
|
||||||
primaryExpr: parExpression
|
|
||||||
| IntegerLiteral
|
|
||||||
| FloatingPointLiteral
|
|
||||||
| StringLiteral
|
|
||||||
| CharacterLiteral
|
|
||||||
| BooleanLiteral
|
|
||||||
| NullLiteral
|
|
||||||
| IDENTIFIER
|
|
||||||
| This
|
|
||||||
| Super (Dot IDENTIFIER)?
|
|
||||||
| New type arguments
|
|
||||||
| primitiveType (SquareBracketLeft SquareBracketRight)* Dot Class
|
|
||||||
| type Dot Class;
|
|
||||||
|
|
||||||
|
|
||||||
assignmentOperator: Assignment
|
|
||||||
| AddAssign
|
|
||||||
| SubtractAssign
|
|
||||||
| MultiplyAssign
|
|
||||||
| DivideAssign
|
|
||||||
| BitwiseANDAssign
|
|
||||||
| BitwiseORAssign
|
|
||||||
| BitwiseXORAssign
|
|
||||||
| RemainderAssign
|
|
||||||
| LeftShiftAssign
|
|
||||||
| SignedRightShiftAssign
|
|
||||||
| UnsignedRightShiftAssign;
|
|
||||||
|
|
||||||
type: identifier (Dot identifier)* bracketsOpt | primitiveType;
|
|
||||||
|
|
||||||
statementExpression: expression;
|
|
||||||
|
|
||||||
constantExpression: expression;
|
|
||||||
|
|
||||||
identifierSuffix: SquareBracketLeft SquareBracketRight bracketsOpt Dot Class
|
|
||||||
|SquareBracketLeft expression SquareBracketRight
|
|
||||||
|arguments
|
|
||||||
|Dot (Class | This | Super arguments New innerCreator);
|
|
||||||
|
|
||||||
postfixOp: Increment | Decrement;
|
|
||||||
|
|
||||||
primitiveType: Byte | Short| Char | Int| Long| Float| Double| Boolean;
|
|
||||||
//Method arguments
|
|
||||||
argumentsOpt: (arguments)?;
|
|
||||||
|
|
||||||
arguments: ParenthesesLeft (expression (Comma expression)*)? ParenthesesRight;
|
|
||||||
|
|
||||||
bracketsOpt: (SquareBracketLeft SquareBracketRight)*;
|
|
||||||
|
|
||||||
creator: qualifiedIdentifier ( arrayCreatorRest | classCreatorRest);
|
|
||||||
|
|
||||||
innerCreator: identifier classCreatorRest;
|
|
||||||
|
|
||||||
arrayCreatorRest: SquareBracketLeft SquareBracketRight bracketsOpt arrayInitializer
|
|
||||||
| SquareBracketLeft expression SquareBracketRight (SquareBracketLeft expression SquareBracketRight)*;
|
|
||||||
classCreatorRest: arguments (classBody)?;
|
|
||||||
|
|
||||||
arrayInitializer: CurlyBracketLeft (variableInitializer(Comma variableInitializer)*(Comma)?)? CurlyBracketRight;
|
|
||||||
|
|
||||||
variableInitializer: arrayInitializer
|
|
||||||
|expression;
|
|
||||||
|
|
||||||
parExpression: ParenthesesLeft expression ParenthesesRight;
|
|
||||||
|
|
||||||
block: CurlyBracketLeft blockStatements CurlyBracketRight;
|
|
||||||
|
|
||||||
blockStatements: (blockStatement)*;
|
|
||||||
|
|
||||||
blockStatement: localVariableDeclarationStatement
|
|
||||||
|classOrInterfaceDeclaration
|
|
||||||
|(identifier Colon)? statement;
|
|
||||||
|
|
||||||
localVariableDeclarationStatement: (Final)? type variableDeclarators;
|
|
||||||
|
|
||||||
statement:completeIf | If parExpression statementIncompleteIf;
|
|
||||||
|
|
||||||
statementIncompleteIf: block
|
|
||||||
| If parExpression completeIf Else statementIncompleteIf
|
|
||||||
| For ParenthesesLeft forInit? Semicolon (expression)? Semicolon forUpdate? ParenthesesRight statement
|
|
||||||
| While parExpression statement
|
|
||||||
| Do statement While parExpression Semicolon
|
|
||||||
| Try block catches
|
|
||||||
| Try block Finally block
|
|
||||||
| Try block catches Finally block
|
|
||||||
| switchStatement
|
|
||||||
| Synchronized parExpression block
|
|
||||||
| Return (expression)? Semicolon
|
|
||||||
| Throw expression Semicolon
|
|
||||||
| Break (identifier)? Semicolon
|
|
||||||
| Continue (identifier)? Semicolon
|
|
||||||
| statementExpression Semicolon
|
|
||||||
| Semicolon;
|
|
||||||
//solve ambiguity over If()else. aka (Dangling else).
|
|
||||||
//this will do the longest check by looking for an else section, fincding the closest else!
|
|
||||||
completeIf: If parExpression completeIf Else completeIf | statementIncompleteIf;
|
|
||||||
|
|
||||||
catches: catchClause (catchClause)*;
|
|
||||||
|
|
||||||
catchClause: Catch ParenthesesLeft formalParameter ParenthesesRight block;
|
|
||||||
|
|
||||||
switchStatement: Switch parExpression CurlyBracketLeft CurlyBracketRight
|
|
||||||
| Switch parExpression CurlyBracketLeft switchBlockStatementGroups? CurlyBracketRight;
|
|
||||||
|
|
||||||
switchBlockStatementGroups: (switchBlockStatementGroup)*;
|
|
||||||
|
|
||||||
switchBlockStatementGroup: switchLabel blockStatements;
|
|
||||||
|
|
||||||
switchLabel: Case constantExpression Colon
|
|
||||||
| Default Colon;
|
|
||||||
moreStatementExpressions: (Comma statementExpression)*;
|
|
||||||
|
|
||||||
forInit: statementExpression moreStatementExpressions
|
|
||||||
| (Final)? type variableDeclarators;
|
|
||||||
|
|
||||||
forUpdate: statementExpression moreStatementExpressions;
|
|
||||||
|
|
||||||
modifiersOpt: (modifier)*;
|
|
||||||
|
|
||||||
modifier: Public
|
|
||||||
| Protected
|
|
||||||
| Private
|
|
||||||
| Static
|
|
||||||
| Abstract
|
|
||||||
| Final
|
|
||||||
| Native
|
|
||||||
| Synchronized
|
|
||||||
| Transient
|
|
||||||
| Volatile
|
|
||||||
| Strictfp;
|
|
||||||
|
|
||||||
variableDeclarators: variableDeclarator (Comma variableDeclarator)*;
|
|
||||||
|
|
||||||
variableDeclaratorsRest: variableDeclaratorRest (Comma variableDeclarator)*;
|
|
||||||
|
|
||||||
constantDeclaratorsRest: constantDeclaratorRest (Comma constantDeclarator)*;
|
|
||||||
|
|
||||||
variableDeclarator: identifier variableDeclaratorsRest;
|
|
||||||
|
|
||||||
constantDeclarator: identifier constantDeclaratorRest;
|
|
||||||
|
|
||||||
variableDeclaratorRest: bracketsOpt (Assignment variableInitializer)?;
|
|
||||||
|
|
||||||
constantDeclaratorRest: bracketsOpt Assignment variableInitializer;
|
|
||||||
|
|
||||||
variableDeclaratorId: identifier bracketsOpt;
|
|
||||||
|
|
||||||
compilationUnit: (Package qualifiedIdentifier Semicolon)? (importDeclaration)*(typeDeclaration)*;
|
|
||||||
|
|
||||||
importDeclaration: Import identifier (Dot identifier)* (Dot Multiplication)? Semicolon;
|
|
||||||
|
|
||||||
typeDeclaration: classOrInterfaceDeclaration | Semicolon;
|
|
||||||
|
|
||||||
classOrInterfaceDeclaration: modifiersOpt (classDeclaration | interfaceDeclaration);
|
|
||||||
|
|
||||||
classDeclaration: Class identifier (Extends type)? (Implements typeList)? classBody;
|
|
||||||
|
|
||||||
interfaceDeclaration: Interface identifier (Extends typeList)? interfaceBody;
|
|
||||||
|
|
||||||
typeList: type (Comma type)*;
|
|
||||||
|
|
||||||
classBody: CurlyBracketLeft (classBodyDeclaration)* CurlyBracketRight;
|
|
||||||
|
|
||||||
interfaceBody: CurlyBracketLeft (interfaceBodyDeclaration)* CurlyBracketRight;
|
|
||||||
|
|
||||||
classBodyDeclaration: Semicolon
|
|
||||||
| (Static)? block
|
|
||||||
| modifiersOpt memberDecl;
|
|
||||||
memberDecl: methodOrFieldDecl
|
|
||||||
| Void identifier methodDeclaratorRest
|
|
||||||
| identifier constructorDeclaratorRest
|
|
||||||
| classOrInterfaceDeclaration;
|
|
||||||
|
|
||||||
methodOrFieldDecl: type identifier methodOrFieldRest;
|
|
||||||
|
|
||||||
methodOrFieldRest: variableDeclaratorRest
|
|
||||||
|methodDeclaratorRest;
|
|
||||||
|
|
||||||
interfaceBodyDeclaration: Semicolon
|
|
||||||
| modifiersOpt interfaceMemberDecl;
|
|
||||||
|
|
||||||
interfaceMemberDecl: interfaceMethodOrFieldDecl
|
|
||||||
| Void identifier voidInterfaceMethodDeclaratorRest
|
|
||||||
| classOrInterfaceDeclaration;
|
|
||||||
|
|
||||||
interfaceMethodOrFieldDecl: type identifier interfaceMethodOrFieldRest;
|
|
||||||
|
|
||||||
interfaceMethodOrFieldRest: constantDeclaratorRest Semicolon
|
|
||||||
| interfaceMethodDeclaratorRest;
|
|
||||||
|
|
||||||
methodDeclaratorRest: formalParameters bracketsOpt (Throws qualifiedIdentifierList)?(methodBody | Semicolon);
|
|
||||||
|
|
||||||
voidMethodDeclaratorRest: formalParameters (Throws qualifiedIdentifierList)? (methodBody | Semicolon);
|
|
||||||
|
|
||||||
interfaceMethodDeclaratorRest: formalParameters bracketsOpt (Throws qualifiedIdentifierList)? Semicolon;
|
|
||||||
|
|
||||||
voidInterfaceMethodDeclaratorRest: formalParameters (Throws qualifiedIdentifierList)?;
|
|
||||||
|
|
||||||
constructorDeclaratorRest: formalParameters (Throws qualifiedIdentifierList)? methodBody;
|
|
||||||
|
|
||||||
qualifiedIdentifierList: qualifiedIdentifier (Comma qualifiedIdentifier)*;
|
|
||||||
|
|
||||||
formalParameters: ParenthesesLeft (formalParameter (Comma formalParameter)*)? ParenthesesRight;
|
|
||||||
|
|
||||||
formalParameter: (Final)? type variableDeclaratorId;
|
|
||||||
|
|
||||||
methodBody: block;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
248
ExprSyntactic.g4
248
ExprSyntactic.g4
@@ -1,248 +0,0 @@
|
|||||||
parser grammar ExprSyntactic;
|
|
||||||
|
|
||||||
options {
|
|
||||||
tokenVocab=ExprLexer;
|
|
||||||
}
|
|
||||||
prog: compilationUnit EOF;
|
|
||||||
identifier: IDENTIFIER;
|
|
||||||
|
|
||||||
qualifiedIdentifier: identifier (Dot identifier)*;
|
|
||||||
|
|
||||||
literal: IntegerLiteral
|
|
||||||
| FloatingPointLiteral
|
|
||||||
| CharacterLiteral
|
|
||||||
| StringLiteral
|
|
||||||
| BooleanLiteral
|
|
||||||
| NullLiteral;
|
|
||||||
//Section 15.26: Assignment Operators
|
|
||||||
expression: unaryExpr assignmentOperator expression | conditionalExpr ;
|
|
||||||
|
|
||||||
//Highest Prescedence _Expr = expression
|
|
||||||
//CI cha 6
|
|
||||||
conditionalExpr: logicalOrExpr Question conditionalExpr Colon conditionalExpr | logicalOrExpr;
|
|
||||||
|
|
||||||
logicalOrExpr: logicalAndExpr (ConditionalOR logicalAndExpr)*;
|
|
||||||
|
|
||||||
logicalAndExpr: equalityExpr (ConditionalAND equalityExpr)*;
|
|
||||||
|
|
||||||
equalityExpr: relationalExpr ((EqualTo | NotEqualTo) relationalExpr)*;
|
|
||||||
|
|
||||||
relationalExpr: additiveExpr((LessThan | GreaterThan | LessThanEqualTo | GreaterThanEqualTo) additiveExpr | InstanceOf type)*;
|
|
||||||
|
|
||||||
additiveExpr: multiplicativeExpr((Addition | Subtraction) multiplicativeExpr)*;
|
|
||||||
multiplicativeExpr: unaryExpr((Multiplication | Division | Remainder) unaryExpr)*;
|
|
||||||
|
|
||||||
unaryExpr:postfixExpr |(Addition | Subtraction | LogicalComplement | BitwiseComplement | Increment | Decrement) unaryExpr | parExpression type unaryExpr;
|
|
||||||
|
|
||||||
postfixExpr: primaryExpr (Increment| Decrement| Dot IDENTIFIER | SquareBracketLeft expression SquareBracketRight | arguments)*;
|
|
||||||
|
|
||||||
primaryExpr: parExpression
|
|
||||||
| IntegerLiteral
|
|
||||||
| FloatingPointLiteral
|
|
||||||
| StringLiteral
|
|
||||||
| CharacterLiteral
|
|
||||||
| BooleanLiteral
|
|
||||||
| NullLiteral
|
|
||||||
| IDENTIFIER
|
|
||||||
| This
|
|
||||||
| Super (Dot IDENTIFIER)?
|
|
||||||
| New type arguments
|
|
||||||
| primitiveType (SquareBracketLeft SquareBracketRight)* Dot Class
|
|
||||||
| type Dot Class;
|
|
||||||
|
|
||||||
|
|
||||||
assignmentOperator: Assignment
|
|
||||||
| AddAssign
|
|
||||||
| SubtractAssign
|
|
||||||
| MultiplyAssign
|
|
||||||
| DivideAssign
|
|
||||||
| BitwiseANDAssign
|
|
||||||
| BitwiseORAssign
|
|
||||||
| BitwiseXORAssign
|
|
||||||
| RemainderAssign
|
|
||||||
| LeftShiftAssign
|
|
||||||
| SignedRightShiftAssign
|
|
||||||
| UnsignedRightShiftAssign;
|
|
||||||
|
|
||||||
type: identifier (Dot identifier)* bracketsOpt | primitiveType;
|
|
||||||
|
|
||||||
statementExpression: expression;
|
|
||||||
|
|
||||||
constantExpression: expression;
|
|
||||||
|
|
||||||
identifierSuffix: SquareBracketLeft SquareBracketRight bracketsOpt Dot Class
|
|
||||||
|SquareBracketLeft expression SquareBracketRight
|
|
||||||
|arguments
|
|
||||||
|Dot (Class | This | Super arguments New innerCreator);
|
|
||||||
|
|
||||||
postfixOp: Increment | Decrement;
|
|
||||||
|
|
||||||
primitiveType: Byte | Short| Char | Int| Long| Float| Double| Boolean;
|
|
||||||
//Method arguments
|
|
||||||
argumentsOpt: (arguments)?;
|
|
||||||
|
|
||||||
arguments: ParenthesesLeft (expression (Comma expression)*)? ParenthesesRight;
|
|
||||||
|
|
||||||
bracketsOpt: (SquareBracketLeft SquareBracketRight)*;
|
|
||||||
|
|
||||||
creator: qualifiedIdentifier ( arrayCreatorRest | classCreatorRest);
|
|
||||||
|
|
||||||
innerCreator: identifier classCreatorRest;
|
|
||||||
|
|
||||||
arrayCreatorRest: SquareBracketLeft SquareBracketRight bracketsOpt arrayInitializer
|
|
||||||
| SquareBracketLeft expression SquareBracketRight (SquareBracketLeft expression SquareBracketRight)*;
|
|
||||||
classCreatorRest: arguments (classBody)?;
|
|
||||||
|
|
||||||
arrayInitializer: CurlyBracketLeft (variableInitializer(Comma variableInitializer)*(Comma)?)? CurlyBracketRight;
|
|
||||||
|
|
||||||
variableInitializer: arrayInitializer
|
|
||||||
|expression;
|
|
||||||
|
|
||||||
parExpression: ParenthesesLeft expression ParenthesesRight;
|
|
||||||
|
|
||||||
block: CurlyBracketLeft blockStatements CurlyBracketRight;
|
|
||||||
|
|
||||||
blockStatements: (blockStatement)*;
|
|
||||||
|
|
||||||
blockStatement: localVariableDeclarationStatement
|
|
||||||
|classOrInterfaceDeclaration
|
|
||||||
|(identifier Colon)? statement;
|
|
||||||
|
|
||||||
localVariableDeclarationStatement: (Final)? type variableDeclarators;
|
|
||||||
|
|
||||||
statement:completeIf | If parExpression statementIncompleteIf;
|
|
||||||
|
|
||||||
statementIncompleteIf: block
|
|
||||||
| If parExpression completeIf Else statementIncompleteIf
|
|
||||||
| For ParenthesesLeft forInit? Semicolon (expression)? Semicolon forUpdate? ParenthesesRight statement
|
|
||||||
| While parExpression statement
|
|
||||||
| Do statement While parExpression Semicolon
|
|
||||||
| Try block catches
|
|
||||||
| Try block Finally block
|
|
||||||
| Try block catches Finally block
|
|
||||||
| switchStatement
|
|
||||||
| Synchronized parExpression block
|
|
||||||
| Return (expression)? Semicolon
|
|
||||||
| Throw expression Semicolon
|
|
||||||
| Break (identifier)? Semicolon
|
|
||||||
| Continue (identifier)? Semicolon
|
|
||||||
| statementExpression Semicolon
|
|
||||||
| Semicolon;
|
|
||||||
//solve ambiguity over If()else. aka (Dangling else).
|
|
||||||
//this will do the longest check by looking for an else section, fincding the closest else!
|
|
||||||
completeIf: If parExpression completeIf Else completeIf | statementIncompleteIf;
|
|
||||||
|
|
||||||
catches: catchClause (catchClause)*;
|
|
||||||
|
|
||||||
catchClause: Catch ParenthesesLeft formalParameter ParenthesesRight block;
|
|
||||||
|
|
||||||
switchStatement: Switch parExpression CurlyBracketLeft CurlyBracketRight
|
|
||||||
| Switch parExpression CurlyBracketLeft switchBlockStatementGroups? CurlyBracketRight;
|
|
||||||
|
|
||||||
switchBlockStatementGroups: (switchBlockStatementGroup)*;
|
|
||||||
|
|
||||||
switchBlockStatementGroup: switchLabel blockStatements;
|
|
||||||
|
|
||||||
switchLabel: Case constantExpression Colon
|
|
||||||
| Default Colon;
|
|
||||||
moreStatementExpressions: (Comma statementExpression)*;
|
|
||||||
|
|
||||||
forInit: statementExpression moreStatementExpressions
|
|
||||||
| (Final)? type variableDeclarators;
|
|
||||||
|
|
||||||
forUpdate: statementExpression moreStatementExpressions;
|
|
||||||
|
|
||||||
modifiersOpt: (modifier)*;
|
|
||||||
|
|
||||||
modifier: Public
|
|
||||||
| Protected
|
|
||||||
| Private
|
|
||||||
| Static
|
|
||||||
| Abstract
|
|
||||||
| Final
|
|
||||||
| Native
|
|
||||||
| Synchronized
|
|
||||||
| Transient
|
|
||||||
| Volatile
|
|
||||||
| Strictfp;
|
|
||||||
|
|
||||||
variableDeclarators: variableDeclarator (Comma variableDeclarator)*;
|
|
||||||
|
|
||||||
variableDeclaratorsRest: variableDeclaratorRest (Comma variableDeclarator)*;
|
|
||||||
|
|
||||||
constantDeclaratorsRest: constantDeclaratorRest (Comma constantDeclarator)*;
|
|
||||||
|
|
||||||
variableDeclarator: identifier variableDeclaratorsRest;
|
|
||||||
|
|
||||||
constantDeclarator: identifier constantDeclaratorRest;
|
|
||||||
|
|
||||||
variableDeclaratorRest: bracketsOpt (Assignment variableInitializer)?;
|
|
||||||
|
|
||||||
constantDeclaratorRest: bracketsOpt Assignment variableInitializer;
|
|
||||||
|
|
||||||
variableDeclaratorId: identifier bracketsOpt;
|
|
||||||
|
|
||||||
compilationUnit: (Package qualifiedIdentifier Semicolon)? (importDeclaration)*(typeDeclaration)*;
|
|
||||||
|
|
||||||
importDeclaration: Import identifier (Dot identifier)* (Dot Multiplication)? Semicolon;
|
|
||||||
|
|
||||||
typeDeclaration: classOrInterfaceDeclaration | Semicolon;
|
|
||||||
|
|
||||||
classOrInterfaceDeclaration: modifiersOpt (classDeclaration | interfaceDeclaration);
|
|
||||||
|
|
||||||
classDeclaration: Class identifier (Extends type)? (Implements typeList)? classBody;
|
|
||||||
|
|
||||||
interfaceDeclaration: Interface identifier (Extends typeList)? interfaceBody;
|
|
||||||
|
|
||||||
typeList: type (Comma type)*;
|
|
||||||
|
|
||||||
classBody: CurlyBracketLeft (classBodyDeclaration)* CurlyBracketRight;
|
|
||||||
|
|
||||||
interfaceBody: CurlyBracketLeft (interfaceBodyDeclaration)* CurlyBracketRight;
|
|
||||||
|
|
||||||
classBodyDeclaration: Semicolon
|
|
||||||
| (Static)? block
|
|
||||||
| modifiersOpt memberDecl;
|
|
||||||
memberDecl: methodOrFieldDecl
|
|
||||||
| Void identifier methodDeclaratorRest
|
|
||||||
| identifier constructorDeclaratorRest
|
|
||||||
| classOrInterfaceDeclaration;
|
|
||||||
|
|
||||||
methodOrFieldDecl: type identifier methodOrFieldRest;
|
|
||||||
|
|
||||||
methodOrFieldRest: variableDeclaratorRest
|
|
||||||
|methodDeclaratorRest;
|
|
||||||
|
|
||||||
interfaceBodyDeclaration: Semicolon
|
|
||||||
| modifiersOpt interfaceMemberDecl;
|
|
||||||
|
|
||||||
interfaceMemberDecl: interfaceMethodOrFieldDecl
|
|
||||||
| Void identifier voidInterfaceMethodDeclaratorRest
|
|
||||||
| classOrInterfaceDeclaration;
|
|
||||||
|
|
||||||
interfaceMethodOrFieldDecl: type identifier interfaceMethodOrFieldRest;
|
|
||||||
|
|
||||||
interfaceMethodOrFieldRest: constantDeclaratorRest Semicolon
|
|
||||||
| interfaceMethodDeclaratorRest;
|
|
||||||
|
|
||||||
methodDeclaratorRest: formalParameters bracketsOpt (Throws qualifiedIdentifierList)?(methodBody | Semicolon);
|
|
||||||
|
|
||||||
voidMethodDeclaratorRest: formalParameters (Throws qualifiedIdentifierList)? (methodBody | Semicolon);
|
|
||||||
|
|
||||||
interfaceMethodDeclaratorRest: formalParameters bracketsOpt (Throws qualifiedIdentifierList)? Semicolon;
|
|
||||||
|
|
||||||
voidInterfaceMethodDeclaratorRest: formalParameters (Throws qualifiedIdentifierList)?;
|
|
||||||
|
|
||||||
constructorDeclaratorRest: formalParameters (Throws qualifiedIdentifierList)? methodBody;
|
|
||||||
|
|
||||||
qualifiedIdentifierList: qualifiedIdentifier (Comma qualifiedIdentifier)*;
|
|
||||||
|
|
||||||
formalParameters: ParenthesesLeft (formalParameter (Comma formalParameter)*)? ParenthesesRight;
|
|
||||||
|
|
||||||
formalParameter: (Final)? type variableDeclaratorId;
|
|
||||||
|
|
||||||
methodBody: block;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
105
ExprTool.java
105
ExprTool.java
@@ -1,105 +0,0 @@
|
|||||||
import java.io.IOException;
|
|
||||||
import java.nio.file.Files;
|
|
||||||
import java.nio.file.Paths;
|
|
||||||
import java.util.Scanner;
|
|
||||||
|
|
||||||
import org.antlr.v4.runtime.*;
|
|
||||||
import org.antlr.v4.runtime.tree.*;
|
|
||||||
import org.antlr.v4.runtime.misc.ParseCancellationException;
|
|
||||||
|
|
||||||
public class ExprTool {
|
|
||||||
public static void main(String[] args) throws Exception {
|
|
||||||
if (args.length == 0) {
|
|
||||||
// If no files given then read from stdin
|
|
||||||
Scanner scanner = new Scanner(System.in);
|
|
||||||
StringBuilder inputBuilder = new StringBuilder();
|
|
||||||
while (scanner.hasNextLine()) {
|
|
||||||
inputBuilder.append(scanner.nextLine()).append("\n");
|
|
||||||
}
|
|
||||||
scanner.close();
|
|
||||||
|
|
||||||
parseAndWalk(inputBuilder.toString(), "<stdin>");
|
|
||||||
} else {
|
|
||||||
// for Loop through all given file paths
|
|
||||||
for (String filePath : args) {
|
|
||||||
try {
|
|
||||||
String inputText = new String(Files.readAllBytes(Paths.get(filePath)));
|
|
||||||
parseAndWalk(inputText, filePath);
|
|
||||||
} catch (IOException e) {
|
|
||||||
System.err.println("Error reading file: " + filePath);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Reusable parsing + walking
|
|
||||||
private static void parseAndWalk(String inputText, String sourceName) {
|
|
||||||
try {
|
|
||||||
// Create char stream
|
|
||||||
CharStream input = CharStreams.fromString(inputText, sourceName);
|
|
||||||
|
|
||||||
// Lexer
|
|
||||||
ExprLexer lexer = new ExprLexer(input);
|
|
||||||
lexer.removeErrorListeners();
|
|
||||||
lexer.addErrorListener(new ThrowingErrorListener());
|
|
||||||
|
|
||||||
// Tokens
|
|
||||||
CommonTokenStream tokens = new CommonTokenStream(lexer);
|
|
||||||
|
|
||||||
// Parser
|
|
||||||
ExprParser parser = new ExprParser(tokens);
|
|
||||||
parser.removeErrorListeners();
|
|
||||||
parser.addErrorListener(new ThrowingErrorListener());
|
|
||||||
|
|
||||||
// Parse compilation unit
|
|
||||||
ParseTree tree = parser.compilationUnit();
|
|
||||||
|
|
||||||
// Walk
|
|
||||||
ParseTreeWalker walker = new ParseTreeWalker();
|
|
||||||
walker.walk(new ClassPrinter(sourceName), tree);
|
|
||||||
|
|
||||||
} catch (RuntimeException e) {
|
|
||||||
System.err.println("Parsing failed: " + e.getMessage());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Listener to print class declarations with line/column
|
|
||||||
public static class ClassPrinter extends ExprParserBaseListener {
|
|
||||||
private final String sourceName;
|
|
||||||
|
|
||||||
public ClassPrinter(String sourceName) {
|
|
||||||
this.sourceName = sourceName;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void enterClassDeclaration(ExprParser.ClassDeclarationContext ctx) {
|
|
||||||
int line = ctx.getStart().getLine();
|
|
||||||
int col = ctx.getStart().getCharPositionInLine();
|
|
||||||
String className = ctx.identifier().getText();
|
|
||||||
System.out.printf("Class %s, file %s, line %d, column %d%n",
|
|
||||||
className, sourceName, line, col);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Custom error listener
|
|
||||||
public static class ThrowingErrorListener extends BaseErrorListener {
|
|
||||||
@Override
|
|
||||||
public void syntaxError(Recognizer<?, ?> recognizer,
|
|
||||||
Object offendingSymbol,
|
|
||||||
int line, int charPositionInLine,
|
|
||||||
String msg,
|
|
||||||
RecognitionException e) {
|
|
||||||
String sourceName = recognizer.getInputStream().getSourceName();
|
|
||||||
if (sourceName == null || sourceName.isEmpty()) {
|
|
||||||
sourceName = "<unknown>";
|
|
||||||
}
|
|
||||||
|
|
||||||
String formatted = String.format(
|
|
||||||
" file %s, line %d, column %d%n%s",
|
|
||||||
sourceName, line, charPositionInLine, msg
|
|
||||||
);
|
|
||||||
|
|
||||||
throw new ParseCancellationException(formatted);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,45 +0,0 @@
|
|||||||
package Test
|
|
||||||
|
|
||||||
abstract class TaxCalculator {
|
|
||||||
protected double income
|
|
||||||
|
|
||||||
public TaxCalculator(double income {
|
|
||||||
this.income = income
|
|
||||||
}
|
|
||||||
public abstract double calculateTax()
|
|
||||||
|
|
||||||
public double afterTaxIncome() {
|
|
||||||
return income - calculateTax()
|
|
||||||
|
|
||||||
}
|
|
||||||
class FlatTaxCalculator extends TaxCalculator {
|
|
||||||
private static final double RATE = 0.15
|
|
||||||
public FlatTaxCalculator(double income) super(income)
|
|
||||||
public double calculateTax() {
|
|
||||||
return income * RATE
|
|
||||||
}
|
|
||||||
|
|
||||||
public class TaxApp {
|
|
||||||
static class BracketTaxCalculator extends TaxCalculator {
|
|
||||||
public BracketTaxCalculator(double income)
|
|
||||||
super(income)
|
|
||||||
|
|
||||||
public double calculateTax() {
|
|
||||||
if (income <= 10000) return income * 0.10
|
|
||||||
else if (income <= 50000) return (10000 * 0.10) + ((income - 10000) * 0.20)
|
|
||||||
else return (10000 * 0.10) + (40000 * 0.20) + ((income - 50000) * 0.30)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void main(String[] args) {
|
|
||||||
double income = 60000
|
|
||||||
|
|
||||||
TaxCalculator flat = new FlatTaxCalculator(income)
|
|
||||||
double flatTax = flat.calculateTax()
|
|
||||||
double flatAfterTax = flat.afterTaxIncome()
|
|
||||||
|
|
||||||
TaxCalculator bracket = new BracketTaxCalculator(income)
|
|
||||||
double bracketTax = bracket.calculateTax()
|
|
||||||
double bracketAfterTax = bracket.afterTaxIncome()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,44 +0,0 @@
|
|||||||
package Test;
|
|
||||||
abstract class TaxCalculator {
|
|
||||||
protected double income;
|
|
||||||
|
|
||||||
public TaxCalculator(double income) {
|
|
||||||
this.income = income;
|
|
||||||
}
|
|
||||||
public abstract double calculateTax();
|
|
||||||
public double afterTaxIncome() {
|
|
||||||
return income - calculateTax();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
class FlatTaxCalculator extends TaxCalculator {
|
|
||||||
private static final double RATE = 0.15;
|
|
||||||
public FlatTaxCalculator(double income) {super(income);}
|
|
||||||
public double calculateTax() {
|
|
||||||
return income * RATE;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public class TaxApp {
|
|
||||||
static class BracketTaxCalculator extends TaxCalculator {
|
|
||||||
public BracketTaxCalculator(double income) {
|
|
||||||
super(income);
|
|
||||||
}
|
|
||||||
public double calculateTax() {
|
|
||||||
if (income <= 10000) {return income * 0.10;}
|
|
||||||
else if (income <= 50000) { return (10000 * 0.10) + ((income - 10000) * 0.20);}
|
|
||||||
else { return (10000 * 0.10) + (40000 * 0.20) + ((income - 50000) * 0.30);}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void main(String[] args) {
|
|
||||||
double income = 60000;
|
|
||||||
|
|
||||||
TaxCalculator flat = new FlatTaxCalculator(income);
|
|
||||||
double flatTax = flat.calculateTax();
|
|
||||||
double flatAfterTax = flat.afterTaxIncome();
|
|
||||||
|
|
||||||
TaxCalculator bracket = new BracketTaxCalculator(income);
|
|
||||||
double bracketTax = bracket.calculateTax();
|
|
||||||
double bracketAfterTax = bracket.afterTaxIncome();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Binary file not shown.
Reference in New Issue
Block a user