/*
* generated by Xtext
*/
package org.xtext.lua.serializer;
import com.google.inject.Inject;
import java.util.List;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.IGrammarAccess;
import org.eclipse.xtext.RuleCall;
import org.eclipse.xtext.nodemodel.INode;
import org.eclipse.xtext.serializer.analysis.GrammarAlias.AbstractElementAlias;
import org.eclipse.xtext.serializer.analysis.GrammarAlias.AlternativeAlias;
import org.eclipse.xtext.serializer.analysis.GrammarAlias.TokenAlias;
import org.eclipse.xtext.serializer.analysis.ISyntacticSequencerPDAProvider.ISynNavigable;
import org.eclipse.xtext.serializer.analysis.ISyntacticSequencerPDAProvider.ISynTransition;
import org.eclipse.xtext.serializer.sequencer.AbstractSyntacticSequencer;
import org.xtext.lua.services.LuaGrammarAccess;
@SuppressWarnings("all")
public class LuaSyntacticSequencer extends AbstractSyntacticSequencer {
protected LuaGrammarAccess grammarAccess;
protected AbstractElementAlias match_Block_SemicolonKeyword_1_1_q;
protected AbstractElementAlias match_Block_SemicolonKeyword_2_1_q;
protected AbstractElementAlias match_Expression_TableConstructor_CommaKeyword_2_1_0_0_or_SemicolonKeyword_2_1_0_1;
protected AbstractElementAlias match_Expression_TableConstructor___CommaKeyword_2_2_0_or_SemicolonKeyword_2_2_1__q;
protected AbstractElementAlias match_Expression_VariableName_LeftParenthesisKeyword_0_0_a;
protected AbstractElementAlias match_Expression_VariableName_LeftParenthesisKeyword_0_0_p;
protected AbstractElementAlias match_Function_CommaKeyword_1_2_q;
@Inject
protected void init(IGrammarAccess access) {
grammarAccess = (LuaGrammarAccess) access;
match_Block_SemicolonKeyword_1_1_q = new TokenAlias(false, true, grammarAccess.getBlockAccess().getSemicolonKeyword_1_1());
match_Block_SemicolonKeyword_2_1_q = new TokenAlias(false, true, grammarAccess.getBlockAccess().getSemicolonKeyword_2_1());
match_Expression_TableConstructor_CommaKeyword_2_1_0_0_or_SemicolonKeyword_2_1_0_1 = new AlternativeAlias(false, false, new TokenAlias(false, false, grammarAccess.getExpression_TableConstructorAccess().getCommaKeyword_2_1_0_0()), new TokenAlias(false, false, grammarAccess.getExpression_TableConstructorAccess().getSemicolonKeyword_2_1_0_1()));
match_Expression_TableConstructor___CommaKeyword_2_2_0_or_SemicolonKeyword_2_2_1__q = new AlternativeAlias(false, true, new TokenAlias(false, false, grammarAccess.getExpression_TableConstructorAccess().getCommaKeyword_2_2_0()), new TokenAlias(false, false, grammarAccess.getExpression_TableConstructorAccess().getSemicolonKeyword_2_2_1()));
match_Expression_VariableName_LeftParenthesisKeyword_0_0_a = new TokenAlias(true, true, grammarAccess.getExpression_VariableNameAccess().getLeftParenthesisKeyword_0_0());
match_Expression_VariableName_LeftParenthesisKeyword_0_0_p = new TokenAlias(true, false, grammarAccess.getExpression_VariableNameAccess().getLeftParenthesisKeyword_0_0());
match_Function_CommaKeyword_1_2_q = new TokenAlias(false, true, grammarAccess.getFunctionAccess().getCommaKeyword_1_2());
}
@Override
protected String getUnassignedRuleCallToken(EObject semanticObject, RuleCall ruleCall, INode node) {
return "";
}
@Override
protected void emitUnassignedTokens(EObject semanticObject, ISynTransition transition, INode fromNode, INode toNode) {
if (transition.getAmbiguousSyntaxes().isEmpty()) return;
List<INode> transitionNodes = collectNodes(fromNode, toNode);
for (AbstractElementAlias syntax : transition.getAmbiguousSyntaxes()) {
List<INode> syntaxNodes = getNodesFor(transitionNodes, syntax);
if(match_Block_SemicolonKeyword_1_1_q.equals(syntax))
emit_Block_SemicolonKeyword_1_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
else if(match_Block_SemicolonKeyword_2_1_q.equals(syntax))
emit_Block_SemicolonKeyword_2_1_q(semanticObject, getLastNavigableState(), syntaxNodes);
else if(match_Expression_TableConstructor_CommaKeyword_2_1_0_0_or_SemicolonKeyword_2_1_0_1.equals(syntax))
emit_Expression_TableConstructor_CommaKeyword_2_1_0_0_or_SemicolonKeyword_2_1_0_1(semanticObject, getLastNavigableState(), syntaxNodes);
else if(match_Expression_TableConstructor___CommaKeyword_2_2_0_or_SemicolonKeyword_2_2_1__q.equals(syntax))
emit_Expression_TableConstructor___CommaKeyword_2_2_0_or_SemicolonKeyword_2_2_1__q(semanticObject, getLastNavigableState(), syntaxNodes);
else if(match_Expression_VariableName_LeftParenthesisKeyword_0_0_a.equals(syntax))
emit_Expression_VariableName_LeftParenthesisKeyword_0_0_a(semanticObject, getLastNavigableState(), syntaxNodes);
else if(match_Expression_VariableName_LeftParenthesisKeyword_0_0_p.equals(syntax))
emit_Expression_VariableName_LeftParenthesisKeyword_0_0_p(semanticObject, getLastNavigableState(), syntaxNodes);
else if(match_Function_CommaKeyword_1_2_q.equals(syntax))
emit_Function_CommaKeyword_1_2_q(semanticObject, getLastNavigableState(), syntaxNodes);
else acceptNodes(getLastNavigableState(), syntaxNodes);
}
}
/**
* Ambiguous syntax:
* ';'?
*
* This ambiguous syntax occurs at:
* statements+=Statement (ambiguity) (rule end)
* statements+=Statement (ambiguity) returnValue=LastStatement
* statements+=Statement (ambiguity) statements+=Statement
*/
protected void emit_Block_SemicolonKeyword_1_1_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
acceptNodes(transition, nodes);
}
/**
* Ambiguous syntax:
* ';'?
*
* This ambiguous syntax occurs at:
* returnValue=LastStatement (ambiguity) (rule end)
*/
protected void emit_Block_SemicolonKeyword_2_1_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
acceptNodes(transition, nodes);
}
/**
* Ambiguous syntax:
* ',' | ';'
*
* This ambiguous syntax occurs at:
* fields+=Field (ambiguity) fields+=Field
*/
protected void emit_Expression_TableConstructor_CommaKeyword_2_1_0_0_or_SemicolonKeyword_2_1_0_1(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
acceptNodes(transition, nodes);
}
/**
* Ambiguous syntax:
* (',' | ';')?
*
* This ambiguous syntax occurs at:
* fields+=Field (ambiguity) '}' '%' (rule end)
* fields+=Field (ambiguity) '}' ')' '.' (rule end)
* fields+=Field (ambiguity) '}' ')' ':' (rule end)
* fields+=Field (ambiguity) '}' ')' '[' (rule end)
* fields+=Field (ambiguity) '}' ')' (rule end)
* fields+=Field (ambiguity) '}' '*' (rule end)
* fields+=Field (ambiguity) '}' '+' (rule end)
* fields+=Field (ambiguity) '}' '-' (rule end)
* fields+=Field (ambiguity) '}' '..' (rule end)
* fields+=Field (ambiguity) '}' '/' (rule end)
* fields+=Field (ambiguity) '}' '<' (rule end)
* fields+=Field (ambiguity) '}' '<=' (rule end)
* fields+=Field (ambiguity) '}' '==' (rule end)
* fields+=Field (ambiguity) '}' '>' (rule end)
* fields+=Field (ambiguity) '}' '>=' (rule end)
* fields+=Field (ambiguity) '}' '^' (rule end)
* fields+=Field (ambiguity) '}' 'and' (rule end)
* fields+=Field (ambiguity) '}' 'or' (rule end)
* fields+=Field (ambiguity) '}' '~=' (rule end)
* fields+=Field (ambiguity) '}' (rule end)
*/
protected void emit_Expression_TableConstructor___CommaKeyword_2_2_0_or_SemicolonKeyword_2_2_1__q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
acceptNodes(transition, nodes);
}
/**
* Ambiguous syntax:
* '('*
*
* This ambiguous syntax occurs at:
* (rule start) (ambiguity) '#' exp=Expression_Unary
* (rule start) (ambiguity) '-' exp=Expression_Unary
* (rule start) (ambiguity) '...' '%' (rule start)
* (rule start) (ambiguity) '...' '*' (rule start)
* (rule start) (ambiguity) '...' '+' (rule start)
* (rule start) (ambiguity) '...' '-' (rule start)
* (rule start) (ambiguity) '...' '..' (rule start)
* (rule start) (ambiguity) '...' '/' (rule start)
* (rule start) (ambiguity) '...' '<' (rule start)
* (rule start) (ambiguity) '...' '<=' (rule start)
* (rule start) (ambiguity) '...' '==' (rule start)
* (rule start) (ambiguity) '...' '>' (rule start)
* (rule start) (ambiguity) '...' '>=' (rule start)
* (rule start) (ambiguity) '...' '^' (rule start)
* (rule start) (ambiguity) '...' 'and' (rule start)
* (rule start) (ambiguity) '...' 'or' (rule start)
* (rule start) (ambiguity) '...' '~=' (rule start)
* (rule start) (ambiguity) '...' (rule start)
* (rule start) (ambiguity) 'false' '%' (rule start)
* (rule start) (ambiguity) 'false' '*' (rule start)
* (rule start) (ambiguity) 'false' '+' (rule start)
* (rule start) (ambiguity) 'false' '-' (rule start)
* (rule start) (ambiguity) 'false' '..' (rule start)
* (rule start) (ambiguity) 'false' '/' (rule start)
* (rule start) (ambiguity) 'false' '<' (rule start)
* (rule start) (ambiguity) 'false' '<=' (rule start)
* (rule start) (ambiguity) 'false' '==' (rule start)
* (rule start) (ambiguity) 'false' '>' (rule start)
* (rule start) (ambiguity) 'false' '>=' (rule start)
* (rule start) (ambiguity) 'false' '^' (rule start)
* (rule start) (ambiguity) 'false' 'and' (rule start)
* (rule start) (ambiguity) 'false' 'or' (rule start)
* (rule start) (ambiguity) 'false' '~=' (rule start)
* (rule start) (ambiguity) 'false' (rule start)
* (rule start) (ambiguity) 'function' function=Function
* (rule start) (ambiguity) 'nil' '%' (rule start)
* (rule start) (ambiguity) 'nil' '*' (rule start)
* (rule start) (ambiguity) 'nil' '+' (rule start)
* (rule start) (ambiguity) 'nil' '-' (rule start)
* (rule start) (ambiguity) 'nil' '..' (rule start)
* (rule start) (ambiguity) 'nil' '/' (rule start)
* (rule start) (ambiguity) 'nil' '<' (rule start)
* (rule start) (ambiguity) 'nil' '<=' (rule start)
* (rule start) (ambiguity) 'nil' '==' (rule start)
* (rule start) (ambiguity) 'nil' '>' (rule start)
* (rule start) (ambiguity) 'nil' '>=' (rule start)
* (rule start) (ambiguity) 'nil' '^' (rule start)
* (rule start) (ambiguity) 'nil' 'and' (rule start)
* (rule start) (ambiguity) 'nil' 'or' (rule start)
* (rule start) (ambiguity) 'nil' '~=' (rule start)
* (rule start) (ambiguity) 'nil' (rule start)
* (rule start) (ambiguity) 'not' exp=Expression_Unary
* (rule start) (ambiguity) 'true' '%' (rule start)
* (rule start) (ambiguity) 'true' '*' (rule start)
* (rule start) (ambiguity) 'true' '+' (rule start)
* (rule start) (ambiguity) 'true' '-' (rule start)
* (rule start) (ambiguity) 'true' '..' (rule start)
* (rule start) (ambiguity) 'true' '/' (rule start)
* (rule start) (ambiguity) 'true' '<' (rule start)
* (rule start) (ambiguity) 'true' '<=' (rule start)
* (rule start) (ambiguity) 'true' '==' (rule start)
* (rule start) (ambiguity) 'true' '>' (rule start)
* (rule start) (ambiguity) 'true' '>=' (rule start)
* (rule start) (ambiguity) 'true' '^' (rule start)
* (rule start) (ambiguity) 'true' 'and' (rule start)
* (rule start) (ambiguity) 'true' 'or' (rule start)
* (rule start) (ambiguity) 'true' '~=' (rule start)
* (rule start) (ambiguity) 'true' (rule start)
* (rule start) (ambiguity) '{' '}' '%' (rule start)
* (rule start) (ambiguity) '{' '}' '*' (rule start)
* (rule start) (ambiguity) '{' '}' '+' (rule start)
* (rule start) (ambiguity) '{' '}' '-' (rule start)
* (rule start) (ambiguity) '{' '}' '..' (rule start)
* (rule start) (ambiguity) '{' '}' '/' (rule start)
* (rule start) (ambiguity) '{' '}' '<' (rule start)
* (rule start) (ambiguity) '{' '}' '<=' (rule start)
* (rule start) (ambiguity) '{' '}' '==' (rule start)
* (rule start) (ambiguity) '{' '}' '>' (rule start)
* (rule start) (ambiguity) '{' '}' '>=' (rule start)
* (rule start) (ambiguity) '{' '}' '^' (rule start)
* (rule start) (ambiguity) '{' '}' 'and' (rule start)
* (rule start) (ambiguity) '{' '}' 'or' (rule start)
* (rule start) (ambiguity) '{' '}' '~=' (rule start)
* (rule start) (ambiguity) '{' '}' (rule start)
* (rule start) (ambiguity) '{' fields+=Field
* (rule start) (ambiguity) value=LUA_NUMBER
* (rule start) (ambiguity) value=LUA_STRING
* (rule start) (ambiguity) variable=LUA_NAME
* (rule start) (ambiguity) {Expression_AccessArray.array=}
* (rule start) (ambiguity) {Expression_AccessMember.object=}
* (rule start) (ambiguity) {Expression_And.left=}
* (rule start) (ambiguity) {Expression_CallFunction.object=}
* (rule start) (ambiguity) {Expression_CallMemberFunction.object=}
* (rule start) (ambiguity) {Expression_Concatenation.left=}
* (rule start) (ambiguity) {Expression_Division.left=}
* (rule start) (ambiguity) {Expression_Equal.left=}
* (rule start) (ambiguity) {Expression_Exponentiation.left=}
* (rule start) (ambiguity) {Expression_Larger.left=}
* (rule start) (ambiguity) {Expression_Larger_Equal.left=}
* (rule start) (ambiguity) {Expression_Minus.left=}
* (rule start) (ambiguity) {Expression_Modulo.left=}
* (rule start) (ambiguity) {Expression_Multiplication.left=}
* (rule start) (ambiguity) {Expression_Not_Equal.left=}
* (rule start) (ambiguity) {Expression_Or.left=}
* (rule start) (ambiguity) {Expression_Plus.left=}
* (rule start) (ambiguity) {Expression_Smaller.left=}
* (rule start) (ambiguity) {Expression_Smaller_Equal.left=}
*/
protected void emit_Expression_VariableName_LeftParenthesisKeyword_0_0_a(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
acceptNodes(transition, nodes);
}
/**
* Ambiguous syntax:
* '('+
*
* This ambiguous syntax occurs at:
* (rule start) (ambiguity) '#' exp=Expression_Unary
* (rule start) (ambiguity) '-' exp=Expression_Unary
* (rule start) (ambiguity) '...' ')' '.' (rule start)
* (rule start) (ambiguity) '...' ')' ':' (rule start)
* (rule start) (ambiguity) '...' ')' '[' (rule start)
* (rule start) (ambiguity) '...' ')' (rule start)
* (rule start) (ambiguity) 'false' ')' '.' (rule start)
* (rule start) (ambiguity) 'false' ')' ':' (rule start)
* (rule start) (ambiguity) 'false' ')' '[' (rule start)
* (rule start) (ambiguity) 'false' ')' (rule start)
* (rule start) (ambiguity) 'function' function=Function
* (rule start) (ambiguity) 'nil' ')' '.' (rule start)
* (rule start) (ambiguity) 'nil' ')' ':' (rule start)
* (rule start) (ambiguity) 'nil' ')' '[' (rule start)
* (rule start) (ambiguity) 'nil' ')' (rule start)
* (rule start) (ambiguity) 'not' exp=Expression_Unary
* (rule start) (ambiguity) 'true' ')' '.' (rule start)
* (rule start) (ambiguity) 'true' ')' ':' (rule start)
* (rule start) (ambiguity) 'true' ')' '[' (rule start)
* (rule start) (ambiguity) 'true' ')' (rule start)
* (rule start) (ambiguity) '{' '}' ')' '.' (rule start)
* (rule start) (ambiguity) '{' '}' ')' ':' (rule start)
* (rule start) (ambiguity) '{' '}' ')' '[' (rule start)
* (rule start) (ambiguity) '{' '}' ')' (rule start)
* (rule start) (ambiguity) '{' fields+=Field
* (rule start) (ambiguity) value=LUA_NUMBER
* (rule start) (ambiguity) value=LUA_STRING
* (rule start) (ambiguity) {Expression_AccessArray.array=}
* (rule start) (ambiguity) {Expression_AccessMember.object=}
* (rule start) (ambiguity) {Expression_And.left=}
* (rule start) (ambiguity) {Expression_CallFunction.object=}
* (rule start) (ambiguity) {Expression_CallMemberFunction.object=}
* (rule start) (ambiguity) {Expression_Concatenation.left=}
* (rule start) (ambiguity) {Expression_Division.left=}
* (rule start) (ambiguity) {Expression_Equal.left=}
* (rule start) (ambiguity) {Expression_Exponentiation.left=}
* (rule start) (ambiguity) {Expression_Larger.left=}
* (rule start) (ambiguity) {Expression_Larger_Equal.left=}
* (rule start) (ambiguity) {Expression_Minus.left=}
* (rule start) (ambiguity) {Expression_Modulo.left=}
* (rule start) (ambiguity) {Expression_Multiplication.left=}
* (rule start) (ambiguity) {Expression_Not_Equal.left=}
* (rule start) (ambiguity) {Expression_Or.left=}
* (rule start) (ambiguity) {Expression_Plus.left=}
* (rule start) (ambiguity) {Expression_Smaller.left=}
* (rule start) (ambiguity) {Expression_Smaller_Equal.left=}
*/
protected void emit_Expression_VariableName_LeftParenthesisKeyword_0_0_p(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
acceptNodes(transition, nodes);
}
/**
* Ambiguous syntax:
* ','?
*
* This ambiguous syntax occurs at:
* parameters+=LUA_NAME (ambiguity) ')' body=Block
* parameters+=LUA_NAME (ambiguity) varArgs?='...'
*/
protected void emit_Function_CommaKeyword_1_2_q(EObject semanticObject, ISynNavigable transition, List<INode> nodes) {
acceptNodes(transition, nodes);
}
}