AnyData feature changes

Change-Id: Iccba22d731321f38b8146bbfc85477d2252a3b10
diff --git a/compiler/base/parser/src/main/resources/GeneratedYang.g4 b/compiler/base/parser/src/main/resources/GeneratedYang.g4
index 7167f7b..e30e150 100644
--- a/compiler/base/parser/src/main/resources/GeneratedYang.g4
+++ b/compiler/base/parser/src/main/resources/GeneratedYang.g4
@@ -370,7 +370,8 @@
      *                       list-stmt /
      *                       choice-stmt /
      *                       anyxml-stmt /
-     *                       uses-stmt
+     *                       uses-stmt /
+     *                       anydata-stmt
      */
     dataDefStatement : containerStatement
                     | leafStatement
@@ -378,7 +379,8 @@
                     | listStatement
                     | choiceStatement
                     | anyxmlStatement
-                    | usesStatement;
+                    | usesStatement
+                    | anydataStatement;
 
     /**
      *  if-feature-stmt     = if-feature-keyword sep identifier-ref-arg-str
@@ -951,7 +953,7 @@
      *                        anyxml-stmt
      */
     shortCaseStatement : containerStatement | leafStatement | leafListStatement
-            | listStatement | anyxmlStatement;
+            | listStatement | anyxmlStatement | anydataStatement;
 
     /**
      *  case-stmt           = case-keyword sep identifier-arg-str optsep
@@ -1357,6 +1359,28 @@
      */
     defaultDenyAllStatement : DEFAULT_DENY_ALL STMTEND;
 
+
+   /**
+    * anydata-stmt        = anydata-keyword sep identifier-arg-str optsep
+    *                       (";" /
+    *                        "{" stmtsep
+    *                            ;; these stmts can appear in any order
+    *                            [when-stmt]
+    *                            *if-feature-stmt
+    *                            *must-stmt
+    *                            [config-stmt]
+    *                            [mandatory-stmt]
+    *                            [status-stmt]
+    *                            [description-stmt]
+    *                            [reference-stmt]
+    *                         "}") stmtsep
+    */
+    anydataStatement : ANYDATA_KEYWORD identifier (STMTEND |
+               LEFT_CURLY_BRACE stmtSep (whenStatement | ifFeatureStatement
+               | mustStatement | configStatement | mandatoryStatement
+               | statusStatement | descriptionStatement | referenceStatement)*
+               RIGHT_CURLY_BRACE) stmtSep;
+
     /**
      * unknown-statement   = prefix ":" identifier [sep string] optsep
      *                        (";" / "{" *unknown-statement2 "}")
@@ -1456,4 +1480,5 @@
                   | FALSE_KEYWORD | MAX_KEYWORD | MIN_KEYWORD | NOT_SUPPORTED_KEYWORD | OBSOLETE_KEYWORD
                   | REPLACE_KEYWORD | SYSTEM_KEYWORD | TRUE_KEYWORD | UNBOUNDED_KEYWORD | USER_KEYWORD
                   | COMPILER_ANNOTATION_KEYWORD | APP_DATA_STRUCTURE_KEYWORD | DATA_STRUCTURE_KEYWORD
-                  | APP_EXTENDED_KEYWORD | DEFAULT_DENY_WRITE_KEYWORD | DEFAULT_DENY_ALL_KEYWORD;
+                  | APP_EXTENDED_KEYWORD | DEFAULT_DENY_WRITE_KEYWORD | DEFAULT_DENY_ALL_KEYWORD
+                  | ANYDATA_KEYWORD;
diff --git a/compiler/base/parser/src/main/resources/YangLexer.g4 b/compiler/base/parser/src/main/resources/YangLexer.g4
index 4f190b9..7a5e79c 100644
--- a/compiler/base/parser/src/main/resources/YangLexer.g4
+++ b/compiler/base/parser/src/main/resources/YangLexer.g4
@@ -118,6 +118,7 @@
     DEFAULT_DENY_WRITE : IDENTIFIER COLON DEFAULT_DENY_WRITE_KEYWORD;
     DEFAULT_DENY_ALL_KEYWORD : 'default-deny-all';
     DEFAULT_DENY_ALL : IDENTIFIER COLON DEFAULT_DENY_ALL_KEYWORD;
+    ANYDATA_KEYWORD : 'anydata';
 
     // Lexer tokens to be skipped
     COMMENT
diff --git a/compiler/base/parser/src/main/resources/YangLexer.tokens b/compiler/base/parser/src/main/resources/YangLexer.tokens
deleted file mode 100644
index 3192512..0000000
--- a/compiler/base/parser/src/main/resources/YangLexer.tokens
+++ /dev/null
@@ -1,199 +0,0 @@
-ANYXML_KEYWORD=1
-ARGUMENT_KEYWORD=2
-AUGMENT_KEYWORD=3
-BASE_KEYWORD=4
-BELONGS_TO_KEYWORD=5
-BIT_KEYWORD=6
-CASE_KEYWORD=7
-CHOICE_KEYWORD=8
-CONFIG_KEYWORD=9
-CONTACT_KEYWORD=10
-CONTAINER_KEYWORD=11
-DEFAULT_KEYWORD=12
-DESCRIPTION_KEYWORD=13
-ENUM_KEYWORD=14
-ERROR_APP_TAG_KEYWORD=15
-ERROR_MESSAGE_KEYWORD=16
-EXTENSION_KEYWORD=17
-DEVIATION_KEYWORD=18
-DEVIATE_KEYWORD=19
-FEATURE_KEYWORD=20
-FRACTION_DIGITS_KEYWORD=21
-GROUPING_KEYWORD=22
-IDENTITY_KEYWORD=23
-IF_FEATURE_KEYWORD=24
-IMPORT_KEYWORD=25
-INCLUDE_KEYWORD=26
-INPUT_KEYWORD=27
-KEY_KEYWORD=28
-LEAF_KEYWORD=29
-LEAF_LIST_KEYWORD=30
-LENGTH_KEYWORD=31
-LIST_KEYWORD=32
-MANDATORY_KEYWORD=33
-MAX_ELEMENTS_KEYWORD=34
-MIN_ELEMENTS_KEYWORD=35
-MODULE_KEYWORD=36
-MUST_KEYWORD=37
-NAMESPACE_KEYWORD=38
-NOTIFICATION_KEYWORD=39
-ORDERED_BY_KEYWORD=40
-ORGANIZATION_KEYWORD=41
-OUTPUT_KEYWORD=42
-PATH_KEYWORD=43
-PATTERN_KEYWORD=44
-POSITION_KEYWORD=45
-PREFIX_KEYWORD=46
-PRESENCE_KEYWORD=47
-RANGE_KEYWORD=48
-REFERENCE_KEYWORD=49
-REFINE_KEYWORD=50
-REQUIRE_INSTANCE_KEYWORD=51
-REVISION_KEYWORD=52
-REVISION_DATE_KEYWORD=53
-RPC_KEYWORD=54
-STATUS_KEYWORD=55
-SUBMODULE_KEYWORD=56
-TYPE_KEYWORD=57
-TYPEDEF_KEYWORD=58
-UNIQUE_KEYWORD=59
-UNITS_KEYWORD=60
-USES_KEYWORD=61
-VALUE_KEYWORD=62
-WHEN_KEYWORD=63
-YANG_VERSION_KEYWORD=64
-YIN_ELEMENT_KEYWORD=65
-ADD_KEYWORD=66
-CURRENT_KEYWORD=67
-DELETE_KEYWORD=68
-DEPRECATED_KEYWORD=69
-FALSE_KEYWORD=70
-MAX_KEYWORD=71
-MIN_KEYWORD=72
-NOT_SUPPORTED_KEYWORD=73
-OBSOLETE_KEYWORD=74
-REPLACE_KEYWORD=75
-SYSTEM_KEYWORD=76
-TRUE_KEYWORD=77
-UNBOUNDED_KEYWORD=78
-USER_KEYWORD=79
-COMPILER_ANNOTATION_KEYWORD=80
-COMPILER_ANNOTATION=81
-APP_DATA_STRUCTURE_KEYWORD=82
-APP_DATA_STRUCTURE=83
-DATA_STRUCTURE_KEYWORD=84
-DATA_STRUCTURE=85
-DATA_STRUCTURE_KEY=86
-APP_EXTENDED_KEYWORD=87
-APP_EXTENDED=88
-DEFAULT_DENY_WRITE_KEYWORD=89
-DEFAULT_DENY_WRITE=90
-DEFAULT_DENY_ALL_KEYWORD=91
-DEFAULT_DENY_ALL=92
-COMMENT=93
-WS=94
-LINE_COMMENT=95
-INTEGER=96
-DATE_ARG=97
-LEFT_CURLY_BRACE=98
-RIGHT_CURLY_BRACE=99
-IDENTIFIER=100
-STMTEND=101
-DQUOTE=102
-COLON=103
-PLUS=104
-MINUS=105
-UNKNOWN_STATEMENT=106
-STRING=107
-'anyxml'=1
-'argument'=2
-'augment'=3
-'base'=4
-'belongs-to'=5
-'bit'=6
-'case'=7
-'choice'=8
-'config'=9
-'contact'=10
-'container'=11
-'default'=12
-'description'=13
-'enum'=14
-'error-app-tag'=15
-'error-message'=16
-'extension'=17
-'deviation'=18
-'deviate'=19
-'feature'=20
-'fraction-digits'=21
-'grouping'=22
-'identity'=23
-'if-feature'=24
-'import'=25
-'include'=26
-'input'=27
-'key'=28
-'leaf'=29
-'leaf-list'=30
-'length'=31
-'list'=32
-'mandatory'=33
-'max-elements'=34
-'min-elements'=35
-'module'=36
-'must'=37
-'namespace'=38
-'notification'=39
-'ordered-by'=40
-'organization'=41
-'output'=42
-'path'=43
-'pattern'=44
-'position'=45
-'prefix'=46
-'presence'=47
-'range'=48
-'reference'=49
-'refine'=50
-'require-instance'=51
-'revision'=52
-'revision-date'=53
-'rpc'=54
-'status'=55
-'submodule'=56
-'type'=57
-'typedef'=58
-'unique'=59
-'units'=60
-'uses'=61
-'value'=62
-'when'=63
-'yang-version'=64
-'yin-element'=65
-'add'=66
-'current'=67
-'delete'=68
-'deprecated'=69
-'false'=70
-'max'=71
-'min'=72
-'not-supported'=73
-'obsolete'=74
-'replace'=75
-'system'=76
-'true'=77
-'unbounded'=78
-'user'=79
-'compiler-annotation'=80
-'app-data-structure'=82
-'data-structure'=84
-'app-extended-name'=87
-'default-deny-write'=89
-'default-deny-all'=91
-'{'=98
-'}'=99
-';'=101
-'"'=102
-':'=103
-'+'=104
-'-'=105