From 88f88178f49ddbe0c6941dffb18ce01b0a25d016 Mon Sep 17 00:00:00 2001 From: Moritz Eysholdt Date: Wed, 5 Aug 2015 17:45:55 +0200 Subject: [PATCH] [xtext.xtext] use new Serializer instead of ParseTreeConstructor The 'SerializerFragment' is intentionally not used because it generates Java files which would become public API. The Serializer is fully functional without the SerializerFragment. Signed-off-by: Moritz Eysholdt --- plugins/org.eclipse.xtext/.settings/.api_filters | 8 ++++++++ plugins/org.eclipse.xtext/META-INF/MANIFEST.MF | 1 - .../src/org/eclipse/xtext/XtextRuntimeModule.java | 10 ++++++++++ .../sequencer/AbstractSyntacticSequencer.java | 2 +- 4 files changed, 19 insertions(+), 2 deletions(-) diff --git a/plugins/org.eclipse.xtext/.settings/.api_filters b/plugins/org.eclipse.xtext/.settings/.api_filters index cda6b39c6..e02c82365 100644 --- a/plugins/org.eclipse.xtext/.settings/.api_filters +++ b/plugins/org.eclipse.xtext/.settings/.api_filters @@ -24,6 +24,14 @@ + + + + + + + + diff --git a/plugins/org.eclipse.xtext/META-INF/MANIFEST.MF b/plugins/org.eclipse.xtext/META-INF/MANIFEST.MF index f62f99e61..837467a7f 100644 --- a/plugins/org.eclipse.xtext/META-INF/MANIFEST.MF +++ b/plugins/org.eclipse.xtext/META-INF/MANIFEST.MF @@ -48,7 +48,6 @@ Export-Package: org.eclipse.xtext, org.eclipse.xtext.nodemodel.impl, org.eclipse.xtext.nodemodel.serialization;x-internal:=true, org.eclipse.xtext.nodemodel.util, - org.eclipse.xtext.parseTreeConstruction;x-internal:=true, org.eclipse.xtext.parser, org.eclipse.xtext.parser.antlr, org.eclipse.xtext.parser.antlr.internal;x-internal:=true, diff --git a/plugins/org.eclipse.xtext/src/org/eclipse/xtext/XtextRuntimeModule.java b/plugins/org.eclipse.xtext/src/org/eclipse/xtext/XtextRuntimeModule.java index 2c873fd25..a32afe83d 100644 --- a/plugins/org.eclipse.xtext/src/org/eclipse/xtext/XtextRuntimeModule.java +++ b/plugins/org.eclipse.xtext/src/org/eclipse/xtext/XtextRuntimeModule.java @@ -29,6 +29,8 @@ import org.eclipse.xtext.resource.XtextResource; import org.eclipse.xtext.scoping.IGlobalScopeProvider; import org.eclipse.xtext.scoping.IScopeProvider; import org.eclipse.xtext.scoping.impl.DefaultGlobalScopeProvider; +import org.eclipse.xtext.serializer.ISerializer; +import org.eclipse.xtext.serializer.impl.Serializer; import org.eclipse.xtext.validation.ConfigurableIssueCodesProvider; import org.eclipse.xtext.validation.IDiagnosticConverter; import org.eclipse.xtext.xtext.GrammarResource; @@ -182,4 +184,12 @@ public class XtextRuntimeModule extends AbstractXtextRuntimeModule { public Class bindSyntaxErrorMessageProvider() { return CardinalityAwareSyntaxErrorMessageProvider.class; } + + /** + * @since 2.9 + */ + @Override + public Class bindISerializer() { + return Serializer.class; + } } diff --git a/plugins/org.eclipse.xtext/src/org/eclipse/xtext/serializer/sequencer/AbstractSyntacticSequencer.java b/plugins/org.eclipse.xtext/src/org/eclipse/xtext/serializer/sequencer/AbstractSyntacticSequencer.java index 0663c67e4..511576fc0 100644 --- a/plugins/org.eclipse.xtext/src/org/eclipse/xtext/serializer/sequencer/AbstractSyntacticSequencer.java +++ b/plugins/org.eclipse.xtext/src/org/eclipse/xtext/serializer/sequencer/AbstractSyntacticSequencer.java @@ -105,7 +105,7 @@ public abstract class AbstractSyntacticSequencer implements ISyntacticSequencer, protected TokenUtil tokenUtil; protected void accept(INode fromNode, List path, RuleCallStack stack) { - if (path.isEmpty()) + if (path == null || path.isEmpty()) return; EmitterNodeFinder nodes = new EmitterNodeFinder(fromNode); // RCStack bak = stack.clone();