[ONOS-3878] parse tree traversal using listener framework
Change-Id: I53c18593281399f83a2b9bf9df2f7261c69c00b2
diff --git a/src/main/java/org/onosproject/yangutils/parser/impl/TreeWalkListener.java b/src/main/java/org/onosproject/yangutils/parser/impl/TreeWalkListener.java
new file mode 100644
index 0000000..6cb764b
--- /dev/null
+++ b/src/main/java/org/onosproject/yangutils/parser/impl/TreeWalkListener.java
@@ -0,0 +1,1170 @@
+/*
+ * Copyright 2016 Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onosproject.yangutils.parser.impl;
+
+import org.antlr.v4.runtime.ParserRuleContext;
+import org.antlr.v4.runtime.tree.ErrorNode;
+import org.antlr.v4.runtime.tree.TerminalNode;
+import org.onosproject.yangutils.datamodel.YangNode;
+import org.onosproject.yangutils.parser.Parsable;
+import org.onosproject.yangutils.parser.antlrgencode.GeneratedYangListener;
+import org.onosproject.yangutils.parser.antlrgencode.GeneratedYangParser;
+import org.onosproject.yangutils.parser.impl.parserutils.ListenerError;
+
+import java.util.Stack;
+
+/**
+ * ANTLR generates a parse-tree listener interface that responds to events
+ * triggered by the built-in tree walker. The methods in listener are just
+ * callbacks. This class implements listener interface and generates the
+ * corresponding data model tree.
+ */
+public class TreeWalkListener implements GeneratedYangListener {
+
+ // List of parsable node entries maintained in stack
+ private Stack<Parsable> parsedDataStack = new Stack<>();
+
+ // Parse tree root node
+ private YangNode rootNode;
+
+ // Maintains the state of Exception.
+ private ListenerError errorInformation = new ListenerError();
+
+ /**
+ * Returns stack of parsable data.
+ *
+ * @return stack of parsable data
+ */
+ public Stack<Parsable> getParsedDataStack() {
+ return parsedDataStack;
+ }
+
+ /**
+ * Returns error information.
+ *
+ * @return error information object having exception flag and message
+ */
+ public ListenerError getErrorInformation() {
+ return errorInformation;
+ }
+
+ /**
+ * Returns root node.
+ *
+ * @return rootNode of data model tree.
+ */
+ public YangNode getRootNode() {
+ return rootNode;
+ }
+
+ /**
+ * Set parsed data stack.
+ *
+ * @param parsedDataStack stack of parsable data objects.
+ */
+ public void setParsedDataStack(Stack<Parsable> parsedDataStack) {
+ this.parsedDataStack = parsedDataStack;
+ }
+
+ /**
+ * Set root node.
+ *
+ * @param rootNode root node of data model tree.
+ */
+ public void setRootNode(YangNode rootNode) {
+ this.rootNode = rootNode;
+ }
+
+ /**
+ * Set listener error information.
+ *
+ * @param errorInformation error occurred during tree walk.
+ */
+ public void setErrorInformation(ListenerError errorInformation) {
+ this.errorInformation = errorInformation;
+ }
+
+ @Override
+ public void enterYangfile(GeneratedYangParser.YangfileContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitYangfile(GeneratedYangParser.YangfileContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterModuleStatement(GeneratedYangParser.ModuleStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitModuleStatement(GeneratedYangParser.ModuleStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterModuleBody(GeneratedYangParser.ModuleBodyContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitModuleBody(GeneratedYangParser.ModuleBodyContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterModuleHeaderStatement(GeneratedYangParser.ModuleHeaderStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitModuleHeaderStatement(GeneratedYangParser.ModuleHeaderStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterLinkageStatements(GeneratedYangParser.LinkageStatementsContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitLinkageStatements(GeneratedYangParser.LinkageStatementsContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterMetaStatements(GeneratedYangParser.MetaStatementsContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitMetaStatements(GeneratedYangParser.MetaStatementsContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterRevisionStatements(GeneratedYangParser.RevisionStatementsContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitRevisionStatements(GeneratedYangParser.RevisionStatementsContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterBodyStatements(GeneratedYangParser.BodyStatementsContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitBodyStatements(GeneratedYangParser.BodyStatementsContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterYangVersionStatement(GeneratedYangParser.YangVersionStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitYangVersionStatement(GeneratedYangParser.YangVersionStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterNamespaceStatement(GeneratedYangParser.NamespaceStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitNamespaceStatement(GeneratedYangParser.NamespaceStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterPrefixStatement(GeneratedYangParser.PrefixStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitPrefixStatement(GeneratedYangParser.PrefixStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterImportStatement(GeneratedYangParser.ImportStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitImportStatement(GeneratedYangParser.ImportStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterImportStatementBody(GeneratedYangParser.ImportStatementBodyContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitImportStatementBody(GeneratedYangParser.ImportStatementBodyContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterRevisionDateStatement(GeneratedYangParser.RevisionDateStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitRevisionDateStatement(GeneratedYangParser.RevisionDateStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterIncludeStatement(GeneratedYangParser.IncludeStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitIncludeStatement(GeneratedYangParser.IncludeStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterOrganizationStatement(GeneratedYangParser.OrganizationStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitOrganizationStatement(GeneratedYangParser.OrganizationStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterContactStatement(GeneratedYangParser.ContactStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitContactStatement(GeneratedYangParser.ContactStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterDescriptionStatement(GeneratedYangParser.DescriptionStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitDescriptionStatement(GeneratedYangParser.DescriptionStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterReferenceStatement(GeneratedYangParser.ReferenceStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitReferenceStatement(GeneratedYangParser.ReferenceStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterRevisionStatement(GeneratedYangParser.RevisionStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitRevisionStatement(GeneratedYangParser.RevisionStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterRevisionStatementBody(GeneratedYangParser.RevisionStatementBodyContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitRevisionStatementBody(GeneratedYangParser.RevisionStatementBodyContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterSubModuleStatement(GeneratedYangParser.SubModuleStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitSubModuleStatement(GeneratedYangParser.SubModuleStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterSubmoduleBody(GeneratedYangParser.SubmoduleBodyContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitSubmoduleBody(GeneratedYangParser.SubmoduleBodyContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterSubmoduleHeaderStatement(GeneratedYangParser.SubmoduleHeaderStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitSubmoduleHeaderStatement(GeneratedYangParser.SubmoduleHeaderStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterBelongstoStatement(GeneratedYangParser.BelongstoStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitBelongstoStatement(GeneratedYangParser.BelongstoStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterBelongstoStatementBody(GeneratedYangParser.BelongstoStatementBodyContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitBelongstoStatementBody(GeneratedYangParser.BelongstoStatementBodyContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterExtensionStatement(GeneratedYangParser.ExtensionStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitExtensionStatement(GeneratedYangParser.ExtensionStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterExtensionBody(GeneratedYangParser.ExtensionBodyContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitExtensionBody(GeneratedYangParser.ExtensionBodyContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterArgumentStatement(GeneratedYangParser.ArgumentStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitArgumentStatement(GeneratedYangParser.ArgumentStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterArgumentBody(GeneratedYangParser.ArgumentBodyContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitArgumentBody(GeneratedYangParser.ArgumentBodyContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterYinElementStatement(GeneratedYangParser.YinElementStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitYinElementStatement(GeneratedYangParser.YinElementStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterIdentityStatement(GeneratedYangParser.IdentityStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitIdentityStatement(GeneratedYangParser.IdentityStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterIdentityBody(GeneratedYangParser.IdentityBodyContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitIdentityBody(GeneratedYangParser.IdentityBodyContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterBaseStatement(GeneratedYangParser.BaseStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitBaseStatement(GeneratedYangParser.BaseStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterFeatureStatement(GeneratedYangParser.FeatureStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitFeatureStatement(GeneratedYangParser.FeatureStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterFeatureBody(GeneratedYangParser.FeatureBodyContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitFeatureBody(GeneratedYangParser.FeatureBodyContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterDataDefStatement(GeneratedYangParser.DataDefStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitDataDefStatement(GeneratedYangParser.DataDefStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterIfFeatureStatement(GeneratedYangParser.IfFeatureStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitIfFeatureStatement(GeneratedYangParser.IfFeatureStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterUnitsStatement(GeneratedYangParser.UnitsStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitUnitsStatement(GeneratedYangParser.UnitsStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterTypedefStatement(GeneratedYangParser.TypedefStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitTypedefStatement(GeneratedYangParser.TypedefStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterTypeStatement(GeneratedYangParser.TypeStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitTypeStatement(GeneratedYangParser.TypeStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterTypeBodyStatements(GeneratedYangParser.TypeBodyStatementsContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitTypeBodyStatements(GeneratedYangParser.TypeBodyStatementsContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterNumericalRestrictions(GeneratedYangParser.NumericalRestrictionsContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitNumericalRestrictions(GeneratedYangParser.NumericalRestrictionsContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterRangeStatement(GeneratedYangParser.RangeStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitRangeStatement(GeneratedYangParser.RangeStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterCommonStatements(GeneratedYangParser.CommonStatementsContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitCommonStatements(GeneratedYangParser.CommonStatementsContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterStringRestrictions(GeneratedYangParser.StringRestrictionsContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitStringRestrictions(GeneratedYangParser.StringRestrictionsContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterLengthStatement(GeneratedYangParser.LengthStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitLengthStatement(GeneratedYangParser.LengthStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterPatternStatement(GeneratedYangParser.PatternStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitPatternStatement(GeneratedYangParser.PatternStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterDefaultStatement(GeneratedYangParser.DefaultStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitDefaultStatement(GeneratedYangParser.DefaultStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterEnumSpecification(GeneratedYangParser.EnumSpecificationContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitEnumSpecification(GeneratedYangParser.EnumSpecificationContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterEnumStatement(GeneratedYangParser.EnumStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitEnumStatement(GeneratedYangParser.EnumStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterEnumStatementBody(GeneratedYangParser.EnumStatementBodyContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitEnumStatementBody(GeneratedYangParser.EnumStatementBodyContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterLeafrefSpecification(GeneratedYangParser.LeafrefSpecificationContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitLeafrefSpecification(GeneratedYangParser.LeafrefSpecificationContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterPathStatement(GeneratedYangParser.PathStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitPathStatement(GeneratedYangParser.PathStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterRequireInstanceStatement(GeneratedYangParser.RequireInstanceStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitRequireInstanceStatement(GeneratedYangParser.RequireInstanceStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterInstanceIdentifierSpecification(GeneratedYangParser.InstanceIdentifierSpecificationContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitInstanceIdentifierSpecification(GeneratedYangParser.InstanceIdentifierSpecificationContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterIdentityrefSpecification(GeneratedYangParser.IdentityrefSpecificationContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitIdentityrefSpecification(GeneratedYangParser.IdentityrefSpecificationContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterUnionSpecification(GeneratedYangParser.UnionSpecificationContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitUnionSpecification(GeneratedYangParser.UnionSpecificationContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterBitsSpecification(GeneratedYangParser.BitsSpecificationContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitBitsSpecification(GeneratedYangParser.BitsSpecificationContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterBitStatement(GeneratedYangParser.BitStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitBitStatement(GeneratedYangParser.BitStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterBitBodyStatement(GeneratedYangParser.BitBodyStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitBitBodyStatement(GeneratedYangParser.BitBodyStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterPositionStatement(GeneratedYangParser.PositionStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitPositionStatement(GeneratedYangParser.PositionStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterStatusStatement(GeneratedYangParser.StatusStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitStatusStatement(GeneratedYangParser.StatusStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterConfigStatement(GeneratedYangParser.ConfigStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitConfigStatement(GeneratedYangParser.ConfigStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterMandatoryStatement(GeneratedYangParser.MandatoryStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitMandatoryStatement(GeneratedYangParser.MandatoryStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterPresenceStatement(GeneratedYangParser.PresenceStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitPresenceStatement(GeneratedYangParser.PresenceStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterOrderedByStatement(GeneratedYangParser.OrderedByStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitOrderedByStatement(GeneratedYangParser.OrderedByStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterMustStatement(GeneratedYangParser.MustStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitMustStatement(GeneratedYangParser.MustStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterErrorMessageStatement(GeneratedYangParser.ErrorMessageStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitErrorMessageStatement(GeneratedYangParser.ErrorMessageStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterErrorAppTagStatement(GeneratedYangParser.ErrorAppTagStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitErrorAppTagStatement(GeneratedYangParser.ErrorAppTagStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterMinElementsStatement(GeneratedYangParser.MinElementsStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitMinElementsStatement(GeneratedYangParser.MinElementsStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterMaxElementsStatement(GeneratedYangParser.MaxElementsStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitMaxElementsStatement(GeneratedYangParser.MaxElementsStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterMaxValueArgument(GeneratedYangParser.MaxValueArgumentContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitMaxValueArgument(GeneratedYangParser.MaxValueArgumentContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterValueStatement(GeneratedYangParser.ValueStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitValueStatement(GeneratedYangParser.ValueStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterGroupingStatement(GeneratedYangParser.GroupingStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitGroupingStatement(GeneratedYangParser.GroupingStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterContainerStatement(GeneratedYangParser.ContainerStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitContainerStatement(GeneratedYangParser.ContainerStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterLeafStatement(GeneratedYangParser.LeafStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitLeafStatement(GeneratedYangParser.LeafStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterLeafListStatement(GeneratedYangParser.LeafListStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitLeafListStatement(GeneratedYangParser.LeafListStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterListStatement(GeneratedYangParser.ListStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitListStatement(GeneratedYangParser.ListStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterKeyStatement(GeneratedYangParser.KeyStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitKeyStatement(GeneratedYangParser.KeyStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterUniqueStatement(GeneratedYangParser.UniqueStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitUniqueStatement(GeneratedYangParser.UniqueStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterChoiceStatement(GeneratedYangParser.ChoiceStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitChoiceStatement(GeneratedYangParser.ChoiceStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterShortCaseStatement(GeneratedYangParser.ShortCaseStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitShortCaseStatement(GeneratedYangParser.ShortCaseStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterCaseStatement(GeneratedYangParser.CaseStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitCaseStatement(GeneratedYangParser.CaseStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterUsesStatement(GeneratedYangParser.UsesStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitUsesStatement(GeneratedYangParser.UsesStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterRefineStatement(GeneratedYangParser.RefineStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitRefineStatement(GeneratedYangParser.RefineStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterRefineContainerStatements(GeneratedYangParser.RefineContainerStatementsContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitRefineContainerStatements(GeneratedYangParser.RefineContainerStatementsContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterRefineLeafStatements(GeneratedYangParser.RefineLeafStatementsContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitRefineLeafStatements(GeneratedYangParser.RefineLeafStatementsContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterRefineLeafListStatements(GeneratedYangParser.RefineLeafListStatementsContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitRefineLeafListStatements(GeneratedYangParser.RefineLeafListStatementsContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterRefineListStatements(GeneratedYangParser.RefineListStatementsContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitRefineListStatements(GeneratedYangParser.RefineListStatementsContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterRefineChoiceStatements(GeneratedYangParser.RefineChoiceStatementsContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitRefineChoiceStatements(GeneratedYangParser.RefineChoiceStatementsContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterRefineCaseStatements(GeneratedYangParser.RefineCaseStatementsContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitRefineCaseStatements(GeneratedYangParser.RefineCaseStatementsContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterUsesAugmentStatement(GeneratedYangParser.UsesAugmentStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitUsesAugmentStatement(GeneratedYangParser.UsesAugmentStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterAugmentStatement(GeneratedYangParser.AugmentStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitAugmentStatement(GeneratedYangParser.AugmentStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterWhenStatement(GeneratedYangParser.WhenStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitWhenStatement(GeneratedYangParser.WhenStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterRpcStatement(GeneratedYangParser.RpcStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitRpcStatement(GeneratedYangParser.RpcStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterInputStatement(GeneratedYangParser.InputStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitInputStatement(GeneratedYangParser.InputStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterOutputStatement(GeneratedYangParser.OutputStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitOutputStatement(GeneratedYangParser.OutputStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterNotificationStatement(GeneratedYangParser.NotificationStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitNotificationStatement(GeneratedYangParser.NotificationStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterDeviationStatement(GeneratedYangParser.DeviationStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitDeviationStatement(GeneratedYangParser.DeviationStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterDeviateNotSupportedStatement(GeneratedYangParser.DeviateNotSupportedStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitDeviateNotSupportedStatement(GeneratedYangParser.DeviateNotSupportedStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterDeviateAddStatement(GeneratedYangParser.DeviateAddStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitDeviateAddStatement(GeneratedYangParser.DeviateAddStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterDeviateDeleteStatement(GeneratedYangParser.DeviateDeleteStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitDeviateDeleteStatement(GeneratedYangParser.DeviateDeleteStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterDeviateReplaceStatement(GeneratedYangParser.DeviateReplaceStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitDeviateReplaceStatement(GeneratedYangParser.DeviateReplaceStatementContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterString(GeneratedYangParser.StringContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitString(GeneratedYangParser.StringContext ctx) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void visitTerminal(TerminalNode terminalNode) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void visitErrorNode(ErrorNode errorNode) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void enterEveryRule(ParserRuleContext parserRuleContext) {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void exitEveryRule(ParserRuleContext parserRuleContext) {
+ //TODO: implement the method.
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/org/onosproject/yangutils/parser/impl/listeners/package-info.java b/src/main/java/org/onosproject/yangutils/parser/impl/listeners/package-info.java
new file mode 100644
index 0000000..66d09d1
--- /dev/null
+++ b/src/main/java/org/onosproject/yangutils/parser/impl/listeners/package-info.java
@@ -0,0 +1,20 @@
+/*
+ * Copyright 2016 Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Provide call back functions for listeners based tree walk.
+ */
+package org.onosproject.yangutils.parser.impl.listeners;
\ No newline at end of file
diff --git a/src/main/java/org/onosproject/yangutils/parser/impl/parserutils/ListenerError.java b/src/main/java/org/onosproject/yangutils/parser/impl/parserutils/ListenerError.java
new file mode 100644
index 0000000..d4c8504
--- /dev/null
+++ b/src/main/java/org/onosproject/yangutils/parser/impl/parserutils/ListenerError.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright 2016 Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onosproject.yangutils.parser.impl.parserutils;
+
+/**
+ * Error information while doing a listener's based walk is maintained in it.
+ */
+public class ListenerError {
+
+ // Maintains the state of Exception.
+ private boolean errorFlag = false;
+
+ // Maintains the reason of Exception.
+ private String errorMsg;
+
+ /**
+ * Returns error flag.
+ *
+ * @return error flag.
+ */
+ public boolean isErrorFlag() {
+ return errorFlag;
+ }
+
+ /**
+ * Returns error message.
+ *
+ * @return error msg.
+ */
+ public String getErrorMsg() {
+ return errorMsg;
+ }
+
+ /**
+ * Set error flag.
+ *
+ * @param errorFlag error existence flag
+ */
+ public void setErrorFlag(boolean errorFlag) {
+ this.errorFlag = errorFlag;
+ }
+
+ /**
+ * Set error message.
+ *
+ * @param errorMsg reason for error.
+ */
+ public void setErrorMsg(String errorMsg) {
+ this.errorMsg = errorMsg;
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/org/onosproject/yangutils/parser/impl/parserutils/package-info.java b/src/main/java/org/onosproject/yangutils/parser/impl/parserutils/package-info.java
new file mode 100644
index 0000000..b2127e9
--- /dev/null
+++ b/src/main/java/org/onosproject/yangutils/parser/impl/parserutils/package-info.java
@@ -0,0 +1,20 @@
+/*
+ * Copyright 2016 Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Provide common utils for parser implementation.
+ */
+package org.onosproject.yangutils.parser.impl.parserutils;
\ No newline at end of file