blob: 5ab5569a2298f60359f930ec8306c2e51372d9ef [file] [log] [blame]
/*
* generated by Xtext
*/
grammar InternalMyDsl;
options {
superClass=AbstractInternalAntlrParser;
}
@lexer::header {
package org.xtext.example.mydsl.parser.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.parser.antlr.Lexer;
}
@parser::header {
package org.xtext.example.mydsl.parser.antlr.internal;
import org.eclipse.xtext.*;
import org.eclipse.xtext.parser.*;
import org.eclipse.xtext.parser.impl.*;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser;
import org.eclipse.xtext.parser.antlr.XtextTokenStream;
import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
import org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken;
import org.xtext.example.mydsl.services.MyDslGrammarAccess;
}
@parser::members {
private MyDslGrammarAccess grammarAccess;
public InternalMyDslParser(TokenStream input, MyDslGrammarAccess grammarAccess) {
this(input);
this.grammarAccess = grammarAccess;
registerRules(grammarAccess.getGrammar());
}
@Override
protected String getFirstRuleName() {
return "Model";
}
@Override
protected MyDslGrammarAccess getGrammarAccess() {
return grammarAccess;
}
}
@rulecatch {
catch (RecognitionException re) {
recover(input,re);
appendSkippedTokens();
}
}
// Entry rule entryRuleModel
entryRuleModel returns [EObject current=null]
:
{ newCompositeNode(grammarAccess.getModelRule()); }
iv_ruleModel=ruleModel
{ $current=$iv_ruleModel.current; }
EOF
;
// Rule Model
ruleModel returns [EObject current=null]
@init { enterRule();
}
@after { leaveRule(); }:
(
(
{
newCompositeNode(grammarAccess.getModelAccess().getGreetingsGreetingParserRuleCall_0());
}
lv_greetings_0_0=ruleGreeting {
if ($current==null) {
$current = createModelElementForParent(grammarAccess.getModelRule());
}
add(
$current,
"greetings",
lv_greetings_0_0,
"Greeting");
afterParserOrEnumRuleCall();
}
)
)*
;
// Entry rule entryRuleGreeting
entryRuleGreeting returns [EObject current=null]
:
{ newCompositeNode(grammarAccess.getGreetingRule()); }
iv_ruleGreeting=ruleGreeting
{ $current=$iv_ruleGreeting.current; }
EOF
;
// Rule Greeting
ruleGreeting returns [EObject current=null]
@init { enterRule();
}
@after { leaveRule(); }:
( otherlv_0='Hello'
{
newLeafNode(otherlv_0, grammarAccess.getGreetingAccess().getHelloKeyword_0());
}
(
(
lv_name_1_0=RULE_ID
{
newLeafNode(lv_name_1_0, grammarAccess.getGreetingAccess().getNameIDTerminalRuleCall_1_0());
}
{
if ($current==null) {
$current = createModelElement(grammarAccess.getGreetingRule());
}
setWithLastConsumed(
$current,
"name",
lv_name_1_0,
"ID");
}
)
) otherlv_2='!'
{
newLeafNode(otherlv_2, grammarAccess.getGreetingAccess().getExclamationMarkKeyword_2());
}
)
;
RULE_ID : '^'? ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*;
RULE_INT : ('0'..'9')+;
RULE_STRING : ('"' ('\\' ('b'|'t'|'n'|'f'|'r'|'u'|'"'|'\''|'\\')|~(('\\'|'"')))* '"'|'\'' ('\\' ('b'|'t'|'n'|'f'|'r'|'u'|'"'|'\''|'\\')|~(('\\'|'\'')))* '\'');
RULE_ML_COMMENT : '/*' ( options {greedy=false;} : . )*'*/';
RULE_SL_COMMENT : '//' ~(('\n'|'\r'))* ('\r'? '\n')?;
RULE_WS : (' '|'\t'|'\r'|'\n')+;
RULE_ANY_OTHER : .;