/* * generated by Xtext */ package org.erlide.serializer; 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.GroupAlias; 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.erlide.services.ErlangGrammarAccess; import com.google.inject.Inject; @SuppressWarnings("all") public abstract class AbstractErlangSyntacticSequencer extends AbstractSyntacticSequencer { protected ErlangGrammarAccess grammarAccess; protected AbstractElementAlias match_DefineAttribute_CommaKeyword_4_0_q; protected AbstractElementAlias match_DefineAttribute___LeftParenthesisKeyword_3_0_RightParenthesisKeyword_3_2__q; protected AbstractElementAlias match_Expr700___LeftParenthesisKeyword_1_0_4_0_RightParenthesisKeyword_1_0_4_2__q; protected AbstractElementAlias match_ExprMax_LeftParenthesisKeyword_1_0_a; protected AbstractElementAlias match_ExprMax_LeftParenthesisKeyword_1_0_p; protected AbstractElementAlias match_FunType100_FullStopFullStopFullStopKeyword_2_0_q; protected AbstractElementAlias match_FunctionClause_WhenKeyword_4_0_q; protected AbstractElementAlias match_MacroCall___LeftParenthesisKeyword_1_0_RightParenthesisKeyword_1_2__q; protected AbstractElementAlias match_Type___CommaKeyword_4_2_1_0_FullStopFullStopFullStopKeyword_4_2_1_1__q; protected AbstractElementAlias match_Type___LeftParenthesisKeyword_1_3_0_RightParenthesisKeyword_1_3_2__q; @Inject protected void init(final IGrammarAccess access) { grammarAccess = (ErlangGrammarAccess) access; match_DefineAttribute_CommaKeyword_4_0_q = new TokenAlias(false, true, grammarAccess.getDefineAttributeAccess().getCommaKeyword_4_0()); match_DefineAttribute___LeftParenthesisKeyword_3_0_RightParenthesisKeyword_3_2__q = new GroupAlias( false, true, new TokenAlias(false, false, grammarAccess .getDefineAttributeAccess() .getLeftParenthesisKeyword_3_0()), new TokenAlias( false, false, grammarAccess.getDefineAttributeAccess() .getRightParenthesisKeyword_3_2())); match_Expr700___LeftParenthesisKeyword_1_0_4_0_RightParenthesisKeyword_1_0_4_2__q = new GroupAlias( false, true, new TokenAlias(false, false, grammarAccess.getExpr700Access() .getLeftParenthesisKeyword_1_0_4_0()), new TokenAlias( false, false, grammarAccess.getExpr700Access() .getRightParenthesisKeyword_1_0_4_2())); match_ExprMax_LeftParenthesisKeyword_1_0_a = new TokenAlias(true, true, grammarAccess.getExprMaxAccess() .getLeftParenthesisKeyword_1_0()); match_ExprMax_LeftParenthesisKeyword_1_0_p = new TokenAlias(true, false, grammarAccess.getExprMaxAccess() .getLeftParenthesisKeyword_1_0()); match_FunType100_FullStopFullStopFullStopKeyword_2_0_q = new TokenAlias( false, true, grammarAccess.getFunType100Access() .getFullStopFullStopFullStopKeyword_2_0()); match_FunctionClause_WhenKeyword_4_0_q = new TokenAlias(false, true, grammarAccess.getFunctionClauseAccess().getWhenKeyword_4_0()); match_MacroCall___LeftParenthesisKeyword_1_0_RightParenthesisKeyword_1_2__q = new GroupAlias( false, true, new TokenAlias(false, false, grammarAccess .getMacroCallAccess().getLeftParenthesisKeyword_1_0()), new TokenAlias(false, false, grammarAccess.getMacroCallAccess() .getRightParenthesisKeyword_1_2())); match_Type___CommaKeyword_4_2_1_0_FullStopFullStopFullStopKeyword_4_2_1_1__q = new GroupAlias( false, true, new TokenAlias(false, false, grammarAccess .getTypeAccess().getCommaKeyword_4_2_1_0()), new TokenAlias(false, false, grammarAccess.getTypeAccess() .getFullStopFullStopFullStopKeyword_4_2_1_1())); match_Type___LeftParenthesisKeyword_1_3_0_RightParenthesisKeyword_1_3_2__q = new GroupAlias( false, true, new TokenAlias(false, false, grammarAccess .getTypeAccess().getLeftParenthesisKeyword_1_3_0()), new TokenAlias(false, false, grammarAccess.getTypeAccess() .getRightParenthesisKeyword_1_3_2())); } @Override protected String getUnassignedRuleCallToken(final EObject semanticObject, final RuleCall ruleCall, final INode node) { if (ruleCall.getRule() == grammarAccess.getLineExprRule()) { return getLineExprToken(semanticObject, ruleCall, node); } return ""; } /** * LineExpr: '?' 'line' ; */ protected String getLineExprToken(final EObject semanticObject, final RuleCall ruleCall, final INode node) { if (node != null) { return getTokenText(node); } return "?line"; } @Override protected void emitUnassignedTokens(final EObject semanticObject, final ISynTransition transition, final INode fromNode, final INode toNode) { if (transition.getAmbiguousSyntaxes().isEmpty()) { return; } final List<INode> transitionNodes = collectNodes(fromNode, toNode); for (final AbstractElementAlias syntax : transition .getAmbiguousSyntaxes()) { final List<INode> syntaxNodes = getNodesFor(transitionNodes, syntax); if (match_DefineAttribute_CommaKeyword_4_0_q.equals(syntax)) { emit_DefineAttribute_CommaKeyword_4_0_q(semanticObject, getLastNavigableState(), syntaxNodes); } else if (match_DefineAttribute___LeftParenthesisKeyword_3_0_RightParenthesisKeyword_3_2__q .equals(syntax)) { emit_DefineAttribute___LeftParenthesisKeyword_3_0_RightParenthesisKeyword_3_2__q( semanticObject, getLastNavigableState(), syntaxNodes); } else if (match_Expr700___LeftParenthesisKeyword_1_0_4_0_RightParenthesisKeyword_1_0_4_2__q .equals(syntax)) { emit_Expr700___LeftParenthesisKeyword_1_0_4_0_RightParenthesisKeyword_1_0_4_2__q( semanticObject, getLastNavigableState(), syntaxNodes); } else if (match_ExprMax_LeftParenthesisKeyword_1_0_a .equals(syntax)) { emit_ExprMax_LeftParenthesisKeyword_1_0_a(semanticObject, getLastNavigableState(), syntaxNodes); } else if (match_ExprMax_LeftParenthesisKeyword_1_0_p .equals(syntax)) { emit_ExprMax_LeftParenthesisKeyword_1_0_p(semanticObject, getLastNavigableState(), syntaxNodes); } else if (match_FunType100_FullStopFullStopFullStopKeyword_2_0_q .equals(syntax)) { emit_FunType100_FullStopFullStopFullStopKeyword_2_0_q( semanticObject, getLastNavigableState(), syntaxNodes); } else if (match_FunctionClause_WhenKeyword_4_0_q.equals(syntax)) { emit_FunctionClause_WhenKeyword_4_0_q(semanticObject, getLastNavigableState(), syntaxNodes); } else if (match_MacroCall___LeftParenthesisKeyword_1_0_RightParenthesisKeyword_1_2__q .equals(syntax)) { emit_MacroCall___LeftParenthesisKeyword_1_0_RightParenthesisKeyword_1_2__q( semanticObject, getLastNavigableState(), syntaxNodes); } else if (match_Type___CommaKeyword_4_2_1_0_FullStopFullStopFullStopKeyword_4_2_1_1__q .equals(syntax)) { emit_Type___CommaKeyword_4_2_1_0_FullStopFullStopFullStopKeyword_4_2_1_1__q( semanticObject, getLastNavigableState(), syntaxNodes); } else if (match_Type___LeftParenthesisKeyword_1_3_0_RightParenthesisKeyword_1_3_2__q .equals(syntax)) { emit_Type___LeftParenthesisKeyword_1_3_0_RightParenthesisKeyword_1_3_2__q( semanticObject, getLastNavigableState(), syntaxNodes); } else { acceptNodes(getLastNavigableState(), syntaxNodes); } } } /** * Ambiguous syntax: ','? * * This ambiguous syntax occurs at: args+=PatternExpression ')' (ambiguity) * ')' '.' (rule end) macroName=NAMEVAR ('(' ')')? (ambiguity) ')' '.' (rule * end) */ protected void emit_DefineAttribute_CommaKeyword_4_0_q( final EObject semanticObject, final ISynNavigable transition, final List<INode> nodes) { acceptNodes(transition, nodes); } /** * Ambiguous syntax: ('(' ')')? * * This ambiguous syntax occurs at: macroName=NAMEVAR (ambiguity) ',' * value=Guard macroName=NAMEVAR (ambiguity) ','? ')' '.' (rule end) */ protected void emit_DefineAttribute___LeftParenthesisKeyword_3_0_RightParenthesisKeyword_3_2__q( final EObject semanticObject, final ISynNavigable transition, final List<INode> nodes) { acceptNodes(transition, nodes); } /** * Ambiguous syntax: ('(' ')')? * * This ambiguous syntax occurs at: args=Expressions ')' (ambiguity) ')' '#' * (rule end) args=Expressions ')' (ambiguity) ')' '(' (rule end) * args=Expressions ')' (ambiguity) ')' (rule end) args=Expressions ')' * (ambiguity) (rule end) {FunCall.target=} ')' (ambiguity) ')' '#' (rule * end) {FunCall.target=} ')' (ambiguity) ')' '(' (rule end) * {FunCall.target=} ')' (ambiguity) ')' (rule end) {FunCall.target=} ')' * (ambiguity) (rule end) */ protected void emit_Expr700___LeftParenthesisKeyword_1_0_4_0_RightParenthesisKeyword_1_0_4_2__q( final EObject semanticObject, final ISynNavigable transition, final List<INode> nodes) { acceptNodes(transition, nodes); } /** * Ambiguous syntax: * '('* * * This ambiguous syntax occurs at: * (rule start) (ambiguity) '#' rec=RecordVarMacro * (rule start) (ambiguity) '<<' '>>' '#' (rule start) * (rule start) (ambiguity) '<<' '>>' '(' (rule start) * (rule start) (ambiguity) '<<' '>>' (rule start) * (rule start) (ambiguity) '<<' elements+=BinaryItem * (rule start) (ambiguity) '[' ']' '#' (rule start) * (rule start) (ambiguity) '[' ']' '(' (rule start) * (rule start) (ambiguity) '[' ']' (rule start) * (rule start) (ambiguity) '[' elements+=Expression * (rule start) (ambiguity) 'begin' body=Expressions * (rule start) (ambiguity) 'case' expr=Expression * (rule start) (ambiguity) 'catch' expr=Expression * (rule start) (ambiguity) 'cond' '#' (rule start) * (rule start) (ambiguity) 'cond' '(' (rule start) * (rule start) (ambiguity) 'cond' (rule start) * (rule start) (ambiguity) 'fun' clauses+=FunctionClause * (rule start) (ambiguity) 'fun' function=FunctionVarMacro * (rule start) (ambiguity) 'fun' module=ModuleVarMacro * (rule start) (ambiguity) 'if' clauses+=IfClause * (rule start) (ambiguity) 'let' '#' (rule start) * (rule start) (ambiguity) 'let' '(' (rule start) * (rule start) (ambiguity) 'let' (rule start) * (rule start) (ambiguity) 'query' '#' (rule start) * (rule start) (ambiguity) 'query' '(' (rule start) * (rule start) (ambiguity) 'query' (rule start) * (rule start) (ambiguity) 'receive' 'after' after_expr=Expression * (rule start) (ambiguity) 'receive' clauses+=CrClause * (rule start) (ambiguity) 'try' body=Expressions * (rule start) (ambiguity) '{' '}' '#' (rule start) * (rule start) (ambiguity) '{' '}' '(' (rule start) * (rule start) (ambiguity) '{' '}' (rule start) * (rule start) (ambiguity) '{' elements+=Expression * (rule start) (ambiguity) op=PREFIXOP * (rule start) (ambiguity) parts+=StringLiteralLiteral * (rule start) (ambiguity) value=CHAR * (rule start) (ambiguity) value=FLOAT * (rule start) (ambiguity) value=INTEGER * (rule start) (ambiguity) value=NAME * (rule start) (ambiguity) value=[DefineAttribute|MACRO] * (rule start) (ambiguity) value=[Expression|VARIABLE] * (rule start) (ambiguity) {AddOp.opLeft=} * (rule start) (ambiguity) {BinOp.opLeft=} * (rule start) (ambiguity) {BinaryComprehension.root=} * (rule start) (ambiguity) {FunCall.target=} * (rule start) (ambiguity) {ListComprehension.root=} * (rule start) (ambiguity) {MatchExpr.opLeft=} * (rule start) (ambiguity) {MultOp.opLeft=} * (rule start) (ambiguity) {RecordExpr.ref=} * (rule start) (ambiguity) {RemoteTarget.module=} */ protected void emit_ExprMax_LeftParenthesisKeyword_1_0_a( final EObject semanticObject, final ISynNavigable transition, final List<INode> nodes) { acceptNodes(transition, nodes); } /** * Ambiguous syntax: '('+ * * This ambiguous syntax occurs at: (rule start) (ambiguity) 'catch' * expr=Expression (rule start) (ambiguity) op=PREFIXOP (rule start) * (ambiguity) {AddOp.opLeft=} (rule start) (ambiguity) {BinOp.opLeft=} * (rule start) (ambiguity) {FunCall.target=} (rule start) (ambiguity) * {MatchExpr.opLeft=} (rule start) (ambiguity) {MultOp.opLeft=} (rule * start) (ambiguity) {RecordExpr.ref=} (rule start) (ambiguity) * {RemoteTarget.module=} */ protected void emit_ExprMax_LeftParenthesisKeyword_1_0_p( final EObject semanticObject, final ISynNavigable transition, final List<INode> nodes) { acceptNodes(transition, nodes); } /** * Ambiguous syntax: '...'? * * This ambiguous syntax occurs at: (rule start) '(' (ambiguity) ')' '->' * return=TopType */ protected void emit_FunType100_FullStopFullStopFullStopKeyword_2_0_q( final EObject semanticObject, final ISynNavigable transition, final List<INode> nodes) { acceptNodes(transition, nodes); } /** * Ambiguous syntax: 'when'? * * This ambiguous syntax occurs at: (rule start) '(' ')' (ambiguity) * guard=Guard params=Expressions ')' (ambiguity) guard=Guard * ref=[Function|NAME] '(' ')' (ambiguity) guard=Guard */ protected void emit_FunctionClause_WhenKeyword_4_0_q( final EObject semanticObject, final ISynNavigable transition, final List<INode> nodes) { acceptNodes(transition, nodes); } /** * Ambiguous syntax: ('(' ')')? * * This ambiguous syntax occurs at: macroName=MacroLiteral (ambiguity) (rule * end) */ protected void emit_MacroCall___LeftParenthesisKeyword_1_0_RightParenthesisKeyword_1_2__q( final EObject semanticObject, final ISynNavigable transition, final List<INode> nodes) { acceptNodes(transition, nodes); } /** * Ambiguous syntax: (',' '...')? * * This ambiguous syntax occurs at: type=TopType (ambiguity) ']' (rule end) */ protected void emit_Type___CommaKeyword_4_2_1_0_FullStopFullStopFullStopKeyword_4_2_1_1__q( final EObject semanticObject, final ISynNavigable transition, final List<INode> nodes) { acceptNodes(transition, nodes); } /** * Ambiguous syntax: ('(' ')')? * * This ambiguous syntax occurs at: typeName=TypeRef (ambiguity) (rule end) */ protected void emit_Type___LeftParenthesisKeyword_1_3_0_RightParenthesisKeyword_1_3_2__q( final EObject semanticObject, final ISynNavigable transition, final List<INode> nodes) { acceptNodes(transition, nodes); } }