X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=yang%2Fyang-parser-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fparser%2Futil%2FTextToASTTransformer.java;h=aa1b73e5c915af44d91aec21dee72b91873f00bd;hb=34f9631ab5302045214340d9ff91a9e3a16beca2;hp=c808f1102e132886b18d36d34a495a48d1b8130c;hpb=125664d011d7ae1c64b1cc0ddfea3ca2ec45a97b;p=yangtools.git diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/util/TextToASTTransformer.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/util/TextToASTTransformer.java index c808f1102e..aa1b73e5c9 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/util/TextToASTTransformer.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/util/TextToASTTransformer.java @@ -1,30 +1,27 @@ /* - * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved. + * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved. + * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ + package org.opendaylight.yangtools.yang.parser.util; +import org.antlr.v4.runtime.ParserRuleContext; +import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangStatementSourceImpl; import com.google.common.annotations.Beta; import com.google.common.base.Charsets; -import com.google.common.io.ByteSource; import com.google.common.util.concurrent.CheckedFuture; import com.google.common.util.concurrent.Futures; - import java.io.IOException; import java.io.InputStream; - -import org.antlr.v4.runtime.tree.ParseTreeWalker; -import org.opendaylight.yangtools.antlrv4.code.gen.YangParser.YangContext; import org.opendaylight.yangtools.yang.model.parser.api.YangSyntaxErrorException; import org.opendaylight.yangtools.yang.model.repo.api.SchemaRepository; import org.opendaylight.yangtools.yang.model.repo.api.SchemaSourceException; import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource; import org.opendaylight.yangtools.yang.model.repo.spi.SchemaSourceRegistry; import org.opendaylight.yangtools.yang.model.repo.util.SchemaSourceTransformer; -import org.opendaylight.yangtools.yang.parser.impl.YangModelBasicValidationListener; -import org.opendaylight.yangtools.yang.parser.impl.YangParserImpl; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -34,25 +31,18 @@ import org.slf4j.LoggerFactory; */ @Beta public final class TextToASTTransformer extends SchemaSourceTransformer { + public static final class TextToASTTransformation implements Transformation { @Override public CheckedFuture apply(final YangTextSchemaSource input) throws IOException, YangSyntaxErrorException { try (InputStream is = input.openStream()) { - final YangContext ctx = YangParserImpl.parseYangSource(is); + final ParserRuleContext ctx = new YangStatementSourceImpl(is).getYangAST(); LOG.debug("Model {} parsed successfully", input); - final ParseTreeWalker walker = new ParseTreeWalker(); - final YangModelBasicValidationListener validator = new YangModelBasicValidationListener(); - walker.walk(validator, ctx); - LOG.debug("Model {} validated successfully", input); + //:TODO missing validation (YangModelBasicValidationListener should be re-implemented to new parser) // Backwards compatibility - final String text = new ByteSource() { - @Override - public InputStream openStream() throws IOException { - return input.openStream(); - } - }.asCharSource(Charsets.UTF_8).read(); + final String text = input.asCharSource(Charsets.UTF_8).read(); return Futures.immediateCheckedFuture(ASTSchemaSource.create(input.getIdentifier().getName(), ctx, text)); } @@ -66,7 +56,7 @@ public final class TextToASTTransformer extends SchemaSourceTransformer