YANG sub module linking + unsupported yang construct + defect fix
Change-Id: I224c8c14ee2111f6844278cb540c48651544f59b
diff --git a/utils/yangutils/src/main/java/org/onosproject/yangutils/datamodel/YangBelongsTo.java b/utils/yangutils/src/main/java/org/onosproject/yangutils/datamodel/YangBelongsTo.java
index 7fd8a1a..417e07e 100644
--- a/utils/yangutils/src/main/java/org/onosproject/yangutils/datamodel/YangBelongsTo.java
+++ b/utils/yangutils/src/main/java/org/onosproject/yangutils/datamodel/YangBelongsTo.java
@@ -57,6 +57,11 @@
private String belongsToModuleName;
/**
+ * Module node to which sub-module belongs to.
+ */
+ private YangNode moduleNode;
+
+ /**
* Reference RFC 6020.
*
* The mandatory "prefix" substatement assigns a prefix for the module to
@@ -110,6 +115,24 @@
}
/**
+ * Returns the module data model node.
+ *
+ * @return the module data model node
+ */
+ public YangNode getModuleNode() {
+ return moduleNode;
+ }
+
+ /**
+ * Sets the module node.
+ *
+ * @param moduleNode module data model node
+ */
+ public void setModuleNode(YangNode moduleNode) {
+ this.moduleNode = moduleNode;
+ }
+
+ /**
* Returns the type of the data as belongs-to.
*
* @return ParsedDataType returns BELONGS_TO_DATA
diff --git a/utils/yangutils/src/main/java/org/onosproject/yangutils/datamodel/YangChoice.java b/utils/yangutils/src/main/java/org/onosproject/yangutils/datamodel/YangChoice.java
index 49a96d9..e8d60bf 100644
--- a/utils/yangutils/src/main/java/org/onosproject/yangutils/datamodel/YangChoice.java
+++ b/utils/yangutils/src/main/java/org/onosproject/yangutils/datamodel/YangChoice.java
@@ -135,6 +135,12 @@
private YangStatusType status;
/**
+ * Default value in string, needs to be converted to the target object,
+ * based on the type.
+ */
+ private String defaultValueInString;
+
+ /**
* Create a choice node.
*/
public YangChoice() {
@@ -276,6 +282,24 @@
}
/**
+ * Returns the default value.
+ *
+ * @return the default value
+ */
+ public String getDefaultValueInString() {
+ return defaultValueInString;
+ }
+
+ /**
+ * Sets the default value.
+ *
+ * @param defaultValueInString the default value
+ */
+ public void setDefaultValueInString(String defaultValueInString) {
+ this.defaultValueInString = defaultValueInString;
+ }
+
+ /**
* Returns the type of the data.
*
* @return choice data
diff --git a/utils/yangutils/src/main/java/org/onosproject/yangutils/datamodel/YangLeaf.java b/utils/yangutils/src/main/java/org/onosproject/yangutils/datamodel/YangLeaf.java
index c9808a2..f59cdcc 100644
--- a/utils/yangutils/src/main/java/org/onosproject/yangutils/datamodel/YangLeaf.java
+++ b/utils/yangutils/src/main/java/org/onosproject/yangutils/datamodel/YangLeaf.java
@@ -101,6 +101,12 @@
private YangType<?> dataType;
/**
+ * Default value in string, needs to be converted to the target object,
+ * based on the type.
+ */
+ private String defaultValueInString;
+
+ /**
* Creates a YANG leaf.
*/
public YangLeaf() {
@@ -239,6 +245,24 @@
}
/**
+ * Returns the default value.
+ *
+ * @return the default value
+ */
+ public String getDefaultValueInString() {
+ return defaultValueInString;
+ }
+
+ /**
+ * Sets the default value.
+ *
+ * @param defaultValueInString the default value
+ */
+ public void setDefaultValueInString(String defaultValueInString) {
+ this.defaultValueInString = defaultValueInString;
+ }
+
+ /**
* Returns the data type.
*
* @return the data type
diff --git a/utils/yangutils/src/main/java/org/onosproject/yangutils/datamodel/YangList.java b/utils/yangutils/src/main/java/org/onosproject/yangutils/datamodel/YangList.java
index 2b0bb53..246ffa2 100644
--- a/utils/yangutils/src/main/java/org/onosproject/yangutils/datamodel/YangList.java
+++ b/utils/yangutils/src/main/java/org/onosproject/yangutils/datamodel/YangList.java
@@ -445,16 +445,10 @@
/* A list must have atleast one key leaf if config is true */
if (isConfig
- && (keys == null || leaves == null && leafLists == null)) {
+ && (keys == null || leaves == null && leafLists == null && !isUsesPresentInList())) {
throw new DataModelException("A list must have atleast one key leaf if config is true;");
} else if (keys != null) {
- if (leaves != null) {
- validateLeafKey(leaves, keys);
- }
-
- if (leafLists != null) {
- validateLeafListKey(leafLists, keys);
- }
+ validateKey(leaves, leafLists, keys);
}
}
@@ -528,31 +522,51 @@
* Validates key statement of list.
*
* @param leaves list of leaf attributes of list
+ * @param leafLists list of leaf-list attributes of list
* @param keys list of key attributes of list
* @throws DataModelException a violation of data model rules
*/
- private void validateLeafKey(List<YangLeaf> leaves, List<String> keys) throws DataModelException {
+ private void validateKey(List<YangLeaf> leaves, List<YangLeafList> leafLists, List<String> keys) throws
+ DataModelException {
boolean leafFound = false;
List<YangLeaf> keyLeaves = new LinkedList<>();
+ List<YangLeafList> keyLeafLists = new LinkedList<>();
/*
* 1. Leaf identifier must refer to a child leaf of the list 2. A leaf
* that is part of the key must not be the built-in type "empty".
*/
for (String key : keys) {
- for (YangLeaf leaf : leaves) {
- if (key.equals(leaf.getName())) {
- if (leaf.getDataType().getDataType() == YangDataTypes.EMPTY) {
- throw new DataModelException(" A leaf that is part of the key must not be the built-in " +
- "type \"empty\".");
+ if (leaves != null && !leaves.isEmpty()) {
+ for (YangLeaf leaf : leaves) {
+ if (key.equals(leaf.getName())) {
+ if (leaf.getDataType().getDataType() == YangDataTypes.EMPTY) {
+ throw new DataModelException(" A leaf that is part of the key must not be the built-in " +
+ "type \"empty\".");
+ }
+ leafFound = true;
+ keyLeaves.add(leaf);
+ break;
}
- leafFound = true;
- keyLeaves.add(leaf);
- break;
}
}
- if (!leafFound) {
- throw new DataModelException("Leaf identifier must refer to a child leaf of the list");
+
+ if (leafLists != null && !leafLists.isEmpty()) {
+ for (YangLeafList leafList : leafLists) {
+ if (key.equals(leafList.getName())) {
+ if (leafList.getDataType().getDataType() == YangDataTypes.EMPTY) {
+ throw new DataModelException(" A leaf-list that is part of the key" +
+ " must not be the built-in type \"empty\".");
+ }
+ leafFound = true;
+ keyLeafLists.add(leafList);
+ break;
+ }
+ }
+ }
+
+ if (!leafFound && !isUsesPresentInList()) {
+ throw new DataModelException("An identifier, in key, must refer to a child leaf of the list");
}
leafFound = false;
}
@@ -567,42 +581,8 @@
" \"config\" as the list itself.");
}
}
- }
- /**
- * Validates key statement of list.
- *
- * @param leafLists list of leaf-list attributes of list
- * @param keys list of key attributes of list
- * @throws DataModelException a violation of data model rules
- */
- private void validateLeafListKey(List<YangLeafList> leafLists, List<String> keys) throws DataModelException {
- boolean leafFound = false;
- List<YangLeafList> keyLeafLists = new LinkedList<>();
-
- /*
- * 1. Leaf identifier must refer to a child leaf of the list 2. A leaf
- * that is part of the key must not be the built-in type "empty".
- */
- for (String key : keys) {
- for (YangLeafList leafList : leafLists) {
- if (key.equals(leafList.getName())) {
- if (leafList.getDataType().getDataType() == YangDataTypes.EMPTY) {
- throw new DataModelException(" A leaf-list that is part of the key must not be the built-in " +
- "type \"empty\".");
- }
- leafFound = true;
- keyLeafLists.add(leafList);
- break;
- }
- }
- if (!leafFound) {
- throw new DataModelException("Leaf-list identifier must refer to a child leaf of the list");
- }
- leafFound = false;
- }
-
- /*
+ /*
* All key leafs in a list MUST have the same value for their "config"
* as the list itself.
*/
@@ -627,4 +607,16 @@
getName() + "\"");
}
}
+
+ private boolean isUsesPresentInList() {
+ YangNode node = this.getChild();
+ while (node != null) {
+ if (node instanceof YangUses) {
+ return true;
+ }
+ node = node.getNextSibling();
+ }
+ return false;
+ }
+
}
diff --git a/utils/yangutils/src/main/java/org/onosproject/yangutils/datamodel/YangRangeRestriction.java b/utils/yangutils/src/main/java/org/onosproject/yangutils/datamodel/YangRangeRestriction.java
index d66f170..d645010 100644
--- a/utils/yangutils/src/main/java/org/onosproject/yangutils/datamodel/YangRangeRestriction.java
+++ b/utils/yangutils/src/main/java/org/onosproject/yangutils/datamodel/YangRangeRestriction.java
@@ -19,6 +19,8 @@
import java.util.LinkedList;
import java.util.List;
import org.onosproject.yangutils.datamodel.exceptions.DataModelException;
+import org.onosproject.yangutils.parser.Parsable;
+import org.onosproject.yangutils.utils.YangConstructType;
import org.onosproject.yangutils.utils.builtindatatype.YangBuiltInDataTypeInfo;
import static org.onosproject.yangutils.utils.builtindatatype.BuiltInTypeObjectFactory.getDataObjectFromString;
@@ -55,7 +57,7 @@
* @param <T> range type (data type)
*/
public class YangRangeRestriction<T extends YangBuiltInDataTypeInfo<T>>
- implements YangDesc, YangReference, YangAppErrorInfo {
+ implements YangDesc, YangReference, YangAppErrorInfo, Parsable {
/**
* Ascending list of range interval restriction. If the restriction is a
@@ -311,4 +313,19 @@
public void setErrorAppTag(String errTag) {
errorAppTag = errTag;
}
+
+ @Override
+ public YangConstructType getYangConstructType() {
+ return YangConstructType.RANGE_DATA;
+ }
+
+ @Override
+ public void validateDataOnEntry() throws DataModelException {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void validateDataOnExit() throws DataModelException {
+ //TODO: implement the method.
+ }
}
diff --git a/utils/yangutils/src/main/java/org/onosproject/yangutils/datamodel/YangStringRestriction.java b/utils/yangutils/src/main/java/org/onosproject/yangutils/datamodel/YangStringRestriction.java
index 715e315..2a2ebf4 100644
--- a/utils/yangutils/src/main/java/org/onosproject/yangutils/datamodel/YangStringRestriction.java
+++ b/utils/yangutils/src/main/java/org/onosproject/yangutils/datamodel/YangStringRestriction.java
@@ -16,6 +16,9 @@
package org.onosproject.yangutils.datamodel;
+import org.onosproject.yangutils.datamodel.exceptions.DataModelException;
+import org.onosproject.yangutils.parser.Parsable;
+import org.onosproject.yangutils.utils.YangConstructType;
import org.onosproject.yangutils.utils.builtindatatype.YangUint64;
/*-
@@ -28,7 +31,7 @@
/**
* Represents the restriction for string data type.
*/
-public class YangStringRestriction {
+public class YangStringRestriction implements YangDesc, YangReference, YangAppErrorInfo, Parsable {
/*-
* Reference RFC 6020.
@@ -77,6 +80,26 @@
private YangPatternRestriction patternRestriction;
/**
+ * Textual reference.
+ */
+ private String reference;
+
+ /**
+ * Application's error message, to be used for data error.
+ */
+ private String errorMessage;
+
+ /**
+ * Application's error tag, to be filled in data validation error response.
+ */
+ private String errorAppTag;
+
+ /**
+ * Textual description.
+ */
+ private String description;
+
+ /**
* Creates a YANG string restriction object.
*/
public YangStringRestriction() {
@@ -129,4 +152,101 @@
}
getPatternRestriction().addPattern(newPattern);
}
+
+ /**
+ * Returns the textual reference of the string restriction.
+ *
+ * @return textual reference of the string restriction
+ */
+ @Override
+ public String getReference() {
+ return reference;
+ }
+
+ /**
+ * Sets the textual reference of the string restriction.
+ *
+ * @param ref textual reference of the string restriction
+ */
+ @Override
+ public void setReference(String ref) {
+ reference = ref;
+ }
+
+ /**
+ * Returns the description of the string restriction.
+ *
+ * @return description of the string restriction
+ */
+ @Override
+ public String getDescription() {
+ return description;
+ }
+
+ /**
+ * Sets the description of the string restriction.
+ *
+ * @param desc description of the string restriction
+ */
+ @Override
+ public void setDescription(String desc) {
+ description = desc;
+
+ }
+
+ /**
+ * Returns application's error message, to be used for data error.
+ *
+ * @return Application's error message, to be used for data error
+ */
+ @Override
+ public String getGetErrorMessage() {
+ return errorMessage;
+ }
+
+ /**
+ * Sets Application's error message, to be used for data error.
+ *
+ * @param errMsg Application's error message, to be used for data error
+ */
+ @Override
+ public void setErrorMessage(String errMsg) {
+ errorMessage = errMsg;
+
+ }
+
+ /**
+ * Returns application's error tag, to be used for data error.
+ *
+ * @return application's error tag, to be used for data error
+ */
+ @Override
+ public String getGetErrorAppTag() {
+ return errorAppTag;
+ }
+
+ /**
+ * Sets application's error tag, to be used for data error.
+ *
+ * @param errTag application's error tag, to be used for data error.
+ */
+ @Override
+ public void setErrorAppTag(String errTag) {
+ errorAppTag = errTag;
+ }
+
+ @Override
+ public YangConstructType getYangConstructType() {
+ return YangConstructType.PATTERN_DATA;
+ }
+
+ @Override
+ public void validateDataOnEntry() throws DataModelException {
+ //TODO: implement the method.
+ }
+
+ @Override
+ public void validateDataOnExit() throws DataModelException {
+ //TODO: implement the method.
+ }
}
diff --git a/utils/yangutils/src/main/java/org/onosproject/yangutils/datamodel/utils/DataModelUtils.java b/utils/yangutils/src/main/java/org/onosproject/yangutils/datamodel/utils/DataModelUtils.java
index eda18f3..e243d5e 100644
--- a/utils/yangutils/src/main/java/org/onosproject/yangutils/datamodel/utils/DataModelUtils.java
+++ b/utils/yangutils/src/main/java/org/onosproject/yangutils/datamodel/utils/DataModelUtils.java
@@ -16,6 +16,7 @@
package org.onosproject.yangutils.datamodel.utils;
+import java.util.Iterator;
import java.util.List;
import org.onosproject.yangutils.datamodel.CollisionDetector;
@@ -29,6 +30,7 @@
import org.onosproject.yangutils.datamodel.YangRpc;
import org.onosproject.yangutils.datamodel.exceptions.DataModelException;
import org.onosproject.yangutils.parser.Parsable;
+import org.onosproject.yangutils.plugin.manager.YangFileInfo;
import org.onosproject.yangutils.utils.YangConstructType;
/**
@@ -240,4 +242,26 @@
}
return false;
}
+
+ /**
+ * Returns module's data model node to which sub-module belongs to.
+ *
+ * @param yangFileInfo YANG file information
+ * @param belongsToModuleName name of the module to which sub-module belongs to
+ * @return module node to which sub-module belongs to
+ * @throws DataModelException when belongs to module node is not found
+ */
+ public static YangNode findBelongsToModuleNode(List<YangFileInfo> yangFileInfo,
+ String belongsToModuleName) throws DataModelException {
+ Iterator<YangFileInfo> yangFileIterator = yangFileInfo.iterator();
+ while (yangFileIterator.hasNext()) {
+ YangFileInfo yangFile = yangFileIterator.next();
+ YangNode yangNode = yangFile.getRootNode();
+ if (yangNode.getName().equals(belongsToModuleName)) {
+ return yangNode;
+ }
+ }
+ throw new DataModelException("YANG file error : Module " + belongsToModuleName + " to which sub-module " +
+ "belongs to is not found.");
+ }
}
diff --git a/utils/yangutils/src/main/java/org/onosproject/yangutils/parser/antlrgencode/GeneratedYangListener.java b/utils/yangutils/src/main/java/org/onosproject/yangutils/parser/antlrgencode/GeneratedYangListener.java
index 14c07b7..c4c52f0 100644
--- a/utils/yangutils/src/main/java/org/onosproject/yangutils/parser/antlrgencode/GeneratedYangListener.java
+++ b/utils/yangutils/src/main/java/org/onosproject/yangutils/parser/antlrgencode/GeneratedYangListener.java
@@ -27,7 +27,7 @@
public interface GeneratedYangListener extends ParseTreeListener {
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* yangfile.
*
* @param currentContext current context in the parsed tree
@@ -35,7 +35,7 @@
void enterYangfile(GeneratedYangParser.YangfileContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* yangfile.
*
* @param currentContext current context in the parsed tree
@@ -43,7 +43,7 @@
void exitYangfile(GeneratedYangParser.YangfileContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* moduleStatement.
*
* @param currentContext current context in the parsed tree
@@ -51,7 +51,7 @@
void enterModuleStatement(GeneratedYangParser.ModuleStatementContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* moduleStatement.
*
* @param currentContext current context in the parsed tree
@@ -59,7 +59,7 @@
void exitModuleStatement(GeneratedYangParser.ModuleStatementContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* moduleBody.
*
* @param currentContext current context in the parsed tree
@@ -67,7 +67,7 @@
void enterModuleBody(GeneratedYangParser.ModuleBodyContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* moduleBody.
*
* @param currentContext current context in the parsed tree
@@ -75,7 +75,7 @@
void exitModuleBody(GeneratedYangParser.ModuleBodyContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* moduleHeaderStatement.
*
* @param currentContext current context in the parsed tree
@@ -83,7 +83,7 @@
void enterModuleHeaderStatement(GeneratedYangParser.ModuleHeaderStatementContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* moduleHeaderStatement.
*
* @param currentContext current context in the parsed tree
@@ -91,7 +91,7 @@
void exitModuleHeaderStatement(GeneratedYangParser.ModuleHeaderStatementContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* linkageStatements.
*
* @param currentContext current context in the parsed tree
@@ -99,7 +99,7 @@
void enterLinkageStatements(GeneratedYangParser.LinkageStatementsContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* linkageStatements.
*
* @param currentContext current context in the parsed tree
@@ -107,7 +107,7 @@
void exitLinkageStatements(GeneratedYangParser.LinkageStatementsContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* metaStatements.
*
* @param currentContext current context in the parsed tree
@@ -115,7 +115,7 @@
void enterMetaStatements(GeneratedYangParser.MetaStatementsContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* metaStatements.
*
* @param currentContext current context in the parsed tree
@@ -123,7 +123,7 @@
void exitMetaStatements(GeneratedYangParser.MetaStatementsContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* revisionStatements.
*
* @param currentContext current context in the parsed tree
@@ -131,7 +131,7 @@
void enterRevisionStatements(GeneratedYangParser.RevisionStatementsContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* revisionStatements.
*
* @param currentContext current context in the parsed tree
@@ -139,7 +139,7 @@
void exitRevisionStatements(GeneratedYangParser.RevisionStatementsContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* bodyStatements.
*
* @param currentContext current context in the parsed tree
@@ -147,7 +147,7 @@
void enterBodyStatements(GeneratedYangParser.BodyStatementsContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* bodyStatements.
*
* @param currentContext current context in the parsed tree
@@ -155,7 +155,7 @@
void exitBodyStatements(GeneratedYangParser.BodyStatementsContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* yangVersionStatement.
*
* @param currentContext current context in the parsed tree
@@ -163,7 +163,7 @@
void enterYangVersionStatement(GeneratedYangParser.YangVersionStatementContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* yangVersionStatement.
*
* @param currentContext current context in the parsed tree
@@ -171,7 +171,7 @@
void exitYangVersionStatement(GeneratedYangParser.YangVersionStatementContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* namespaceStatement.
*
* @param currentContext current context in the parsed tree
@@ -179,7 +179,7 @@
void enterNamespaceStatement(GeneratedYangParser.NamespaceStatementContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* namespaceStatement.
*
* @param currentContext current context in the parsed tree
@@ -187,7 +187,7 @@
void exitNamespaceStatement(GeneratedYangParser.NamespaceStatementContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* prefixStatement.
*
* @param currentContext current context in the parsed tree
@@ -195,7 +195,7 @@
void enterPrefixStatement(GeneratedYangParser.PrefixStatementContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* prefixStatement.
*
* @param currentContext current context in the parsed tree
@@ -203,7 +203,7 @@
void exitPrefixStatement(GeneratedYangParser.PrefixStatementContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* importStatement.
*
* @param currentContext current context in the parsed tree
@@ -211,7 +211,7 @@
void enterImportStatement(GeneratedYangParser.ImportStatementContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* importStatement.
*
* @param currentContext current context in the parsed tree
@@ -219,7 +219,7 @@
void exitImportStatement(GeneratedYangParser.ImportStatementContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* importStatementBody.
*
* @param currentContext current context in the parsed tree
@@ -227,7 +227,7 @@
void enterImportStatementBody(GeneratedYangParser.ImportStatementBodyContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* importStatementBody.
*
* @param currentContext current context in the parsed tree
@@ -235,7 +235,7 @@
void exitImportStatementBody(GeneratedYangParser.ImportStatementBodyContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* revisionDateStatement.
*
* @param currentContext current context in the parsed tree
@@ -243,7 +243,7 @@
void enterRevisionDateStatement(GeneratedYangParser.RevisionDateStatementContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* revisionDateStatement.
*
* @param currentContext current context in the parsed tree
@@ -251,7 +251,7 @@
void exitRevisionDateStatement(GeneratedYangParser.RevisionDateStatementContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* includeStatement.
*
* @param currentContext current context in the parsed tree
@@ -259,7 +259,7 @@
void enterIncludeStatement(GeneratedYangParser.IncludeStatementContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* includeStatement.
*
* @param currentContext current context in the parsed tree
@@ -267,7 +267,7 @@
void exitIncludeStatement(GeneratedYangParser.IncludeStatementContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* organizationStatement.
*
* @param currentContext current context in the parsed tree
@@ -275,7 +275,7 @@
void enterOrganizationStatement(GeneratedYangParser.OrganizationStatementContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* organizationStatement.
*
* @param currentContext current context in the parsed tree
@@ -283,7 +283,7 @@
void exitOrganizationStatement(GeneratedYangParser.OrganizationStatementContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* contactStatement.
*
* @param currentContext current context in the parsed tree
@@ -291,7 +291,7 @@
void enterContactStatement(GeneratedYangParser.ContactStatementContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* contactStatement.
*
* @param currentContext current context in the parsed tree
@@ -299,7 +299,7 @@
void exitContactStatement(GeneratedYangParser.ContactStatementContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* descriptionStatement.
*
* @param currentContext current context in the parsed tree
@@ -307,7 +307,7 @@
void enterDescriptionStatement(GeneratedYangParser.DescriptionStatementContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* descriptionStatement.
*
* @param currentContext current context in the parsed tree
@@ -315,7 +315,7 @@
void exitDescriptionStatement(GeneratedYangParser.DescriptionStatementContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* referenceStatement.
*
* @param currentContext current context in the parsed tree
@@ -323,7 +323,7 @@
void enterReferenceStatement(GeneratedYangParser.ReferenceStatementContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* referenceStatement.
*
* @param currentContext current context in the parsed tree
@@ -331,7 +331,7 @@
void exitReferenceStatement(GeneratedYangParser.ReferenceStatementContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* revisionStatement.
*
* @param currentContext current context in the parsed tree
@@ -339,7 +339,7 @@
void enterRevisionStatement(GeneratedYangParser.RevisionStatementContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* revisionStatement.
*
* @param currentContext current context in the parsed tree
@@ -347,7 +347,7 @@
void exitRevisionStatement(GeneratedYangParser.RevisionStatementContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* revisionStatementBody.
*
* @param currentContext current context in the parsed tree
@@ -355,7 +355,7 @@
void enterRevisionStatementBody(GeneratedYangParser.RevisionStatementBodyContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* revisionStatementBody.
*
* @param currentContext current context in the parsed tree
@@ -363,7 +363,7 @@
void exitRevisionStatementBody(GeneratedYangParser.RevisionStatementBodyContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* subModuleStatement.
*
* @param currentContext current context in the parsed tree
@@ -371,7 +371,7 @@
void enterSubModuleStatement(GeneratedYangParser.SubModuleStatementContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* subModuleStatement.
*
* @param currentContext current context in the parsed tree
@@ -379,7 +379,7 @@
void exitSubModuleStatement(GeneratedYangParser.SubModuleStatementContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* submoduleBody.
*
* @param currentContext current context in the parsed tree
@@ -387,7 +387,7 @@
void enterSubmoduleBody(GeneratedYangParser.SubmoduleBodyContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* submoduleBody.
*
* @param currentContext current context in the parsed tree
@@ -395,7 +395,7 @@
void exitSubmoduleBody(GeneratedYangParser.SubmoduleBodyContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* submoduleHeaderStatement.
*
* @param currentContext current context in the parsed tree
@@ -403,7 +403,7 @@
void enterSubmoduleHeaderStatement(GeneratedYangParser.SubmoduleHeaderStatementContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* submoduleHeaderStatement.
*
* @param currentContext current context in the parsed tree
@@ -411,7 +411,7 @@
void exitSubmoduleHeaderStatement(GeneratedYangParser.SubmoduleHeaderStatementContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* belongstoStatement.
*
* @param currentContext current context in the parsed tree
@@ -419,7 +419,7 @@
void enterBelongstoStatement(GeneratedYangParser.BelongstoStatementContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* belongstoStatement.
*
* @param currentContext current context in the parsed tree
@@ -427,7 +427,7 @@
void exitBelongstoStatement(GeneratedYangParser.BelongstoStatementContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* belongstoStatementBody.
*
* @param currentContext current context in the parsed tree
@@ -435,7 +435,7 @@
void enterBelongstoStatementBody(GeneratedYangParser.BelongstoStatementBodyContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* belongstoStatementBody.
*
* @param currentContext current context in the parsed tree
@@ -443,7 +443,7 @@
void exitBelongstoStatementBody(GeneratedYangParser.BelongstoStatementBodyContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* extensionStatement.
*
* @param currentContext current context in the parsed tree
@@ -451,7 +451,7 @@
void enterExtensionStatement(GeneratedYangParser.ExtensionStatementContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* extensionStatement.
*
* @param currentContext current context in the parsed tree
@@ -459,7 +459,7 @@
void exitExtensionStatement(GeneratedYangParser.ExtensionStatementContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* extensionBody.
*
* @param currentContext current context in the parsed tree
@@ -467,7 +467,7 @@
void enterExtensionBody(GeneratedYangParser.ExtensionBodyContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* extensionBody.
*
* @param currentContext current context in the parsed tree
@@ -475,7 +475,7 @@
void exitExtensionBody(GeneratedYangParser.ExtensionBodyContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* argumentStatement.
*
* @param currentContext current context in the parsed tree
@@ -483,7 +483,7 @@
void enterArgumentStatement(GeneratedYangParser.ArgumentStatementContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* argumentStatement.
*
* @param currentContext current context in the parsed tree
@@ -491,7 +491,7 @@
void exitArgumentStatement(GeneratedYangParser.ArgumentStatementContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* argumentBody.
*
* @param currentContext current context in the parsed tree
@@ -499,7 +499,7 @@
void enterArgumentBody(GeneratedYangParser.ArgumentBodyContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* argumentBody.
*
* @param currentContext current context in the parsed tree
@@ -507,7 +507,7 @@
void exitArgumentBody(GeneratedYangParser.ArgumentBodyContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* yinElementStatement.
*
* @param currentContext current context in the parsed tree
@@ -515,7 +515,7 @@
void enterYinElementStatement(GeneratedYangParser.YinElementStatementContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* yinElementStatement.
*
* @param currentContext current context in the parsed tree
@@ -523,7 +523,7 @@
void exitYinElementStatement(GeneratedYangParser.YinElementStatementContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* identityStatement.
*
* @param currentContext current context in the parsed tree
@@ -531,7 +531,7 @@
void enterIdentityStatement(GeneratedYangParser.IdentityStatementContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* identityStatement.
*
* @param currentContext current context in the parsed tree
@@ -539,7 +539,7 @@
void exitIdentityStatement(GeneratedYangParser.IdentityStatementContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* identityBody.
*
* @param currentContext current context in the parsed tree
@@ -547,7 +547,7 @@
void enterIdentityBody(GeneratedYangParser.IdentityBodyContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* identityBody.
*
* @param currentContext current context in the parsed tree
@@ -555,7 +555,7 @@
void exitIdentityBody(GeneratedYangParser.IdentityBodyContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* baseStatement.
*
* @param currentContext current context in the parsed tree
@@ -563,7 +563,7 @@
void enterBaseStatement(GeneratedYangParser.BaseStatementContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* baseStatement.
*
* @param currentContext current context in the parsed tree
@@ -571,7 +571,7 @@
void exitBaseStatement(GeneratedYangParser.BaseStatementContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* featureStatement.
*
* @param currentContext current context in the parsed tree
@@ -579,7 +579,7 @@
void enterFeatureStatement(GeneratedYangParser.FeatureStatementContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* featureStatement.
*
* @param currentContext current context in the parsed tree
@@ -587,7 +587,7 @@
void exitFeatureStatement(GeneratedYangParser.FeatureStatementContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* featureBody.
*
* @param currentContext current context in the parsed tree
@@ -595,7 +595,7 @@
void enterFeatureBody(GeneratedYangParser.FeatureBodyContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* featureBody.
*
* @param currentContext current context in the parsed tree
@@ -603,7 +603,7 @@
void exitFeatureBody(GeneratedYangParser.FeatureBodyContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* dataDefStatement.
*
* @param currentContext current context in the parsed tree
@@ -611,7 +611,7 @@
void enterDataDefStatement(GeneratedYangParser.DataDefStatementContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* dataDefStatement.
*
* @param currentContext current context in the parsed tree
@@ -619,7 +619,7 @@
void exitDataDefStatement(GeneratedYangParser.DataDefStatementContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* ifFeatureStatement.
*
* @param currentContext current context in the parsed tree
@@ -627,7 +627,7 @@
void enterIfFeatureStatement(GeneratedYangParser.IfFeatureStatementContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* ifFeatureStatement.
*
* @param currentContext current context in the parsed tree
@@ -635,7 +635,7 @@
void exitIfFeatureStatement(GeneratedYangParser.IfFeatureStatementContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* unitsStatement.
*
* @param currentContext current context in the parsed tree
@@ -643,7 +643,7 @@
void enterUnitsStatement(GeneratedYangParser.UnitsStatementContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* unitsStatement.
*
* @param currentContext current context in the parsed tree
@@ -651,7 +651,7 @@
void exitUnitsStatement(GeneratedYangParser.UnitsStatementContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* typedefStatement.
*
* @param currentContext current context in the parsed tree
@@ -659,7 +659,7 @@
void enterTypedefStatement(GeneratedYangParser.TypedefStatementContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* typedefStatement.
*
* @param currentContext current context in the parsed tree
@@ -667,7 +667,7 @@
void exitTypedefStatement(GeneratedYangParser.TypedefStatementContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* typeStatement.
*
* @param currentContext current context in the parsed tree
@@ -675,7 +675,7 @@
void enterTypeStatement(GeneratedYangParser.TypeStatementContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* typeStatement.
*
* @param currentContext current context in the parsed tree
@@ -683,7 +683,7 @@
void exitTypeStatement(GeneratedYangParser.TypeStatementContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* typeBodyStatements.
*
* @param currentContext current context in the parsed tree
@@ -691,7 +691,7 @@
void enterTypeBodyStatements(GeneratedYangParser.TypeBodyStatementsContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* typeBodyStatements.
*
* @param currentContext current context in the parsed tree
@@ -699,7 +699,23 @@
void exitTypeBodyStatements(GeneratedYangParser.TypeBodyStatementsContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
+ * numericalRestrictions.
+ *
+ * @param currentContext current context in the parsed tree
+ */
+ void enterDecimal64Specification(GeneratedYangParser.Decimal64SpecificationContext currentContext);
+
+ /**
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
+ * numericalRestrictions.
+ *
+ * @param currentContext current context in the parsed tree
+ */
+ void exitDecimal64Specification(GeneratedYangParser.Decimal64SpecificationContext currentContext);
+
+ /**
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* numericalRestrictions.
*
* @param currentContext current context in the parsed tree
@@ -707,7 +723,7 @@
void enterNumericalRestrictions(GeneratedYangParser.NumericalRestrictionsContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* numericalRestrictions.
*
* @param currentContext current context in the parsed tree
@@ -715,7 +731,7 @@
void exitNumericalRestrictions(GeneratedYangParser.NumericalRestrictionsContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* rangeStatement.
*
* @param currentContext current context in the parsed tree
@@ -723,7 +739,7 @@
void enterRangeStatement(GeneratedYangParser.RangeStatementContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* rangeStatement.
*
* @param currentContext current context in the parsed tree
@@ -731,7 +747,7 @@
void exitRangeStatement(GeneratedYangParser.RangeStatementContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* commonStatements.
*
* @param currentContext current context in the parsed tree
@@ -739,7 +755,7 @@
void enterCommonStatements(GeneratedYangParser.CommonStatementsContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* commonStatements.
*
* @param currentContext current context in the parsed tree
@@ -747,7 +763,7 @@
void exitCommonStatements(GeneratedYangParser.CommonStatementsContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* stringRestrictions.
*
* @param currentContext current context in the parsed tree
@@ -755,7 +771,7 @@
void enterStringRestrictions(GeneratedYangParser.StringRestrictionsContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* stringRestrictions.
*
* @param currentContext current context in the parsed tree
@@ -763,7 +779,7 @@
void exitStringRestrictions(GeneratedYangParser.StringRestrictionsContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* lengthStatement.
*
* @param currentContext current context in the parsed tree
@@ -771,7 +787,7 @@
void enterLengthStatement(GeneratedYangParser.LengthStatementContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* lengthStatement.
*
* @param currentContext current context in the parsed tree
@@ -779,7 +795,7 @@
void exitLengthStatement(GeneratedYangParser.LengthStatementContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* patternStatement.
*
* @param currentContext current context in the parsed tree
@@ -787,7 +803,7 @@
void enterPatternStatement(GeneratedYangParser.PatternStatementContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* patternStatement.
*
* @param currentContext current context in the parsed tree
@@ -795,7 +811,7 @@
void exitPatternStatement(GeneratedYangParser.PatternStatementContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* defaultStatement.
*
* @param currentContext current context in the parsed tree
@@ -803,7 +819,7 @@
void enterDefaultStatement(GeneratedYangParser.DefaultStatementContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* defaultStatement.
*
* @param currentContext current context in the parsed tree
@@ -811,7 +827,7 @@
void exitDefaultStatement(GeneratedYangParser.DefaultStatementContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* enumSpecification.
*
* @param currentContext current context in the parsed tree
@@ -819,7 +835,7 @@
void enterEnumSpecification(GeneratedYangParser.EnumSpecificationContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* enumSpecification.
*
* @param currentContext current context in the parsed tree
@@ -827,7 +843,7 @@
void exitEnumSpecification(GeneratedYangParser.EnumSpecificationContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* enumStatement.
*
* @param currentContext current context in the parsed tree
@@ -835,7 +851,7 @@
void enterEnumStatement(GeneratedYangParser.EnumStatementContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* enumStatement.
*
* @param currentContext current context in the parsed tree
@@ -843,7 +859,7 @@
void exitEnumStatement(GeneratedYangParser.EnumStatementContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* enumStatementBody.
*
* @param currentContext current context in the parsed tree
@@ -851,7 +867,7 @@
void enterEnumStatementBody(GeneratedYangParser.EnumStatementBodyContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* enumStatementBody.
*
* @param currentContext current context in the parsed tree
@@ -859,7 +875,7 @@
void exitEnumStatementBody(GeneratedYangParser.EnumStatementBodyContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* leafrefSpecification.
*
* @param currentContext current context in the parsed tree
@@ -867,7 +883,7 @@
void enterLeafrefSpecification(GeneratedYangParser.LeafrefSpecificationContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* leafrefSpecification.
*
* @param currentContext current context in the parsed tree
@@ -875,7 +891,7 @@
void exitLeafrefSpecification(GeneratedYangParser.LeafrefSpecificationContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* pathStatement.
*
* @param currentContext current context in the parsed tree
@@ -883,7 +899,7 @@
void enterPathStatement(GeneratedYangParser.PathStatementContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* pathStatement.
*
* @param currentContext current context in the parsed tree
@@ -891,7 +907,7 @@
void exitPathStatement(GeneratedYangParser.PathStatementContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* requireInstanceStatement.
*
* @param currentContext current context in the parsed tree
@@ -899,7 +915,7 @@
void enterRequireInstanceStatement(GeneratedYangParser.RequireInstanceStatementContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* requireInstanceStatement.
*
* @param currentContext current context in the parsed tree
@@ -907,7 +923,7 @@
void exitRequireInstanceStatement(GeneratedYangParser.RequireInstanceStatementContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* instanceIdentifierSpecification.
*
* @param currentContext current context in the parsed tree
@@ -916,7 +932,7 @@
GeneratedYangParser.InstanceIdentifierSpecificationContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* instanceIdentifierSpecification.
*
* @param currentContext current context in the parsed tree
@@ -924,7 +940,7 @@
void exitInstanceIdentifierSpecification(GeneratedYangParser.InstanceIdentifierSpecificationContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* identityrefSpecification.
*
* @param currentContext current context in the parsed tree
@@ -932,7 +948,7 @@
void enterIdentityrefSpecification(GeneratedYangParser.IdentityrefSpecificationContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* identityrefSpecification.
*
* @param currentContext current context in the parsed tree
@@ -940,7 +956,7 @@
void exitIdentityrefSpecification(GeneratedYangParser.IdentityrefSpecificationContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* unionSpecification.
*
* @param currentContext current context in the parsed tree
@@ -948,7 +964,7 @@
void enterUnionSpecification(GeneratedYangParser.UnionSpecificationContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* unionSpecification.
*
* @param currentContext current context in the parsed tree
@@ -956,7 +972,7 @@
void exitUnionSpecification(GeneratedYangParser.UnionSpecificationContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* bitsSpecification.
*
* @param currentContext current context in the parsed tree
@@ -964,7 +980,7 @@
void enterBitsSpecification(GeneratedYangParser.BitsSpecificationContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* bitsSpecification.
*
* @param currentContext current context in the parsed tree
@@ -972,7 +988,7 @@
void exitBitsSpecification(GeneratedYangParser.BitsSpecificationContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* bitStatement.
*
* @param currentContext current context in the parsed tree
@@ -980,7 +996,7 @@
void enterBitStatement(GeneratedYangParser.BitStatementContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* bitStatement.
*
* @param currentContext current context in the parsed tree
@@ -988,7 +1004,7 @@
void exitBitStatement(GeneratedYangParser.BitStatementContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* bitBodyStatement.
*
* @param currentContext current context in the parsed tree
@@ -996,7 +1012,7 @@
void enterBitBodyStatement(GeneratedYangParser.BitBodyStatementContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* bitBodyStatement.
*
* @param currentContext current context in the parsed tree
@@ -1004,7 +1020,7 @@
void exitBitBodyStatement(GeneratedYangParser.BitBodyStatementContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* positionStatement.
*
* @param currentContext current context in the parsed tree
@@ -1012,7 +1028,7 @@
void enterPositionStatement(GeneratedYangParser.PositionStatementContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* positionStatement.
*
* @param currentContext current context in the parsed tree
@@ -1020,7 +1036,7 @@
void exitPositionStatement(GeneratedYangParser.PositionStatementContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* statusStatement.
*
* @param currentContext current context in the parsed tree
@@ -1028,7 +1044,7 @@
void enterStatusStatement(GeneratedYangParser.StatusStatementContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* statusStatement.
*
* @param currentContext current context in the parsed tree
@@ -1036,7 +1052,7 @@
void exitStatusStatement(GeneratedYangParser.StatusStatementContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* configStatement.
*
* @param currentContext current context in the parsed tree
@@ -1044,7 +1060,7 @@
void enterConfigStatement(GeneratedYangParser.ConfigStatementContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* configStatement.
*
* @param currentContext current context in the parsed tree
@@ -1052,7 +1068,7 @@
void exitConfigStatement(GeneratedYangParser.ConfigStatementContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* mandatoryStatement.
*
* @param currentContext current context in the parsed tree
@@ -1060,7 +1076,7 @@
void enterMandatoryStatement(GeneratedYangParser.MandatoryStatementContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* mandatoryStatement.
*
* @param currentContext current context in the parsed tree
@@ -1068,7 +1084,7 @@
void exitMandatoryStatement(GeneratedYangParser.MandatoryStatementContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* presenceStatement.
*
* @param currentContext current context in the parsed tree
@@ -1076,7 +1092,7 @@
void enterPresenceStatement(GeneratedYangParser.PresenceStatementContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* presenceStatement.
*
* @param currentContext current context in the parsed tree
@@ -1084,7 +1100,7 @@
void exitPresenceStatement(GeneratedYangParser.PresenceStatementContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* orderedByStatement.
*
* @param currentContext current context in the parsed tree
@@ -1092,7 +1108,7 @@
void enterOrderedByStatement(GeneratedYangParser.OrderedByStatementContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* orderedByStatement.
*
* @param currentContext current context in the parsed tree
@@ -1100,7 +1116,7 @@
void exitOrderedByStatement(GeneratedYangParser.OrderedByStatementContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* mustStatement.
*
* @param currentContext current context in the parsed tree
@@ -1108,7 +1124,7 @@
void enterMustStatement(GeneratedYangParser.MustStatementContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* mustStatement.
*
* @param currentContext current context in the parsed tree
@@ -1116,7 +1132,7 @@
void exitMustStatement(GeneratedYangParser.MustStatementContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* errorMessageStatement.
*
* @param currentContext current context in the parsed tree
@@ -1124,7 +1140,7 @@
void enterErrorMessageStatement(GeneratedYangParser.ErrorMessageStatementContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* errorMessageStatement.
*
* @param currentContext current context in the parsed tree
@@ -1132,7 +1148,7 @@
void exitErrorMessageStatement(GeneratedYangParser.ErrorMessageStatementContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* errorAppTagStatement.
*
* @param currentContext current context in the parsed tree
@@ -1140,7 +1156,7 @@
void enterErrorAppTagStatement(GeneratedYangParser.ErrorAppTagStatementContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* errorAppTagStatement.
*
* @param currentContext current context in the parsed tree
@@ -1148,7 +1164,7 @@
void exitErrorAppTagStatement(GeneratedYangParser.ErrorAppTagStatementContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* minElementsStatement.
*
* @param currentContext current context in the parsed tree
@@ -1156,7 +1172,7 @@
void enterMinElementsStatement(GeneratedYangParser.MinElementsStatementContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* minElementsStatement.
*
* @param currentContext current context in the parsed tree
@@ -1164,7 +1180,7 @@
void exitMinElementsStatement(GeneratedYangParser.MinElementsStatementContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* maxElementsStatement.
*
* @param currentContext current context in the parsed tree
@@ -1172,7 +1188,7 @@
void enterMaxElementsStatement(GeneratedYangParser.MaxElementsStatementContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* maxElementsStatement.
*
* @param currentContext current context in the parsed tree
@@ -1180,7 +1196,7 @@
void exitMaxElementsStatement(GeneratedYangParser.MaxElementsStatementContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* valueStatement.
*
* @param currentContext current context in the parsed tree
@@ -1188,7 +1204,7 @@
void enterValueStatement(GeneratedYangParser.ValueStatementContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* valueStatement.
*
* @param currentContext current context in the parsed tree
@@ -1196,7 +1212,7 @@
void exitValueStatement(GeneratedYangParser.ValueStatementContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* groupingStatement.
*
* @param currentContext current context in the parsed tree
@@ -1204,7 +1220,7 @@
void enterGroupingStatement(GeneratedYangParser.GroupingStatementContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* groupingStatement.
*
* @param currentContext current context in the parsed tree
@@ -1212,7 +1228,7 @@
void exitGroupingStatement(GeneratedYangParser.GroupingStatementContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* containerStatement.
*
* @param currentContext current context in the parsed tree
@@ -1220,7 +1236,7 @@
void enterContainerStatement(GeneratedYangParser.ContainerStatementContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* containerStatement.
*
* @param currentContext current context in the parsed tree
@@ -1228,7 +1244,7 @@
void exitContainerStatement(GeneratedYangParser.ContainerStatementContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* leafStatement.
*
* @param currentContext current context in the parsed tree
@@ -1236,7 +1252,7 @@
void enterLeafStatement(GeneratedYangParser.LeafStatementContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* leafStatement.
*
* @param currentContext current context in the parsed tree
@@ -1244,7 +1260,7 @@
void exitLeafStatement(GeneratedYangParser.LeafStatementContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* leafListStatement.
*
* @param currentContext current context in the parsed tree
@@ -1252,7 +1268,7 @@
void enterLeafListStatement(GeneratedYangParser.LeafListStatementContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* leafListStatement.
*
* @param currentContext current context in the parsed tree
@@ -1260,7 +1276,7 @@
void exitLeafListStatement(GeneratedYangParser.LeafListStatementContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* listStatement.
*
* @param currentContext current context in the parsed tree
@@ -1268,7 +1284,7 @@
void enterListStatement(GeneratedYangParser.ListStatementContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* listStatement.
*
* @param currentContext current context in the parsed tree
@@ -1276,7 +1292,7 @@
void exitListStatement(GeneratedYangParser.ListStatementContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* keyStatement.
*
* @param currentContext current context in the parsed tree
@@ -1284,7 +1300,7 @@
void enterKeyStatement(GeneratedYangParser.KeyStatementContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule
* keyStatement.
*
* @param currentContext current context in the parsed tree
@@ -1292,7 +1308,7 @@
void exitKeyStatement(GeneratedYangParser.KeyStatementContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule
* uniqueStatement.
*
* @param currentContext current context in the parsed tree
@@ -1300,650 +1316,651 @@
void enterUniqueStatement(GeneratedYangParser.UniqueStatementContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
- * uniqueStatement.
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule uniqueStatement.
*
* @param currentContext current context in the parsed tree
*/
void exitUniqueStatement(GeneratedYangParser.UniqueStatementContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
- * choiceStatement.
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule choiceStatement.
*
* @param currentContext current context in the parsed tree
*/
void enterChoiceStatement(GeneratedYangParser.ChoiceStatementContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
- * choiceStatement.
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule choiceStatement.
*
* @param currentContext current context in the parsed tree
*/
void exitChoiceStatement(GeneratedYangParser.ChoiceStatementContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
- * shortCaseStatement.
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule shortCaseStatement.
*
* @param currentContext current context in the parsed tree
*/
void enterShortCaseStatement(GeneratedYangParser.ShortCaseStatementContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
- * shortCaseStatement.
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule shortCaseStatement.
*
* @param currentContext current context in the parsed tree
*/
void exitShortCaseStatement(GeneratedYangParser.ShortCaseStatementContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
- * caseStatement.
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule caseStatement.
*
* @param currentContext current context in the parsed tree
*/
void enterCaseStatement(GeneratedYangParser.CaseStatementContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
- * caseStatement.
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule caseStatement.
*
* @param currentContext current context in the parsed tree
*/
void exitCaseStatement(GeneratedYangParser.CaseStatementContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
- * usesStatement.
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule anyxmlStatement.
+ *
+ * @param currentContext current context in the parsed tree
+ */
+ void enterAnyxmlStatement(GeneratedYangParser.AnyxmlStatementContext currentContext);
+
+ /**
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule anyxmlStatement.
+ *
+ * @param currentContext current context in the parsed tree
+ */
+ void exitAnyxmlStatement(GeneratedYangParser.AnyxmlStatementContext currentContext);
+
+ /**
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule usesStatement.
*
* @param currentContext current context in the parsed tree
*/
void enterUsesStatement(GeneratedYangParser.UsesStatementContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
- * usesStatement.
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule usesStatement.
*
* @param currentContext current context in the parsed tree
*/
void exitUsesStatement(GeneratedYangParser.UsesStatementContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
- * refineStatement.
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule refineStatement.
*
* @param currentContext current context in the parsed tree
*/
void enterRefineStatement(GeneratedYangParser.RefineStatementContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
- * refineStatement.
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule refineStatement.
*
* @param currentContext current context in the parsed tree
*/
void exitRefineStatement(GeneratedYangParser.RefineStatementContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
- * refineContainerStatements.
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule refineContainerStatements.
*
* @param currentContext current context in the parsed tree
*/
void enterRefineContainerStatements(GeneratedYangParser.RefineContainerStatementsContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
- * refineContainerStatements.
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule refineContainerStatements.
*
* @param currentContext current context in the parsed tree
*/
void exitRefineContainerStatements(GeneratedYangParser.RefineContainerStatementsContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
- * refineLeafStatements.
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule refineLeafStatements.
*
* @param currentContext current context in the parsed tree
*/
void enterRefineLeafStatements(GeneratedYangParser.RefineLeafStatementsContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
- * refineLeafStatements.
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule refineLeafStatements.
*
* @param currentContext current context in the parsed tree
*/
void exitRefineLeafStatements(GeneratedYangParser.RefineLeafStatementsContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
- * refineLeafListStatements.
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule refineLeafListStatements.
*
* @param currentContext current context in the parsed tree
*/
void enterRefineLeafListStatements(GeneratedYangParser.RefineLeafListStatementsContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
- * refineLeafListStatements.
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule refineLeafListStatements.
*
* @param currentContext current context in the parsed tree
*/
void exitRefineLeafListStatements(GeneratedYangParser.RefineLeafListStatementsContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
- * refineListStatements.
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule refineListStatements.
*
* @param currentContext current context in the parsed tree
*/
void enterRefineListStatements(GeneratedYangParser.RefineListStatementsContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
- * refineListStatements.
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule refineListStatements.
*
* @param currentContext current context in the parsed tree
*/
void exitRefineListStatements(GeneratedYangParser.RefineListStatementsContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
- * refineChoiceStatements.
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule refineChoiceStatements.
*
* @param currentContext current context in the parsed tree
*/
void enterRefineChoiceStatements(GeneratedYangParser.RefineChoiceStatementsContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
- * refineChoiceStatements.
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule refineChoiceStatements.
*
* @param currentContext current context in the parsed tree
*/
void exitRefineChoiceStatements(GeneratedYangParser.RefineChoiceStatementsContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
- * refineCaseStatements.
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule refineCaseStatements.
*
* @param currentContext current context in the parsed tree
*/
void enterRefineCaseStatements(GeneratedYangParser.RefineCaseStatementsContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
- * refineCaseStatements.
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule refineCaseStatements.
*
* @param currentContext current context in the parsed tree
*/
void exitRefineCaseStatements(GeneratedYangParser.RefineCaseStatementsContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
- * usesAugmentStatement.
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule refineAnyxmlStatements.
*
* @param currentContext current context in the parsed tree
*/
- void enterUsesAugmentStatement(GeneratedYangParser.UsesAugmentStatementContext currentContext);
+ void enterRefineAnyxmlStatements(GeneratedYangParser.RefineAnyxmlStatementsContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
- * usesAugmentStatement.
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule refineAnyxmlStatements.
*
* @param currentContext current context in the parsed tree
*/
- void exitUsesAugmentStatement(GeneratedYangParser.UsesAugmentStatementContext currentContext);
+ void exitRefineAnyxmlStatements(GeneratedYangParser.RefineAnyxmlStatementsContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
- * augmentStatement.
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule augmentStatement.
*
* @param currentContext current context in the parsed tree
*/
void enterAugmentStatement(GeneratedYangParser.AugmentStatementContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
- * augmentStatement.
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule augmentStatement.
*
* @param currentContext current context in the parsed tree
*/
void exitAugmentStatement(GeneratedYangParser.AugmentStatementContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
- * whenStatement.
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule whenStatement.
*
* @param currentContext current context in the parsed tree
*/
void enterWhenStatement(GeneratedYangParser.WhenStatementContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
- * whenStatement.
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule whenStatement.
*
* @param currentContext current context in the parsed tree
*/
void exitWhenStatement(GeneratedYangParser.WhenStatementContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
- * rpcStatement.
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule rpcStatement.
*
* @param currentContext current context in the parsed tree
*/
void enterRpcStatement(GeneratedYangParser.RpcStatementContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
- * rpcStatement.
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule rpcStatement.
*
* @param currentContext current context in the parsed tree
*/
void exitRpcStatement(GeneratedYangParser.RpcStatementContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
- * inputStatement.
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule inputStatement.
*
* @param currentContext current context in the parsed tree
*/
void enterInputStatement(GeneratedYangParser.InputStatementContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
- * inputStatement.
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule inputStatement.
*
* @param currentContext current context in the parsed tree
*/
void exitInputStatement(GeneratedYangParser.InputStatementContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
- * outputStatement.
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule outputStatement.
*
* @param currentContext current context in the parsed tree
*/
void enterOutputStatement(GeneratedYangParser.OutputStatementContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
- * outputStatement.
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule outputStatement.
*
* @param currentContext current context in the parsed tree
*/
void exitOutputStatement(GeneratedYangParser.OutputStatementContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
- * notificationStatement.
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule notificationStatement.
*
* @param currentContext current context in the parsed tree
*/
void enterNotificationStatement(GeneratedYangParser.NotificationStatementContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
- * notificationStatement.
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule notificationStatement.
*
* @param currentContext current context in the parsed tree
*/
void exitNotificationStatement(GeneratedYangParser.NotificationStatementContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
- * deviationStatement.
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule deviationStatement.
*
* @param currentContext current context in the parsed tree
*/
void enterDeviationStatement(GeneratedYangParser.DeviationStatementContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
- * deviationStatement.
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule deviationStatement.
*
* @param currentContext current context in the parsed tree
*/
void exitDeviationStatement(GeneratedYangParser.DeviationStatementContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule
- * deviateNotSupportedStatement.
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule deviateNotSupportedStatement.
*
* @param currentContext current context in the parsed tree
*/
void enterDeviateNotSupportedStatement(GeneratedYangParser.DeviateNotSupportedStatementContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule
- * deviateNotSupportedStatement.
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule deviateNotSupportedStatement.
*
* @param currentContext current context in the parsed tree
*/
void exitDeviateNotSupportedStatement(GeneratedYangParser.DeviateNotSupportedStatementContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule deviateAddStatement.
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule deviateAddStatement.
*
* @param currentContext current context in the parsed tree
*/
void enterDeviateAddStatement(GeneratedYangParser.DeviateAddStatementContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule deviateAddStatement.
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule deviateAddStatement.
*
* @param currentContext current context in the parsed tree
*/
void exitDeviateAddStatement(GeneratedYangParser.DeviateAddStatementContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule deviateDeleteStatement.
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule deviateDeleteStatement.
*
* @param currentContext current context in the parsed tree
*/
void enterDeviateDeleteStatement(GeneratedYangParser.DeviateDeleteStatementContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule deviateDeleteStatement.
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule deviateDeleteStatement.
*
* @param currentContext current context in the parsed tree
*/
void exitDeviateDeleteStatement(GeneratedYangParser.DeviateDeleteStatementContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule deviateReplaceStatement.
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule deviateReplaceStatement.
*
* @param currentContext current context in the parsed tree
*/
void enterDeviateReplaceStatement(GeneratedYangParser.DeviateReplaceStatementContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule deviateReplaceStatement.
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule deviateReplaceStatement.
*
* @param currentContext current context in the parsed tree
*/
void exitDeviateReplaceStatement(GeneratedYangParser.DeviateReplaceStatementContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule string.
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule string.
*
* @param currentContext current context in the parsed tree
*/
void enterString(GeneratedYangParser.StringContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule string.
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule string.
*
* @param currentContext current context in the parsed tree
*/
void exitString(GeneratedYangParser.StringContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule identifier.
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule identifier.
*
* @param currentContext current context in the parsed tree
*/
void enterIdentifier(GeneratedYangParser.IdentifierContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule identifier.
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule identifier.
*
* @param currentContext current context in the parsed tree
*/
void exitIdentifier(GeneratedYangParser.IdentifierContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule version.
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule version.
*
* @param currentContext current context in the parsed tree
*/
void enterVersion(GeneratedYangParser.VersionContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule version.
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule version.
*
* @param currentContext current context in the parsed tree
*/
void exitVersion(GeneratedYangParser.VersionContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule range.
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule range.
*
* @param currentContext current context in the parsed tree
*/
void enterRange(GeneratedYangParser.RangeContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule range.
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule range.
*
* @param currentContext current context in the parsed tree
*/
void exitRange(GeneratedYangParser.RangeContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule dateArgumentString.
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule dateArgumentString.
*
* @param currentContext current context in the parsed tree
*/
void enterDateArgumentString(GeneratedYangParser.DateArgumentStringContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule dateArgumentString.
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule dateArgumentString.
*
* @param currentContext current context in the parsed tree
*/
void exitDateArgumentString(GeneratedYangParser.DateArgumentStringContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule length.
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule length.
*
* @param currentContext current context in the parsed tree
*/
void enterLength(GeneratedYangParser.LengthContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule length.
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule length.
*
* @param currentContext current context in the parsed tree
*/
void exitLength(GeneratedYangParser.LengthContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule path.
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule path.
*
* @param currentContext current context in the parsed tree
*/
void enterPath(GeneratedYangParser.PathContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule path.
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule path.
*
* @param currentContext current context in the parsed tree
*/
void exitPath(GeneratedYangParser.PathContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule position.
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule position.
*
* @param currentContext current context in the parsed tree
*/
void enterPosition(GeneratedYangParser.PositionContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule position.
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule position.
*
* @param currentContext current context in the parsed tree
*/
void exitPosition(GeneratedYangParser.PositionContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule status.
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule status.
*
* @param currentContext current context in the parsed tree
*/
void enterStatus(GeneratedYangParser.StatusContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule status.
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule status.
*
* @param currentContext current context in the parsed tree
*/
void exitStatus(GeneratedYangParser.StatusContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule config.
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule config.
*
* @param currentContext current context in the parsed tree
*/
void enterConfig(GeneratedYangParser.ConfigContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule config.
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule config.
*
* @param currentContext current context in the parsed tree
*/
void exitConfig(GeneratedYangParser.ConfigContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule mandatory.
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule mandatory.
*
* @param currentContext current context in the parsed tree
*/
void enterMandatory(GeneratedYangParser.MandatoryContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule mandatory.
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule mandatory.
*
* @param currentContext current context in the parsed tree
*/
void exitMandatory(GeneratedYangParser.MandatoryContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule ordered-by.
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule ordered-by.
*
* @param currentContext current context in the parsed tree
*/
void enterOrderedBy(GeneratedYangParser.OrderedByContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule ordered-by.
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule ordered-by.
*
* @param currentContext current context in the parsed tree
*/
void exitOrderedBy(GeneratedYangParser.OrderedByContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule min elements value.
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule min elements value.
*
* @param currentContext current context in the parsed tree
*/
void enterMinValue(GeneratedYangParser.MinValueContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule min elements value.
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule min elements value.
*
* @param currentContext current context in the parsed tree
*/
void exitMinValue(GeneratedYangParser.MinValueContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule max elements value.
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule max elements value.
*
* @param currentContext current context in the parsed tree
*/
void enterMaxValue(GeneratedYangParser.MaxValueContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule max elements value.
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule max elements value.
*
* @param currentContext current context in the parsed tree
*/
void exitMaxValue(GeneratedYangParser.MaxValueContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule key.
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule key.
*
* @param currentContext current context in the parsed tree
*/
void enterKey(GeneratedYangParser.KeyContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule key.
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule key.
*
* @param currentContext current context in the parsed tree
*/
void exitKey(GeneratedYangParser.KeyContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule unique.
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule unique.
*
* @param currentContext current context in the parsed tree
*/
void enterUnique(GeneratedYangParser.UniqueContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule unique.
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule unique.
*
* @param currentContext current context in the parsed tree
*/
void exitUnique(GeneratedYangParser.UniqueContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule refine.
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule refine.
*
* @param currentContext current context in the parsed tree
*/
void enterRefine(GeneratedYangParser.RefineContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule refine.
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule refine.
*
* @param currentContext current context in the parsed tree
*/
void exitRefine(GeneratedYangParser.RefineContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule augment.
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule augment.
*
* @param currentContext current context in the parsed tree
*/
void enterAugment(GeneratedYangParser.AugmentContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule augment.
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule augment.
*
* @param currentContext current context in the parsed tree
*/
void exitAugment(GeneratedYangParser.AugmentContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule deviation.
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule augment.
+ *
+ * @param currentContext current context in the parsed tree
+ */
+ void enterFraction(GeneratedYangParser.FractionContext currentContext);
+
+ /**
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule augment.
+ *
+ * @param currentContext current context in the parsed tree
+ */
+ void exitFraction(GeneratedYangParser.FractionContext currentContext);
+
+ /**
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule deviation.
*
* @param currentContext current context in the parsed tree
*/
void enterDeviation(GeneratedYangParser.DeviationContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule deviation.
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule deviation.
*
* @param currentContext current context in the parsed tree
*/
void exitDeviation(GeneratedYangParser.DeviationContext currentContext);
/**
- * Enter a parse tree produced by GeneratedYangParser for grammar rule yang construct.
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule deviation.
+ *
+ * @param currentContext current context in the parsed tree
+ */
+ void enterValue(GeneratedYangParser.ValueContext currentContext);
+
+ /**
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule deviation.
+ *
+ * @param currentContext current context in the parsed tree
+ */
+ void exitValue(GeneratedYangParser.ValueContext currentContext);
+
+ /**
+ * Enters a parse tree produced by GeneratedYangParser for grammar rule yang construct.
*
* @param currentContext current context in the parsed tree
*/
void enterYangConstruct(GeneratedYangParser.YangConstructContext currentContext);
/**
- * Exit a parse tree produced by GeneratedYangParser for grammar rule yang construct.
+ * Exits a parse tree produced by GeneratedYangParser for grammar rule yang construct.
*
* @param currentContext current context in the parsed tree
*/
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.
}
}
diff --git a/utils/yangutils/src/main/java/org/onosproject/yangutils/parser/impl/listeners/ContainerListener.java b/utils/yangutils/src/main/java/org/onosproject/yangutils/parser/impl/listeners/ContainerListener.java
index 643499f..72bd97a 100644
--- a/utils/yangutils/src/main/java/org/onosproject/yangutils/parser/impl/listeners/ContainerListener.java
+++ b/utils/yangutils/src/main/java/org/onosproject/yangutils/parser/impl/listeners/ContainerListener.java
@@ -26,6 +26,7 @@
import org.onosproject.yangutils.datamodel.YangNode;
import org.onosproject.yangutils.datamodel.YangNotification;
import org.onosproject.yangutils.datamodel.YangOutput;
+import org.onosproject.yangutils.datamodel.YangSubModule;
import org.onosproject.yangutils.datamodel.exceptions.DataModelException;
import org.onosproject.yangutils.parser.Parsable;
import org.onosproject.yangutils.parser.antlrgencode.GeneratedYangParser;
@@ -133,12 +134,11 @@
}
Parsable curData = listener.getParsedDataStack().peek();
- if (curData instanceof YangModule || curData instanceof YangContainer
- || curData instanceof YangList || curData instanceof YangCase
- || curData instanceof YangNotification
+ if (curData instanceof YangModule || curData instanceof YangSubModule
+ || curData instanceof YangContainer || curData instanceof YangList
+ || curData instanceof YangCase || curData instanceof YangNotification
|| curData instanceof YangInput || curData instanceof YangOutput
- || curData instanceof YangAugment
- || curData instanceof YangGrouping) {
+ || curData instanceof YangAugment || curData instanceof YangGrouping) {
YangNode curNode = (YangNode) curData;
try {
curNode.addChild(container);
diff --git a/utils/yangutils/src/main/java/org/onosproject/yangutils/parser/impl/listeners/DefaultListener.java b/utils/yangutils/src/main/java/org/onosproject/yangutils/parser/impl/listeners/DefaultListener.java
index fc9b84a..a4511bc 100644
--- a/utils/yangutils/src/main/java/org/onosproject/yangutils/parser/impl/listeners/DefaultListener.java
+++ b/utils/yangutils/src/main/java/org/onosproject/yangutils/parser/impl/listeners/DefaultListener.java
@@ -39,6 +39,8 @@
* defaultStatement : DEFAULT_KEYWORD string STMTEND;
*/
+import org.onosproject.yangutils.datamodel.YangChoice;
+import org.onosproject.yangutils.datamodel.YangLeaf;
import org.onosproject.yangutils.datamodel.YangTypeDef;
import org.onosproject.yangutils.parser.Parsable;
import org.onosproject.yangutils.parser.antlrgencode.GeneratedYangParser;
@@ -83,6 +85,16 @@
typeDef.setDefaultValueInString(ctx.string().getText());
break;
}
+ case LEAF_DATA: {
+ YangLeaf leaf = (YangLeaf) tmpNode;
+ leaf.setDefaultValueInString(ctx.string().getText());
+ break;
+ }
+ case CHOICE_DATA: {
+ YangChoice choice = (YangChoice) tmpNode;
+ choice.setDefaultValueInString(ctx.string().getText());
+ break;
+ }
default:
throw new ParserException(constructListenerErrorMessage(INVALID_HOLDER,
DEFAULT_DATA, ctx.string().getText(), ENTRY));
diff --git a/utils/yangutils/src/main/java/org/onosproject/yangutils/parser/impl/listeners/EnumListener.java b/utils/yangutils/src/main/java/org/onosproject/yangutils/parser/impl/listeners/EnumListener.java
index 08edab1..e0a51df 100644
--- a/utils/yangutils/src/main/java/org/onosproject/yangutils/parser/impl/listeners/EnumListener.java
+++ b/utils/yangutils/src/main/java/org/onosproject/yangutils/parser/impl/listeners/EnumListener.java
@@ -146,7 +146,14 @@
boolean isValuePresent = false;
for (YangEnum curEnum : yangEnumeration.getEnumSet()) {
- if (maxValue <= curEnum.getValue()) {
+ if (curEnum.getValue() == Integer.MAX_VALUE) {
+ ParserException parserException = new ParserException("YANG file error : "
+ + "An enum value MUST be specified for enum substatements following the one"
+ + "with the current highest value");
+ parserException.setLine(ctx.getStart().getLine());
+ parserException.setCharPosition(ctx.getStart().getCharPositionInLine());
+ throw parserException;
+ } else if (maxValue <= curEnum.getValue()) {
maxValue = curEnum.getValue();
isValuePresent = true;
}
@@ -161,8 +168,8 @@
} catch (DataModelException e) {
ParserException parserException = new ParserException(constructExtendedListenerErrorMessage(
DUPLICATE_ENTRY, ENUM_DATA, ctx.string().getText(), EXIT, e.getMessage()));
- parserException.setLine(ctx.string().STRING(0).getSymbol().getLine());
- parserException.setCharPosition(ctx.string().STRING(0).getSymbol().getCharPositionInLine());
+ parserException.setLine(ctx.getStart().getLine());
+ parserException.setCharPosition(ctx.getStart().getCharPositionInLine());
throw parserException;
}
break;
@@ -173,8 +180,7 @@
}
} else {
throw new ParserException(
- constructListenerErrorMessage(MISSING_CURRENT_HOLDER, ENUM_DATA, ctx.string().getText(),
- EXIT));
+ constructListenerErrorMessage(MISSING_CURRENT_HOLDER, ENUM_DATA, ctx.string().getText(), EXIT));
}
}
}
diff --git a/utils/yangutils/src/main/java/org/onosproject/yangutils/parser/impl/listeners/LengthRestrictionListener.java b/utils/yangutils/src/main/java/org/onosproject/yangutils/parser/impl/listeners/LengthRestrictionListener.java
index 03fc737..2f1d7fe 100644
--- a/utils/yangutils/src/main/java/org/onosproject/yangutils/parser/impl/listeners/LengthRestrictionListener.java
+++ b/utils/yangutils/src/main/java/org/onosproject/yangutils/parser/impl/listeners/LengthRestrictionListener.java
@@ -29,8 +29,10 @@
import static org.onosproject.yangutils.datamodel.YangDataTypes.DERIVED;
import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.ENTRY;
+import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.EXIT;
import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorMessageConstruction.constructListenerErrorMessage;
import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.INVALID_HOLDER;
+import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.MISSING_CURRENT_HOLDER;
import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.MISSING_HOLDER;
import static org.onosproject.yangutils.parser.impl.parserutils.ListenerValidation.checkStackIsNotEmpty;
import static org.onosproject.yangutils.utils.RestrictionResolver.processLengthRestriction;
@@ -86,7 +88,7 @@
Parsable tmpData = listener.getParsedDataStack().peek();
if (tmpData.getYangConstructType() == TYPE_DATA) {
YangType type = (YangType) tmpData;
- setLengthRestriction(type, ctx);
+ setLengthRestriction(listener, type, ctx);
} else {
throw new ParserException(constructListenerErrorMessage(INVALID_HOLDER, LENGTH_DATA,
ctx.length().getText(), ENTRY));
@@ -96,10 +98,11 @@
/**
* Sets the length restriction to type.
*
+ * @param listener listener's object
* @param type Yang type for which length restriction to be set
* @param ctx context object of the grammar rule
*/
- private static void setLengthRestriction(YangType type,
+ private static void setLengthRestriction(TreeWalkListener listener, YangType type,
GeneratedYangParser.LengthStatementContext ctx) {
if (type.getDataType() == DERIVED) {
@@ -132,5 +135,31 @@
}
stringRestriction.setLengthRestriction(lengthRestriction);
+ listener.getParsedDataStack().push(lengthRestriction);
+ }
+
+ /**
+ * Performs validation and updates the data model tree.
+ * It is called when parser exits from grammar rule (length).
+ *
+ * @param listener listener's object
+ * @param ctx context object of the grammar rule
+ */
+ public static void processLengthRestrictionExit(TreeWalkListener listener,
+ GeneratedYangParser.LengthStatementContext ctx) {
+
+ // Check for stack to be non empty.
+ checkStackIsNotEmpty(listener, MISSING_HOLDER, LENGTH_DATA, ctx.length().getText(), EXIT);
+
+ Parsable tmpData = listener.getParsedDataStack().peek();
+ if (tmpData instanceof YangRangeRestriction) {
+ listener.getParsedDataStack().pop();
+ } else if (tmpData instanceof YangType
+ && ((YangType) tmpData).getDataType() == DERIVED) {
+ // TODO : need to handle in linker
+ } else {
+ throw new ParserException(constructListenerErrorMessage(MISSING_CURRENT_HOLDER, LENGTH_DATA,
+ ctx.length().getText(), EXIT));
+ }
}
}
diff --git a/utils/yangutils/src/main/java/org/onosproject/yangutils/parser/impl/listeners/ListListener.java b/utils/yangutils/src/main/java/org/onosproject/yangutils/parser/impl/listeners/ListListener.java
index 42326b7..1f4ab50 100644
--- a/utils/yangutils/src/main/java/org/onosproject/yangutils/parser/impl/listeners/ListListener.java
+++ b/utils/yangutils/src/main/java/org/onosproject/yangutils/parser/impl/listeners/ListListener.java
@@ -26,6 +26,7 @@
import org.onosproject.yangutils.datamodel.YangNode;
import org.onosproject.yangutils.datamodel.YangNotification;
import org.onosproject.yangutils.datamodel.YangOutput;
+import org.onosproject.yangutils.datamodel.YangSubModule;
import org.onosproject.yangutils.datamodel.exceptions.DataModelException;
import org.onosproject.yangutils.parser.Parsable;
import org.onosproject.yangutils.parser.antlrgencode.GeneratedYangParser;
@@ -141,7 +142,8 @@
if (curData instanceof YangModule || curData instanceof YangContainer
|| curData instanceof YangList || curData instanceof YangCase
|| curData instanceof YangNotification || curData instanceof YangInput
- || curData instanceof YangOutput || curData instanceof YangAugment || curData instanceof YangGrouping) {
+ || curData instanceof YangOutput || curData instanceof YangAugment
+ || curData instanceof YangGrouping || curData instanceof YangSubModule) {
curNode = (YangNode) curData;
try {
curNode.addChild(yangList);
diff --git a/utils/yangutils/src/main/java/org/onosproject/yangutils/parser/impl/listeners/PatternRestrictionListener.java b/utils/yangutils/src/main/java/org/onosproject/yangutils/parser/impl/listeners/PatternRestrictionListener.java
index 3c1fd5a..ca36525 100644
--- a/utils/yangutils/src/main/java/org/onosproject/yangutils/parser/impl/listeners/PatternRestrictionListener.java
+++ b/utils/yangutils/src/main/java/org/onosproject/yangutils/parser/impl/listeners/PatternRestrictionListener.java
@@ -27,9 +27,12 @@
import org.onosproject.yangutils.parser.impl.TreeWalkListener;
import org.onosproject.yangutils.utils.YangConstructType;
+import static org.onosproject.yangutils.datamodel.YangDataTypes.DERIVED;
import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.ENTRY;
+import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.EXIT;
import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorMessageConstruction.constructListenerErrorMessage;
import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.INVALID_HOLDER;
+import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.MISSING_CURRENT_HOLDER;
import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.MISSING_HOLDER;
import static org.onosproject.yangutils.parser.impl.parserutils.ListenerValidation.checkStackIsNotEmpty;
import static org.onosproject.yangutils.utils.YangConstructType.PATTERN_DATA;
@@ -84,7 +87,7 @@
Parsable tmpData = listener.getParsedDataStack().peek();
if (tmpData.getYangConstructType() == TYPE_DATA) {
YangType type = (YangType) tmpData;
- setPatternRestriction(type, ctx);
+ setPatternRestriction(listener, type, ctx);
} else {
throw new ParserException(constructListenerErrorMessage(INVALID_HOLDER, PATTERN_DATA,
ctx.string().getText(), ENTRY));
@@ -94,10 +97,11 @@
/**
* Sets the pattern restriction to type.
*
+ * @param listener listener's object
* @param type Yang type for which pattern restriction to be set
* @param ctx context object of the grammar rule
*/
- private static void setPatternRestriction(YangType type,
+ private static void setPatternRestriction(TreeWalkListener listener, YangType type,
GeneratedYangParser.PatternStatementContext ctx) {
if (type.getDataType() != YangDataTypes.STRING && type.getDataType() != YangDataTypes.DERIVED) {
@@ -121,6 +125,7 @@
} else {
stringRestriction.addPattern(patternArgument);
}
+ listener.getParsedDataStack().push(stringRestriction);
} else {
YangPatternRestriction patternRestriction = (YangPatternRestriction) ((YangDerivedInfo<?>) type
.getDataTypeExtendedInfo()).getPatternRestriction();
@@ -134,4 +139,29 @@
}
}
}
+
+ /**
+ * Performs validation and updates the data model tree.
+ * It is called when parser exits from grammar rule (pattern).
+ *
+ * @param listener listener's object
+ * @param ctx context object of the grammar rule
+ */
+ public static void processPatternRestrictionExit(TreeWalkListener listener,
+ GeneratedYangParser.PatternStatementContext ctx) {
+
+ // Check for stack to be non empty.
+ checkStackIsNotEmpty(listener, MISSING_HOLDER, PATTERN_DATA, ctx.string().getText(), EXIT);
+
+ Parsable tmpData = listener.getParsedDataStack().peek();
+ if (tmpData instanceof YangStringRestriction) {
+ listener.getParsedDataStack().pop();
+ } else if (tmpData instanceof YangType
+ && ((YangType) tmpData).getDataType() == DERIVED) {
+ // TODO : need to handle in linker
+ } else {
+ throw new ParserException(constructListenerErrorMessage(MISSING_CURRENT_HOLDER, PATTERN_DATA,
+ ctx.string().getText(), EXIT));
+ }
+ }
}
diff --git a/utils/yangutils/src/main/java/org/onosproject/yangutils/parser/impl/listeners/RangeRestrictionListener.java b/utils/yangutils/src/main/java/org/onosproject/yangutils/parser/impl/listeners/RangeRestrictionListener.java
index b6e0cf6..b0387ae 100644
--- a/utils/yangutils/src/main/java/org/onosproject/yangutils/parser/impl/listeners/RangeRestrictionListener.java
+++ b/utils/yangutils/src/main/java/org/onosproject/yangutils/parser/impl/listeners/RangeRestrictionListener.java
@@ -26,8 +26,10 @@
import static org.onosproject.yangutils.datamodel.YangDataTypes.DERIVED;
import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.ENTRY;
+import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.EXIT;
import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorMessageConstruction.constructListenerErrorMessage;
import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.INVALID_HOLDER;
+import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.MISSING_CURRENT_HOLDER;
import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.MISSING_HOLDER;
import static org.onosproject.yangutils.parser.impl.parserutils.ListenerValidation.checkStackIsNotEmpty;
import static org.onosproject.yangutils.utils.RestrictionResolver.isOfRangeRestrictedType;
@@ -82,7 +84,7 @@
Parsable tmpData = listener.getParsedDataStack().peek();
if (tmpData.getYangConstructType() == TYPE_DATA) {
YangType type = (YangType) tmpData;
- setRangeRestriction(type, ctx);
+ setRangeRestriction(listener, type, ctx);
} else {
throw new ParserException(constructListenerErrorMessage(INVALID_HOLDER, RANGE_DATA,
ctx.range().getText(), ENTRY));
@@ -92,10 +94,11 @@
/**
* Sets the range restriction to type.
*
+ * @param listener listener's object
* @param type YANG type for which range restriction to be added
* @param ctx context object of the grammar rule
*/
- private static void setRangeRestriction(YangType type,
+ private static void setRangeRestriction(TreeWalkListener listener, YangType type,
GeneratedYangParser.RangeStatementContext ctx) {
if (type.getDataType() == DERIVED) {
@@ -122,5 +125,31 @@
if (rangeRestriction != null) {
type.setDataTypeExtendedInfo(rangeRestriction);
}
+ listener.getParsedDataStack().push(rangeRestriction);
+ }
+
+ /**
+ * Performs validation and updates the data model tree.
+ * It is called when parser exits from grammar rule (range).
+ *
+ * @param listener listener's object
+ * @param ctx context object of the grammar rule
+ */
+ public static void processRangeRestrictionExit(TreeWalkListener listener,
+ GeneratedYangParser.RangeStatementContext ctx) {
+
+ // Check for stack to be non empty.
+ checkStackIsNotEmpty(listener, MISSING_HOLDER, RANGE_DATA, ctx.range().getText(), EXIT);
+
+ Parsable tmpData = listener.getParsedDataStack().peek();
+ if (tmpData instanceof YangRangeRestriction) {
+ listener.getParsedDataStack().pop();
+ } else if (tmpData instanceof YangType
+ && ((YangType) tmpData).getDataType() == DERIVED) {
+ // TODO : need to handle in linker
+ } else {
+ throw new ParserException(constructListenerErrorMessage(MISSING_CURRENT_HOLDER, RANGE_DATA,
+ ctx.range().getText(), EXIT));
+ }
}
}
\ No newline at end of file
diff --git a/utils/yangutils/src/main/java/org/onosproject/yangutils/parser/impl/listeners/ValueListener.java b/utils/yangutils/src/main/java/org/onosproject/yangutils/parser/impl/listeners/ValueListener.java
index 92a0d42..cd54436 100644
--- a/utils/yangutils/src/main/java/org/onosproject/yangutils/parser/impl/listeners/ValueListener.java
+++ b/utils/yangutils/src/main/java/org/onosproject/yangutils/parser/impl/listeners/ValueListener.java
@@ -38,6 +38,7 @@
import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.INVALID_HOLDER;
import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.MISSING_HOLDER;
import static org.onosproject.yangutils.parser.impl.parserutils.ListenerValidation.checkStackIsNotEmpty;
+import static org.onosproject.yangutils.parser.impl.parserutils.ListenerUtil.getValidIntegerValue;
import static org.onosproject.yangutils.utils.YangConstructType.VALUE_DATA;
/**
@@ -62,25 +63,28 @@
public static void processValueEntry(TreeWalkListener listener, GeneratedYangParser.ValueStatementContext ctx) {
// Check for stack to be non empty.
- checkStackIsNotEmpty(listener, MISSING_HOLDER, VALUE_DATA, ctx.INTEGER().getText(), ENTRY);
+ checkStackIsNotEmpty(listener, MISSING_HOLDER, VALUE_DATA, ctx.value().getText(), ENTRY);
+
+ // Validate value
+ int value = getValidIntegerValue(ctx.value().getText(), VALUE_DATA, ctx);
// Obtain the node of the stack.
Parsable tmpNode = listener.getParsedDataStack().peek();
switch (tmpNode.getYangConstructType()) {
case ENUM_DATA: {
YangEnum enumNode = (YangEnum) tmpNode;
- if (!isEnumValueValid(listener, ctx)) {
+ if (!isEnumValueValid(listener, ctx, value)) {
ParserException parserException = new ParserException("Duplicate Value Entry");
- parserException.setLine(ctx.INTEGER().getSymbol().getLine());
- parserException.setCharPosition(ctx.INTEGER().getSymbol().getCharPositionInLine());
+ parserException.setLine(ctx.getStart().getLine());
+ parserException.setCharPosition(ctx.getStart().getCharPositionInLine());
throw parserException;
}
- enumNode.setValue(Integer.valueOf(ctx.INTEGER().getText()));
+ enumNode.setValue(value);
break;
}
default:
throw new ParserException(
- constructListenerErrorMessage(INVALID_HOLDER, VALUE_DATA, ctx.INTEGER().getText(), ENTRY));
+ constructListenerErrorMessage(INVALID_HOLDER, VALUE_DATA, ctx.value().getText(), ENTRY));
}
}
@@ -89,20 +93,22 @@
*
* @param listener Listener's object
* @param ctx context object of the grammar rule
+ * @param value enum value
* @return validation result
*/
- private static boolean isEnumValueValid(TreeWalkListener listener, GeneratedYangParser.ValueStatementContext ctx) {
+ private static boolean isEnumValueValid(TreeWalkListener listener, GeneratedYangParser.ValueStatementContext ctx,
+ int value) {
Parsable enumNode = listener.getParsedDataStack().pop();
// Check for stack to be non empty.
- checkStackIsNotEmpty(listener, MISSING_HOLDER, VALUE_DATA, ctx.INTEGER().getText(), ENTRY);
+ checkStackIsNotEmpty(listener, MISSING_HOLDER, VALUE_DATA, ctx.value().getText(), ENTRY);
Parsable tmpNode = listener.getParsedDataStack().peek();
switch (tmpNode.getYangConstructType()) {
case ENUMERATION_DATA: {
YangEnumeration yangEnumeration = (YangEnumeration) tmpNode;
for (YangEnum curEnum : yangEnumeration.getEnumSet()) {
- if (Integer.valueOf(ctx.INTEGER().getText()) == curEnum.getValue()) {
+ if (value == curEnum.getValue()) {
listener.getParsedDataStack().push(enumNode);
return false;
}
@@ -113,7 +119,7 @@
default:
listener.getParsedDataStack().push(enumNode);
throw new ParserException(
- constructListenerErrorMessage(INVALID_HOLDER, VALUE_DATA, ctx.INTEGER().getText(), ENTRY));
+ constructListenerErrorMessage(INVALID_HOLDER, VALUE_DATA, ctx.value().getText(), ENTRY));
}
}
}
diff --git a/utils/yangutils/src/main/java/org/onosproject/yangutils/parser/impl/parserutils/ListenerUtil.java b/utils/yangutils/src/main/java/org/onosproject/yangutils/parser/impl/parserutils/ListenerUtil.java
index d5efe91..de11f05 100644
--- a/utils/yangutils/src/main/java/org/onosproject/yangutils/parser/impl/parserutils/ListenerUtil.java
+++ b/utils/yangutils/src/main/java/org/onosproject/yangutils/parser/impl/parserutils/ListenerUtil.java
@@ -29,6 +29,18 @@
import org.onosproject.yangutils.parser.exceptions.ParserException;
import org.onosproject.yangutils.utils.YangConstructType;
+import static org.onosproject.yangutils.utils.UtilConstants.ADD;
+import static org.onosproject.yangutils.utils.UtilConstants.SPACE;
+import static org.onosproject.yangutils.utils.UtilConstants.SLASH;
+import static org.onosproject.yangutils.utils.UtilConstants.COLON;
+import static org.onosproject.yangutils.utils.UtilConstants.CARET;
+import static org.onosproject.yangutils.utils.UtilConstants.QUOTES;
+import static org.onosproject.yangutils.utils.UtilConstants.HYPHEN;
+import static org.onosproject.yangutils.utils.UtilConstants.EMPTY_STRING;
+import static org.onosproject.yangutils.utils.UtilConstants.TRUE;
+import static org.onosproject.yangutils.utils.UtilConstants.FALSE;
+import static org.onosproject.yangutils.utils.UtilConstants.YANG_FILE_ERROR;
+
/**
* Represents an utility for listener.
*/
@@ -37,18 +49,10 @@
private static final Pattern IDENTIFIER_PATTERN = Pattern.compile("[a-zA-Z_][a-zA-Z0-9_.-]*");
private static final String DATE_PATTERN = "[0-9]{4}-([0-9]{2}|[0-9])-([0-9]{2}|[0-9])";
private static final String NON_NEGATIVE_INTEGER_PATTERN = "[0-9]+";
- private static final String PLUS = "+";
+ private static final Pattern INTEGER_PATTERN = Pattern.compile("[-][0-9]+|[0-9]+");
private static final String ONE = "1";
- private static final String TRUE_KEYWORD = "true";
- private static final String FALSE_KEYWORD = "false";
private static final int IDENTIFIER_LENGTH = 64;
private static final String DATE_FORMAT = "yyyy-MM-dd";
- private static final String EMPTY_STRING = "";
- private static final String HYPHEN = "-";
- private static final String SLASH = "/";
- private static final String SPACE = " ";
- private static final String COLON = ":";
- private static final String CARET = "^";
/**
* Creates a new listener util.
@@ -65,7 +69,7 @@
public static String removeQuotesAndHandleConcat(String yangStringData) {
yangStringData = yangStringData.replace("\"", EMPTY_STRING);
- String[] tmpData = yangStringData.split(Pattern.quote(PLUS));
+ String[] tmpData = yangStringData.split(Pattern.quote(ADD));
StringBuilder builder = new StringBuilder();
for (String yangString : tmpData) {
builder.append(yangString);
@@ -171,6 +175,41 @@
}
/**
+ * Validates integer value.
+ *
+ * @param integerValue integer to be validated
+ * @param yangConstruct yang construct for creating error message
+ * @param ctx context object of the grammar rule
+ * @return valid integer value
+ */
+ public static int getValidIntegerValue(String integerValue, YangConstructType yangConstruct,
+ ParserRuleContext ctx) {
+
+ String value = removeQuotesAndHandleConcat(integerValue);
+ if (!INTEGER_PATTERN.matcher(value).matches()) {
+ ParserException parserException = new ParserException("YANG file error : " +
+ YangConstructType.getYangConstructType(yangConstruct) + " value " + value + " is not " +
+ "valid.");
+ parserException.setLine(ctx.getStart().getLine());
+ parserException.setCharPosition(ctx.getStart().getCharPositionInLine());
+ throw parserException;
+ }
+
+ int valueInInteger;
+ try {
+ valueInInteger = Integer.parseInt(value);
+ } catch (NumberFormatException e) {
+ ParserException parserException = new ParserException("YANG file error : " +
+ YangConstructType.getYangConstructType(yangConstruct) + " value " + value + " is not " +
+ "valid.");
+ parserException.setLine(ctx.getStart().getLine());
+ parserException.setCharPosition(ctx.getStart().getCharPositionInLine());
+ throw parserException;
+ }
+ return valueInInteger;
+ }
+
+ /**
* Validates boolean value.
*
* @param booleanValue value to be validated
@@ -182,9 +221,9 @@
ParserRuleContext ctx) {
String value = removeQuotesAndHandleConcat(booleanValue);
- if (value.equals(TRUE_KEYWORD)) {
+ if (value.equals(TRUE)) {
return true;
- } else if (value.equals(FALSE_KEYWORD)) {
+ } else if (value.equals(FALSE)) {
return false;
} else {
ParserException parserException = new ParserException("YANG file error : " +
@@ -272,4 +311,21 @@
}
return targetNodes;
}
+
+ /**
+ * Throws parser exception for unsupported YANG constructs.
+ *
+ * @param yangConstructType yang construct for creating error message
+ * @param ctx yang construct's context to get the line number and character position
+ * @param errorInfo error information
+ */
+ public static void handleUnsupportedYangConstruct(YangConstructType yangConstructType,
+ ParserRuleContext ctx, String errorInfo) {
+ ParserException parserException = new ParserException(YANG_FILE_ERROR
+ + QUOTES + YangConstructType.getYangConstructType(yangConstructType) + QUOTES
+ + errorInfo);
+ parserException.setLine(ctx.getStart().getLine());
+ parserException.setCharPosition(ctx.getStart().getCharPositionInLine());
+ throw parserException;
+ }
}
\ No newline at end of file
diff --git a/utils/yangutils/src/main/java/org/onosproject/yangutils/plugin/manager/YangFileInfo.java b/utils/yangutils/src/main/java/org/onosproject/yangutils/plugin/manager/YangFileInfo.java
new file mode 100644
index 0000000..7cb870c
--- /dev/null
+++ b/utils/yangutils/src/main/java/org/onosproject/yangutils/plugin/manager/YangFileInfo.java
@@ -0,0 +1,71 @@
+/*
+ * Copyright 2016-present 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.plugin.manager;
+
+import org.onosproject.yangutils.datamodel.YangNode;
+
+/**
+ * Represents YANG file information.
+ */
+public class YangFileInfo {
+
+ /**
+ * YANG file name.
+ */
+ private String yangFileName;
+
+ /**
+ * Data model node after parsing YANG file.
+ */
+ private YangNode rootNode;
+
+ /**
+ * Returns data model node for YANG file.
+ *
+ * @return data model node for YANG file
+ */
+ public YangNode getRootNode() {
+ return rootNode;
+ }
+
+ /**
+ * Sets data model node for YANG file.
+ *
+ * @param rootNode of the Yang file
+ */
+ public void setRootNode(YangNode rootNode) {
+ this.rootNode = rootNode;
+ }
+
+ /**
+ * Returns YANG file name.
+ *
+ * @return yangFileName YANG file name
+ */
+ public String getYangFileName() {
+ return yangFileName;
+ }
+
+ /**
+ * Sets YANG file name.
+ *
+ * @param yangFileName YANG file name
+ */
+ public void setYangFileName(String yangFileName) {
+ this.yangFileName = yangFileName;
+ }
+}
diff --git a/utils/yangutils/src/main/java/org/onosproject/yangutils/plugin/manager/YangUtilManager.java b/utils/yangutils/src/main/java/org/onosproject/yangutils/plugin/manager/YangUtilManager.java
index f15d3b8..f602b29 100644
--- a/utils/yangutils/src/main/java/org/onosproject/yangutils/plugin/manager/YangUtilManager.java
+++ b/utils/yangutils/src/main/java/org/onosproject/yangutils/plugin/manager/YangUtilManager.java
@@ -28,6 +28,8 @@
import org.apache.maven.plugins.annotations.Parameter;
import org.apache.maven.project.MavenProject;
import org.onosproject.yangutils.datamodel.YangNode;
+import org.onosproject.yangutils.datamodel.YangSubModule;
+import org.onosproject.yangutils.datamodel.exceptions.DataModelException;
import org.onosproject.yangutils.parser.YangUtilsParser;
import org.onosproject.yangutils.parser.exceptions.ParserException;
import org.onosproject.yangutils.parser.impl.YangUtilsParserManager;
@@ -49,6 +51,7 @@
import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.deleteDirectory;
import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.copyYangFilesToTarget;
import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getDirectory;
+import static org.onosproject.yangutils.datamodel.utils.DataModelUtils.findBelongsToModuleNode;
/**
* Represents ONOS YANG utility maven plugin.
@@ -137,17 +140,22 @@
conflictResolver.setReplacementForPeriod(replacementForPeriod);
conflictResolver.setReplacementForHyphen(replacementForHyphen);
conflictResolver.setReplacementForUnderscore(replacementForUnderscore);
- List<String> yangFiles = YangFileScanner.getYangFiles(searchDir);
+ List<YangFileInfo> yangFileInfo = YangFileScanner.getYangFiles(searchDir);
+ if (yangFileInfo == null || yangFileInfo.isEmpty()) {
+ // no files to translate
+ return;
+ }
YangPluginConfig yangPlugin = new YangPluginConfig();
yangPlugin.setCodeGenDir(codeGenDir);
yangPlugin.setConflictResolver(conflictResolver);
- Iterator<String> yangFileIterator = yangFiles.iterator();
+
+ Iterator<YangFileInfo> yangFileIterator = yangFileInfo.iterator();
while (yangFileIterator.hasNext()) {
- String yangFile = yangFileIterator.next();
+ YangFileInfo yangFile = yangFileIterator.next();
try {
- YangNode yangNode = yangUtilsParser.getDataModel(yangFile);
+ YangNode yangNode = yangUtilsParser.getDataModel(yangFile.getYangFileName());
+ yangFile.setRootNode(yangNode);
setRootNode(yangNode);
- generateJavaCode(yangNode, yangPlugin, yangFile);
} catch (ParserException e) {
String logInfo = "Error in file: " + e.getFileName();
if (e.getLineNumber() != 0) {
@@ -163,8 +171,12 @@
}
}
+ resolveLinkingForSubModule(yangFileInfo);
+
+ translateToJava(yangFileInfo, yangPlugin);
+
addToSource(getDirectory(baseDir, genFilesDir) + DEFAULT_PKG, project, context);
- copyYangFilesToTarget(yangFiles, getDirectory(baseDir, outputDirectory), project);
+ copyYangFilesToTarget(yangFileInfo, getDirectory(baseDir, outputDirectory), project);
} catch (Exception e) {
String fileName = "";
if (e instanceof TranslatorException) {
@@ -220,4 +232,40 @@
this.rootNode = rootNode;
}
+ /**
+ * Translates to java code corresponding to the YANG schema.
+ *
+ * @param yangFileInfo YANG file information
+ * @param yangPlugin YANG plugin config
+ * @throws IOException when fails to generate java code file the current
+ * node
+ */
+ public static void translateToJava(List<YangFileInfo> yangFileInfo, YangPluginConfig yangPlugin)
+ throws IOException {
+ Iterator<YangFileInfo> yangFileIterator = yangFileInfo.iterator();
+ while (yangFileIterator.hasNext()) {
+ YangFileInfo yangFile = yangFileIterator.next();
+ generateJavaCode(yangFile.getRootNode(), yangPlugin, yangFile.getYangFileName());
+ }
+ }
+
+ /**
+ * Resolves sub-module linking.
+ *
+ * @param yangFileInfo YANG file information
+ * @throws DataModelException when belongs-to module node is not found
+ */
+ public static void resolveLinkingForSubModule(List<YangFileInfo> yangFileInfo) throws DataModelException {
+ Iterator<YangFileInfo> yangFileIterator = yangFileInfo.iterator();
+ while (yangFileIterator.hasNext()) {
+ YangFileInfo yangFile = yangFileIterator.next();
+ YangNode yangNode = yangFile.getRootNode();
+ if (yangNode instanceof YangSubModule) {
+ String belongsToModuleName = ((YangSubModule) yangNode).getBelongsTo()
+ .getBelongsToModuleName();
+ YangNode moduleNode = findBelongsToModuleNode(yangFileInfo, belongsToModuleName);
+ ((YangSubModule) yangNode).getBelongsTo().setModuleNode(moduleNode);
+ }
+ }
+ }
}
diff --git a/utils/yangutils/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaSubModule.java b/utils/yangutils/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaSubModule.java
index 419f15e..a0834f0 100644
--- a/utils/yangutils/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaSubModule.java
+++ b/utils/yangutils/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaSubModule.java
@@ -18,6 +18,7 @@
import java.io.IOException;
import org.onosproject.yangutils.datamodel.YangBelongsTo;
+import org.onosproject.yangutils.datamodel.YangModule;
import org.onosproject.yangutils.datamodel.YangSubModule;
import org.onosproject.yangutils.translator.exception.TranslatorException;
import org.onosproject.yangutils.translator.tojava.JavaCodeGenerator;
@@ -108,8 +109,7 @@
* @return the name space string of the module.
*/
private String getNameSpaceFromModule(YangBelongsTo belongsToInfo) {
- // TODO Auto-generated method stub
- return "";
+ return ((YangModule) belongsToInfo.getModuleNode()).getNameSpace().getUri();
}
/**
diff --git a/utils/yangutils/src/main/java/org/onosproject/yangutils/utils/UtilConstants.java b/utils/yangutils/src/main/java/org/onosproject/yangutils/utils/UtilConstants.java
index 278c332..24744fa 100644
--- a/utils/yangutils/src/main/java/org/onosproject/yangutils/utils/UtilConstants.java
+++ b/utils/yangutils/src/main/java/org/onosproject/yangutils/utils/UtilConstants.java
@@ -257,6 +257,16 @@
public static final String LISTENER_PKG = "org.onosproject.event";
/**
+ * Static attribute for colon.
+ */
+ public static final String COLON = ":";
+
+ /**
+ * Static attribute for caret.
+ */
+ public static final String CARET = "^";
+
+ /**
* Static attribute for input string.
*/
public static final String INPUT = "input";
@@ -932,6 +942,22 @@
public static final String YANG_UTILS_TODO = "//TODO: YANG utils generated code";
/**
+ * Static attribute for YANG file error.
+ */
+ public static final String YANG_FILE_ERROR = "YANG file error : ";
+
+ /**
+ * Static attribute for unsupported error information.
+ */
+ public static final String UNSUPPORTED_YANG_CONSTRUCT = " is not supported.";
+
+ /**
+ * Static attribute for currently unsupported error information.
+ */
+ public static final String CURRENTLY_UNSUPPORTED = " is not supported in current version, please check wiki" +
+ " for YANG utils road map.";
+
+ /**
* Creates an instance of util constants.
*/
private UtilConstants() {
diff --git a/utils/yangutils/src/main/java/org/onosproject/yangutils/utils/YangConstructType.java b/utils/yangutils/src/main/java/org/onosproject/yangutils/utils/YangConstructType.java
index f9a6fda..91bc61a 100644
--- a/utils/yangutils/src/main/java/org/onosproject/yangutils/utils/YangConstructType.java
+++ b/utils/yangutils/src/main/java/org/onosproject/yangutils/utils/YangConstructType.java
@@ -287,7 +287,77 @@
/**
* Identifies the YANG pattern element parsed data.
*/
- PATTERN_DATA;
+ PATTERN_DATA,
+
+ /**
+ * Identifies the YANG extension element parsed data.
+ */
+ EXTENSION_DATA,
+
+ /**
+ * Identifies the YANG identity element parsed data.
+ */
+ IDENTITY_DATA,
+
+ /**
+ * Identifies the YANG base element parsed data.
+ */
+ BASE_DATA,
+
+ /**
+ * Identifies the YANG feature element parsed data.
+ */
+ FEATURE_DATA,
+
+ /**
+ * Identifies the YANG if-feature element parsed data.
+ */
+ IF_FEATURE_DATA,
+
+ /**
+ * Identifies the YANG path element parsed data.
+ */
+ PATH_DATA,
+
+ /**
+ * Identifies the YANG require-instance element parsed data.
+ */
+ REQUIRE_INSTANCE_DATA,
+
+ /**
+ * Identifies the YANG ordered-by element parsed data.
+ */
+ ORDERED_BY_DATA,
+
+ /**
+ * Identifies the YANG error-message element parsed data.
+ */
+ ERROR_MESSAGE_DATA,
+
+ /**
+ * Identifies the YANG error-app-tag element parsed data.
+ */
+ ERROR_APP_TAG_DATA,
+
+ /**
+ * Identifies the YANG unique element parsed data.
+ */
+ UNIQUE_DATA,
+
+ /**
+ * Identifies the YANG refine element parsed data.
+ */
+ REFINE_DATA,
+
+ /**
+ * Identifies the YANG deviation element parsed data.
+ */
+ DEVIATION_DATA,
+
+ /**
+ * Identifies the YANG anyxml element parsed data.
+ */
+ ANYXML_DATA;
/**
* Returns the YANG construct keyword corresponding to enum values.
@@ -406,6 +476,34 @@
return "length";
case PATTERN_DATA:
return "pattern";
+ case EXTENSION_DATA:
+ return "extension";
+ case IDENTITY_DATA:
+ return "identity";
+ case BASE_DATA:
+ return "base";
+ case FEATURE_DATA:
+ return "feature";
+ case IF_FEATURE_DATA:
+ return "if-feature";
+ case PATH_DATA:
+ return "path";
+ case REQUIRE_INSTANCE_DATA:
+ return "require-instance";
+ case ORDERED_BY_DATA:
+ return "ordered-by";
+ case ERROR_MESSAGE_DATA:
+ return "error-message";
+ case ERROR_APP_TAG_DATA:
+ return "error-app-tag";
+ case UNIQUE_DATA:
+ return "unique";
+ case REFINE_DATA:
+ return "refine";
+ case DEVIATION_DATA:
+ return "deviation";
+ case ANYXML_DATA:
+ return "anyxml";
default:
return "yang";
}
diff --git a/utils/yangutils/src/main/java/org/onosproject/yangutils/utils/io/impl/YangFileScanner.java b/utils/yangutils/src/main/java/org/onosproject/yangutils/utils/io/impl/YangFileScanner.java
index 7c451e1..7fa99b7 100644
--- a/utils/yangutils/src/main/java/org/onosproject/yangutils/utils/io/impl/YangFileScanner.java
+++ b/utils/yangutils/src/main/java/org/onosproject/yangutils/utils/io/impl/YangFileScanner.java
@@ -21,6 +21,7 @@
import java.util.LinkedList;
import java.util.List;
import java.util.Stack;
+import org.onosproject.yangutils.plugin.manager.YangFileInfo;
/**
* Represents utility for searching the files in a directory.
@@ -51,17 +52,23 @@
}
/**
- * Returns the list of YANG files.
+ * Returns the list of YANG file information.
*
* @param root specified directory
- * @return list of YANG files
+ * @return list of YANG file information
* @throws NullPointerException when no files are there
* @throws IOException when files get deleted while performing the
* operations
*/
- public static List<String> getYangFiles(String root) throws IOException {
-
- return getFiles(root, YANG_FILE_EXTENTION);
+ public static List<YangFileInfo> getYangFiles(String root) throws IOException {
+ List<String> yangFiles = getFiles(root, YANG_FILE_EXTENTION);
+ List<YangFileInfo> fileInfo = new LinkedList<>();
+ for (String yangFile : yangFiles) {
+ YangFileInfo yangFileInfo = new YangFileInfo();
+ yangFileInfo.setYangFileName(yangFile);
+ fileInfo.add(yangFileInfo);
+ }
+ return fileInfo;
}
/**
diff --git a/utils/yangutils/src/main/java/org/onosproject/yangutils/utils/io/impl/YangIoUtils.java b/utils/yangutils/src/main/java/org/onosproject/yangutils/utils/io/impl/YangIoUtils.java
index bf166f0..d8f7e53 100644
--- a/utils/yangutils/src/main/java/org/onosproject/yangutils/utils/io/impl/YangIoUtils.java
+++ b/utils/yangutils/src/main/java/org/onosproject/yangutils/utils/io/impl/YangIoUtils.java
@@ -24,6 +24,7 @@
import java.nio.file.StandardCopyOption;
import java.util.ArrayList;
import java.util.LinkedList;
+import java.util.Iterator;
import java.util.List;
import java.util.Stack;
@@ -33,6 +34,7 @@
import org.slf4j.Logger;
import org.sonatype.plexus.build.incremental.BuildContext;
+import org.onosproject.yangutils.plugin.manager.YangFileInfo;
import static org.onosproject.yangutils.utils.UtilConstants.COMMA;
import static org.onosproject.yangutils.utils.UtilConstants.EMPTY_STRING;
import static org.onosproject.yangutils.utils.UtilConstants.NEW_LINE;
@@ -245,15 +247,15 @@
/**
* Copies YANG files to the current project's output directory.
*
- * @param yangFiles list of YANG files
+ * @param yangFileInfo list of YANG files
* @param outputDir project's output directory
* @param project maven project
* @throws IOException when fails to copy files to destination resource directory
*/
- public static void copyYangFilesToTarget(List<String> yangFiles, String outputDir, MavenProject project)
+ public static void copyYangFilesToTarget(List<YangFileInfo> yangFileInfo, String outputDir, MavenProject project)
throws IOException {
- List<File> files = getListOfFile(yangFiles);
+ List<File> files = getListOfFile(yangFileInfo);
String path = outputDir + TARGET_RESOURCE_PATH;
File targetDir = new File(path);
@@ -272,13 +274,15 @@
/**
* Provides a list of files from list of strings.
*
- * @param strings list of strings
+ * @param yangFileInfo list of yang file information
* @return list of files
*/
- private static List<File> getListOfFile(List<String> strings) {
+ private static List<File> getListOfFile(List<YangFileInfo> yangFileInfo) {
List<File> files = new ArrayList<>();
- for (String file : strings) {
- files.add(new File(file));
+ Iterator<YangFileInfo> yangFileIterator = yangFileInfo.iterator();
+ while (yangFileIterator.hasNext()) {
+ YangFileInfo yangFile = yangFileIterator.next();
+ files.add(new File(yangFile.getYangFileName()));
}
return files;
}
diff --git a/utils/yangutils/src/main/resources/GeneratedYang.g4 b/utils/yangutils/src/main/resources/GeneratedYang.g4
index 11e7833..c44a555 100644
--- a/utils/yangutils/src/main/resources/GeneratedYang.g4
+++ b/utils/yangutils/src/main/resources/GeneratedYang.g4
@@ -380,6 +380,7 @@
| leafListStatement
| listStatement
| choiceStatement
+ | anyxmlStatement
| usesStatement;
/**
@@ -429,13 +430,26 @@
* instance-identifier-specification /
* bits-specification /
* union-specification
- * TODO : decimal64-specification to be added
+ *
*/
- typeBodyStatements : numericalRestrictions | stringRestrictions | enumSpecification
+ typeBodyStatements : numericalRestrictions | decimal64Specification | stringRestrictions | enumSpecification
| leafrefSpecification | identityrefSpecification | instanceIdentifierSpecification
| bitsSpecification | unionSpecification;
/**
+ * fraction-digits-stmt = fraction-digits-keyword sep
+ * fraction-digits-arg-str stmtend
+ *
+ * fraction-digits-arg-str = < a string that matches the rule
+ * fraction-digits-arg >
+ *
+ * fraction-digits-arg = ("1" ["0" / "1" / "2" / "3" / "4" /
+ * "5" / "6" / "7" / "8"])
+ * / "2" / "3" / "4" / "5" / "6" / "7" / "8" / "9"
+ */
+ decimal64Specification : FRACTION_DIGITS_KEYWORD fraction STMTEND;
+
+ /**
* numerical-restrictions = range-stmt stmtsep
*/
numericalRestrictions : rangeStatement;
@@ -746,7 +760,7 @@
/**
* value-stmt = value-keyword sep integer-value stmtend
*/
- valueStatement : VALUE_KEYWORD ((MINUS INTEGER) | INTEGER) STMTEND;
+ valueStatement : VALUE_KEYWORD value STMTEND;
/**
* grouping-stmt = grouping-keyword sep identifier-arg-str optsep
@@ -899,7 +913,7 @@
* list-stmt /
* anyxml-stmt
*/
- shortCaseStatement : containerStatement | leafStatement | leafListStatement | listStatement;
+ shortCaseStatement : containerStatement | leafStatement | leafListStatement | listStatement | anyxmlStatement;
/**
* case-stmt = case-keyword sep identifier-arg-str optsep
@@ -919,6 +933,25 @@
| descriptionStatement | referenceStatement | dataDefStatement)* RIGHT_CURLY_BRACE);
/**
+ * anyxml-stmt = anyxml-keyword sep identifier-arg-str optsep
+ * (";" /
+ * "{" stmtsep
+ * ;; these stmts can appear in any order
+ * [when-stmt stmtsep]
+ * *(if-feature-stmt stmtsep)
+ * *(must-stmt stmtsep)
+ * [config-stmt stmtsep]
+ * [mandatory-stmt stmtsep]
+ * [status-stmt stmtsep]
+ * [description-stmt stmtsep]
+ * [reference-stmt stmtsep]
+ * "}")
+ */
+ anyxmlStatement : ANYXML_KEYWORD identifier (STMTEND | LEFT_CURLY_BRACE (whenStatement | ifFeatureStatement
+ | mustStatement | configStatement | mandatoryStatement | statusStatement | descriptionStatement
+ | referenceStatement)* RIGHT_CURLY_BRACE);
+
+ /**
* uses-stmt = uses-keyword sep identifier-ref-arg-str optsep
* (";" /
* "{" stmtsep
@@ -934,7 +967,7 @@
* TODO : 0..1 occurance to be checked in listener
*/
usesStatement : USES_KEYWORD string (STMTEND | LEFT_CURLY_BRACE (whenStatement | ifFeatureStatement | statusStatement
- | descriptionStatement | referenceStatement | refineStatement | usesAugmentStatement)* RIGHT_CURLY_BRACE);
+ | descriptionStatement | referenceStatement | refineStatement | augmentStatement)* RIGHT_CURLY_BRACE);
/**
* refine-stmt = refine-keyword sep refine-arg-str optsep
@@ -951,7 +984,7 @@
*/
refineStatement : REFINE_KEYWORD refine (STMTEND | LEFT_CURLY_BRACE (refineContainerStatements
| refineLeafStatements | refineLeafListStatements | refineListStatements | refineChoiceStatements
- | refineCaseStatements) RIGHT_CURLY_BRACE);
+ | refineCaseStatements | refineAnyxmlStatements) RIGHT_CURLY_BRACE);
/**
* refine-container-stmts =
@@ -1024,22 +1057,15 @@
refineCaseStatements : (descriptionStatement | referenceStatement)? | (referenceStatement | descriptionStatement)?;
/**
- * uses-augment-stmt = augment-keyword sep uses-augment-arg-str optsep
- * "{" stmtsep
- * ;; these stmts can appear in any order
- * [when-stmt stmtsep]
- * *(if-feature-stmt stmtsep)
- * [status-stmt stmtsep]
- * [description-stmt stmtsep]
- * [reference-stmt stmtsep]
- * 1*((data-def-stmt stmtsep) /
- * (case-stmt stmtsep))
- * "}"
- * TODO : 0..1 occurance to be checked in listener
+ * refine-anyxml-stmts = ;; these stmts can appear in any order
+ * *(must-stmt stmtsep)
+ * [config-stmt stmtsep]
+ * [mandatory-stmt stmtsep]
+ * [description-stmt stmtsep]
+ * [reference-stmt stmtsep]
*/
- usesAugmentStatement : AUGMENT_KEYWORD augment LEFT_CURLY_BRACE (whenStatement | ifFeatureStatement
- | statusStatement | descriptionStatement | referenceStatement | dataDefStatement
- | caseStatement)* RIGHT_CURLY_BRACE;
+ refineAnyxmlStatements : (mustStatement | configStatement | mandatoryStatement | descriptionStatement
+ | referenceStatement)*;
/**
* augment-stmt = augment-keyword sep augment-arg-str optsep
@@ -1251,6 +1277,10 @@
deviation : string;
+ value : string;
+
+ fraction : string;
+
yangConstruct : ANYXML_KEYWORD | ARGUMENT_KEYWORD | AUGMENT_KEYWORD | BASE_KEYWORD | BELONGS_TO_KEYWORD
| BIT_KEYWORD | CASE_KEYWORD | CHOICE_KEYWORD | CONFIG_KEYWORD | CONTACT_KEYWORD | CONTAINER_KEYWORD
| DEFAULT_KEYWORD | DESCRIPTION_KEYWORD | ENUM_KEYWORD ERROR_APP_TAG_KEYWORD | ERROR_MESSAGE_KEYWORD
diff --git a/utils/yangutils/src/test/java/org/onosproject/yangutils/parser/impl/TreeWalkListenerTest.java b/utils/yangutils/src/test/java/org/onosproject/yangutils/parser/impl/TreeWalkListenerTest.java
new file mode 100644
index 0000000..cebd680
--- /dev/null
+++ b/utils/yangutils/src/test/java/org/onosproject/yangutils/parser/impl/TreeWalkListenerTest.java
@@ -0,0 +1,55 @@
+/*
+ * Copyright 2016-present 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 java.io.IOException;
+
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.ExpectedException;
+import org.onosproject.yangutils.parser.exceptions.ParserException;
+
+/**
+ * Test cases for testing tree walk listener functionality.
+ */
+public class TreeWalkListenerTest {
+
+ private final YangUtilsParserManager manager = new YangUtilsParserManager();
+
+ @Rule
+ public ExpectedException thrown = ExpectedException.none();
+ /**
+ * Checks whether exception is thrown for ordered statement.
+ */
+ @Test
+ public void processOrderedByStatement() throws IOException, ParserException {
+ thrown.expect(ParserException.class);
+ thrown.expectMessage("YANG file error : \"ordered-by\" is not supported in current version, please check wiki" +
+ " for YANG utils road map.");
+ manager.getDataModel("src/test/resources/OrderedByStatement.yang");
+ }
+
+ /**
+ * Checks whether exception is thrown for anyxml statement.
+ */
+ @Test
+ public void processAnyXmlStatement() throws IOException, ParserException {
+ thrown.expect(ParserException.class);
+ thrown.expectMessage("YANG file error : \"anyxml\" is not supported.");
+ manager.getDataModel("src/test/resources/AnyxmlStatement.yang");
+ }
+}
diff --git a/utils/yangutils/src/test/java/org/onosproject/yangutils/parser/impl/listeners/ConfigListenerTest.java b/utils/yangutils/src/test/java/org/onosproject/yangutils/parser/impl/listeners/ConfigListenerTest.java
index 439832f..d129e38 100644
--- a/utils/yangutils/src/test/java/org/onosproject/yangutils/parser/impl/listeners/ConfigListenerTest.java
+++ b/utils/yangutils/src/test/java/org/onosproject/yangutils/parser/impl/listeners/ConfigListenerTest.java
@@ -134,9 +134,9 @@
@Test
public void processModuleSubStatementConfig() throws IOException, ParserException {
thrown.expect(ParserException.class);
- thrown.expectMessage("mismatched input 'config' expecting {'augment', 'choice', 'contact', 'container',"
- + " 'description', 'extension', 'deviation', 'feature', 'grouping', 'identity', 'import', 'include', "
- + "'leaf', 'leaf-list', 'list', 'notification', 'organization', 'reference',"
+ thrown.expectMessage("mismatched input 'config' expecting {'anyxml', 'augment', 'choice', 'contact', "
+ + "'container', 'description', 'extension', 'deviation', 'feature', 'grouping', 'identity', 'import',"
+ + " 'include', 'leaf', 'leaf-list', 'list', 'notification', 'organization', 'reference',"
+ " 'revision', 'rpc', 'typedef', 'uses', '}'}");
YangNode node = manager.getDataModel("src/test/resources/ModuleSubStatementConfig.yang");
}
diff --git a/utils/yangutils/src/test/java/org/onosproject/yangutils/parser/impl/listeners/DefaultListenerTest.java b/utils/yangutils/src/test/java/org/onosproject/yangutils/parser/impl/listeners/DefaultListenerTest.java
new file mode 100644
index 0000000..2aab556
--- /dev/null
+++ b/utils/yangutils/src/test/java/org/onosproject/yangutils/parser/impl/listeners/DefaultListenerTest.java
@@ -0,0 +1,90 @@
+/*
+ * Copyright 2016-present 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.listeners;
+
+import java.io.IOException;
+import java.util.ListIterator;
+
+import org.junit.Test;
+import org.onosproject.yangutils.datamodel.YangNode;
+import org.onosproject.yangutils.datamodel.YangModule;
+import org.onosproject.yangutils.datamodel.YangLeaf;
+import org.onosproject.yangutils.datamodel.YangChoice;
+import org.onosproject.yangutils.datamodel.YangContainer;
+import org.onosproject.yangutils.datamodel.YangNodeType;
+import org.onosproject.yangutils.parser.exceptions.ParserException;
+import org.onosproject.yangutils.parser.impl.YangUtilsParserManager;
+
+import static org.hamcrest.core.Is.is;
+import static org.junit.Assert.assertThat;
+
+/**
+ * Test cases for testing default listener functionality.
+ */
+public class DefaultListenerTest {
+
+ private final YangUtilsParserManager manager = new YangUtilsParserManager();
+
+ /**
+ * Checks if default value is set correctly.
+ */
+ @Test
+ public void processLeafSubStatementDefault() throws IOException, ParserException {
+
+ YangNode node = manager.getDataModel("src/test/resources/LeafSubStatementDefault.yang");
+ // Check whether the data model tree returned is of type module.
+ assertThat((node instanceof YangModule), is(true));
+
+ // Check whether the node type is set properly to module.
+ assertThat(node.getNodeType(), is(YangNodeType.MODULE_NODE));
+
+ // Check whether the module name is set correctly.
+ YangModule yangNode = (YangModule) node;
+ assertThat(yangNode.getName(), is("Test"));
+
+ ListIterator<YangLeaf> leafIterator = yangNode.getListOfLeaf().listIterator();
+ YangLeaf leafInfo = leafIterator.next();
+
+ assertThat(leafInfo.getName(), is("invalid-interval"));
+ assertThat(leafInfo.getDefaultValueInString(), is("\"1\""));
+ }
+
+ /**
+ * Checks if default value is set correctly.
+ */
+ @Test
+ public void processChoiceSubStatementDefault() throws IOException, ParserException {
+
+ YangNode node = manager.getDataModel("src/test/resources/ChoiceSubStatementDefault.yang");
+ // Check whether the data model tree returned is of type module.
+ assertThat((node instanceof YangModule), is(true));
+
+ // Check whether the node type is set properly to module.
+ assertThat(node.getNodeType(), is(YangNodeType.MODULE_NODE));
+
+ // Check whether the module name is set correctly.
+ YangModule yangNode = (YangModule) node;
+ assertThat(yangNode.getName(), is("Test"));
+
+ YangContainer yangContainer = (YangContainer) yangNode.getChild();
+ assertThat(yangContainer.getName(), is("food"));
+
+ YangChoice yangChoice = (YangChoice) yangContainer.getChild();
+ assertThat(yangChoice.getName(), is("snack"));
+ assertThat(yangChoice.getDefaultValueInString(), is("\"hello\""));
+ }
+}
diff --git a/utils/yangutils/src/test/java/org/onosproject/yangutils/parser/impl/listeners/EnumListenerTest.java b/utils/yangutils/src/test/java/org/onosproject/yangutils/parser/impl/listeners/EnumListenerTest.java
index 6f13667..a78c65f 100644
--- a/utils/yangutils/src/test/java/org/onosproject/yangutils/parser/impl/listeners/EnumListenerTest.java
+++ b/utils/yangutils/src/test/java/org/onosproject/yangutils/parser/impl/listeners/EnumListenerTest.java
@@ -18,7 +18,10 @@
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.core.Is.is;
+
+import org.junit.Rule;
import org.junit.Test;
+import org.junit.rules.ExpectedException;
import org.onosproject.yangutils.datamodel.YangDataTypes;
import org.onosproject.yangutils.datamodel.YangEnum;
import org.onosproject.yangutils.datamodel.YangEnumeration;
@@ -38,6 +41,9 @@
*/
public class EnumListenerTest {
+ @Rule
+ public ExpectedException thrown = ExpectedException.none();
+
private final YangUtilsParserManager manager = new YangUtilsParserManager();
/**
@@ -84,7 +90,28 @@
*/
@Test(expected = ParserException.class)
public void processEnumWithDuplicateName() throws IOException, ParserException {
-
YangNode node = manager.getDataModel("src/test/resources/EnumWithDuplicateName.yang");
}
+
+ /**
+ * Checks enum boundary value.
+ */
+ @Test
+ public void processEnumBoundaryValue() throws IOException, ParserException {
+ thrown.expect(ParserException.class);
+ thrown.expectMessage("YANG file error : value value 21474836472147483647 is not valid.");
+ YangNode node = manager.getDataModel("src/test/resources/EnumBoundaryValue.yang");
+ }
+
+ /**
+ * Checks whether exception is thrown if value is not specified following max enum value.
+ */
+ @Test
+ public void processEnumMaxNextValue() throws IOException, ParserException {
+ thrown.expect(ParserException.class);
+ thrown.expectMessage("YANG file error : "
+ + "An enum value MUST be specified for enum substatements following the one"
+ + "with the current highest value");
+ YangNode node = manager.getDataModel("src/test/resources/EnumMaxNextValue.yang");
+ }
}
diff --git a/utils/yangutils/src/test/java/org/onosproject/yangutils/parser/impl/listeners/KeyListenerTest.java b/utils/yangutils/src/test/java/org/onosproject/yangutils/parser/impl/listeners/KeyListenerTest.java
index 37b4733..510b313 100644
--- a/utils/yangutils/src/test/java/org/onosproject/yangutils/parser/impl/listeners/KeyListenerTest.java
+++ b/utils/yangutils/src/test/java/org/onosproject/yangutils/parser/impl/listeners/KeyListenerTest.java
@@ -203,12 +203,32 @@
}
/**
+ * Checks key values are set correctly.
+ */
+ @Test
+ public void processKeyWithUsesInList() throws IOException, ParserException {
+ YangNode node = manager.getDataModel("src/test/resources/KeyWithUsesInList.yang");
+
+ assertThat((node instanceof YangModule), is(true));
+ assertThat(node.getNodeType(), is(YangNodeType.MODULE_NODE));
+ YangModule yangNode = (YangModule) node;
+ assertThat(yangNode.getName(), is("Test"));
+
+ // Check whether the list is child of module
+ YangList yangList = (YangList) yangNode.getChild().getNextSibling();
+ assertThat(yangList.getName(), is("valid"));
+
+ ListIterator<String> keyList = yangList.getKeyList().listIterator();
+ assertThat(keyList.next(), is("invalid-interval"));
+ }
+
+ /**
* Checks whether exception is thrown when key leaf identifier is not found in list.
*/
@Test
public void processInvalidLeafIdentifier() throws IOException, ParserException {
thrown.expect(ParserException.class);
- thrown.expectMessage("Leaf identifier must refer to a child leaf of the list");
+ thrown.expectMessage("An identifier, in key, must refer to a child leaf of the list");
YangNode node = manager.getDataModel("src/test/resources/InvalidLeafIdentifier.yang");
}
@@ -218,7 +238,7 @@
@Test
public void processInvalidLeafListIdentifier() throws IOException, ParserException {
thrown.expect(ParserException.class);
- thrown.expectMessage("Leaf-list identifier must refer to a child leaf of the list");
+ thrown.expectMessage("An identifier, in key, must refer to a child leaf of the list");
YangNode node = manager.getDataModel("src/test/resources/InvalidLeafListIdentifier.yang");
}
diff --git a/utils/yangutils/src/test/java/org/onosproject/yangutils/parser/impl/listeners/LeafListListenerTest.java b/utils/yangutils/src/test/java/org/onosproject/yangutils/parser/impl/listeners/LeafListListenerTest.java
index fe918fa..8e7489b 100644
--- a/utils/yangutils/src/test/java/org/onosproject/yangutils/parser/impl/listeners/LeafListListenerTest.java
+++ b/utils/yangutils/src/test/java/org/onosproject/yangutils/parser/impl/listeners/LeafListListenerTest.java
@@ -94,9 +94,9 @@
@Test
public void processLeafListInvalidStatement() throws IOException, ParserException {
thrown.expect(ParserException.class);
- thrown.expectMessage("mismatched input 'leaflist' expecting {'augment', 'choice', 'contact', 'container',"
- + " 'description', 'extension', 'deviation', 'feature', 'grouping', 'identity', 'import', 'include',"
- + " 'leaf', 'leaf-list', 'list', 'notification', 'organization', 'reference',"
+ thrown.expectMessage("mismatched input 'leaflist' expecting {'anyxml', 'augment', 'choice', 'contact', "
+ + "'container', 'description', 'extension', 'deviation', 'feature', 'grouping', 'identity', 'import',"
+ + " 'include', 'leaf', 'leaf-list', 'list', 'notification', 'organization', 'reference',"
+ " 'revision', 'rpc', 'typedef', 'uses', '}'}");
YangNode node = manager.getDataModel("src/test/resources/LeafListInvalidStatement.yang");
}
diff --git a/utils/yangutils/src/test/java/org/onosproject/yangutils/parser/impl/listeners/LeafListenerTest.java b/utils/yangutils/src/test/java/org/onosproject/yangutils/parser/impl/listeners/LeafListenerTest.java
index 186d549..b330e53 100644
--- a/utils/yangutils/src/test/java/org/onosproject/yangutils/parser/impl/listeners/LeafListenerTest.java
+++ b/utils/yangutils/src/test/java/org/onosproject/yangutils/parser/impl/listeners/LeafListenerTest.java
@@ -95,9 +95,9 @@
@Test
public void processLeafInvalidStatement() throws IOException, ParserException {
thrown.expect(ParserException.class);
- thrown.expectMessage("mismatched input 'leafs' expecting {'augment', 'choice', 'contact', 'container',"
- + " 'description', 'extension', 'deviation', 'feature', 'grouping', 'identity', 'import', 'include',"
- + " 'leaf', 'leaf-list', 'list', 'notification', 'organization', 'reference',"
+ thrown.expectMessage("mismatched input 'leafs' expecting {'anyxml', 'augment', 'choice', 'contact', "
+ + "'container', 'description', 'extension', 'deviation', 'feature', 'grouping', 'identity', 'import',"
+ + " 'include', 'leaf', 'leaf-list', 'list', 'notification', 'organization', 'reference',"
+ " 'revision', 'rpc', 'typedef', 'uses', '}'}");
YangNode node = manager.getDataModel("src/test/resources/LeafInvalidStatement.yang");
}
diff --git a/utils/yangutils/src/test/java/org/onosproject/yangutils/parser/impl/listeners/LengthRestrictionListenerTest.java b/utils/yangutils/src/test/java/org/onosproject/yangutils/parser/impl/listeners/LengthRestrictionListenerTest.java
index 3c01335..40036f5 100644
--- a/utils/yangutils/src/test/java/org/onosproject/yangutils/parser/impl/listeners/LengthRestrictionListenerTest.java
+++ b/utils/yangutils/src/test/java/org/onosproject/yangutils/parser/impl/listeners/LengthRestrictionListenerTest.java
@@ -232,4 +232,39 @@
" 18446744073709551615.");
YangNode node = manager.getDataModel("src/test/resources/LengthWithInvalidInterval.yang");
}
+
+ /**
+ * Checks valid length substatements.
+ */
+ @Test
+ public void processLengthSubStatements() throws IOException, ParserException {
+
+ YangNode node = manager.getDataModel("src/test/resources/LengthSubStatements.yang");
+
+ assertThat((node instanceof YangModule), is(true));
+ assertThat(node.getNodeType(), is(YangNodeType.MODULE_NODE));
+ YangModule yangNode = (YangModule) node;
+ assertThat(yangNode.getName(), is("Test"));
+
+ ListIterator<YangLeaf> leafIterator = yangNode.getListOfLeaf().listIterator();
+ YangLeaf leafInfo = leafIterator.next();
+
+ assertThat(leafInfo.getName(), is("invalid-interval"));
+ assertThat(leafInfo.getDataType().getDataTypeName(), is("string"));
+ assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.STRING));
+ YangStringRestriction stringRestriction = (YangStringRestriction) leafInfo
+ .getDataType().getDataTypeExtendedInfo();
+ YangRangeRestriction lengthRestriction = stringRestriction.getLengthRestriction();
+
+ assertThat(lengthRestriction.getDescription(), is("\"length description\""));
+ assertThat(lengthRestriction.getReference(), is("\"length reference\""));
+
+ ListIterator<YangRangeInterval> lengthListIterator = lengthRestriction.getAscendingRangeIntervals()
+ .listIterator();
+
+ YangRangeInterval rangeInterval = lengthListIterator.next();
+
+ assertThat(((YangUint64) rangeInterval.getStartValue()).getValue(), is(BigInteger.valueOf(0)));
+ assertThat(((YangUint64) rangeInterval.getEndValue()).getValue(), is(BigInteger.valueOf(100)));
+ }
}
diff --git a/utils/yangutils/src/test/java/org/onosproject/yangutils/parser/impl/listeners/MandatoryListenerTest.java b/utils/yangutils/src/test/java/org/onosproject/yangutils/parser/impl/listeners/MandatoryListenerTest.java
index 246d4b0..52e43a9 100644
--- a/utils/yangutils/src/test/java/org/onosproject/yangutils/parser/impl/listeners/MandatoryListenerTest.java
+++ b/utils/yangutils/src/test/java/org/onosproject/yangutils/parser/impl/listeners/MandatoryListenerTest.java
@@ -148,9 +148,9 @@
@Test
public void processModuleSubStatementMandatory() throws IOException, ParserException {
thrown.expect(ParserException.class);
- thrown.expectMessage("mismatched input 'mandatory' expecting {'augment', 'choice', 'contact', 'container',"
- + " 'description', 'extension', 'deviation', 'feature', 'grouping', 'identity', 'import', 'include',"
- + " 'leaf', 'leaf-list', 'list', 'notification', 'organization', 'reference',"
+ thrown.expectMessage("mismatched input 'mandatory' expecting {'anyxml', 'augment', 'choice', 'contact',"
+ + " 'container', 'description', 'extension', 'deviation', 'feature', 'grouping', 'identity', 'import',"
+ + " 'include', 'leaf', 'leaf-list', 'list', 'notification', 'organization', 'reference',"
+ " 'revision', 'rpc', 'typedef', 'uses', '}'}");
YangNode node = manager.getDataModel("src/test/resources/ModuleSubStatementMandatory.yang");
}
diff --git a/utils/yangutils/src/test/java/org/onosproject/yangutils/parser/impl/listeners/PatternRestrictionListenerTest.java b/utils/yangutils/src/test/java/org/onosproject/yangutils/parser/impl/listeners/PatternRestrictionListenerTest.java
index 00db373..928af5c 100644
--- a/utils/yangutils/src/test/java/org/onosproject/yangutils/parser/impl/listeners/PatternRestrictionListenerTest.java
+++ b/utils/yangutils/src/test/java/org/onosproject/yangutils/parser/impl/listeners/PatternRestrictionListenerTest.java
@@ -166,4 +166,32 @@
.getPatternList().listIterator();
assertThat(patternListIterator.next(), is("-[0-9]+|[0-9]+"));
}
+
+ /**
+ * Checks valid pattern substatement.
+ */
+ @Test
+ public void processPatternSubStatements() throws IOException, ParserException {
+
+ YangNode node = manager.getDataModel("src/test/resources/PatternSubStatements.yang");
+
+ assertThat((node instanceof YangModule), is(true));
+ assertThat(node.getNodeType(), is(YangNodeType.MODULE_NODE));
+ YangModule yangNode = (YangModule) node;
+ assertThat(yangNode.getName(), is("Test"));
+
+ ListIterator<YangLeaf> leafIterator = yangNode.getListOfLeaf().listIterator();
+ YangLeaf leafInfo = leafIterator.next();
+
+ assertThat(leafInfo.getName(), is("invalid-interval"));
+ assertThat(leafInfo.getDataType().getDataTypeName(), is("string"));
+ assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.STRING));
+ YangStringRestriction stringRestriction = (YangStringRestriction) leafInfo
+ .getDataType().getDataTypeExtendedInfo();
+ assertThat(stringRestriction.getDescription(), is("\"pattern description\""));
+ assertThat(stringRestriction.getReference(), is("\"pattern reference\""));
+ ListIterator<String> patternListIterator = stringRestriction.getPatternRestriction()
+ .getPatternList().listIterator();
+ assertThat(patternListIterator.next(), is("[a-zA-Z]"));
+ }
}
diff --git a/utils/yangutils/src/test/java/org/onosproject/yangutils/parser/impl/listeners/RangeRestrictionListenerTest.java b/utils/yangutils/src/test/java/org/onosproject/yangutils/parser/impl/listeners/RangeRestrictionListenerTest.java
index 76da997..88672fd 100644
--- a/utils/yangutils/src/test/java/org/onosproject/yangutils/parser/impl/listeners/RangeRestrictionListenerTest.java
+++ b/utils/yangutils/src/test/java/org/onosproject/yangutils/parser/impl/listeners/RangeRestrictionListenerTest.java
@@ -174,4 +174,37 @@
thrown.expectMessage("YANG file error : Input value \"a\" is not a valid int32.");
YangNode node = manager.getDataModel("src/test/resources/RangeWithInvalidIntegerPattern.yang");
}
+
+ /**
+ * Checks valid range statement with description.
+ */
+ @Test
+ public void processRangeSubStatements() throws IOException, ParserException {
+
+ YangNode node = manager.getDataModel("src/test/resources/RangeSubStatements.yang");
+
+ assertThat((node instanceof YangModule), is(true));
+ assertThat(node.getNodeType(), is(YangNodeType.MODULE_NODE));
+ YangModule yangNode = (YangModule) node;
+ assertThat(yangNode.getName(), is("Test"));
+
+ ListIterator<YangLeaf> leafIterator = yangNode.getListOfLeaf().listIterator();
+ YangLeaf leafInfo = leafIterator.next();
+
+ assertThat(leafInfo.getName(), is("invalid-interval"));
+ assertThat(leafInfo.getDataType().getDataTypeName(), is("int32"));
+ assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.INT32));
+ YangRangeRestriction rangeRestriction = (YangRangeRestriction) leafInfo
+ .getDataType().getDataTypeExtendedInfo();
+
+ assertThat(rangeRestriction.getDescription(), is("\"range description\""));
+ assertThat(rangeRestriction.getReference(), is("\"range reference\""));
+
+ ListIterator<YangRangeInterval> rangeListIterator = rangeRestriction.getAscendingRangeIntervals()
+ .listIterator();
+ YangRangeInterval rangeInterval = rangeListIterator.next();
+ assertThat(((YangInt32) rangeInterval.getStartValue()).getValue(), is(1));
+ assertThat(((YangInt32) rangeInterval.getEndValue()).getValue(), is(4));
+ assertThat(((YangInt32) rangeInterval.getEndValue()).getValue(), is(4));
+ }
}
diff --git a/utils/yangutils/src/test/java/org/onosproject/yangutils/parser/impl/listeners/StatusListenerTest.java b/utils/yangutils/src/test/java/org/onosproject/yangutils/parser/impl/listeners/StatusListenerTest.java
index 7f0d1ea..b2cbd71 100644
--- a/utils/yangutils/src/test/java/org/onosproject/yangutils/parser/impl/listeners/StatusListenerTest.java
+++ b/utils/yangutils/src/test/java/org/onosproject/yangutils/parser/impl/listeners/StatusListenerTest.java
@@ -150,9 +150,9 @@
@Test
public void processModuleSubStatementStatus() throws IOException, ParserException {
thrown.expect(ParserException.class);
- thrown.expectMessage("mismatched input 'status' expecting {'augment', 'choice', 'contact', 'container', "
- + "'description', 'extension', 'deviation', 'feature', 'grouping', 'identity', 'import', 'include',"
- + " 'leaf', 'leaf-list', 'list', 'notification', 'organization', 'reference', "
+ thrown.expectMessage("mismatched input 'status' expecting {'anyxml', 'augment', 'choice', 'contact', "
+ + "'container', 'description', 'extension', 'deviation', 'feature', 'grouping', 'identity', 'import',"
+ + " 'include', 'leaf', 'leaf-list', 'list', 'notification', 'organization', 'reference', "
+ "'revision', 'rpc', 'typedef', 'uses', '}'}");
YangNode node = manager.getDataModel("src/test/resources/ModuleSubStatementStatus.yang");
}
diff --git a/utils/yangutils/src/test/java/org/onosproject/yangutils/parser/impl/listeners/UnitsListenerTest.java b/utils/yangutils/src/test/java/org/onosproject/yangutils/parser/impl/listeners/UnitsListenerTest.java
index 6479991..6684df5 100644
--- a/utils/yangutils/src/test/java/org/onosproject/yangutils/parser/impl/listeners/UnitsListenerTest.java
+++ b/utils/yangutils/src/test/java/org/onosproject/yangutils/parser/impl/listeners/UnitsListenerTest.java
@@ -76,9 +76,9 @@
@Test
public void processModuleSubStatementUnits() throws IOException, ParserException {
thrown.expect(ParserException.class);
- thrown.expectMessage("mismatched input 'type' expecting {'augment', 'choice', 'contact', 'container', "
- + "'description', 'extension', 'deviation', 'feature', 'grouping', 'identity', 'import', "
- + "'include', 'leaf', 'leaf-list', 'list', 'notification', 'organization', "
+ thrown.expectMessage("mismatched input 'type' expecting {'anyxml', 'augment', 'choice', 'contact', "
+ + "'container', 'description', 'extension', 'deviation', 'feature', 'grouping', 'identity',"
+ + " 'import', 'include', 'leaf', 'leaf-list', 'list', 'notification', 'organization', "
+ "'reference', 'revision', 'rpc', 'typedef', 'uses', '}'}");
YangNode node = manager.getDataModel("src/test/resources/ModuleSubStatementUnits.yang");
}
diff --git a/utils/yangutils/src/test/java/org/onosproject/yangutils/parser/impl/listeners/ValueListenerTest.java b/utils/yangutils/src/test/java/org/onosproject/yangutils/parser/impl/listeners/ValueListenerTest.java
index f0d5357..6dae702 100644
--- a/utils/yangutils/src/test/java/org/onosproject/yangutils/parser/impl/listeners/ValueListenerTest.java
+++ b/utils/yangutils/src/test/java/org/onosproject/yangutils/parser/impl/listeners/ValueListenerTest.java
@@ -80,6 +80,84 @@
}
/**
+ * Checks explicitly configured negative value.
+ */
+ @Test
+ public void processValueStatementWithNegativeValue() throws IOException, ParserException {
+
+ YangNode node = manager.getDataModel("src/test/resources/ValueStatementWithNegativeValue.yang");
+
+ // Check whether the data model tree returned is of type module.
+ assertThat((node instanceof YangModule), is(true));
+
+ // Check whether the node type is set properly to module.
+ assertThat(node.getNodeType(), is(YangNodeType.MODULE_NODE));
+
+ // Check whether the module name is set correctly.
+ YangModule yangNode = (YangModule) node;
+ assertThat(yangNode.getName(), is("Test"));
+
+ ListIterator<YangLeaf> leafIterator = yangNode.getListOfLeaf().listIterator();
+ YangLeaf leafInfo = leafIterator.next();
+
+ assertThat(leafInfo.getName(), is("speed"));
+ assertThat(leafInfo.getDataType().getDataTypeName(), is("enumeration"));
+ assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.ENUMERATION));
+ assertThat(((YangEnumeration) leafInfo.getDataType().getDataTypeExtendedInfo()).getName(),
+ is("speed_enum"));
+
+ Set<YangEnum> enumSet = ((YangEnumeration) leafInfo.getDataType().getDataTypeExtendedInfo()).getEnumSet();
+ for (YangEnum tmp : enumSet) {
+ if (tmp.getNamedValue().equals("10m")) {
+ assertThat(tmp.getValue(), is(-2));
+ } else if (tmp.getNamedValue().equals("100m")) {
+ assertThat(tmp.getValue(), is(-1));
+ } else if (tmp.getNamedValue().equals("auto")) {
+ assertThat(tmp.getValue(), is(0));
+ }
+ }
+ }
+
+ /**
+ * Checks explicitly configured value with double quotes.
+ */
+ @Test
+ public void processValueStatementWithQuotes() throws IOException, ParserException {
+
+ YangNode node = manager.getDataModel("src/test/resources/ValueStatementWithQuotes.yang");
+
+ // Check whether the data model tree returned is of type module.
+ assertThat((node instanceof YangModule), is(true));
+
+ // Check whether the node type is set properly to module.
+ assertThat(node.getNodeType(), is(YangNodeType.MODULE_NODE));
+
+ // Check whether the module name is set correctly.
+ YangModule yangNode = (YangModule) node;
+ assertThat(yangNode.getName(), is("Test"));
+
+ ListIterator<YangLeaf> leafIterator = yangNode.getListOfLeaf().listIterator();
+ YangLeaf leafInfo = leafIterator.next();
+
+ assertThat(leafInfo.getName(), is("speed"));
+ assertThat(leafInfo.getDataType().getDataTypeName(), is("enumeration"));
+ assertThat(leafInfo.getDataType().getDataType(), is(YangDataTypes.ENUMERATION));
+ assertThat(((YangEnumeration) leafInfo.getDataType().getDataTypeExtendedInfo()).getName(),
+ is("speed_enum"));
+
+ Set<YangEnum> enumSet = ((YangEnumeration) leafInfo.getDataType().getDataTypeExtendedInfo()).getEnumSet();
+ for (YangEnum tmp : enumSet) {
+ if (tmp.getNamedValue().equals("10m")) {
+ assertThat(tmp.getValue(), is(10));
+ } else if (tmp.getNamedValue().equals("100m")) {
+ assertThat(tmp.getValue(), is(100));
+ } else if (tmp.getNamedValue().equals("auto")) {
+ assertThat(tmp.getValue(), is(1000));
+ }
+ }
+ }
+
+ /**
* Checks explicit value and auto generated value.
*/
@Test
diff --git a/utils/yangutils/src/test/java/org/onosproject/yangutils/utils/io/impl/YangFileScannerTest.java b/utils/yangutils/src/test/java/org/onosproject/yangutils/utils/io/impl/YangFileScannerTest.java
index d3137b3..7d199b9 100644
--- a/utils/yangutils/src/test/java/org/onosproject/yangutils/utils/io/impl/YangFileScannerTest.java
+++ b/utils/yangutils/src/test/java/org/onosproject/yangutils/utils/io/impl/YangFileScannerTest.java
@@ -26,6 +26,7 @@
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
+import org.onosproject.yangutils.plugin.manager.YangFileInfo;
import static org.hamcrest.core.Is.is;
import static org.hamcrest.core.IsNot.not;
@@ -135,7 +136,7 @@
String emptyYangDir = baseDir + separator + "scanner1";
File path = createDirectory(emptyYangDir);
- List<String> emptyDirContents = getYangFiles(path.toString());
+ List<YangFileInfo> emptyDirContents = getYangFiles(path.toString());
List<String> expectedContents = new LinkedList<>();
assertThat(true, is(emptyDirContents.equals(expectedContents)));
}
diff --git a/utils/yangutils/src/test/resources/AnyxmlStatement.yang b/utils/yangutils/src/test/resources/AnyxmlStatement.yang
new file mode 100644
index 0000000..4b1e421
--- /dev/null
+++ b/utils/yangutils/src/test/resources/AnyxmlStatement.yang
@@ -0,0 +1,16 @@
+module event {
+
+ namespace "http://example.com/event";
+ prefix "ev";
+
+ notification event {
+ leaf event-class {
+ type string;
+ }
+ anyxml reporting-entity;
+ leaf severity {
+ type string;
+ }
+ }
+}
+
diff --git a/utils/yangutils/src/test/resources/ChoiceSubStatementDefault.yang b/utils/yangutils/src/test/resources/ChoiceSubStatementDefault.yang
new file mode 100644
index 0000000..b9fd60d
--- /dev/null
+++ b/utils/yangutils/src/test/resources/ChoiceSubStatementDefault.yang
@@ -0,0 +1,23 @@
+module Test {
+ yang-version 1;
+ namespace http://huawei.com;
+ prefix Ant;
+ container food {
+ choice snack {
+ case sports-arena {
+ leaf pretzel {
+ type string;
+ }
+ leaf beer {
+ type string;
+ }
+ }
+ case late-night {
+ leaf chocolate {
+ type string;
+ }
+ }
+ default "hello";
+ }
+ }
+}
diff --git a/utils/yangutils/src/test/resources/EnumBoundaryValue.yang b/utils/yangutils/src/test/resources/EnumBoundaryValue.yang
new file mode 100644
index 0000000..ac87ef0
--- /dev/null
+++ b/utils/yangutils/src/test/resources/EnumBoundaryValue.yang
@@ -0,0 +1,16 @@
+module Test {
+ yang-version 1;
+ namespace http://huawei.com;
+ prefix Ant;
+ leaf ifType {
+ type enumeration {
+ enum "unbounded";
+ enum ZERO;
+ enum two;
+ enum four;
+ enum seven {
+ value 21474836472147483647;
+ }
+ }
+ }
+}
diff --git a/utils/yangutils/src/test/resources/EnumMaxNextValue.yang b/utils/yangutils/src/test/resources/EnumMaxNextValue.yang
new file mode 100644
index 0000000..4e4a373
--- /dev/null
+++ b/utils/yangutils/src/test/resources/EnumMaxNextValue.yang
@@ -0,0 +1,18 @@
+module Test {
+ yang-version 1;
+ namespace http://huawei.com;
+ prefix Ant;
+ leaf ifType {
+ type enumeration {
+ enum "unbounded";
+ enum ZERO;
+ enum two;
+ enum four;
+ enum seven {
+ value 2147483647;
+ }
+ enum five;
+
+ }
+ }
+}
diff --git a/utils/yangutils/src/test/resources/KeyWithUsesInList.yang b/utils/yangutils/src/test/resources/KeyWithUsesInList.yang
new file mode 100644
index 0000000..d076d0a
--- /dev/null
+++ b/utils/yangutils/src/test/resources/KeyWithUsesInList.yang
@@ -0,0 +1,23 @@
+module Test {
+ yang-version 1;
+ namespace http://huawei.com;
+ prefix Ant;
+ grouping network {
+ leaf invalid-interval {
+ type "string";
+ units "seconds";
+ status current;
+ reference "RFC 6020";
+ }
+ }
+ list valid {
+ key "invalid-interval";
+ leaf invalid {
+ type "string";
+ units "seconds";
+ status current;
+ reference "RFC 6020";
+ }
+ uses "network";
+ }
+}
diff --git a/utils/yangutils/src/test/resources/LeafSubStatementDefault.yang b/utils/yangutils/src/test/resources/LeafSubStatementDefault.yang
new file mode 100644
index 0000000..a78131d
--- /dev/null
+++ b/utils/yangutils/src/test/resources/LeafSubStatementDefault.yang
@@ -0,0 +1,15 @@
+module Test {
+ yang-version 1;
+ namespace http://huawei.com;
+ prefix Ant;
+ leaf invalid-interval {
+ type "uint16";
+ units "seconds";
+ default "1";
+ description "Interval before a route is declared invalid";
+ config true;
+ mandatory true;
+ status current;
+ reference "RFC 6020";
+ }
+}
diff --git a/utils/yangutils/src/test/resources/LengthSubStatements.yang b/utils/yangutils/src/test/resources/LengthSubStatements.yang
new file mode 100644
index 0000000..f61f979
--- /dev/null
+++ b/utils/yangutils/src/test/resources/LengthSubStatements.yang
@@ -0,0 +1,13 @@
+module Test {
+ yang-version 1;
+ namespace http://huawei.com;
+ prefix Ant;
+ leaf invalid-interval {
+ type string {
+ length "0..100" {
+ description "length description";
+ reference "length reference";
+ }
+ }
+ }
+}
diff --git a/utils/yangutils/src/test/resources/OrderedByStatement.yang b/utils/yangutils/src/test/resources/OrderedByStatement.yang
new file mode 100644
index 0000000..f6b4336
--- /dev/null
+++ b/utils/yangutils/src/test/resources/OrderedByStatement.yang
@@ -0,0 +1,10 @@
+module rock {
+ namespace "http://example.net/rock";
+ prefix "rock";
+ leaf-list cipher {
+ type string;
+ ordered-by user;
+ description "A list of ciphers";
+ }
+}
+
diff --git a/utils/yangutils/src/test/resources/PatternSubStatements.yang b/utils/yangutils/src/test/resources/PatternSubStatements.yang
new file mode 100644
index 0000000..3e792c6
--- /dev/null
+++ b/utils/yangutils/src/test/resources/PatternSubStatements.yang
@@ -0,0 +1,13 @@
+module Test {
+ yang-version 1;
+ namespace http://huawei.com;
+ prefix Ant;
+ leaf invalid-interval {
+ type string {
+ pattern "[a-zA-Z]" {
+ description "pattern description";
+ reference "pattern reference";
+ }
+ }
+ }
+}
diff --git a/utils/yangutils/src/test/resources/RangeSubStatements.yang b/utils/yangutils/src/test/resources/RangeSubStatements.yang
new file mode 100644
index 0000000..4b57bd0
--- /dev/null
+++ b/utils/yangutils/src/test/resources/RangeSubStatements.yang
@@ -0,0 +1,14 @@
+module Test {
+ yang-version 1;
+ namespace http://huawei.com;
+ prefix Ant;
+ leaf invalid-interval {
+ type int32 {
+ range "1..4 | 10..20" {
+ description "range description";
+ reference "range reference";
+ }
+ }
+ }
+}
+
diff --git a/utils/yangutils/src/test/resources/ValidAugmentStatement.yang b/utils/yangutils/src/test/resources/ValidAugmentStatement.yang
index 6175c35..f6c247e 100644
--- a/utils/yangutils/src/test/resources/ValidAugmentStatement.yang
+++ b/utils/yangutils/src/test/resources/ValidAugmentStatement.yang
@@ -10,7 +10,6 @@
prefix "P";
}
augment "/if:interfaces/if:ifEntry" {
- when "if:ifType='ds0'";
leaf ds0ChannelNumber {
type P:ChannelNumber;
}
diff --git a/utils/yangutils/src/test/resources/ValidNotificationStatement.yang b/utils/yangutils/src/test/resources/ValidNotificationStatement.yang
index 072df23..7e6bc17 100644
--- a/utils/yangutils/src/test/resources/ValidNotificationStatement.yang
+++ b/utils/yangutils/src/test/resources/ValidNotificationStatement.yang
@@ -14,9 +14,7 @@
type int32;
}
leaf if-name {
- type leafref {
- path "/interface/name";
- }
+ type leafref;
}
leaf if-admin-status {
type P:admin-status;
diff --git a/utils/yangutils/src/test/resources/ValueStatementWithNegativeValue.yang b/utils/yangutils/src/test/resources/ValueStatementWithNegativeValue.yang
new file mode 100644
index 0000000..a3f236b
--- /dev/null
+++ b/utils/yangutils/src/test/resources/ValueStatementWithNegativeValue.yang
@@ -0,0 +1,18 @@
+module Test {
+ yang-version 1;
+ namespace http://huawei.com;
+ prefix Ant;
+ leaf speed {
+ type enumeration {
+ enum 10m {
+ value -2;
+ }
+ enum 100m {
+ value "-1";
+ }
+ enum auto {
+ value 0;
+ }
+ }
+ }
+}
diff --git a/utils/yangutils/src/test/resources/ValueStatementWithQuotes.yang b/utils/yangutils/src/test/resources/ValueStatementWithQuotes.yang
new file mode 100644
index 0000000..e166ca4
--- /dev/null
+++ b/utils/yangutils/src/test/resources/ValueStatementWithQuotes.yang
@@ -0,0 +1,18 @@
+module Test {
+ yang-version 1;
+ namespace http://huawei.com;
+ prefix Ant;
+ leaf speed {
+ type enumeration {
+ enum 10m {
+ value "10";
+ }
+ enum 100m {
+ value "100";
+ }
+ enum auto {
+ value "1000";
+ }
+ }
+ }
+}