code: /*
   * generated by Xtext 2.18.0.M3
   */
  package co.edu.uniandes.accordant_rq.serializer;
  
  import co.edu.uniandes.accordant_rq.services.AinlGrammarAccess;
  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.ISyntacticSequencerPDAProvider.ISynTransition;
  import org.eclipse.xtext.serializer.sequencer.AbstractSyntacticSequencer;
  
  @SuppressWarnings("all")
  public abstract class AbstractAinlSyntacticSequencer extends AbstractSyntacticSequencer {
  
  	protected AinlGrammarAccess grammarAccess;
  	
  	@Inject
  	protected void init(IGrammarAccess access) {
  		grammarAccess = (AinlGrammarAccess) access;
  	}
  	
  	@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);
  			acceptNodes(getLastNavigableState(), syntaxNodes);
  		}
  	}
  
  }
  