X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=yang%2Fyang-parser-rfc7950%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fparser%2Frfc7950%2Frepo%2FYangStatementStreamSource.java;h=911831d402e4200d6303dc349abd1261e00cb7fe;hb=4a8e592b4c86c6cb1a82104542e826314a445d46;hp=354e8d93afe0b742d3ba113bf7b7a05fbac05aec;hpb=92c583f7e46e1d7fda8c5b0f50bb84de7072d374;p=yangtools.git diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/repo/YangStatementStreamSource.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/repo/YangStatementStreamSource.java index 354e8d93af..911831d402 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/repo/YangStatementStreamSource.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/repo/YangStatementStreamSource.java @@ -7,23 +7,14 @@ */ package org.opendaylight.yangtools.yang.parser.rfc7950.repo; -import static com.google.common.base.Preconditions.checkArgument; +import static com.google.common.base.Verify.verifyNotNull; import static java.util.Objects.requireNonNull; import com.google.common.annotations.Beta; -import com.google.common.collect.ImmutableList; import java.io.IOException; import java.io.InputStream; import org.antlr.v4.runtime.CharStreams; import org.antlr.v4.runtime.CommonTokenStream; -import org.antlr.v4.runtime.ParserRuleContext; -import org.antlr.v4.runtime.tree.ErrorNode; -import org.antlr.v4.runtime.tree.ParseTreeListener; -import org.antlr.v4.runtime.tree.ParseTreeWalker; -import org.antlr.v4.runtime.tree.TerminalNode; -import org.opendaylight.yangtools.antlrv4.code.gen.YangStatementLexer; -import org.opendaylight.yangtools.antlrv4.code.gen.YangStatementParser; -import org.opendaylight.yangtools.antlrv4.code.gen.YangStatementParser.StatementContext; import org.opendaylight.yangtools.concepts.AbstractIdentifiable; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; @@ -32,6 +23,15 @@ import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition; import org.opendaylight.yangtools.yang.model.parser.api.YangSyntaxErrorException; import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier; import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource; +import org.opendaylight.yangtools.yang.parser.antlr.YangStatementLexer; +import org.opendaylight.yangtools.yang.parser.antlr.YangStatementParser; +import org.opendaylight.yangtools.yang.parser.antlr.YangStatementParser.FileContext; +import org.opendaylight.yangtools.yang.parser.antlr.YangStatementParser.StatementContext; +import org.opendaylight.yangtools.yang.parser.rfc7950.antlr.CompactYangStatementLexer; +import org.opendaylight.yangtools.yang.parser.rfc7950.ir.AntlrSupport; +import org.opendaylight.yangtools.yang.parser.rfc7950.ir.IRKeyword; +import org.opendaylight.yangtools.yang.parser.rfc7950.ir.IRSchemaSource; +import org.opendaylight.yangtools.yang.parser.rfc7950.ir.IRStatement; import org.opendaylight.yangtools.yang.parser.spi.source.PrefixToModule; import org.opendaylight.yangtools.yang.parser.spi.source.QNameToStatementDefinition; import org.opendaylight.yangtools.yang.parser.spi.source.SourceException; @@ -48,35 +48,13 @@ import org.opendaylight.yangtools.yang.parser.spi.source.StatementWriter; @Beta public final class YangStatementStreamSource extends AbstractIdentifiable implements StatementStreamSource { - private static final ParseTreeListener MAKE_IMMUTABLE_LISTENER = new ParseTreeListener() { - @Override - public void enterEveryRule(final ParserRuleContext ctx) { - // No-op - } - - @Override - public void exitEveryRule(final ParserRuleContext ctx) { - ctx.children = ctx.children == null ? ImmutableList.of() : ImmutableList.copyOf(ctx.children); - } - - @Override - public void visitTerminal(final TerminalNode node) { - // No-op - } - - @Override - public void visitErrorNode(final ErrorNode node) { - // No-op - } - }; - - private final StatementContext context; + private final IRStatement rootStatement; private final String sourceName; - private YangStatementStreamSource(final SourceIdentifier identifier, final StatementContext context, + private YangStatementStreamSource(final SourceIdentifier identifier, final IRStatement rootStatement, final String sourceName) { super(identifier); - this.context = requireNonNull(context); + this.rootStatement = requireNonNull(rootStatement); this.sourceName = sourceName; } @@ -90,35 +68,29 @@ public final class YangStatementStreamSource extends AbstractIdentifiable