/*
* generated by Xtext
*/

package jp.ac.jaist.kslab.e4.dsl.services;

import com.google.inject.Singleton;
import com.google.inject.Inject;

import org.eclipse.xtext.*;
import org.eclipse.xtext.service.GrammarProvider;
import org.eclipse.xtext.service.AbstractElementFinder.*;

import org.eclipse.xtext.common.services.TerminalsGrammarAccess;

@Singleton
public class E4DslGrammarAccess extends AbstractGrammarElementFinder {
	
	
	public class ApplicationElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Application");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cApplicationKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Assignment cWindowsAssignment_3 = (Assignment)cGroup.eContents().get(3);
		private final RuleCall cWindowsAbsWindowParserRuleCall_3_0 = (RuleCall)cWindowsAssignment_3.eContents().get(0);
		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
		private final Keyword cCommandsKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_4_1 = (Keyword)cGroup_4.eContents().get(1);
		private final Assignment cCommandsAssignment_4_2 = (Assignment)cGroup_4.eContents().get(2);
		private final RuleCall cCommandsCommandParserRuleCall_4_2_0 = (RuleCall)cCommandsAssignment_4_2.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_4_3 = (Keyword)cGroup_4.eContents().get(3);
		private final Group cGroup_5 = (Group)cGroup.eContents().get(5);
		private final Keyword cBindingsKeyword_5_0 = (Keyword)cGroup_5.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_5_1 = (Keyword)cGroup_5.eContents().get(1);
		private final Assignment cBindingsAssignment_5_2 = (Assignment)cGroup_5.eContents().get(2);
		private final RuleCall cBindingsBindingParserRuleCall_5_2_0 = (RuleCall)cBindingsAssignment_5_2.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_5_3 = (Keyword)cGroup_5.eContents().get(3);
		private final Keyword cRightCurlyBracketKeyword_6 = (Keyword)cGroup.eContents().get(6);
		
		//Application:
		//	"application" name=ID "{" windows+=AbsWindow* ("commands" "{" commands+=Command* "}")? ("bindings" "{"
		//	bindings+=Binding* "}")? "}";
		public ParserRule getRule() { return rule; }

		//"application" name=ID "{" windows+=AbsWindow* ("commands" "{" commands+=Command* "}")? ("bindings" "{"
		//bindings+=Binding* "}")? "}"
		public Group getGroup() { return cGroup; }

		//"application"
		public Keyword getApplicationKeyword_0() { return cApplicationKeyword_0; }

		//name=ID
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }

		//windows+=AbsWindow*
		public Assignment getWindowsAssignment_3() { return cWindowsAssignment_3; }

		//AbsWindow
		public RuleCall getWindowsAbsWindowParserRuleCall_3_0() { return cWindowsAbsWindowParserRuleCall_3_0; }

		//("commands" "{" commands+=Command* "}")?
		public Group getGroup_4() { return cGroup_4; }

		//"commands"
		public Keyword getCommandsKeyword_4_0() { return cCommandsKeyword_4_0; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_4_1() { return cLeftCurlyBracketKeyword_4_1; }

		//commands+=Command*
		public Assignment getCommandsAssignment_4_2() { return cCommandsAssignment_4_2; }

		//Command
		public RuleCall getCommandsCommandParserRuleCall_4_2_0() { return cCommandsCommandParserRuleCall_4_2_0; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_4_3() { return cRightCurlyBracketKeyword_4_3; }

		//("bindings" "{" bindings+=Binding* "}")?
		public Group getGroup_5() { return cGroup_5; }

		//"bindings"
		public Keyword getBindingsKeyword_5_0() { return cBindingsKeyword_5_0; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_5_1() { return cLeftCurlyBracketKeyword_5_1; }

		//bindings+=Binding*
		public Assignment getBindingsAssignment_5_2() { return cBindingsAssignment_5_2; }

		//Binding
		public RuleCall getBindingsBindingParserRuleCall_5_2_0() { return cBindingsBindingParserRuleCall_5_2_0; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_5_3() { return cRightCurlyBracketKeyword_5_3; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_6() { return cRightCurlyBracketKeyword_6; }
	}

	public class AbsWindowElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "AbsWindow");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final RuleCall cWindowParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
		private final RuleCall cTrimmedWindowParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
		
		//AbsWindow:
		//	Window | TrimmedWindow;
		public ParserRule getRule() { return rule; }

		//Window | TrimmedWindow
		public Alternatives getAlternatives() { return cAlternatives; }

		//Window
		public RuleCall getWindowParserRuleCall_0() { return cWindowParserRuleCall_0; }

		//TrimmedWindow
		public RuleCall getTrimmedWindowParserRuleCall_1() { return cTrimmedWindowParserRuleCall_1; }
	}

	public class WindowElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Window");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cWindowKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Assignment cPartsAssignment_3 = (Assignment)cGroup.eContents().get(3);
		private final RuleCall cPartsPartParserRuleCall_3_0 = (RuleCall)cPartsAssignment_3.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
		
		//Window:
		//	"window" name=ID "{" parts+=Part* "}";
		public ParserRule getRule() { return rule; }

		//"window" name=ID "{" parts+=Part* "}"
		public Group getGroup() { return cGroup; }

		//"window"
		public Keyword getWindowKeyword_0() { return cWindowKeyword_0; }

		//name=ID
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }

		//parts+=Part*
		public Assignment getPartsAssignment_3() { return cPartsAssignment_3; }

		//Part
		public RuleCall getPartsPartParserRuleCall_3_0() { return cPartsPartParserRuleCall_3_0; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_4() { return cRightCurlyBracketKeyword_4; }
	}

	public class TrimmedWindowElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "TrimmedWindow");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cTrimmedwindowKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Assignment cPartsAssignment_3 = (Assignment)cGroup.eContents().get(3);
		private final RuleCall cPartsAbsPartParserRuleCall_3_0 = (RuleCall)cPartsAssignment_3.eContents().get(0);
		private final Group cGroup_4 = (Group)cGroup.eContents().get(4);
		private final Keyword cMainmenuKeyword_4_0 = (Keyword)cGroup_4.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_4_1 = (Keyword)cGroup_4.eContents().get(1);
		private final Assignment cMenuAssignment_4_2 = (Assignment)cGroup_4.eContents().get(2);
		private final RuleCall cMenuAbsMenuParserRuleCall_4_2_0 = (RuleCall)cMenuAssignment_4_2.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_4_3 = (Keyword)cGroup_4.eContents().get(3);
		private final Group cGroup_5 = (Group)cGroup.eContents().get(5);
		private final Keyword cTrimbarsKeyword_5_0 = (Keyword)cGroup_5.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_5_1 = (Keyword)cGroup_5.eContents().get(1);
		private final Assignment cToolbarsAssignment_5_2 = (Assignment)cGroup_5.eContents().get(2);
		private final RuleCall cToolbarsToolBarParserRuleCall_5_2_0 = (RuleCall)cToolbarsAssignment_5_2.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_5_3 = (Keyword)cGroup_5.eContents().get(3);
		private final Keyword cRightCurlyBracketKeyword_6 = (Keyword)cGroup.eContents().get(6);
		
		//TrimmedWindow:
		//	"trimmedwindow" name=ID "{" parts+=AbsPart* ("mainmenu" "{" menu+=AbsMenu* "}")? ("trimbars" "{" toolbars+=ToolBar*
		//	"}")? "}";
		public ParserRule getRule() { return rule; }

		//"trimmedwindow" name=ID "{" parts+=AbsPart* ("mainmenu" "{" menu+=AbsMenu* "}")? ("trimbars" "{" toolbars+=ToolBar*
		//"}")? "}"
		public Group getGroup() { return cGroup; }

		//"trimmedwindow"
		public Keyword getTrimmedwindowKeyword_0() { return cTrimmedwindowKeyword_0; }

		//name=ID
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }

		//parts+=AbsPart*
		public Assignment getPartsAssignment_3() { return cPartsAssignment_3; }

		//AbsPart
		public RuleCall getPartsAbsPartParserRuleCall_3_0() { return cPartsAbsPartParserRuleCall_3_0; }

		//("mainmenu" "{" menu+=AbsMenu* "}")?
		public Group getGroup_4() { return cGroup_4; }

		//"mainmenu"
		public Keyword getMainmenuKeyword_4_0() { return cMainmenuKeyword_4_0; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_4_1() { return cLeftCurlyBracketKeyword_4_1; }

		//menu+=AbsMenu*
		public Assignment getMenuAssignment_4_2() { return cMenuAssignment_4_2; }

		//AbsMenu
		public RuleCall getMenuAbsMenuParserRuleCall_4_2_0() { return cMenuAbsMenuParserRuleCall_4_2_0; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_4_3() { return cRightCurlyBracketKeyword_4_3; }

		//("trimbars" "{" toolbars+=ToolBar* "}")?
		public Group getGroup_5() { return cGroup_5; }

		//"trimbars"
		public Keyword getTrimbarsKeyword_5_0() { return cTrimbarsKeyword_5_0; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_5_1() { return cLeftCurlyBracketKeyword_5_1; }

		//toolbars+=ToolBar*
		public Assignment getToolbarsAssignment_5_2() { return cToolbarsAssignment_5_2; }

		//ToolBar
		public RuleCall getToolbarsToolBarParserRuleCall_5_2_0() { return cToolbarsToolBarParserRuleCall_5_2_0; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_5_3() { return cRightCurlyBracketKeyword_5_3; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_6() { return cRightCurlyBracketKeyword_6; }
	}

	public class AbsPartElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "AbsPart");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final RuleCall cPartParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
		private final RuleCall cXWTPartParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
		
		//AbsPart:
		//	Part | XWTPart;
		public ParserRule getRule() { return rule; }

		//Part | XWTPart
		public Alternatives getAlternatives() { return cAlternatives; }

		//Part
		public RuleCall getPartParserRuleCall_0() { return cPartParserRuleCall_0; }

		//XWTPart
		public RuleCall getXWTPartParserRuleCall_1() { return cXWTPartParserRuleCall_1; }
	}

	public class PartElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Part");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cPartKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Assignment cLayoutAssignment_3 = (Assignment)cGroup.eContents().get(3);
		private final RuleCall cLayoutLayoutParserRuleCall_3_0 = (RuleCall)cLayoutAssignment_3.eContents().get(0);
		private final Assignment cControlsAssignment_4 = (Assignment)cGroup.eContents().get(4);
		private final RuleCall cControlsControlsParserRuleCall_4_0 = (RuleCall)cControlsAssignment_4.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5);
		
		//Part:
		//	"part" name=ID "{" layout=Layout? controls+=Controls* "}";
		public ParserRule getRule() { return rule; }

		//"part" name=ID "{" layout=Layout? controls+=Controls* "}"
		public Group getGroup() { return cGroup; }

		//"part"
		public Keyword getPartKeyword_0() { return cPartKeyword_0; }

		//name=ID
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }

		//layout=Layout?
		public Assignment getLayoutAssignment_3() { return cLayoutAssignment_3; }

		//Layout
		public RuleCall getLayoutLayoutParserRuleCall_3_0() { return cLayoutLayoutParserRuleCall_3_0; }

		//controls+=Controls*
		public Assignment getControlsAssignment_4() { return cControlsAssignment_4; }

		//Controls
		public RuleCall getControlsControlsParserRuleCall_4_0() { return cControlsControlsParserRuleCall_4_0; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; }
	}

	public class XWTPartElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "XWTPart");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cXwtpartKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Assignment cLayoutAssignment_3 = (Assignment)cGroup.eContents().get(3);
		private final RuleCall cLayoutLayoutParserRuleCall_3_0 = (RuleCall)cLayoutAssignment_3.eContents().get(0);
		private final Assignment cControlsAssignment_4 = (Assignment)cGroup.eContents().get(4);
		private final RuleCall cControlsAbsControlsParserRuleCall_4_0 = (RuleCall)cControlsAssignment_4.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_5 = (Keyword)cGroup.eContents().get(5);
		
		//XWTPart:
		//	"xwtpart" name=ID "{" layout=Layout? controls+=AbsControls* "}";
		public ParserRule getRule() { return rule; }

		//"xwtpart" name=ID "{" layout=Layout? controls+=AbsControls* "}"
		public Group getGroup() { return cGroup; }

		//"xwtpart"
		public Keyword getXwtpartKeyword_0() { return cXwtpartKeyword_0; }

		//name=ID
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }

		//layout=Layout?
		public Assignment getLayoutAssignment_3() { return cLayoutAssignment_3; }

		//Layout
		public RuleCall getLayoutLayoutParserRuleCall_3_0() { return cLayoutLayoutParserRuleCall_3_0; }

		//controls+=AbsControls*
		public Assignment getControlsAssignment_4() { return cControlsAssignment_4; }

		//AbsControls
		public RuleCall getControlsAbsControlsParserRuleCall_4_0() { return cControlsAbsControlsParserRuleCall_4_0; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_5() { return cRightCurlyBracketKeyword_5; }
	}

	public class LayoutElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Layout");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cLayoutKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cLayoutAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final Alternatives cLayoutAlternatives_1_0 = (Alternatives)cLayoutAssignment_1.eContents().get(0);
		private final Keyword cLayoutNoneKeyword_1_0_0 = (Keyword)cLayoutAlternatives_1_0.eContents().get(0);
		private final Keyword cLayoutFillKeyword_1_0_1 = (Keyword)cLayoutAlternatives_1_0.eContents().get(1);
		private final Keyword cLayoutFormKeyword_1_0_2 = (Keyword)cLayoutAlternatives_1_0.eContents().get(2);
		private final Keyword cLayoutGridKeyword_1_0_3 = (Keyword)cLayoutAlternatives_1_0.eContents().get(3);
		private final Keyword cLayoutRowKeyword_1_0_4 = (Keyword)cLayoutAlternatives_1_0.eContents().get(4);
		private final Keyword cLayoutStackKeyword_1_0_5 = (Keyword)cLayoutAlternatives_1_0.eContents().get(5);
		
		//Layout:
		//	"layout" layout=("none" | "fill" | "form" | "grid" | "row" | "stack");
		public ParserRule getRule() { return rule; }

		//"layout" layout=("none" | "fill" | "form" | "grid" | "row" | "stack")
		public Group getGroup() { return cGroup; }

		//"layout"
		public Keyword getLayoutKeyword_0() { return cLayoutKeyword_0; }

		//layout=("none" | "fill" | "form" | "grid" | "row" | "stack")
		public Assignment getLayoutAssignment_1() { return cLayoutAssignment_1; }

		//"none" | "fill" | "form" | "grid" | "row" | "stack"
		public Alternatives getLayoutAlternatives_1_0() { return cLayoutAlternatives_1_0; }

		//"none"
		public Keyword getLayoutNoneKeyword_1_0_0() { return cLayoutNoneKeyword_1_0_0; }

		//"fill"
		public Keyword getLayoutFillKeyword_1_0_1() { return cLayoutFillKeyword_1_0_1; }

		//"form"
		public Keyword getLayoutFormKeyword_1_0_2() { return cLayoutFormKeyword_1_0_2; }

		//"grid"
		public Keyword getLayoutGridKeyword_1_0_3() { return cLayoutGridKeyword_1_0_3; }

		//"row"
		public Keyword getLayoutRowKeyword_1_0_4() { return cLayoutRowKeyword_1_0_4; }

		//"stack"
		public Keyword getLayoutStackKeyword_1_0_5() { return cLayoutStackKeyword_1_0_5; }
	}

	public class AbsControlsElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "AbsControls");
		private final RuleCall cControlsParserRuleCall = (RuleCall)rule.eContents().get(1);
		
		//AbsControls: / *Container|* / Controls;
		public ParserRule getRule() { return rule; }

		/// *Container|* / Controls
		public RuleCall getControlsParserRuleCall() { return cControlsParserRuleCall; }
	}

	public class ControlsElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Controls");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final RuleCall cButtonParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
		private final RuleCall cBrowserParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
		private final RuleCall cCComboParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
		private final RuleCall cCLabelParserRuleCall_3 = (RuleCall)cAlternatives.eContents().get(3);
		private final RuleCall cComboParserRuleCall_4 = (RuleCall)cAlternatives.eContents().get(4);
		private final RuleCall cDateTimeParserRuleCall_5 = (RuleCall)cAlternatives.eContents().get(5);
		private final RuleCall cLabelParserRuleCall_6 = (RuleCall)cAlternatives.eContents().get(6);
		private final RuleCall cLinkParserRuleCall_7 = (RuleCall)cAlternatives.eContents().get(7);
		private final RuleCall cListParserRuleCall_8 = (RuleCall)cAlternatives.eContents().get(8);
		private final RuleCall cProgressBarParserRuleCall_9 = (RuleCall)cAlternatives.eContents().get(9);
		private final RuleCall cSashParserRuleCall_10 = (RuleCall)cAlternatives.eContents().get(10);
		private final RuleCall cScaleParserRuleCall_11 = (RuleCall)cAlternatives.eContents().get(11);
		private final RuleCall cSliderParserRuleCall_12 = (RuleCall)cAlternatives.eContents().get(12);
		private final RuleCall cSpinnerParserRuleCall_13 = (RuleCall)cAlternatives.eContents().get(13);
		private final RuleCall cSeparatorParserRuleCall_14 = (RuleCall)cAlternatives.eContents().get(14);
		private final RuleCall cStyledTextParserRuleCall_15 = (RuleCall)cAlternatives.eContents().get(15);
		private final RuleCall cTextParserRuleCall_16 = (RuleCall)cAlternatives.eContents().get(16);
		
		////Container:
		////	Composite|ScrolledComposite|Canvas|Group|SashForm|TabFolder|CtabFolder;
		//Controls:
		//	Button | Browser | CCombo | CLabel | Combo | DateTime | Label | Link | List | ProgressBar | Sash | Scale | Slider |
		//	Spinner | Separator | StyledText | Text;
		public ParserRule getRule() { return rule; }

		//Button | Browser | CCombo | CLabel | Combo | DateTime | Label | Link | List | ProgressBar | Sash | Scale | Slider |
		//Spinner | Separator | StyledText | Text
		public Alternatives getAlternatives() { return cAlternatives; }

		//Button
		public RuleCall getButtonParserRuleCall_0() { return cButtonParserRuleCall_0; }

		//Browser
		public RuleCall getBrowserParserRuleCall_1() { return cBrowserParserRuleCall_1; }

		//CCombo
		public RuleCall getCComboParserRuleCall_2() { return cCComboParserRuleCall_2; }

		//CLabel
		public RuleCall getCLabelParserRuleCall_3() { return cCLabelParserRuleCall_3; }

		//Combo
		public RuleCall getComboParserRuleCall_4() { return cComboParserRuleCall_4; }

		//DateTime
		public RuleCall getDateTimeParserRuleCall_5() { return cDateTimeParserRuleCall_5; }

		//Label
		public RuleCall getLabelParserRuleCall_6() { return cLabelParserRuleCall_6; }

		//Link
		public RuleCall getLinkParserRuleCall_7() { return cLinkParserRuleCall_7; }

		//List
		public RuleCall getListParserRuleCall_8() { return cListParserRuleCall_8; }

		//ProgressBar
		public RuleCall getProgressBarParserRuleCall_9() { return cProgressBarParserRuleCall_9; }

		//Sash
		public RuleCall getSashParserRuleCall_10() { return cSashParserRuleCall_10; }

		//Scale
		public RuleCall getScaleParserRuleCall_11() { return cScaleParserRuleCall_11; }

		//Slider
		public RuleCall getSliderParserRuleCall_12() { return cSliderParserRuleCall_12; }

		//Spinner
		public RuleCall getSpinnerParserRuleCall_13() { return cSpinnerParserRuleCall_13; }

		//Separator
		public RuleCall getSeparatorParserRuleCall_14() { return cSeparatorParserRuleCall_14; }

		//StyledText
		public RuleCall getStyledTextParserRuleCall_15() { return cStyledTextParserRuleCall_15; }

		//Text
		public RuleCall getTextParserRuleCall_16() { return cTextParserRuleCall_16; }
	}

	public class BrowserElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Browser");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cBrowserAction_0 = (Action)cGroup.eContents().get(0);
		private final Keyword cBrowserKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cNameIDTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Keyword cTextKeyword_4 = (Keyword)cGroup.eContents().get(4);
		private final Assignment cTextAssignment_5 = (Assignment)cGroup.eContents().get(5);
		private final RuleCall cTextSTRINGTerminalRuleCall_5_0 = (RuleCall)cTextAssignment_5.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_6 = (Keyword)cGroup.eContents().get(6);
		
		//Browser:
		//	{Browser} "browser" name=ID? "{" "text" text=STRING? "}";
		public ParserRule getRule() { return rule; }

		//{Browser} "browser" name=ID? "{" "text" text=STRING? "}"
		public Group getGroup() { return cGroup; }

		//{Browser}
		public Action getBrowserAction_0() { return cBrowserAction_0; }

		//"browser"
		public Keyword getBrowserKeyword_1() { return cBrowserKeyword_1; }

		//name=ID?
		public Assignment getNameAssignment_2() { return cNameAssignment_2; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_2_0() { return cNameIDTerminalRuleCall_2_0; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }

		//"text"
		public Keyword getTextKeyword_4() { return cTextKeyword_4; }

		//text=STRING?
		public Assignment getTextAssignment_5() { return cTextAssignment_5; }

		//STRING
		public RuleCall getTextSTRINGTerminalRuleCall_5_0() { return cTextSTRINGTerminalRuleCall_5_0; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_6() { return cRightCurlyBracketKeyword_6; }
	}

	public class ButtonElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Button");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cButtonAction_0 = (Action)cGroup.eContents().get(0);
		private final Keyword cButtonKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cNameIDTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Keyword cTextKeyword_4 = (Keyword)cGroup.eContents().get(4);
		private final Assignment cTextAssignment_5 = (Assignment)cGroup.eContents().get(5);
		private final RuleCall cTextSTRINGTerminalRuleCall_5_0 = (RuleCall)cTextAssignment_5.eContents().get(0);
		private final Group cGroup_6 = (Group)cGroup.eContents().get(6);
		private final Keyword cSizeKeyword_6_0 = (Keyword)cGroup_6.eContents().get(0);
		private final Assignment cSizeAssignment_6_1 = (Assignment)cGroup_6.eContents().get(1);
		private final RuleCall cSizeSizeParserRuleCall_6_1_0 = (RuleCall)cSizeAssignment_6_1.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_7 = (Keyword)cGroup.eContents().get(7);
		
		//Button:
		//	{Button} "button" name=ID? "{" "text" text=STRING? ("size" size=Size)? "}";
		public ParserRule getRule() { return rule; }

		//{Button} "button" name=ID? "{" "text" text=STRING? ("size" size=Size)? "}"
		public Group getGroup() { return cGroup; }

		//{Button}
		public Action getButtonAction_0() { return cButtonAction_0; }

		//"button"
		public Keyword getButtonKeyword_1() { return cButtonKeyword_1; }

		//name=ID?
		public Assignment getNameAssignment_2() { return cNameAssignment_2; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_2_0() { return cNameIDTerminalRuleCall_2_0; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }

		//"text"
		public Keyword getTextKeyword_4() { return cTextKeyword_4; }

		//text=STRING?
		public Assignment getTextAssignment_5() { return cTextAssignment_5; }

		//STRING
		public RuleCall getTextSTRINGTerminalRuleCall_5_0() { return cTextSTRINGTerminalRuleCall_5_0; }

		//("size" size=Size)?
		public Group getGroup_6() { return cGroup_6; }

		//"size"
		public Keyword getSizeKeyword_6_0() { return cSizeKeyword_6_0; }

		//size=Size
		public Assignment getSizeAssignment_6_1() { return cSizeAssignment_6_1; }

		//Size
		public RuleCall getSizeSizeParserRuleCall_6_1_0() { return cSizeSizeParserRuleCall_6_1_0; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_7() { return cRightCurlyBracketKeyword_7; }
	}

	public class CComboElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "CCombo");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cCComboAction_0 = (Action)cGroup.eContents().get(0);
		private final Keyword cCcomboKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cNameIDTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Keyword cRightCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
		
		//CCombo:
		//	{CCombo} "ccombo" name=ID? "{" "}";
		public ParserRule getRule() { return rule; }

		//{CCombo} "ccombo" name=ID? "{" "}"
		public Group getGroup() { return cGroup; }

		//{CCombo}
		public Action getCComboAction_0() { return cCComboAction_0; }

		//"ccombo"
		public Keyword getCcomboKeyword_1() { return cCcomboKeyword_1; }

		//name=ID?
		public Assignment getNameAssignment_2() { return cNameAssignment_2; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_2_0() { return cNameIDTerminalRuleCall_2_0; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_4() { return cRightCurlyBracketKeyword_4; }
	}

	public class CLabelElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "CLabel");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cCLabelAction_0 = (Action)cGroup.eContents().get(0);
		private final Keyword cClabelKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cNameIDTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Keyword cTextKeyword_4 = (Keyword)cGroup.eContents().get(4);
		private final Assignment cTextAssignment_5 = (Assignment)cGroup.eContents().get(5);
		private final RuleCall cTextSTRINGTerminalRuleCall_5_0 = (RuleCall)cTextAssignment_5.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_6 = (Keyword)cGroup.eContents().get(6);
		
		//CLabel:
		//	{CLabel} "clabel" name=ID? "{" "text" text=STRING? "}";
		public ParserRule getRule() { return rule; }

		//{CLabel} "clabel" name=ID? "{" "text" text=STRING? "}"
		public Group getGroup() { return cGroup; }

		//{CLabel}
		public Action getCLabelAction_0() { return cCLabelAction_0; }

		//"clabel"
		public Keyword getClabelKeyword_1() { return cClabelKeyword_1; }

		//name=ID?
		public Assignment getNameAssignment_2() { return cNameAssignment_2; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_2_0() { return cNameIDTerminalRuleCall_2_0; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }

		//"text"
		public Keyword getTextKeyword_4() { return cTextKeyword_4; }

		//text=STRING?
		public Assignment getTextAssignment_5() { return cTextAssignment_5; }

		//STRING
		public RuleCall getTextSTRINGTerminalRuleCall_5_0() { return cTextSTRINGTerminalRuleCall_5_0; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_6() { return cRightCurlyBracketKeyword_6; }
	}

	public class ComboElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Combo");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cComboAction_0 = (Action)cGroup.eContents().get(0);
		private final Keyword cComboKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cNameIDTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Keyword cRightCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
		
		//Combo:
		//	{Combo} "combo" name=ID? "{" "}";
		public ParserRule getRule() { return rule; }

		//{Combo} "combo" name=ID? "{" "}"
		public Group getGroup() { return cGroup; }

		//{Combo}
		public Action getComboAction_0() { return cComboAction_0; }

		//"combo"
		public Keyword getComboKeyword_1() { return cComboKeyword_1; }

		//name=ID?
		public Assignment getNameAssignment_2() { return cNameAssignment_2; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_2_0() { return cNameIDTerminalRuleCall_2_0; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_4() { return cRightCurlyBracketKeyword_4; }
	}

	public class DateTimeElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "DateTime");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cDateTimeAction_0 = (Action)cGroup.eContents().get(0);
		private final Keyword cDatetimeKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cNameIDTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Keyword cRightCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
		
		//DateTime:
		//	{DateTime} "datetime" name=ID? "{" "}";
		public ParserRule getRule() { return rule; }

		//{DateTime} "datetime" name=ID? "{" "}"
		public Group getGroup() { return cGroup; }

		//{DateTime}
		public Action getDateTimeAction_0() { return cDateTimeAction_0; }

		//"datetime"
		public Keyword getDatetimeKeyword_1() { return cDatetimeKeyword_1; }

		//name=ID?
		public Assignment getNameAssignment_2() { return cNameAssignment_2; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_2_0() { return cNameIDTerminalRuleCall_2_0; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_4() { return cRightCurlyBracketKeyword_4; }
	}

	public class LabelElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Label");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cLabelAction_0 = (Action)cGroup.eContents().get(0);
		private final Keyword cLabelKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cNameIDTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Keyword cTextKeyword_4 = (Keyword)cGroup.eContents().get(4);
		private final Assignment cTextAssignment_5 = (Assignment)cGroup.eContents().get(5);
		private final RuleCall cTextSTRINGTerminalRuleCall_5_0 = (RuleCall)cTextAssignment_5.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_6 = (Keyword)cGroup.eContents().get(6);
		
		//Label:
		//	{Label} "label" name=ID? "{" "text" text=STRING? "}";
		public ParserRule getRule() { return rule; }

		//{Label} "label" name=ID? "{" "text" text=STRING? "}"
		public Group getGroup() { return cGroup; }

		//{Label}
		public Action getLabelAction_0() { return cLabelAction_0; }

		//"label"
		public Keyword getLabelKeyword_1() { return cLabelKeyword_1; }

		//name=ID?
		public Assignment getNameAssignment_2() { return cNameAssignment_2; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_2_0() { return cNameIDTerminalRuleCall_2_0; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }

		//"text"
		public Keyword getTextKeyword_4() { return cTextKeyword_4; }

		//text=STRING?
		public Assignment getTextAssignment_5() { return cTextAssignment_5; }

		//STRING
		public RuleCall getTextSTRINGTerminalRuleCall_5_0() { return cTextSTRINGTerminalRuleCall_5_0; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_6() { return cRightCurlyBracketKeyword_6; }
	}

	public class LinkElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Link");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cLinkAction_0 = (Action)cGroup.eContents().get(0);
		private final Keyword cLinkKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cNameIDTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Keyword cRightCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
		
		//Link:
		//	{Link} "link" name=ID? "{" "}";
		public ParserRule getRule() { return rule; }

		//{Link} "link" name=ID? "{" "}"
		public Group getGroup() { return cGroup; }

		//{Link}
		public Action getLinkAction_0() { return cLinkAction_0; }

		//"link"
		public Keyword getLinkKeyword_1() { return cLinkKeyword_1; }

		//name=ID?
		public Assignment getNameAssignment_2() { return cNameAssignment_2; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_2_0() { return cNameIDTerminalRuleCall_2_0; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_4() { return cRightCurlyBracketKeyword_4; }
	}

	public class ListElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "List");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cListAction_0 = (Action)cGroup.eContents().get(0);
		private final Keyword cListKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cNameIDTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Keyword cRightCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
		
		//List:
		//	{List} "list" name=ID? "{" "}";
		public ParserRule getRule() { return rule; }

		//{List} "list" name=ID? "{" "}"
		public Group getGroup() { return cGroup; }

		//{List}
		public Action getListAction_0() { return cListAction_0; }

		//"list"
		public Keyword getListKeyword_1() { return cListKeyword_1; }

		//name=ID?
		public Assignment getNameAssignment_2() { return cNameAssignment_2; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_2_0() { return cNameIDTerminalRuleCall_2_0; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_4() { return cRightCurlyBracketKeyword_4; }
	}

	public class ProgressBarElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ProgressBar");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cProgressBarAction_0 = (Action)cGroup.eContents().get(0);
		private final Keyword cProgressbarKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cNameIDTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Keyword cRightCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
		
		//ProgressBar:
		//	{ProgressBar} "progressbar" name=ID? "{" "}";
		public ParserRule getRule() { return rule; }

		//{ProgressBar} "progressbar" name=ID? "{" "}"
		public Group getGroup() { return cGroup; }

		//{ProgressBar}
		public Action getProgressBarAction_0() { return cProgressBarAction_0; }

		//"progressbar"
		public Keyword getProgressbarKeyword_1() { return cProgressbarKeyword_1; }

		//name=ID?
		public Assignment getNameAssignment_2() { return cNameAssignment_2; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_2_0() { return cNameIDTerminalRuleCall_2_0; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_4() { return cRightCurlyBracketKeyword_4; }
	}

	public class SashElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Sash");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cSashAction_0 = (Action)cGroup.eContents().get(0);
		private final Keyword cSashKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cNameIDTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Keyword cRightCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
		
		//Sash:
		//	{Sash} "sash" name=ID? "{" "}";
		public ParserRule getRule() { return rule; }

		//{Sash} "sash" name=ID? "{" "}"
		public Group getGroup() { return cGroup; }

		//{Sash}
		public Action getSashAction_0() { return cSashAction_0; }

		//"sash"
		public Keyword getSashKeyword_1() { return cSashKeyword_1; }

		//name=ID?
		public Assignment getNameAssignment_2() { return cNameAssignment_2; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_2_0() { return cNameIDTerminalRuleCall_2_0; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_4() { return cRightCurlyBracketKeyword_4; }
	}

	public class ScaleElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Scale");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cScaleAction_0 = (Action)cGroup.eContents().get(0);
		private final Keyword cScaleKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cNameIDTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Keyword cRightCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
		
		//Scale:
		//	{Scale} "scale" name=ID? "{" "}";
		public ParserRule getRule() { return rule; }

		//{Scale} "scale" name=ID? "{" "}"
		public Group getGroup() { return cGroup; }

		//{Scale}
		public Action getScaleAction_0() { return cScaleAction_0; }

		//"scale"
		public Keyword getScaleKeyword_1() { return cScaleKeyword_1; }

		//name=ID?
		public Assignment getNameAssignment_2() { return cNameAssignment_2; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_2_0() { return cNameIDTerminalRuleCall_2_0; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_4() { return cRightCurlyBracketKeyword_4; }
	}

	public class SliderElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Slider");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cSliderAction_0 = (Action)cGroup.eContents().get(0);
		private final Keyword cSliderKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cNameIDTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Keyword cRightCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
		
		//Slider:
		//	{Slider} "slider" name=ID? "{" "}";
		public ParserRule getRule() { return rule; }

		//{Slider} "slider" name=ID? "{" "}"
		public Group getGroup() { return cGroup; }

		//{Slider}
		public Action getSliderAction_0() { return cSliderAction_0; }

		//"slider"
		public Keyword getSliderKeyword_1() { return cSliderKeyword_1; }

		//name=ID?
		public Assignment getNameAssignment_2() { return cNameAssignment_2; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_2_0() { return cNameIDTerminalRuleCall_2_0; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_4() { return cRightCurlyBracketKeyword_4; }
	}

	public class SpinnerElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Spinner");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cSpinnerAction_0 = (Action)cGroup.eContents().get(0);
		private final Keyword cSpinnerKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cNameIDTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Keyword cRightCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
		
		//Spinner:
		//	{Spinner} "spinner" name=ID? "{" "}";
		public ParserRule getRule() { return rule; }

		//{Spinner} "spinner" name=ID? "{" "}"
		public Group getGroup() { return cGroup; }

		//{Spinner}
		public Action getSpinnerAction_0() { return cSpinnerAction_0; }

		//"spinner"
		public Keyword getSpinnerKeyword_1() { return cSpinnerKeyword_1; }

		//name=ID?
		public Assignment getNameAssignment_2() { return cNameAssignment_2; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_2_0() { return cNameIDTerminalRuleCall_2_0; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_4() { return cRightCurlyBracketKeyword_4; }
	}

	public class SeparatorElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Separator");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cSeparatorAction_0 = (Action)cGroup.eContents().get(0);
		private final Keyword cSeparatorKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cNameIDTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Keyword cRightCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
		
		//Separator:
		//	{Separator} "separator" name=ID? "{" "}";
		public ParserRule getRule() { return rule; }

		//{Separator} "separator" name=ID? "{" "}"
		public Group getGroup() { return cGroup; }

		//{Separator}
		public Action getSeparatorAction_0() { return cSeparatorAction_0; }

		//"separator"
		public Keyword getSeparatorKeyword_1() { return cSeparatorKeyword_1; }

		//name=ID?
		public Assignment getNameAssignment_2() { return cNameAssignment_2; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_2_0() { return cNameIDTerminalRuleCall_2_0; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_4() { return cRightCurlyBracketKeyword_4; }
	}

	public class StyledTextElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "StyledText");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cStyledTextAction_0 = (Action)cGroup.eContents().get(0);
		private final Keyword cStyledtextKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cNameIDTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Keyword cTextKeyword_4 = (Keyword)cGroup.eContents().get(4);
		private final Assignment cTextAssignment_5 = (Assignment)cGroup.eContents().get(5);
		private final RuleCall cTextSTRINGTerminalRuleCall_5_0 = (RuleCall)cTextAssignment_5.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_6 = (Keyword)cGroup.eContents().get(6);
		
		//StyledText:
		//	{StyledText} "styledtext" name=ID? "{" "text" text=STRING? "}";
		public ParserRule getRule() { return rule; }

		//{StyledText} "styledtext" name=ID? "{" "text" text=STRING? "}"
		public Group getGroup() { return cGroup; }

		//{StyledText}
		public Action getStyledTextAction_0() { return cStyledTextAction_0; }

		//"styledtext"
		public Keyword getStyledtextKeyword_1() { return cStyledtextKeyword_1; }

		//name=ID?
		public Assignment getNameAssignment_2() { return cNameAssignment_2; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_2_0() { return cNameIDTerminalRuleCall_2_0; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }

		//"text"
		public Keyword getTextKeyword_4() { return cTextKeyword_4; }

		//text=STRING?
		public Assignment getTextAssignment_5() { return cTextAssignment_5; }

		//STRING
		public RuleCall getTextSTRINGTerminalRuleCall_5_0() { return cTextSTRINGTerminalRuleCall_5_0; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_6() { return cRightCurlyBracketKeyword_6; }
	}

	public class TextElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Text");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Action cTextAction_0 = (Action)cGroup.eContents().get(0);
		private final Keyword cTextfieldKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cNameAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cNameIDTerminalRuleCall_2_0 = (RuleCall)cNameAssignment_2.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
		private final Keyword cTextKeyword_4 = (Keyword)cGroup.eContents().get(4);
		private final Assignment cTextAssignment_5 = (Assignment)cGroup.eContents().get(5);
		private final RuleCall cTextSTRINGTerminalRuleCall_5_0 = (RuleCall)cTextAssignment_5.eContents().get(0);
		private final Group cGroup_6 = (Group)cGroup.eContents().get(6);
		private final Keyword cSizeKeyword_6_0 = (Keyword)cGroup_6.eContents().get(0);
		private final Assignment cSizeAssignment_6_1 = (Assignment)cGroup_6.eContents().get(1);
		private final RuleCall cSizeSizeParserRuleCall_6_1_0 = (RuleCall)cSizeAssignment_6_1.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_7 = (Keyword)cGroup.eContents().get(7);
		
		//Text:
		//	{Text} "textfield" name=ID? "{" "text" text=STRING? ("size" size=Size)? "}";
		public ParserRule getRule() { return rule; }

		//{Text} "textfield" name=ID? "{" "text" text=STRING? ("size" size=Size)? "}"
		public Group getGroup() { return cGroup; }

		//{Text}
		public Action getTextAction_0() { return cTextAction_0; }

		//"textfield"
		public Keyword getTextfieldKeyword_1() { return cTextfieldKeyword_1; }

		//name=ID?
		public Assignment getNameAssignment_2() { return cNameAssignment_2; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_2_0() { return cNameIDTerminalRuleCall_2_0; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_3() { return cLeftCurlyBracketKeyword_3; }

		//"text"
		public Keyword getTextKeyword_4() { return cTextKeyword_4; }

		//text=STRING?
		public Assignment getTextAssignment_5() { return cTextAssignment_5; }

		//STRING
		public RuleCall getTextSTRINGTerminalRuleCall_5_0() { return cTextSTRINGTerminalRuleCall_5_0; }

		//("size" size=Size)?
		public Group getGroup_6() { return cGroup_6; }

		//"size"
		public Keyword getSizeKeyword_6_0() { return cSizeKeyword_6_0; }

		//size=Size
		public Assignment getSizeAssignment_6_1() { return cSizeAssignment_6_1; }

		//Size
		public RuleCall getSizeSizeParserRuleCall_6_1_0() { return cSizeSizeParserRuleCall_6_1_0; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_7() { return cRightCurlyBracketKeyword_7; }
	}

	public class SizeElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Size");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Assignment cXAssignment_0 = (Assignment)cGroup.eContents().get(0);
		private final RuleCall cXINTTerminalRuleCall_0_0 = (RuleCall)cXAssignment_0.eContents().get(0);
		private final Keyword cCommaKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cYAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cYINTTerminalRuleCall_2_0 = (RuleCall)cYAssignment_2.eContents().get(0);
		
		//Size:
		//	x=INT "," y=INT;
		public ParserRule getRule() { return rule; }

		//x=INT "," y=INT
		public Group getGroup() { return cGroup; }

		//x=INT
		public Assignment getXAssignment_0() { return cXAssignment_0; }

		//INT
		public RuleCall getXINTTerminalRuleCall_0_0() { return cXINTTerminalRuleCall_0_0; }

		//","
		public Keyword getCommaKeyword_1() { return cCommaKeyword_1; }

		//y=INT
		public Assignment getYAssignment_2() { return cYAssignment_2; }

		//INT
		public RuleCall getYINTTerminalRuleCall_2_0() { return cYINTTerminalRuleCall_2_0; }
	}

	public class CommandElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Command");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cCommandKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		
		/// * Commands / Handlers * / Command:
		//	"command" name=ID;
		public ParserRule getRule() { return rule; }

		//"command" name=ID
		public Group getGroup() { return cGroup; }

		//"command"
		public Keyword getCommandKeyword_0() { return cCommandKeyword_0; }

		//name=ID
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }
	}

	public class BindingElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Binding");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cBindKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cCommandAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final CrossReference cCommandCommandCrossReference_1_0 = (CrossReference)cCommandAssignment_1.eContents().get(0);
		private final RuleCall cCommandCommandIDTerminalRuleCall_1_0_1 = (RuleCall)cCommandCommandCrossReference_1_0.eContents().get(1);
		private final Keyword cKeyKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Assignment cKeyAssignment_3 = (Assignment)cGroup.eContents().get(3);
		private final RuleCall cKeySTRINGTerminalRuleCall_3_0 = (RuleCall)cKeyAssignment_3.eContents().get(0);
		
		//Binding:
		//	"bind" command=[Command] "key" key=STRING;
		public ParserRule getRule() { return rule; }

		//"bind" command=[Command] "key" key=STRING
		public Group getGroup() { return cGroup; }

		//"bind"
		public Keyword getBindKeyword_0() { return cBindKeyword_0; }

		//command=[Command]
		public Assignment getCommandAssignment_1() { return cCommandAssignment_1; }

		//[Command]
		public CrossReference getCommandCommandCrossReference_1_0() { return cCommandCommandCrossReference_1_0; }

		//ID
		public RuleCall getCommandCommandIDTerminalRuleCall_1_0_1() { return cCommandCommandIDTerminalRuleCall_1_0_1; }

		//"key"
		public Keyword getKeyKeyword_2() { return cKeyKeyword_2; }

		//key=STRING
		public Assignment getKeyAssignment_3() { return cKeyAssignment_3; }

		//STRING
		public RuleCall getKeySTRINGTerminalRuleCall_3_0() { return cKeySTRINGTerminalRuleCall_3_0; }
	}

	public class AbsMenuElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "AbsMenu");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final RuleCall cMenuParserRuleCall_0 = (RuleCall)cAlternatives.eContents().get(0);
		private final RuleCall cHandledMenuItemParserRuleCall_1 = (RuleCall)cAlternatives.eContents().get(1);
		private final RuleCall cDirectMenuItemParserRuleCall_2 = (RuleCall)cAlternatives.eContents().get(2);
		
		////| MenuSeparator;
		//AbsMenu:
		//	Menu | HandledMenuItem | DirectMenuItem;
		public ParserRule getRule() { return rule; }

		//Menu | HandledMenuItem | DirectMenuItem
		public Alternatives getAlternatives() { return cAlternatives; }

		//Menu
		public RuleCall getMenuParserRuleCall_0() { return cMenuParserRuleCall_0; }

		//HandledMenuItem
		public RuleCall getHandledMenuItemParserRuleCall_1() { return cHandledMenuItemParserRuleCall_1; }

		//DirectMenuItem
		public RuleCall getDirectMenuItemParserRuleCall_2() { return cDirectMenuItemParserRuleCall_2; }
	}

	public class MenuElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Menu");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cMenuKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Assignment cItemsAssignment_3 = (Assignment)cGroup.eContents().get(3);
		private final RuleCall cItemsAbsMenuParserRuleCall_3_0 = (RuleCall)cItemsAssignment_3.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
		
		//Menu:
		//	"menu" name=ID "{" items+=AbsMenu* "}";
		public ParserRule getRule() { return rule; }

		//"menu" name=ID "{" items+=AbsMenu* "}"
		public Group getGroup() { return cGroup; }

		//"menu"
		public Keyword getMenuKeyword_0() { return cMenuKeyword_0; }

		//name=ID
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }

		//items+=AbsMenu*
		public Assignment getItemsAssignment_3() { return cItemsAssignment_3; }

		//AbsMenu
		public RuleCall getItemsAbsMenuParserRuleCall_3_0() { return cItemsAbsMenuParserRuleCall_3_0; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_4() { return cRightCurlyBracketKeyword_4; }
	}

	public class HandledMenuItemElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "HandledMenuItem");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cItemKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Keyword cCommandKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Assignment cCommandAssignment_3 = (Assignment)cGroup.eContents().get(3);
		private final CrossReference cCommandCommandCrossReference_3_0 = (CrossReference)cCommandAssignment_3.eContents().get(0);
		private final RuleCall cCommandCommandIDTerminalRuleCall_3_0_1 = (RuleCall)cCommandCommandCrossReference_3_0.eContents().get(1);
		private final Keyword cIconfileKeyword_4 = (Keyword)cGroup.eContents().get(4);
		private final Assignment cIconAssignment_5 = (Assignment)cGroup.eContents().get(5);
		private final RuleCall cIconSTRINGTerminalRuleCall_5_0 = (RuleCall)cIconAssignment_5.eContents().get(0);
		
		//HandledMenuItem:
		//	"item" name=ID "command" command=[Command] "iconfile" icon=STRING;
		public ParserRule getRule() { return rule; }

		//"item" name=ID "command" command=[Command] "iconfile" icon=STRING
		public Group getGroup() { return cGroup; }

		//"item"
		public Keyword getItemKeyword_0() { return cItemKeyword_0; }

		//name=ID
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }

		//"command"
		public Keyword getCommandKeyword_2() { return cCommandKeyword_2; }

		//command=[Command]
		public Assignment getCommandAssignment_3() { return cCommandAssignment_3; }

		//[Command]
		public CrossReference getCommandCommandCrossReference_3_0() { return cCommandCommandCrossReference_3_0; }

		//ID
		public RuleCall getCommandCommandIDTerminalRuleCall_3_0_1() { return cCommandCommandIDTerminalRuleCall_3_0_1; }

		//"iconfile"
		public Keyword getIconfileKeyword_4() { return cIconfileKeyword_4; }

		//icon=STRING
		public Assignment getIconAssignment_5() { return cIconAssignment_5; }

		//STRING
		public RuleCall getIconSTRINGTerminalRuleCall_5_0() { return cIconSTRINGTerminalRuleCall_5_0; }
	}

	public class DirectMenuItemElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "DirectMenuItem");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cItemKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Keyword cClassKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Assignment cClassAssignment_3 = (Assignment)cGroup.eContents().get(3);
		private final RuleCall cClassSTRINGTerminalRuleCall_3_0 = (RuleCall)cClassAssignment_3.eContents().get(0);
		private final Keyword cIconfileKeyword_4 = (Keyword)cGroup.eContents().get(4);
		private final Assignment cIconAssignment_5 = (Assignment)cGroup.eContents().get(5);
		private final RuleCall cIconSTRINGTerminalRuleCall_5_0 = (RuleCall)cIconAssignment_5.eContents().get(0);
		
		//DirectMenuItem:
		//	"item" name=ID "class" class=STRING "iconfile" icon=STRING;
		public ParserRule getRule() { return rule; }

		//"item" name=ID "class" class=STRING "iconfile" icon=STRING
		public Group getGroup() { return cGroup; }

		//"item"
		public Keyword getItemKeyword_0() { return cItemKeyword_0; }

		//name=ID
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }

		//"class"
		public Keyword getClassKeyword_2() { return cClassKeyword_2; }

		//class=STRING
		public Assignment getClassAssignment_3() { return cClassAssignment_3; }

		//STRING
		public RuleCall getClassSTRINGTerminalRuleCall_3_0() { return cClassSTRINGTerminalRuleCall_3_0; }

		//"iconfile"
		public Keyword getIconfileKeyword_4() { return cIconfileKeyword_4; }

		//icon=STRING
		public Assignment getIconAssignment_5() { return cIconAssignment_5; }

		//STRING
		public RuleCall getIconSTRINGTerminalRuleCall_5_0() { return cIconSTRINGTerminalRuleCall_5_0; }
	}

	public class MenuSeparatorElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "MenuSeparator");
		private final Keyword cSeparatorKeyword = (Keyword)rule.eContents().get(1);
		
		//MenuSeparator returns ecore::EString:
		//	"separator";
		public ParserRule getRule() { return rule; }

		//"separator"
		public Keyword getSeparatorKeyword() { return cSeparatorKeyword; }
	}

	public class ToolBarElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ToolBar");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cToolbarKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Assignment cItemAssignment_3 = (Assignment)cGroup.eContents().get(3);
		private final RuleCall cItemToolItemParserRuleCall_3_0 = (RuleCall)cItemAssignment_3.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
		
		//ToolBar:
		//	"toolbar" name=ID "{" item+=ToolItem* "}";
		public ParserRule getRule() { return rule; }

		//"toolbar" name=ID "{" item+=ToolItem* "}"
		public Group getGroup() { return cGroup; }

		//"toolbar"
		public Keyword getToolbarKeyword_0() { return cToolbarKeyword_0; }

		//name=ID
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_2() { return cLeftCurlyBracketKeyword_2; }

		//item+=ToolItem*
		public Assignment getItemAssignment_3() { return cItemAssignment_3; }

		//ToolItem
		public RuleCall getItemToolItemParserRuleCall_3_0() { return cItemToolItemParserRuleCall_3_0; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_4() { return cRightCurlyBracketKeyword_4; }
	}

	public class ToolItemElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ToolItem");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cItemKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Keyword cCommandKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Assignment cCommandAssignment_3 = (Assignment)cGroup.eContents().get(3);
		private final CrossReference cCommandCommandCrossReference_3_0 = (CrossReference)cCommandAssignment_3.eContents().get(0);
		private final RuleCall cCommandCommandIDTerminalRuleCall_3_0_1 = (RuleCall)cCommandCommandCrossReference_3_0.eContents().get(1);
		private final Keyword cIconfileKeyword_4 = (Keyword)cGroup.eContents().get(4);
		private final Assignment cIconAssignment_5 = (Assignment)cGroup.eContents().get(5);
		private final RuleCall cIconSTRINGTerminalRuleCall_5_0 = (RuleCall)cIconAssignment_5.eContents().get(0);
		private final Assignment cEnableAssignment_6 = (Assignment)cGroup.eContents().get(6);
		private final Alternatives cEnableAlternatives_6_0 = (Alternatives)cEnableAssignment_6.eContents().get(0);
		private final Keyword cEnableEnableKeyword_6_0_0 = (Keyword)cEnableAlternatives_6_0.eContents().get(0);
		private final Keyword cEnableDisableKeyword_6_0_1 = (Keyword)cEnableAlternatives_6_0.eContents().get(1);
		
		//ToolItem:
		//	"item" name=ID "command" command=[Command] "iconfile" icon=STRING enable=("enable" | "disable")?;
		public ParserRule getRule() { return rule; }

		//"item" name=ID "command" command=[Command] "iconfile" icon=STRING enable=("enable" | "disable")?
		public Group getGroup() { return cGroup; }

		//"item"
		public Keyword getItemKeyword_0() { return cItemKeyword_0; }

		//name=ID
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }

		//"command"
		public Keyword getCommandKeyword_2() { return cCommandKeyword_2; }

		//command=[Command]
		public Assignment getCommandAssignment_3() { return cCommandAssignment_3; }

		//[Command]
		public CrossReference getCommandCommandCrossReference_3_0() { return cCommandCommandCrossReference_3_0; }

		//ID
		public RuleCall getCommandCommandIDTerminalRuleCall_3_0_1() { return cCommandCommandIDTerminalRuleCall_3_0_1; }

		//"iconfile"
		public Keyword getIconfileKeyword_4() { return cIconfileKeyword_4; }

		//icon=STRING
		public Assignment getIconAssignment_5() { return cIconAssignment_5; }

		//STRING
		public RuleCall getIconSTRINGTerminalRuleCall_5_0() { return cIconSTRINGTerminalRuleCall_5_0; }

		//enable=("enable" | "disable")?
		public Assignment getEnableAssignment_6() { return cEnableAssignment_6; }

		//"enable" | "disable"
		public Alternatives getEnableAlternatives_6_0() { return cEnableAlternatives_6_0; }

		//"enable"
		public Keyword getEnableEnableKeyword_6_0_0() { return cEnableEnableKeyword_6_0_0; }

		//"disable"
		public Keyword getEnableDisableKeyword_6_0_1() { return cEnableDisableKeyword_6_0_1; }
	}
	
	
	private ApplicationElements pApplication;
	private AbsWindowElements pAbsWindow;
	private WindowElements pWindow;
	private TrimmedWindowElements pTrimmedWindow;
	private AbsPartElements pAbsPart;
	private PartElements pPart;
	private XWTPartElements pXWTPart;
	private LayoutElements pLayout;
	private AbsControlsElements pAbsControls;
	private ControlsElements pControls;
	private BrowserElements pBrowser;
	private ButtonElements pButton;
	private CComboElements pCCombo;
	private CLabelElements pCLabel;
	private ComboElements pCombo;
	private DateTimeElements pDateTime;
	private LabelElements pLabel;
	private LinkElements pLink;
	private ListElements pList;
	private ProgressBarElements pProgressBar;
	private SashElements pSash;
	private ScaleElements pScale;
	private SliderElements pSlider;
	private SpinnerElements pSpinner;
	private SeparatorElements pSeparator;
	private StyledTextElements pStyledText;
	private TextElements pText;
	private SizeElements pSize;
	private CommandElements pCommand;
	private BindingElements pBinding;
	private AbsMenuElements pAbsMenu;
	private MenuElements pMenu;
	private HandledMenuItemElements pHandledMenuItem;
	private DirectMenuItemElements pDirectMenuItem;
	private MenuSeparatorElements pMenuSeparator;
	private ToolBarElements pToolBar;
	private ToolItemElements pToolItem;
	
	private final GrammarProvider grammarProvider;

	private TerminalsGrammarAccess gaTerminals;

	@Inject
	public E4DslGrammarAccess(GrammarProvider grammarProvider,
		TerminalsGrammarAccess gaTerminals) {
		this.grammarProvider = grammarProvider;
		this.gaTerminals = gaTerminals;
	}
	
	public Grammar getGrammar() {	
		return grammarProvider.getGrammar(this);
	}
	

	public TerminalsGrammarAccess getTerminalsGrammarAccess() {
		return gaTerminals;
	}

	
	//Application:
	//	"application" name=ID "{" windows+=AbsWindow* ("commands" "{" commands+=Command* "}")? ("bindings" "{"
	//	bindings+=Binding* "}")? "}";
	public ApplicationElements getApplicationAccess() {
		return (pApplication != null) ? pApplication : (pApplication = new ApplicationElements());
	}
	
	public ParserRule getApplicationRule() {
		return getApplicationAccess().getRule();
	}

	//AbsWindow:
	//	Window | TrimmedWindow;
	public AbsWindowElements getAbsWindowAccess() {
		return (pAbsWindow != null) ? pAbsWindow : (pAbsWindow = new AbsWindowElements());
	}
	
	public ParserRule getAbsWindowRule() {
		return getAbsWindowAccess().getRule();
	}

	//Window:
	//	"window" name=ID "{" parts+=Part* "}";
	public WindowElements getWindowAccess() {
		return (pWindow != null) ? pWindow : (pWindow = new WindowElements());
	}
	
	public ParserRule getWindowRule() {
		return getWindowAccess().getRule();
	}

	//TrimmedWindow:
	//	"trimmedwindow" name=ID "{" parts+=AbsPart* ("mainmenu" "{" menu+=AbsMenu* "}")? ("trimbars" "{" toolbars+=ToolBar*
	//	"}")? "}";
	public TrimmedWindowElements getTrimmedWindowAccess() {
		return (pTrimmedWindow != null) ? pTrimmedWindow : (pTrimmedWindow = new TrimmedWindowElements());
	}
	
	public ParserRule getTrimmedWindowRule() {
		return getTrimmedWindowAccess().getRule();
	}

	//AbsPart:
	//	Part | XWTPart;
	public AbsPartElements getAbsPartAccess() {
		return (pAbsPart != null) ? pAbsPart : (pAbsPart = new AbsPartElements());
	}
	
	public ParserRule getAbsPartRule() {
		return getAbsPartAccess().getRule();
	}

	//Part:
	//	"part" name=ID "{" layout=Layout? controls+=Controls* "}";
	public PartElements getPartAccess() {
		return (pPart != null) ? pPart : (pPart = new PartElements());
	}
	
	public ParserRule getPartRule() {
		return getPartAccess().getRule();
	}

	//XWTPart:
	//	"xwtpart" name=ID "{" layout=Layout? controls+=AbsControls* "}";
	public XWTPartElements getXWTPartAccess() {
		return (pXWTPart != null) ? pXWTPart : (pXWTPart = new XWTPartElements());
	}
	
	public ParserRule getXWTPartRule() {
		return getXWTPartAccess().getRule();
	}

	//Layout:
	//	"layout" layout=("none" | "fill" | "form" | "grid" | "row" | "stack");
	public LayoutElements getLayoutAccess() {
		return (pLayout != null) ? pLayout : (pLayout = new LayoutElements());
	}
	
	public ParserRule getLayoutRule() {
		return getLayoutAccess().getRule();
	}

	//AbsControls: / *Container|* / Controls;
	public AbsControlsElements getAbsControlsAccess() {
		return (pAbsControls != null) ? pAbsControls : (pAbsControls = new AbsControlsElements());
	}
	
	public ParserRule getAbsControlsRule() {
		return getAbsControlsAccess().getRule();
	}

	////Container:
	////	Composite|ScrolledComposite|Canvas|Group|SashForm|TabFolder|CtabFolder;
	//Controls:
	//	Button | Browser | CCombo | CLabel | Combo | DateTime | Label | Link | List | ProgressBar | Sash | Scale | Slider |
	//	Spinner | Separator | StyledText | Text;
	public ControlsElements getControlsAccess() {
		return (pControls != null) ? pControls : (pControls = new ControlsElements());
	}
	
	public ParserRule getControlsRule() {
		return getControlsAccess().getRule();
	}

	//Browser:
	//	{Browser} "browser" name=ID? "{" "text" text=STRING? "}";
	public BrowserElements getBrowserAccess() {
		return (pBrowser != null) ? pBrowser : (pBrowser = new BrowserElements());
	}
	
	public ParserRule getBrowserRule() {
		return getBrowserAccess().getRule();
	}

	//Button:
	//	{Button} "button" name=ID? "{" "text" text=STRING? ("size" size=Size)? "}";
	public ButtonElements getButtonAccess() {
		return (pButton != null) ? pButton : (pButton = new ButtonElements());
	}
	
	public ParserRule getButtonRule() {
		return getButtonAccess().getRule();
	}

	//CCombo:
	//	{CCombo} "ccombo" name=ID? "{" "}";
	public CComboElements getCComboAccess() {
		return (pCCombo != null) ? pCCombo : (pCCombo = new CComboElements());
	}
	
	public ParserRule getCComboRule() {
		return getCComboAccess().getRule();
	}

	//CLabel:
	//	{CLabel} "clabel" name=ID? "{" "text" text=STRING? "}";
	public CLabelElements getCLabelAccess() {
		return (pCLabel != null) ? pCLabel : (pCLabel = new CLabelElements());
	}
	
	public ParserRule getCLabelRule() {
		return getCLabelAccess().getRule();
	}

	//Combo:
	//	{Combo} "combo" name=ID? "{" "}";
	public ComboElements getComboAccess() {
		return (pCombo != null) ? pCombo : (pCombo = new ComboElements());
	}
	
	public ParserRule getComboRule() {
		return getComboAccess().getRule();
	}

	//DateTime:
	//	{DateTime} "datetime" name=ID? "{" "}";
	public DateTimeElements getDateTimeAccess() {
		return (pDateTime != null) ? pDateTime : (pDateTime = new DateTimeElements());
	}
	
	public ParserRule getDateTimeRule() {
		return getDateTimeAccess().getRule();
	}

	//Label:
	//	{Label} "label" name=ID? "{" "text" text=STRING? "}";
	public LabelElements getLabelAccess() {
		return (pLabel != null) ? pLabel : (pLabel = new LabelElements());
	}
	
	public ParserRule getLabelRule() {
		return getLabelAccess().getRule();
	}

	//Link:
	//	{Link} "link" name=ID? "{" "}";
	public LinkElements getLinkAccess() {
		return (pLink != null) ? pLink : (pLink = new LinkElements());
	}
	
	public ParserRule getLinkRule() {
		return getLinkAccess().getRule();
	}

	//List:
	//	{List} "list" name=ID? "{" "}";
	public ListElements getListAccess() {
		return (pList != null) ? pList : (pList = new ListElements());
	}
	
	public ParserRule getListRule() {
		return getListAccess().getRule();
	}

	//ProgressBar:
	//	{ProgressBar} "progressbar" name=ID? "{" "}";
	public ProgressBarElements getProgressBarAccess() {
		return (pProgressBar != null) ? pProgressBar : (pProgressBar = new ProgressBarElements());
	}
	
	public ParserRule getProgressBarRule() {
		return getProgressBarAccess().getRule();
	}

	//Sash:
	//	{Sash} "sash" name=ID? "{" "}";
	public SashElements getSashAccess() {
		return (pSash != null) ? pSash : (pSash = new SashElements());
	}
	
	public ParserRule getSashRule() {
		return getSashAccess().getRule();
	}

	//Scale:
	//	{Scale} "scale" name=ID? "{" "}";
	public ScaleElements getScaleAccess() {
		return (pScale != null) ? pScale : (pScale = new ScaleElements());
	}
	
	public ParserRule getScaleRule() {
		return getScaleAccess().getRule();
	}

	//Slider:
	//	{Slider} "slider" name=ID? "{" "}";
	public SliderElements getSliderAccess() {
		return (pSlider != null) ? pSlider : (pSlider = new SliderElements());
	}
	
	public ParserRule getSliderRule() {
		return getSliderAccess().getRule();
	}

	//Spinner:
	//	{Spinner} "spinner" name=ID? "{" "}";
	public SpinnerElements getSpinnerAccess() {
		return (pSpinner != null) ? pSpinner : (pSpinner = new SpinnerElements());
	}
	
	public ParserRule getSpinnerRule() {
		return getSpinnerAccess().getRule();
	}

	//Separator:
	//	{Separator} "separator" name=ID? "{" "}";
	public SeparatorElements getSeparatorAccess() {
		return (pSeparator != null) ? pSeparator : (pSeparator = new SeparatorElements());
	}
	
	public ParserRule getSeparatorRule() {
		return getSeparatorAccess().getRule();
	}

	//StyledText:
	//	{StyledText} "styledtext" name=ID? "{" "text" text=STRING? "}";
	public StyledTextElements getStyledTextAccess() {
		return (pStyledText != null) ? pStyledText : (pStyledText = new StyledTextElements());
	}
	
	public ParserRule getStyledTextRule() {
		return getStyledTextAccess().getRule();
	}

	//Text:
	//	{Text} "textfield" name=ID? "{" "text" text=STRING? ("size" size=Size)? "}";
	public TextElements getTextAccess() {
		return (pText != null) ? pText : (pText = new TextElements());
	}
	
	public ParserRule getTextRule() {
		return getTextAccess().getRule();
	}

	//Size:
	//	x=INT "," y=INT;
	public SizeElements getSizeAccess() {
		return (pSize != null) ? pSize : (pSize = new SizeElements());
	}
	
	public ParserRule getSizeRule() {
		return getSizeAccess().getRule();
	}

	/// * Commands / Handlers * / Command:
	//	"command" name=ID;
	public CommandElements getCommandAccess() {
		return (pCommand != null) ? pCommand : (pCommand = new CommandElements());
	}
	
	public ParserRule getCommandRule() {
		return getCommandAccess().getRule();
	}

	//Binding:
	//	"bind" command=[Command] "key" key=STRING;
	public BindingElements getBindingAccess() {
		return (pBinding != null) ? pBinding : (pBinding = new BindingElements());
	}
	
	public ParserRule getBindingRule() {
		return getBindingAccess().getRule();
	}

	////| MenuSeparator;
	//AbsMenu:
	//	Menu | HandledMenuItem | DirectMenuItem;
	public AbsMenuElements getAbsMenuAccess() {
		return (pAbsMenu != null) ? pAbsMenu : (pAbsMenu = new AbsMenuElements());
	}
	
	public ParserRule getAbsMenuRule() {
		return getAbsMenuAccess().getRule();
	}

	//Menu:
	//	"menu" name=ID "{" items+=AbsMenu* "}";
	public MenuElements getMenuAccess() {
		return (pMenu != null) ? pMenu : (pMenu = new MenuElements());
	}
	
	public ParserRule getMenuRule() {
		return getMenuAccess().getRule();
	}

	//HandledMenuItem:
	//	"item" name=ID "command" command=[Command] "iconfile" icon=STRING;
	public HandledMenuItemElements getHandledMenuItemAccess() {
		return (pHandledMenuItem != null) ? pHandledMenuItem : (pHandledMenuItem = new HandledMenuItemElements());
	}
	
	public ParserRule getHandledMenuItemRule() {
		return getHandledMenuItemAccess().getRule();
	}

	//DirectMenuItem:
	//	"item" name=ID "class" class=STRING "iconfile" icon=STRING;
	public DirectMenuItemElements getDirectMenuItemAccess() {
		return (pDirectMenuItem != null) ? pDirectMenuItem : (pDirectMenuItem = new DirectMenuItemElements());
	}
	
	public ParserRule getDirectMenuItemRule() {
		return getDirectMenuItemAccess().getRule();
	}

	//MenuSeparator returns ecore::EString:
	//	"separator";
	public MenuSeparatorElements getMenuSeparatorAccess() {
		return (pMenuSeparator != null) ? pMenuSeparator : (pMenuSeparator = new MenuSeparatorElements());
	}
	
	public ParserRule getMenuSeparatorRule() {
		return getMenuSeparatorAccess().getRule();
	}

	//ToolBar:
	//	"toolbar" name=ID "{" item+=ToolItem* "}";
	public ToolBarElements getToolBarAccess() {
		return (pToolBar != null) ? pToolBar : (pToolBar = new ToolBarElements());
	}
	
	public ParserRule getToolBarRule() {
		return getToolBarAccess().getRule();
	}

	//ToolItem:
	//	"item" name=ID "command" command=[Command] "iconfile" icon=STRING enable=("enable" | "disable")?;
	public ToolItemElements getToolItemAccess() {
		return (pToolItem != null) ? pToolItem : (pToolItem = new ToolItemElements());
	}
	
	public ParserRule getToolItemRule() {
		return getToolItemAccess().getRule();
	}

	//terminal ID:
	//	"^"? ("a".."z" | "A".."Z" | "_") ("a".."z" | "A".."Z" | "_" | "0".."9")*;
	public TerminalRule getIDRule() {
		return gaTerminals.getIDRule();
	} 

	//terminal INT returns ecore::EInt:
	//	"0".."9"+;
	public TerminalRule getINTRule() {
		return gaTerminals.getINTRule();
	} 

	//terminal STRING:
	//	"\"" ("\\" ("b" | "t" | "n" | "f" | "r" | "\"" | "\'" | "\\") | !("\\" | "\""))* "\"" | "\'" ("\\" ("b" | "t" | "n" |
	//	"f" | "r" | "\"" | "\'" | "\\") | !("\\" | "\'"))* "\'";
	public TerminalRule getSTRINGRule() {
		return gaTerminals.getSTRINGRule();
	} 

	//terminal ML_COMMENT:
	//	"/ *"->"* /";
	public TerminalRule getML_COMMENTRule() {
		return gaTerminals.getML_COMMENTRule();
	} 

	//terminal SL_COMMENT:
	//	"//" !("\n" | "\r")* ("\r"? "\n")?;
	public TerminalRule getSL_COMMENTRule() {
		return gaTerminals.getSL_COMMENTRule();
	} 

	//terminal WS:
	//	(" " | "\t" | "\r" | "\n")+;
	public TerminalRule getWSRule() {
		return gaTerminals.getWSRule();
	} 

	//terminal ANY_OTHER:
	//	.;
	public TerminalRule getANY_OTHERRule() {
		return gaTerminals.getANY_OTHERRule();
	} 
}
