All Downloads are FREE. Search and download functionalities are using the official Maven repository.

teamapps-ui-dsl.0.9.190.source-code.TeamAppsDtoParser Maven / Gradle / Ivy

There is a newer version: 0.9.191
Show newest version
/*-
 * ========================LICENSE_START=================================
 * TeamApps
 * ---
 * Copyright (C) 2014 - 2024 TeamApps.org
 * ---
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *      http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * =========================LICENSE_END==================================
 */
// Generated from TeamAppsDto.g4 by ANTLR 4.12.0

package org.teamapps.dto;

import org.antlr.v4.runtime.atn.*;
import org.antlr.v4.runtime.dfa.DFA;
import org.antlr.v4.runtime.*;
import org.antlr.v4.runtime.misc.*;
import org.antlr.v4.runtime.tree.*;
import java.util.List;
import java.util.Iterator;
import java.util.ArrayList;

@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast", "CheckReturnValue"})
public class TeamAppsDtoParser extends Parser {
	static { RuntimeMetaData.checkVersion("4.12.0", RuntimeMetaData.VERSION); }

	protected static final DFA[] _decisionToDFA;
	protected static final PredictionContextCache _sharedContextCache =
		new PredictionContextCache();
	public static final int
		T__0=1, T__1=2, T__2=3, T__3=4, T__4=5, T__5=6, T__6=7, T__7=8, T__8=9, 
		T__9=10, T__10=11, T__11=12, T__12=13, T__13=14, T__14=15, T__15=16, T__16=17, 
		T__17=18, T__18=19, T__19=20, T__20=21, T__21=22, T__22=23, T__23=24, 
		T__24=25, T__25=26, T__26=27, T__27=28, T__28=29, T__29=30, T__30=31, 
		T__31=32, T__32=33, T__33=34, T__34=35, T__35=36, T__36=37, T__37=38, 
		T__38=39, T__39=40, T__40=41, T__41=42, T__42=43, T__43=44, T__44=45, 
		T__45=46, T__46=47, T__47=48, T__48=49, T__49=50, T__50=51, T__51=52, 
		T__52=53, T__53=54, T__54=55, T__55=56, T__56=57, T__57=58, T__58=59, 
		T__59=60, T__60=61, T__61=62, T__62=63, T__63=64, T__64=65, T__65=66, 
		T__66=67, T__67=68, T__68=69, T__69=70, T__70=71, T__71=72, IntegerLiteral=73, 
		FloatingPointLiteral=74, BooleanLiteral=75, CharacterLiteral=76, StringLiteral=77, 
		NullLiteral=78, Identifier=79, WS=80, COMMENT=81, LINE_COMMENT=82;
	public static final int
		RULE_classCollection = 0, RULE_typeDeclaration = 1, RULE_enumDeclaration = 2, 
		RULE_enumConstant = 3, RULE_classDeclaration = 4, RULE_interfaceDeclaration = 5, 
		RULE_superClassDecl = 6, RULE_superInterfaceDecl = 7, RULE_implementsDecl = 8, 
		RULE_classList = 9, RULE_propertyDeclaration = 10, RULE_commandDeclaration = 11, 
		RULE_eventDeclaration = 12, RULE_queryDeclaration = 13, RULE_formalParameter = 14, 
		RULE_formalParameterWithDefault = 15, RULE_defaultValueAssignment = 16, 
		RULE_type = 17, RULE_inlineEnum = 18, RULE_typeReference = 19, RULE_referenceTypeModifier = 20, 
		RULE_typeArguments = 21, RULE_typeArgument = 22, RULE_subCommandReference = 23, 
		RULE_subEventReference = 24, RULE_primitiveType = 25, RULE_typescriptFactoryAnnotation = 26, 
		RULE_referenceableAnnotation = 27, RULE_abstractModifier = 28, RULE_requiredModifier = 29, 
		RULE_staticModifier = 30, RULE_parExpression = 31, RULE_expressionList = 32, 
		RULE_statementExpression = 33, RULE_constantExpression = 34, RULE_expression = 35, 
		RULE_primary = 36, RULE_creator = 37, RULE_createdName = 38, RULE_arrayCreatorRest = 39, 
		RULE_classCreatorRest = 40, RULE_explicitGenericInvocation = 41, RULE_nonWildcardTypeArguments = 42, 
		RULE_typeList = 43, RULE_typeArgumentsOrDiamond = 44, RULE_nonWildcardTypeArgumentsOrDiamond = 45, 
		RULE_superSuffix = 46, RULE_explicitGenericInvocationSuffix = 47, RULE_arguments = 48, 
		RULE_variableInitializer = 49, RULE_arrayInitializer = 50, RULE_literal = 51;
	private static String[] makeRuleNames() {
		return new String[] {
			"classCollection", "typeDeclaration", "enumDeclaration", "enumConstant", 
			"classDeclaration", "interfaceDeclaration", "superClassDecl", "superInterfaceDecl", 
			"implementsDecl", "classList", "propertyDeclaration", "commandDeclaration", 
			"eventDeclaration", "queryDeclaration", "formalParameter", "formalParameterWithDefault", 
			"defaultValueAssignment", "type", "inlineEnum", "typeReference", "referenceTypeModifier", 
			"typeArguments", "typeArgument", "subCommandReference", "subEventReference", 
			"primitiveType", "typescriptFactoryAnnotation", "referenceableAnnotation", 
			"abstractModifier", "requiredModifier", "staticModifier", "parExpression", 
			"expressionList", "statementExpression", "constantExpression", "expression", 
			"primary", "creator", "createdName", "arrayCreatorRest", "classCreatorRest", 
			"explicitGenericInvocation", "nonWildcardTypeArguments", "typeList", 
			"typeArgumentsOrDiamond", "nonWildcardTypeArgumentsOrDiamond", "superSuffix", 
			"explicitGenericInvocationSuffix", "arguments", "variableInitializer", 
			"arrayInitializer", "literal"
		};
	}
	public static final String[] ruleNames = makeRuleNames();

	private static String[] makeLiteralNames() {
		return new String[] {
			null, "'enum'", "'{'", "','", "';'", "'}'", "'='", "'class'", "'interface'", 
			"'extends'", "'implements'", "'command'", "'('", "')'", "'returns'", 
			"'event'", "'query'", "'['", "']'", "'*'", "'<'", "'>'", "'subcommand'", 
			"'subevent'", "'boolean'", "'char'", "'byte'", "'short'", "'int'", "'long'", 
			"'float'", "'double'", "'@TypeScriptFactory'", "'@Referenceable'", "'abstract'", 
			"'required'", "'static'", "'.'", "'this'", "'super'", "'new'", "'++'", 
			"'--'", "'+'", "'-'", "'~'", "'!'", "'/'", "'%'", "'<='", "'>='", "'instanceof'", 
			"'=='", "'!='", "'&'", "'^'", "'|'", "'&&'", "'||'", "'?'", "':'", "'+='", 
			"'-='", "'*='", "'/='", "'&='", "'|='", "'^='", "'>>='", "'>>>='", "'<<='", 
			"'%='", "'void'", null, null, null, null, null, "'null'"
		};
	}
	private static final String[] _LITERAL_NAMES = makeLiteralNames();
	private static String[] makeSymbolicNames() {
		return new String[] {
			null, null, null, null, null, null, null, null, null, null, null, null, 
			null, null, null, null, null, null, null, null, null, null, null, null, 
			null, null, null, null, null, null, null, null, null, null, null, null, 
			null, null, null, null, null, null, null, null, null, null, null, null, 
			null, null, null, null, null, null, null, null, null, null, null, null, 
			null, null, null, null, null, null, null, null, null, null, null, null, 
			null, "IntegerLiteral", "FloatingPointLiteral", "BooleanLiteral", "CharacterLiteral", 
			"StringLiteral", "NullLiteral", "Identifier", "WS", "COMMENT", "LINE_COMMENT"
		};
	}
	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] = "";
			}
		}
	}

	@Override
	@Deprecated
	public String[] getTokenNames() {
		return tokenNames;
	}

	@Override

	public Vocabulary getVocabulary() {
		return VOCABULARY;
	}

	@Override
	public String getGrammarFileName() { return "TeamAppsDto.g4"; }

	@Override
	public String[] getRuleNames() { return ruleNames; }

	@Override
	public String getSerializedATN() { return _serializedATN; }

	@Override
	public ATN getATN() { return _ATN; }

	public TeamAppsDtoParser(TokenStream input) {
		super(input);
		_interp = new ParserATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache);
	}

	@SuppressWarnings("CheckReturnValue")
	public static class ClassCollectionContext extends ParserRuleContext {
		public List typeDeclaration() {
			return getRuleContexts(TypeDeclarationContext.class);
		}
		public TypeDeclarationContext typeDeclaration(int i) {
			return getRuleContext(TypeDeclarationContext.class,i);
		}
		public ClassCollectionContext(ParserRuleContext parent, int invokingState) {
			super(parent, invokingState);
		}
		@Override public int getRuleIndex() { return RULE_classCollection; }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).enterClassCollection(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).exitClassCollection(this);
		}
	}

	public final ClassCollectionContext classCollection() throws RecognitionException {
		ClassCollectionContext _localctx = new ClassCollectionContext(_ctx, getState());
		enterRule(_localctx, 0, RULE_classCollection);
		int _la;
		try {
			enterOuterAlt(_localctx, 1);
			{
			setState(107);
			_errHandler.sync(this);
			_la = _input.LA(1);
			while ((((_la) & ~0x3f) == 0 && ((1L << _la) & 21474836866L) != 0)) {
				{
				{
				setState(104);
				typeDeclaration();
				}
				}
				setState(109);
				_errHandler.sync(this);
				_la = _input.LA(1);
			}
			}
		}
		catch (RecognitionException re) {
			_localctx.exception = re;
			_errHandler.reportError(this, re);
			_errHandler.recover(this, re);
		}
		finally {
			exitRule();
		}
		return _localctx;
	}

	@SuppressWarnings("CheckReturnValue")
	public static class TypeDeclarationContext extends ParserRuleContext {
		public ClassDeclarationContext classDeclaration() {
			return getRuleContext(ClassDeclarationContext.class,0);
		}
		public InterfaceDeclarationContext interfaceDeclaration() {
			return getRuleContext(InterfaceDeclarationContext.class,0);
		}
		public EnumDeclarationContext enumDeclaration() {
			return getRuleContext(EnumDeclarationContext.class,0);
		}
		public TypeDeclarationContext(ParserRuleContext parent, int invokingState) {
			super(parent, invokingState);
		}
		@Override public int getRuleIndex() { return RULE_typeDeclaration; }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).enterTypeDeclaration(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).exitTypeDeclaration(this);
		}
	}

	public final TypeDeclarationContext typeDeclaration() throws RecognitionException {
		TypeDeclarationContext _localctx = new TypeDeclarationContext(_ctx, getState());
		enterRule(_localctx, 2, RULE_typeDeclaration);
		try {
			setState(113);
			_errHandler.sync(this);
			switch (_input.LA(1)) {
			case T__6:
			case T__31:
			case T__33:
				enterOuterAlt(_localctx, 1);
				{
				setState(110);
				classDeclaration();
				}
				break;
			case T__7:
				enterOuterAlt(_localctx, 2);
				{
				setState(111);
				interfaceDeclaration();
				}
				break;
			case T__0:
				enterOuterAlt(_localctx, 3);
				{
				setState(112);
				enumDeclaration();
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (RecognitionException re) {
			_localctx.exception = re;
			_errHandler.reportError(this, re);
			_errHandler.recover(this, re);
		}
		finally {
			exitRule();
		}
		return _localctx;
	}

	@SuppressWarnings("CheckReturnValue")
	public static class EnumDeclarationContext extends ParserRuleContext {
		public TerminalNode Identifier() { return getToken(TeamAppsDtoParser.Identifier, 0); }
		public List enumConstant() {
			return getRuleContexts(EnumConstantContext.class);
		}
		public EnumConstantContext enumConstant(int i) {
			return getRuleContext(EnumConstantContext.class,i);
		}
		public EnumDeclarationContext(ParserRuleContext parent, int invokingState) {
			super(parent, invokingState);
		}
		@Override public int getRuleIndex() { return RULE_enumDeclaration; }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).enterEnumDeclaration(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).exitEnumDeclaration(this);
		}
	}

	public final EnumDeclarationContext enumDeclaration() throws RecognitionException {
		EnumDeclarationContext _localctx = new EnumDeclarationContext(_ctx, getState());
		enterRule(_localctx, 4, RULE_enumDeclaration);
		int _la;
		try {
			enterOuterAlt(_localctx, 1);
			{
			setState(115);
			match(T__0);
			setState(116);
			match(Identifier);
			setState(117);
			match(T__1);
			setState(126);
			_errHandler.sync(this);
			_la = _input.LA(1);
			if (_la==Identifier) {
				{
				setState(118);
				enumConstant();
				setState(123);
				_errHandler.sync(this);
				_la = _input.LA(1);
				while (_la==T__2) {
					{
					{
					setState(119);
					match(T__2);
					setState(120);
					enumConstant();
					}
					}
					setState(125);
					_errHandler.sync(this);
					_la = _input.LA(1);
				}
				}
			}

			setState(129);
			_errHandler.sync(this);
			_la = _input.LA(1);
			if (_la==T__3) {
				{
				setState(128);
				match(T__3);
				}
			}

			setState(131);
			match(T__4);
			}
		}
		catch (RecognitionException re) {
			_localctx.exception = re;
			_errHandler.reportError(this, re);
			_errHandler.recover(this, re);
		}
		finally {
			exitRule();
		}
		return _localctx;
	}

	@SuppressWarnings("CheckReturnValue")
	public static class EnumConstantContext extends ParserRuleContext {
		public TerminalNode Identifier() { return getToken(TeamAppsDtoParser.Identifier, 0); }
		public TerminalNode StringLiteral() { return getToken(TeamAppsDtoParser.StringLiteral, 0); }
		public EnumConstantContext(ParserRuleContext parent, int invokingState) {
			super(parent, invokingState);
		}
		@Override public int getRuleIndex() { return RULE_enumConstant; }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).enterEnumConstant(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).exitEnumConstant(this);
		}
	}

	public final EnumConstantContext enumConstant() throws RecognitionException {
		EnumConstantContext _localctx = new EnumConstantContext(_ctx, getState());
		enterRule(_localctx, 6, RULE_enumConstant);
		int _la;
		try {
			enterOuterAlt(_localctx, 1);
			{
			setState(133);
			match(Identifier);
			setState(136);
			_errHandler.sync(this);
			_la = _input.LA(1);
			if (_la==T__5) {
				{
				setState(134);
				match(T__5);
				setState(135);
				match(StringLiteral);
				}
			}

			}
		}
		catch (RecognitionException re) {
			_localctx.exception = re;
			_errHandler.reportError(this, re);
			_errHandler.recover(this, re);
		}
		finally {
			exitRule();
		}
		return _localctx;
	}

	@SuppressWarnings("CheckReturnValue")
	public static class ClassDeclarationContext extends ParserRuleContext {
		public TerminalNode Identifier() { return getToken(TeamAppsDtoParser.Identifier, 0); }
		public TypescriptFactoryAnnotationContext typescriptFactoryAnnotation() {
			return getRuleContext(TypescriptFactoryAnnotationContext.class,0);
		}
		public AbstractModifierContext abstractModifier() {
			return getRuleContext(AbstractModifierContext.class,0);
		}
		public SuperClassDeclContext superClassDecl() {
			return getRuleContext(SuperClassDeclContext.class,0);
		}
		public ImplementsDeclContext implementsDecl() {
			return getRuleContext(ImplementsDeclContext.class,0);
		}
		public List propertyDeclaration() {
			return getRuleContexts(PropertyDeclarationContext.class);
		}
		public PropertyDeclarationContext propertyDeclaration(int i) {
			return getRuleContext(PropertyDeclarationContext.class,i);
		}
		public List commandDeclaration() {
			return getRuleContexts(CommandDeclarationContext.class);
		}
		public CommandDeclarationContext commandDeclaration(int i) {
			return getRuleContext(CommandDeclarationContext.class,i);
		}
		public List eventDeclaration() {
			return getRuleContexts(EventDeclarationContext.class);
		}
		public EventDeclarationContext eventDeclaration(int i) {
			return getRuleContext(EventDeclarationContext.class,i);
		}
		public List queryDeclaration() {
			return getRuleContexts(QueryDeclarationContext.class);
		}
		public QueryDeclarationContext queryDeclaration(int i) {
			return getRuleContext(QueryDeclarationContext.class,i);
		}
		public ClassDeclarationContext(ParserRuleContext parent, int invokingState) {
			super(parent, invokingState);
		}
		@Override public int getRuleIndex() { return RULE_classDeclaration; }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).enterClassDeclaration(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).exitClassDeclaration(this);
		}
	}

	public final ClassDeclarationContext classDeclaration() throws RecognitionException {
		ClassDeclarationContext _localctx = new ClassDeclarationContext(_ctx, getState());
		enterRule(_localctx, 8, RULE_classDeclaration);
		int _la;
		try {
			enterOuterAlt(_localctx, 1);
			{
			setState(139);
			_errHandler.sync(this);
			_la = _input.LA(1);
			if (_la==T__31) {
				{
				setState(138);
				typescriptFactoryAnnotation();
				}
			}

			setState(142);
			_errHandler.sync(this);
			_la = _input.LA(1);
			if (_la==T__33) {
				{
				setState(141);
				abstractModifier();
				}
			}

			setState(144);
			match(T__6);
			setState(145);
			match(Identifier);
			setState(147);
			_errHandler.sync(this);
			_la = _input.LA(1);
			if (_la==T__8) {
				{
				setState(146);
				superClassDecl();
				}
			}

			setState(150);
			_errHandler.sync(this);
			_la = _input.LA(1);
			if (_la==T__9) {
				{
				setState(149);
				implementsDecl();
				}
			}

			setState(152);
			match(T__1);
			setState(159);
			_errHandler.sync(this);
			_la = _input.LA(1);
			while ((((_la) & ~0x3f) == 0 && ((1L << _la) & 115960023042L) != 0) || _la==Identifier) {
				{
				setState(157);
				_errHandler.sync(this);
				switch ( getInterpreter().adaptivePredict(_input,10,_ctx) ) {
				case 1:
					{
					setState(153);
					propertyDeclaration();
					}
					break;
				case 2:
					{
					setState(154);
					commandDeclaration();
					}
					break;
				case 3:
					{
					setState(155);
					eventDeclaration();
					}
					break;
				case 4:
					{
					setState(156);
					queryDeclaration();
					}
					break;
				}
				}
				setState(161);
				_errHandler.sync(this);
				_la = _input.LA(1);
			}
			setState(162);
			match(T__4);
			}
		}
		catch (RecognitionException re) {
			_localctx.exception = re;
			_errHandler.reportError(this, re);
			_errHandler.recover(this, re);
		}
		finally {
			exitRule();
		}
		return _localctx;
	}

	@SuppressWarnings("CheckReturnValue")
	public static class InterfaceDeclarationContext extends ParserRuleContext {
		public TerminalNode Identifier() { return getToken(TeamAppsDtoParser.Identifier, 0); }
		public SuperInterfaceDeclContext superInterfaceDecl() {
			return getRuleContext(SuperInterfaceDeclContext.class,0);
		}
		public List propertyDeclaration() {
			return getRuleContexts(PropertyDeclarationContext.class);
		}
		public PropertyDeclarationContext propertyDeclaration(int i) {
			return getRuleContext(PropertyDeclarationContext.class,i);
		}
		public List commandDeclaration() {
			return getRuleContexts(CommandDeclarationContext.class);
		}
		public CommandDeclarationContext commandDeclaration(int i) {
			return getRuleContext(CommandDeclarationContext.class,i);
		}
		public List eventDeclaration() {
			return getRuleContexts(EventDeclarationContext.class);
		}
		public EventDeclarationContext eventDeclaration(int i) {
			return getRuleContext(EventDeclarationContext.class,i);
		}
		public List queryDeclaration() {
			return getRuleContexts(QueryDeclarationContext.class);
		}
		public QueryDeclarationContext queryDeclaration(int i) {
			return getRuleContext(QueryDeclarationContext.class,i);
		}
		public InterfaceDeclarationContext(ParserRuleContext parent, int invokingState) {
			super(parent, invokingState);
		}
		@Override public int getRuleIndex() { return RULE_interfaceDeclaration; }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).enterInterfaceDeclaration(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).exitInterfaceDeclaration(this);
		}
	}

	public final InterfaceDeclarationContext interfaceDeclaration() throws RecognitionException {
		InterfaceDeclarationContext _localctx = new InterfaceDeclarationContext(_ctx, getState());
		enterRule(_localctx, 10, RULE_interfaceDeclaration);
		int _la;
		try {
			enterOuterAlt(_localctx, 1);
			{
			setState(164);
			match(T__7);
			setState(165);
			match(Identifier);
			setState(167);
			_errHandler.sync(this);
			_la = _input.LA(1);
			if (_la==T__8) {
				{
				setState(166);
				superInterfaceDecl();
				}
			}

			setState(169);
			match(T__1);
			setState(176);
			_errHandler.sync(this);
			_la = _input.LA(1);
			while ((((_la) & ~0x3f) == 0 && ((1L << _la) & 115960023042L) != 0) || _la==Identifier) {
				{
				setState(174);
				_errHandler.sync(this);
				switch ( getInterpreter().adaptivePredict(_input,13,_ctx) ) {
				case 1:
					{
					setState(170);
					propertyDeclaration();
					}
					break;
				case 2:
					{
					setState(171);
					commandDeclaration();
					}
					break;
				case 3:
					{
					setState(172);
					eventDeclaration();
					}
					break;
				case 4:
					{
					setState(173);
					queryDeclaration();
					}
					break;
				}
				}
				setState(178);
				_errHandler.sync(this);
				_la = _input.LA(1);
			}
			setState(179);
			match(T__4);
			}
		}
		catch (RecognitionException re) {
			_localctx.exception = re;
			_errHandler.reportError(this, re);
			_errHandler.recover(this, re);
		}
		finally {
			exitRule();
		}
		return _localctx;
	}

	@SuppressWarnings("CheckReturnValue")
	public static class SuperClassDeclContext extends ParserRuleContext {
		public TerminalNode Identifier() { return getToken(TeamAppsDtoParser.Identifier, 0); }
		public SuperClassDeclContext(ParserRuleContext parent, int invokingState) {
			super(parent, invokingState);
		}
		@Override public int getRuleIndex() { return RULE_superClassDecl; }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).enterSuperClassDecl(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).exitSuperClassDecl(this);
		}
	}

	public final SuperClassDeclContext superClassDecl() throws RecognitionException {
		SuperClassDeclContext _localctx = new SuperClassDeclContext(_ctx, getState());
		enterRule(_localctx, 12, RULE_superClassDecl);
		try {
			enterOuterAlt(_localctx, 1);
			{
			setState(181);
			match(T__8);
			setState(182);
			match(Identifier);
			}
		}
		catch (RecognitionException re) {
			_localctx.exception = re;
			_errHandler.reportError(this, re);
			_errHandler.recover(this, re);
		}
		finally {
			exitRule();
		}
		return _localctx;
	}

	@SuppressWarnings("CheckReturnValue")
	public static class SuperInterfaceDeclContext extends ParserRuleContext {
		public ClassListContext classList() {
			return getRuleContext(ClassListContext.class,0);
		}
		public SuperInterfaceDeclContext(ParserRuleContext parent, int invokingState) {
			super(parent, invokingState);
		}
		@Override public int getRuleIndex() { return RULE_superInterfaceDecl; }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).enterSuperInterfaceDecl(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).exitSuperInterfaceDecl(this);
		}
	}

	public final SuperInterfaceDeclContext superInterfaceDecl() throws RecognitionException {
		SuperInterfaceDeclContext _localctx = new SuperInterfaceDeclContext(_ctx, getState());
		enterRule(_localctx, 14, RULE_superInterfaceDecl);
		try {
			enterOuterAlt(_localctx, 1);
			{
			setState(184);
			match(T__8);
			setState(185);
			classList();
			}
		}
		catch (RecognitionException re) {
			_localctx.exception = re;
			_errHandler.reportError(this, re);
			_errHandler.recover(this, re);
		}
		finally {
			exitRule();
		}
		return _localctx;
	}

	@SuppressWarnings("CheckReturnValue")
	public static class ImplementsDeclContext extends ParserRuleContext {
		public ClassListContext classList() {
			return getRuleContext(ClassListContext.class,0);
		}
		public ImplementsDeclContext(ParserRuleContext parent, int invokingState) {
			super(parent, invokingState);
		}
		@Override public int getRuleIndex() { return RULE_implementsDecl; }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).enterImplementsDecl(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).exitImplementsDecl(this);
		}
	}

	public final ImplementsDeclContext implementsDecl() throws RecognitionException {
		ImplementsDeclContext _localctx = new ImplementsDeclContext(_ctx, getState());
		enterRule(_localctx, 16, RULE_implementsDecl);
		try {
			enterOuterAlt(_localctx, 1);
			{
			setState(187);
			match(T__9);
			setState(188);
			classList();
			}
		}
		catch (RecognitionException re) {
			_localctx.exception = re;
			_errHandler.reportError(this, re);
			_errHandler.recover(this, re);
		}
		finally {
			exitRule();
		}
		return _localctx;
	}

	@SuppressWarnings("CheckReturnValue")
	public static class ClassListContext extends ParserRuleContext {
		public List Identifier() { return getTokens(TeamAppsDtoParser.Identifier); }
		public TerminalNode Identifier(int i) {
			return getToken(TeamAppsDtoParser.Identifier, i);
		}
		public ClassListContext(ParserRuleContext parent, int invokingState) {
			super(parent, invokingState);
		}
		@Override public int getRuleIndex() { return RULE_classList; }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).enterClassList(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).exitClassList(this);
		}
	}

	public final ClassListContext classList() throws RecognitionException {
		ClassListContext _localctx = new ClassListContext(_ctx, getState());
		enterRule(_localctx, 18, RULE_classList);
		int _la;
		try {
			int _alt;
			enterOuterAlt(_localctx, 1);
			{
			setState(198);
			_errHandler.sync(this);
			_la = _input.LA(1);
			if (_la==Identifier) {
				{
				setState(194);
				_errHandler.sync(this);
				_alt = getInterpreter().adaptivePredict(_input,15,_ctx);
				while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
					if ( _alt==1 ) {
						{
						{
						setState(190);
						match(Identifier);
						setState(191);
						match(T__2);
						}
						} 
					}
					setState(196);
					_errHandler.sync(this);
					_alt = getInterpreter().adaptivePredict(_input,15,_ctx);
				}
				setState(197);
				match(Identifier);
				}
			}

			}
		}
		catch (RecognitionException re) {
			_localctx.exception = re;
			_errHandler.reportError(this, re);
			_errHandler.recover(this, re);
		}
		finally {
			exitRule();
		}
		return _localctx;
	}

	@SuppressWarnings("CheckReturnValue")
	public static class PropertyDeclarationContext extends ParserRuleContext {
		public TypeContext type() {
			return getRuleContext(TypeContext.class,0);
		}
		public TerminalNode Identifier() { return getToken(TeamAppsDtoParser.Identifier, 0); }
		public ReferenceableAnnotationContext referenceableAnnotation() {
			return getRuleContext(ReferenceableAnnotationContext.class,0);
		}
		public RequiredModifierContext requiredModifier() {
			return getRuleContext(RequiredModifierContext.class,0);
		}
		public DefaultValueAssignmentContext defaultValueAssignment() {
			return getRuleContext(DefaultValueAssignmentContext.class,0);
		}
		public PropertyDeclarationContext(ParserRuleContext parent, int invokingState) {
			super(parent, invokingState);
		}
		@Override public int getRuleIndex() { return RULE_propertyDeclaration; }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).enterPropertyDeclaration(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).exitPropertyDeclaration(this);
		}
	}

	public final PropertyDeclarationContext propertyDeclaration() throws RecognitionException {
		PropertyDeclarationContext _localctx = new PropertyDeclarationContext(_ctx, getState());
		enterRule(_localctx, 20, RULE_propertyDeclaration);
		int _la;
		try {
			enterOuterAlt(_localctx, 1);
			{
			setState(201);
			_errHandler.sync(this);
			_la = _input.LA(1);
			if (_la==T__32) {
				{
				setState(200);
				referenceableAnnotation();
				}
			}

			setState(204);
			_errHandler.sync(this);
			_la = _input.LA(1);
			if (_la==T__34) {
				{
				setState(203);
				requiredModifier();
				}
			}

			setState(206);
			type();
			setState(207);
			match(Identifier);
			setState(209);
			_errHandler.sync(this);
			_la = _input.LA(1);
			if (_la==T__5) {
				{
				setState(208);
				defaultValueAssignment();
				}
			}

			setState(211);
			match(T__3);
			}
		}
		catch (RecognitionException re) {
			_localctx.exception = re;
			_errHandler.reportError(this, re);
			_errHandler.recover(this, re);
		}
		finally {
			exitRule();
		}
		return _localctx;
	}

	@SuppressWarnings("CheckReturnValue")
	public static class CommandDeclarationContext extends ParserRuleContext {
		public TerminalNode Identifier() { return getToken(TeamAppsDtoParser.Identifier, 0); }
		public StaticModifierContext staticModifier() {
			return getRuleContext(StaticModifierContext.class,0);
		}
		public List formalParameterWithDefault() {
			return getRuleContexts(FormalParameterWithDefaultContext.class);
		}
		public FormalParameterWithDefaultContext formalParameterWithDefault(int i) {
			return getRuleContext(FormalParameterWithDefaultContext.class,i);
		}
		public TypeContext type() {
			return getRuleContext(TypeContext.class,0);
		}
		public CommandDeclarationContext(ParserRuleContext parent, int invokingState) {
			super(parent, invokingState);
		}
		@Override public int getRuleIndex() { return RULE_commandDeclaration; }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).enterCommandDeclaration(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).exitCommandDeclaration(this);
		}
	}

	public final CommandDeclarationContext commandDeclaration() throws RecognitionException {
		CommandDeclarationContext _localctx = new CommandDeclarationContext(_ctx, getState());
		enterRule(_localctx, 22, RULE_commandDeclaration);
		int _la;
		try {
			int _alt;
			enterOuterAlt(_localctx, 1);
			{
			setState(214);
			_errHandler.sync(this);
			_la = _input.LA(1);
			if (_la==T__35) {
				{
				setState(213);
				staticModifier();
				}
			}

			setState(216);
			match(T__10);
			setState(217);
			match(Identifier);
			setState(218);
			match(T__11);
			setState(228);
			_errHandler.sync(this);
			_la = _input.LA(1);
			if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 4290772994L) != 0) || _la==Identifier) {
				{
				setState(224);
				_errHandler.sync(this);
				_alt = getInterpreter().adaptivePredict(_input,21,_ctx);
				while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
					if ( _alt==1 ) {
						{
						{
						setState(219);
						formalParameterWithDefault();
						setState(220);
						match(T__2);
						}
						} 
					}
					setState(226);
					_errHandler.sync(this);
					_alt = getInterpreter().adaptivePredict(_input,21,_ctx);
				}
				setState(227);
				formalParameterWithDefault();
				}
			}

			setState(230);
			match(T__12);
			setState(233);
			_errHandler.sync(this);
			_la = _input.LA(1);
			if (_la==T__13) {
				{
				setState(231);
				match(T__13);
				setState(232);
				type();
				}
			}

			setState(235);
			match(T__3);
			}
		}
		catch (RecognitionException re) {
			_localctx.exception = re;
			_errHandler.reportError(this, re);
			_errHandler.recover(this, re);
		}
		finally {
			exitRule();
		}
		return _localctx;
	}

	@SuppressWarnings("CheckReturnValue")
	public static class EventDeclarationContext extends ParserRuleContext {
		public TerminalNode Identifier() { return getToken(TeamAppsDtoParser.Identifier, 0); }
		public StaticModifierContext staticModifier() {
			return getRuleContext(StaticModifierContext.class,0);
		}
		public List formalParameterWithDefault() {
			return getRuleContexts(FormalParameterWithDefaultContext.class);
		}
		public FormalParameterWithDefaultContext formalParameterWithDefault(int i) {
			return getRuleContext(FormalParameterWithDefaultContext.class,i);
		}
		public EventDeclarationContext(ParserRuleContext parent, int invokingState) {
			super(parent, invokingState);
		}
		@Override public int getRuleIndex() { return RULE_eventDeclaration; }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).enterEventDeclaration(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).exitEventDeclaration(this);
		}
	}

	public final EventDeclarationContext eventDeclaration() throws RecognitionException {
		EventDeclarationContext _localctx = new EventDeclarationContext(_ctx, getState());
		enterRule(_localctx, 24, RULE_eventDeclaration);
		int _la;
		try {
			int _alt;
			enterOuterAlt(_localctx, 1);
			{
			setState(238);
			_errHandler.sync(this);
			_la = _input.LA(1);
			if (_la==T__35) {
				{
				setState(237);
				staticModifier();
				}
			}

			setState(240);
			match(T__14);
			setState(241);
			match(Identifier);
			setState(242);
			match(T__11);
			setState(252);
			_errHandler.sync(this);
			_la = _input.LA(1);
			if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 4290772994L) != 0) || _la==Identifier) {
				{
				setState(248);
				_errHandler.sync(this);
				_alt = getInterpreter().adaptivePredict(_input,25,_ctx);
				while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
					if ( _alt==1 ) {
						{
						{
						setState(243);
						formalParameterWithDefault();
						setState(244);
						match(T__2);
						}
						} 
					}
					setState(250);
					_errHandler.sync(this);
					_alt = getInterpreter().adaptivePredict(_input,25,_ctx);
				}
				setState(251);
				formalParameterWithDefault();
				}
			}

			setState(254);
			match(T__12);
			setState(255);
			match(T__3);
			}
		}
		catch (RecognitionException re) {
			_localctx.exception = re;
			_errHandler.reportError(this, re);
			_errHandler.recover(this, re);
		}
		finally {
			exitRule();
		}
		return _localctx;
	}

	@SuppressWarnings("CheckReturnValue")
	public static class QueryDeclarationContext extends ParserRuleContext {
		public TerminalNode Identifier() { return getToken(TeamAppsDtoParser.Identifier, 0); }
		public TypeContext type() {
			return getRuleContext(TypeContext.class,0);
		}
		public List formalParameterWithDefault() {
			return getRuleContexts(FormalParameterWithDefaultContext.class);
		}
		public FormalParameterWithDefaultContext formalParameterWithDefault(int i) {
			return getRuleContext(FormalParameterWithDefaultContext.class,i);
		}
		public QueryDeclarationContext(ParserRuleContext parent, int invokingState) {
			super(parent, invokingState);
		}
		@Override public int getRuleIndex() { return RULE_queryDeclaration; }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).enterQueryDeclaration(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).exitQueryDeclaration(this);
		}
	}

	public final QueryDeclarationContext queryDeclaration() throws RecognitionException {
		QueryDeclarationContext _localctx = new QueryDeclarationContext(_ctx, getState());
		enterRule(_localctx, 26, RULE_queryDeclaration);
		int _la;
		try {
			int _alt;
			enterOuterAlt(_localctx, 1);
			{
			setState(257);
			match(T__15);
			setState(258);
			match(Identifier);
			setState(259);
			match(T__11);
			setState(269);
			_errHandler.sync(this);
			_la = _input.LA(1);
			if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 4290772994L) != 0) || _la==Identifier) {
				{
				setState(265);
				_errHandler.sync(this);
				_alt = getInterpreter().adaptivePredict(_input,27,_ctx);
				while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
					if ( _alt==1 ) {
						{
						{
						setState(260);
						formalParameterWithDefault();
						setState(261);
						match(T__2);
						}
						} 
					}
					setState(267);
					_errHandler.sync(this);
					_alt = getInterpreter().adaptivePredict(_input,27,_ctx);
				}
				setState(268);
				formalParameterWithDefault();
				}
			}

			setState(271);
			match(T__12);
			setState(272);
			match(T__13);
			setState(273);
			type();
			setState(274);
			match(T__3);
			}
		}
		catch (RecognitionException re) {
			_localctx.exception = re;
			_errHandler.reportError(this, re);
			_errHandler.recover(this, re);
		}
		finally {
			exitRule();
		}
		return _localctx;
	}

	@SuppressWarnings("CheckReturnValue")
	public static class FormalParameterContext extends ParserRuleContext {
		public TypeContext type() {
			return getRuleContext(TypeContext.class,0);
		}
		public TerminalNode Identifier() { return getToken(TeamAppsDtoParser.Identifier, 0); }
		public FormalParameterContext(ParserRuleContext parent, int invokingState) {
			super(parent, invokingState);
		}
		@Override public int getRuleIndex() { return RULE_formalParameter; }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).enterFormalParameter(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).exitFormalParameter(this);
		}
	}

	public final FormalParameterContext formalParameter() throws RecognitionException {
		FormalParameterContext _localctx = new FormalParameterContext(_ctx, getState());
		enterRule(_localctx, 28, RULE_formalParameter);
		try {
			enterOuterAlt(_localctx, 1);
			{
			setState(276);
			type();
			setState(277);
			match(Identifier);
			}
		}
		catch (RecognitionException re) {
			_localctx.exception = re;
			_errHandler.reportError(this, re);
			_errHandler.recover(this, re);
		}
		finally {
			exitRule();
		}
		return _localctx;
	}

	@SuppressWarnings("CheckReturnValue")
	public static class FormalParameterWithDefaultContext extends ParserRuleContext {
		public TypeContext type() {
			return getRuleContext(TypeContext.class,0);
		}
		public TerminalNode Identifier() { return getToken(TeamAppsDtoParser.Identifier, 0); }
		public DefaultValueAssignmentContext defaultValueAssignment() {
			return getRuleContext(DefaultValueAssignmentContext.class,0);
		}
		public FormalParameterWithDefaultContext(ParserRuleContext parent, int invokingState) {
			super(parent, invokingState);
		}
		@Override public int getRuleIndex() { return RULE_formalParameterWithDefault; }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).enterFormalParameterWithDefault(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).exitFormalParameterWithDefault(this);
		}
	}

	public final FormalParameterWithDefaultContext formalParameterWithDefault() throws RecognitionException {
		FormalParameterWithDefaultContext _localctx = new FormalParameterWithDefaultContext(_ctx, getState());
		enterRule(_localctx, 30, RULE_formalParameterWithDefault);
		int _la;
		try {
			enterOuterAlt(_localctx, 1);
			{
			setState(279);
			type();
			setState(280);
			match(Identifier);
			setState(282);
			_errHandler.sync(this);
			_la = _input.LA(1);
			if (_la==T__5) {
				{
				setState(281);
				defaultValueAssignment();
				}
			}

			}
		}
		catch (RecognitionException re) {
			_localctx.exception = re;
			_errHandler.reportError(this, re);
			_errHandler.recover(this, re);
		}
		finally {
			exitRule();
		}
		return _localctx;
	}

	@SuppressWarnings("CheckReturnValue")
	public static class DefaultValueAssignmentContext extends ParserRuleContext {
		public ExpressionContext expression() {
			return getRuleContext(ExpressionContext.class,0);
		}
		public DefaultValueAssignmentContext(ParserRuleContext parent, int invokingState) {
			super(parent, invokingState);
		}
		@Override public int getRuleIndex() { return RULE_defaultValueAssignment; }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).enterDefaultValueAssignment(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).exitDefaultValueAssignment(this);
		}
	}

	public final DefaultValueAssignmentContext defaultValueAssignment() throws RecognitionException {
		DefaultValueAssignmentContext _localctx = new DefaultValueAssignmentContext(_ctx, getState());
		enterRule(_localctx, 32, RULE_defaultValueAssignment);
		try {
			enterOuterAlt(_localctx, 1);
			{
			setState(284);
			match(T__5);
			setState(285);
			expression(0);
			}
		}
		catch (RecognitionException re) {
			_localctx.exception = re;
			_errHandler.reportError(this, re);
			_errHandler.recover(this, re);
		}
		finally {
			exitRule();
		}
		return _localctx;
	}

	@SuppressWarnings("CheckReturnValue")
	public static class TypeContext extends ParserRuleContext {
		public InlineEnumContext inlineEnum() {
			return getRuleContext(InlineEnumContext.class,0);
		}
		public TypeReferenceContext typeReference() {
			return getRuleContext(TypeReferenceContext.class,0);
		}
		public SubCommandReferenceContext subCommandReference() {
			return getRuleContext(SubCommandReferenceContext.class,0);
		}
		public SubEventReferenceContext subEventReference() {
			return getRuleContext(SubEventReferenceContext.class,0);
		}
		public PrimitiveTypeContext primitiveType() {
			return getRuleContext(PrimitiveTypeContext.class,0);
		}
		public TypeContext(ParserRuleContext parent, int invokingState) {
			super(parent, invokingState);
		}
		@Override public int getRuleIndex() { return RULE_type; }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).enterType(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).exitType(this);
		}
	}

	public final TypeContext type() throws RecognitionException {
		TypeContext _localctx = new TypeContext(_ctx, getState());
		enterRule(_localctx, 34, RULE_type);
		try {
			int _alt;
			setState(313);
			_errHandler.sync(this);
			switch (_input.LA(1)) {
			case T__0:
				enterOuterAlt(_localctx, 1);
				{
				setState(287);
				inlineEnum();
				setState(292);
				_errHandler.sync(this);
				_alt = getInterpreter().adaptivePredict(_input,30,_ctx);
				while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
					if ( _alt==1 ) {
						{
						{
						setState(288);
						match(T__16);
						setState(289);
						match(T__17);
						}
						} 
					}
					setState(294);
					_errHandler.sync(this);
					_alt = getInterpreter().adaptivePredict(_input,30,_ctx);
				}
				}
				break;
			case Identifier:
				enterOuterAlt(_localctx, 2);
				{
				setState(295);
				typeReference();
				setState(300);
				_errHandler.sync(this);
				_alt = getInterpreter().adaptivePredict(_input,31,_ctx);
				while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
					if ( _alt==1 ) {
						{
						{
						setState(296);
						match(T__16);
						setState(297);
						match(T__17);
						}
						} 
					}
					setState(302);
					_errHandler.sync(this);
					_alt = getInterpreter().adaptivePredict(_input,31,_ctx);
				}
				}
				break;
			case T__21:
				enterOuterAlt(_localctx, 3);
				{
				setState(303);
				subCommandReference();
				}
				break;
			case T__22:
				enterOuterAlt(_localctx, 4);
				{
				setState(304);
				subEventReference();
				}
				break;
			case T__23:
			case T__24:
			case T__25:
			case T__26:
			case T__27:
			case T__28:
			case T__29:
			case T__30:
				enterOuterAlt(_localctx, 5);
				{
				setState(305);
				primitiveType();
				setState(310);
				_errHandler.sync(this);
				_alt = getInterpreter().adaptivePredict(_input,32,_ctx);
				while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
					if ( _alt==1 ) {
						{
						{
						setState(306);
						match(T__16);
						setState(307);
						match(T__17);
						}
						} 
					}
					setState(312);
					_errHandler.sync(this);
					_alt = getInterpreter().adaptivePredict(_input,32,_ctx);
				}
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (RecognitionException re) {
			_localctx.exception = re;
			_errHandler.reportError(this, re);
			_errHandler.recover(this, re);
		}
		finally {
			exitRule();
		}
		return _localctx;
	}

	@SuppressWarnings("CheckReturnValue")
	public static class InlineEnumContext extends ParserRuleContext {
		public List enumConstant() {
			return getRuleContexts(EnumConstantContext.class);
		}
		public EnumConstantContext enumConstant(int i) {
			return getRuleContext(EnumConstantContext.class,i);
		}
		public InlineEnumContext(ParserRuleContext parent, int invokingState) {
			super(parent, invokingState);
		}
		@Override public int getRuleIndex() { return RULE_inlineEnum; }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).enterInlineEnum(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).exitInlineEnum(this);
		}
	}

	public final InlineEnumContext inlineEnum() throws RecognitionException {
		InlineEnumContext _localctx = new InlineEnumContext(_ctx, getState());
		enterRule(_localctx, 36, RULE_inlineEnum);
		int _la;
		try {
			enterOuterAlt(_localctx, 1);
			{
			setState(315);
			match(T__0);
			setState(316);
			match(T__1);
			{
			setState(317);
			enumConstant();
			setState(322);
			_errHandler.sync(this);
			_la = _input.LA(1);
			while (_la==T__2) {
				{
				{
				setState(318);
				match(T__2);
				setState(319);
				enumConstant();
				}
				}
				setState(324);
				_errHandler.sync(this);
				_la = _input.LA(1);
			}
			}
			setState(325);
			match(T__4);
			}
		}
		catch (RecognitionException re) {
			_localctx.exception = re;
			_errHandler.reportError(this, re);
			_errHandler.recover(this, re);
		}
		finally {
			exitRule();
		}
		return _localctx;
	}

	@SuppressWarnings("CheckReturnValue")
	public static class TypeReferenceContext extends ParserRuleContext {
		public TerminalNode Identifier() { return getToken(TeamAppsDtoParser.Identifier, 0); }
		public ReferenceTypeModifierContext referenceTypeModifier() {
			return getRuleContext(ReferenceTypeModifierContext.class,0);
		}
		public TypeArgumentsContext typeArguments() {
			return getRuleContext(TypeArgumentsContext.class,0);
		}
		public TypeReferenceContext(ParserRuleContext parent, int invokingState) {
			super(parent, invokingState);
		}
		@Override public int getRuleIndex() { return RULE_typeReference; }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).enterTypeReference(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).exitTypeReference(this);
		}
	}

	public final TypeReferenceContext typeReference() throws RecognitionException {
		TypeReferenceContext _localctx = new TypeReferenceContext(_ctx, getState());
		enterRule(_localctx, 38, RULE_typeReference);
		try {
			enterOuterAlt(_localctx, 1);
			{
			setState(327);
			match(Identifier);
			setState(329);
			_errHandler.sync(this);
			switch ( getInterpreter().adaptivePredict(_input,35,_ctx) ) {
			case 1:
				{
				setState(328);
				referenceTypeModifier();
				}
				break;
			}
			setState(332);
			_errHandler.sync(this);
			switch ( getInterpreter().adaptivePredict(_input,36,_ctx) ) {
			case 1:
				{
				setState(331);
				typeArguments();
				}
				break;
			}
			}
		}
		catch (RecognitionException re) {
			_localctx.exception = re;
			_errHandler.reportError(this, re);
			_errHandler.recover(this, re);
		}
		finally {
			exitRule();
		}
		return _localctx;
	}

	@SuppressWarnings("CheckReturnValue")
	public static class ReferenceTypeModifierContext extends ParserRuleContext {
		public ReferenceTypeModifierContext(ParserRuleContext parent, int invokingState) {
			super(parent, invokingState);
		}
		@Override public int getRuleIndex() { return RULE_referenceTypeModifier; }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).enterReferenceTypeModifier(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).exitReferenceTypeModifier(this);
		}
	}

	public final ReferenceTypeModifierContext referenceTypeModifier() throws RecognitionException {
		ReferenceTypeModifierContext _localctx = new ReferenceTypeModifierContext(_ctx, getState());
		enterRule(_localctx, 40, RULE_referenceTypeModifier);
		try {
			enterOuterAlt(_localctx, 1);
			{
			setState(334);
			match(T__18);
			}
		}
		catch (RecognitionException re) {
			_localctx.exception = re;
			_errHandler.reportError(this, re);
			_errHandler.recover(this, re);
		}
		finally {
			exitRule();
		}
		return _localctx;
	}

	@SuppressWarnings("CheckReturnValue")
	public static class TypeArgumentsContext extends ParserRuleContext {
		public List typeArgument() {
			return getRuleContexts(TypeArgumentContext.class);
		}
		public TypeArgumentContext typeArgument(int i) {
			return getRuleContext(TypeArgumentContext.class,i);
		}
		public TypeArgumentsContext(ParserRuleContext parent, int invokingState) {
			super(parent, invokingState);
		}
		@Override public int getRuleIndex() { return RULE_typeArguments; }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).enterTypeArguments(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).exitTypeArguments(this);
		}
	}

	public final TypeArgumentsContext typeArguments() throws RecognitionException {
		TypeArgumentsContext _localctx = new TypeArgumentsContext(_ctx, getState());
		enterRule(_localctx, 42, RULE_typeArguments);
		int _la;
		try {
			enterOuterAlt(_localctx, 1);
			{
			setState(336);
			match(T__19);
			setState(337);
			typeArgument();
			setState(342);
			_errHandler.sync(this);
			_la = _input.LA(1);
			while (_la==T__2) {
				{
				{
				setState(338);
				match(T__2);
				setState(339);
				typeArgument();
				}
				}
				setState(344);
				_errHandler.sync(this);
				_la = _input.LA(1);
			}
			setState(345);
			match(T__20);
			}
		}
		catch (RecognitionException re) {
			_localctx.exception = re;
			_errHandler.reportError(this, re);
			_errHandler.recover(this, re);
		}
		finally {
			exitRule();
		}
		return _localctx;
	}

	@SuppressWarnings("CheckReturnValue")
	public static class TypeArgumentContext extends ParserRuleContext {
		public TypeContext type() {
			return getRuleContext(TypeContext.class,0);
		}
		public TypeArgumentContext(ParserRuleContext parent, int invokingState) {
			super(parent, invokingState);
		}
		@Override public int getRuleIndex() { return RULE_typeArgument; }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).enterTypeArgument(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).exitTypeArgument(this);
		}
	}

	public final TypeArgumentContext typeArgument() throws RecognitionException {
		TypeArgumentContext _localctx = new TypeArgumentContext(_ctx, getState());
		enterRule(_localctx, 44, RULE_typeArgument);
		try {
			enterOuterAlt(_localctx, 1);
			{
			setState(347);
			type();
			}
		}
		catch (RecognitionException re) {
			_localctx.exception = re;
			_errHandler.reportError(this, re);
			_errHandler.recover(this, re);
		}
		finally {
			exitRule();
		}
		return _localctx;
	}

	@SuppressWarnings("CheckReturnValue")
	public static class SubCommandReferenceContext extends ParserRuleContext {
		public TypeReferenceContext typeReference() {
			return getRuleContext(TypeReferenceContext.class,0);
		}
		public SubCommandReferenceContext(ParserRuleContext parent, int invokingState) {
			super(parent, invokingState);
		}
		@Override public int getRuleIndex() { return RULE_subCommandReference; }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).enterSubCommandReference(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).exitSubCommandReference(this);
		}
	}

	public final SubCommandReferenceContext subCommandReference() throws RecognitionException {
		SubCommandReferenceContext _localctx = new SubCommandReferenceContext(_ctx, getState());
		enterRule(_localctx, 46, RULE_subCommandReference);
		try {
			enterOuterAlt(_localctx, 1);
			{
			setState(349);
			match(T__21);
			setState(350);
			match(T__19);
			setState(351);
			typeReference();
			setState(352);
			match(T__20);
			}
		}
		catch (RecognitionException re) {
			_localctx.exception = re;
			_errHandler.reportError(this, re);
			_errHandler.recover(this, re);
		}
		finally {
			exitRule();
		}
		return _localctx;
	}

	@SuppressWarnings("CheckReturnValue")
	public static class SubEventReferenceContext extends ParserRuleContext {
		public TypeReferenceContext typeReference() {
			return getRuleContext(TypeReferenceContext.class,0);
		}
		public SubEventReferenceContext(ParserRuleContext parent, int invokingState) {
			super(parent, invokingState);
		}
		@Override public int getRuleIndex() { return RULE_subEventReference; }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).enterSubEventReference(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).exitSubEventReference(this);
		}
	}

	public final SubEventReferenceContext subEventReference() throws RecognitionException {
		SubEventReferenceContext _localctx = new SubEventReferenceContext(_ctx, getState());
		enterRule(_localctx, 48, RULE_subEventReference);
		try {
			enterOuterAlt(_localctx, 1);
			{
			setState(354);
			match(T__22);
			setState(355);
			match(T__19);
			setState(356);
			typeReference();
			setState(357);
			match(T__20);
			}
		}
		catch (RecognitionException re) {
			_localctx.exception = re;
			_errHandler.reportError(this, re);
			_errHandler.recover(this, re);
		}
		finally {
			exitRule();
		}
		return _localctx;
	}

	@SuppressWarnings("CheckReturnValue")
	public static class PrimitiveTypeContext extends ParserRuleContext {
		public PrimitiveTypeContext(ParserRuleContext parent, int invokingState) {
			super(parent, invokingState);
		}
		@Override public int getRuleIndex() { return RULE_primitiveType; }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).enterPrimitiveType(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).exitPrimitiveType(this);
		}
	}

	public final PrimitiveTypeContext primitiveType() throws RecognitionException {
		PrimitiveTypeContext _localctx = new PrimitiveTypeContext(_ctx, getState());
		enterRule(_localctx, 50, RULE_primitiveType);
		int _la;
		try {
			enterOuterAlt(_localctx, 1);
			{
			setState(359);
			_la = _input.LA(1);
			if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & 4278190080L) != 0)) ) {
			_errHandler.recoverInline(this);
			}
			else {
				if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
				_errHandler.reportMatch(this);
				consume();
			}
			}
		}
		catch (RecognitionException re) {
			_localctx.exception = re;
			_errHandler.reportError(this, re);
			_errHandler.recover(this, re);
		}
		finally {
			exitRule();
		}
		return _localctx;
	}

	@SuppressWarnings("CheckReturnValue")
	public static class TypescriptFactoryAnnotationContext extends ParserRuleContext {
		public TypescriptFactoryAnnotationContext(ParserRuleContext parent, int invokingState) {
			super(parent, invokingState);
		}
		@Override public int getRuleIndex() { return RULE_typescriptFactoryAnnotation; }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).enterTypescriptFactoryAnnotation(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).exitTypescriptFactoryAnnotation(this);
		}
	}

	public final TypescriptFactoryAnnotationContext typescriptFactoryAnnotation() throws RecognitionException {
		TypescriptFactoryAnnotationContext _localctx = new TypescriptFactoryAnnotationContext(_ctx, getState());
		enterRule(_localctx, 52, RULE_typescriptFactoryAnnotation);
		try {
			enterOuterAlt(_localctx, 1);
			{
			setState(361);
			match(T__31);
			}
		}
		catch (RecognitionException re) {
			_localctx.exception = re;
			_errHandler.reportError(this, re);
			_errHandler.recover(this, re);
		}
		finally {
			exitRule();
		}
		return _localctx;
	}

	@SuppressWarnings("CheckReturnValue")
	public static class ReferenceableAnnotationContext extends ParserRuleContext {
		public ReferenceableAnnotationContext(ParserRuleContext parent, int invokingState) {
			super(parent, invokingState);
		}
		@Override public int getRuleIndex() { return RULE_referenceableAnnotation; }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).enterReferenceableAnnotation(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).exitReferenceableAnnotation(this);
		}
	}

	public final ReferenceableAnnotationContext referenceableAnnotation() throws RecognitionException {
		ReferenceableAnnotationContext _localctx = new ReferenceableAnnotationContext(_ctx, getState());
		enterRule(_localctx, 54, RULE_referenceableAnnotation);
		try {
			enterOuterAlt(_localctx, 1);
			{
			setState(363);
			match(T__32);
			}
		}
		catch (RecognitionException re) {
			_localctx.exception = re;
			_errHandler.reportError(this, re);
			_errHandler.recover(this, re);
		}
		finally {
			exitRule();
		}
		return _localctx;
	}

	@SuppressWarnings("CheckReturnValue")
	public static class AbstractModifierContext extends ParserRuleContext {
		public AbstractModifierContext(ParserRuleContext parent, int invokingState) {
			super(parent, invokingState);
		}
		@Override public int getRuleIndex() { return RULE_abstractModifier; }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).enterAbstractModifier(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).exitAbstractModifier(this);
		}
	}

	public final AbstractModifierContext abstractModifier() throws RecognitionException {
		AbstractModifierContext _localctx = new AbstractModifierContext(_ctx, getState());
		enterRule(_localctx, 56, RULE_abstractModifier);
		try {
			enterOuterAlt(_localctx, 1);
			{
			setState(365);
			match(T__33);
			}
		}
		catch (RecognitionException re) {
			_localctx.exception = re;
			_errHandler.reportError(this, re);
			_errHandler.recover(this, re);
		}
		finally {
			exitRule();
		}
		return _localctx;
	}

	@SuppressWarnings("CheckReturnValue")
	public static class RequiredModifierContext extends ParserRuleContext {
		public RequiredModifierContext(ParserRuleContext parent, int invokingState) {
			super(parent, invokingState);
		}
		@Override public int getRuleIndex() { return RULE_requiredModifier; }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).enterRequiredModifier(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).exitRequiredModifier(this);
		}
	}

	public final RequiredModifierContext requiredModifier() throws RecognitionException {
		RequiredModifierContext _localctx = new RequiredModifierContext(_ctx, getState());
		enterRule(_localctx, 58, RULE_requiredModifier);
		try {
			enterOuterAlt(_localctx, 1);
			{
			setState(367);
			match(T__34);
			}
		}
		catch (RecognitionException re) {
			_localctx.exception = re;
			_errHandler.reportError(this, re);
			_errHandler.recover(this, re);
		}
		finally {
			exitRule();
		}
		return _localctx;
	}

	@SuppressWarnings("CheckReturnValue")
	public static class StaticModifierContext extends ParserRuleContext {
		public StaticModifierContext(ParserRuleContext parent, int invokingState) {
			super(parent, invokingState);
		}
		@Override public int getRuleIndex() { return RULE_staticModifier; }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).enterStaticModifier(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).exitStaticModifier(this);
		}
	}

	public final StaticModifierContext staticModifier() throws RecognitionException {
		StaticModifierContext _localctx = new StaticModifierContext(_ctx, getState());
		enterRule(_localctx, 60, RULE_staticModifier);
		try {
			enterOuterAlt(_localctx, 1);
			{
			setState(369);
			match(T__35);
			}
		}
		catch (RecognitionException re) {
			_localctx.exception = re;
			_errHandler.reportError(this, re);
			_errHandler.recover(this, re);
		}
		finally {
			exitRule();
		}
		return _localctx;
	}

	@SuppressWarnings("CheckReturnValue")
	public static class ParExpressionContext extends ParserRuleContext {
		public ExpressionContext expression() {
			return getRuleContext(ExpressionContext.class,0);
		}
		public ParExpressionContext(ParserRuleContext parent, int invokingState) {
			super(parent, invokingState);
		}
		@Override public int getRuleIndex() { return RULE_parExpression; }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).enterParExpression(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).exitParExpression(this);
		}
	}

	public final ParExpressionContext parExpression() throws RecognitionException {
		ParExpressionContext _localctx = new ParExpressionContext(_ctx, getState());
		enterRule(_localctx, 62, RULE_parExpression);
		try {
			enterOuterAlt(_localctx, 1);
			{
			setState(371);
			match(T__11);
			setState(372);
			expression(0);
			setState(373);
			match(T__12);
			}
		}
		catch (RecognitionException re) {
			_localctx.exception = re;
			_errHandler.reportError(this, re);
			_errHandler.recover(this, re);
		}
		finally {
			exitRule();
		}
		return _localctx;
	}

	@SuppressWarnings("CheckReturnValue")
	public static class ExpressionListContext extends ParserRuleContext {
		public List expression() {
			return getRuleContexts(ExpressionContext.class);
		}
		public ExpressionContext expression(int i) {
			return getRuleContext(ExpressionContext.class,i);
		}
		public ExpressionListContext(ParserRuleContext parent, int invokingState) {
			super(parent, invokingState);
		}
		@Override public int getRuleIndex() { return RULE_expressionList; }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).enterExpressionList(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).exitExpressionList(this);
		}
	}

	public final ExpressionListContext expressionList() throws RecognitionException {
		ExpressionListContext _localctx = new ExpressionListContext(_ctx, getState());
		enterRule(_localctx, 64, RULE_expressionList);
		int _la;
		try {
			enterOuterAlt(_localctx, 1);
			{
			setState(375);
			expression(0);
			setState(380);
			_errHandler.sync(this);
			_la = _input.LA(1);
			while (_la==T__2) {
				{
				{
				setState(376);
				match(T__2);
				setState(377);
				expression(0);
				}
				}
				setState(382);
				_errHandler.sync(this);
				_la = _input.LA(1);
			}
			}
		}
		catch (RecognitionException re) {
			_localctx.exception = re;
			_errHandler.reportError(this, re);
			_errHandler.recover(this, re);
		}
		finally {
			exitRule();
		}
		return _localctx;
	}

	@SuppressWarnings("CheckReturnValue")
	public static class StatementExpressionContext extends ParserRuleContext {
		public ExpressionContext expression() {
			return getRuleContext(ExpressionContext.class,0);
		}
		public StatementExpressionContext(ParserRuleContext parent, int invokingState) {
			super(parent, invokingState);
		}
		@Override public int getRuleIndex() { return RULE_statementExpression; }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).enterStatementExpression(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).exitStatementExpression(this);
		}
	}

	public final StatementExpressionContext statementExpression() throws RecognitionException {
		StatementExpressionContext _localctx = new StatementExpressionContext(_ctx, getState());
		enterRule(_localctx, 66, RULE_statementExpression);
		try {
			enterOuterAlt(_localctx, 1);
			{
			setState(383);
			expression(0);
			}
		}
		catch (RecognitionException re) {
			_localctx.exception = re;
			_errHandler.reportError(this, re);
			_errHandler.recover(this, re);
		}
		finally {
			exitRule();
		}
		return _localctx;
	}

	@SuppressWarnings("CheckReturnValue")
	public static class ConstantExpressionContext extends ParserRuleContext {
		public ExpressionContext expression() {
			return getRuleContext(ExpressionContext.class,0);
		}
		public ConstantExpressionContext(ParserRuleContext parent, int invokingState) {
			super(parent, invokingState);
		}
		@Override public int getRuleIndex() { return RULE_constantExpression; }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).enterConstantExpression(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).exitConstantExpression(this);
		}
	}

	public final ConstantExpressionContext constantExpression() throws RecognitionException {
		ConstantExpressionContext _localctx = new ConstantExpressionContext(_ctx, getState());
		enterRule(_localctx, 68, RULE_constantExpression);
		try {
			enterOuterAlt(_localctx, 1);
			{
			setState(385);
			expression(0);
			}
		}
		catch (RecognitionException re) {
			_localctx.exception = re;
			_errHandler.reportError(this, re);
			_errHandler.recover(this, re);
		}
		finally {
			exitRule();
		}
		return _localctx;
	}

	@SuppressWarnings("CheckReturnValue")
	public static class ExpressionContext extends ParserRuleContext {
		public PrimaryContext primary() {
			return getRuleContext(PrimaryContext.class,0);
		}
		public CreatorContext creator() {
			return getRuleContext(CreatorContext.class,0);
		}
		public TypeContext type() {
			return getRuleContext(TypeContext.class,0);
		}
		public List expression() {
			return getRuleContexts(ExpressionContext.class);
		}
		public ExpressionContext expression(int i) {
			return getRuleContext(ExpressionContext.class,i);
		}
		public TerminalNode Identifier() { return getToken(TeamAppsDtoParser.Identifier, 0); }
		public SuperSuffixContext superSuffix() {
			return getRuleContext(SuperSuffixContext.class,0);
		}
		public ExplicitGenericInvocationContext explicitGenericInvocation() {
			return getRuleContext(ExplicitGenericInvocationContext.class,0);
		}
		public ExpressionListContext expressionList() {
			return getRuleContext(ExpressionListContext.class,0);
		}
		public ExpressionContext(ParserRuleContext parent, int invokingState) {
			super(parent, invokingState);
		}
		@Override public int getRuleIndex() { return RULE_expression; }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).enterExpression(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).exitExpression(this);
		}
	}

	public final ExpressionContext expression() throws RecognitionException {
		return expression(0);
	}

	private ExpressionContext expression(int _p) throws RecognitionException {
		ParserRuleContext _parentctx = _ctx;
		int _parentState = getState();
		ExpressionContext _localctx = new ExpressionContext(_ctx, _parentState);
		ExpressionContext _prevctx = _localctx;
		int _startState = 70;
		enterRecursionRule(_localctx, 70, RULE_expression, _p);
		int _la;
		try {
			int _alt;
			enterOuterAlt(_localctx, 1);
			{
			setState(400);
			_errHandler.sync(this);
			switch ( getInterpreter().adaptivePredict(_input,39,_ctx) ) {
			case 1:
				{
				setState(388);
				primary();
				}
				break;
			case 2:
				{
				setState(389);
				match(T__39);
				setState(390);
				creator();
				}
				break;
			case 3:
				{
				setState(391);
				match(T__11);
				setState(392);
				type();
				setState(393);
				match(T__12);
				setState(394);
				expression(17);
				}
				break;
			case 4:
				{
				setState(396);
				_la = _input.LA(1);
				if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & 32985348833280L) != 0)) ) {
				_errHandler.recoverInline(this);
				}
				else {
					if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
					_errHandler.reportMatch(this);
					consume();
				}
				setState(397);
				expression(15);
				}
				break;
			case 5:
				{
				setState(398);
				_la = _input.LA(1);
				if ( !(_la==T__44 || _la==T__45) ) {
				_errHandler.recoverInline(this);
				}
				else {
					if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
					_errHandler.reportMatch(this);
					consume();
				}
				setState(399);
				expression(14);
				}
				break;
			}
			_ctx.stop = _input.LT(-1);
			setState(480);
			_errHandler.sync(this);
			_alt = getInterpreter().adaptivePredict(_input,43,_ctx);
			while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
				if ( _alt==1 ) {
					if ( _parseListeners!=null ) triggerExitRuleEvent();
					_prevctx = _localctx;
					{
					setState(478);
					_errHandler.sync(this);
					switch ( getInterpreter().adaptivePredict(_input,42,_ctx) ) {
					case 1:
						{
						_localctx = new ExpressionContext(_parentctx, _parentState);
						pushNewRecursionContext(_localctx, _startState, RULE_expression);
						setState(402);
						if (!(precpred(_ctx, 13))) throw new FailedPredicateException(this, "precpred(_ctx, 13)");
						setState(403);
						_la = _input.LA(1);
						if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & 422212465590272L) != 0)) ) {
						_errHandler.recoverInline(this);
						}
						else {
							if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
							_errHandler.reportMatch(this);
							consume();
						}
						setState(404);
						expression(14);
						}
						break;
					case 2:
						{
						_localctx = new ExpressionContext(_parentctx, _parentState);
						pushNewRecursionContext(_localctx, _startState, RULE_expression);
						setState(405);
						if (!(precpred(_ctx, 12))) throw new FailedPredicateException(this, "precpred(_ctx, 12)");
						setState(406);
						_la = _input.LA(1);
						if ( !(_la==T__42 || _la==T__43) ) {
						_errHandler.recoverInline(this);
						}
						else {
							if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
							_errHandler.reportMatch(this);
							consume();
						}
						setState(407);
						expression(13);
						}
						break;
					case 3:
						{
						_localctx = new ExpressionContext(_parentctx, _parentState);
						pushNewRecursionContext(_localctx, _startState, RULE_expression);
						setState(408);
						if (!(precpred(_ctx, 11))) throw new FailedPredicateException(this, "precpred(_ctx, 11)");
						setState(416);
						_errHandler.sync(this);
						switch ( getInterpreter().adaptivePredict(_input,40,_ctx) ) {
						case 1:
							{
							setState(409);
							match(T__19);
							setState(410);
							match(T__19);
							}
							break;
						case 2:
							{
							setState(411);
							match(T__20);
							setState(412);
							match(T__20);
							setState(413);
							match(T__20);
							}
							break;
						case 3:
							{
							setState(414);
							match(T__20);
							setState(415);
							match(T__20);
							}
							break;
						}
						setState(418);
						expression(12);
						}
						break;
					case 4:
						{
						_localctx = new ExpressionContext(_parentctx, _parentState);
						pushNewRecursionContext(_localctx, _startState, RULE_expression);
						setState(419);
						if (!(precpred(_ctx, 10))) throw new FailedPredicateException(this, "precpred(_ctx, 10)");
						setState(420);
						_la = _input.LA(1);
						if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & 1688849863409664L) != 0)) ) {
						_errHandler.recoverInline(this);
						}
						else {
							if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
							_errHandler.reportMatch(this);
							consume();
						}
						setState(421);
						expression(11);
						}
						break;
					case 5:
						{
						_localctx = new ExpressionContext(_parentctx, _parentState);
						pushNewRecursionContext(_localctx, _startState, RULE_expression);
						setState(422);
						if (!(precpred(_ctx, 8))) throw new FailedPredicateException(this, "precpred(_ctx, 8)");
						setState(423);
						_la = _input.LA(1);
						if ( !(_la==T__51 || _la==T__52) ) {
						_errHandler.recoverInline(this);
						}
						else {
							if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
							_errHandler.reportMatch(this);
							consume();
						}
						setState(424);
						expression(9);
						}
						break;
					case 6:
						{
						_localctx = new ExpressionContext(_parentctx, _parentState);
						pushNewRecursionContext(_localctx, _startState, RULE_expression);
						setState(425);
						if (!(precpred(_ctx, 7))) throw new FailedPredicateException(this, "precpred(_ctx, 7)");
						setState(426);
						match(T__53);
						setState(427);
						expression(8);
						}
						break;
					case 7:
						{
						_localctx = new ExpressionContext(_parentctx, _parentState);
						pushNewRecursionContext(_localctx, _startState, RULE_expression);
						setState(428);
						if (!(precpred(_ctx, 6))) throw new FailedPredicateException(this, "precpred(_ctx, 6)");
						setState(429);
						match(T__54);
						setState(430);
						expression(7);
						}
						break;
					case 8:
						{
						_localctx = new ExpressionContext(_parentctx, _parentState);
						pushNewRecursionContext(_localctx, _startState, RULE_expression);
						setState(431);
						if (!(precpred(_ctx, 5))) throw new FailedPredicateException(this, "precpred(_ctx, 5)");
						setState(432);
						match(T__55);
						setState(433);
						expression(6);
						}
						break;
					case 9:
						{
						_localctx = new ExpressionContext(_parentctx, _parentState);
						pushNewRecursionContext(_localctx, _startState, RULE_expression);
						setState(434);
						if (!(precpred(_ctx, 4))) throw new FailedPredicateException(this, "precpred(_ctx, 4)");
						setState(435);
						match(T__56);
						setState(436);
						expression(5);
						}
						break;
					case 10:
						{
						_localctx = new ExpressionContext(_parentctx, _parentState);
						pushNewRecursionContext(_localctx, _startState, RULE_expression);
						setState(437);
						if (!(precpred(_ctx, 3))) throw new FailedPredicateException(this, "precpred(_ctx, 3)");
						setState(438);
						match(T__57);
						setState(439);
						expression(4);
						}
						break;
					case 11:
						{
						_localctx = new ExpressionContext(_parentctx, _parentState);
						pushNewRecursionContext(_localctx, _startState, RULE_expression);
						setState(440);
						if (!(precpred(_ctx, 2))) throw new FailedPredicateException(this, "precpred(_ctx, 2)");
						setState(441);
						match(T__58);
						setState(442);
						expression(0);
						setState(443);
						match(T__59);
						setState(444);
						expression(3);
						}
						break;
					case 12:
						{
						_localctx = new ExpressionContext(_parentctx, _parentState);
						pushNewRecursionContext(_localctx, _startState, RULE_expression);
						setState(446);
						if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)");
						setState(447);
						_la = _input.LA(1);
						if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & -2305843009213693888L) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & 255L) != 0)) ) {
						_errHandler.recoverInline(this);
						}
						else {
							if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
							_errHandler.reportMatch(this);
							consume();
						}
						setState(448);
						expression(1);
						}
						break;
					case 13:
						{
						_localctx = new ExpressionContext(_parentctx, _parentState);
						pushNewRecursionContext(_localctx, _startState, RULE_expression);
						setState(449);
						if (!(precpred(_ctx, 24))) throw new FailedPredicateException(this, "precpred(_ctx, 24)");
						setState(450);
						match(T__36);
						setState(451);
						match(Identifier);
						}
						break;
					case 14:
						{
						_localctx = new ExpressionContext(_parentctx, _parentState);
						pushNewRecursionContext(_localctx, _startState, RULE_expression);
						setState(452);
						if (!(precpred(_ctx, 23))) throw new FailedPredicateException(this, "precpred(_ctx, 23)");
						setState(453);
						match(T__36);
						setState(454);
						match(T__37);
						}
						break;
					case 15:
						{
						_localctx = new ExpressionContext(_parentctx, _parentState);
						pushNewRecursionContext(_localctx, _startState, RULE_expression);
						setState(455);
						if (!(precpred(_ctx, 22))) throw new FailedPredicateException(this, "precpred(_ctx, 22)");
						setState(456);
						match(T__36);
						setState(457);
						match(T__38);
						setState(458);
						superSuffix();
						}
						break;
					case 16:
						{
						_localctx = new ExpressionContext(_parentctx, _parentState);
						pushNewRecursionContext(_localctx, _startState, RULE_expression);
						setState(459);
						if (!(precpred(_ctx, 21))) throw new FailedPredicateException(this, "precpred(_ctx, 21)");
						setState(460);
						match(T__36);
						setState(461);
						explicitGenericInvocation();
						}
						break;
					case 17:
						{
						_localctx = new ExpressionContext(_parentctx, _parentState);
						pushNewRecursionContext(_localctx, _startState, RULE_expression);
						setState(462);
						if (!(precpred(_ctx, 20))) throw new FailedPredicateException(this, "precpred(_ctx, 20)");
						setState(463);
						match(T__16);
						setState(464);
						expression(0);
						setState(465);
						match(T__17);
						}
						break;
					case 18:
						{
						_localctx = new ExpressionContext(_parentctx, _parentState);
						pushNewRecursionContext(_localctx, _startState, RULE_expression);
						setState(467);
						if (!(precpred(_ctx, 19))) throw new FailedPredicateException(this, "precpred(_ctx, 19)");
						setState(468);
						match(T__11);
						setState(470);
						_errHandler.sync(this);
						_la = _input.LA(1);
						if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 140466902274050L) != 0) || ((((_la - 72)) & ~0x3f) == 0 && ((1L << (_la - 72)) & 255L) != 0)) {
							{
							setState(469);
							expressionList();
							}
						}

						setState(472);
						match(T__12);
						}
						break;
					case 19:
						{
						_localctx = new ExpressionContext(_parentctx, _parentState);
						pushNewRecursionContext(_localctx, _startState, RULE_expression);
						setState(473);
						if (!(precpred(_ctx, 16))) throw new FailedPredicateException(this, "precpred(_ctx, 16)");
						setState(474);
						_la = _input.LA(1);
						if ( !(_la==T__40 || _la==T__41) ) {
						_errHandler.recoverInline(this);
						}
						else {
							if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
							_errHandler.reportMatch(this);
							consume();
						}
						}
						break;
					case 20:
						{
						_localctx = new ExpressionContext(_parentctx, _parentState);
						pushNewRecursionContext(_localctx, _startState, RULE_expression);
						setState(475);
						if (!(precpred(_ctx, 9))) throw new FailedPredicateException(this, "precpred(_ctx, 9)");
						setState(476);
						match(T__50);
						setState(477);
						type();
						}
						break;
					}
					} 
				}
				setState(482);
				_errHandler.sync(this);
				_alt = getInterpreter().adaptivePredict(_input,43,_ctx);
			}
			}
		}
		catch (RecognitionException re) {
			_localctx.exception = re;
			_errHandler.reportError(this, re);
			_errHandler.recover(this, re);
		}
		finally {
			unrollRecursionContexts(_parentctx);
		}
		return _localctx;
	}

	@SuppressWarnings("CheckReturnValue")
	public static class PrimaryContext extends ParserRuleContext {
		public ExpressionContext expression() {
			return getRuleContext(ExpressionContext.class,0);
		}
		public LiteralContext literal() {
			return getRuleContext(LiteralContext.class,0);
		}
		public TerminalNode Identifier() { return getToken(TeamAppsDtoParser.Identifier, 0); }
		public TypeContext type() {
			return getRuleContext(TypeContext.class,0);
		}
		public NonWildcardTypeArgumentsContext nonWildcardTypeArguments() {
			return getRuleContext(NonWildcardTypeArgumentsContext.class,0);
		}
		public ExplicitGenericInvocationSuffixContext explicitGenericInvocationSuffix() {
			return getRuleContext(ExplicitGenericInvocationSuffixContext.class,0);
		}
		public ArgumentsContext arguments() {
			return getRuleContext(ArgumentsContext.class,0);
		}
		public PrimaryContext(ParserRuleContext parent, int invokingState) {
			super(parent, invokingState);
		}
		@Override public int getRuleIndex() { return RULE_primary; }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).enterPrimary(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).exitPrimary(this);
		}
	}

	public final PrimaryContext primary() throws RecognitionException {
		PrimaryContext _localctx = new PrimaryContext(_ctx, getState());
		enterRule(_localctx, 72, RULE_primary);
		try {
			setState(504);
			_errHandler.sync(this);
			switch ( getInterpreter().adaptivePredict(_input,45,_ctx) ) {
			case 1:
				enterOuterAlt(_localctx, 1);
				{
				setState(483);
				match(T__11);
				setState(484);
				expression(0);
				setState(485);
				match(T__12);
				}
				break;
			case 2:
				enterOuterAlt(_localctx, 2);
				{
				setState(487);
				match(T__37);
				}
				break;
			case 3:
				enterOuterAlt(_localctx, 3);
				{
				setState(488);
				match(T__38);
				}
				break;
			case 4:
				enterOuterAlt(_localctx, 4);
				{
				setState(489);
				literal();
				}
				break;
			case 5:
				enterOuterAlt(_localctx, 5);
				{
				setState(490);
				match(Identifier);
				}
				break;
			case 6:
				enterOuterAlt(_localctx, 6);
				{
				setState(491);
				type();
				setState(492);
				match(T__36);
				setState(493);
				match(T__6);
				}
				break;
			case 7:
				enterOuterAlt(_localctx, 7);
				{
				setState(495);
				match(T__71);
				setState(496);
				match(T__36);
				setState(497);
				match(T__6);
				}
				break;
			case 8:
				enterOuterAlt(_localctx, 8);
				{
				setState(498);
				nonWildcardTypeArguments();
				setState(502);
				_errHandler.sync(this);
				switch (_input.LA(1)) {
				case T__38:
				case Identifier:
					{
					setState(499);
					explicitGenericInvocationSuffix();
					}
					break;
				case T__37:
					{
					setState(500);
					match(T__37);
					setState(501);
					arguments();
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				}
				break;
			}
		}
		catch (RecognitionException re) {
			_localctx.exception = re;
			_errHandler.reportError(this, re);
			_errHandler.recover(this, re);
		}
		finally {
			exitRule();
		}
		return _localctx;
	}

	@SuppressWarnings("CheckReturnValue")
	public static class CreatorContext extends ParserRuleContext {
		public NonWildcardTypeArgumentsContext nonWildcardTypeArguments() {
			return getRuleContext(NonWildcardTypeArgumentsContext.class,0);
		}
		public CreatedNameContext createdName() {
			return getRuleContext(CreatedNameContext.class,0);
		}
		public ClassCreatorRestContext classCreatorRest() {
			return getRuleContext(ClassCreatorRestContext.class,0);
		}
		public ArrayCreatorRestContext arrayCreatorRest() {
			return getRuleContext(ArrayCreatorRestContext.class,0);
		}
		public CreatorContext(ParserRuleContext parent, int invokingState) {
			super(parent, invokingState);
		}
		@Override public int getRuleIndex() { return RULE_creator; }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).enterCreator(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).exitCreator(this);
		}
	}

	public final CreatorContext creator() throws RecognitionException {
		CreatorContext _localctx = new CreatorContext(_ctx, getState());
		enterRule(_localctx, 74, RULE_creator);
		try {
			setState(515);
			_errHandler.sync(this);
			switch (_input.LA(1)) {
			case T__19:
				enterOuterAlt(_localctx, 1);
				{
				setState(506);
				nonWildcardTypeArguments();
				setState(507);
				createdName();
				setState(508);
				classCreatorRest();
				}
				break;
			case T__23:
			case T__24:
			case T__25:
			case T__26:
			case T__27:
			case T__28:
			case T__29:
			case T__30:
			case Identifier:
				enterOuterAlt(_localctx, 2);
				{
				setState(510);
				createdName();
				setState(513);
				_errHandler.sync(this);
				switch (_input.LA(1)) {
				case T__16:
					{
					setState(511);
					arrayCreatorRest();
					}
					break;
				case T__11:
					{
					setState(512);
					classCreatorRest();
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (RecognitionException re) {
			_localctx.exception = re;
			_errHandler.reportError(this, re);
			_errHandler.recover(this, re);
		}
		finally {
			exitRule();
		}
		return _localctx;
	}

	@SuppressWarnings("CheckReturnValue")
	public static class CreatedNameContext extends ParserRuleContext {
		public List Identifier() { return getTokens(TeamAppsDtoParser.Identifier); }
		public TerminalNode Identifier(int i) {
			return getToken(TeamAppsDtoParser.Identifier, i);
		}
		public List typeArgumentsOrDiamond() {
			return getRuleContexts(TypeArgumentsOrDiamondContext.class);
		}
		public TypeArgumentsOrDiamondContext typeArgumentsOrDiamond(int i) {
			return getRuleContext(TypeArgumentsOrDiamondContext.class,i);
		}
		public PrimitiveTypeContext primitiveType() {
			return getRuleContext(PrimitiveTypeContext.class,0);
		}
		public CreatedNameContext(ParserRuleContext parent, int invokingState) {
			super(parent, invokingState);
		}
		@Override public int getRuleIndex() { return RULE_createdName; }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).enterCreatedName(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).exitCreatedName(this);
		}
	}

	public final CreatedNameContext createdName() throws RecognitionException {
		CreatedNameContext _localctx = new CreatedNameContext(_ctx, getState());
		enterRule(_localctx, 76, RULE_createdName);
		int _la;
		try {
			setState(532);
			_errHandler.sync(this);
			switch (_input.LA(1)) {
			case Identifier:
				enterOuterAlt(_localctx, 1);
				{
				setState(517);
				match(Identifier);
				setState(519);
				_errHandler.sync(this);
				_la = _input.LA(1);
				if (_la==T__19) {
					{
					setState(518);
					typeArgumentsOrDiamond();
					}
				}

				setState(528);
				_errHandler.sync(this);
				_la = _input.LA(1);
				while (_la==T__36) {
					{
					{
					setState(521);
					match(T__36);
					setState(522);
					match(Identifier);
					setState(524);
					_errHandler.sync(this);
					_la = _input.LA(1);
					if (_la==T__19) {
						{
						setState(523);
						typeArgumentsOrDiamond();
						}
					}

					}
					}
					setState(530);
					_errHandler.sync(this);
					_la = _input.LA(1);
				}
				}
				break;
			case T__23:
			case T__24:
			case T__25:
			case T__26:
			case T__27:
			case T__28:
			case T__29:
			case T__30:
				enterOuterAlt(_localctx, 2);
				{
				setState(531);
				primitiveType();
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (RecognitionException re) {
			_localctx.exception = re;
			_errHandler.reportError(this, re);
			_errHandler.recover(this, re);
		}
		finally {
			exitRule();
		}
		return _localctx;
	}

	@SuppressWarnings("CheckReturnValue")
	public static class ArrayCreatorRestContext extends ParserRuleContext {
		public ArrayInitializerContext arrayInitializer() {
			return getRuleContext(ArrayInitializerContext.class,0);
		}
		public List expression() {
			return getRuleContexts(ExpressionContext.class);
		}
		public ExpressionContext expression(int i) {
			return getRuleContext(ExpressionContext.class,i);
		}
		public ArrayCreatorRestContext(ParserRuleContext parent, int invokingState) {
			super(parent, invokingState);
		}
		@Override public int getRuleIndex() { return RULE_arrayCreatorRest; }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).enterArrayCreatorRest(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).exitArrayCreatorRest(this);
		}
	}

	public final ArrayCreatorRestContext arrayCreatorRest() throws RecognitionException {
		ArrayCreatorRestContext _localctx = new ArrayCreatorRestContext(_ctx, getState());
		enterRule(_localctx, 78, RULE_arrayCreatorRest);
		int _la;
		try {
			int _alt;
			enterOuterAlt(_localctx, 1);
			{
			setState(534);
			match(T__16);
			setState(562);
			_errHandler.sync(this);
			switch (_input.LA(1)) {
			case T__17:
				{
				setState(535);
				match(T__17);
				setState(540);
				_errHandler.sync(this);
				_la = _input.LA(1);
				while (_la==T__16) {
					{
					{
					setState(536);
					match(T__16);
					setState(537);
					match(T__17);
					}
					}
					setState(542);
					_errHandler.sync(this);
					_la = _input.LA(1);
				}
				setState(543);
				arrayInitializer();
				}
				break;
			case T__0:
			case T__11:
			case T__19:
			case T__21:
			case T__22:
			case T__23:
			case T__24:
			case T__25:
			case T__26:
			case T__27:
			case T__28:
			case T__29:
			case T__30:
			case T__37:
			case T__38:
			case T__39:
			case T__40:
			case T__41:
			case T__42:
			case T__43:
			case T__44:
			case T__45:
			case T__71:
			case IntegerLiteral:
			case FloatingPointLiteral:
			case BooleanLiteral:
			case CharacterLiteral:
			case StringLiteral:
			case NullLiteral:
			case Identifier:
				{
				setState(544);
				expression(0);
				setState(545);
				match(T__17);
				setState(552);
				_errHandler.sync(this);
				_alt = getInterpreter().adaptivePredict(_input,53,_ctx);
				while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
					if ( _alt==1 ) {
						{
						{
						setState(546);
						match(T__16);
						setState(547);
						expression(0);
						setState(548);
						match(T__17);
						}
						} 
					}
					setState(554);
					_errHandler.sync(this);
					_alt = getInterpreter().adaptivePredict(_input,53,_ctx);
				}
				setState(559);
				_errHandler.sync(this);
				_alt = getInterpreter().adaptivePredict(_input,54,_ctx);
				while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
					if ( _alt==1 ) {
						{
						{
						setState(555);
						match(T__16);
						setState(556);
						match(T__17);
						}
						} 
					}
					setState(561);
					_errHandler.sync(this);
					_alt = getInterpreter().adaptivePredict(_input,54,_ctx);
				}
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			}
		}
		catch (RecognitionException re) {
			_localctx.exception = re;
			_errHandler.reportError(this, re);
			_errHandler.recover(this, re);
		}
		finally {
			exitRule();
		}
		return _localctx;
	}

	@SuppressWarnings("CheckReturnValue")
	public static class ClassCreatorRestContext extends ParserRuleContext {
		public ArgumentsContext arguments() {
			return getRuleContext(ArgumentsContext.class,0);
		}
		public ClassCreatorRestContext(ParserRuleContext parent, int invokingState) {
			super(parent, invokingState);
		}
		@Override public int getRuleIndex() { return RULE_classCreatorRest; }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).enterClassCreatorRest(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).exitClassCreatorRest(this);
		}
	}

	public final ClassCreatorRestContext classCreatorRest() throws RecognitionException {
		ClassCreatorRestContext _localctx = new ClassCreatorRestContext(_ctx, getState());
		enterRule(_localctx, 80, RULE_classCreatorRest);
		try {
			enterOuterAlt(_localctx, 1);
			{
			setState(564);
			arguments();
			}
		}
		catch (RecognitionException re) {
			_localctx.exception = re;
			_errHandler.reportError(this, re);
			_errHandler.recover(this, re);
		}
		finally {
			exitRule();
		}
		return _localctx;
	}

	@SuppressWarnings("CheckReturnValue")
	public static class ExplicitGenericInvocationContext extends ParserRuleContext {
		public NonWildcardTypeArgumentsContext nonWildcardTypeArguments() {
			return getRuleContext(NonWildcardTypeArgumentsContext.class,0);
		}
		public ExplicitGenericInvocationSuffixContext explicitGenericInvocationSuffix() {
			return getRuleContext(ExplicitGenericInvocationSuffixContext.class,0);
		}
		public ExplicitGenericInvocationContext(ParserRuleContext parent, int invokingState) {
			super(parent, invokingState);
		}
		@Override public int getRuleIndex() { return RULE_explicitGenericInvocation; }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).enterExplicitGenericInvocation(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).exitExplicitGenericInvocation(this);
		}
	}

	public final ExplicitGenericInvocationContext explicitGenericInvocation() throws RecognitionException {
		ExplicitGenericInvocationContext _localctx = new ExplicitGenericInvocationContext(_ctx, getState());
		enterRule(_localctx, 82, RULE_explicitGenericInvocation);
		try {
			enterOuterAlt(_localctx, 1);
			{
			setState(566);
			nonWildcardTypeArguments();
			setState(567);
			explicitGenericInvocationSuffix();
			}
		}
		catch (RecognitionException re) {
			_localctx.exception = re;
			_errHandler.reportError(this, re);
			_errHandler.recover(this, re);
		}
		finally {
			exitRule();
		}
		return _localctx;
	}

	@SuppressWarnings("CheckReturnValue")
	public static class NonWildcardTypeArgumentsContext extends ParserRuleContext {
		public TypeListContext typeList() {
			return getRuleContext(TypeListContext.class,0);
		}
		public NonWildcardTypeArgumentsContext(ParserRuleContext parent, int invokingState) {
			super(parent, invokingState);
		}
		@Override public int getRuleIndex() { return RULE_nonWildcardTypeArguments; }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).enterNonWildcardTypeArguments(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).exitNonWildcardTypeArguments(this);
		}
	}

	public final NonWildcardTypeArgumentsContext nonWildcardTypeArguments() throws RecognitionException {
		NonWildcardTypeArgumentsContext _localctx = new NonWildcardTypeArgumentsContext(_ctx, getState());
		enterRule(_localctx, 84, RULE_nonWildcardTypeArguments);
		try {
			enterOuterAlt(_localctx, 1);
			{
			setState(569);
			match(T__19);
			setState(570);
			typeList();
			setState(571);
			match(T__20);
			}
		}
		catch (RecognitionException re) {
			_localctx.exception = re;
			_errHandler.reportError(this, re);
			_errHandler.recover(this, re);
		}
		finally {
			exitRule();
		}
		return _localctx;
	}

	@SuppressWarnings("CheckReturnValue")
	public static class TypeListContext extends ParserRuleContext {
		public List type() {
			return getRuleContexts(TypeContext.class);
		}
		public TypeContext type(int i) {
			return getRuleContext(TypeContext.class,i);
		}
		public TypeListContext(ParserRuleContext parent, int invokingState) {
			super(parent, invokingState);
		}
		@Override public int getRuleIndex() { return RULE_typeList; }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).enterTypeList(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).exitTypeList(this);
		}
	}

	public final TypeListContext typeList() throws RecognitionException {
		TypeListContext _localctx = new TypeListContext(_ctx, getState());
		enterRule(_localctx, 86, RULE_typeList);
		int _la;
		try {
			enterOuterAlt(_localctx, 1);
			{
			setState(573);
			type();
			setState(578);
			_errHandler.sync(this);
			_la = _input.LA(1);
			while (_la==T__2) {
				{
				{
				setState(574);
				match(T__2);
				setState(575);
				type();
				}
				}
				setState(580);
				_errHandler.sync(this);
				_la = _input.LA(1);
			}
			}
		}
		catch (RecognitionException re) {
			_localctx.exception = re;
			_errHandler.reportError(this, re);
			_errHandler.recover(this, re);
		}
		finally {
			exitRule();
		}
		return _localctx;
	}

	@SuppressWarnings("CheckReturnValue")
	public static class TypeArgumentsOrDiamondContext extends ParserRuleContext {
		public TypeArgumentsContext typeArguments() {
			return getRuleContext(TypeArgumentsContext.class,0);
		}
		public TypeArgumentsOrDiamondContext(ParserRuleContext parent, int invokingState) {
			super(parent, invokingState);
		}
		@Override public int getRuleIndex() { return RULE_typeArgumentsOrDiamond; }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).enterTypeArgumentsOrDiamond(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).exitTypeArgumentsOrDiamond(this);
		}
	}

	public final TypeArgumentsOrDiamondContext typeArgumentsOrDiamond() throws RecognitionException {
		TypeArgumentsOrDiamondContext _localctx = new TypeArgumentsOrDiamondContext(_ctx, getState());
		enterRule(_localctx, 88, RULE_typeArgumentsOrDiamond);
		try {
			setState(584);
			_errHandler.sync(this);
			switch ( getInterpreter().adaptivePredict(_input,57,_ctx) ) {
			case 1:
				enterOuterAlt(_localctx, 1);
				{
				setState(581);
				match(T__19);
				setState(582);
				match(T__20);
				}
				break;
			case 2:
				enterOuterAlt(_localctx, 2);
				{
				setState(583);
				typeArguments();
				}
				break;
			}
		}
		catch (RecognitionException re) {
			_localctx.exception = re;
			_errHandler.reportError(this, re);
			_errHandler.recover(this, re);
		}
		finally {
			exitRule();
		}
		return _localctx;
	}

	@SuppressWarnings("CheckReturnValue")
	public static class NonWildcardTypeArgumentsOrDiamondContext extends ParserRuleContext {
		public NonWildcardTypeArgumentsContext nonWildcardTypeArguments() {
			return getRuleContext(NonWildcardTypeArgumentsContext.class,0);
		}
		public NonWildcardTypeArgumentsOrDiamondContext(ParserRuleContext parent, int invokingState) {
			super(parent, invokingState);
		}
		@Override public int getRuleIndex() { return RULE_nonWildcardTypeArgumentsOrDiamond; }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).enterNonWildcardTypeArgumentsOrDiamond(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).exitNonWildcardTypeArgumentsOrDiamond(this);
		}
	}

	public final NonWildcardTypeArgumentsOrDiamondContext nonWildcardTypeArgumentsOrDiamond() throws RecognitionException {
		NonWildcardTypeArgumentsOrDiamondContext _localctx = new NonWildcardTypeArgumentsOrDiamondContext(_ctx, getState());
		enterRule(_localctx, 90, RULE_nonWildcardTypeArgumentsOrDiamond);
		try {
			setState(589);
			_errHandler.sync(this);
			switch ( getInterpreter().adaptivePredict(_input,58,_ctx) ) {
			case 1:
				enterOuterAlt(_localctx, 1);
				{
				setState(586);
				match(T__19);
				setState(587);
				match(T__20);
				}
				break;
			case 2:
				enterOuterAlt(_localctx, 2);
				{
				setState(588);
				nonWildcardTypeArguments();
				}
				break;
			}
		}
		catch (RecognitionException re) {
			_localctx.exception = re;
			_errHandler.reportError(this, re);
			_errHandler.recover(this, re);
		}
		finally {
			exitRule();
		}
		return _localctx;
	}

	@SuppressWarnings("CheckReturnValue")
	public static class SuperSuffixContext extends ParserRuleContext {
		public ArgumentsContext arguments() {
			return getRuleContext(ArgumentsContext.class,0);
		}
		public TerminalNode Identifier() { return getToken(TeamAppsDtoParser.Identifier, 0); }
		public SuperSuffixContext(ParserRuleContext parent, int invokingState) {
			super(parent, invokingState);
		}
		@Override public int getRuleIndex() { return RULE_superSuffix; }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).enterSuperSuffix(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).exitSuperSuffix(this);
		}
	}

	public final SuperSuffixContext superSuffix() throws RecognitionException {
		SuperSuffixContext _localctx = new SuperSuffixContext(_ctx, getState());
		enterRule(_localctx, 92, RULE_superSuffix);
		try {
			setState(597);
			_errHandler.sync(this);
			switch (_input.LA(1)) {
			case T__11:
				enterOuterAlt(_localctx, 1);
				{
				setState(591);
				arguments();
				}
				break;
			case T__36:
				enterOuterAlt(_localctx, 2);
				{
				setState(592);
				match(T__36);
				setState(593);
				match(Identifier);
				setState(595);
				_errHandler.sync(this);
				switch ( getInterpreter().adaptivePredict(_input,59,_ctx) ) {
				case 1:
					{
					setState(594);
					arguments();
					}
					break;
				}
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (RecognitionException re) {
			_localctx.exception = re;
			_errHandler.reportError(this, re);
			_errHandler.recover(this, re);
		}
		finally {
			exitRule();
		}
		return _localctx;
	}

	@SuppressWarnings("CheckReturnValue")
	public static class ExplicitGenericInvocationSuffixContext extends ParserRuleContext {
		public SuperSuffixContext superSuffix() {
			return getRuleContext(SuperSuffixContext.class,0);
		}
		public TerminalNode Identifier() { return getToken(TeamAppsDtoParser.Identifier, 0); }
		public ArgumentsContext arguments() {
			return getRuleContext(ArgumentsContext.class,0);
		}
		public ExplicitGenericInvocationSuffixContext(ParserRuleContext parent, int invokingState) {
			super(parent, invokingState);
		}
		@Override public int getRuleIndex() { return RULE_explicitGenericInvocationSuffix; }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).enterExplicitGenericInvocationSuffix(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).exitExplicitGenericInvocationSuffix(this);
		}
	}

	public final ExplicitGenericInvocationSuffixContext explicitGenericInvocationSuffix() throws RecognitionException {
		ExplicitGenericInvocationSuffixContext _localctx = new ExplicitGenericInvocationSuffixContext(_ctx, getState());
		enterRule(_localctx, 94, RULE_explicitGenericInvocationSuffix);
		try {
			setState(603);
			_errHandler.sync(this);
			switch (_input.LA(1)) {
			case T__38:
				enterOuterAlt(_localctx, 1);
				{
				setState(599);
				match(T__38);
				setState(600);
				superSuffix();
				}
				break;
			case Identifier:
				enterOuterAlt(_localctx, 2);
				{
				setState(601);
				match(Identifier);
				setState(602);
				arguments();
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (RecognitionException re) {
			_localctx.exception = re;
			_errHandler.reportError(this, re);
			_errHandler.recover(this, re);
		}
		finally {
			exitRule();
		}
		return _localctx;
	}

	@SuppressWarnings("CheckReturnValue")
	public static class ArgumentsContext extends ParserRuleContext {
		public ExpressionListContext expressionList() {
			return getRuleContext(ExpressionListContext.class,0);
		}
		public ArgumentsContext(ParserRuleContext parent, int invokingState) {
			super(parent, invokingState);
		}
		@Override public int getRuleIndex() { return RULE_arguments; }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).enterArguments(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).exitArguments(this);
		}
	}

	public final ArgumentsContext arguments() throws RecognitionException {
		ArgumentsContext _localctx = new ArgumentsContext(_ctx, getState());
		enterRule(_localctx, 96, RULE_arguments);
		int _la;
		try {
			enterOuterAlt(_localctx, 1);
			{
			setState(605);
			match(T__11);
			setState(607);
			_errHandler.sync(this);
			_la = _input.LA(1);
			if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 140466902274050L) != 0) || ((((_la - 72)) & ~0x3f) == 0 && ((1L << (_la - 72)) & 255L) != 0)) {
				{
				setState(606);
				expressionList();
				}
			}

			setState(609);
			match(T__12);
			}
		}
		catch (RecognitionException re) {
			_localctx.exception = re;
			_errHandler.reportError(this, re);
			_errHandler.recover(this, re);
		}
		finally {
			exitRule();
		}
		return _localctx;
	}

	@SuppressWarnings("CheckReturnValue")
	public static class VariableInitializerContext extends ParserRuleContext {
		public ArrayInitializerContext arrayInitializer() {
			return getRuleContext(ArrayInitializerContext.class,0);
		}
		public ExpressionContext expression() {
			return getRuleContext(ExpressionContext.class,0);
		}
		public VariableInitializerContext(ParserRuleContext parent, int invokingState) {
			super(parent, invokingState);
		}
		@Override public int getRuleIndex() { return RULE_variableInitializer; }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).enterVariableInitializer(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).exitVariableInitializer(this);
		}
	}

	public final VariableInitializerContext variableInitializer() throws RecognitionException {
		VariableInitializerContext _localctx = new VariableInitializerContext(_ctx, getState());
		enterRule(_localctx, 98, RULE_variableInitializer);
		try {
			setState(613);
			_errHandler.sync(this);
			switch (_input.LA(1)) {
			case T__1:
				enterOuterAlt(_localctx, 1);
				{
				setState(611);
				arrayInitializer();
				}
				break;
			case T__0:
			case T__11:
			case T__19:
			case T__21:
			case T__22:
			case T__23:
			case T__24:
			case T__25:
			case T__26:
			case T__27:
			case T__28:
			case T__29:
			case T__30:
			case T__37:
			case T__38:
			case T__39:
			case T__40:
			case T__41:
			case T__42:
			case T__43:
			case T__44:
			case T__45:
			case T__71:
			case IntegerLiteral:
			case FloatingPointLiteral:
			case BooleanLiteral:
			case CharacterLiteral:
			case StringLiteral:
			case NullLiteral:
			case Identifier:
				enterOuterAlt(_localctx, 2);
				{
				setState(612);
				expression(0);
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (RecognitionException re) {
			_localctx.exception = re;
			_errHandler.reportError(this, re);
			_errHandler.recover(this, re);
		}
		finally {
			exitRule();
		}
		return _localctx;
	}

	@SuppressWarnings("CheckReturnValue")
	public static class ArrayInitializerContext extends ParserRuleContext {
		public List variableInitializer() {
			return getRuleContexts(VariableInitializerContext.class);
		}
		public VariableInitializerContext variableInitializer(int i) {
			return getRuleContext(VariableInitializerContext.class,i);
		}
		public ArrayInitializerContext(ParserRuleContext parent, int invokingState) {
			super(parent, invokingState);
		}
		@Override public int getRuleIndex() { return RULE_arrayInitializer; }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).enterArrayInitializer(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).exitArrayInitializer(this);
		}
	}

	public final ArrayInitializerContext arrayInitializer() throws RecognitionException {
		ArrayInitializerContext _localctx = new ArrayInitializerContext(_ctx, getState());
		enterRule(_localctx, 100, RULE_arrayInitializer);
		int _la;
		try {
			int _alt;
			enterOuterAlt(_localctx, 1);
			{
			setState(615);
			match(T__1);
			setState(627);
			_errHandler.sync(this);
			_la = _input.LA(1);
			if ((((_la) & ~0x3f) == 0 && ((1L << _la) & 140466902274054L) != 0) || ((((_la - 72)) & ~0x3f) == 0 && ((1L << (_la - 72)) & 255L) != 0)) {
				{
				setState(616);
				variableInitializer();
				setState(621);
				_errHandler.sync(this);
				_alt = getInterpreter().adaptivePredict(_input,64,_ctx);
				while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
					if ( _alt==1 ) {
						{
						{
						setState(617);
						match(T__2);
						setState(618);
						variableInitializer();
						}
						} 
					}
					setState(623);
					_errHandler.sync(this);
					_alt = getInterpreter().adaptivePredict(_input,64,_ctx);
				}
				setState(625);
				_errHandler.sync(this);
				_la = _input.LA(1);
				if (_la==T__2) {
					{
					setState(624);
					match(T__2);
					}
				}

				}
			}

			setState(629);
			match(T__4);
			}
		}
		catch (RecognitionException re) {
			_localctx.exception = re;
			_errHandler.reportError(this, re);
			_errHandler.recover(this, re);
		}
		finally {
			exitRule();
		}
		return _localctx;
	}

	@SuppressWarnings("CheckReturnValue")
	public static class LiteralContext extends ParserRuleContext {
		public TerminalNode IntegerLiteral() { return getToken(TeamAppsDtoParser.IntegerLiteral, 0); }
		public TerminalNode FloatingPointLiteral() { return getToken(TeamAppsDtoParser.FloatingPointLiteral, 0); }
		public TerminalNode CharacterLiteral() { return getToken(TeamAppsDtoParser.CharacterLiteral, 0); }
		public TerminalNode StringLiteral() { return getToken(TeamAppsDtoParser.StringLiteral, 0); }
		public TerminalNode BooleanLiteral() { return getToken(TeamAppsDtoParser.BooleanLiteral, 0); }
		public TerminalNode NullLiteral() { return getToken(TeamAppsDtoParser.NullLiteral, 0); }
		public LiteralContext(ParserRuleContext parent, int invokingState) {
			super(parent, invokingState);
		}
		@Override public int getRuleIndex() { return RULE_literal; }
		@Override
		public void enterRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).enterLiteral(this);
		}
		@Override
		public void exitRule(ParseTreeListener listener) {
			if ( listener instanceof TeamAppsDtoListener ) ((TeamAppsDtoListener)listener).exitLiteral(this);
		}
	}

	public final LiteralContext literal() throws RecognitionException {
		LiteralContext _localctx = new LiteralContext(_ctx, getState());
		enterRule(_localctx, 102, RULE_literal);
		int _la;
		try {
			enterOuterAlt(_localctx, 1);
			{
			setState(631);
			_la = _input.LA(1);
			if ( !(((((_la - 73)) & ~0x3f) == 0 && ((1L << (_la - 73)) & 63L) != 0)) ) {
			_errHandler.recoverInline(this);
			}
			else {
				if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
				_errHandler.reportMatch(this);
				consume();
			}
			}
		}
		catch (RecognitionException re) {
			_localctx.exception = re;
			_errHandler.reportError(this, re);
			_errHandler.recover(this, re);
		}
		finally {
			exitRule();
		}
		return _localctx;
	}

	public boolean sempred(RuleContext _localctx, int ruleIndex, int predIndex) {
		switch (ruleIndex) {
		case 35:
			return expression_sempred((ExpressionContext)_localctx, predIndex);
		}
		return true;
	}
	private boolean expression_sempred(ExpressionContext _localctx, int predIndex) {
		switch (predIndex) {
		case 0:
			return precpred(_ctx, 13);
		case 1:
			return precpred(_ctx, 12);
		case 2:
			return precpred(_ctx, 11);
		case 3:
			return precpred(_ctx, 10);
		case 4:
			return precpred(_ctx, 8);
		case 5:
			return precpred(_ctx, 7);
		case 6:
			return precpred(_ctx, 6);
		case 7:
			return precpred(_ctx, 5);
		case 8:
			return precpred(_ctx, 4);
		case 9:
			return precpred(_ctx, 3);
		case 10:
			return precpred(_ctx, 2);
		case 11:
			return precpred(_ctx, 1);
		case 12:
			return precpred(_ctx, 24);
		case 13:
			return precpred(_ctx, 23);
		case 14:
			return precpred(_ctx, 22);
		case 15:
			return precpred(_ctx, 21);
		case 16:
			return precpred(_ctx, 20);
		case 17:
			return precpred(_ctx, 19);
		case 18:
			return precpred(_ctx, 16);
		case 19:
			return precpred(_ctx, 9);
		}
		return true;
	}

	public static final String _serializedATN =
		"\u0004\u0001R\u027a\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\u00070\u00021\u00071\u0002"+
		"2\u00072\u00023\u00073\u0001\u0000\u0005\u0000j\b\u0000\n\u0000\f\u0000"+
		"m\t\u0000\u0001\u0001\u0001\u0001\u0001\u0001\u0003\u0001r\b\u0001\u0001"+
		"\u0002\u0001\u0002\u0001\u0002\u0001\u0002\u0001\u0002\u0001\u0002\u0005"+
		"\u0002z\b\u0002\n\u0002\f\u0002}\t\u0002\u0003\u0002\u007f\b\u0002\u0001"+
		"\u0002\u0003\u0002\u0082\b\u0002\u0001\u0002\u0001\u0002\u0001\u0003\u0001"+
		"\u0003\u0001\u0003\u0003\u0003\u0089\b\u0003\u0001\u0004\u0003\u0004\u008c"+
		"\b\u0004\u0001\u0004\u0003\u0004\u008f\b\u0004\u0001\u0004\u0001\u0004"+
		"\u0001\u0004\u0003\u0004\u0094\b\u0004\u0001\u0004\u0003\u0004\u0097\b"+
		"\u0004\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004\u0005"+
		"\u0004\u009e\b\u0004\n\u0004\f\u0004\u00a1\t\u0004\u0001\u0004\u0001\u0004"+
		"\u0001\u0005\u0001\u0005\u0001\u0005\u0003\u0005\u00a8\b\u0005\u0001\u0005"+
		"\u0001\u0005\u0001\u0005\u0001\u0005\u0001\u0005\u0005\u0005\u00af\b\u0005"+
		"\n\u0005\f\u0005\u00b2\t\u0005\u0001\u0005\u0001\u0005\u0001\u0006\u0001"+
		"\u0006\u0001\u0006\u0001\u0007\u0001\u0007\u0001\u0007\u0001\b\u0001\b"+
		"\u0001\b\u0001\t\u0001\t\u0005\t\u00c1\b\t\n\t\f\t\u00c4\t\t\u0001\t\u0003"+
		"\t\u00c7\b\t\u0001\n\u0003\n\u00ca\b\n\u0001\n\u0003\n\u00cd\b\n\u0001"+
		"\n\u0001\n\u0001\n\u0003\n\u00d2\b\n\u0001\n\u0001\n\u0001\u000b\u0003"+
		"\u000b\u00d7\b\u000b\u0001\u000b\u0001\u000b\u0001\u000b\u0001\u000b\u0001"+
		"\u000b\u0001\u000b\u0005\u000b\u00df\b\u000b\n\u000b\f\u000b\u00e2\t\u000b"+
		"\u0001\u000b\u0003\u000b\u00e5\b\u000b\u0001\u000b\u0001\u000b\u0001\u000b"+
		"\u0003\u000b\u00ea\b\u000b\u0001\u000b\u0001\u000b\u0001\f\u0003\f\u00ef"+
		"\b\f\u0001\f\u0001\f\u0001\f\u0001\f\u0001\f\u0001\f\u0005\f\u00f7\b\f"+
		"\n\f\f\f\u00fa\t\f\u0001\f\u0003\f\u00fd\b\f\u0001\f\u0001\f\u0001\f\u0001"+
		"\r\u0001\r\u0001\r\u0001\r\u0001\r\u0001\r\u0005\r\u0108\b\r\n\r\f\r\u010b"+
		"\t\r\u0001\r\u0003\r\u010e\b\r\u0001\r\u0001\r\u0001\r\u0001\r\u0001\r"+
		"\u0001\u000e\u0001\u000e\u0001\u000e\u0001\u000f\u0001\u000f\u0001\u000f"+
		"\u0003\u000f\u011b\b\u000f\u0001\u0010\u0001\u0010\u0001\u0010\u0001\u0011"+
		"\u0001\u0011\u0001\u0011\u0005\u0011\u0123\b\u0011\n\u0011\f\u0011\u0126"+
		"\t\u0011\u0001\u0011\u0001\u0011\u0001\u0011\u0005\u0011\u012b\b\u0011"+
		"\n\u0011\f\u0011\u012e\t\u0011\u0001\u0011\u0001\u0011\u0001\u0011\u0001"+
		"\u0011\u0001\u0011\u0005\u0011\u0135\b\u0011\n\u0011\f\u0011\u0138\t\u0011"+
		"\u0003\u0011\u013a\b\u0011\u0001\u0012\u0001\u0012\u0001\u0012\u0001\u0012"+
		"\u0001\u0012\u0005\u0012\u0141\b\u0012\n\u0012\f\u0012\u0144\t\u0012\u0001"+
		"\u0012\u0001\u0012\u0001\u0013\u0001\u0013\u0003\u0013\u014a\b\u0013\u0001"+
		"\u0013\u0003\u0013\u014d\b\u0013\u0001\u0014\u0001\u0014\u0001\u0015\u0001"+
		"\u0015\u0001\u0015\u0001\u0015\u0005\u0015\u0155\b\u0015\n\u0015\f\u0015"+
		"\u0158\t\u0015\u0001\u0015\u0001\u0015\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\u0019\u0001\u0019\u0001\u001a"+
		"\u0001\u001a\u0001\u001b\u0001\u001b\u0001\u001c\u0001\u001c\u0001\u001d"+
		"\u0001\u001d\u0001\u001e\u0001\u001e\u0001\u001f\u0001\u001f\u0001\u001f"+
		"\u0001\u001f\u0001 \u0001 \u0001 \u0005 \u017b\b \n \f \u017e\t \u0001"+
		"!\u0001!\u0001\"\u0001\"\u0001#\u0001#\u0001#\u0001#\u0001#\u0001#\u0001"+
		"#\u0001#\u0001#\u0001#\u0001#\u0001#\u0001#\u0003#\u0191\b#\u0001#\u0001"+
		"#\u0001#\u0001#\u0001#\u0001#\u0001#\u0001#\u0001#\u0001#\u0001#\u0001"+
		"#\u0001#\u0001#\u0003#\u01a1\b#\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#\u0003#\u01d7\b#\u0001#\u0001"+
		"#\u0001#\u0001#\u0001#\u0001#\u0005#\u01df\b#\n#\f#\u01e2\t#\u0001$\u0001"+
		"$\u0001$\u0001$\u0001$\u0001$\u0001$\u0001$\u0001$\u0001$\u0001$\u0001"+
		"$\u0001$\u0001$\u0001$\u0001$\u0001$\u0001$\u0001$\u0003$\u01f7\b$\u0003"+
		"$\u01f9\b$\u0001%\u0001%\u0001%\u0001%\u0001%\u0001%\u0001%\u0003%\u0202"+
		"\b%\u0003%\u0204\b%\u0001&\u0001&\u0003&\u0208\b&\u0001&\u0001&\u0001"+
		"&\u0003&\u020d\b&\u0005&\u020f\b&\n&\f&\u0212\t&\u0001&\u0003&\u0215\b"+
		"&\u0001\'\u0001\'\u0001\'\u0001\'\u0005\'\u021b\b\'\n\'\f\'\u021e\t\'"+
		"\u0001\'\u0001\'\u0001\'\u0001\'\u0001\'\u0001\'\u0001\'\u0005\'\u0227"+
		"\b\'\n\'\f\'\u022a\t\'\u0001\'\u0001\'\u0005\'\u022e\b\'\n\'\f\'\u0231"+
		"\t\'\u0003\'\u0233\b\'\u0001(\u0001(\u0001)\u0001)\u0001)\u0001*\u0001"+
		"*\u0001*\u0001*\u0001+\u0001+\u0001+\u0005+\u0241\b+\n+\f+\u0244\t+\u0001"+
		",\u0001,\u0001,\u0003,\u0249\b,\u0001-\u0001-\u0001-\u0003-\u024e\b-\u0001"+
		".\u0001.\u0001.\u0001.\u0003.\u0254\b.\u0003.\u0256\b.\u0001/\u0001/\u0001"+
		"/\u0001/\u0003/\u025c\b/\u00010\u00010\u00030\u0260\b0\u00010\u00010\u0001"+
		"1\u00011\u00031\u0266\b1\u00012\u00012\u00012\u00012\u00052\u026c\b2\n"+
		"2\f2\u026f\t2\u00012\u00032\u0272\b2\u00032\u0274\b2\u00012\u00012\u0001"+
		"3\u00013\u00013\u0000\u0001F4\u0000\u0002\u0004\u0006\b\n\f\u000e\u0010"+
		"\u0012\u0014\u0016\u0018\u001a\u001c\u001e \"$&(*,.02468:<>@BDFHJLNPR"+
		"TVXZ\\^`bdf\u0000\n\u0001\u0000\u0018\u001f\u0001\u0000),\u0001\u0000"+
		"-.\u0002\u0000\u0013\u0013/0\u0001\u0000+,\u0002\u0000\u0014\u001512\u0001"+
		"\u000045\u0002\u0000\u0006\u0006=G\u0001\u0000)*\u0001\u0000IN\u02ac\u0000"+
		"k\u0001\u0000\u0000\u0000\u0002q\u0001\u0000\u0000\u0000\u0004s\u0001"+
		"\u0000\u0000\u0000\u0006\u0085\u0001\u0000\u0000\u0000\b\u008b\u0001\u0000"+
		"\u0000\u0000\n\u00a4\u0001\u0000\u0000\u0000\f\u00b5\u0001\u0000\u0000"+
		"\u0000\u000e\u00b8\u0001\u0000\u0000\u0000\u0010\u00bb\u0001\u0000\u0000"+
		"\u0000\u0012\u00c6\u0001\u0000\u0000\u0000\u0014\u00c9\u0001\u0000\u0000"+
		"\u0000\u0016\u00d6\u0001\u0000\u0000\u0000\u0018\u00ee\u0001\u0000\u0000"+
		"\u0000\u001a\u0101\u0001\u0000\u0000\u0000\u001c\u0114\u0001\u0000\u0000"+
		"\u0000\u001e\u0117\u0001\u0000\u0000\u0000 \u011c\u0001\u0000\u0000\u0000"+
		"\"\u0139\u0001\u0000\u0000\u0000$\u013b\u0001\u0000\u0000\u0000&\u0147"+
		"\u0001\u0000\u0000\u0000(\u014e\u0001\u0000\u0000\u0000*\u0150\u0001\u0000"+
		"\u0000\u0000,\u015b\u0001\u0000\u0000\u0000.\u015d\u0001\u0000\u0000\u0000"+
		"0\u0162\u0001\u0000\u0000\u00002\u0167\u0001\u0000\u0000\u00004\u0169"+
		"\u0001\u0000\u0000\u00006\u016b\u0001\u0000\u0000\u00008\u016d\u0001\u0000"+
		"\u0000\u0000:\u016f\u0001\u0000\u0000\u0000<\u0171\u0001\u0000\u0000\u0000"+
		">\u0173\u0001\u0000\u0000\u0000@\u0177\u0001\u0000\u0000\u0000B\u017f"+
		"\u0001\u0000\u0000\u0000D\u0181\u0001\u0000\u0000\u0000F\u0190\u0001\u0000"+
		"\u0000\u0000H\u01f8\u0001\u0000\u0000\u0000J\u0203\u0001\u0000\u0000\u0000"+
		"L\u0214\u0001\u0000\u0000\u0000N\u0216\u0001\u0000\u0000\u0000P\u0234"+
		"\u0001\u0000\u0000\u0000R\u0236\u0001\u0000\u0000\u0000T\u0239\u0001\u0000"+
		"\u0000\u0000V\u023d\u0001\u0000\u0000\u0000X\u0248\u0001\u0000\u0000\u0000"+
		"Z\u024d\u0001\u0000\u0000\u0000\\\u0255\u0001\u0000\u0000\u0000^\u025b"+
		"\u0001\u0000\u0000\u0000`\u025d\u0001\u0000\u0000\u0000b\u0265\u0001\u0000"+
		"\u0000\u0000d\u0267\u0001\u0000\u0000\u0000f\u0277\u0001\u0000\u0000\u0000"+
		"hj\u0003\u0002\u0001\u0000ih\u0001\u0000\u0000\u0000jm\u0001\u0000\u0000"+
		"\u0000ki\u0001\u0000\u0000\u0000kl\u0001\u0000\u0000\u0000l\u0001\u0001"+
		"\u0000\u0000\u0000mk\u0001\u0000\u0000\u0000nr\u0003\b\u0004\u0000or\u0003"+
		"\n\u0005\u0000pr\u0003\u0004\u0002\u0000qn\u0001\u0000\u0000\u0000qo\u0001"+
		"\u0000\u0000\u0000qp\u0001\u0000\u0000\u0000r\u0003\u0001\u0000\u0000"+
		"\u0000st\u0005\u0001\u0000\u0000tu\u0005O\u0000\u0000u~\u0005\u0002\u0000"+
		"\u0000v{\u0003\u0006\u0003\u0000wx\u0005\u0003\u0000\u0000xz\u0003\u0006"+
		"\u0003\u0000yw\u0001\u0000\u0000\u0000z}\u0001\u0000\u0000\u0000{y\u0001"+
		"\u0000\u0000\u0000{|\u0001\u0000\u0000\u0000|\u007f\u0001\u0000\u0000"+
		"\u0000}{\u0001\u0000\u0000\u0000~v\u0001\u0000\u0000\u0000~\u007f\u0001"+
		"\u0000\u0000\u0000\u007f\u0081\u0001\u0000\u0000\u0000\u0080\u0082\u0005"+
		"\u0004\u0000\u0000\u0081\u0080\u0001\u0000\u0000\u0000\u0081\u0082\u0001"+
		"\u0000\u0000\u0000\u0082\u0083\u0001\u0000\u0000\u0000\u0083\u0084\u0005"+
		"\u0005\u0000\u0000\u0084\u0005\u0001\u0000\u0000\u0000\u0085\u0088\u0005"+
		"O\u0000\u0000\u0086\u0087\u0005\u0006\u0000\u0000\u0087\u0089\u0005M\u0000"+
		"\u0000\u0088\u0086\u0001\u0000\u0000\u0000\u0088\u0089\u0001\u0000\u0000"+
		"\u0000\u0089\u0007\u0001\u0000\u0000\u0000\u008a\u008c\u00034\u001a\u0000"+
		"\u008b\u008a\u0001\u0000\u0000\u0000\u008b\u008c\u0001\u0000\u0000\u0000"+
		"\u008c\u008e\u0001\u0000\u0000\u0000\u008d\u008f\u00038\u001c\u0000\u008e"+
		"\u008d\u0001\u0000\u0000\u0000\u008e\u008f\u0001\u0000\u0000\u0000\u008f"+
		"\u0090\u0001\u0000\u0000\u0000\u0090\u0091\u0005\u0007\u0000\u0000\u0091"+
		"\u0093\u0005O\u0000\u0000\u0092\u0094\u0003\f\u0006\u0000\u0093\u0092"+
		"\u0001\u0000\u0000\u0000\u0093\u0094\u0001\u0000\u0000\u0000\u0094\u0096"+
		"\u0001\u0000\u0000\u0000\u0095\u0097\u0003\u0010\b\u0000\u0096\u0095\u0001"+
		"\u0000\u0000\u0000\u0096\u0097\u0001\u0000\u0000\u0000\u0097\u0098\u0001"+
		"\u0000\u0000\u0000\u0098\u009f\u0005\u0002\u0000\u0000\u0099\u009e\u0003"+
		"\u0014\n\u0000\u009a\u009e\u0003\u0016\u000b\u0000\u009b\u009e\u0003\u0018"+
		"\f\u0000\u009c\u009e\u0003\u001a\r\u0000\u009d\u0099\u0001\u0000\u0000"+
		"\u0000\u009d\u009a\u0001\u0000\u0000\u0000\u009d\u009b\u0001\u0000\u0000"+
		"\u0000\u009d\u009c\u0001\u0000\u0000\u0000\u009e\u00a1\u0001\u0000\u0000"+
		"\u0000\u009f\u009d\u0001\u0000\u0000\u0000\u009f\u00a0\u0001\u0000\u0000"+
		"\u0000\u00a0\u00a2\u0001\u0000\u0000\u0000\u00a1\u009f\u0001\u0000\u0000"+
		"\u0000\u00a2\u00a3\u0005\u0005\u0000\u0000\u00a3\t\u0001\u0000\u0000\u0000"+
		"\u00a4\u00a5\u0005\b\u0000\u0000\u00a5\u00a7\u0005O\u0000\u0000\u00a6"+
		"\u00a8\u0003\u000e\u0007\u0000\u00a7\u00a6\u0001\u0000\u0000\u0000\u00a7"+
		"\u00a8\u0001\u0000\u0000\u0000\u00a8\u00a9\u0001\u0000\u0000\u0000\u00a9"+
		"\u00b0\u0005\u0002\u0000\u0000\u00aa\u00af\u0003\u0014\n\u0000\u00ab\u00af"+
		"\u0003\u0016\u000b\u0000\u00ac\u00af\u0003\u0018\f\u0000\u00ad\u00af\u0003"+
		"\u001a\r\u0000\u00ae\u00aa\u0001\u0000\u0000\u0000\u00ae\u00ab\u0001\u0000"+
		"\u0000\u0000\u00ae\u00ac\u0001\u0000\u0000\u0000\u00ae\u00ad\u0001\u0000"+
		"\u0000\u0000\u00af\u00b2\u0001\u0000\u0000\u0000\u00b0\u00ae\u0001\u0000"+
		"\u0000\u0000\u00b0\u00b1\u0001\u0000\u0000\u0000\u00b1\u00b3\u0001\u0000"+
		"\u0000\u0000\u00b2\u00b0\u0001\u0000\u0000\u0000\u00b3\u00b4\u0005\u0005"+
		"\u0000\u0000\u00b4\u000b\u0001\u0000\u0000\u0000\u00b5\u00b6\u0005\t\u0000"+
		"\u0000\u00b6\u00b7\u0005O\u0000\u0000\u00b7\r\u0001\u0000\u0000\u0000"+
		"\u00b8\u00b9\u0005\t\u0000\u0000\u00b9\u00ba\u0003\u0012\t\u0000\u00ba"+
		"\u000f\u0001\u0000\u0000\u0000\u00bb\u00bc\u0005\n\u0000\u0000\u00bc\u00bd"+
		"\u0003\u0012\t\u0000\u00bd\u0011\u0001\u0000\u0000\u0000\u00be\u00bf\u0005"+
		"O\u0000\u0000\u00bf\u00c1\u0005\u0003\u0000\u0000\u00c0\u00be\u0001\u0000"+
		"\u0000\u0000\u00c1\u00c4\u0001\u0000\u0000\u0000\u00c2\u00c0\u0001\u0000"+
		"\u0000\u0000\u00c2\u00c3\u0001\u0000\u0000\u0000\u00c3\u00c5\u0001\u0000"+
		"\u0000\u0000\u00c4\u00c2\u0001\u0000\u0000\u0000\u00c5\u00c7\u0005O\u0000"+
		"\u0000\u00c6\u00c2\u0001\u0000\u0000\u0000\u00c6\u00c7\u0001\u0000\u0000"+
		"\u0000\u00c7\u0013\u0001\u0000\u0000\u0000\u00c8\u00ca\u00036\u001b\u0000"+
		"\u00c9\u00c8\u0001\u0000\u0000\u0000\u00c9\u00ca\u0001\u0000\u0000\u0000"+
		"\u00ca\u00cc\u0001\u0000\u0000\u0000\u00cb\u00cd\u0003:\u001d\u0000\u00cc"+
		"\u00cb\u0001\u0000\u0000\u0000\u00cc\u00cd\u0001\u0000\u0000\u0000\u00cd"+
		"\u00ce\u0001\u0000\u0000\u0000\u00ce\u00cf\u0003\"\u0011\u0000\u00cf\u00d1"+
		"\u0005O\u0000\u0000\u00d0\u00d2\u0003 \u0010\u0000\u00d1\u00d0\u0001\u0000"+
		"\u0000\u0000\u00d1\u00d2\u0001\u0000\u0000\u0000\u00d2\u00d3\u0001\u0000"+
		"\u0000\u0000\u00d3\u00d4\u0005\u0004\u0000\u0000\u00d4\u0015\u0001\u0000"+
		"\u0000\u0000\u00d5\u00d7\u0003<\u001e\u0000\u00d6\u00d5\u0001\u0000\u0000"+
		"\u0000\u00d6\u00d7\u0001\u0000\u0000\u0000\u00d7\u00d8\u0001\u0000\u0000"+
		"\u0000\u00d8\u00d9\u0005\u000b\u0000\u0000\u00d9\u00da\u0005O\u0000\u0000"+
		"\u00da\u00e4\u0005\f\u0000\u0000\u00db\u00dc\u0003\u001e\u000f\u0000\u00dc"+
		"\u00dd\u0005\u0003\u0000\u0000\u00dd\u00df\u0001\u0000\u0000\u0000\u00de"+
		"\u00db\u0001\u0000\u0000\u0000\u00df\u00e2\u0001\u0000\u0000\u0000\u00e0"+
		"\u00de\u0001\u0000\u0000\u0000\u00e0\u00e1\u0001\u0000\u0000\u0000\u00e1"+
		"\u00e3\u0001\u0000\u0000\u0000\u00e2\u00e0\u0001\u0000\u0000\u0000\u00e3"+
		"\u00e5\u0003\u001e\u000f\u0000\u00e4\u00e0\u0001\u0000\u0000\u0000\u00e4"+
		"\u00e5\u0001\u0000\u0000\u0000\u00e5\u00e6\u0001\u0000\u0000\u0000\u00e6"+
		"\u00e9\u0005\r\u0000\u0000\u00e7\u00e8\u0005\u000e\u0000\u0000\u00e8\u00ea"+
		"\u0003\"\u0011\u0000\u00e9\u00e7\u0001\u0000\u0000\u0000\u00e9\u00ea\u0001"+
		"\u0000\u0000\u0000\u00ea\u00eb\u0001\u0000\u0000\u0000\u00eb\u00ec\u0005"+
		"\u0004\u0000\u0000\u00ec\u0017\u0001\u0000\u0000\u0000\u00ed\u00ef\u0003"+
		"<\u001e\u0000\u00ee\u00ed\u0001\u0000\u0000\u0000\u00ee\u00ef\u0001\u0000"+
		"\u0000\u0000\u00ef\u00f0\u0001\u0000\u0000\u0000\u00f0\u00f1\u0005\u000f"+
		"\u0000\u0000\u00f1\u00f2\u0005O\u0000\u0000\u00f2\u00fc\u0005\f\u0000"+
		"\u0000\u00f3\u00f4\u0003\u001e\u000f\u0000\u00f4\u00f5\u0005\u0003\u0000"+
		"\u0000\u00f5\u00f7\u0001\u0000\u0000\u0000\u00f6\u00f3\u0001\u0000\u0000"+
		"\u0000\u00f7\u00fa\u0001\u0000\u0000\u0000\u00f8\u00f6\u0001\u0000\u0000"+
		"\u0000\u00f8\u00f9\u0001\u0000\u0000\u0000\u00f9\u00fb\u0001\u0000\u0000"+
		"\u0000\u00fa\u00f8\u0001\u0000\u0000\u0000\u00fb\u00fd\u0003\u001e\u000f"+
		"\u0000\u00fc\u00f8\u0001\u0000\u0000\u0000\u00fc\u00fd\u0001\u0000\u0000"+
		"\u0000\u00fd\u00fe\u0001\u0000\u0000\u0000\u00fe\u00ff\u0005\r\u0000\u0000"+
		"\u00ff\u0100\u0005\u0004\u0000\u0000\u0100\u0019\u0001\u0000\u0000\u0000"+
		"\u0101\u0102\u0005\u0010\u0000\u0000\u0102\u0103\u0005O\u0000\u0000\u0103"+
		"\u010d\u0005\f\u0000\u0000\u0104\u0105\u0003\u001e\u000f\u0000\u0105\u0106"+
		"\u0005\u0003\u0000\u0000\u0106\u0108\u0001\u0000\u0000\u0000\u0107\u0104"+
		"\u0001\u0000\u0000\u0000\u0108\u010b\u0001\u0000\u0000\u0000\u0109\u0107"+
		"\u0001\u0000\u0000\u0000\u0109\u010a\u0001\u0000\u0000\u0000\u010a\u010c"+
		"\u0001\u0000\u0000\u0000\u010b\u0109\u0001\u0000\u0000\u0000\u010c\u010e"+
		"\u0003\u001e\u000f\u0000\u010d\u0109\u0001\u0000\u0000\u0000\u010d\u010e"+
		"\u0001\u0000\u0000\u0000\u010e\u010f\u0001\u0000\u0000\u0000\u010f\u0110"+
		"\u0005\r\u0000\u0000\u0110\u0111\u0005\u000e\u0000\u0000\u0111\u0112\u0003"+
		"\"\u0011\u0000\u0112\u0113\u0005\u0004\u0000\u0000\u0113\u001b\u0001\u0000"+
		"\u0000\u0000\u0114\u0115\u0003\"\u0011\u0000\u0115\u0116\u0005O\u0000"+
		"\u0000\u0116\u001d\u0001\u0000\u0000\u0000\u0117\u0118\u0003\"\u0011\u0000"+
		"\u0118\u011a\u0005O\u0000\u0000\u0119\u011b\u0003 \u0010\u0000\u011a\u0119"+
		"\u0001\u0000\u0000\u0000\u011a\u011b\u0001\u0000\u0000\u0000\u011b\u001f"+
		"\u0001\u0000\u0000\u0000\u011c\u011d\u0005\u0006\u0000\u0000\u011d\u011e"+
		"\u0003F#\u0000\u011e!\u0001\u0000\u0000\u0000\u011f\u0124\u0003$\u0012"+
		"\u0000\u0120\u0121\u0005\u0011\u0000\u0000\u0121\u0123\u0005\u0012\u0000"+
		"\u0000\u0122\u0120\u0001\u0000\u0000\u0000\u0123\u0126\u0001\u0000\u0000"+
		"\u0000\u0124\u0122\u0001\u0000\u0000\u0000\u0124\u0125\u0001\u0000\u0000"+
		"\u0000\u0125\u013a\u0001\u0000\u0000\u0000\u0126\u0124\u0001\u0000\u0000"+
		"\u0000\u0127\u012c\u0003&\u0013\u0000\u0128\u0129\u0005\u0011\u0000\u0000"+
		"\u0129\u012b\u0005\u0012\u0000\u0000\u012a\u0128\u0001\u0000\u0000\u0000"+
		"\u012b\u012e\u0001\u0000\u0000\u0000\u012c\u012a\u0001\u0000\u0000\u0000"+
		"\u012c\u012d\u0001\u0000\u0000\u0000\u012d\u013a\u0001\u0000\u0000\u0000"+
		"\u012e\u012c\u0001\u0000\u0000\u0000\u012f\u013a\u0003.\u0017\u0000\u0130"+
		"\u013a\u00030\u0018\u0000\u0131\u0136\u00032\u0019\u0000\u0132\u0133\u0005"+
		"\u0011\u0000\u0000\u0133\u0135\u0005\u0012\u0000\u0000\u0134\u0132\u0001"+
		"\u0000\u0000\u0000\u0135\u0138\u0001\u0000\u0000\u0000\u0136\u0134\u0001"+
		"\u0000\u0000\u0000\u0136\u0137\u0001\u0000\u0000\u0000\u0137\u013a\u0001"+
		"\u0000\u0000\u0000\u0138\u0136\u0001\u0000\u0000\u0000\u0139\u011f\u0001"+
		"\u0000\u0000\u0000\u0139\u0127\u0001\u0000\u0000\u0000\u0139\u012f\u0001"+
		"\u0000\u0000\u0000\u0139\u0130\u0001\u0000\u0000\u0000\u0139\u0131\u0001"+
		"\u0000\u0000\u0000\u013a#\u0001\u0000\u0000\u0000\u013b\u013c\u0005\u0001"+
		"\u0000\u0000\u013c\u013d\u0005\u0002\u0000\u0000\u013d\u0142\u0003\u0006"+
		"\u0003\u0000\u013e\u013f\u0005\u0003\u0000\u0000\u013f\u0141\u0003\u0006"+
		"\u0003\u0000\u0140\u013e\u0001\u0000\u0000\u0000\u0141\u0144\u0001\u0000"+
		"\u0000\u0000\u0142\u0140\u0001\u0000\u0000\u0000\u0142\u0143\u0001\u0000"+
		"\u0000\u0000\u0143\u0145\u0001\u0000\u0000\u0000\u0144\u0142\u0001\u0000"+
		"\u0000\u0000\u0145\u0146\u0005\u0005\u0000\u0000\u0146%\u0001\u0000\u0000"+
		"\u0000\u0147\u0149\u0005O\u0000\u0000\u0148\u014a\u0003(\u0014\u0000\u0149"+
		"\u0148\u0001\u0000\u0000\u0000\u0149\u014a\u0001\u0000\u0000\u0000\u014a"+
		"\u014c\u0001\u0000\u0000\u0000\u014b\u014d\u0003*\u0015\u0000\u014c\u014b"+
		"\u0001\u0000\u0000\u0000\u014c\u014d\u0001\u0000\u0000\u0000\u014d\'\u0001"+
		"\u0000\u0000\u0000\u014e\u014f\u0005\u0013\u0000\u0000\u014f)\u0001\u0000"+
		"\u0000\u0000\u0150\u0151\u0005\u0014\u0000\u0000\u0151\u0156\u0003,\u0016"+
		"\u0000\u0152\u0153\u0005\u0003\u0000\u0000\u0153\u0155\u0003,\u0016\u0000"+
		"\u0154\u0152\u0001\u0000\u0000\u0000\u0155\u0158\u0001\u0000\u0000\u0000"+
		"\u0156\u0154\u0001\u0000\u0000\u0000\u0156\u0157\u0001\u0000\u0000\u0000"+
		"\u0157\u0159\u0001\u0000\u0000\u0000\u0158\u0156\u0001\u0000\u0000\u0000"+
		"\u0159\u015a\u0005\u0015\u0000\u0000\u015a+\u0001\u0000\u0000\u0000\u015b"+
		"\u015c\u0003\"\u0011\u0000\u015c-\u0001\u0000\u0000\u0000\u015d\u015e"+
		"\u0005\u0016\u0000\u0000\u015e\u015f\u0005\u0014\u0000\u0000\u015f\u0160"+
		"\u0003&\u0013\u0000\u0160\u0161\u0005\u0015\u0000\u0000\u0161/\u0001\u0000"+
		"\u0000\u0000\u0162\u0163\u0005\u0017\u0000\u0000\u0163\u0164\u0005\u0014"+
		"\u0000\u0000\u0164\u0165\u0003&\u0013\u0000\u0165\u0166\u0005\u0015\u0000"+
		"\u0000\u01661\u0001\u0000\u0000\u0000\u0167\u0168\u0007\u0000\u0000\u0000"+
		"\u01683\u0001\u0000\u0000\u0000\u0169\u016a\u0005 \u0000\u0000\u016a5"+
		"\u0001\u0000\u0000\u0000\u016b\u016c\u0005!\u0000\u0000\u016c7\u0001\u0000"+
		"\u0000\u0000\u016d\u016e\u0005\"\u0000\u0000\u016e9\u0001\u0000\u0000"+
		"\u0000\u016f\u0170\u0005#\u0000\u0000\u0170;\u0001\u0000\u0000\u0000\u0171"+
		"\u0172\u0005$\u0000\u0000\u0172=\u0001\u0000\u0000\u0000\u0173\u0174\u0005"+
		"\f\u0000\u0000\u0174\u0175\u0003F#\u0000\u0175\u0176\u0005\r\u0000\u0000"+
		"\u0176?\u0001\u0000\u0000\u0000\u0177\u017c\u0003F#\u0000\u0178\u0179"+
		"\u0005\u0003\u0000\u0000\u0179\u017b\u0003F#\u0000\u017a\u0178\u0001\u0000"+
		"\u0000\u0000\u017b\u017e\u0001\u0000\u0000\u0000\u017c\u017a\u0001\u0000"+
		"\u0000\u0000\u017c\u017d\u0001\u0000\u0000\u0000\u017dA\u0001\u0000\u0000"+
		"\u0000\u017e\u017c\u0001\u0000\u0000\u0000\u017f\u0180\u0003F#\u0000\u0180"+
		"C\u0001\u0000\u0000\u0000\u0181\u0182\u0003F#\u0000\u0182E\u0001\u0000"+
		"\u0000\u0000\u0183\u0184\u0006#\uffff\uffff\u0000\u0184\u0191\u0003H$"+
		"\u0000\u0185\u0186\u0005(\u0000\u0000\u0186\u0191\u0003J%\u0000\u0187"+
		"\u0188\u0005\f\u0000\u0000\u0188\u0189\u0003\"\u0011\u0000\u0189\u018a"+
		"\u0005\r\u0000\u0000\u018a\u018b\u0003F#\u0011\u018b\u0191\u0001\u0000"+
		"\u0000\u0000\u018c\u018d\u0007\u0001\u0000\u0000\u018d\u0191\u0003F#\u000f"+
		"\u018e\u018f\u0007\u0002\u0000\u0000\u018f\u0191\u0003F#\u000e\u0190\u0183"+
		"\u0001\u0000\u0000\u0000\u0190\u0185\u0001\u0000\u0000\u0000\u0190\u0187"+
		"\u0001\u0000\u0000\u0000\u0190\u018c\u0001\u0000\u0000\u0000\u0190\u018e"+
		"\u0001\u0000\u0000\u0000\u0191\u01e0\u0001\u0000\u0000\u0000\u0192\u0193"+
		"\n\r\u0000\u0000\u0193\u0194\u0007\u0003\u0000\u0000\u0194\u01df\u0003"+
		"F#\u000e\u0195\u0196\n\f\u0000\u0000\u0196\u0197\u0007\u0004\u0000\u0000"+
		"\u0197\u01df\u0003F#\r\u0198\u01a0\n\u000b\u0000\u0000\u0199\u019a\u0005"+
		"\u0014\u0000\u0000\u019a\u01a1\u0005\u0014\u0000\u0000\u019b\u019c\u0005"+
		"\u0015\u0000\u0000\u019c\u019d\u0005\u0015\u0000\u0000\u019d\u01a1\u0005"+
		"\u0015\u0000\u0000\u019e\u019f\u0005\u0015\u0000\u0000\u019f\u01a1\u0005"+
		"\u0015\u0000\u0000\u01a0\u0199\u0001\u0000\u0000\u0000\u01a0\u019b\u0001"+
		"\u0000\u0000\u0000\u01a0\u019e\u0001\u0000\u0000\u0000\u01a1\u01a2\u0001"+
		"\u0000\u0000\u0000\u01a2\u01df\u0003F#\f\u01a3\u01a4\n\n\u0000\u0000\u01a4"+
		"\u01a5\u0007\u0005\u0000\u0000\u01a5\u01df\u0003F#\u000b\u01a6\u01a7\n"+
		"\b\u0000\u0000\u01a7\u01a8\u0007\u0006\u0000\u0000\u01a8\u01df\u0003F"+
		"#\t\u01a9\u01aa\n\u0007\u0000\u0000\u01aa\u01ab\u00056\u0000\u0000\u01ab"+
		"\u01df\u0003F#\b\u01ac\u01ad\n\u0006\u0000\u0000\u01ad\u01ae\u00057\u0000"+
		"\u0000\u01ae\u01df\u0003F#\u0007\u01af\u01b0\n\u0005\u0000\u0000\u01b0"+
		"\u01b1\u00058\u0000\u0000\u01b1\u01df\u0003F#\u0006\u01b2\u01b3\n\u0004"+
		"\u0000\u0000\u01b3\u01b4\u00059\u0000\u0000\u01b4\u01df\u0003F#\u0005"+
		"\u01b5\u01b6\n\u0003\u0000\u0000\u01b6\u01b7\u0005:\u0000\u0000\u01b7"+
		"\u01df\u0003F#\u0004\u01b8\u01b9\n\u0002\u0000\u0000\u01b9\u01ba\u0005"+
		";\u0000\u0000\u01ba\u01bb\u0003F#\u0000\u01bb\u01bc\u0005<\u0000\u0000"+
		"\u01bc\u01bd\u0003F#\u0003\u01bd\u01df\u0001\u0000\u0000\u0000\u01be\u01bf"+
		"\n\u0001\u0000\u0000\u01bf\u01c0\u0007\u0007\u0000\u0000\u01c0\u01df\u0003"+
		"F#\u0001\u01c1\u01c2\n\u0018\u0000\u0000\u01c2\u01c3\u0005%\u0000\u0000"+
		"\u01c3\u01df\u0005O\u0000\u0000\u01c4\u01c5\n\u0017\u0000\u0000\u01c5"+
		"\u01c6\u0005%\u0000\u0000\u01c6\u01df\u0005&\u0000\u0000\u01c7\u01c8\n"+
		"\u0016\u0000\u0000\u01c8\u01c9\u0005%\u0000\u0000\u01c9\u01ca\u0005\'"+
		"\u0000\u0000\u01ca\u01df\u0003\\.\u0000\u01cb\u01cc\n\u0015\u0000\u0000"+
		"\u01cc\u01cd\u0005%\u0000\u0000\u01cd\u01df\u0003R)\u0000\u01ce\u01cf"+
		"\n\u0014\u0000\u0000\u01cf\u01d0\u0005\u0011\u0000\u0000\u01d0\u01d1\u0003"+
		"F#\u0000\u01d1\u01d2\u0005\u0012\u0000\u0000\u01d2\u01df\u0001\u0000\u0000"+
		"\u0000\u01d3\u01d4\n\u0013\u0000\u0000\u01d4\u01d6\u0005\f\u0000\u0000"+
		"\u01d5\u01d7\u0003@ \u0000\u01d6\u01d5\u0001\u0000\u0000\u0000\u01d6\u01d7"+
		"\u0001\u0000\u0000\u0000\u01d7\u01d8\u0001\u0000\u0000\u0000\u01d8\u01df"+
		"\u0005\r\u0000\u0000\u01d9\u01da\n\u0010\u0000\u0000\u01da\u01df\u0007"+
		"\b\u0000\u0000\u01db\u01dc\n\t\u0000\u0000\u01dc\u01dd\u00053\u0000\u0000"+
		"\u01dd\u01df\u0003\"\u0011\u0000\u01de\u0192\u0001\u0000\u0000\u0000\u01de"+
		"\u0195\u0001\u0000\u0000\u0000\u01de\u0198\u0001\u0000\u0000\u0000\u01de"+
		"\u01a3\u0001\u0000\u0000\u0000\u01de\u01a6\u0001\u0000\u0000\u0000\u01de"+
		"\u01a9\u0001\u0000\u0000\u0000\u01de\u01ac\u0001\u0000\u0000\u0000\u01de"+
		"\u01af\u0001\u0000\u0000\u0000\u01de\u01b2\u0001\u0000\u0000\u0000\u01de"+
		"\u01b5\u0001\u0000\u0000\u0000\u01de\u01b8\u0001\u0000\u0000\u0000\u01de"+
		"\u01be\u0001\u0000\u0000\u0000\u01de\u01c1\u0001\u0000\u0000\u0000\u01de"+
		"\u01c4\u0001\u0000\u0000\u0000\u01de\u01c7\u0001\u0000\u0000\u0000\u01de"+
		"\u01cb\u0001\u0000\u0000\u0000\u01de\u01ce\u0001\u0000\u0000\u0000\u01de"+
		"\u01d3\u0001\u0000\u0000\u0000\u01de\u01d9\u0001\u0000\u0000\u0000\u01de"+
		"\u01db\u0001\u0000\u0000\u0000\u01df\u01e2\u0001\u0000\u0000\u0000\u01e0"+
		"\u01de\u0001\u0000\u0000\u0000\u01e0\u01e1\u0001\u0000\u0000\u0000\u01e1"+
		"G\u0001\u0000\u0000\u0000\u01e2\u01e0\u0001\u0000\u0000\u0000\u01e3\u01e4"+
		"\u0005\f\u0000\u0000\u01e4\u01e5\u0003F#\u0000\u01e5\u01e6\u0005\r\u0000"+
		"\u0000\u01e6\u01f9\u0001\u0000\u0000\u0000\u01e7\u01f9\u0005&\u0000\u0000"+
		"\u01e8\u01f9\u0005\'\u0000\u0000\u01e9\u01f9\u0003f3\u0000\u01ea\u01f9"+
		"\u0005O\u0000\u0000\u01eb\u01ec\u0003\"\u0011\u0000\u01ec\u01ed\u0005"+
		"%\u0000\u0000\u01ed\u01ee\u0005\u0007\u0000\u0000\u01ee\u01f9\u0001\u0000"+
		"\u0000\u0000\u01ef\u01f0\u0005H\u0000\u0000\u01f0\u01f1\u0005%\u0000\u0000"+
		"\u01f1\u01f9\u0005\u0007\u0000\u0000\u01f2\u01f6\u0003T*\u0000\u01f3\u01f7"+
		"\u0003^/\u0000\u01f4\u01f5\u0005&\u0000\u0000\u01f5\u01f7\u0003`0\u0000"+
		"\u01f6\u01f3\u0001\u0000\u0000\u0000\u01f6\u01f4\u0001\u0000\u0000\u0000"+
		"\u01f7\u01f9\u0001\u0000\u0000\u0000\u01f8\u01e3\u0001\u0000\u0000\u0000"+
		"\u01f8\u01e7\u0001\u0000\u0000\u0000\u01f8\u01e8\u0001\u0000\u0000\u0000"+
		"\u01f8\u01e9\u0001\u0000\u0000\u0000\u01f8\u01ea\u0001\u0000\u0000\u0000"+
		"\u01f8\u01eb\u0001\u0000\u0000\u0000\u01f8\u01ef\u0001\u0000\u0000\u0000"+
		"\u01f8\u01f2\u0001\u0000\u0000\u0000\u01f9I\u0001\u0000\u0000\u0000\u01fa"+
		"\u01fb\u0003T*\u0000\u01fb\u01fc\u0003L&\u0000\u01fc\u01fd\u0003P(\u0000"+
		"\u01fd\u0204\u0001\u0000\u0000\u0000\u01fe\u0201\u0003L&\u0000\u01ff\u0202"+
		"\u0003N\'\u0000\u0200\u0202\u0003P(\u0000\u0201\u01ff\u0001\u0000\u0000"+
		"\u0000\u0201\u0200\u0001\u0000\u0000\u0000\u0202\u0204\u0001\u0000\u0000"+
		"\u0000\u0203\u01fa\u0001\u0000\u0000\u0000\u0203\u01fe\u0001\u0000\u0000"+
		"\u0000\u0204K\u0001\u0000\u0000\u0000\u0205\u0207\u0005O\u0000\u0000\u0206"+
		"\u0208\u0003X,\u0000\u0207\u0206\u0001\u0000\u0000\u0000\u0207\u0208\u0001"+
		"\u0000\u0000\u0000\u0208\u0210\u0001\u0000\u0000\u0000\u0209\u020a\u0005"+
		"%\u0000\u0000\u020a\u020c\u0005O\u0000\u0000\u020b\u020d\u0003X,\u0000"+
		"\u020c\u020b\u0001\u0000\u0000\u0000\u020c\u020d\u0001\u0000\u0000\u0000"+
		"\u020d\u020f\u0001\u0000\u0000\u0000\u020e\u0209\u0001\u0000\u0000\u0000"+
		"\u020f\u0212\u0001\u0000\u0000\u0000\u0210\u020e\u0001\u0000\u0000\u0000"+
		"\u0210\u0211\u0001\u0000\u0000\u0000\u0211\u0215\u0001\u0000\u0000\u0000"+
		"\u0212\u0210\u0001\u0000\u0000\u0000\u0213\u0215\u00032\u0019\u0000\u0214"+
		"\u0205\u0001\u0000\u0000\u0000\u0214\u0213\u0001\u0000\u0000\u0000\u0215"+
		"M\u0001\u0000\u0000\u0000\u0216\u0232\u0005\u0011\u0000\u0000\u0217\u021c"+
		"\u0005\u0012\u0000\u0000\u0218\u0219\u0005\u0011\u0000\u0000\u0219\u021b"+
		"\u0005\u0012\u0000\u0000\u021a\u0218\u0001\u0000\u0000\u0000\u021b\u021e"+
		"\u0001\u0000\u0000\u0000\u021c\u021a\u0001\u0000\u0000\u0000\u021c\u021d"+
		"\u0001\u0000\u0000\u0000\u021d\u021f\u0001\u0000\u0000\u0000\u021e\u021c"+
		"\u0001\u0000\u0000\u0000\u021f\u0233\u0003d2\u0000\u0220\u0221\u0003F"+
		"#\u0000\u0221\u0228\u0005\u0012\u0000\u0000\u0222\u0223\u0005\u0011\u0000"+
		"\u0000\u0223\u0224\u0003F#\u0000\u0224\u0225\u0005\u0012\u0000\u0000\u0225"+
		"\u0227\u0001\u0000\u0000\u0000\u0226\u0222\u0001\u0000\u0000\u0000\u0227"+
		"\u022a\u0001\u0000\u0000\u0000\u0228\u0226\u0001\u0000\u0000\u0000\u0228"+
		"\u0229\u0001\u0000\u0000\u0000\u0229\u022f\u0001\u0000\u0000\u0000\u022a"+
		"\u0228\u0001\u0000\u0000\u0000\u022b\u022c\u0005\u0011\u0000\u0000\u022c"+
		"\u022e\u0005\u0012\u0000\u0000\u022d\u022b\u0001\u0000\u0000\u0000\u022e"+
		"\u0231\u0001\u0000\u0000\u0000\u022f\u022d\u0001\u0000\u0000\u0000\u022f"+
		"\u0230\u0001\u0000\u0000\u0000\u0230\u0233\u0001\u0000\u0000\u0000\u0231"+
		"\u022f\u0001\u0000\u0000\u0000\u0232\u0217\u0001\u0000\u0000\u0000\u0232"+
		"\u0220\u0001\u0000\u0000\u0000\u0233O\u0001\u0000\u0000\u0000\u0234\u0235"+
		"\u0003`0\u0000\u0235Q\u0001\u0000\u0000\u0000\u0236\u0237\u0003T*\u0000"+
		"\u0237\u0238\u0003^/\u0000\u0238S\u0001\u0000\u0000\u0000\u0239\u023a"+
		"\u0005\u0014\u0000\u0000\u023a\u023b\u0003V+\u0000\u023b\u023c\u0005\u0015"+
		"\u0000\u0000\u023cU\u0001\u0000\u0000\u0000\u023d\u0242\u0003\"\u0011"+
		"\u0000\u023e\u023f\u0005\u0003\u0000\u0000\u023f\u0241\u0003\"\u0011\u0000"+
		"\u0240\u023e\u0001\u0000\u0000\u0000\u0241\u0244\u0001\u0000\u0000\u0000"+
		"\u0242\u0240\u0001\u0000\u0000\u0000\u0242\u0243\u0001\u0000\u0000\u0000"+
		"\u0243W\u0001\u0000\u0000\u0000\u0244\u0242\u0001\u0000\u0000\u0000\u0245"+
		"\u0246\u0005\u0014\u0000\u0000\u0246\u0249\u0005\u0015\u0000\u0000\u0247"+
		"\u0249\u0003*\u0015\u0000\u0248\u0245\u0001\u0000\u0000\u0000\u0248\u0247"+
		"\u0001\u0000\u0000\u0000\u0249Y\u0001\u0000\u0000\u0000\u024a\u024b\u0005"+
		"\u0014\u0000\u0000\u024b\u024e\u0005\u0015\u0000\u0000\u024c\u024e\u0003"+
		"T*\u0000\u024d\u024a\u0001\u0000\u0000\u0000\u024d\u024c\u0001\u0000\u0000"+
		"\u0000\u024e[\u0001\u0000\u0000\u0000\u024f\u0256\u0003`0\u0000\u0250"+
		"\u0251\u0005%\u0000\u0000\u0251\u0253\u0005O\u0000\u0000\u0252\u0254\u0003"+
		"`0\u0000\u0253\u0252\u0001\u0000\u0000\u0000\u0253\u0254\u0001\u0000\u0000"+
		"\u0000\u0254\u0256\u0001\u0000\u0000\u0000\u0255\u024f\u0001\u0000\u0000"+
		"\u0000\u0255\u0250\u0001\u0000\u0000\u0000\u0256]\u0001\u0000\u0000\u0000"+
		"\u0257\u0258\u0005\'\u0000\u0000\u0258\u025c\u0003\\.\u0000\u0259\u025a"+
		"\u0005O\u0000\u0000\u025a\u025c\u0003`0\u0000\u025b\u0257\u0001\u0000"+
		"\u0000\u0000\u025b\u0259\u0001\u0000\u0000\u0000\u025c_\u0001\u0000\u0000"+
		"\u0000\u025d\u025f\u0005\f\u0000\u0000\u025e\u0260\u0003@ \u0000\u025f"+
		"\u025e\u0001\u0000\u0000\u0000\u025f\u0260\u0001\u0000\u0000\u0000\u0260"+
		"\u0261\u0001\u0000\u0000\u0000\u0261\u0262\u0005\r\u0000\u0000\u0262a"+
		"\u0001\u0000\u0000\u0000\u0263\u0266\u0003d2\u0000\u0264\u0266\u0003F"+
		"#\u0000\u0265\u0263\u0001\u0000\u0000\u0000\u0265\u0264\u0001\u0000\u0000"+
		"\u0000\u0266c\u0001\u0000\u0000\u0000\u0267\u0273\u0005\u0002\u0000\u0000"+
		"\u0268\u026d\u0003b1\u0000\u0269\u026a\u0005\u0003\u0000\u0000\u026a\u026c"+
		"\u0003b1\u0000\u026b\u0269\u0001\u0000\u0000\u0000\u026c\u026f\u0001\u0000"+
		"\u0000\u0000\u026d\u026b\u0001\u0000\u0000\u0000\u026d\u026e\u0001\u0000"+
		"\u0000\u0000\u026e\u0271\u0001\u0000\u0000\u0000\u026f\u026d\u0001\u0000"+
		"\u0000\u0000\u0270\u0272\u0005\u0003\u0000\u0000\u0271\u0270\u0001\u0000"+
		"\u0000\u0000\u0271\u0272\u0001\u0000\u0000\u0000\u0272\u0274\u0001\u0000"+
		"\u0000\u0000\u0273\u0268\u0001\u0000\u0000\u0000\u0273\u0274\u0001\u0000"+
		"\u0000\u0000\u0274\u0275\u0001\u0000\u0000\u0000\u0275\u0276\u0005\u0005"+
		"\u0000\u0000\u0276e\u0001\u0000\u0000\u0000\u0277\u0278\u0007\t\u0000"+
		"\u0000\u0278g\u0001\u0000\u0000\u0000Ckq{~\u0081\u0088\u008b\u008e\u0093"+
		"\u0096\u009d\u009f\u00a7\u00ae\u00b0\u00c2\u00c6\u00c9\u00cc\u00d1\u00d6"+
		"\u00e0\u00e4\u00e9\u00ee\u00f8\u00fc\u0109\u010d\u011a\u0124\u012c\u0136"+
		"\u0139\u0142\u0149\u014c\u0156\u017c\u0190\u01a0\u01d6\u01de\u01e0\u01f6"+
		"\u01f8\u0201\u0203\u0207\u020c\u0210\u0214\u021c\u0228\u022f\u0232\u0242"+
		"\u0248\u024d\u0253\u0255\u025b\u025f\u0265\u026d\u0271\u0273";
	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);
		}
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy