use of org.eclipse.xtext.serializer.sequencer.ISyntacticSequencer in project xtext-core by eclipse.
the class SerializerTestHelper method serialize.
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 "";
}
}
use of org.eclipse.xtext.serializer.sequencer.ISyntacticSequencer in project xtext-core by eclipse.
the class SyntacticSequencerTest method testSequence.
private void testSequence(EObject inObj, String outModel) throws Exception {
EObject outObj = getModel(outModel);
ISerializationContext context = nmSequencer.findContexts(inObj, true, null).iterator().next();
Acceptor actual = new Acceptor();
ISemanticSequencer semanticSeq = semanticSequencerProvider.get();
ISyntacticSequencer syntacticSeq = syntacticSequencerProvider.get();
semanticSeq.init((ISemanticSequenceAcceptor) syntacticSeq, ISerializationDiagnostic.STDERR_ACCEPTOR);
syntacticSeq.init(context, inObj, actual, ISerializationDiagnostic.STDERR_ACCEPTOR);
semanticSeq.createSequence(context, inObj);
assertEquals(Joiner.on("\n").join(getNodeSequence(outObj)), Joiner.on("\n").join(actual.getResult()));
}
use of org.eclipse.xtext.serializer.sequencer.ISyntacticSequencer in project xtext-core by eclipse.
the class Serializer method serialize.
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);
}
use of org.eclipse.xtext.serializer.sequencer.ISyntacticSequencer in project xtext-core by eclipse.
the class Serializer method serialize.
/**
* @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);
}
use of org.eclipse.xtext.serializer.sequencer.ISyntacticSequencer in project xtext-core by eclipse.
the class HiddenTokenSequencerTest method testSequence.
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)));
}
Aggregations