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

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

There is a newer version: 0.9.195
Show newest version
/*-
 * ========================LICENSE_START=================================
 * TeamApps
 * ---
 * Copyright (C) 2014 - 2022 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.7.1

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"})
public class TeamAppsDtoParser extends Parser {
	static { RuntimeMetaData.checkVersion("4.7.1", 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;
	public static final String[] ruleNames = {
		"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"
	};

	private static final String[] _LITERAL_NAMES = {
		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[] _SYMBOLIC_NAMES = {
		null, null, null, null, null, null, null, null, null, null, null, null, 
		null, null, null, null, null, null, null, null, null, null, null, null, 
		null, null, null, null, null, null, null, null, null, null, null, null, 
		null, null, null, null, null, null, null, null, null, null, null, null, 
		null, null, null, null, null, null, null, null, null, null, null, null, 
		null, null, null, null, null, null, null, null, null, null, null, null, 
		null, "IntegerLiteral", "FloatingPointLiteral", "BooleanLiteral", "CharacterLiteral", 
		"StringLiteral", "NullLiteral", "Identifier", "WS", "COMMENT", "LINE_COMMENT"
	};
	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);
	}
	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) & ((1L << T__0) | (1L << T__6) | (1L << T__7) | (1L << T__31) | (1L << T__33))) != 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;
	}

	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;
	}

	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;
	}

	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;
	}

	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) & ((1L << T__0) | (1L << T__10) | (1L << T__14) | (1L << T__15) | (1L << T__21) | (1L << T__22) | (1L << T__23) | (1L << T__24) | (1L << T__25) | (1L << T__26) | (1L << T__27) | (1L << T__28) | (1L << T__29) | (1L << T__30) | (1L << T__32) | (1L << T__34) | (1L << T__35))) != 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;
	}

	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) & ((1L << T__0) | (1L << T__10) | (1L << T__14) | (1L << T__15) | (1L << T__21) | (1L << T__22) | (1L << T__23) | (1L << T__24) | (1L << T__25) | (1L << T__26) | (1L << T__27) | (1L << T__28) | (1L << T__29) | (1L << T__30) | (1L << T__32) | (1L << T__34) | (1L << T__35))) != 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;
	}

	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;
	}

	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;
	}

	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;
	}

	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;
	}

	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;
	}

	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) & ((1L << T__0) | (1L << T__21) | (1L << T__22) | (1L << T__23) | (1L << T__24) | (1L << T__25) | (1L << T__26) | (1L << T__27) | (1L << T__28) | (1L << T__29) | (1L << T__30))) != 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;
	}

	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) & ((1L << T__0) | (1L << T__21) | (1L << T__22) | (1L << T__23) | (1L << T__24) | (1L << T__25) | (1L << T__26) | (1L << T__27) | (1L << T__28) | (1L << T__29) | (1L << T__30))) != 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;
	}

	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) & ((1L << T__0) | (1L << T__21) | (1L << T__22) | (1L << T__23) | (1L << T__24) | (1L << T__25) | (1L << T__26) | (1L << T__27) | (1L << T__28) | (1L << T__29) | (1L << T__30))) != 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;
	}

	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;
	}

	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;
	}

	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;
	}

	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;
	}

	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;
	}

	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;
	}

	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;
	}

	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;
	}

	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;
	}

	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;
	}

	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;
	}

	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) & ((1L << T__23) | (1L << T__24) | (1L << T__25) | (1L << T__26) | (1L << T__27) | (1L << T__28) | (1L << T__29) | (1L << T__30))) != 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 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;
	}

	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;
	}

	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;
	}

	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;
	}

	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;
	}

	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;
	}

	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;
	}

	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;
	}

	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;
	}

	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) & ((1L << T__40) | (1L << T__41) | (1L << T__42) | (1L << T__43))) != 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) & ((1L << T__18) | (1L << T__46) | (1L << T__47))) != 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) & ((1L << T__19) | (1L << T__20) | (1L << T__48) | (1L << T__49))) != 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) & ((1L << T__5) | (1L << T__60) | (1L << T__61) | (1L << T__62))) != 0) || ((((_la - 64)) & ~0x3f) == 0 && ((1L << (_la - 64)) & ((1L << (T__63 - 64)) | (1L << (T__64 - 64)) | (1L << (T__65 - 64)) | (1L << (T__66 - 64)) | (1L << (T__67 - 64)) | (1L << (T__68 - 64)) | (1L << (T__69 - 64)) | (1L << (T__70 - 64)))) != 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) & ((1L << T__0) | (1L << T__11) | (1L << T__19) | (1L << T__21) | (1L << T__22) | (1L << T__23) | (1L << T__24) | (1L << T__25) | (1L << T__26) | (1L << T__27) | (1L << T__28) | (1L << T__29) | (1L << T__30) | (1L << T__37) | (1L << T__38) | (1L << T__39) | (1L << T__40) | (1L << T__41) | (1L << T__42) | (1L << T__43) | (1L << T__44) | (1L << T__45))) != 0) || ((((_la - 72)) & ~0x3f) == 0 && ((1L << (_la - 72)) & ((1L << (T__71 - 72)) | (1L << (IntegerLiteral - 72)) | (1L << (FloatingPointLiteral - 72)) | (1L << (BooleanLiteral - 72)) | (1L << (CharacterLiteral - 72)) | (1L << (StringLiteral - 72)) | (1L << (NullLiteral - 72)) | (1L << (Identifier - 72)))) != 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;
	}

	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;
	}

	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;
	}

	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;
	}

	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;
	}

	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;
	}

	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;
	}

	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;
	}

	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;
	}

	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;
	}

	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;
	}

	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;
	}

	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;
	}

	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) & ((1L << T__0) | (1L << T__11) | (1L << T__19) | (1L << T__21) | (1L << T__22) | (1L << T__23) | (1L << T__24) | (1L << T__25) | (1L << T__26) | (1L << T__27) | (1L << T__28) | (1L << T__29) | (1L << T__30) | (1L << T__37) | (1L << T__38) | (1L << T__39) | (1L << T__40) | (1L << T__41) | (1L << T__42) | (1L << T__43) | (1L << T__44) | (1L << T__45))) != 0) || ((((_la - 72)) & ~0x3f) == 0 && ((1L << (_la - 72)) & ((1L << (T__71 - 72)) | (1L << (IntegerLiteral - 72)) | (1L << (FloatingPointLiteral - 72)) | (1L << (BooleanLiteral - 72)) | (1L << (CharacterLiteral - 72)) | (1L << (StringLiteral - 72)) | (1L << (NullLiteral - 72)) | (1L << (Identifier - 72)))) != 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;
	}

	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;
	}

	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) & ((1L << T__0) | (1L << T__1) | (1L << T__11) | (1L << T__19) | (1L << T__21) | (1L << T__22) | (1L << T__23) | (1L << T__24) | (1L << T__25) | (1L << T__26) | (1L << T__27) | (1L << T__28) | (1L << T__29) | (1L << T__30) | (1L << T__37) | (1L << T__38) | (1L << T__39) | (1L << T__40) | (1L << T__41) | (1L << T__42) | (1L << T__43) | (1L << T__44) | (1L << T__45))) != 0) || ((((_la - 72)) & ~0x3f) == 0 && ((1L << (_la - 72)) & ((1L << (T__71 - 72)) | (1L << (IntegerLiteral - 72)) | (1L << (FloatingPointLiteral - 72)) | (1L << (BooleanLiteral - 72)) | (1L << (CharacterLiteral - 72)) | (1L << (StringLiteral - 72)) | (1L << (NullLiteral - 72)) | (1L << (Identifier - 72)))) != 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;
	}

	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)) & ((1L << (IntegerLiteral - 73)) | (1L << (FloatingPointLiteral - 73)) | (1L << (BooleanLiteral - 73)) | (1L << (CharacterLiteral - 73)) | (1L << (StringLiteral - 73)) | (1L << (NullLiteral - 73)))) != 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 =
		"\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\3T\u027c\4\2\t\2\4"+
		"\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13\t"+
		"\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22"+
		"\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30\4\31\t\31"+
		"\4\32\t\32\4\33\t\33\4\34\t\34\4\35\t\35\4\36\t\36\4\37\t\37\4 \t \4!"+
		"\t!\4\"\t\"\4#\t#\4$\t$\4%\t%\4&\t&\4\'\t\'\4(\t(\4)\t)\4*\t*\4+\t+\4"+
		",\t,\4-\t-\4.\t.\4/\t/\4\60\t\60\4\61\t\61\4\62\t\62\4\63\t\63\4\64\t"+
		"\64\4\65\t\65\3\2\7\2l\n\2\f\2\16\2o\13\2\3\3\3\3\3\3\5\3t\n\3\3\4\3\4"+
		"\3\4\3\4\3\4\3\4\7\4|\n\4\f\4\16\4\177\13\4\5\4\u0081\n\4\3\4\5\4\u0084"+
		"\n\4\3\4\3\4\3\5\3\5\3\5\5\5\u008b\n\5\3\6\5\6\u008e\n\6\3\6\5\6\u0091"+
		"\n\6\3\6\3\6\3\6\5\6\u0096\n\6\3\6\5\6\u0099\n\6\3\6\3\6\3\6\3\6\3\6\7"+
		"\6\u00a0\n\6\f\6\16\6\u00a3\13\6\3\6\3\6\3\7\3\7\3\7\5\7\u00aa\n\7\3\7"+
		"\3\7\3\7\3\7\3\7\7\7\u00b1\n\7\f\7\16\7\u00b4\13\7\3\7\3\7\3\b\3\b\3\b"+
		"\3\t\3\t\3\t\3\n\3\n\3\n\3\13\3\13\7\13\u00c3\n\13\f\13\16\13\u00c6\13"+
		"\13\3\13\5\13\u00c9\n\13\3\f\5\f\u00cc\n\f\3\f\5\f\u00cf\n\f\3\f\3\f\3"+
		"\f\5\f\u00d4\n\f\3\f\3\f\3\r\5\r\u00d9\n\r\3\r\3\r\3\r\3\r\3\r\3\r\7\r"+
		"\u00e1\n\r\f\r\16\r\u00e4\13\r\3\r\5\r\u00e7\n\r\3\r\3\r\3\r\5\r\u00ec"+
		"\n\r\3\r\3\r\3\16\5\16\u00f1\n\16\3\16\3\16\3\16\3\16\3\16\3\16\7\16\u00f9"+
		"\n\16\f\16\16\16\u00fc\13\16\3\16\5\16\u00ff\n\16\3\16\3\16\3\16\3\17"+
		"\3\17\3\17\3\17\3\17\3\17\7\17\u010a\n\17\f\17\16\17\u010d\13\17\3\17"+
		"\5\17\u0110\n\17\3\17\3\17\3\17\3\17\3\17\3\20\3\20\3\20\3\21\3\21\3\21"+
		"\5\21\u011d\n\21\3\22\3\22\3\22\3\23\3\23\3\23\7\23\u0125\n\23\f\23\16"+
		"\23\u0128\13\23\3\23\3\23\3\23\7\23\u012d\n\23\f\23\16\23\u0130\13\23"+
		"\3\23\3\23\3\23\3\23\3\23\7\23\u0137\n\23\f\23\16\23\u013a\13\23\5\23"+
		"\u013c\n\23\3\24\3\24\3\24\3\24\3\24\7\24\u0143\n\24\f\24\16\24\u0146"+
		"\13\24\3\24\3\24\3\25\3\25\5\25\u014c\n\25\3\25\5\25\u014f\n\25\3\26\3"+
		"\26\3\27\3\27\3\27\3\27\7\27\u0157\n\27\f\27\16\27\u015a\13\27\3\27\3"+
		"\27\3\30\3\30\3\31\3\31\3\31\3\31\3\31\3\32\3\32\3\32\3\32\3\32\3\33\3"+
		"\33\3\34\3\34\3\35\3\35\3\36\3\36\3\37\3\37\3 \3 \3!\3!\3!\3!\3\"\3\""+
		"\3\"\7\"\u017d\n\"\f\"\16\"\u0180\13\"\3#\3#\3$\3$\3%\3%\3%\3%\3%\3%\3"+
		"%\3%\3%\3%\3%\3%\3%\5%\u0193\n%\3%\3%\3%\3%\3%\3%\3%\3%\3%\3%\3%\3%\3"+
		"%\3%\5%\u01a3\n%\3%\3%\3%\3%\3%\3%\3%\3%\3%\3%\3%\3%\3%\3%\3%\3%\3%\3"+
		"%\3%\3%\3%\3%\3%\3%\3%\3%\3%\3%\3%\3%\3%\3%\3%\3%\3%\3%\3%\3%\3%\3%\3"+
		"%\3%\3%\3%\3%\3%\3%\3%\3%\3%\3%\3%\5%\u01d9\n%\3%\3%\3%\3%\3%\3%\7%\u01e1"+
		"\n%\f%\16%\u01e4\13%\3&\3&\3&\3&\3&\3&\3&\3&\3&\3&\3&\3&\3&\3&\3&\3&\3"+
		"&\3&\3&\5&\u01f9\n&\5&\u01fb\n&\3\'\3\'\3\'\3\'\3\'\3\'\3\'\5\'\u0204"+
		"\n\'\5\'\u0206\n\'\3(\3(\5(\u020a\n(\3(\3(\3(\5(\u020f\n(\7(\u0211\n("+
		"\f(\16(\u0214\13(\3(\5(\u0217\n(\3)\3)\3)\3)\7)\u021d\n)\f)\16)\u0220"+
		"\13)\3)\3)\3)\3)\3)\3)\3)\7)\u0229\n)\f)\16)\u022c\13)\3)\3)\7)\u0230"+
		"\n)\f)\16)\u0233\13)\5)\u0235\n)\3*\3*\3+\3+\3+\3,\3,\3,\3,\3-\3-\3-\7"+
		"-\u0243\n-\f-\16-\u0246\13-\3.\3.\3.\5.\u024b\n.\3/\3/\3/\5/\u0250\n/"+
		"\3\60\3\60\3\60\3\60\5\60\u0256\n\60\5\60\u0258\n\60\3\61\3\61\3\61\3"+
		"\61\5\61\u025e\n\61\3\62\3\62\5\62\u0262\n\62\3\62\3\62\3\63\3\63\5\63"+
		"\u0268\n\63\3\64\3\64\3\64\3\64\7\64\u026e\n\64\f\64\16\64\u0271\13\64"+
		"\3\64\5\64\u0274\n\64\5\64\u0276\n\64\3\64\3\64\3\65\3\65\3\65\2\3H\66"+
		"\2\4\6\b\n\f\16\20\22\24\26\30\32\34\36 \"$&(*,.\60\62\64\668:<>@BDFH"+
		"JLNPRTVXZ\\^`bdfh\2\f\3\2\32!\3\2+.\3\2/\60\4\2\25\25\61\62\3\2-.\4\2"+
		"\26\27\63\64\3\2\66\67\4\2\b\b?I\3\2+,\3\2KP\2\u02ae\2m\3\2\2\2\4s\3\2"+
		"\2\2\6u\3\2\2\2\b\u0087\3\2\2\2\n\u008d\3\2\2\2\f\u00a6\3\2\2\2\16\u00b7"+
		"\3\2\2\2\20\u00ba\3\2\2\2\22\u00bd\3\2\2\2\24\u00c8\3\2\2\2\26\u00cb\3"+
		"\2\2\2\30\u00d8\3\2\2\2\32\u00f0\3\2\2\2\34\u0103\3\2\2\2\36\u0116\3\2"+
		"\2\2 \u0119\3\2\2\2\"\u011e\3\2\2\2$\u013b\3\2\2\2&\u013d\3\2\2\2(\u0149"+
		"\3\2\2\2*\u0150\3\2\2\2,\u0152\3\2\2\2.\u015d\3\2\2\2\60\u015f\3\2\2\2"+
		"\62\u0164\3\2\2\2\64\u0169\3\2\2\2\66\u016b\3\2\2\28\u016d\3\2\2\2:\u016f"+
		"\3\2\2\2<\u0171\3\2\2\2>\u0173\3\2\2\2@\u0175\3\2\2\2B\u0179\3\2\2\2D"+
		"\u0181\3\2\2\2F\u0183\3\2\2\2H\u0192\3\2\2\2J\u01fa\3\2\2\2L\u0205\3\2"+
		"\2\2N\u0216\3\2\2\2P\u0218\3\2\2\2R\u0236\3\2\2\2T\u0238\3\2\2\2V\u023b"+
		"\3\2\2\2X\u023f\3\2\2\2Z\u024a\3\2\2\2\\\u024f\3\2\2\2^\u0257\3\2\2\2"+
		"`\u025d\3\2\2\2b\u025f\3\2\2\2d\u0267\3\2\2\2f\u0269\3\2\2\2h\u0279\3"+
		"\2\2\2jl\5\4\3\2kj\3\2\2\2lo\3\2\2\2mk\3\2\2\2mn\3\2\2\2n\3\3\2\2\2om"+
		"\3\2\2\2pt\5\n\6\2qt\5\f\7\2rt\5\6\4\2sp\3\2\2\2sq\3\2\2\2sr\3\2\2\2t"+
		"\5\3\2\2\2uv\7\3\2\2vw\7Q\2\2w\u0080\7\4\2\2x}\5\b\5\2yz\7\5\2\2z|\5\b"+
		"\5\2{y\3\2\2\2|\177\3\2\2\2}{\3\2\2\2}~\3\2\2\2~\u0081\3\2\2\2\177}\3"+
		"\2\2\2\u0080x\3\2\2\2\u0080\u0081\3\2\2\2\u0081\u0083\3\2\2\2\u0082\u0084"+
		"\7\6\2\2\u0083\u0082\3\2\2\2\u0083\u0084\3\2\2\2\u0084\u0085\3\2\2\2\u0085"+
		"\u0086\7\7\2\2\u0086\7\3\2\2\2\u0087\u008a\7Q\2\2\u0088\u0089\7\b\2\2"+
		"\u0089\u008b\7O\2\2\u008a\u0088\3\2\2\2\u008a\u008b\3\2\2\2\u008b\t\3"+
		"\2\2\2\u008c\u008e\5\66\34\2\u008d\u008c\3\2\2\2\u008d\u008e\3\2\2\2\u008e"+
		"\u0090\3\2\2\2\u008f\u0091\5:\36\2\u0090\u008f\3\2\2\2\u0090\u0091\3\2"+
		"\2\2\u0091\u0092\3\2\2\2\u0092\u0093\7\t\2\2\u0093\u0095\7Q\2\2\u0094"+
		"\u0096\5\16\b\2\u0095\u0094\3\2\2\2\u0095\u0096\3\2\2\2\u0096\u0098\3"+
		"\2\2\2\u0097\u0099\5\22\n\2\u0098\u0097\3\2\2\2\u0098\u0099\3\2\2\2\u0099"+
		"\u009a\3\2\2\2\u009a\u00a1\7\4\2\2\u009b\u00a0\5\26\f\2\u009c\u00a0\5"+
		"\30\r\2\u009d\u00a0\5\32\16\2\u009e\u00a0\5\34\17\2\u009f\u009b\3\2\2"+
		"\2\u009f\u009c\3\2\2\2\u009f\u009d\3\2\2\2\u009f\u009e\3\2\2\2\u00a0\u00a3"+
		"\3\2\2\2\u00a1\u009f\3\2\2\2\u00a1\u00a2\3\2\2\2\u00a2\u00a4\3\2\2\2\u00a3"+
		"\u00a1\3\2\2\2\u00a4\u00a5\7\7\2\2\u00a5\13\3\2\2\2\u00a6\u00a7\7\n\2"+
		"\2\u00a7\u00a9\7Q\2\2\u00a8\u00aa\5\20\t\2\u00a9\u00a8\3\2\2\2\u00a9\u00aa"+
		"\3\2\2\2\u00aa\u00ab\3\2\2\2\u00ab\u00b2\7\4\2\2\u00ac\u00b1\5\26\f\2"+
		"\u00ad\u00b1\5\30\r\2\u00ae\u00b1\5\32\16\2\u00af\u00b1\5\34\17\2\u00b0"+
		"\u00ac\3\2\2\2\u00b0\u00ad\3\2\2\2\u00b0\u00ae\3\2\2\2\u00b0\u00af\3\2"+
		"\2\2\u00b1\u00b4\3\2\2\2\u00b2\u00b0\3\2\2\2\u00b2\u00b3\3\2\2\2\u00b3"+
		"\u00b5\3\2\2\2\u00b4\u00b2\3\2\2\2\u00b5\u00b6\7\7\2\2\u00b6\r\3\2\2\2"+
		"\u00b7\u00b8\7\13\2\2\u00b8\u00b9\7Q\2\2\u00b9\17\3\2\2\2\u00ba\u00bb"+
		"\7\13\2\2\u00bb\u00bc\5\24\13\2\u00bc\21\3\2\2\2\u00bd\u00be\7\f\2\2\u00be"+
		"\u00bf\5\24\13\2\u00bf\23\3\2\2\2\u00c0\u00c1\7Q\2\2\u00c1\u00c3\7\5\2"+
		"\2\u00c2\u00c0\3\2\2\2\u00c3\u00c6\3\2\2\2\u00c4\u00c2\3\2\2\2\u00c4\u00c5"+
		"\3\2\2\2\u00c5\u00c7\3\2\2\2\u00c6\u00c4\3\2\2\2\u00c7\u00c9\7Q\2\2\u00c8"+
		"\u00c4\3\2\2\2\u00c8\u00c9\3\2\2\2\u00c9\25\3\2\2\2\u00ca\u00cc\58\35"+
		"\2\u00cb\u00ca\3\2\2\2\u00cb\u00cc\3\2\2\2\u00cc\u00ce\3\2\2\2\u00cd\u00cf"+
		"\5<\37\2\u00ce\u00cd\3\2\2\2\u00ce\u00cf\3\2\2\2\u00cf\u00d0\3\2\2\2\u00d0"+
		"\u00d1\5$\23\2\u00d1\u00d3\7Q\2\2\u00d2\u00d4\5\"\22\2\u00d3\u00d2\3\2"+
		"\2\2\u00d3\u00d4\3\2\2\2\u00d4\u00d5\3\2\2\2\u00d5\u00d6\7\6\2\2\u00d6"+
		"\27\3\2\2\2\u00d7\u00d9\5> \2\u00d8\u00d7\3\2\2\2\u00d8\u00d9\3\2\2\2"+
		"\u00d9\u00da\3\2\2\2\u00da\u00db\7\r\2\2\u00db\u00dc\7Q\2\2\u00dc\u00e6"+
		"\7\16\2\2\u00dd\u00de\5 \21\2\u00de\u00df\7\5\2\2\u00df\u00e1\3\2\2\2"+
		"\u00e0\u00dd\3\2\2\2\u00e1\u00e4\3\2\2\2\u00e2\u00e0\3\2\2\2\u00e2\u00e3"+
		"\3\2\2\2\u00e3\u00e5\3\2\2\2\u00e4\u00e2\3\2\2\2\u00e5\u00e7\5 \21\2\u00e6"+
		"\u00e2\3\2\2\2\u00e6\u00e7\3\2\2\2\u00e7\u00e8\3\2\2\2\u00e8\u00eb\7\17"+
		"\2\2\u00e9\u00ea\7\20\2\2\u00ea\u00ec\5$\23\2\u00eb\u00e9\3\2\2\2\u00eb"+
		"\u00ec\3\2\2\2\u00ec\u00ed\3\2\2\2\u00ed\u00ee\7\6\2\2\u00ee\31\3\2\2"+
		"\2\u00ef\u00f1\5> \2\u00f0\u00ef\3\2\2\2\u00f0\u00f1\3\2\2\2\u00f1\u00f2"+
		"\3\2\2\2\u00f2\u00f3\7\21\2\2\u00f3\u00f4\7Q\2\2\u00f4\u00fe\7\16\2\2"+
		"\u00f5\u00f6\5 \21\2\u00f6\u00f7\7\5\2\2\u00f7\u00f9\3\2\2\2\u00f8\u00f5"+
		"\3\2\2\2\u00f9\u00fc\3\2\2\2\u00fa\u00f8\3\2\2\2\u00fa\u00fb\3\2\2\2\u00fb"+
		"\u00fd\3\2\2\2\u00fc\u00fa\3\2\2\2\u00fd\u00ff\5 \21\2\u00fe\u00fa\3\2"+
		"\2\2\u00fe\u00ff\3\2\2\2\u00ff\u0100\3\2\2\2\u0100\u0101\7\17\2\2\u0101"+
		"\u0102\7\6\2\2\u0102\33\3\2\2\2\u0103\u0104\7\22\2\2\u0104\u0105\7Q\2"+
		"\2\u0105\u010f\7\16\2\2\u0106\u0107\5 \21\2\u0107\u0108\7\5\2\2\u0108"+
		"\u010a\3\2\2\2\u0109\u0106\3\2\2\2\u010a\u010d\3\2\2\2\u010b\u0109\3\2"+
		"\2\2\u010b\u010c\3\2\2\2\u010c\u010e\3\2\2\2\u010d\u010b\3\2\2\2\u010e"+
		"\u0110\5 \21\2\u010f\u010b\3\2\2\2\u010f\u0110\3\2\2\2\u0110\u0111\3\2"+
		"\2\2\u0111\u0112\7\17\2\2\u0112\u0113\7\20\2\2\u0113\u0114\5$\23\2\u0114"+
		"\u0115\7\6\2\2\u0115\35\3\2\2\2\u0116\u0117\5$\23\2\u0117\u0118\7Q\2\2"+
		"\u0118\37\3\2\2\2\u0119\u011a\5$\23\2\u011a\u011c\7Q\2\2\u011b\u011d\5"+
		"\"\22\2\u011c\u011b\3\2\2\2\u011c\u011d\3\2\2\2\u011d!\3\2\2\2\u011e\u011f"+
		"\7\b\2\2\u011f\u0120\5H%\2\u0120#\3\2\2\2\u0121\u0126\5&\24\2\u0122\u0123"+
		"\7\23\2\2\u0123\u0125\7\24\2\2\u0124\u0122\3\2\2\2\u0125\u0128\3\2\2\2"+
		"\u0126\u0124\3\2\2\2\u0126\u0127\3\2\2\2\u0127\u013c\3\2\2\2\u0128\u0126"+
		"\3\2\2\2\u0129\u012e\5(\25\2\u012a\u012b\7\23\2\2\u012b\u012d\7\24\2\2"+
		"\u012c\u012a\3\2\2\2\u012d\u0130\3\2\2\2\u012e\u012c\3\2\2\2\u012e\u012f"+
		"\3\2\2\2\u012f\u013c\3\2\2\2\u0130\u012e\3\2\2\2\u0131\u013c\5\60\31\2"+
		"\u0132\u013c\5\62\32\2\u0133\u0138\5\64\33\2\u0134\u0135\7\23\2\2\u0135"+
		"\u0137\7\24\2\2\u0136\u0134\3\2\2\2\u0137\u013a\3\2\2\2\u0138\u0136\3"+
		"\2\2\2\u0138\u0139\3\2\2\2\u0139\u013c\3\2\2\2\u013a\u0138\3\2\2\2\u013b"+
		"\u0121\3\2\2\2\u013b\u0129\3\2\2\2\u013b\u0131\3\2\2\2\u013b\u0132\3\2"+
		"\2\2\u013b\u0133\3\2\2\2\u013c%\3\2\2\2\u013d\u013e\7\3\2\2\u013e\u013f"+
		"\7\4\2\2\u013f\u0144\5\b\5\2\u0140\u0141\7\5\2\2\u0141\u0143\5\b\5\2\u0142"+
		"\u0140\3\2\2\2\u0143\u0146\3\2\2\2\u0144\u0142\3\2\2\2\u0144\u0145\3\2"+
		"\2\2\u0145\u0147\3\2\2\2\u0146\u0144\3\2\2\2\u0147\u0148\7\7\2\2\u0148"+
		"\'\3\2\2\2\u0149\u014b\7Q\2\2\u014a\u014c\5*\26\2\u014b\u014a\3\2\2\2"+
		"\u014b\u014c\3\2\2\2\u014c\u014e\3\2\2\2\u014d\u014f\5,\27\2\u014e\u014d"+
		"\3\2\2\2\u014e\u014f\3\2\2\2\u014f)\3\2\2\2\u0150\u0151\7\25\2\2\u0151"+
		"+\3\2\2\2\u0152\u0153\7\26\2\2\u0153\u0158\5.\30\2\u0154\u0155\7\5\2\2"+
		"\u0155\u0157\5.\30\2\u0156\u0154\3\2\2\2\u0157\u015a\3\2\2\2\u0158\u0156"+
		"\3\2\2\2\u0158\u0159\3\2\2\2\u0159\u015b\3\2\2\2\u015a\u0158\3\2\2\2\u015b"+
		"\u015c\7\27\2\2\u015c-\3\2\2\2\u015d\u015e\5$\23\2\u015e/\3\2\2\2\u015f"+
		"\u0160\7\30\2\2\u0160\u0161\7\26\2\2\u0161\u0162\5(\25\2\u0162\u0163\7"+
		"\27\2\2\u0163\61\3\2\2\2\u0164\u0165\7\31\2\2\u0165\u0166\7\26\2\2\u0166"+
		"\u0167\5(\25\2\u0167\u0168\7\27\2\2\u0168\63\3\2\2\2\u0169\u016a\t\2\2"+
		"\2\u016a\65\3\2\2\2\u016b\u016c\7\"\2\2\u016c\67\3\2\2\2\u016d\u016e\7"+
		"#\2\2\u016e9\3\2\2\2\u016f\u0170\7$\2\2\u0170;\3\2\2\2\u0171\u0172\7%"+
		"\2\2\u0172=\3\2\2\2\u0173\u0174\7&\2\2\u0174?\3\2\2\2\u0175\u0176\7\16"+
		"\2\2\u0176\u0177\5H%\2\u0177\u0178\7\17\2\2\u0178A\3\2\2\2\u0179\u017e"+
		"\5H%\2\u017a\u017b\7\5\2\2\u017b\u017d\5H%\2\u017c\u017a\3\2\2\2\u017d"+
		"\u0180\3\2\2\2\u017e\u017c\3\2\2\2\u017e\u017f\3\2\2\2\u017fC\3\2\2\2"+
		"\u0180\u017e\3\2\2\2\u0181\u0182\5H%\2\u0182E\3\2\2\2\u0183\u0184\5H%"+
		"\2\u0184G\3\2\2\2\u0185\u0186\b%\1\2\u0186\u0193\5J&\2\u0187\u0188\7*"+
		"\2\2\u0188\u0193\5L\'\2\u0189\u018a\7\16\2\2\u018a\u018b\5$\23\2\u018b"+
		"\u018c\7\17\2\2\u018c\u018d\5H%\23\u018d\u0193\3\2\2\2\u018e\u018f\t\3"+
		"\2\2\u018f\u0193\5H%\21\u0190\u0191\t\4\2\2\u0191\u0193\5H%\20\u0192\u0185"+
		"\3\2\2\2\u0192\u0187\3\2\2\2\u0192\u0189\3\2\2\2\u0192\u018e\3\2\2\2\u0192"+
		"\u0190\3\2\2\2\u0193\u01e2\3\2\2\2\u0194\u0195\f\17\2\2\u0195\u0196\t"+
		"\5\2\2\u0196\u01e1\5H%\20\u0197\u0198\f\16\2\2\u0198\u0199\t\6\2\2\u0199"+
		"\u01e1\5H%\17\u019a\u01a2\f\r\2\2\u019b\u019c\7\26\2\2\u019c\u01a3\7\26"+
		"\2\2\u019d\u019e\7\27\2\2\u019e\u019f\7\27\2\2\u019f\u01a3\7\27\2\2\u01a0"+
		"\u01a1\7\27\2\2\u01a1\u01a3\7\27\2\2\u01a2\u019b\3\2\2\2\u01a2\u019d\3"+
		"\2\2\2\u01a2\u01a0\3\2\2\2\u01a3\u01a4\3\2\2\2\u01a4\u01e1\5H%\16\u01a5"+
		"\u01a6\f\f\2\2\u01a6\u01a7\t\7\2\2\u01a7\u01e1\5H%\r\u01a8\u01a9\f\n\2"+
		"\2\u01a9\u01aa\t\b\2\2\u01aa\u01e1\5H%\13\u01ab\u01ac\f\t\2\2\u01ac\u01ad"+
		"\78\2\2\u01ad\u01e1\5H%\n\u01ae\u01af\f\b\2\2\u01af\u01b0\79\2\2\u01b0"+
		"\u01e1\5H%\t\u01b1\u01b2\f\7\2\2\u01b2\u01b3\7:\2\2\u01b3\u01e1\5H%\b"+
		"\u01b4\u01b5\f\6\2\2\u01b5\u01b6\7;\2\2\u01b6\u01e1\5H%\7\u01b7\u01b8"+
		"\f\5\2\2\u01b8\u01b9\7<\2\2\u01b9\u01e1\5H%\6\u01ba\u01bb\f\4\2\2\u01bb"+
		"\u01bc\7=\2\2\u01bc\u01bd\5H%\2\u01bd\u01be\7>\2\2\u01be\u01bf\5H%\5\u01bf"+
		"\u01e1\3\2\2\2\u01c0\u01c1\f\3\2\2\u01c1\u01c2\t\t\2\2\u01c2\u01e1\5H"+
		"%\3\u01c3\u01c4\f\32\2\2\u01c4\u01c5\7\'\2\2\u01c5\u01e1\7Q\2\2\u01c6"+
		"\u01c7\f\31\2\2\u01c7\u01c8\7\'\2\2\u01c8\u01e1\7(\2\2\u01c9\u01ca\f\30"+
		"\2\2\u01ca\u01cb\7\'\2\2\u01cb\u01cc\7)\2\2\u01cc\u01e1\5^\60\2\u01cd"+
		"\u01ce\f\27\2\2\u01ce\u01cf\7\'\2\2\u01cf\u01e1\5T+\2\u01d0\u01d1\f\26"+
		"\2\2\u01d1\u01d2\7\23\2\2\u01d2\u01d3\5H%\2\u01d3\u01d4\7\24\2\2\u01d4"+
		"\u01e1\3\2\2\2\u01d5\u01d6\f\25\2\2\u01d6\u01d8\7\16\2\2\u01d7\u01d9\5"+
		"B\"\2\u01d8\u01d7\3\2\2\2\u01d8\u01d9\3\2\2\2\u01d9\u01da\3\2\2\2\u01da"+
		"\u01e1\7\17\2\2\u01db\u01dc\f\22\2\2\u01dc\u01e1\t\n\2\2\u01dd\u01de\f"+
		"\13\2\2\u01de\u01df\7\65\2\2\u01df\u01e1\5$\23\2\u01e0\u0194\3\2\2\2\u01e0"+
		"\u0197\3\2\2\2\u01e0\u019a\3\2\2\2\u01e0\u01a5\3\2\2\2\u01e0\u01a8\3\2"+
		"\2\2\u01e0\u01ab\3\2\2\2\u01e0\u01ae\3\2\2\2\u01e0\u01b1\3\2\2\2\u01e0"+
		"\u01b4\3\2\2\2\u01e0\u01b7\3\2\2\2\u01e0\u01ba\3\2\2\2\u01e0\u01c0\3\2"+
		"\2\2\u01e0\u01c3\3\2\2\2\u01e0\u01c6\3\2\2\2\u01e0\u01c9\3\2\2\2\u01e0"+
		"\u01cd\3\2\2\2\u01e0\u01d0\3\2\2\2\u01e0\u01d5\3\2\2\2\u01e0\u01db\3\2"+
		"\2\2\u01e0\u01dd\3\2\2\2\u01e1\u01e4\3\2\2\2\u01e2\u01e0\3\2\2\2\u01e2"+
		"\u01e3\3\2\2\2\u01e3I\3\2\2\2\u01e4\u01e2\3\2\2\2\u01e5\u01e6\7\16\2\2"+
		"\u01e6\u01e7\5H%\2\u01e7\u01e8\7\17\2\2\u01e8\u01fb\3\2\2\2\u01e9\u01fb"+
		"\7(\2\2\u01ea\u01fb\7)\2\2\u01eb\u01fb\5h\65\2\u01ec\u01fb\7Q\2\2\u01ed"+
		"\u01ee\5$\23\2\u01ee\u01ef\7\'\2\2\u01ef\u01f0\7\t\2\2\u01f0\u01fb\3\2"+
		"\2\2\u01f1\u01f2\7J\2\2\u01f2\u01f3\7\'\2\2\u01f3\u01fb\7\t\2\2\u01f4"+
		"\u01f8\5V,\2\u01f5\u01f9\5`\61\2\u01f6\u01f7\7(\2\2\u01f7\u01f9\5b\62"+
		"\2\u01f8\u01f5\3\2\2\2\u01f8\u01f6\3\2\2\2\u01f9\u01fb\3\2\2\2\u01fa\u01e5"+
		"\3\2\2\2\u01fa\u01e9\3\2\2\2\u01fa\u01ea\3\2\2\2\u01fa\u01eb\3\2\2\2\u01fa"+
		"\u01ec\3\2\2\2\u01fa\u01ed\3\2\2\2\u01fa\u01f1\3\2\2\2\u01fa\u01f4\3\2"+
		"\2\2\u01fbK\3\2\2\2\u01fc\u01fd\5V,\2\u01fd\u01fe\5N(\2\u01fe\u01ff\5"+
		"R*\2\u01ff\u0206\3\2\2\2\u0200\u0203\5N(\2\u0201\u0204\5P)\2\u0202\u0204"+
		"\5R*\2\u0203\u0201\3\2\2\2\u0203\u0202\3\2\2\2\u0204\u0206\3\2\2\2\u0205"+
		"\u01fc\3\2\2\2\u0205\u0200\3\2\2\2\u0206M\3\2\2\2\u0207\u0209\7Q\2\2\u0208"+
		"\u020a\5Z.\2\u0209\u0208\3\2\2\2\u0209\u020a\3\2\2\2\u020a\u0212\3\2\2"+
		"\2\u020b\u020c\7\'\2\2\u020c\u020e\7Q\2\2\u020d\u020f\5Z.\2\u020e\u020d"+
		"\3\2\2\2\u020e\u020f\3\2\2\2\u020f\u0211\3\2\2\2\u0210\u020b\3\2\2\2\u0211"+
		"\u0214\3\2\2\2\u0212\u0210\3\2\2\2\u0212\u0213\3\2\2\2\u0213\u0217\3\2"+
		"\2\2\u0214\u0212\3\2\2\2\u0215\u0217\5\64\33\2\u0216\u0207\3\2\2\2\u0216"+
		"\u0215\3\2\2\2\u0217O\3\2\2\2\u0218\u0234\7\23\2\2\u0219\u021e\7\24\2"+
		"\2\u021a\u021b\7\23\2\2\u021b\u021d\7\24\2\2\u021c\u021a\3\2\2\2\u021d"+
		"\u0220\3\2\2\2\u021e\u021c\3\2\2\2\u021e\u021f\3\2\2\2\u021f\u0221\3\2"+
		"\2\2\u0220\u021e\3\2\2\2\u0221\u0235\5f\64\2\u0222\u0223\5H%\2\u0223\u022a"+
		"\7\24\2\2\u0224\u0225\7\23\2\2\u0225\u0226\5H%\2\u0226\u0227\7\24\2\2"+
		"\u0227\u0229\3\2\2\2\u0228\u0224\3\2\2\2\u0229\u022c\3\2\2\2\u022a\u0228"+
		"\3\2\2\2\u022a\u022b\3\2\2\2\u022b\u0231\3\2\2\2\u022c\u022a\3\2\2\2\u022d"+
		"\u022e\7\23\2\2\u022e\u0230\7\24\2\2\u022f\u022d\3\2\2\2\u0230\u0233\3"+
		"\2\2\2\u0231\u022f\3\2\2\2\u0231\u0232\3\2\2\2\u0232\u0235\3\2\2\2\u0233"+
		"\u0231\3\2\2\2\u0234\u0219\3\2\2\2\u0234\u0222\3\2\2\2\u0235Q\3\2\2\2"+
		"\u0236\u0237\5b\62\2\u0237S\3\2\2\2\u0238\u0239\5V,\2\u0239\u023a\5`\61"+
		"\2\u023aU\3\2\2\2\u023b\u023c\7\26\2\2\u023c\u023d\5X-\2\u023d\u023e\7"+
		"\27\2\2\u023eW\3\2\2\2\u023f\u0244\5$\23\2\u0240\u0241\7\5\2\2\u0241\u0243"+
		"\5$\23\2\u0242\u0240\3\2\2\2\u0243\u0246\3\2\2\2\u0244\u0242\3\2\2\2\u0244"+
		"\u0245\3\2\2\2\u0245Y\3\2\2\2\u0246\u0244\3\2\2\2\u0247\u0248\7\26\2\2"+
		"\u0248\u024b\7\27\2\2\u0249\u024b\5,\27\2\u024a\u0247\3\2\2\2\u024a\u0249"+
		"\3\2\2\2\u024b[\3\2\2\2\u024c\u024d\7\26\2\2\u024d\u0250\7\27\2\2\u024e"+
		"\u0250\5V,\2\u024f\u024c\3\2\2\2\u024f\u024e\3\2\2\2\u0250]\3\2\2\2\u0251"+
		"\u0258\5b\62\2\u0252\u0253\7\'\2\2\u0253\u0255\7Q\2\2\u0254\u0256\5b\62"+
		"\2\u0255\u0254\3\2\2\2\u0255\u0256\3\2\2\2\u0256\u0258\3\2\2\2\u0257\u0251"+
		"\3\2\2\2\u0257\u0252\3\2\2\2\u0258_\3\2\2\2\u0259\u025a\7)\2\2\u025a\u025e"+
		"\5^\60\2\u025b\u025c\7Q\2\2\u025c\u025e\5b\62\2\u025d\u0259\3\2\2\2\u025d"+
		"\u025b\3\2\2\2\u025ea\3\2\2\2\u025f\u0261\7\16\2\2\u0260\u0262\5B\"\2"+
		"\u0261\u0260\3\2\2\2\u0261\u0262\3\2\2\2\u0262\u0263\3\2\2\2\u0263\u0264"+
		"\7\17\2\2\u0264c\3\2\2\2\u0265\u0268\5f\64\2\u0266\u0268\5H%\2\u0267\u0265"+
		"\3\2\2\2\u0267\u0266\3\2\2\2\u0268e\3\2\2\2\u0269\u0275\7\4\2\2\u026a"+
		"\u026f\5d\63\2\u026b\u026c\7\5\2\2\u026c\u026e\5d\63\2\u026d\u026b\3\2"+
		"\2\2\u026e\u0271\3\2\2\2\u026f\u026d\3\2\2\2\u026f\u0270\3\2\2\2\u0270"+
		"\u0273\3\2\2\2\u0271\u026f\3\2\2\2\u0272\u0274\7\5\2\2\u0273\u0272\3\2"+
		"\2\2\u0273\u0274\3\2\2\2\u0274\u0276\3\2\2\2\u0275\u026a\3\2\2\2\u0275"+
		"\u0276\3\2\2\2\u0276\u0277\3\2\2\2\u0277\u0278\7\7\2\2\u0278g\3\2\2\2"+
		"\u0279\u027a\t\13\2\2\u027ai\3\2\2\2Ems}\u0080\u0083\u008a\u008d\u0090"+
		"\u0095\u0098\u009f\u00a1\u00a9\u00b0\u00b2\u00c4\u00c8\u00cb\u00ce\u00d3"+
		"\u00d8\u00e2\u00e6\u00eb\u00f0\u00fa\u00fe\u010b\u010f\u011c\u0126\u012e"+
		"\u0138\u013b\u0144\u014b\u014e\u0158\u017e\u0192\u01a2\u01d8\u01e0\u01e2"+
		"\u01f8\u01fa\u0203\u0205\u0209\u020e\u0212\u0216\u021e\u022a\u0231\u0234"+
		"\u0244\u024a\u024f\u0255\u0257\u025d\u0261\u0267\u026f\u0273\u0275";
	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 - 2025 Weber Informatics LLC | Privacy Policy