/*
* generated by Xtext
*/
grammar InternalSitemap;

options {
	superClass=AbstractInternalContentAssistParser;
	
}

@lexer::header {
package org.openhab.model.ui.contentassist.antlr.internal;

// Hack: Use our own Lexer superclass by means of import. 
// Currently there is no other way to specify the superclass for the lexer.
import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.Lexer;
}

@parser::header {
package org.openhab.model.ui.contentassist.antlr.internal; 

import java.io.InputStream;
import org.eclipse.xtext.*;
import org.eclipse.xtext.parser.*;
import org.eclipse.xtext.parser.impl.*;
import org.eclipse.xtext.parsetree.*;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.parser.antlr.XtextTokenStream;
import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.DFA;
import org.openhab.model.services.SitemapGrammarAccess;

}

@parser::members {
 
 	private SitemapGrammarAccess grammarAccess;
 	
    public void setGrammarAccess(SitemapGrammarAccess grammarAccess) {
    	this.grammarAccess = grammarAccess;
    }
    
    @Override
    protected Grammar getGrammar() {
    	return grammarAccess.getGrammar();
    }
    
    @Override
    protected String getValueForTokenName(String tokenName) {
    	return tokenName;
    }

}




// Entry rule entryRuleSitemapModel
entryRuleSitemapModel 
:
{ before(grammarAccess.getSitemapModelRule()); }
	 ruleSitemapModel
{ after(grammarAccess.getSitemapModelRule()); } 
	 EOF 
;

// Rule SitemapModel
ruleSitemapModel
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getSitemapModelAccess().getGroup()); }
(rule__SitemapModel__Group__0)
{ after(grammarAccess.getSitemapModelAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleSitemap
entryRuleSitemap 
:
{ before(grammarAccess.getSitemapRule()); }
	 ruleSitemap
{ after(grammarAccess.getSitemapRule()); } 
	 EOF 
;

// Rule Sitemap
ruleSitemap
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getSitemapAccess().getGroup()); }
(rule__Sitemap__Group__0)
{ after(grammarAccess.getSitemapAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleWidget
entryRuleWidget 
:
{ before(grammarAccess.getWidgetRule()); }
	 ruleWidget
{ after(grammarAccess.getWidgetRule()); } 
	 EOF 
;

// Rule Widget
ruleWidget
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getWidgetAccess().getAlternatives()); }
(rule__Widget__Alternatives)
{ after(grammarAccess.getWidgetAccess().getAlternatives()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleLinkableWidget
entryRuleLinkableWidget 
:
{ before(grammarAccess.getLinkableWidgetRule()); }
	 ruleLinkableWidget
{ after(grammarAccess.getLinkableWidgetRule()); } 
	 EOF 
;

// Rule LinkableWidget
ruleLinkableWidget
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getLinkableWidgetAccess().getGroup()); }
(rule__LinkableWidget__Group__0)
{ after(grammarAccess.getLinkableWidgetAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleFrame
entryRuleFrame 
:
{ before(grammarAccess.getFrameRule()); }
	 ruleFrame
{ after(grammarAccess.getFrameRule()); } 
	 EOF 
;

// Rule Frame
ruleFrame
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getFrameAccess().getGroup()); }
(rule__Frame__Group__0)
{ after(grammarAccess.getFrameAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleText
entryRuleText 
:
{ before(grammarAccess.getTextRule()); }
	 ruleText
{ after(grammarAccess.getTextRule()); } 
	 EOF 
;

// Rule Text
ruleText
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getTextAccess().getGroup()); }
(rule__Text__Group__0)
{ after(grammarAccess.getTextAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleGroup
entryRuleGroup 
:
{ before(grammarAccess.getGroupRule()); }
	 ruleGroup
{ after(grammarAccess.getGroupRule()); } 
	 EOF 
;

// Rule Group
ruleGroup
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getGroupAccess().getGroup()); }
(rule__Group__Group__0)
{ after(grammarAccess.getGroupAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleImage
entryRuleImage 
:
{ before(grammarAccess.getImageRule()); }
	 ruleImage
{ after(grammarAccess.getImageRule()); } 
	 EOF 
;

// Rule Image
ruleImage
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getImageAccess().getGroup()); }
(rule__Image__Group__0)
{ after(grammarAccess.getImageAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleSwitch
entryRuleSwitch 
:
{ before(grammarAccess.getSwitchRule()); }
	 ruleSwitch
{ after(grammarAccess.getSwitchRule()); } 
	 EOF 
;

// Rule Switch
ruleSwitch
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getSwitchAccess().getGroup()); }
(rule__Switch__Group__0)
{ after(grammarAccess.getSwitchAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleSlider
entryRuleSlider 
:
{ before(grammarAccess.getSliderRule()); }
	 ruleSlider
{ after(grammarAccess.getSliderRule()); } 
	 EOF 
;

// Rule Slider
ruleSlider
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getSliderAccess().getGroup()); }
(rule__Slider__Group__0)
{ after(grammarAccess.getSliderAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleSelection
entryRuleSelection 
:
{ before(grammarAccess.getSelectionRule()); }
	 ruleSelection
{ after(grammarAccess.getSelectionRule()); } 
	 EOF 
;

// Rule Selection
ruleSelection
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getSelectionAccess().getGroup()); }
(rule__Selection__Group__0)
{ after(grammarAccess.getSelectionAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleList
entryRuleList 
:
{ before(grammarAccess.getListRule()); }
	 ruleList
{ after(grammarAccess.getListRule()); } 
	 EOF 
;

// Rule List
ruleList
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getListAccess().getGroup()); }
(rule__List__Group__0)
{ after(grammarAccess.getListAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}



// Entry rule entryRuleMapping
entryRuleMapping 
:
{ before(grammarAccess.getMappingRule()); }
	 ruleMapping
{ after(grammarAccess.getMappingRule()); } 
	 EOF 
;

// Rule Mapping
ruleMapping
    @init {
		int stackSize = keepStackSize();
    }
	:
(
{ before(grammarAccess.getMappingAccess().getGroup()); }
(rule__Mapping__Group__0)
{ after(grammarAccess.getMappingAccess().getGroup()); }
)

;
finally {
	restoreStackSize(stackSize);
}




rule__Widget__Alternatives
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getWidgetAccess().getLinkableWidgetParserRuleCall_0()); }
	ruleLinkableWidget
{ after(grammarAccess.getWidgetAccess().getLinkableWidgetParserRuleCall_0()); }
)

    |(
{ before(grammarAccess.getWidgetAccess().getAlternatives_1()); }
(rule__Widget__Alternatives_1)
{ after(grammarAccess.getWidgetAccess().getAlternatives_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__Widget__Alternatives_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getWidgetAccess().getSwitchParserRuleCall_1_0()); }
	ruleSwitch
{ after(grammarAccess.getWidgetAccess().getSwitchParserRuleCall_1_0()); }
)

    |(
{ before(grammarAccess.getWidgetAccess().getSelectionParserRuleCall_1_1()); }
	ruleSelection
{ after(grammarAccess.getWidgetAccess().getSelectionParserRuleCall_1_1()); }
)

    |(
{ before(grammarAccess.getWidgetAccess().getSliderParserRuleCall_1_2()); }
	ruleSlider
{ after(grammarAccess.getWidgetAccess().getSliderParserRuleCall_1_2()); }
)

    |(
{ before(grammarAccess.getWidgetAccess().getListParserRuleCall_1_3()); }
	ruleList
{ after(grammarAccess.getWidgetAccess().getListParserRuleCall_1_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__LinkableWidget__Alternatives_0
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getLinkableWidgetAccess().getTextParserRuleCall_0_0()); }
	ruleText
{ after(grammarAccess.getLinkableWidgetAccess().getTextParserRuleCall_0_0()); }
)

    |(
{ before(grammarAccess.getLinkableWidgetAccess().getGroupParserRuleCall_0_1()); }
	ruleGroup
{ after(grammarAccess.getLinkableWidgetAccess().getGroupParserRuleCall_0_1()); }
)

    |(
{ before(grammarAccess.getLinkableWidgetAccess().getImageParserRuleCall_0_2()); }
	ruleImage
{ after(grammarAccess.getLinkableWidgetAccess().getImageParserRuleCall_0_2()); }
)

    |(
{ before(grammarAccess.getLinkableWidgetAccess().getFrameParserRuleCall_0_3()); }
	ruleFrame
{ after(grammarAccess.getLinkableWidgetAccess().getFrameParserRuleCall_0_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__LinkableWidget__LabelAlternatives_1_1_0
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getLinkableWidgetAccess().getLabelIDTerminalRuleCall_1_1_0_0()); }
	RULE_ID
{ after(grammarAccess.getLinkableWidgetAccess().getLabelIDTerminalRuleCall_1_1_0_0()); }
)

    |(
{ before(grammarAccess.getLinkableWidgetAccess().getLabelSTRINGTerminalRuleCall_1_1_0_1()); }
	RULE_STRING
{ after(grammarAccess.getLinkableWidgetAccess().getLabelSTRINGTerminalRuleCall_1_1_0_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__LinkableWidget__IconAlternatives_2_1_0
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getLinkableWidgetAccess().getIconIDTerminalRuleCall_2_1_0_0()); }
	RULE_ID
{ after(grammarAccess.getLinkableWidgetAccess().getIconIDTerminalRuleCall_2_1_0_0()); }
)

    |(
{ before(grammarAccess.getLinkableWidgetAccess().getIconSTRINGTerminalRuleCall_2_1_0_1()); }
	RULE_STRING
{ after(grammarAccess.getLinkableWidgetAccess().getIconSTRINGTerminalRuleCall_2_1_0_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__Switch__LabelAlternatives_2_1_0
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSwitchAccess().getLabelIDTerminalRuleCall_2_1_0_0()); }
	RULE_ID
{ after(grammarAccess.getSwitchAccess().getLabelIDTerminalRuleCall_2_1_0_0()); }
)

    |(
{ before(grammarAccess.getSwitchAccess().getLabelSTRINGTerminalRuleCall_2_1_0_1()); }
	RULE_STRING
{ after(grammarAccess.getSwitchAccess().getLabelSTRINGTerminalRuleCall_2_1_0_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__Switch__IconAlternatives_3_1_0
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSwitchAccess().getIconIDTerminalRuleCall_3_1_0_0()); }
	RULE_ID
{ after(grammarAccess.getSwitchAccess().getIconIDTerminalRuleCall_3_1_0_0()); }
)

    |(
{ before(grammarAccess.getSwitchAccess().getIconSTRINGTerminalRuleCall_3_1_0_1()); }
	RULE_STRING
{ after(grammarAccess.getSwitchAccess().getIconSTRINGTerminalRuleCall_3_1_0_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__Slider__LabelAlternatives_2_1_0
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSliderAccess().getLabelIDTerminalRuleCall_2_1_0_0()); }
	RULE_ID
{ after(grammarAccess.getSliderAccess().getLabelIDTerminalRuleCall_2_1_0_0()); }
)

    |(
{ before(grammarAccess.getSliderAccess().getLabelSTRINGTerminalRuleCall_2_1_0_1()); }
	RULE_STRING
{ after(grammarAccess.getSliderAccess().getLabelSTRINGTerminalRuleCall_2_1_0_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__Slider__IconAlternatives_3_1_0
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSliderAccess().getIconIDTerminalRuleCall_3_1_0_0()); }
	RULE_ID
{ after(grammarAccess.getSliderAccess().getIconIDTerminalRuleCall_3_1_0_0()); }
)

    |(
{ before(grammarAccess.getSliderAccess().getIconSTRINGTerminalRuleCall_3_1_0_1()); }
	RULE_STRING
{ after(grammarAccess.getSliderAccess().getIconSTRINGTerminalRuleCall_3_1_0_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__Selection__LabelAlternatives_2_1_0
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSelectionAccess().getLabelIDTerminalRuleCall_2_1_0_0()); }
	RULE_ID
{ after(grammarAccess.getSelectionAccess().getLabelIDTerminalRuleCall_2_1_0_0()); }
)

    |(
{ before(grammarAccess.getSelectionAccess().getLabelSTRINGTerminalRuleCall_2_1_0_1()); }
	RULE_STRING
{ after(grammarAccess.getSelectionAccess().getLabelSTRINGTerminalRuleCall_2_1_0_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__Selection__IconAlternatives_3_1_0
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSelectionAccess().getIconIDTerminalRuleCall_3_1_0_0()); }
	RULE_ID
{ after(grammarAccess.getSelectionAccess().getIconIDTerminalRuleCall_3_1_0_0()); }
)

    |(
{ before(grammarAccess.getSelectionAccess().getIconSTRINGTerminalRuleCall_3_1_0_1()); }
	RULE_STRING
{ after(grammarAccess.getSelectionAccess().getIconSTRINGTerminalRuleCall_3_1_0_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__List__LabelAlternatives_2_1_0
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getListAccess().getLabelIDTerminalRuleCall_2_1_0_0()); }
	RULE_ID
{ after(grammarAccess.getListAccess().getLabelIDTerminalRuleCall_2_1_0_0()); }
)

    |(
{ before(grammarAccess.getListAccess().getLabelSTRINGTerminalRuleCall_2_1_0_1()); }
	RULE_STRING
{ after(grammarAccess.getListAccess().getLabelSTRINGTerminalRuleCall_2_1_0_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__List__IconAlternatives_3_1_0
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getListAccess().getIconIDTerminalRuleCall_3_1_0_0()); }
	RULE_ID
{ after(grammarAccess.getListAccess().getIconIDTerminalRuleCall_3_1_0_0()); }
)

    |(
{ before(grammarAccess.getListAccess().getIconSTRINGTerminalRuleCall_3_1_0_1()); }
	RULE_STRING
{ after(grammarAccess.getListAccess().getIconSTRINGTerminalRuleCall_3_1_0_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__Mapping__CmdAlternatives_0_0
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getMappingAccess().getCmdIDTerminalRuleCall_0_0_0()); }
	RULE_ID
{ after(grammarAccess.getMappingAccess().getCmdIDTerminalRuleCall_0_0_0()); }
)

    |(
{ before(grammarAccess.getMappingAccess().getCmdSTRINGTerminalRuleCall_0_0_1()); }
	RULE_STRING
{ after(grammarAccess.getMappingAccess().getCmdSTRINGTerminalRuleCall_0_0_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__Mapping__LabelAlternatives_2_0
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getMappingAccess().getLabelIDTerminalRuleCall_2_0_0()); }
	RULE_ID
{ after(grammarAccess.getMappingAccess().getLabelIDTerminalRuleCall_2_0_0()); }
)

    |(
{ before(grammarAccess.getMappingAccess().getLabelSTRINGTerminalRuleCall_2_0_1()); }
	RULE_STRING
{ after(grammarAccess.getMappingAccess().getLabelSTRINGTerminalRuleCall_2_0_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}



rule__SitemapModel__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__SitemapModel__Group__0__Impl
	rule__SitemapModel__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__SitemapModel__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSitemapModelAccess().getSitemapKeyword_0()); }

	'sitemap' 

{ after(grammarAccess.getSitemapModelAccess().getSitemapKeyword_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__SitemapModel__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__SitemapModel__Group__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__SitemapModel__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSitemapModelAccess().getSitemapParserRuleCall_1()); }
	ruleSitemap
{ after(grammarAccess.getSitemapModelAccess().getSitemapParserRuleCall_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__Sitemap__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Sitemap__Group__0__Impl
	rule__Sitemap__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Sitemap__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSitemapAccess().getNameAssignment_0()); }
(rule__Sitemap__NameAssignment_0)
{ after(grammarAccess.getSitemapAccess().getNameAssignment_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Sitemap__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Sitemap__Group__1__Impl
	rule__Sitemap__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__Sitemap__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSitemapAccess().getGroup_1()); }
(rule__Sitemap__Group_1__0)?
{ after(grammarAccess.getSitemapAccess().getGroup_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Sitemap__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Sitemap__Group__2__Impl
	rule__Sitemap__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__Sitemap__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSitemapAccess().getGroup_2()); }
(rule__Sitemap__Group_2__0)?
{ after(grammarAccess.getSitemapAccess().getGroup_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Sitemap__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Sitemap__Group__3__Impl
	rule__Sitemap__Group__4
;
finally {
	restoreStackSize(stackSize);
}

rule__Sitemap__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSitemapAccess().getLeftCurlyBracketKeyword_3()); }

	'{' 

{ after(grammarAccess.getSitemapAccess().getLeftCurlyBracketKeyword_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Sitemap__Group__4
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Sitemap__Group__4__Impl
	rule__Sitemap__Group__5
;
finally {
	restoreStackSize(stackSize);
}

rule__Sitemap__Group__4__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
(
{ before(grammarAccess.getSitemapAccess().getChildrenAssignment_4()); }
(rule__Sitemap__ChildrenAssignment_4)
{ after(grammarAccess.getSitemapAccess().getChildrenAssignment_4()); }
)
(
{ before(grammarAccess.getSitemapAccess().getChildrenAssignment_4()); }
(rule__Sitemap__ChildrenAssignment_4)*
{ after(grammarAccess.getSitemapAccess().getChildrenAssignment_4()); }
)
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Sitemap__Group__5
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Sitemap__Group__5__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Sitemap__Group__5__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSitemapAccess().getRightCurlyBracketKeyword_5()); }

	'}' 

{ after(grammarAccess.getSitemapAccess().getRightCurlyBracketKeyword_5()); }
)

;
finally {
	restoreStackSize(stackSize);
}














rule__Sitemap__Group_1__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Sitemap__Group_1__0__Impl
	rule__Sitemap__Group_1__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Sitemap__Group_1__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSitemapAccess().getLabelKeyword_1_0()); }

	'label=' 

{ after(grammarAccess.getSitemapAccess().getLabelKeyword_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Sitemap__Group_1__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Sitemap__Group_1__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Sitemap__Group_1__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSitemapAccess().getLabelAssignment_1_1()); }
(rule__Sitemap__LabelAssignment_1_1)
{ after(grammarAccess.getSitemapAccess().getLabelAssignment_1_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__Sitemap__Group_2__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Sitemap__Group_2__0__Impl
	rule__Sitemap__Group_2__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Sitemap__Group_2__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSitemapAccess().getIconKeyword_2_0()); }

	'icon=' 

{ after(grammarAccess.getSitemapAccess().getIconKeyword_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Sitemap__Group_2__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Sitemap__Group_2__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Sitemap__Group_2__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSitemapAccess().getIconAssignment_2_1()); }
(rule__Sitemap__IconAssignment_2_1)
{ after(grammarAccess.getSitemapAccess().getIconAssignment_2_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__LinkableWidget__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__LinkableWidget__Group__0__Impl
	rule__LinkableWidget__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__LinkableWidget__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getLinkableWidgetAccess().getAlternatives_0()); }
(rule__LinkableWidget__Alternatives_0)
{ after(grammarAccess.getLinkableWidgetAccess().getAlternatives_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__LinkableWidget__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__LinkableWidget__Group__1__Impl
	rule__LinkableWidget__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__LinkableWidget__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getLinkableWidgetAccess().getGroup_1()); }
(rule__LinkableWidget__Group_1__0)?
{ after(grammarAccess.getLinkableWidgetAccess().getGroup_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__LinkableWidget__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__LinkableWidget__Group__2__Impl
	rule__LinkableWidget__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__LinkableWidget__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getLinkableWidgetAccess().getGroup_2()); }
(rule__LinkableWidget__Group_2__0)?
{ after(grammarAccess.getLinkableWidgetAccess().getGroup_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__LinkableWidget__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__LinkableWidget__Group__3__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__LinkableWidget__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getLinkableWidgetAccess().getGroup_3()); }
(rule__LinkableWidget__Group_3__0)?
{ after(grammarAccess.getLinkableWidgetAccess().getGroup_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}










rule__LinkableWidget__Group_1__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__LinkableWidget__Group_1__0__Impl
	rule__LinkableWidget__Group_1__1
;
finally {
	restoreStackSize(stackSize);
}

rule__LinkableWidget__Group_1__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getLinkableWidgetAccess().getLabelKeyword_1_0()); }

	'label=' 

{ after(grammarAccess.getLinkableWidgetAccess().getLabelKeyword_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__LinkableWidget__Group_1__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__LinkableWidget__Group_1__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__LinkableWidget__Group_1__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getLinkableWidgetAccess().getLabelAssignment_1_1()); }
(rule__LinkableWidget__LabelAssignment_1_1)
{ after(grammarAccess.getLinkableWidgetAccess().getLabelAssignment_1_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__LinkableWidget__Group_2__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__LinkableWidget__Group_2__0__Impl
	rule__LinkableWidget__Group_2__1
;
finally {
	restoreStackSize(stackSize);
}

rule__LinkableWidget__Group_2__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getLinkableWidgetAccess().getIconKeyword_2_0()); }

	'icon=' 

{ after(grammarAccess.getLinkableWidgetAccess().getIconKeyword_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__LinkableWidget__Group_2__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__LinkableWidget__Group_2__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__LinkableWidget__Group_2__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getLinkableWidgetAccess().getIconAssignment_2_1()); }
(rule__LinkableWidget__IconAssignment_2_1)
{ after(grammarAccess.getLinkableWidgetAccess().getIconAssignment_2_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__LinkableWidget__Group_3__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__LinkableWidget__Group_3__0__Impl
	rule__LinkableWidget__Group_3__1
;
finally {
	restoreStackSize(stackSize);
}

rule__LinkableWidget__Group_3__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getLinkableWidgetAccess().getLeftCurlyBracketKeyword_3_0()); }

	'{' 

{ after(grammarAccess.getLinkableWidgetAccess().getLeftCurlyBracketKeyword_3_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__LinkableWidget__Group_3__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__LinkableWidget__Group_3__1__Impl
	rule__LinkableWidget__Group_3__2
;
finally {
	restoreStackSize(stackSize);
}

rule__LinkableWidget__Group_3__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
(
{ before(grammarAccess.getLinkableWidgetAccess().getChildrenAssignment_3_1()); }
(rule__LinkableWidget__ChildrenAssignment_3_1)
{ after(grammarAccess.getLinkableWidgetAccess().getChildrenAssignment_3_1()); }
)
(
{ before(grammarAccess.getLinkableWidgetAccess().getChildrenAssignment_3_1()); }
(rule__LinkableWidget__ChildrenAssignment_3_1)*
{ after(grammarAccess.getLinkableWidgetAccess().getChildrenAssignment_3_1()); }
)
)

;
finally {
	restoreStackSize(stackSize);
}


rule__LinkableWidget__Group_3__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__LinkableWidget__Group_3__2__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__LinkableWidget__Group_3__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getLinkableWidgetAccess().getRightCurlyBracketKeyword_3_2()); }

	'}' 

{ after(grammarAccess.getLinkableWidgetAccess().getRightCurlyBracketKeyword_3_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}








rule__Frame__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Frame__Group__0__Impl
	rule__Frame__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Frame__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getFrameAccess().getFrameKeyword_0()); }

	'Frame' 

{ after(grammarAccess.getFrameAccess().getFrameKeyword_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Frame__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Frame__Group__1__Impl
	rule__Frame__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__Frame__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getFrameAccess().getFrameAction_1()); }
(

)
{ after(grammarAccess.getFrameAccess().getFrameAction_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Frame__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Frame__Group__2__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Frame__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getFrameAccess().getGroup_2()); }
(rule__Frame__Group_2__0)?
{ after(grammarAccess.getFrameAccess().getGroup_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}








rule__Frame__Group_2__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Frame__Group_2__0__Impl
	rule__Frame__Group_2__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Frame__Group_2__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getFrameAccess().getItemKeyword_2_0()); }

	'item=' 

{ after(grammarAccess.getFrameAccess().getItemKeyword_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Frame__Group_2__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Frame__Group_2__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Frame__Group_2__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getFrameAccess().getItemAssignment_2_1()); }
(rule__Frame__ItemAssignment_2_1)
{ after(grammarAccess.getFrameAccess().getItemAssignment_2_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__Text__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Text__Group__0__Impl
	rule__Text__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Text__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getTextAccess().getTextKeyword_0()); }

	'Text' 

{ after(grammarAccess.getTextAccess().getTextKeyword_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Text__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Text__Group__1__Impl
	rule__Text__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__Text__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getTextAccess().getTextAction_1()); }
(

)
{ after(grammarAccess.getTextAccess().getTextAction_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Text__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Text__Group__2__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Text__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getTextAccess().getGroup_2()); }
(rule__Text__Group_2__0)?
{ after(grammarAccess.getTextAccess().getGroup_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}








rule__Text__Group_2__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Text__Group_2__0__Impl
	rule__Text__Group_2__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Text__Group_2__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getTextAccess().getItemKeyword_2_0()); }

	'item=' 

{ after(grammarAccess.getTextAccess().getItemKeyword_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Text__Group_2__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Text__Group_2__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Text__Group_2__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getTextAccess().getItemAssignment_2_1()); }
(rule__Text__ItemAssignment_2_1)
{ after(grammarAccess.getTextAccess().getItemAssignment_2_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__Group__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Group__Group__0__Impl
	rule__Group__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Group__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getGroupAccess().getGroupKeyword_0()); }

	'Group' 

{ after(grammarAccess.getGroupAccess().getGroupKeyword_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Group__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Group__Group__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Group__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getGroupAccess().getGroup_1()); }
(rule__Group__Group_1__0)
{ after(grammarAccess.getGroupAccess().getGroup_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__Group__Group_1__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Group__Group_1__0__Impl
	rule__Group__Group_1__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Group__Group_1__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getGroupAccess().getItemKeyword_1_0()); }

	'item=' 

{ after(grammarAccess.getGroupAccess().getItemKeyword_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Group__Group_1__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Group__Group_1__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Group__Group_1__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getGroupAccess().getItemAssignment_1_1()); }
(rule__Group__ItemAssignment_1_1)
{ after(grammarAccess.getGroupAccess().getItemAssignment_1_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__Image__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Image__Group__0__Impl
	rule__Image__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Image__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getImageAccess().getImageKeyword_0()); }

	'Image' 

{ after(grammarAccess.getImageAccess().getImageKeyword_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Image__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Image__Group__1__Impl
	rule__Image__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__Image__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getImageAccess().getGroup_1()); }
(rule__Image__Group_1__0)?
{ after(grammarAccess.getImageAccess().getGroup_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Image__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Image__Group__2__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Image__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getImageAccess().getGroup_2()); }
(rule__Image__Group_2__0)
{ after(grammarAccess.getImageAccess().getGroup_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}








rule__Image__Group_1__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Image__Group_1__0__Impl
	rule__Image__Group_1__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Image__Group_1__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getImageAccess().getItemKeyword_1_0()); }

	'item=' 

{ after(grammarAccess.getImageAccess().getItemKeyword_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Image__Group_1__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Image__Group_1__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Image__Group_1__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getImageAccess().getItemAssignment_1_1()); }
(rule__Image__ItemAssignment_1_1)
{ after(grammarAccess.getImageAccess().getItemAssignment_1_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__Image__Group_2__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Image__Group_2__0__Impl
	rule__Image__Group_2__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Image__Group_2__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getImageAccess().getUrlKeyword_2_0()); }

	'url=' 

{ after(grammarAccess.getImageAccess().getUrlKeyword_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Image__Group_2__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Image__Group_2__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Image__Group_2__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getImageAccess().getUrlAssignment_2_1()); }
(rule__Image__UrlAssignment_2_1)
{ after(grammarAccess.getImageAccess().getUrlAssignment_2_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__Switch__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Switch__Group__0__Impl
	rule__Switch__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Switch__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSwitchAccess().getSwitchKeyword_0()); }

	'Switch' 

{ after(grammarAccess.getSwitchAccess().getSwitchKeyword_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Switch__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Switch__Group__1__Impl
	rule__Switch__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__Switch__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSwitchAccess().getGroup_1()); }
(rule__Switch__Group_1__0)
{ after(grammarAccess.getSwitchAccess().getGroup_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Switch__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Switch__Group__2__Impl
	rule__Switch__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__Switch__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSwitchAccess().getGroup_2()); }
(rule__Switch__Group_2__0)?
{ after(grammarAccess.getSwitchAccess().getGroup_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Switch__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Switch__Group__3__Impl
	rule__Switch__Group__4
;
finally {
	restoreStackSize(stackSize);
}

rule__Switch__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSwitchAccess().getGroup_3()); }
(rule__Switch__Group_3__0)?
{ after(grammarAccess.getSwitchAccess().getGroup_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Switch__Group__4
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Switch__Group__4__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Switch__Group__4__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSwitchAccess().getGroup_4()); }
(rule__Switch__Group_4__0)?
{ after(grammarAccess.getSwitchAccess().getGroup_4()); }
)

;
finally {
	restoreStackSize(stackSize);
}












rule__Switch__Group_1__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Switch__Group_1__0__Impl
	rule__Switch__Group_1__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Switch__Group_1__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSwitchAccess().getItemKeyword_1_0()); }

	'item=' 

{ after(grammarAccess.getSwitchAccess().getItemKeyword_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Switch__Group_1__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Switch__Group_1__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Switch__Group_1__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSwitchAccess().getItemAssignment_1_1()); }
(rule__Switch__ItemAssignment_1_1)
{ after(grammarAccess.getSwitchAccess().getItemAssignment_1_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__Switch__Group_2__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Switch__Group_2__0__Impl
	rule__Switch__Group_2__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Switch__Group_2__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSwitchAccess().getLabelKeyword_2_0()); }

	'label=' 

{ after(grammarAccess.getSwitchAccess().getLabelKeyword_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Switch__Group_2__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Switch__Group_2__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Switch__Group_2__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSwitchAccess().getLabelAssignment_2_1()); }
(rule__Switch__LabelAssignment_2_1)
{ after(grammarAccess.getSwitchAccess().getLabelAssignment_2_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__Switch__Group_3__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Switch__Group_3__0__Impl
	rule__Switch__Group_3__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Switch__Group_3__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSwitchAccess().getIconKeyword_3_0()); }

	'icon=' 

{ after(grammarAccess.getSwitchAccess().getIconKeyword_3_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Switch__Group_3__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Switch__Group_3__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Switch__Group_3__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSwitchAccess().getIconAssignment_3_1()); }
(rule__Switch__IconAssignment_3_1)
{ after(grammarAccess.getSwitchAccess().getIconAssignment_3_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__Switch__Group_4__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Switch__Group_4__0__Impl
	rule__Switch__Group_4__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Switch__Group_4__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSwitchAccess().getMappingsKeyword_4_0()); }

	'mappings=[' 

{ after(grammarAccess.getSwitchAccess().getMappingsKeyword_4_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Switch__Group_4__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Switch__Group_4__1__Impl
	rule__Switch__Group_4__2
;
finally {
	restoreStackSize(stackSize);
}

rule__Switch__Group_4__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSwitchAccess().getMappingsAssignment_4_1()); }
(rule__Switch__MappingsAssignment_4_1)
{ after(grammarAccess.getSwitchAccess().getMappingsAssignment_4_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Switch__Group_4__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Switch__Group_4__2__Impl
	rule__Switch__Group_4__3
;
finally {
	restoreStackSize(stackSize);
}

rule__Switch__Group_4__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSwitchAccess().getGroup_4_2()); }
(rule__Switch__Group_4_2__0)*
{ after(grammarAccess.getSwitchAccess().getGroup_4_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Switch__Group_4__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Switch__Group_4__3__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Switch__Group_4__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSwitchAccess().getRightSquareBracketKeyword_4_3()); }

	']' 

{ after(grammarAccess.getSwitchAccess().getRightSquareBracketKeyword_4_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}










rule__Switch__Group_4_2__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Switch__Group_4_2__0__Impl
	rule__Switch__Group_4_2__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Switch__Group_4_2__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSwitchAccess().getCommaKeyword_4_2_0()); }

	',' 

{ after(grammarAccess.getSwitchAccess().getCommaKeyword_4_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Switch__Group_4_2__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Switch__Group_4_2__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Switch__Group_4_2__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSwitchAccess().getMappingsAssignment_4_2_1()); }
(rule__Switch__MappingsAssignment_4_2_1)
{ after(grammarAccess.getSwitchAccess().getMappingsAssignment_4_2_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__Slider__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Slider__Group__0__Impl
	rule__Slider__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Slider__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSliderAccess().getSliderKeyword_0()); }

	'Slider' 

{ after(grammarAccess.getSliderAccess().getSliderKeyword_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Slider__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Slider__Group__1__Impl
	rule__Slider__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__Slider__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSliderAccess().getGroup_1()); }
(rule__Slider__Group_1__0)
{ after(grammarAccess.getSliderAccess().getGroup_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Slider__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Slider__Group__2__Impl
	rule__Slider__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__Slider__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSliderAccess().getGroup_2()); }
(rule__Slider__Group_2__0)?
{ after(grammarAccess.getSliderAccess().getGroup_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Slider__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Slider__Group__3__Impl
	rule__Slider__Group__4
;
finally {
	restoreStackSize(stackSize);
}

rule__Slider__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSliderAccess().getGroup_3()); }
(rule__Slider__Group_3__0)?
{ after(grammarAccess.getSliderAccess().getGroup_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Slider__Group__4
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Slider__Group__4__Impl
	rule__Slider__Group__5
;
finally {
	restoreStackSize(stackSize);
}

rule__Slider__Group__4__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSliderAccess().getGroup_4()); }
(rule__Slider__Group_4__0)?
{ after(grammarAccess.getSliderAccess().getGroup_4()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Slider__Group__5
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Slider__Group__5__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Slider__Group__5__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSliderAccess().getSwitchEnabledAssignment_5()); }
(rule__Slider__SwitchEnabledAssignment_5)?
{ after(grammarAccess.getSliderAccess().getSwitchEnabledAssignment_5()); }
)

;
finally {
	restoreStackSize(stackSize);
}














rule__Slider__Group_1__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Slider__Group_1__0__Impl
	rule__Slider__Group_1__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Slider__Group_1__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSliderAccess().getItemKeyword_1_0()); }

	'item=' 

{ after(grammarAccess.getSliderAccess().getItemKeyword_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Slider__Group_1__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Slider__Group_1__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Slider__Group_1__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSliderAccess().getItemAssignment_1_1()); }
(rule__Slider__ItemAssignment_1_1)
{ after(grammarAccess.getSliderAccess().getItemAssignment_1_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__Slider__Group_2__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Slider__Group_2__0__Impl
	rule__Slider__Group_2__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Slider__Group_2__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSliderAccess().getLabelKeyword_2_0()); }

	'label=' 

{ after(grammarAccess.getSliderAccess().getLabelKeyword_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Slider__Group_2__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Slider__Group_2__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Slider__Group_2__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSliderAccess().getLabelAssignment_2_1()); }
(rule__Slider__LabelAssignment_2_1)
{ after(grammarAccess.getSliderAccess().getLabelAssignment_2_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__Slider__Group_3__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Slider__Group_3__0__Impl
	rule__Slider__Group_3__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Slider__Group_3__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSliderAccess().getIconKeyword_3_0()); }

	'icon=' 

{ after(grammarAccess.getSliderAccess().getIconKeyword_3_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Slider__Group_3__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Slider__Group_3__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Slider__Group_3__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSliderAccess().getIconAssignment_3_1()); }
(rule__Slider__IconAssignment_3_1)
{ after(grammarAccess.getSliderAccess().getIconAssignment_3_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__Slider__Group_4__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Slider__Group_4__0__Impl
	rule__Slider__Group_4__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Slider__Group_4__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSliderAccess().getSendFrequencyKeyword_4_0()); }

	'sendFrequency=' 

{ after(grammarAccess.getSliderAccess().getSendFrequencyKeyword_4_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Slider__Group_4__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Slider__Group_4__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Slider__Group_4__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSliderAccess().getFrequencyAssignment_4_1()); }
(rule__Slider__FrequencyAssignment_4_1)
{ after(grammarAccess.getSliderAccess().getFrequencyAssignment_4_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__Selection__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Selection__Group__0__Impl
	rule__Selection__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Selection__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSelectionAccess().getSelectionKeyword_0()); }

	'Selection' 

{ after(grammarAccess.getSelectionAccess().getSelectionKeyword_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Selection__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Selection__Group__1__Impl
	rule__Selection__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__Selection__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSelectionAccess().getGroup_1()); }
(rule__Selection__Group_1__0)
{ after(grammarAccess.getSelectionAccess().getGroup_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Selection__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Selection__Group__2__Impl
	rule__Selection__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__Selection__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSelectionAccess().getGroup_2()); }
(rule__Selection__Group_2__0)?
{ after(grammarAccess.getSelectionAccess().getGroup_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Selection__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Selection__Group__3__Impl
	rule__Selection__Group__4
;
finally {
	restoreStackSize(stackSize);
}

rule__Selection__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSelectionAccess().getGroup_3()); }
(rule__Selection__Group_3__0)?
{ after(grammarAccess.getSelectionAccess().getGroup_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Selection__Group__4
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Selection__Group__4__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Selection__Group__4__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSelectionAccess().getGroup_4()); }
(rule__Selection__Group_4__0)?
{ after(grammarAccess.getSelectionAccess().getGroup_4()); }
)

;
finally {
	restoreStackSize(stackSize);
}












rule__Selection__Group_1__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Selection__Group_1__0__Impl
	rule__Selection__Group_1__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Selection__Group_1__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSelectionAccess().getItemKeyword_1_0()); }

	'item=' 

{ after(grammarAccess.getSelectionAccess().getItemKeyword_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Selection__Group_1__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Selection__Group_1__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Selection__Group_1__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSelectionAccess().getItemAssignment_1_1()); }
(rule__Selection__ItemAssignment_1_1)
{ after(grammarAccess.getSelectionAccess().getItemAssignment_1_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__Selection__Group_2__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Selection__Group_2__0__Impl
	rule__Selection__Group_2__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Selection__Group_2__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSelectionAccess().getLabelKeyword_2_0()); }

	'label=' 

{ after(grammarAccess.getSelectionAccess().getLabelKeyword_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Selection__Group_2__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Selection__Group_2__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Selection__Group_2__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSelectionAccess().getLabelAssignment_2_1()); }
(rule__Selection__LabelAssignment_2_1)
{ after(grammarAccess.getSelectionAccess().getLabelAssignment_2_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__Selection__Group_3__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Selection__Group_3__0__Impl
	rule__Selection__Group_3__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Selection__Group_3__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSelectionAccess().getIconKeyword_3_0()); }

	'icon=' 

{ after(grammarAccess.getSelectionAccess().getIconKeyword_3_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Selection__Group_3__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Selection__Group_3__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Selection__Group_3__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSelectionAccess().getIconAssignment_3_1()); }
(rule__Selection__IconAssignment_3_1)
{ after(grammarAccess.getSelectionAccess().getIconAssignment_3_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__Selection__Group_4__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Selection__Group_4__0__Impl
	rule__Selection__Group_4__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Selection__Group_4__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSelectionAccess().getMappingsKeyword_4_0()); }

	'mappings=[' 

{ after(grammarAccess.getSelectionAccess().getMappingsKeyword_4_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Selection__Group_4__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Selection__Group_4__1__Impl
	rule__Selection__Group_4__2
;
finally {
	restoreStackSize(stackSize);
}

rule__Selection__Group_4__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSelectionAccess().getMappingsAssignment_4_1()); }
(rule__Selection__MappingsAssignment_4_1)
{ after(grammarAccess.getSelectionAccess().getMappingsAssignment_4_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Selection__Group_4__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Selection__Group_4__2__Impl
	rule__Selection__Group_4__3
;
finally {
	restoreStackSize(stackSize);
}

rule__Selection__Group_4__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSelectionAccess().getGroup_4_2()); }
(rule__Selection__Group_4_2__0)*
{ after(grammarAccess.getSelectionAccess().getGroup_4_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Selection__Group_4__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Selection__Group_4__3__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Selection__Group_4__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSelectionAccess().getRightSquareBracketKeyword_4_3()); }

	']' 

{ after(grammarAccess.getSelectionAccess().getRightSquareBracketKeyword_4_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}










rule__Selection__Group_4_2__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Selection__Group_4_2__0__Impl
	rule__Selection__Group_4_2__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Selection__Group_4_2__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSelectionAccess().getCommaKeyword_4_2_0()); }

	',' 

{ after(grammarAccess.getSelectionAccess().getCommaKeyword_4_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Selection__Group_4_2__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Selection__Group_4_2__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Selection__Group_4_2__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSelectionAccess().getMappingsAssignment_4_2_1()); }
(rule__Selection__MappingsAssignment_4_2_1)
{ after(grammarAccess.getSelectionAccess().getMappingsAssignment_4_2_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__List__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__List__Group__0__Impl
	rule__List__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__List__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getListAccess().getListKeyword_0()); }

	'List' 

{ after(grammarAccess.getListAccess().getListKeyword_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__List__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__List__Group__1__Impl
	rule__List__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__List__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getListAccess().getGroup_1()); }
(rule__List__Group_1__0)
{ after(grammarAccess.getListAccess().getGroup_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__List__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__List__Group__2__Impl
	rule__List__Group__3
;
finally {
	restoreStackSize(stackSize);
}

rule__List__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getListAccess().getGroup_2()); }
(rule__List__Group_2__0)?
{ after(grammarAccess.getListAccess().getGroup_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__List__Group__3
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__List__Group__3__Impl
	rule__List__Group__4
;
finally {
	restoreStackSize(stackSize);
}

rule__List__Group__3__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getListAccess().getGroup_3()); }
(rule__List__Group_3__0)?
{ after(grammarAccess.getListAccess().getGroup_3()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__List__Group__4
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__List__Group__4__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__List__Group__4__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getListAccess().getGroup_4()); }
(rule__List__Group_4__0)
{ after(grammarAccess.getListAccess().getGroup_4()); }
)

;
finally {
	restoreStackSize(stackSize);
}












rule__List__Group_1__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__List__Group_1__0__Impl
	rule__List__Group_1__1
;
finally {
	restoreStackSize(stackSize);
}

rule__List__Group_1__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getListAccess().getItemKeyword_1_0()); }

	'item=' 

{ after(grammarAccess.getListAccess().getItemKeyword_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__List__Group_1__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__List__Group_1__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__List__Group_1__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getListAccess().getItemAssignment_1_1()); }
(rule__List__ItemAssignment_1_1)
{ after(grammarAccess.getListAccess().getItemAssignment_1_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__List__Group_2__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__List__Group_2__0__Impl
	rule__List__Group_2__1
;
finally {
	restoreStackSize(stackSize);
}

rule__List__Group_2__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getListAccess().getLabelKeyword_2_0()); }

	'label=' 

{ after(grammarAccess.getListAccess().getLabelKeyword_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__List__Group_2__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__List__Group_2__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__List__Group_2__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getListAccess().getLabelAssignment_2_1()); }
(rule__List__LabelAssignment_2_1)
{ after(grammarAccess.getListAccess().getLabelAssignment_2_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__List__Group_3__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__List__Group_3__0__Impl
	rule__List__Group_3__1
;
finally {
	restoreStackSize(stackSize);
}

rule__List__Group_3__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getListAccess().getIconKeyword_3_0()); }

	'icon=' 

{ after(grammarAccess.getListAccess().getIconKeyword_3_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__List__Group_3__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__List__Group_3__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__List__Group_3__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getListAccess().getIconAssignment_3_1()); }
(rule__List__IconAssignment_3_1)
{ after(grammarAccess.getListAccess().getIconAssignment_3_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__List__Group_4__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__List__Group_4__0__Impl
	rule__List__Group_4__1
;
finally {
	restoreStackSize(stackSize);
}

rule__List__Group_4__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getListAccess().getSeparatorKeyword_4_0()); }

	'separator=' 

{ after(grammarAccess.getListAccess().getSeparatorKeyword_4_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__List__Group_4__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__List__Group_4__1__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__List__Group_4__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getListAccess().getSeparatorAssignment_4_1()); }
(rule__List__SeparatorAssignment_4_1)
{ after(grammarAccess.getListAccess().getSeparatorAssignment_4_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}






rule__Mapping__Group__0
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Mapping__Group__0__Impl
	rule__Mapping__Group__1
;
finally {
	restoreStackSize(stackSize);
}

rule__Mapping__Group__0__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getMappingAccess().getCmdAssignment_0()); }
(rule__Mapping__CmdAssignment_0)
{ after(grammarAccess.getMappingAccess().getCmdAssignment_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Mapping__Group__1
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Mapping__Group__1__Impl
	rule__Mapping__Group__2
;
finally {
	restoreStackSize(stackSize);
}

rule__Mapping__Group__1__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getMappingAccess().getEqualsSignKeyword_1()); }

	'=' 

{ after(grammarAccess.getMappingAccess().getEqualsSignKeyword_1()); }
)

;
finally {
	restoreStackSize(stackSize);
}


rule__Mapping__Group__2
    @init {
		int stackSize = keepStackSize();
    }
:
	rule__Mapping__Group__2__Impl
;
finally {
	restoreStackSize(stackSize);
}

rule__Mapping__Group__2__Impl
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getMappingAccess().getLabelAssignment_2()); }
(rule__Mapping__LabelAssignment_2)
{ after(grammarAccess.getMappingAccess().getLabelAssignment_2()); }
)

;
finally {
	restoreStackSize(stackSize);
}









rule__Sitemap__NameAssignment_0
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSitemapAccess().getNameIDTerminalRuleCall_0_0()); }
	RULE_ID{ after(grammarAccess.getSitemapAccess().getNameIDTerminalRuleCall_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__Sitemap__LabelAssignment_1_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSitemapAccess().getLabelSTRINGTerminalRuleCall_1_1_0()); }
	RULE_STRING{ after(grammarAccess.getSitemapAccess().getLabelSTRINGTerminalRuleCall_1_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__Sitemap__IconAssignment_2_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSitemapAccess().getIconSTRINGTerminalRuleCall_2_1_0()); }
	RULE_STRING{ after(grammarAccess.getSitemapAccess().getIconSTRINGTerminalRuleCall_2_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__Sitemap__ChildrenAssignment_4
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSitemapAccess().getChildrenWidgetParserRuleCall_4_0()); }
	ruleWidget{ after(grammarAccess.getSitemapAccess().getChildrenWidgetParserRuleCall_4_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__LinkableWidget__LabelAssignment_1_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getLinkableWidgetAccess().getLabelAlternatives_1_1_0()); }
(rule__LinkableWidget__LabelAlternatives_1_1_0)
{ after(grammarAccess.getLinkableWidgetAccess().getLabelAlternatives_1_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__LinkableWidget__IconAssignment_2_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getLinkableWidgetAccess().getIconAlternatives_2_1_0()); }
(rule__LinkableWidget__IconAlternatives_2_1_0)
{ after(grammarAccess.getLinkableWidgetAccess().getIconAlternatives_2_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__LinkableWidget__ChildrenAssignment_3_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getLinkableWidgetAccess().getChildrenWidgetParserRuleCall_3_1_0()); }
	ruleWidget{ after(grammarAccess.getLinkableWidgetAccess().getChildrenWidgetParserRuleCall_3_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__Frame__ItemAssignment_2_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getFrameAccess().getItemIDTerminalRuleCall_2_1_0()); }
	RULE_ID{ after(grammarAccess.getFrameAccess().getItemIDTerminalRuleCall_2_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__Text__ItemAssignment_2_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getTextAccess().getItemIDTerminalRuleCall_2_1_0()); }
	RULE_ID{ after(grammarAccess.getTextAccess().getItemIDTerminalRuleCall_2_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__Group__ItemAssignment_1_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getGroupAccess().getItemIDTerminalRuleCall_1_1_0()); }
	RULE_ID{ after(grammarAccess.getGroupAccess().getItemIDTerminalRuleCall_1_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__Image__ItemAssignment_1_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getImageAccess().getItemIDTerminalRuleCall_1_1_0()); }
	RULE_ID{ after(grammarAccess.getImageAccess().getItemIDTerminalRuleCall_1_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__Image__UrlAssignment_2_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getImageAccess().getUrlSTRINGTerminalRuleCall_2_1_0()); }
	RULE_STRING{ after(grammarAccess.getImageAccess().getUrlSTRINGTerminalRuleCall_2_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__Switch__ItemAssignment_1_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSwitchAccess().getItemIDTerminalRuleCall_1_1_0()); }
	RULE_ID{ after(grammarAccess.getSwitchAccess().getItemIDTerminalRuleCall_1_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__Switch__LabelAssignment_2_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSwitchAccess().getLabelAlternatives_2_1_0()); }
(rule__Switch__LabelAlternatives_2_1_0)
{ after(grammarAccess.getSwitchAccess().getLabelAlternatives_2_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__Switch__IconAssignment_3_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSwitchAccess().getIconAlternatives_3_1_0()); }
(rule__Switch__IconAlternatives_3_1_0)
{ after(grammarAccess.getSwitchAccess().getIconAlternatives_3_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__Switch__MappingsAssignment_4_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSwitchAccess().getMappingsMappingParserRuleCall_4_1_0()); }
	ruleMapping{ after(grammarAccess.getSwitchAccess().getMappingsMappingParserRuleCall_4_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__Switch__MappingsAssignment_4_2_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSwitchAccess().getMappingsMappingParserRuleCall_4_2_1_0()); }
	ruleMapping{ after(grammarAccess.getSwitchAccess().getMappingsMappingParserRuleCall_4_2_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__Slider__ItemAssignment_1_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSliderAccess().getItemIDTerminalRuleCall_1_1_0()); }
	RULE_ID{ after(grammarAccess.getSliderAccess().getItemIDTerminalRuleCall_1_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__Slider__LabelAssignment_2_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSliderAccess().getLabelAlternatives_2_1_0()); }
(rule__Slider__LabelAlternatives_2_1_0)
{ after(grammarAccess.getSliderAccess().getLabelAlternatives_2_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__Slider__IconAssignment_3_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSliderAccess().getIconAlternatives_3_1_0()); }
(rule__Slider__IconAlternatives_3_1_0)
{ after(grammarAccess.getSliderAccess().getIconAlternatives_3_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__Slider__FrequencyAssignment_4_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSliderAccess().getFrequencyIDTerminalRuleCall_4_1_0()); }
	RULE_ID{ after(grammarAccess.getSliderAccess().getFrequencyIDTerminalRuleCall_4_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__Slider__SwitchEnabledAssignment_5
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSliderAccess().getSwitchEnabledSwitchSupportKeyword_5_0()); }
(
{ before(grammarAccess.getSliderAccess().getSwitchEnabledSwitchSupportKeyword_5_0()); }

	'switchSupport' 

{ after(grammarAccess.getSliderAccess().getSwitchEnabledSwitchSupportKeyword_5_0()); }
)

{ after(grammarAccess.getSliderAccess().getSwitchEnabledSwitchSupportKeyword_5_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__Selection__ItemAssignment_1_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSelectionAccess().getItemIDTerminalRuleCall_1_1_0()); }
	RULE_ID{ after(grammarAccess.getSelectionAccess().getItemIDTerminalRuleCall_1_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__Selection__LabelAssignment_2_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSelectionAccess().getLabelAlternatives_2_1_0()); }
(rule__Selection__LabelAlternatives_2_1_0)
{ after(grammarAccess.getSelectionAccess().getLabelAlternatives_2_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__Selection__IconAssignment_3_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSelectionAccess().getIconAlternatives_3_1_0()); }
(rule__Selection__IconAlternatives_3_1_0)
{ after(grammarAccess.getSelectionAccess().getIconAlternatives_3_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__Selection__MappingsAssignment_4_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSelectionAccess().getMappingsMappingParserRuleCall_4_1_0()); }
	ruleMapping{ after(grammarAccess.getSelectionAccess().getMappingsMappingParserRuleCall_4_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__Selection__MappingsAssignment_4_2_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getSelectionAccess().getMappingsMappingParserRuleCall_4_2_1_0()); }
	ruleMapping{ after(grammarAccess.getSelectionAccess().getMappingsMappingParserRuleCall_4_2_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__List__ItemAssignment_1_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getListAccess().getItemIDTerminalRuleCall_1_1_0()); }
	RULE_ID{ after(grammarAccess.getListAccess().getItemIDTerminalRuleCall_1_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__List__LabelAssignment_2_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getListAccess().getLabelAlternatives_2_1_0()); }
(rule__List__LabelAlternatives_2_1_0)
{ after(grammarAccess.getListAccess().getLabelAlternatives_2_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__List__IconAssignment_3_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getListAccess().getIconAlternatives_3_1_0()); }
(rule__List__IconAlternatives_3_1_0)
{ after(grammarAccess.getListAccess().getIconAlternatives_3_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__List__SeparatorAssignment_4_1
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getListAccess().getSeparatorSTRINGTerminalRuleCall_4_1_0()); }
	RULE_STRING{ after(grammarAccess.getListAccess().getSeparatorSTRINGTerminalRuleCall_4_1_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__Mapping__CmdAssignment_0
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getMappingAccess().getCmdAlternatives_0_0()); }
(rule__Mapping__CmdAlternatives_0_0)
{ after(grammarAccess.getMappingAccess().getCmdAlternatives_0_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}

rule__Mapping__LabelAssignment_2
    @init {
		int stackSize = keepStackSize();
    }
:
(
{ before(grammarAccess.getMappingAccess().getLabelAlternatives_2_0()); }
(rule__Mapping__LabelAlternatives_2_0)
{ after(grammarAccess.getMappingAccess().getLabelAlternatives_2_0()); }
)

;
finally {
	restoreStackSize(stackSize);
}


RULE_ID : '^'? ('a'..'z'|'A'..'Z'|'_'|'0'..'9')+;

RULE_INT : ('0'..'9')+;

RULE_STRING : ('"' ('\\' ('b'|'t'|'n'|'f'|'r'|'"'|'\''|'\\')|~(('\\'|'"')))* '"'|'\'' ('\\' ('b'|'t'|'n'|'f'|'r'|'"'|'\''|'\\')|~(('\\'|'\'')))* '\'');

RULE_ML_COMMENT : '/*' ( options {greedy=false;} : . )*'*/';

RULE_SL_COMMENT : '//' ~(('\n'|'\r'))* ('\r'? '\n')?;

RULE_WS : (' '|'\t'|'\r'|'\n')+;

RULE_ANY_OTHER : .;


