/*
 * $Id$
 *
 * File is automatically generated by the Xtext language generator.
 * Do not change it.
 *
 * SARL is an general-purpose agent programming language.
 * More details on http://www.sarl.io
 *
 * Copyright (C) 2014-2026 SARL.io, the original authors and main authors.
 *
 * 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.
 */
package io.sarl.lang.services;

import com.google.inject.Inject;
import com.google.inject.Singleton;
import java.util.List;
import org.eclipse.xtend.core.services.XtendGrammarAccess;
import org.eclipse.xtext.Action;
import org.eclipse.xtext.Alternatives;
import org.eclipse.xtext.Assignment;
import org.eclipse.xtext.CrossReference;
import org.eclipse.xtext.Grammar;
import org.eclipse.xtext.GrammarUtil;
import org.eclipse.xtext.Group;
import org.eclipse.xtext.Keyword;
import org.eclipse.xtext.ParserRule;
import org.eclipse.xtext.RuleCall;
import org.eclipse.xtext.TerminalRule;
import org.eclipse.xtext.UnorderedGroup;
import org.eclipse.xtext.service.AbstractElementFinder;
import org.eclipse.xtext.service.GrammarProvider;
import org.eclipse.xtext.xbase.annotations.services.XbaseWithAnnotationsGrammarAccess;
import org.eclipse.xtext.xbase.services.XbaseGrammarAccess;
import org.eclipse.xtext.xbase.services.XtypeGrammarAccess;

@Singleton
public class SARLGrammarAccess extends AbstractElementFinder.AbstractGrammarElementFinder {
	
	public class SarlScriptElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "io.sarl.lang.SARL.SarlScript");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cSarlScriptAction_0 = (Action)cGroup.eContents().get(0);
		private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
		private final Keyword cPackageKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
		private final Assignment cPackageAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
		private final RuleCall cPackageQualifiedNameParserRuleCall_1_1_0 = (RuleCall)cPackageAssignment_1_1.eContents().get(0);
		private final Keyword cSemicolonKeyword_1_2 = (Keyword)cGroup_1.eContents().get(2);
		private final Assignment cImportSectionAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cImportSectionXImportSectionParserRuleCall_2_0 = (RuleCall)cImportSectionAssignment_2.eContents().get(0);
		private final Assignment cXtendTypesAssignment_3 = (Assignment)cGroup.eContents().get(3);
		private final RuleCall cXtendTypesTypeParserRuleCall_3_0 = (RuleCall)cXtendTypesAssignment_3.eContents().get(0);
		
		//SarlScript returns xtend::XtendFile:
		//    {SarlScript}
		//    ('package' package=QualifiedName ';'?)?
		//    importSection=XImportSection?
		//    xtendTypes+=Type*
		//;
		@Override public ParserRule getRule() { return rule; }
		
		//{SarlScript}
		//('package' package=QualifiedName ';'?)?
		//importSection=XImportSection?
		//xtendTypes+=Type*
		public Group getGroup() { return cGroup; }
		
		//{SarlScript}
		public Action getSarlScriptAction_0() { return cSarlScriptAction_0; }
		
		//('package' package=QualifiedName ';'?)?
		public Group getGroup_1() { return cGroup_1; }
		
		//'package'
		public Keyword getPackageKeyword_1_0() { return cPackageKeyword_1_0; }
		
		//package=QualifiedName
		public Assignment getPackageAssignment_1_1() { return cPackageAssignment_1_1; }
		
		//QualifiedName
		public RuleCall getPackageQualifiedNameParserRuleCall_1_1_0() { return cPackageQualifiedNameParserRuleCall_1_1_0; }
		
		//';'?
		public Keyword getSemicolonKeyword_1_2() { return cSemicolonKeyword_1_2; }
		
		//importSection=XImportSection?
		public Assignment getImportSectionAssignment_2() { return cImportSectionAssignment_2; }
		
		//XImportSection
		public RuleCall getImportSectionXImportSectionParserRuleCall_2_0() { return cImportSectionXImportSectionParserRuleCall_2_0; }
		
		//xtendTypes+=Type*
		public Assignment getXtendTypesAssignment_3() { return cXtendTypesAssignment_3; }
		
		//Type
		public RuleCall getXtendTypesTypeParserRuleCall_3_0() { return cXtendTypesTypeParserRuleCall_3_0; }
	}
	public class TypeElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "io.sarl.lang.SARL.Type");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cXtendTypeDeclarationAction_0 = (Action)cGroup.eContents().get(0);
		private final Assignment cAnnotationsAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cAnnotationsXAnnotationParserRuleCall_1_0 = (RuleCall)cAnnotationsAssignment_1.eContents().get(0);
		private final Alternatives cAlternatives_2 = (Alternatives)cGroup.eContents().get(2);
		private final Group cGroup_2_0 = (Group)cAlternatives_2.eContents().get(0);
		private final Action cSarlEventAnnotationInfoAction_2_0_0 = (Action)cGroup_2_0.eContents().get(0);
		private final Assignment cModifiersAssignment_2_0_1 = (Assignment)cGroup_2_0.eContents().get(1);
		private final RuleCall cModifiersCommonModifierParserRuleCall_2_0_1_0 = (RuleCall)cModifiersAssignment_2_0_1.eContents().get(0);
		private final Keyword cEventKeyword_2_0_2 = (Keyword)cGroup_2_0.eContents().get(2);
		private final Assignment cNameAssignment_2_0_3 = (Assignment)cGroup_2_0.eContents().get(3);
		private final RuleCall cNameValidIDParserRuleCall_2_0_3_0 = (RuleCall)cNameAssignment_2_0_3.eContents().get(0);
		private final Group cGroup_2_0_4 = (Group)cGroup_2_0.eContents().get(4);
		private final Keyword cLessThanSignKeyword_2_0_4_0 = (Keyword)cGroup_2_0_4.eContents().get(0);
		private final Assignment cTypeParametersAssignment_2_0_4_1 = (Assignment)cGroup_2_0_4.eContents().get(1);
		private final RuleCall cTypeParametersJvmTypeParameterParserRuleCall_2_0_4_1_0 = (RuleCall)cTypeParametersAssignment_2_0_4_1.eContents().get(0);
		private final Group cGroup_2_0_4_2 = (Group)cGroup_2_0_4.eContents().get(2);
		private final Keyword cCommaKeyword_2_0_4_2_0 = (Keyword)cGroup_2_0_4_2.eContents().get(0);
		private final Assignment cTypeParametersAssignment_2_0_4_2_1 = (Assignment)cGroup_2_0_4_2.eContents().get(1);
		private final RuleCall cTypeParametersJvmTypeParameterParserRuleCall_2_0_4_2_1_0 = (RuleCall)cTypeParametersAssignment_2_0_4_2_1.eContents().get(0);
		private final Keyword cGreaterThanSignKeyword_2_0_4_3 = (Keyword)cGroup_2_0_4.eContents().get(3);
		private final Group cGroup_2_0_5 = (Group)cGroup_2_0.eContents().get(5);
		private final Keyword cExtendsKeyword_2_0_5_0 = (Keyword)cGroup_2_0_5.eContents().get(0);
		private final Assignment cExtendsAssignment_2_0_5_1 = (Assignment)cGroup_2_0_5.eContents().get(1);
		private final RuleCall cExtendsJvmParameterizedTypeReferenceParserRuleCall_2_0_5_1_0 = (RuleCall)cExtendsAssignment_2_0_5_1.eContents().get(0);
		private final Group cGroup_2_0_6 = (Group)cGroup_2_0.eContents().get(6);
		private final Keyword cLeftCurlyBracketKeyword_2_0_6_0 = (Keyword)cGroup_2_0_6.eContents().get(0);
		private final Assignment cMembersAssignment_2_0_6_1 = (Assignment)cGroup_2_0_6.eContents().get(1);
		private final RuleCall cMembersEventMemberParserRuleCall_2_0_6_1_0 = (RuleCall)cMembersAssignment_2_0_6_1.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_2_0_6_2 = (Keyword)cGroup_2_0_6.eContents().get(2);
		private final Group cGroup_2_1 = (Group)cAlternatives_2.eContents().get(1);
		private final Action cSarlCapacityAnnotationInfoAction_2_1_0 = (Action)cGroup_2_1.eContents().get(0);
		private final Assignment cModifiersAssignment_2_1_1 = (Assignment)cGroup_2_1.eContents().get(1);
		private final RuleCall cModifiersCommonModifierParserRuleCall_2_1_1_0 = (RuleCall)cModifiersAssignment_2_1_1.eContents().get(0);
		private final Keyword cCapacityKeyword_2_1_2 = (Keyword)cGroup_2_1.eContents().get(2);
		private final Assignment cNameAssignment_2_1_3 = (Assignment)cGroup_2_1.eContents().get(3);
		private final RuleCall cNameValidIDParserRuleCall_2_1_3_0 = (RuleCall)cNameAssignment_2_1_3.eContents().get(0);
		private final Group cGroup_2_1_4 = (Group)cGroup_2_1.eContents().get(4);
		private final Keyword cExtendsKeyword_2_1_4_0 = (Keyword)cGroup_2_1_4.eContents().get(0);
		private final Assignment cExtendsAssignment_2_1_4_1 = (Assignment)cGroup_2_1_4.eContents().get(1);
		private final RuleCall cExtendsJvmParameterizedTypeReferenceParserRuleCall_2_1_4_1_0 = (RuleCall)cExtendsAssignment_2_1_4_1.eContents().get(0);
		private final Group cGroup_2_1_4_2 = (Group)cGroup_2_1_4.eContents().get(2);
		private final Keyword cCommaKeyword_2_1_4_2_0 = (Keyword)cGroup_2_1_4_2.eContents().get(0);
		private final Assignment cExtendsAssignment_2_1_4_2_1 = (Assignment)cGroup_2_1_4_2.eContents().get(1);
		private final RuleCall cExtendsJvmParameterizedTypeReferenceParserRuleCall_2_1_4_2_1_0 = (RuleCall)cExtendsAssignment_2_1_4_2_1.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_2_1_5 = (Keyword)cGroup_2_1.eContents().get(5);
		private final Assignment cMembersAssignment_2_1_6 = (Assignment)cGroup_2_1.eContents().get(6);
		private final RuleCall cMembersCapacityMemberParserRuleCall_2_1_6_0 = (RuleCall)cMembersAssignment_2_1_6.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_2_1_7 = (Keyword)cGroup_2_1.eContents().get(7);
		private final Group cGroup_2_2 = (Group)cAlternatives_2.eContents().get(2);
		private final Action cSarlAgentAnnotationInfoAction_2_2_0 = (Action)cGroup_2_2.eContents().get(0);
		private final Assignment cModifiersAssignment_2_2_1 = (Assignment)cGroup_2_2.eContents().get(1);
		private final RuleCall cModifiersCommonModifierParserRuleCall_2_2_1_0 = (RuleCall)cModifiersAssignment_2_2_1.eContents().get(0);
		private final Keyword cAgentKeyword_2_2_2 = (Keyword)cGroup_2_2.eContents().get(2);
		private final Assignment cNameAssignment_2_2_3 = (Assignment)cGroup_2_2.eContents().get(3);
		private final RuleCall cNameValidIDParserRuleCall_2_2_3_0 = (RuleCall)cNameAssignment_2_2_3.eContents().get(0);
		private final Group cGroup_2_2_4 = (Group)cGroup_2_2.eContents().get(4);
		private final Keyword cExtendsKeyword_2_2_4_0 = (Keyword)cGroup_2_2_4.eContents().get(0);
		private final Assignment cExtendsAssignment_2_2_4_1 = (Assignment)cGroup_2_2_4.eContents().get(1);
		private final RuleCall cExtendsJvmParameterizedTypeReferenceParserRuleCall_2_2_4_1_0 = (RuleCall)cExtendsAssignment_2_2_4_1.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_2_2_5 = (Keyword)cGroup_2_2.eContents().get(5);
		private final Assignment cMembersAssignment_2_2_6 = (Assignment)cGroup_2_2.eContents().get(6);
		private final RuleCall cMembersAOPMemberParserRuleCall_2_2_6_0 = (RuleCall)cMembersAssignment_2_2_6.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_2_2_7 = (Keyword)cGroup_2_2.eContents().get(7);
		private final Group cGroup_2_3 = (Group)cAlternatives_2.eContents().get(3);
		private final Action cSarlBehaviorAnnotationInfoAction_2_3_0 = (Action)cGroup_2_3.eContents().get(0);
		private final Assignment cModifiersAssignment_2_3_1 = (Assignment)cGroup_2_3.eContents().get(1);
		private final RuleCall cModifiersCommonModifierParserRuleCall_2_3_1_0 = (RuleCall)cModifiersAssignment_2_3_1.eContents().get(0);
		private final Keyword cBehaviorKeyword_2_3_2 = (Keyword)cGroup_2_3.eContents().get(2);
		private final Assignment cNameAssignment_2_3_3 = (Assignment)cGroup_2_3.eContents().get(3);
		private final RuleCall cNameValidIDParserRuleCall_2_3_3_0 = (RuleCall)cNameAssignment_2_3_3.eContents().get(0);
		private final Group cGroup_2_3_4 = (Group)cGroup_2_3.eContents().get(4);
		private final Keyword cExtendsKeyword_2_3_4_0 = (Keyword)cGroup_2_3_4.eContents().get(0);
		private final Assignment cExtendsAssignment_2_3_4_1 = (Assignment)cGroup_2_3_4.eContents().get(1);
		private final RuleCall cExtendsJvmParameterizedTypeReferenceParserRuleCall_2_3_4_1_0 = (RuleCall)cExtendsAssignment_2_3_4_1.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_2_3_5 = (Keyword)cGroup_2_3.eContents().get(5);
		private final Assignment cMembersAssignment_2_3_6 = (Assignment)cGroup_2_3.eContents().get(6);
		private final RuleCall cMembersAOPMemberParserRuleCall_2_3_6_0 = (RuleCall)cMembersAssignment_2_3_6.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_2_3_7 = (Keyword)cGroup_2_3.eContents().get(7);
		private final Group cGroup_2_4 = (Group)cAlternatives_2.eContents().get(4);
		private final Action cSarlSkillAnnotationInfoAction_2_4_0 = (Action)cGroup_2_4.eContents().get(0);
		private final Assignment cModifiersAssignment_2_4_1 = (Assignment)cGroup_2_4.eContents().get(1);
		private final RuleCall cModifiersCommonModifierParserRuleCall_2_4_1_0 = (RuleCall)cModifiersAssignment_2_4_1.eContents().get(0);
		private final Keyword cSkillKeyword_2_4_2 = (Keyword)cGroup_2_4.eContents().get(2);
		private final Assignment cNameAssignment_2_4_3 = (Assignment)cGroup_2_4.eContents().get(3);
		private final RuleCall cNameValidIDParserRuleCall_2_4_3_0 = (RuleCall)cNameAssignment_2_4_3.eContents().get(0);
		private final UnorderedGroup cUnorderedGroup_2_4_4 = (UnorderedGroup)cGroup_2_4.eContents().get(4);
		private final Group cGroup_2_4_4_0 = (Group)cUnorderedGroup_2_4_4.eContents().get(0);
		private final Keyword cExtendsKeyword_2_4_4_0_0 = (Keyword)cGroup_2_4_4_0.eContents().get(0);
		private final Assignment cExtendsAssignment_2_4_4_0_1 = (Assignment)cGroup_2_4_4_0.eContents().get(1);
		private final RuleCall cExtendsJvmParameterizedTypeReferenceParserRuleCall_2_4_4_0_1_0 = (RuleCall)cExtendsAssignment_2_4_4_0_1.eContents().get(0);
		private final Group cGroup_2_4_4_1 = (Group)cUnorderedGroup_2_4_4.eContents().get(1);
		private final Keyword cImplementsKeyword_2_4_4_1_0 = (Keyword)cGroup_2_4_4_1.eContents().get(0);
		private final Assignment cImplementsAssignment_2_4_4_1_1 = (Assignment)cGroup_2_4_4_1.eContents().get(1);
		private final RuleCall cImplementsJvmParameterizedTypeReferenceParserRuleCall_2_4_4_1_1_0 = (RuleCall)cImplementsAssignment_2_4_4_1_1.eContents().get(0);
		private final Group cGroup_2_4_4_1_2 = (Group)cGroup_2_4_4_1.eContents().get(2);
		private final Keyword cCommaKeyword_2_4_4_1_2_0 = (Keyword)cGroup_2_4_4_1_2.eContents().get(0);
		private final Assignment cImplementsAssignment_2_4_4_1_2_1 = (Assignment)cGroup_2_4_4_1_2.eContents().get(1);
		private final RuleCall cImplementsJvmParameterizedTypeReferenceParserRuleCall_2_4_4_1_2_1_0 = (RuleCall)cImplementsAssignment_2_4_4_1_2_1.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_2_4_5 = (Keyword)cGroup_2_4.eContents().get(5);
		private final Assignment cMembersAssignment_2_4_6 = (Assignment)cGroup_2_4.eContents().get(6);
		private final RuleCall cMembersAOPMemberParserRuleCall_2_4_6_0 = (RuleCall)cMembersAssignment_2_4_6.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_2_4_7 = (Keyword)cGroup_2_4.eContents().get(7);
		private final Group cGroup_2_5 = (Group)cAlternatives_2.eContents().get(5);
		private final Action cSarlSpaceAnnotationInfoAction_2_5_0 = (Action)cGroup_2_5.eContents().get(0);
		private final Assignment cModifiersAssignment_2_5_1 = (Assignment)cGroup_2_5.eContents().get(1);
		private final RuleCall cModifiersCommonModifierParserRuleCall_2_5_1_0 = (RuleCall)cModifiersAssignment_2_5_1.eContents().get(0);
		private final Keyword cSpaceKeyword_2_5_2 = (Keyword)cGroup_2_5.eContents().get(2);
		private final Assignment cNameAssignment_2_5_3 = (Assignment)cGroup_2_5.eContents().get(3);
		private final RuleCall cNameValidIDParserRuleCall_2_5_3_0 = (RuleCall)cNameAssignment_2_5_3.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_2_5_4 = (Keyword)cGroup_2_5.eContents().get(4);
		private final Keyword cRightCurlyBracketKeyword_2_5_5 = (Keyword)cGroup_2_5.eContents().get(5);
		private final Group cGroup_2_6 = (Group)cAlternatives_2.eContents().get(6);
		private final Action cSarlArtifactAnnotationInfoAction_2_6_0 = (Action)cGroup_2_6.eContents().get(0);
		private final Assignment cModifiersAssignment_2_6_1 = (Assignment)cGroup_2_6.eContents().get(1);
		private final RuleCall cModifiersCommonModifierParserRuleCall_2_6_1_0 = (RuleCall)cModifiersAssignment_2_6_1.eContents().get(0);
		private final Keyword cArtifactKeyword_2_6_2 = (Keyword)cGroup_2_6.eContents().get(2);
		private final Assignment cNameAssignment_2_6_3 = (Assignment)cGroup_2_6.eContents().get(3);
		private final RuleCall cNameValidIDParserRuleCall_2_6_3_0 = (RuleCall)cNameAssignment_2_6_3.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_2_6_4 = (Keyword)cGroup_2_6.eContents().get(4);
		private final Keyword cRightCurlyBracketKeyword_2_6_5 = (Keyword)cGroup_2_6.eContents().get(5);
		private final Group cGroup_2_7 = (Group)cAlternatives_2.eContents().get(7);
		private final Action cSarlClassAnnotationInfoAction_2_7_0 = (Action)cGroup_2_7.eContents().get(0);
		private final Assignment cModifiersAssignment_2_7_1 = (Assignment)cGroup_2_7.eContents().get(1);
		private final RuleCall cModifiersCommonModifierParserRuleCall_2_7_1_0 = (RuleCall)cModifiersAssignment_2_7_1.eContents().get(0);
		private final Keyword cClassKeyword_2_7_2 = (Keyword)cGroup_2_7.eContents().get(2);
		private final Assignment cNameAssignment_2_7_3 = (Assignment)cGroup_2_7.eContents().get(3);
		private final RuleCall cNameValidIDParserRuleCall_2_7_3_0 = (RuleCall)cNameAssignment_2_7_3.eContents().get(0);
		private final Group cGroup_2_7_4 = (Group)cGroup_2_7.eContents().get(4);
		private final Keyword cLessThanSignKeyword_2_7_4_0 = (Keyword)cGroup_2_7_4.eContents().get(0);
		private final Assignment cTypeParametersAssignment_2_7_4_1 = (Assignment)cGroup_2_7_4.eContents().get(1);
		private final RuleCall cTypeParametersJvmTypeParameterParserRuleCall_2_7_4_1_0 = (RuleCall)cTypeParametersAssignment_2_7_4_1.eContents().get(0);
		private final Group cGroup_2_7_4_2 = (Group)cGroup_2_7_4.eContents().get(2);
		private final Keyword cCommaKeyword_2_7_4_2_0 = (Keyword)cGroup_2_7_4_2.eContents().get(0);
		private final Assignment cTypeParametersAssignment_2_7_4_2_1 = (Assignment)cGroup_2_7_4_2.eContents().get(1);
		private final RuleCall cTypeParametersJvmTypeParameterParserRuleCall_2_7_4_2_1_0 = (RuleCall)cTypeParametersAssignment_2_7_4_2_1.eContents().get(0);
		private final Keyword cGreaterThanSignKeyword_2_7_4_3 = (Keyword)cGroup_2_7_4.eContents().get(3);
		private final UnorderedGroup cUnorderedGroup_2_7_5 = (UnorderedGroup)cGroup_2_7.eContents().get(5);
		private final Group cGroup_2_7_5_0 = (Group)cUnorderedGroup_2_7_5.eContents().get(0);
		private final Keyword cExtendsKeyword_2_7_5_0_0 = (Keyword)cGroup_2_7_5_0.eContents().get(0);
		private final Assignment cExtendsAssignment_2_7_5_0_1 = (Assignment)cGroup_2_7_5_0.eContents().get(1);
		private final RuleCall cExtendsJvmParameterizedTypeReferenceParserRuleCall_2_7_5_0_1_0 = (RuleCall)cExtendsAssignment_2_7_5_0_1.eContents().get(0);
		private final Group cGroup_2_7_5_1 = (Group)cUnorderedGroup_2_7_5.eContents().get(1);
		private final Keyword cImplementsKeyword_2_7_5_1_0 = (Keyword)cGroup_2_7_5_1.eContents().get(0);
		private final Assignment cImplementsAssignment_2_7_5_1_1 = (Assignment)cGroup_2_7_5_1.eContents().get(1);
		private final RuleCall cImplementsJvmParameterizedTypeReferenceParserRuleCall_2_7_5_1_1_0 = (RuleCall)cImplementsAssignment_2_7_5_1_1.eContents().get(0);
		private final Group cGroup_2_7_5_1_2 = (Group)cGroup_2_7_5_1.eContents().get(2);
		private final Keyword cCommaKeyword_2_7_5_1_2_0 = (Keyword)cGroup_2_7_5_1_2.eContents().get(0);
		private final Assignment cImplementsAssignment_2_7_5_1_2_1 = (Assignment)cGroup_2_7_5_1_2.eContents().get(1);
		private final RuleCall cImplementsJvmParameterizedTypeReferenceParserRuleCall_2_7_5_1_2_1_0 = (RuleCall)cImplementsAssignment_2_7_5_1_2_1.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_2_7_6 = (Keyword)cGroup_2_7.eContents().get(6);
		private final Assignment cMembersAssignment_2_7_7 = (Assignment)cGroup_2_7.eContents().get(7);
		private final RuleCall cMembersMemberParserRuleCall_2_7_7_0 = (RuleCall)cMembersAssignment_2_7_7.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_2_7_8 = (Keyword)cGroup_2_7.eContents().get(8);
		private final Group cGroup_2_8 = (Group)cAlternatives_2.eContents().get(8);
		private final Action cSarlInterfaceAnnotationInfoAction_2_8_0 = (Action)cGroup_2_8.eContents().get(0);
		private final Assignment cModifiersAssignment_2_8_1 = (Assignment)cGroup_2_8.eContents().get(1);
		private final RuleCall cModifiersCommonModifierParserRuleCall_2_8_1_0 = (RuleCall)cModifiersAssignment_2_8_1.eContents().get(0);
		private final Keyword cInterfaceKeyword_2_8_2 = (Keyword)cGroup_2_8.eContents().get(2);
		private final Assignment cNameAssignment_2_8_3 = (Assignment)cGroup_2_8.eContents().get(3);
		private final RuleCall cNameValidIDParserRuleCall_2_8_3_0 = (RuleCall)cNameAssignment_2_8_3.eContents().get(0);
		private final Group cGroup_2_8_4 = (Group)cGroup_2_8.eContents().get(4);
		private final Keyword cLessThanSignKeyword_2_8_4_0 = (Keyword)cGroup_2_8_4.eContents().get(0);
		private final Assignment cTypeParametersAssignment_2_8_4_1 = (Assignment)cGroup_2_8_4.eContents().get(1);
		private final RuleCall cTypeParametersJvmTypeParameterParserRuleCall_2_8_4_1_0 = (RuleCall)cTypeParametersAssignment_2_8_4_1.eContents().get(0);
		private final Group cGroup_2_8_4_2 = (Group)cGroup_2_8_4.eContents().get(2);
		private final Keyword cCommaKeyword_2_8_4_2_0 = (Keyword)cGroup_2_8_4_2.eContents().get(0);
		private final Assignment cTypeParametersAssignment_2_8_4_2_1 = (Assignment)cGroup_2_8_4_2.eContents().get(1);
		private final RuleCall cTypeParametersJvmTypeParameterParserRuleCall_2_8_4_2_1_0 = (RuleCall)cTypeParametersAssignment_2_8_4_2_1.eContents().get(0);
		private final Keyword cGreaterThanSignKeyword_2_8_4_3 = (Keyword)cGroup_2_8_4.eContents().get(3);
		private final Group cGroup_2_8_5 = (Group)cGroup_2_8.eContents().get(5);
		private final Keyword cExtendsKeyword_2_8_5_0 = (Keyword)cGroup_2_8_5.eContents().get(0);
		private final Assignment cExtendsAssignment_2_8_5_1 = (Assignment)cGroup_2_8_5.eContents().get(1);
		private final RuleCall cExtendsJvmParameterizedTypeReferenceParserRuleCall_2_8_5_1_0 = (RuleCall)cExtendsAssignment_2_8_5_1.eContents().get(0);
		private final Group cGroup_2_8_5_2 = (Group)cGroup_2_8_5.eContents().get(2);
		private final Keyword cCommaKeyword_2_8_5_2_0 = (Keyword)cGroup_2_8_5_2.eContents().get(0);
		private final Assignment cExtendsAssignment_2_8_5_2_1 = (Assignment)cGroup_2_8_5_2.eContents().get(1);
		private final RuleCall cExtendsJvmParameterizedTypeReferenceParserRuleCall_2_8_5_2_1_0 = (RuleCall)cExtendsAssignment_2_8_5_2_1.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_2_8_6 = (Keyword)cGroup_2_8.eContents().get(6);
		private final Assignment cMembersAssignment_2_8_7 = (Assignment)cGroup_2_8.eContents().get(7);
		private final RuleCall cMembersMemberParserRuleCall_2_8_7_0 = (RuleCall)cMembersAssignment_2_8_7.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_2_8_8 = (Keyword)cGroup_2_8.eContents().get(8);
		private final Group cGroup_2_9 = (Group)cAlternatives_2.eContents().get(9);
		private final Action cSarlEnumerationAnnotationInfoAction_2_9_0 = (Action)cGroup_2_9.eContents().get(0);
		private final Assignment cModifiersAssignment_2_9_1 = (Assignment)cGroup_2_9.eContents().get(1);
		private final RuleCall cModifiersCommonModifierParserRuleCall_2_9_1_0 = (RuleCall)cModifiersAssignment_2_9_1.eContents().get(0);
		private final Keyword cEnumKeyword_2_9_2 = (Keyword)cGroup_2_9.eContents().get(2);
		private final Assignment cNameAssignment_2_9_3 = (Assignment)cGroup_2_9.eContents().get(3);
		private final RuleCall cNameValidIDParserRuleCall_2_9_3_0 = (RuleCall)cNameAssignment_2_9_3.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_2_9_4 = (Keyword)cGroup_2_9.eContents().get(4);
		private final Group cGroup_2_9_5 = (Group)cGroup_2_9.eContents().get(5);
		private final Assignment cMembersAssignment_2_9_5_0 = (Assignment)cGroup_2_9_5.eContents().get(0);
		private final RuleCall cMembersXtendEnumLiteralParserRuleCall_2_9_5_0_0 = (RuleCall)cMembersAssignment_2_9_5_0.eContents().get(0);
		private final Group cGroup_2_9_5_1 = (Group)cGroup_2_9_5.eContents().get(1);
		private final Keyword cCommaKeyword_2_9_5_1_0 = (Keyword)cGroup_2_9_5_1.eContents().get(0);
		private final Assignment cMembersAssignment_2_9_5_1_1 = (Assignment)cGroup_2_9_5_1.eContents().get(1);
		private final RuleCall cMembersXtendEnumLiteralParserRuleCall_2_9_5_1_1_0 = (RuleCall)cMembersAssignment_2_9_5_1_1.eContents().get(0);
		private final Keyword cSemicolonKeyword_2_9_6 = (Keyword)cGroup_2_9.eContents().get(6);
		private final Keyword cRightCurlyBracketKeyword_2_9_7 = (Keyword)cGroup_2_9.eContents().get(7);
		private final Group cGroup_2_10 = (Group)cAlternatives_2.eContents().get(10);
		private final Action cSarlAnnotationTypeAnnotationInfoAction_2_10_0 = (Action)cGroup_2_10.eContents().get(0);
		private final Assignment cModifiersAssignment_2_10_1 = (Assignment)cGroup_2_10.eContents().get(1);
		private final RuleCall cModifiersCommonModifierParserRuleCall_2_10_1_0 = (RuleCall)cModifiersAssignment_2_10_1.eContents().get(0);
		private final Keyword cAnnotationKeyword_2_10_2 = (Keyword)cGroup_2_10.eContents().get(2);
		private final Assignment cNameAssignment_2_10_3 = (Assignment)cGroup_2_10.eContents().get(3);
		private final RuleCall cNameValidIDParserRuleCall_2_10_3_0 = (RuleCall)cNameAssignment_2_10_3.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_2_10_4 = (Keyword)cGroup_2_10.eContents().get(4);
		private final Assignment cMembersAssignment_2_10_5 = (Assignment)cGroup_2_10.eContents().get(5);
		private final RuleCall cMembersAnnotationFieldParserRuleCall_2_10_5_0 = (RuleCall)cMembersAssignment_2_10_5.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_2_10_6 = (Keyword)cGroup_2_10.eContents().get(6);
		
		//@Override
		//Type returns xtend::XtendTypeDeclaration:
		//    {xtend::XtendTypeDeclaration} annotations+=XAnnotation*
		//    (    // Event
		//        {SarlEvent.annotationInfo = current}
		//        modifiers += CommonModifier*
		//        'event' name=ValidID ('<' typeParameters+=JvmTypeParameter (',' typeParameters+=JvmTypeParameter)* '>')?  ('extends' extends=JvmParameterizedTypeReference)?
		//        ('{' members+=EventMember* '}')?
		//    |
		//        // Capacity
		//        {SarlCapacity.annotationInfo = current}
		//        modifiers+=CommonModifier*
		//        'capacity' name=ValidID
		//        ('extends' extends+=JvmParameterizedTypeReference
		//        ( ',' extends+=JvmParameterizedTypeReference )* )?
		//        '{' members+=CapacityMember* '}'
		//    |
		//        // Agent
		//        {SarlAgent.annotationInfo = current}
		//        modifiers+=CommonModifier*
		//        'agent' name=ValidID
		//        ('extends' extends=JvmParameterizedTypeReference)?
		//        '{' members+=AOPMember* '}'
		//    |
		//        // Behavior
		//        {SarlBehavior.annotationInfo = current}
		//        modifiers+=CommonModifier*
		//        'behavior' name=ValidID ('extends' extends=JvmParameterizedTypeReference)?
		//        '{' members+=AOPMember* '}'
		//    |
		//        // Skill
		//        {SarlSkill.annotationInfo = current}
		//        modifiers+=CommonModifier*
		//        'skill' name=ValidID
		//        (    ('extends' extends=JvmParameterizedTypeReference)?
		//            &
		//            ('implements' implements+=JvmParameterizedTypeReference (',' implements+=JvmParameterizedTypeReference)*)?
		//        )
		//        '{' members+=AOPMember* '}'
		//    |
		//        // Space
		//        {SarlSpace.annotationInfo = current}
		//        modifiers+=CommonModifier*
		//        'space' name=ValidID '{' '}'
		//    |
		//        // Artifact
		//        {SarlArtifact.annotationInfo = current}
		//        modifiers+=CommonModifier*
		//        'artifact' name=ValidID '{' '}'
		//    |
		//        // Class
		//        {SarlClass.annotationInfo = current}
		//        modifiers+=CommonModifier*
		//        'class' name=ValidID ('<' typeParameters+=JvmTypeParameter (',' typeParameters+=JvmTypeParameter)* '>')?
		//        (    ('extends' extends=JvmParameterizedTypeReference)?
		//            &
		//            ('implements' implements+=JvmParameterizedTypeReference (',' implements+=JvmParameterizedTypeReference)*)?
		//        )
		//        '{' members+=Member* '}'
		//    |
		//        // Interface
		//        {SarlInterface.annotationInfo = current}
		//        modifiers+=CommonModifier*
		//        'interface' name=ValidID ('<' typeParameters+=JvmTypeParameter (',' typeParameters+=JvmTypeParameter)* '>')?
		//        ('extends' extends+=JvmParameterizedTypeReference (',' extends+=JvmParameterizedTypeReference)*)?
		//        '{' (members+=Member)* '}'
		//    |
		//        // Enum
		//        {SarlEnumeration.annotationInfo = current}
		//        modifiers+=CommonModifier*
		//        'enum' name=ValidID '{'
		//           (members+=XtendEnumLiteral (',' members+=XtendEnumLiteral)*)? ';'?
		//        '}'
		//    |
		//        // AnnotationType
		//        {SarlAnnotationType.annotationInfo = current}
		//        modifiers+=CommonModifier*
		//        'annotation' name=ValidID
		//        '{' members+=AnnotationField* '}'
		//    )
		//;
		@Override public ParserRule getRule() { return rule; }
		
		//{xtend::XtendTypeDeclaration} annotations+=XAnnotation*
		//(    // Event
		//    {SarlEvent.annotationInfo = current}
		//    modifiers += CommonModifier*
		//    'event' name=ValidID ('<' typeParameters+=JvmTypeParameter (',' typeParameters+=JvmTypeParameter)* '>')?  ('extends' extends=JvmParameterizedTypeReference)?
		//    ('{' members+=EventMember* '}')?
		//|
		//    // Capacity
		//    {SarlCapacity.annotationInfo = current}
		//    modifiers+=CommonModifier*
		//    'capacity' name=ValidID
		//    ('extends' extends+=JvmParameterizedTypeReference
		//    ( ',' extends+=JvmParameterizedTypeReference )* )?
		//    '{' members+=CapacityMember* '}'
		//|
		//    // Agent
		//    {SarlAgent.annotationInfo = current}
		//    modifiers+=CommonModifier*
		//    'agent' name=ValidID
		//    ('extends' extends=JvmParameterizedTypeReference)?
		//    '{' members+=AOPMember* '}'
		//|
		//    // Behavior
		//    {SarlBehavior.annotationInfo = current}
		//    modifiers+=CommonModifier*
		//    'behavior' name=ValidID ('extends' extends=JvmParameterizedTypeReference)?
		//    '{' members+=AOPMember* '}'
		//|
		//    // Skill
		//    {SarlSkill.annotationInfo = current}
		//    modifiers+=CommonModifier*
		//    'skill' name=ValidID
		//    (    ('extends' extends=JvmParameterizedTypeReference)?
		//        &
		//        ('implements' implements+=JvmParameterizedTypeReference (',' implements+=JvmParameterizedTypeReference)*)?
		//    )
		//    '{' members+=AOPMember* '}'
		//|
		//    // Space
		//    {SarlSpace.annotationInfo = current}
		//    modifiers+=CommonModifier*
		//    'space' name=ValidID '{' '}'
		//|
		//    // Artifact
		//    {SarlArtifact.annotationInfo = current}
		//    modifiers+=CommonModifier*
		//    'artifact' name=ValidID '{' '}'
		//|
		//    // Class
		//    {SarlClass.annotationInfo = current}
		//    modifiers+=CommonModifier*
		//    'class' name=ValidID ('<' typeParameters+=JvmTypeParameter (',' typeParameters+=JvmTypeParameter)* '>')?
		//    (    ('extends' extends=JvmParameterizedTypeReference)?
		//        &
		//        ('implements' implements+=JvmParameterizedTypeReference (',' implements+=JvmParameterizedTypeReference)*)?
		//    )
		//    '{' members+=Member* '}'
		//|
		//    // Interface
		//    {SarlInterface.annotationInfo = current}
		//    modifiers+=CommonModifier*
		//    'interface' name=ValidID ('<' typeParameters+=JvmTypeParameter (',' typeParameters+=JvmTypeParameter)* '>')?
		//    ('extends' extends+=JvmParameterizedTypeReference (',' extends+=JvmParameterizedTypeReference)*)?
		//    '{' (members+=Member)* '}'
		//|
		//    // Enum
		//    {SarlEnumeration.annotationInfo = current}
