private void testSequence(String stringModel) throws Exception { EObject model = getModel(stringModel); ISerializationContext context = nmSequencer.findContexts(model, true, null).iterator().next(); DebugSequenceAcceptor actual = new NoEnterNodesDebugSequenceAcceptor(false); ISemanticSequencer semanticSequencer = semanticSequencerProvider.get(); ISyntacticSequencer syntacticSequencer = syntacticSequencerProvider.get(); IHiddenTokenSequencer hiddenTokenSequencer = hiddenTokenSequencerProvider.get(); semanticSequencer .init((ISemanticSequenceAcceptor) syntacticSequencer, ISerializationDiagnostic.STDERR_ACCEPTOR); syntacticSequencer.init(context, model, (ISyntacticSequenceAcceptor) hiddenTokenSequencer, ISerializationDiagnostic.STDERR_ACCEPTOR); hiddenTokenSequencer.init(context, model, actual, ISerializationDiagnostic.STDERR_ACCEPTOR); semanticSequencer.createSequence(context, model); // System.out.println(actual); // System.out.println(NodeModelUtils.compactDump(NodeModelUtils.findActualNodeFor(model), true)); assertEquals(Joiner.on("\n").join(getNodeSequence(model)), Joiner.on("\n").join(actual.getColumn(4))); }
@Override public void serialize(ITextRegionDiffBuilder result) { ISemanticSequencer semantic = semanticSequencerProvider.get(); ISyntacticSequencer syntactic = syntacticSequencerProvider.get(); IHiddenTokenSequencer hidden = hiddenTokenSequencerProvider.get(); semantic.init((ISemanticSequenceAcceptor) syntactic, errorAcceptor); syntactic.init(context, root, (ISyntacticSequenceAcceptor) hidden, errorAcceptor); ISequenceAcceptor acceptor; if (insertAt instanceof IHiddenRegion) { IHiddenRegion h = (IHiddenRegion) insertAt; acceptor = result.replaceSequence(h, h, context, root); } else { IHiddenRegion originalFirst = insertAt.getPreviousHiddenRegion(); IHiddenRegion originalLast = insertAt.getNextHiddenRegion(); acceptor = result.replaceSequence(originalFirst, originalLast, context, root); } hidden.init(context, root, acceptor, errorAcceptor); if (acceptor instanceof TokenStreamSequenceAdapter) ((TokenStreamSequenceAdapter) acceptor).init(context); semantic.createSequence(context, root); }
/** * @since 2.3 */ protected String serialize(EObject semanticObject, DelegatingSequenceAcceptor... acceptors) { ISequenceAcceptor debug = null; try { ISerializationDiagnostic.Acceptor errors = ISerializationDiagnostic.EXCEPTION_THROWING_ACCEPTOR; ISemanticSequencer semantic = semanticSequencerProvider.get(); ISyntacticSequencer syntactic = syntacticSequencerProvider.get(); IHiddenTokenSequencer hidden = hiddenTokenSequencerProvider.get(); ISequenceAcceptor result = new StringBufferSequenceAcceptor(); ISequenceAcceptor out = result; for (DelegatingSequenceAcceptor delegate : acceptors) { delegate.setDelegate(out); out = delegate; } out = debug = new DebugSequenceAcceptor(out); semantic.init((ISemanticSequenceAcceptor) syntactic, errors); ISerializationContext context = getContext(semanticObject); syntactic.init(context, semanticObject, (ISyntacticSequenceAcceptor) hidden, errors); hidden.init(context, semanticObject, out, errors); semantic.createSequence(context, semanticObject); return result.toString(); } catch (Exception t) { if (debug != null) { System.out.println("Serializer debug output:"); System.out.println(debug.toString()); } Exceptions.sneakyThrow(t); return ""; } }
/** * @deprecated use {@link #serialize(ISerializationContext, EObject, ISequenceAcceptor, ISerializationDiagnostic.Acceptor)} */ @Deprecated protected void serialize(EObject semanticObject, EObject context, ISequenceAcceptor tokens, ISerializationDiagnostic.Acceptor errors) { ISemanticSequencer semantic = semanticSequencerProvider.get(); ISyntacticSequencer syntactic = syntacticSequencerProvider.get(); IHiddenTokenSequencer hidden = hiddenTokenSequencerProvider.get(); semantic.init((ISemanticSequenceAcceptor) syntactic, errors); syntactic.init(context, semanticObject, (ISyntacticSequenceAcceptor) hidden, errors); hidden.init(context, semanticObject, tokens, errors); if (tokens instanceof TokenStreamSequenceAdapter) ((TokenStreamSequenceAdapter) tokens).init(context); semantic.createSequence(context, semanticObject); }
protected void serialize(ISerializationContext context, EObject semanticObject, ISequenceAcceptor tokens, ISerializationDiagnostic.Acceptor errors) { ISemanticSequencer semantic = semanticSequencerProvider.get(); ISyntacticSequencer syntactic = syntacticSequencerProvider.get(); IHiddenTokenSequencer hidden = hiddenTokenSequencerProvider.get(); semantic.init((ISemanticSequenceAcceptor) syntactic, errors); syntactic.init(context, semanticObject, (ISyntacticSequenceAcceptor) hidden, errors); hidden.init(context, semanticObject, tokens, errors); if (tokens instanceof TokenStreamSequenceAdapter) ((TokenStreamSequenceAdapter) tokens).init(context); semantic.createSequence(context, semanticObject); }
protected String serialize(EObject semanticObject, DelegatingSequenceAcceptor... acceptors) { ISequenceAcceptor debug = null; try { ISerializationDiagnostic.Acceptor errors = ISerializationDiagnostic.EXCEPTION_THROWING_ACCEPTOR; ISemanticSequencer semantic = semanticSequencerProvider.get(); ISyntacticSequencer syntactic = syntacticSequencerProvider.get(); IHiddenTokenSequencer hidden = hiddenTokenSequencerProvider.get(); ISequenceAcceptor result = new StringBufferSequenceAcceptor(); ISequenceAcceptor out = result; for (DelegatingSequenceAcceptor delegate : acceptors) { delegate.setDelegate(out); out = delegate; } out = debug = new DebugSequenceAcceptor(out); semantic.init((ISemanticSequenceAcceptor) syntactic, errors); ISerializationContext context = getContext(semanticObject); syntactic.init(context, semanticObject, (ISyntacticSequenceAcceptor) hidden, errors); hidden.init(context, semanticObject, out, errors); semantic.createSequence(context, semanticObject); return result.toString(); } catch (Exception t) { if (debug != null) { System.out.println("Serializer debug output:"); System.out.println(debug.toString()); } Exceptions.sneakyThrow(t); return ""; } }
protected void serializeToTokenBuffer(String model, ITokenStream out) throws Exception { EObject semanticObject = get(ParseHelper.class).parse(model); ISerializationDiagnostic.Acceptor errors = ISerializationDiagnostic.EXCEPTION_THROWING_ACCEPTOR; ISemanticSequencer semantic = get(ISemanticSequencer.class); ISyntacticSequencer syntactic = get(ISyntacticSequencer.class); IHiddenTokenSequencer hidden = get(IHiddenTokenSequencer.class); TokenStreamSequenceAdapter tokenstream = new TokenStreamSequenceAdapter(out, getGrammarAccess().getGrammar(), errors); semantic.init((ISemanticSequenceAcceptor) syntactic, errors); ISerializationContext context = new SerializationContext.RuleContext(null, (ParserRule) get(IGrammarAccess.class).getGrammar().getRules().get(0)); syntactic.init(context, semanticObject, (ISyntacticSequenceAcceptor) hidden, errors); hidden.init(context, semanticObject, tokenstream, errors); tokenstream.init(context); semantic.createSequence(context, semanticObject); }