YANG sub module linking + unsupported yang construct + defect fix

Change-Id: I224c8c14ee2111f6844278cb540c48651544f59b
diff --git a/utils/yangutils/src/main/java/org/onosproject/yangutils/parser/impl/TreeWalkListener.java b/utils/yangutils/src/main/java/org/onosproject/yangutils/parser/impl/TreeWalkListener.java
index 5c03e54..370b56c 100644
--- a/utils/yangutils/src/main/java/org/onosproject/yangutils/parser/impl/TreeWalkListener.java
+++ b/utils/yangutils/src/main/java/org/onosproject/yangutils/parser/impl/TreeWalkListener.java
@@ -75,6 +75,11 @@
 import org.onosproject.yangutils.parser.impl.listeners.UsesListener;
 import org.onosproject.yangutils.parser.impl.listeners.ValueListener;
 import org.onosproject.yangutils.parser.impl.listeners.VersionListener;
+import org.onosproject.yangutils.utils.YangConstructType;
+
+import static org.onosproject.yangutils.utils.UtilConstants.UNSUPPORTED_YANG_CONSTRUCT;
+import static org.onosproject.yangutils.utils.UtilConstants.CURRENTLY_UNSUPPORTED;
+import static org.onosproject.yangutils.parser.impl.parserutils.ListenerUtil.handleUnsupportedYangConstruct;
 
 /**
  * Represents ANTLR generates parse-tree. ANTLR generates a parse-tree listener interface that responds to events
@@ -148,62 +153,62 @@
 
     @Override
     public void enterModuleBody(GeneratedYangParser.ModuleBodyContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void exitModuleBody(GeneratedYangParser.ModuleBodyContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void enterModuleHeaderStatement(GeneratedYangParser.ModuleHeaderStatementContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void exitModuleHeaderStatement(GeneratedYangParser.ModuleHeaderStatementContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void enterLinkageStatements(GeneratedYangParser.LinkageStatementsContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void exitLinkageStatements(GeneratedYangParser.LinkageStatementsContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void enterMetaStatements(GeneratedYangParser.MetaStatementsContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void exitMetaStatements(GeneratedYangParser.MetaStatementsContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void enterRevisionStatements(GeneratedYangParser.RevisionStatementsContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void exitRevisionStatements(GeneratedYangParser.RevisionStatementsContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void enterBodyStatements(GeneratedYangParser.BodyStatementsContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void exitBodyStatements(GeneratedYangParser.BodyStatementsContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
@@ -213,7 +218,7 @@
 
     @Override
     public void exitYangVersionStatement(GeneratedYangParser.YangVersionStatementContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
@@ -223,7 +228,7 @@
 
     @Override
     public void exitNamespaceStatement(GeneratedYangParser.NamespaceStatementContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
@@ -233,7 +238,7 @@
 
     @Override
     public void exitPrefixStatement(GeneratedYangParser.PrefixStatementContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
@@ -248,12 +253,12 @@
 
     @Override
     public void enterImportStatementBody(GeneratedYangParser.ImportStatementBodyContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void exitImportStatementBody(GeneratedYangParser.ImportStatementBodyContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
@@ -263,7 +268,7 @@
 
     @Override
     public void exitRevisionDateStatement(GeneratedYangParser.RevisionDateStatementContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
@@ -283,7 +288,7 @@
 
     @Override
     public void exitOrganizationStatement(GeneratedYangParser.OrganizationStatementContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
@@ -293,7 +298,7 @@
 
     @Override
     public void exitContactStatement(GeneratedYangParser.ContactStatementContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
@@ -303,7 +308,7 @@
 
     @Override
     public void exitDescriptionStatement(GeneratedYangParser.DescriptionStatementContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
@@ -313,7 +318,7 @@
 
     @Override
     public void exitReferenceStatement(GeneratedYangParser.ReferenceStatementContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
@@ -328,12 +333,12 @@
 
     @Override
     public void enterRevisionStatementBody(GeneratedYangParser.RevisionStatementBodyContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void exitRevisionStatementBody(GeneratedYangParser.RevisionStatementBodyContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
@@ -348,22 +353,22 @@
 
     @Override
     public void enterSubmoduleBody(GeneratedYangParser.SubmoduleBodyContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void exitSubmoduleBody(GeneratedYangParser.SubmoduleBodyContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void enterSubmoduleHeaderStatement(GeneratedYangParser.SubmoduleHeaderStatementContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void exitSubmoduleHeaderStatement(GeneratedYangParser.SubmoduleHeaderStatementContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
@@ -378,132 +383,132 @@
 
     @Override
     public void enterBelongstoStatementBody(GeneratedYangParser.BelongstoStatementBodyContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void exitBelongstoStatementBody(GeneratedYangParser.BelongstoStatementBodyContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void enterExtensionStatement(GeneratedYangParser.ExtensionStatementContext ctx) {
-        // TODO: implement the method.
+        handleUnsupportedYangConstruct(YangConstructType.EXTENSION_DATA, ctx, UNSUPPORTED_YANG_CONSTRUCT);
     }
 
     @Override
     public void exitExtensionStatement(GeneratedYangParser.ExtensionStatementContext ctx) {
-        // TODO: implement the method.
+        // do nothing
     }
 
     @Override
     public void enterExtensionBody(GeneratedYangParser.ExtensionBodyContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void exitExtensionBody(GeneratedYangParser.ExtensionBodyContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void enterArgumentStatement(GeneratedYangParser.ArgumentStatementContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void exitArgumentStatement(GeneratedYangParser.ArgumentStatementContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void enterArgumentBody(GeneratedYangParser.ArgumentBodyContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void exitArgumentBody(GeneratedYangParser.ArgumentBodyContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void enterYinElementStatement(GeneratedYangParser.YinElementStatementContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void exitYinElementStatement(GeneratedYangParser.YinElementStatementContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void enterIdentityStatement(GeneratedYangParser.IdentityStatementContext ctx) {
-        // TODO: implement the method.
+        handleUnsupportedYangConstruct(YangConstructType.IDENTITY_DATA, ctx, CURRENTLY_UNSUPPORTED);
     }
 
     @Override
     public void exitIdentityStatement(GeneratedYangParser.IdentityStatementContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void enterIdentityBody(GeneratedYangParser.IdentityBodyContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void exitIdentityBody(GeneratedYangParser.IdentityBodyContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void enterBaseStatement(GeneratedYangParser.BaseStatementContext ctx) {
-        // TODO: implement the method.
+        handleUnsupportedYangConstruct(YangConstructType.BASE_DATA, ctx, CURRENTLY_UNSUPPORTED);
     }
 
     @Override
     public void exitBaseStatement(GeneratedYangParser.BaseStatementContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void enterFeatureStatement(GeneratedYangParser.FeatureStatementContext ctx) {
-        // TODO: implement the method.
+        handleUnsupportedYangConstruct(YangConstructType.FEATURE_DATA, ctx, CURRENTLY_UNSUPPORTED);
     }
 
     @Override
     public void exitFeatureStatement(GeneratedYangParser.FeatureStatementContext ctx) {
-        // TODO: implement the method.
+        //TODO: to be implemented
     }
 
     @Override
     public void enterFeatureBody(GeneratedYangParser.FeatureBodyContext ctx) {
-        // TODO: implement the method.
+        //TODO : to be implemented
     }
 
     @Override
     public void exitFeatureBody(GeneratedYangParser.FeatureBodyContext ctx) {
-        // TODO: implement the method.
+        //TODO : to be implemented
     }
 
     @Override
     public void enterDataDefStatement(GeneratedYangParser.DataDefStatementContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void exitDataDefStatement(GeneratedYangParser.DataDefStatementContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void enterIfFeatureStatement(GeneratedYangParser.IfFeatureStatementContext ctx) {
-        // TODO: implement the method.
+        // TODO: to be implemented
     }
 
     @Override
     public void exitIfFeatureStatement(GeneratedYangParser.IfFeatureStatementContext ctx) {
-        // TODO: implement the method.
+        // TODO: to be implemented
     }
 
     @Override
@@ -513,7 +518,7 @@
 
     @Override
     public void exitUnitsStatement(GeneratedYangParser.UnitsStatementContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
@@ -538,22 +543,32 @@
 
     @Override
     public void enterTypeBodyStatements(GeneratedYangParser.TypeBodyStatementsContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void exitTypeBodyStatements(GeneratedYangParser.TypeBodyStatementsContext ctx) {
+        // do nothing.
+    }
+
+    @Override
+    public void enterDecimal64Specification(GeneratedYangParser.Decimal64SpecificationContext ctx) {
+        // TODO: implement the method.
+    }
+
+    @Override
+    public void exitDecimal64Specification(GeneratedYangParser.Decimal64SpecificationContext ctx) {
         // TODO: implement the method.
     }
 
     @Override
     public void enterNumericalRestrictions(GeneratedYangParser.NumericalRestrictionsContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void exitNumericalRestrictions(GeneratedYangParser.NumericalRestrictionsContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
@@ -563,27 +578,27 @@
 
     @Override
     public void exitRangeStatement(GeneratedYangParser.RangeStatementContext ctx) {
-        // TODO: implement the method.
+        RangeRestrictionListener.processRangeRestrictionExit(this, ctx);
     }
 
     @Override
     public void enterCommonStatements(GeneratedYangParser.CommonStatementsContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void exitCommonStatements(GeneratedYangParser.CommonStatementsContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void enterStringRestrictions(GeneratedYangParser.StringRestrictionsContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void exitStringRestrictions(GeneratedYangParser.StringRestrictionsContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
@@ -593,7 +608,7 @@
 
     @Override
     public void exitLengthStatement(GeneratedYangParser.LengthStatementContext ctx) {
-        // TODO: implement the method.
+        LengthRestrictionListener.processLengthRestrictionExit(this, ctx);
     }
 
     @Override
@@ -603,7 +618,7 @@
 
     @Override
     public void exitPatternStatement(GeneratedYangParser.PatternStatementContext ctx) {
-        // TODO: implement the method.
+        PatternRestrictionListener.processPatternRestrictionExit(this, ctx);
     }
 
     @Override
@@ -613,7 +628,7 @@
 
     @Override
     public void exitDefaultStatement(GeneratedYangParser.DefaultStatementContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
@@ -638,62 +653,62 @@
 
     @Override
     public void enterEnumStatementBody(GeneratedYangParser.EnumStatementBodyContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void exitEnumStatementBody(GeneratedYangParser.EnumStatementBodyContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void enterLeafrefSpecification(GeneratedYangParser.LeafrefSpecificationContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void exitLeafrefSpecification(GeneratedYangParser.LeafrefSpecificationContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void enterPathStatement(GeneratedYangParser.PathStatementContext ctx) {
-        // TODO: implement the method.
+        handleUnsupportedYangConstruct(YangConstructType.PATH_DATA, ctx, CURRENTLY_UNSUPPORTED);
     }
 
     @Override
     public void exitPathStatement(GeneratedYangParser.PathStatementContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void enterRequireInstanceStatement(GeneratedYangParser.RequireInstanceStatementContext ctx) {
-        // TODO: implement the method.
+        handleUnsupportedYangConstruct(YangConstructType.REQUIRE_INSTANCE_DATA, ctx, UNSUPPORTED_YANG_CONSTRUCT);
     }
 
     @Override
     public void exitRequireInstanceStatement(GeneratedYangParser.RequireInstanceStatementContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void enterInstanceIdentifierSpecification(GeneratedYangParser.InstanceIdentifierSpecificationContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void exitInstanceIdentifierSpecification(GeneratedYangParser.InstanceIdentifierSpecificationContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void enterIdentityrefSpecification(GeneratedYangParser.IdentityrefSpecificationContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void exitIdentityrefSpecification(GeneratedYangParser.IdentityrefSpecificationContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
@@ -728,12 +743,12 @@
 
     @Override
     public void enterBitBodyStatement(GeneratedYangParser.BitBodyStatementContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void exitBitBodyStatement(GeneratedYangParser.BitBodyStatementContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
@@ -743,7 +758,7 @@
 
     @Override
     public void exitPositionStatement(GeneratedYangParser.PositionStatementContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
@@ -753,7 +768,7 @@
 
     @Override
     public void exitStatusStatement(GeneratedYangParser.StatusStatementContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
@@ -763,7 +778,7 @@
 
     @Override
     public void exitConfigStatement(GeneratedYangParser.ConfigStatementContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
@@ -773,7 +788,7 @@
 
     @Override
     public void exitMandatoryStatement(GeneratedYangParser.MandatoryStatementContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
@@ -783,47 +798,47 @@
 
     @Override
     public void exitPresenceStatement(GeneratedYangParser.PresenceStatementContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void enterOrderedByStatement(GeneratedYangParser.OrderedByStatementContext ctx) {
-        // TODO: implement the method.
+        handleUnsupportedYangConstruct(YangConstructType.ORDERED_BY_DATA, ctx, CURRENTLY_UNSUPPORTED);
     }
 
     @Override
     public void exitOrderedByStatement(GeneratedYangParser.OrderedByStatementContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void enterMustStatement(GeneratedYangParser.MustStatementContext ctx) {
-        // TODO: implement the method.
+        // TODO: to be implemented
     }
 
     @Override
     public void exitMustStatement(GeneratedYangParser.MustStatementContext ctx) {
-        // TODO: implement the method.
+        // TODO: to be implemented
     }
 
     @Override
     public void enterErrorMessageStatement(GeneratedYangParser.ErrorMessageStatementContext ctx) {
-        // TODO: implement the method.
+        handleUnsupportedYangConstruct(YangConstructType.ERROR_MESSAGE_DATA, ctx, CURRENTLY_UNSUPPORTED);
     }
 
     @Override
     public void exitErrorMessageStatement(GeneratedYangParser.ErrorMessageStatementContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void enterErrorAppTagStatement(GeneratedYangParser.ErrorAppTagStatementContext ctx) {
-        // TODO: implement the method.
+        handleUnsupportedYangConstruct(YangConstructType.ERROR_APP_TAG_DATA, ctx, CURRENTLY_UNSUPPORTED);
     }
 
     @Override
     public void exitErrorAppTagStatement(GeneratedYangParser.ErrorAppTagStatementContext ctx) {
-        // TODO: implement the method.
+        //do nothing
     }
 
     @Override
@@ -833,7 +848,7 @@
 
     @Override
     public void exitMinElementsStatement(GeneratedYangParser.MinElementsStatementContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
@@ -843,7 +858,7 @@
 
     @Override
     public void exitMaxElementsStatement(GeneratedYangParser.MaxElementsStatementContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
@@ -853,7 +868,7 @@
 
     @Override
     public void exitValueStatement(GeneratedYangParser.ValueStatementContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
@@ -913,17 +928,17 @@
 
     @Override
     public void exitKeyStatement(GeneratedYangParser.KeyStatementContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void enterUniqueStatement(GeneratedYangParser.UniqueStatementContext ctx) {
-        // TODO: implement the method.
+        handleUnsupportedYangConstruct(YangConstructType.UNIQUE_DATA, ctx, CURRENTLY_UNSUPPORTED);
     }
 
     @Override
     public void exitUniqueStatement(GeneratedYangParser.UniqueStatementContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
@@ -957,6 +972,16 @@
     }
 
     @Override
+    public void enterAnyxmlStatement(GeneratedYangParser.AnyxmlStatementContext ctx) {
+        handleUnsupportedYangConstruct(YangConstructType.ANYXML_DATA, ctx, UNSUPPORTED_YANG_CONSTRUCT);
+    }
+
+    @Override
+    public void exitAnyxmlStatement(GeneratedYangParser.AnyxmlStatementContext ctx) {
+        // do nothing.
+    }
+
+    @Override
     public void enterUsesStatement(GeneratedYangParser.UsesStatementContext ctx) {
         UsesListener.processUsesEntry(this, ctx);
     }
@@ -968,82 +993,82 @@
 
     @Override
     public void enterRefineStatement(GeneratedYangParser.RefineStatementContext ctx) {
-        // TODO: implement the method.
+        handleUnsupportedYangConstruct(YangConstructType.REFINE_DATA, ctx, UNSUPPORTED_YANG_CONSTRUCT);
     }
 
     @Override
     public void exitRefineStatement(GeneratedYangParser.RefineStatementContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void enterRefineContainerStatements(GeneratedYangParser.RefineContainerStatementsContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void exitRefineContainerStatements(GeneratedYangParser.RefineContainerStatementsContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void enterRefineLeafStatements(GeneratedYangParser.RefineLeafStatementsContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void exitRefineLeafStatements(GeneratedYangParser.RefineLeafStatementsContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void enterRefineLeafListStatements(GeneratedYangParser.RefineLeafListStatementsContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void exitRefineLeafListStatements(GeneratedYangParser.RefineLeafListStatementsContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void enterRefineListStatements(GeneratedYangParser.RefineListStatementsContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void exitRefineListStatements(GeneratedYangParser.RefineListStatementsContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void enterRefineChoiceStatements(GeneratedYangParser.RefineChoiceStatementsContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void exitRefineChoiceStatements(GeneratedYangParser.RefineChoiceStatementsContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void enterRefineCaseStatements(GeneratedYangParser.RefineCaseStatementsContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void exitRefineCaseStatements(GeneratedYangParser.RefineCaseStatementsContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
-    public void enterUsesAugmentStatement(GeneratedYangParser.UsesAugmentStatementContext ctx) {
-        // TODO: implement the method.
+    public void enterRefineAnyxmlStatements(GeneratedYangParser.RefineAnyxmlStatementsContext ctx) {
+        // do nothing.
     }
 
     @Override
-    public void exitUsesAugmentStatement(GeneratedYangParser.UsesAugmentStatementContext ctx) {
-        // TODO: implement the method.
+    public void exitRefineAnyxmlStatements(GeneratedYangParser.RefineAnyxmlStatementsContext ctx) {
+        // do nothing.
     }
 
     @Override
@@ -1058,12 +1083,12 @@
 
     @Override
     public void enterWhenStatement(GeneratedYangParser.WhenStatementContext ctx) {
-        // TODO: implement the method.
+        // TODO: to be implemented
     }
 
     @Override
     public void exitWhenStatement(GeneratedYangParser.WhenStatementContext ctx) {
-        // TODO: implement the method.
+        // TODO: to be implemented
     }
 
     @Override
@@ -1108,271 +1133,291 @@
 
     @Override
     public void enterDeviationStatement(GeneratedYangParser.DeviationStatementContext ctx) {
-        // TODO: implement the method.
+        handleUnsupportedYangConstruct(YangConstructType.DEVIATION_DATA, ctx, UNSUPPORTED_YANG_CONSTRUCT);
     }
 
     @Override
     public void exitDeviationStatement(GeneratedYangParser.DeviationStatementContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void enterDeviateNotSupportedStatement(GeneratedYangParser.DeviateNotSupportedStatementContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void exitDeviateNotSupportedStatement(GeneratedYangParser.DeviateNotSupportedStatementContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void enterDeviateAddStatement(GeneratedYangParser.DeviateAddStatementContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void exitDeviateAddStatement(GeneratedYangParser.DeviateAddStatementContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void enterDeviateDeleteStatement(GeneratedYangParser.DeviateDeleteStatementContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void exitDeviateDeleteStatement(GeneratedYangParser.DeviateDeleteStatementContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void enterDeviateReplaceStatement(GeneratedYangParser.DeviateReplaceStatementContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void exitDeviateReplaceStatement(GeneratedYangParser.DeviateReplaceStatementContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void enterString(GeneratedYangParser.StringContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void exitString(GeneratedYangParser.StringContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void enterIdentifier(GeneratedYangParser.IdentifierContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void exitIdentifier(GeneratedYangParser.IdentifierContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void enterDateArgumentString(GeneratedYangParser.DateArgumentStringContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void exitDateArgumentString(GeneratedYangParser.DateArgumentStringContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void enterRange(GeneratedYangParser.RangeContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void exitRange(GeneratedYangParser.RangeContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void enterLength(GeneratedYangParser.LengthContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void exitLength(GeneratedYangParser.LengthContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void enterPath(GeneratedYangParser.PathContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void exitPath(GeneratedYangParser.PathContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void enterPosition(GeneratedYangParser.PositionContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void exitPosition(GeneratedYangParser.PositionContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void enterStatus(GeneratedYangParser.StatusContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void exitStatus(GeneratedYangParser.StatusContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void enterConfig(GeneratedYangParser.ConfigContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void exitConfig(GeneratedYangParser.ConfigContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void enterMandatory(GeneratedYangParser.MandatoryContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void exitMandatory(GeneratedYangParser.MandatoryContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void enterOrderedBy(GeneratedYangParser.OrderedByContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void exitOrderedBy(GeneratedYangParser.OrderedByContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void enterMinValue(GeneratedYangParser.MinValueContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void exitMinValue(GeneratedYangParser.MinValueContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void enterMaxValue(GeneratedYangParser.MaxValueContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void exitMaxValue(GeneratedYangParser.MaxValueContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void enterKey(GeneratedYangParser.KeyContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void exitKey(GeneratedYangParser.KeyContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void enterUnique(GeneratedYangParser.UniqueContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void exitUnique(GeneratedYangParser.UniqueContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void enterRefine(GeneratedYangParser.RefineContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void exitRefine(GeneratedYangParser.RefineContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void enterAugment(GeneratedYangParser.AugmentContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void exitAugment(GeneratedYangParser.AugmentContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void enterDeviation(GeneratedYangParser.DeviationContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void exitDeviation(GeneratedYangParser.DeviationContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void enterYangConstruct(GeneratedYangParser.YangConstructContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void exitYangConstruct(GeneratedYangParser.YangConstructContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void enterVersion(GeneratedYangParser.VersionContext ctx) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void exitVersion(GeneratedYangParser.VersionContext ctx) {
+        // do nothing.
+    }
+
+    @Override
+    public void enterValue(GeneratedYangParser.ValueContext ctx) {
+        // do nothing.
+    }
+
+    @Override
+    public void exitValue(GeneratedYangParser.ValueContext ctx) {
+        // do nothing.
+    }
+
+    @Override
+    public void enterFraction(GeneratedYangParser.FractionContext ctx) {
+        // TODO: implement the method.
+    }
+
+    @Override
+    public void exitFraction(GeneratedYangParser.FractionContext ctx) {
         // TODO: implement the method.
     }
 
     @Override
     public void visitTerminal(TerminalNode terminalNode) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void visitErrorNode(ErrorNode errorNode) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void enterEveryRule(ParserRuleContext parserRuleContext) {
-        // TODO: implement the method.
+        // do nothing.
     }
 
     @Override
     public void exitEveryRule(ParserRuleContext parserRuleContext) {
-        // TODO: implement the method.
+        // do nothing.
     }
 }