blob: 4fce152db2726fe3572e15e056ee6f2f5da7e21b [file] [log] [blame]
Vidyashree Ramada621502016-02-05 22:32:34 +05301/*
Brian O'Connor5ab426f2016-04-09 01:19:45 -07002 * Copyright 2016-present Open Networking Laboratory
Vidyashree Ramada621502016-02-05 22:32:34 +05303 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17/**
18 * This is a YANG grammar for parser based on which ANTLR will generate YANG parser.
19 */
20
21grammar GeneratedYang;
22import YangLexer;
23
24@header {
25package org.onosproject.yangutils.parser.antlrgencode;
26}
27
janani bdd1314f2016-05-19 17:39:50 +053028 yangfile : moduleStatement EOF
29 | subModuleStatement EOF;
Vidyashree Ramada621502016-02-05 22:32:34 +053030
31 /**
32 * module-stmt = optsep module-keyword sep identifier-arg-str
33 * optsep
34 * "{" stmtsep
35 * module-header-stmts
36 * linkage-stmts
37 * meta-stmts
38 * revision-stmts
39 * body-stmts
40 * "}" optsep
41 */
42
Vidyashree Ramabcd7fba2016-03-09 20:41:44 +053043 moduleStatement : MODULE_KEYWORD identifier LEFT_CURLY_BRACE moduleBody RIGHT_CURLY_BRACE;
Vidyashree Ramada621502016-02-05 22:32:34 +053044
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +053045 moduleBody : moduleHeaderStatement linkageStatements metaStatements revisionStatements bodyStatements;
Vidyashree Ramada621502016-02-05 22:32:34 +053046
47 /**
48 * module-header-stmts = ;; these stmts can appear in any order
49 * [yang-version-stmt stmtsep]
50 * namespace-stmt stmtsep
51 * prefix-stmt stmtsep
52 */
53
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +053054 moduleHeaderStatement : yangVersionStatement? namespaceStatement prefixStatement
55 | yangVersionStatement? prefixStatement namespaceStatement
56 | namespaceStatement yangVersionStatement? prefixStatement
57 | namespaceStatement prefixStatement yangVersionStatement?
58 | prefixStatement namespaceStatement yangVersionStatement?
59 | prefixStatement yangVersionStatement? namespaceStatement
Vidyashree Ramada621502016-02-05 22:32:34 +053060 ;
61
62 /**
63 * linkage-stmts = ;; these stmts can appear in any order
64 * *(import-stmt stmtsep)
65 * *(include-stmt stmtsep)
66 */
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +053067 linkageStatements : (importStatement
68 | includeStatement)*;
Vidyashree Ramada621502016-02-05 22:32:34 +053069
70 /**
71 * meta-stmts = ;; these stmts can appear in any order
72 * [organization-stmt stmtsep]
73 * [contact-stmt stmtsep]
74 * [description-stmt stmtsep]
75 * [reference-stmt stmtsep]
76 */
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +053077 metaStatements : organizationStatement? contactStatement? descriptionStatement? referenceStatement?
78 | organizationStatement? contactStatement? referenceStatement? descriptionStatement?
79 | organizationStatement? descriptionStatement? contactStatement? referenceStatement?
80 | organizationStatement? descriptionStatement? referenceStatement? contactStatement?
81 | organizationStatement? referenceStatement? contactStatement? descriptionStatement?
82 | organizationStatement? referenceStatement? descriptionStatement? contactStatement?
83 | contactStatement? organizationStatement? descriptionStatement? referenceStatement?
84 | contactStatement? organizationStatement? referenceStatement? descriptionStatement?
85 | contactStatement? referenceStatement? organizationStatement? descriptionStatement?
86 | contactStatement? referenceStatement? descriptionStatement? organizationStatement?
87 | contactStatement? descriptionStatement? referenceStatement? organizationStatement?
88 | contactStatement? descriptionStatement? organizationStatement? referenceStatement?
89 | referenceStatement? contactStatement? organizationStatement? descriptionStatement?
90 | referenceStatement? contactStatement? descriptionStatement? organizationStatement?
91 | referenceStatement? organizationStatement? contactStatement? descriptionStatement?
92 | referenceStatement? organizationStatement? descriptionStatement? contactStatement?
93 | referenceStatement? descriptionStatement? organizationStatement? contactStatement?
94 | referenceStatement? descriptionStatement? contactStatement? organizationStatement?
95 | descriptionStatement? referenceStatement? contactStatement? organizationStatement?
96 | descriptionStatement? referenceStatement? organizationStatement? contactStatement?
97 | descriptionStatement? contactStatement? referenceStatement? organizationStatement?
98 | descriptionStatement? contactStatement? organizationStatement? referenceStatement?
99 | descriptionStatement? organizationStatement? contactStatement? referenceStatement?
100 | descriptionStatement? organizationStatement? referenceStatement? contactStatement?
Vidyashree Ramada621502016-02-05 22:32:34 +0530101 ;
102
103 // revision-stmts = *(revision-stmt stmtsep)
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530104 revisionStatements : revisionStatement*;
Vidyashree Ramada621502016-02-05 22:32:34 +0530105
106 /**
107 * body-stmts = *((extension-stmt /
108 * feature-stmt /
109 * identity-stmt /
110 * typedef-stmt /
111 * grouping-stmt /
112 * data-def-stmt /
113 * augment-stmt /
114 * rpc-stmt /
115 * notification-stmt /
116 * deviation-stmt) stmtsep)
117 */
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530118 bodyStatements : (extensionStatement
119 | featureStatement
120 | identityStatement
121 | typedefStatement
122 | groupingStatement
123 | dataDefStatement
124 | augmentStatement
125 | rpcStatement
126 | notificationStatement
127 | deviationStatement)*
Vidyashree Ramada621502016-02-05 22:32:34 +0530128 ;
129
130 /**
131 * yang-version-stmt = yang-version-keyword sep yang-version-arg-str
132 * optsep stmtend
133 */
Vidyashree Rama8a6b1282016-03-15 10:18:25 +0530134 yangVersionStatement : YANG_VERSION_KEYWORD version STMTEND;
Vidyashree Ramada621502016-02-05 22:32:34 +0530135
136
137 /**
138 * namespace-stmt = namespace-keyword sep uri-str optsep stmtend
139 * For namespace validation TODO in Listener
140 */
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530141 namespaceStatement : NAMESPACE_KEYWORD string STMTEND;
Vidyashree Ramada621502016-02-05 22:32:34 +0530142
143 /**
144 * prefix-stmt = prefix-keyword sep prefix-arg-str
145 * optsep stmtend
146 */
Vidyashree Rama468f8282016-03-04 19:08:35 +0530147 prefixStatement : PREFIX_KEYWORD identifier STMTEND;
Vidyashree Ramada621502016-02-05 22:32:34 +0530148
149 /**
150 * import-stmt = import-keyword sep identifier-arg-str optsep
151 * "{" stmtsep
152 * prefix-stmt stmtsep
153 * [revision-date-stmt stmtsep]
154 * "}"
155 */
Vidyashree Rama468f8282016-03-04 19:08:35 +0530156 importStatement : IMPORT_KEYWORD identifier LEFT_CURLY_BRACE importStatementBody RIGHT_CURLY_BRACE;
Vidyashree Ramada621502016-02-05 22:32:34 +0530157
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530158 importStatementBody : prefixStatement revisionDateStatement?;
Vidyashree Ramada621502016-02-05 22:32:34 +0530159
160 // revision-date-stmt = revision-date-keyword sep revision-date stmtend
Vidyashree Rama468f8282016-03-04 19:08:35 +0530161 revisionDateStatement : REVISION_DATE_KEYWORD dateArgumentString STMTEND;
Vidyashree Ramada621502016-02-05 22:32:34 +0530162
163 /**
164 * include-stmt = include-keyword sep identifier-arg-str optsep
165 * (";" /
166 * "{" stmtsep
167 * [revision-date-stmt stmtsep]
168 * "}")
169 */
Vidyashree Rama468f8282016-03-04 19:08:35 +0530170 includeStatement : INCLUDE_KEYWORD identifier (STMTEND | LEFT_CURLY_BRACE revisionDateStatement? RIGHT_CURLY_BRACE);
Vidyashree Ramada621502016-02-05 22:32:34 +0530171
172 /**
173 * organization-stmt = organization-keyword sep string
174 * optsep stmtend
175 */
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530176 organizationStatement : ORGANIZATION_KEYWORD string STMTEND;
Vidyashree Ramada621502016-02-05 22:32:34 +0530177
178 // contact-stmt = contact-keyword sep string optsep stmtend
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530179 contactStatement : CONTACT_KEYWORD string STMTEND;
Vidyashree Ramada621502016-02-05 22:32:34 +0530180
181 // description-stmt = description-keyword sep string optsep stmtend
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530182 descriptionStatement : DESCRIPTION_KEYWORD string STMTEND;
Vidyashree Ramada621502016-02-05 22:32:34 +0530183
184 // reference-stmt = reference-keyword sep string optsep stmtend
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530185 referenceStatement : REFERENCE_KEYWORD string STMTEND;
Vidyashree Ramada621502016-02-05 22:32:34 +0530186
187 /**
188 * revision-stmt = revision-keyword sep revision-date optsep
189 * (";" /
190 * "{" stmtsep
191 * [description-stmt stmtsep]
192 * [reference-stmt stmtsep]
193 * "}")
194 */
Vidyashree Rama468f8282016-03-04 19:08:35 +0530195 revisionStatement : REVISION_KEYWORD dateArgumentString (STMTEND | LEFT_CURLY_BRACE revisionStatementBody RIGHT_CURLY_BRACE);
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530196 revisionStatementBody : descriptionStatement? referenceStatement?;
Vidyashree Ramada621502016-02-05 22:32:34 +0530197
198 /**
199 * submodule-stmt = optsep submodule-keyword sep identifier-arg-str
200 * optsep
201 * "{" stmtsep
202 * submodule-header-stmts
203 * linkage-stmts
204 * meta-stmts
205 * revision-stmts
206 * body-stmts
207 * "}" optsep
208 */
Vidyashree Ramabcd7fba2016-03-09 20:41:44 +0530209 subModuleStatement : SUBMODULE_KEYWORD identifier LEFT_CURLY_BRACE submoduleBody RIGHT_CURLY_BRACE;
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530210 submoduleBody : submoduleHeaderStatement linkageStatements metaStatements revisionStatements bodyStatements;
Vidyashree Ramada621502016-02-05 22:32:34 +0530211
212 /** submodule-header-stmts =
213 * ;; these stmts can appear in any order
214 * [yang-version-stmt stmtsep]
215 * belongs-to-stmt stmtsep
216 */
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530217 submoduleHeaderStatement : yangVersionStatement? belongstoStatement
218 | belongstoStatement yangVersionStatement?
Vidyashree Ramada621502016-02-05 22:32:34 +0530219 ;
220
221 /**
222 * belongs-to-stmt = belongs-to-keyword sep identifier-arg-str
223 * optsep
224 * "{" stmtsep
225 * prefix-stmt stmtsep
226 * "}"
227 */
Vidyashree Rama468f8282016-03-04 19:08:35 +0530228 belongstoStatement : BELONGS_TO_KEYWORD identifier LEFT_CURLY_BRACE belongstoStatementBody RIGHT_CURLY_BRACE;
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530229 belongstoStatementBody : prefixStatement;
Vidyashree Ramada621502016-02-05 22:32:34 +0530230
231 /**
232 * extension-stmt = extension-keyword sep identifier-arg-str optsep
233 * (";" /
234 * "{" stmtsep
235 * ;; these stmts can appear in any order
236 * [argument-stmt stmtsep]
237 * [status-stmt stmtsep]
238 * [description-stmt stmtsep]
239 * [reference-stmt stmtsep]
Vidyashree Rama528ef302016-06-30 14:31:18 +0530240 * [compiler-annotation-stmt stmtsep]
Vidyashree Ramada621502016-02-05 22:32:34 +0530241 * "}")
Vidyashree Rama528ef302016-06-30 14:31:18 +0530242 * TODO : 0..1 occurance to be checked in listener
Vidyashree Ramada621502016-02-05 22:32:34 +0530243 */
Vidyashree Rama468f8282016-03-04 19:08:35 +0530244 extensionStatement : EXTENSION_KEYWORD identifier (STMTEND | LEFT_CURLY_BRACE extensionBody RIGHT_CURLY_BRACE);
Vidyashree Rama528ef302016-06-30 14:31:18 +0530245 extensionBody : (argumentStatement | statusStatement | descriptionStatement
246 | referenceStatement | compilerAnnotationStatement)* ;
Vidyashree Ramada621502016-02-05 22:32:34 +0530247
248 /**
249 * argument-stmt = argument-keyword sep identifier-arg-str optsep
250 * (";" /
251 * "{" stmtsep
252 * [yin-element-stmt stmtsep]
253 * "}")
254 */
Vidyashree Rama468f8282016-03-04 19:08:35 +0530255 argumentStatement : ARGUMENT_KEYWORD identifier (STMTEND | LEFT_CURLY_BRACE argumentBody RIGHT_CURLY_BRACE);
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530256 argumentBody : yinElementStatement?;
Vidyashree Ramada621502016-02-05 22:32:34 +0530257
258 /**
259 * yin-element-stmt = yin-element-keyword sep yin-element-arg-str
260 * stmtend
261 */
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530262 yinElementStatement : YIN_ELEMENT_KEYWORD (TRUE_KEYWORD | FALSE_KEYWORD) STMTEND;
Vidyashree Ramada621502016-02-05 22:32:34 +0530263
264 /**
265 * identity-stmt = identity-keyword sep identifier-arg-str optsep
266 * (";" /
267 * "{" stmtsep
268 * ;; these stmts can appear in any order
269 * [base-stmt stmtsep]
270 * [status-stmt stmtsep]
271 * [description-stmt stmtsep]
272 * [reference-stmt stmtsep]
Vidyashree Rama528ef302016-06-30 14:31:18 +0530273 * [compiler-annotation-stmt stmtsep]
Vidyashree Ramada621502016-02-05 22:32:34 +0530274 * "}")
Vidyashree Rama528ef302016-06-30 14:31:18 +0530275 * TODO : 0..1 occurance to be checked in listener
Vidyashree Ramada621502016-02-05 22:32:34 +0530276 */
Vidyashree Rama468f8282016-03-04 19:08:35 +0530277 identityStatement : IDENTITY_KEYWORD identifier (STMTEND | LEFT_CURLY_BRACE identityBody RIGHT_CURLY_BRACE);
Vidyashree Rama528ef302016-06-30 14:31:18 +0530278 identityBody : (baseStatement | statusStatement | descriptionStatement | referenceStatement
279 | compilerAnnotationStatement)*;
Vidyashree Ramada621502016-02-05 22:32:34 +0530280
281 /**
282 * base-stmt = base-keyword sep identifier-ref-arg-str
283 * optsep stmtend*
284 * identifier-ref-arg = [prefix ":"] identifier
285 */
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530286 baseStatement : BASE_KEYWORD string STMTEND;
Vidyashree Ramada621502016-02-05 22:32:34 +0530287
288 /**
289 * feature-stmt = feature-keyword sep identifier-arg-str optsep
290 * (";" /
291 * "{" stmtsep
292 * ;; these stmts can appear in any order
293 * *(if-feature-stmt stmtsep)
294 * [status-stmt stmtsep]
295 * [description-stmt stmtsep]
296 * [reference-stmt stmtsep]
Vidyashree Rama528ef302016-06-30 14:31:18 +0530297 * [compiler-annotation-stmt stmtsep]
Vidyashree Ramada621502016-02-05 22:32:34 +0530298 * "}")
Vidyashree Rama528ef302016-06-30 14:31:18 +0530299 * TODO : 0..1 occurance to be checked in listener
Vidyashree Ramada621502016-02-05 22:32:34 +0530300 */
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530301 featureStatement : FEATURE_KEYWORD string (STMTEND | LEFT_CURLY_BRACE featureBody RIGHT_CURLY_BRACE);
Vidyashree Rama528ef302016-06-30 14:31:18 +0530302 featureBody : (ifFeatureStatement | statusStatement | descriptionStatement
303 | referenceStatement | compilerAnnotationStatement)* ;
Vidyashree Ramada621502016-02-05 22:32:34 +0530304
305 /**
306 * data-def-stmt = container-stmt /
307 * leaf-stmt /
308 * leaf-list-stmt /
309 * list-stmt /
310 * choice-stmt /
311 * anyxml-stmt /
312 * uses-stmt
313 */
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530314 dataDefStatement : containerStatement
315 | leafStatement
316 | leafListStatement
317 | listStatement
318 | choiceStatement
Vidyashree Rama1db15562016-05-17 16:16:15 +0530319 | anyxmlStatement
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530320 | usesStatement;
Vidyashree Ramada621502016-02-05 22:32:34 +0530321
322 /**
323 * if-feature-stmt = if-feature-keyword sep identifier-ref-arg-str
324 * optsep stmtend
325 */
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530326 ifFeatureStatement : IF_FEATURE_KEYWORD string STMTEND;
Vidyashree Ramada621502016-02-05 22:32:34 +0530327
328 /**
329 * units-stmt = units-keyword sep string optsep stmtend
330 */
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530331 unitsStatement : UNITS_KEYWORD string STMTEND;
Vidyashree Ramada621502016-02-05 22:32:34 +0530332
333 /**
334 * typedef-stmt = typedef-keyword sep identifier-arg-str optsep
335 * "{" stmtsep
336 * ;; these stmts can appear in any order
337 * type-stmt stmtsep
338 * [units-stmt stmtsep]
339 * [default-stmt stmtsep]
340 * [status-stmt stmtsep]
341 * [description-stmt stmtsep]
342 * [reference-stmt stmtsep]
Vidyashree Rama528ef302016-06-30 14:31:18 +0530343 * [compiler-annotation-stmt stmtsep]
Vidyashree Ramada621502016-02-05 22:32:34 +0530344 * "}"
345 * TODO : 0..1 occurance to be validated in listener
346 */
Vidyashree Rama468f8282016-03-04 19:08:35 +0530347 typedefStatement : TYPEDEF_KEYWORD identifier LEFT_CURLY_BRACE
Vidyashree Rama528ef302016-06-30 14:31:18 +0530348 (typeStatement | unitsStatement | defaultStatement | statusStatement | descriptionStatement
349 | compilerAnnotationStatement | referenceStatement)*
Vidyashree Ramada621502016-02-05 22:32:34 +0530350 RIGHT_CURLY_BRACE;
351
352 /**
353 * type-stmt = type-keyword sep identifier-ref-arg-str optsep
354 * (";" /
355 * "{" stmtsep
356 * type-body-stmts
357 * "}")
358 */
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530359 typeStatement : TYPE_KEYWORD string (STMTEND | LEFT_CURLY_BRACE typeBodyStatements RIGHT_CURLY_BRACE);
Vidyashree Ramada621502016-02-05 22:32:34 +0530360
361 /**
362 * type-body-stmts = numerical-restrictions /
363 * decimal64-specification /
364 * string-restrictions /
365 * enum-specification /
366 * leafref-specification /
367 * identityref-specification /
368 * instance-identifier-specification /
369 * bits-specification /
370 * union-specification
Vidyashree Rama1db15562016-05-17 16:16:15 +0530371 *
Vidyashree Ramada621502016-02-05 22:32:34 +0530372 */
Vidyashree Rama1db15562016-05-17 16:16:15 +0530373 typeBodyStatements : numericalRestrictions | decimal64Specification | stringRestrictions | enumSpecification
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530374 | leafrefSpecification | identityrefSpecification | instanceIdentifierSpecification
375 | bitsSpecification | unionSpecification;
Vidyashree Ramada621502016-02-05 22:32:34 +0530376
377 /**
Vidyashree Rama1db15562016-05-17 16:16:15 +0530378 * fraction-digits-stmt = fraction-digits-keyword sep
379 * fraction-digits-arg-str stmtend
380 *
381 * fraction-digits-arg-str = < a string that matches the rule
382 * fraction-digits-arg >
383 *
384 * fraction-digits-arg = ("1" ["0" / "1" / "2" / "3" / "4" /
385 * "5" / "6" / "7" / "8"])
386 * / "2" / "3" / "4" / "5" / "6" / "7" / "8" / "9"
387 */
388 decimal64Specification : FRACTION_DIGITS_KEYWORD fraction STMTEND;
389
390 /**
Vidyashree Ramada621502016-02-05 22:32:34 +0530391 * numerical-restrictions = range-stmt stmtsep
392 */
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530393 numericalRestrictions : rangeStatement;
Vidyashree Ramada621502016-02-05 22:32:34 +0530394
395 /**
396 * range-stmt = range-keyword sep range-arg-str optsep
397 * (";" /
398 * "{" stmtsep
399 * ;; these stmts can appear in any order
400 * [error-message-stmt stmtsep]
401 * [error-app-tag-stmt stmtsep]
402 * [description-stmt stmtsep]
403 * [reference-stmt stmtsep]
404 * "}")
405 */
Vidyashree Rama8a6b1282016-03-15 10:18:25 +0530406 rangeStatement : RANGE_KEYWORD range (STMTEND | LEFT_CURLY_BRACE commonStatements RIGHT_CURLY_BRACE);
Vidyashree Ramada621502016-02-05 22:32:34 +0530407
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530408 commonStatements : errorMessageStatement? errorAppTagStatement? descriptionStatement? referenceStatement?
409 | errorMessageStatement? errorAppTagStatement? referenceStatement? descriptionStatement?
410 | errorMessageStatement? descriptionStatement? errorAppTagStatement? referenceStatement?
411 | errorMessageStatement? descriptionStatement? referenceStatement? errorAppTagStatement?
412 | errorMessageStatement? referenceStatement? errorAppTagStatement? descriptionStatement?
413 | errorMessageStatement? referenceStatement? descriptionStatement? errorAppTagStatement?
414 | errorAppTagStatement? errorMessageStatement? descriptionStatement? referenceStatement?
415 | errorAppTagStatement? errorMessageStatement? referenceStatement? descriptionStatement?
416 | errorAppTagStatement? descriptionStatement? descriptionStatement? errorMessageStatement?
417 | errorAppTagStatement? descriptionStatement? errorMessageStatement? descriptionStatement?
418 | errorAppTagStatement? referenceStatement? errorMessageStatement? descriptionStatement?
419 | errorAppTagStatement? referenceStatement? descriptionStatement? errorMessageStatement?
420 | descriptionStatement? errorMessageStatement? errorAppTagStatement? referenceStatement?
421 | descriptionStatement? errorMessageStatement? referenceStatement? errorAppTagStatement?
422 | descriptionStatement? errorAppTagStatement? errorMessageStatement? referenceStatement?
423 | descriptionStatement? errorAppTagStatement? referenceStatement? errorMessageStatement?
424 | descriptionStatement? referenceStatement? errorMessageStatement? errorAppTagStatement?
425 | descriptionStatement? referenceStatement? errorAppTagStatement? errorMessageStatement?
426 | referenceStatement? errorMessageStatement? descriptionStatement? errorAppTagStatement?
427 | referenceStatement? errorMessageStatement? errorAppTagStatement? descriptionStatement?
428 | referenceStatement? errorAppTagStatement? descriptionStatement? errorMessageStatement?
429 | referenceStatement? errorAppTagStatement? errorMessageStatement? descriptionStatement?
430 | referenceStatement? descriptionStatement? errorMessageStatement? errorAppTagStatement?
431 | referenceStatement? descriptionStatement? errorAppTagStatement? errorMessageStatement?
Vidyashree Ramada621502016-02-05 22:32:34 +0530432 ;
433
434 /**
435 * string-restrictions = ;; these stmts can appear in any order
436 * [length-stmt stmtsep]
437 * *(pattern-stmt stmtsep)
438 */
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530439 stringRestrictions : ((lengthStatement)? (patternStatement)*) | ((patternStatement)* (lengthStatement)?);
Vidyashree Ramada621502016-02-05 22:32:34 +0530440
441 /**
442 * length-stmt = length-keyword sep length-arg-str optsep
443 * (";" /
444 * "{" stmtsep
445 * ;; these stmts can appear in any order
446 * [error-message-stmt stmtsep]
447 * [error-app-tag-stmt stmtsep]
448 * [description-stmt stmtsep]
449 * [reference-stmt stmtsep]
450 * "}")
451 */
Vidyashree Rama8a6b1282016-03-15 10:18:25 +0530452 lengthStatement : LENGTH_KEYWORD length
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530453 (STMTEND | LEFT_CURLY_BRACE commonStatements RIGHT_CURLY_BRACE);
Vidyashree Ramada621502016-02-05 22:32:34 +0530454
455 /**
456 * pattern-stmt = pattern-keyword sep string optsep
457 * (";" /
458 * "{" stmtsep
459 * ;; these stmts can appear in any order
460 * [error-message-stmt stmtsep]
461 * [error-app-tag-stmt stmtsep]
462 * [description-stmt stmtsep]
463 * [reference-stmt stmtsep]
464 * "}")
465 */
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530466 patternStatement : PATTERN_KEYWORD string (STMTEND | LEFT_CURLY_BRACE commonStatements RIGHT_CURLY_BRACE);
Vidyashree Ramada621502016-02-05 22:32:34 +0530467
468 /**
469 * default-stmt = default-keyword sep string stmtend
470 */
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530471 defaultStatement : DEFAULT_KEYWORD string STMTEND;
Vidyashree Ramada621502016-02-05 22:32:34 +0530472
473 /**
474 * enum-specification = 1*(enum-stmt stmtsep)
475 */
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530476 enumSpecification : enumStatement+;
Vidyashree Ramada621502016-02-05 22:32:34 +0530477
478 /**
479 * enum-stmt = enum-keyword sep string optsep
480 * (";" /
481 * "{" stmtsep
482 * ;; these stmts can appear in any order
483 * [value-stmt stmtsep]
484 * [status-stmt stmtsep]
485 * [description-stmt stmtsep]
486 * [reference-stmt stmtsep]
487 * "}")
488 */
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530489 enumStatement : ENUM_KEYWORD string (STMTEND | LEFT_CURLY_BRACE enumStatementBody RIGHT_CURLY_BRACE);
Vidyashree Ramada621502016-02-05 22:32:34 +0530490
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530491 enumStatementBody : valueStatement? statusStatement? descriptionStatement? referenceStatement?
492 | valueStatement? statusStatement? referenceStatement? descriptionStatement?
493 | valueStatement? descriptionStatement? statusStatement? referenceStatement?
494 | valueStatement? descriptionStatement? referenceStatement? statusStatement?
495 | valueStatement? referenceStatement? statusStatement? descriptionStatement?
496 | valueStatement? referenceStatement? descriptionStatement? statusStatement?
497 | statusStatement? valueStatement? descriptionStatement? referenceStatement?
498 | statusStatement? valueStatement? referenceStatement? descriptionStatement?
499 | statusStatement? descriptionStatement? descriptionStatement? valueStatement?
500 | statusStatement? descriptionStatement? valueStatement? descriptionStatement?
501 | statusStatement? referenceStatement? valueStatement? descriptionStatement?
502 | statusStatement? referenceStatement? descriptionStatement? valueStatement?
503 | descriptionStatement? valueStatement? statusStatement? referenceStatement?
504 | descriptionStatement? valueStatement? referenceStatement? statusStatement?
505 | descriptionStatement? statusStatement? valueStatement? referenceStatement?
506 | descriptionStatement? statusStatement? referenceStatement? valueStatement?
507 | descriptionStatement? referenceStatement? valueStatement? statusStatement?
508 | descriptionStatement? referenceStatement? statusStatement? valueStatement?
509 | referenceStatement? valueStatement? descriptionStatement? statusStatement?
510 | referenceStatement? valueStatement? statusStatement? descriptionStatement?
511 | referenceStatement? statusStatement? descriptionStatement? valueStatement?
512 | referenceStatement? statusStatement? valueStatement? descriptionStatement?
513 | referenceStatement? descriptionStatement? valueStatement? statusStatement?
514 | referenceStatement? descriptionStatement? statusStatement? valueStatement?
Vidyashree Ramada621502016-02-05 22:32:34 +0530515 ;
516
517 /**
518 * leafref-specification =
519 * ;; these stmts can appear in any order
520 * path-stmt stmtsep
521 * [require-instance-stmt stmtsep]
522 */
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530523 leafrefSpecification : (pathStatement (requireInstanceStatement)?) | ((requireInstanceStatement)? pathStatement);
Vidyashree Ramada621502016-02-05 22:32:34 +0530524
525 /**
526 * path-stmt = path-keyword sep path-arg-str stmtend
527 */
Vidyashree Rama8a6b1282016-03-15 10:18:25 +0530528 pathStatement : PATH_KEYWORD path STMTEND;
Vidyashree Ramada621502016-02-05 22:32:34 +0530529
530 /**
531 * require-instance-stmt = require-instance-keyword sep
532 * require-instance-arg-str stmtend
533 * require-instance-arg-str = < a string that matches the rule
534 * require-instance-arg >
535 * require-instance-arg = true-keyword / false-keyword
536 */
janani be18b5342016-07-13 21:06:41 +0530537 requireInstanceStatement : REQUIRE_INSTANCE_KEYWORD requireInstance STMTEND;
Vidyashree Ramada621502016-02-05 22:32:34 +0530538
539 /**
540 * instance-identifier-specification =
541 * [require-instance-stmt stmtsep]
542 */
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530543 instanceIdentifierSpecification : requireInstanceStatement?;
Vidyashree Ramada621502016-02-05 22:32:34 +0530544
545 /**
546 * identityref-specification =
547 * base-stmt stmtsep
548 */
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530549 identityrefSpecification : baseStatement;
Vidyashree Ramada621502016-02-05 22:32:34 +0530550
551 /**
552 * union-specification = 1*(type-stmt stmtsep)
553 */
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530554 unionSpecification : typeStatement+;
Vidyashree Ramada621502016-02-05 22:32:34 +0530555
556 /**
557 * bits-specification = 1*(bit-stmt stmtsep)
558 */
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530559 bitsSpecification : bitStatement+;
Vidyashree Ramada621502016-02-05 22:32:34 +0530560
561 /**
562 * bit-stmt = bit-keyword sep identifier-arg-str optsep
563 * (";" /
564 * "{" stmtsep
565 * ;; these stmts can appear in any order
566 * [position-stmt stmtsep]
567 * [status-stmt stmtsep]
568 * [description-stmt stmtsep]
569 * [reference-stmt stmtsep]
570 * "}"
571 * "}")
572 */
Vidyashree Rama468f8282016-03-04 19:08:35 +0530573 bitStatement : BIT_KEYWORD identifier (STMTEND | LEFT_CURLY_BRACE bitBodyStatement RIGHT_CURLY_BRACE);
Vidyashree Ramada621502016-02-05 22:32:34 +0530574
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530575 bitBodyStatement : positionStatement? statusStatement? descriptionStatement? referenceStatement?
576 | positionStatement? statusStatement? referenceStatement? descriptionStatement?
577 | positionStatement? descriptionStatement? statusStatement? referenceStatement?
578 | positionStatement? descriptionStatement? referenceStatement? statusStatement?
579 | positionStatement? referenceStatement? statusStatement? descriptionStatement?
580 | positionStatement? referenceStatement? descriptionStatement? statusStatement?
581 | statusStatement? positionStatement? descriptionStatement? referenceStatement?
582 | statusStatement? positionStatement? referenceStatement? descriptionStatement?
583 | statusStatement? descriptionStatement? descriptionStatement? positionStatement?
584 | statusStatement? descriptionStatement? positionStatement? descriptionStatement?
585 | statusStatement? referenceStatement? positionStatement? descriptionStatement?
586 | statusStatement? referenceStatement? descriptionStatement? positionStatement?
587 | descriptionStatement? positionStatement? statusStatement? referenceStatement?
588 | descriptionStatement? positionStatement? referenceStatement? statusStatement?
589 | descriptionStatement? statusStatement? positionStatement? referenceStatement?
590 | descriptionStatement? statusStatement? referenceStatement? positionStatement?
591 | descriptionStatement? referenceStatement? positionStatement? statusStatement?
592 | descriptionStatement? referenceStatement? statusStatement? positionStatement?
593 | referenceStatement? positionStatement? descriptionStatement? statusStatement?
594 | referenceStatement? positionStatement? statusStatement? descriptionStatement?
595 | referenceStatement? statusStatement? descriptionStatement? positionStatement?
596 | referenceStatement? statusStatement? positionStatement? descriptionStatement?
597 | referenceStatement? descriptionStatement? positionStatement? statusStatement?
598 | referenceStatement? descriptionStatement? statusStatement? positionStatement?
Vidyashree Ramada621502016-02-05 22:32:34 +0530599 ;
600
601 /**
602 * position-stmt = position-keyword sep
603 * position-value-arg-str stmtend
604 * position-value-arg-str = < a string that matches the rule
605 * position-value-arg >
606 * position-value-arg = non-negative-integer-value
607 */
Vidyashree Rama8a6b1282016-03-15 10:18:25 +0530608 positionStatement : POSITION_KEYWORD position STMTEND;
Vidyashree Ramada621502016-02-05 22:32:34 +0530609
610 /**
611 * status-stmt = status-keyword sep status-arg-str stmtend
612 * status-arg-str = < a string that matches the rule
613 * status-arg >
614 * status-arg = current-keyword /
615 * obsolete-keyword /
616 * deprecated-keyword
617 */
Vidyashree Rama8a6b1282016-03-15 10:18:25 +0530618 statusStatement : STATUS_KEYWORD status STMTEND;
Vidyashree Ramada621502016-02-05 22:32:34 +0530619
620 /**
621 * config-stmt = config-keyword sep
622 * config-arg-str stmtend
623 * config-arg-str = < a string that matches the rule
624 * config-arg >
625 * config-arg = true-keyword / false-keyword
626 */
Vidyashree Rama8a6b1282016-03-15 10:18:25 +0530627 configStatement : CONFIG_KEYWORD config STMTEND;
Vidyashree Ramada621502016-02-05 22:32:34 +0530628
629 /**
630 * mandatory-stmt = mandatory-keyword sep
631 * mandatory-arg-str stmtend
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530632 *
Vidyashree Ramada621502016-02-05 22:32:34 +0530633 * mandatory-arg-str = < a string that matches the rule
634 * mandatory-arg >
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530635 *
636 * mandatory-arg = true-keyword / false-keyword
Vidyashree Ramada621502016-02-05 22:32:34 +0530637 */
Vidyashree Rama8a6b1282016-03-15 10:18:25 +0530638 mandatoryStatement : MANDATORY_KEYWORD mandatory STMTEND;
Vidyashree Ramada621502016-02-05 22:32:34 +0530639
640 /**
641 * presence-stmt = presence-keyword sep string stmtend
642 */
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530643 presenceStatement : PRESENCE_KEYWORD string STMTEND;
Vidyashree Ramada621502016-02-05 22:32:34 +0530644
645 /**
646 * ordered-by-stmt = ordered-by-keyword sep
647 * ordered-by-arg-str stmtend
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530648 *
Vidyashree Ramada621502016-02-05 22:32:34 +0530649 * ordered-by-arg-str = < a string that matches the rule
650 * ordered-by-arg >
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530651 *
Vidyashree Ramada621502016-02-05 22:32:34 +0530652 * ordered-by-arg = user-keyword / system-keyword
653 */
Vidyashree Rama8a6b1282016-03-15 10:18:25 +0530654 orderedByStatement : ORDERED_BY_KEYWORD orderedBy STMTEND;
Vidyashree Ramada621502016-02-05 22:32:34 +0530655
656 /**
657 * must-stmt = must-keyword sep string optsep
658 * (";" /
659 * "{" stmtsep
660 * ;; these stmts can appear in any order
661 * [error-message-stmt stmtsep]
662 * [error-app-tag-stmt stmtsep]
663 * [description-stmt stmtsep]
664 * [reference-stmt stmtsep]
665 * "}")
666 */
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530667 mustStatement : MUST_KEYWORD string (STMTEND | LEFT_CURLY_BRACE commonStatements RIGHT_CURLY_BRACE);
Vidyashree Ramada621502016-02-05 22:32:34 +0530668
669 /**
670 * error-message-stmt = error-message-keyword sep string stmtend
671 */
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530672 errorMessageStatement : ERROR_MESSAGE_KEYWORD string STMTEND;
Vidyashree Ramada621502016-02-05 22:32:34 +0530673
674 /**
675 * error-app-tag-stmt = error-app-tag-keyword sep string stmtend
676 */
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530677 errorAppTagStatement : ERROR_APP_TAG_KEYWORD string STMTEND;
Vidyashree Ramada621502016-02-05 22:32:34 +0530678
679 /**
680 * min-elements-stmt = min-elements-keyword sep
681 * min-value-arg-str stmtend
682 * min-value-arg-str = < a string that matches the rule
683 * min-value-arg >
684 * min-value-arg = non-negative-integer-value
685 */
Vidyashree Rama8a6b1282016-03-15 10:18:25 +0530686 minElementsStatement : MIN_ELEMENTS_KEYWORD minValue STMTEND;
Vidyashree Ramada621502016-02-05 22:32:34 +0530687
688 /**
689 * max-elements-stmt = max-elements-keyword sep
690 * max-value-arg-str stmtend
691 * max-value-arg-str = < a string that matches the rule
692 * max-value-arg >
Vidyashree Ramada621502016-02-05 22:32:34 +0530693 * max-value-arg = unbounded-keyword /
694 * positive-integer-value
695 */
Vidyashree Rama8a6b1282016-03-15 10:18:25 +0530696 maxElementsStatement : MAX_ELEMENTS_KEYWORD maxValue STMTEND;
Vidyashree Ramada621502016-02-05 22:32:34 +0530697
698 /**
699 * value-stmt = value-keyword sep integer-value stmtend
700 */
Vidyashree Rama1db15562016-05-17 16:16:15 +0530701 valueStatement : VALUE_KEYWORD value STMTEND;
Vidyashree Ramada621502016-02-05 22:32:34 +0530702
703 /**
704 * grouping-stmt = grouping-keyword sep identifier-arg-str optsep
705 * (";" /
706 * "{" stmtsep
707 * ;; these stmts can appear in any order
708 * [status-stmt stmtsep]
709 * [description-stmt stmtsep]
710 * [reference-stmt stmtsep]
Vidyashree Rama528ef302016-06-30 14:31:18 +0530711 * [compiler-annotation-stmt stmtsep]
Vidyashree Ramada621502016-02-05 22:32:34 +0530712 * *((typedef-stmt /
713 * grouping-stmt) stmtsep)
714 * *(data-def-stmt stmtsep)
715 * "}")
716 * TODO : 0..1 occurance to be checked in listener
717 */
Vidyashree Rama468f8282016-03-04 19:08:35 +0530718 groupingStatement : GROUPING_KEYWORD identifier (STMTEND | LEFT_CURLY_BRACE
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530719 (statusStatement | descriptionStatement | referenceStatement | typedefStatement | groupingStatement
Vidyashree Rama528ef302016-06-30 14:31:18 +0530720 | dataDefStatement | compilerAnnotationStatement)* RIGHT_CURLY_BRACE);
Vidyashree Ramada621502016-02-05 22:32:34 +0530721
722 /**
723 * container-stmt = container-keyword sep identifier-arg-str optsep
724 * (";" /
725 * "{" stmtsep
726 * ;; these stmts can appear in any order
727 * [when-stmt stmtsep]
728 * *(if-feature-stmt stmtsep)
729 * *(must-stmt stmtsep)
730 * [presence-stmt stmtsep]
731 * [config-stmt stmtsep]
732 * [status-stmt stmtsep]
733 * [description-stmt stmtsep]
734 * [reference-stmt stmtsep]
Vidyashree Rama528ef302016-06-30 14:31:18 +0530735 * [compiler-annotation-stmt stmtsep]
Vidyashree Ramada621502016-02-05 22:32:34 +0530736 * *((typedef-stmt /
737 * grouping-stmt) stmtsep)
738 * *(data-def-stmt stmtsep)
739 * "}")
740 * TODO : 0..1 occurance to be checked in listener
741 */
Vidyashree Rama468f8282016-03-04 19:08:35 +0530742 containerStatement : CONTAINER_KEYWORD identifier
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530743 (STMTEND | LEFT_CURLY_BRACE (whenStatement | ifFeatureStatement | mustStatement | presenceStatement | configStatement
744 | statusStatement | descriptionStatement | referenceStatement | typedefStatement | groupingStatement
Vidyashree Rama528ef302016-06-30 14:31:18 +0530745 | dataDefStatement | compilerAnnotationStatement)* RIGHT_CURLY_BRACE);
Vidyashree Ramada621502016-02-05 22:32:34 +0530746
747 /**
748 * leaf-stmt = leaf-keyword sep identifier-arg-str optsep
749 * "{" stmtsep
750 * ;; these stmts can appear in any order
751 * [when-stmt stmtsep]
752 * *(if-feature-stmt stmtsep)
753 * type-stmt stmtsep
754 * [units-stmt stmtsep]
755 * *(must-stmt stmtsep)
756 * [default-stmt stmtsep]
757 * [config-stmt stmtsep]
758 * [mandatory-stmt stmtsep]
759 * [status-stmt stmtsep]
760 * [description-stmt stmtsep]
761 * [reference-stmt stmtsep]
762 * "}"
763 * TODO : 0..1 occurance to be checked in listener
764 */
Vidyashree Rama468f8282016-03-04 19:08:35 +0530765 leafStatement : LEAF_KEYWORD identifier LEFT_CURLY_BRACE (whenStatement | ifFeatureStatement | typeStatement | unitsStatement
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530766 | mustStatement | defaultStatement | configStatement | mandatoryStatement | statusStatement | descriptionStatement
Vidyashree Rama528ef302016-06-30 14:31:18 +0530767 | referenceStatement | compilerAnnotationStatement)* RIGHT_CURLY_BRACE;
Vidyashree Ramada621502016-02-05 22:32:34 +0530768
769 /**
770 * leaf-list-stmt = leaf-list-keyword sep identifier-arg-str optsep
771 * "{" stmtsep
772 * ;; these stmts can appear in any order
773 * [when-stmt stmtsep]
774 * *(if-feature-stmt stmtsep)
775 * type-stmt stmtsep
776 * [units-stmt stmtsep]
777 * *(must-stmt stmtsep)
778 * [config-stmt stmtsep]
779 * [min-elements-stmt stmtsep]
780 * [max-elements-stmt stmtsep]
781 * [ordered-by-stmt stmtsep]
782 * [status-stmt stmtsep]
783 * [description-stmt stmtsep]
784 * [reference-stmt stmtsep]
785 * "}"
786 * TODO : 0..1 occurance to be checked in listener
787 */
Vidyashree Rama468f8282016-03-04 19:08:35 +0530788 leafListStatement : LEAF_LIST_KEYWORD identifier LEFT_CURLY_BRACE (whenStatement | ifFeatureStatement | typeStatement
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530789 | unitsStatement | mustStatement | configStatement | minElementsStatement | maxElementsStatement | orderedByStatement
Vidyashree Rama528ef302016-06-30 14:31:18 +0530790 | statusStatement | descriptionStatement | referenceStatement | compilerAnnotationStatement)* RIGHT_CURLY_BRACE;
Vidyashree Ramada621502016-02-05 22:32:34 +0530791
792 /**
793 * list-stmt = list-keyword sep identifier-arg-str optsep
794 * "{" stmtsep
795 * ;; these stmts can appear in any order
796 * [when-stmt stmtsep]
797 * *(if-feature-stmt stmtsep)
798 * *(must-stmt stmtsep)
799 * [key-stmt stmtsep]
800 * *(unique-stmt stmtsep)
801 * [config-stmt stmtsep]
802 * [min-elements-stmt stmtsep]
803 * [max-elements-stmt stmtsep]
804 * [ordered-by-stmt stmtsep]
805 * [status-stmt stmtsep]
806 * [description-stmt stmtsep]
807 * [reference-stmt stmtsep]
808 * *((typedef-stmt /
809 * grouping-stmt) stmtsep)
810 * 1*(data-def-stmt stmtsep)
811 * "}"
812 * TODO : 0..1 occurance to be checked in listener
813 */
Vidyashree Rama468f8282016-03-04 19:08:35 +0530814 listStatement : LIST_KEYWORD identifier LEFT_CURLY_BRACE (whenStatement | ifFeatureStatement | mustStatement | keyStatement
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530815 | uniqueStatement | configStatement | minElementsStatement | maxElementsStatement | orderedByStatement | statusStatement
Vidyashree Rama528ef302016-06-30 14:31:18 +0530816 | descriptionStatement | referenceStatement | typedefStatement | groupingStatement| dataDefStatement
817 | compilerAnnotationStatement)* RIGHT_CURLY_BRACE;
Vidyashree Ramada621502016-02-05 22:32:34 +0530818
819 /**
820 * key-stmt = key-keyword sep key-arg-str stmtend
821 */
Vidyashree Rama8a6b1282016-03-15 10:18:25 +0530822 keyStatement : KEY_KEYWORD key STMTEND;
Vidyashree Ramada621502016-02-05 22:32:34 +0530823
824 /**
825 * unique-stmt = unique-keyword sep unique-arg-str stmtend
826 */
Vidyashree Rama8a6b1282016-03-15 10:18:25 +0530827 uniqueStatement: UNIQUE_KEYWORD unique STMTEND;
Vidyashree Ramada621502016-02-05 22:32:34 +0530828
829 /**
830 * choice-stmt = choice-keyword sep identifier-arg-str optsep
831 * (";" /
832 * "{" stmtsep
833 * ;; these stmts can appear in any order
834 * [when-stmt stmtsep]
835 * *(if-feature-stmt stmtsep)
836 * [default-stmt stmtsep]
837 * [config-stmt stmtsep]
838 * [mandatory-stmt stmtsep]
839 * [status-stmt stmtsep]
840 * [description-stmt stmtsep]
841 * [reference-stmt stmtsep]
842 * *((short-case-stmt / case-stmt) stmtsep)
843 * "}")
844 * TODO : 0..1 occurance to be checked in listener
845 */
Vidyashree Rama468f8282016-03-04 19:08:35 +0530846 choiceStatement : CHOICE_KEYWORD identifier (STMTEND | LEFT_CURLY_BRACE (whenStatement | ifFeatureStatement | defaultStatement
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530847 | configStatement | mandatoryStatement | statusStatement | descriptionStatement | referenceStatement | shortCaseStatement
Vidyashree Rama528ef302016-06-30 14:31:18 +0530848 | caseStatement | compilerAnnotationStatement)* RIGHT_CURLY_BRACE);
Vidyashree Ramada621502016-02-05 22:32:34 +0530849
850 /**
851 * short-case-stmt = container-stmt /
852 * leaf-stmt /
853 * leaf-list-stmt /
854 * list-stmt /
855 * anyxml-stmt
856 */
Vidyashree Rama1db15562016-05-17 16:16:15 +0530857 shortCaseStatement : containerStatement | leafStatement | leafListStatement | listStatement | anyxmlStatement;
Vidyashree Ramada621502016-02-05 22:32:34 +0530858
859 /**
860 * case-stmt = case-keyword sep identifier-arg-str optsep
861 * (";" /
862 * "{" stmtsep
863 * ;; these stmts can appear in any order
864 * [when-stmt stmtsep]
865 * *(if-feature-stmt stmtsep)
866 * [status-stmt stmtsep]
867 * [description-stmt stmtsep]
868 * [reference-stmt stmtsep]
869 * *(data-def-stmt stmtsep)
870 * "}")
871 * TODO : 0..1 occurance to be checked in listener
872 */
Vidyashree Rama468f8282016-03-04 19:08:35 +0530873 caseStatement : CASE_KEYWORD identifier (STMTEND | LEFT_CURLY_BRACE (whenStatement | ifFeatureStatement | statusStatement
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530874 | descriptionStatement | referenceStatement | dataDefStatement)* RIGHT_CURLY_BRACE);
Vidyashree Ramada621502016-02-05 22:32:34 +0530875
876 /**
Vidyashree Rama1db15562016-05-17 16:16:15 +0530877 * anyxml-stmt = anyxml-keyword sep identifier-arg-str optsep
878 * (";" /
879 * "{" stmtsep
880 * ;; these stmts can appear in any order
881 * [when-stmt stmtsep]
882 * *(if-feature-stmt stmtsep)
883 * *(must-stmt stmtsep)
884 * [config-stmt stmtsep]
885 * [mandatory-stmt stmtsep]
886 * [status-stmt stmtsep]
887 * [description-stmt stmtsep]
888 * [reference-stmt stmtsep]
889 * "}")
890 */
891 anyxmlStatement : ANYXML_KEYWORD identifier (STMTEND | LEFT_CURLY_BRACE (whenStatement | ifFeatureStatement
892 | mustStatement | configStatement | mandatoryStatement | statusStatement | descriptionStatement
Vidyashree Rama528ef302016-06-30 14:31:18 +0530893 | referenceStatement | compilerAnnotationStatement)* RIGHT_CURLY_BRACE);
Vidyashree Rama1db15562016-05-17 16:16:15 +0530894
895 /**
Vidyashree Ramada621502016-02-05 22:32:34 +0530896 * uses-stmt = uses-keyword sep identifier-ref-arg-str optsep
897 * (";" /
898 * "{" stmtsep
899 * ;; these stmts can appear in any order
900 * [when-stmt stmtsep]
901 * *(if-feature-stmt stmtsep)
902 * [status-stmt stmtsep]
903 * [description-stmt stmtsep]
904 * [reference-stmt stmtsep]
Vidyashree Rama528ef302016-06-30 14:31:18 +0530905 * [compiler-annotation-stmt stmtsep]
Vidyashree Ramada621502016-02-05 22:32:34 +0530906 * *(refine-stmt stmtsep)
907 * *(uses-augment-stmt stmtsep)
908 * "}")
909 * TODO : 0..1 occurance to be checked in listener
910 */
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530911 usesStatement : USES_KEYWORD string (STMTEND | LEFT_CURLY_BRACE (whenStatement | ifFeatureStatement | statusStatement
Vidyashree Rama528ef302016-06-30 14:31:18 +0530912 | descriptionStatement | referenceStatement | refineStatement | augmentStatement
913 | compilerAnnotationStatement)* RIGHT_CURLY_BRACE);
Vidyashree Ramada621502016-02-05 22:32:34 +0530914
915 /**
916 * refine-stmt = refine-keyword sep refine-arg-str optsep
917 * (";" /
918 * "{" stmtsep
919 * (refine-container-stmts /
920 * refine-leaf-stmts /
921 * refine-leaf-list-stmts /
922 * refine-list-stmts /
923 * refine-choice-stmts /
924 * refine-case-stmts /
925 * refine-anyxml-stmts)
926 * "}")
927 */
Vidyashree Rama8a6b1282016-03-15 10:18:25 +0530928 refineStatement : REFINE_KEYWORD refine (STMTEND | LEFT_CURLY_BRACE (refineContainerStatements
929 | refineLeafStatements | refineLeafListStatements | refineListStatements | refineChoiceStatements
Vidyashree Rama1db15562016-05-17 16:16:15 +0530930 | refineCaseStatements | refineAnyxmlStatements) RIGHT_CURLY_BRACE);
Vidyashree Ramada621502016-02-05 22:32:34 +0530931
932 /**
933 * refine-container-stmts =
934 * ;; these stmts can appear in any order
935 * *(must-stmt stmtsep)
936 * [presence-stmt stmtsep]
937 * [config-stmt stmtsep]
938 * [description-stmt stmtsep]
939 * [reference-stmt stmtsep]
940 * TODO : 0..1 occurance to be checked in listener
941 */
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530942 refineContainerStatements : (mustStatement | presenceStatement | configStatement | descriptionStatement | referenceStatement)* ;
Vidyashree Ramada621502016-02-05 22:32:34 +0530943
944 /**
945 * refine-leaf-stmts = ;; these stmts can appear in any order
946 * *(must-stmt stmtsep)
947 * [default-stmt stmtsep]
948 * [config-stmt stmtsep]
949 * [mandatory-stmt stmtsep]
950 * [description-stmt stmtsep]
951 * [reference-stmt stmtsep]
952 * TODO : 0..1 occurance to be checked in listener
953 */
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530954 refineLeafStatements : (mustStatement | defaultStatement | configStatement | mandatoryStatement | descriptionStatement | referenceStatement)*;
Vidyashree Ramada621502016-02-05 22:32:34 +0530955
956 /**
957 * refine-leaf-list-stmts =
958 * ;; these stmts can appear in any order
959 * *(must-stmt stmtsep)
960 * [config-stmt stmtsep]
961 * [min-elements-stmt stmtsep]
962 * [max-elements-stmt stmtsep]
963 * [description-stmt stmtsep]
964 * [reference-stmt stmtsep]
965 * TODO : 0..1 occurance to be checked in listener
966 */
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530967 refineLeafListStatements : (mustStatement | configStatement | minElementsStatement | maxElementsStatement | descriptionStatement
968 | referenceStatement)*;
Vidyashree Ramada621502016-02-05 22:32:34 +0530969
970 /**
971 * refine-list-stmts = ;; these stmts can appear in any order
972 * *(must-stmt stmtsep)
973 * [config-stmt stmtsep]
974 * [min-elements-stmt stmtsep]
975 * [max-elements-stmt stmtsep]
976 * [description-stmt stmtsep]
977 * [reference-stmt stmtsep]
978 * TODO : 0..1 occurance to be checked in listener
979 */
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530980 refineListStatements : (mustStatement | configStatement | minElementsStatement | maxElementsStatement | descriptionStatement
981 | referenceStatement)*;
Vidyashree Ramada621502016-02-05 22:32:34 +0530982
983 /**
984 * refine-choice-stmts = ;; these stmts can appear in any order
985 * [default-stmt stmtsep]
986 * [config-stmt stmtsep]
987 * [mandatory-stmt stmtsep]
988 * [description-stmt stmtsep]
989 * [reference-stmt stmtsep]
990 * TODO : 0..1 occurance to be checked in listener
991 */
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530992 refineChoiceStatements : (defaultStatement | configStatement | mandatoryStatement | descriptionStatement | referenceStatement)*;
Vidyashree Ramada621502016-02-05 22:32:34 +0530993
994 /**
995 * refine-case-stmts = ;; these stmts can appear in any order
996 * [description-stmt stmtsep]
997 * [reference-stmt stmtsep]
998 *
999 */
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +05301000 refineCaseStatements : (descriptionStatement | referenceStatement)? | (referenceStatement | descriptionStatement)?;
Vidyashree Ramada621502016-02-05 22:32:34 +05301001
1002 /**
Vidyashree Rama1db15562016-05-17 16:16:15 +05301003 * refine-anyxml-stmts = ;; these stmts can appear in any order
1004 * *(must-stmt stmtsep)
1005 * [config-stmt stmtsep]
1006 * [mandatory-stmt stmtsep]
1007 * [description-stmt stmtsep]
1008 * [reference-stmt stmtsep]
Vidyashree Ramada621502016-02-05 22:32:34 +05301009 */
Vidyashree Rama1db15562016-05-17 16:16:15 +05301010 refineAnyxmlStatements : (mustStatement | configStatement | mandatoryStatement | descriptionStatement
1011 | referenceStatement)*;
Vidyashree Ramada621502016-02-05 22:32:34 +05301012
1013 /**
1014 * augment-stmt = augment-keyword sep augment-arg-str optsep
1015 * "{" stmtsep
1016 * ;; these stmts can appear in any order
1017 * [when-stmt stmtsep]
1018 * *(if-feature-stmt stmtsep)
1019 * [status-stmt stmtsep]
1020 * [description-stmt stmtsep]
1021 * [reference-stmt stmtsep]
1022 * 1*((data-def-stmt stmtsep) /
1023 * (case-stmt stmtsep))
1024 * "}"
1025 * TODO : 0..1 occurance to be checked in listener
1026 */
Vidyashree Rama25bf4d02016-03-29 14:37:02 +05301027 augmentStatement : AUGMENT_KEYWORD augment LEFT_CURLY_BRACE (whenStatement | ifFeatureStatement | statusStatement
Vidyashree Rama528ef302016-06-30 14:31:18 +05301028 | descriptionStatement | referenceStatement | dataDefStatement | caseStatement
1029 | compilerAnnotationStatement)* RIGHT_CURLY_BRACE;
Vidyashree Ramada621502016-02-05 22:32:34 +05301030
1031 /**
1032 * when-stmt = when-keyword sep string optsep
1033 * (";" /
1034 * "{" stmtsep
1035 * ;; these stmts can appear in any order
1036 * [description-stmt stmtsep]
1037 * [reference-stmt stmtsep]
1038 * "}")
1039 *
1040 */
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +05301041 whenStatement : WHEN_KEYWORD string (STMTEND | LEFT_CURLY_BRACE ((descriptionStatement? referenceStatement?)
1042 | (referenceStatement? descriptionStatement?)) RIGHT_CURLY_BRACE);
Vidyashree Ramada621502016-02-05 22:32:34 +05301043
1044 /**
1045 * rpc-stmt = rpc-keyword sep identifier-arg-str optsep
1046 * (";" /
1047 * "{" stmtsep
1048 * ;; these stmts can appear in any order
1049 * *(if-feature-stmt stmtsep)
1050 * [status-stmt stmtsep]
1051 * [description-stmt stmtsep]
1052 * [reference-stmt stmtsep]
1053 * *((typedef-stmt /
1054 * grouping-stmt) stmtsep)
1055 * [input-stmt stmtsep]
1056 * [output-stmt stmtsep]
Vidyashree Rama528ef302016-06-30 14:31:18 +05301057 * [compiler-annotation-stmt stmtsep]
Vidyashree Ramada621502016-02-05 22:32:34 +05301058 * "}")
Vidyashree Rama528ef302016-06-30 14:31:18 +05301059 * TODO : 0..1 occurance to be checked in listener
Vidyashree Ramada621502016-02-05 22:32:34 +05301060 */
Vidyashree Rama528ef302016-06-30 14:31:18 +05301061 rpcStatement : RPC_KEYWORD identifier (STMTEND | LEFT_CURLY_BRACE (ifFeatureStatement | statusStatement
1062 | descriptionStatement | referenceStatement | typedefStatement | groupingStatement | inputStatement
1063 | outputStatement | compilerAnnotationStatement)* RIGHT_CURLY_BRACE);
Vidyashree Ramada621502016-02-05 22:32:34 +05301064
1065 /**
1066 * input-stmt = input-keyword optsep
1067 * "{" stmtsep
1068 * ;; these stmts can appear in any order
1069 * *((typedef-stmt /
1070 * grouping-stmt) stmtsep)
1071 * 1*(data-def-stmt stmtsep)
1072 * "}"
1073 */
janani b4e53f9b2016-04-26 18:49:20 +05301074 inputStatement : INPUT_KEYWORD LEFT_CURLY_BRACE (typedefStatement | groupingStatement | dataDefStatement)* RIGHT_CURLY_BRACE;
Vidyashree Ramada621502016-02-05 22:32:34 +05301075
1076 /**
1077 * output-stmt = output-keyword optsep
1078 * "{" stmtsep
1079 * ;; these stmts can appear in any order
1080 * *((typedef-stmt /
1081 * grouping-stmt) stmtsep)
1082 * 1*(data-def-stmt stmtsep)
1083 * "}"
1084 */
janani b4e53f9b2016-04-26 18:49:20 +05301085 outputStatement : OUTPUT_KEYWORD LEFT_CURLY_BRACE (typedefStatement | groupingStatement | dataDefStatement)* RIGHT_CURLY_BRACE;
Vidyashree Ramada621502016-02-05 22:32:34 +05301086
1087 /**
1088 * notification-stmt = notification-keyword sep
1089 * identifier-arg-str optsep
1090 * (";" /
1091 * "{" stmtsep
1092 * ;; these stmts can appear in any order
1093 * *(if-feature-stmt stmtsep)
1094 * [status-stmt stmtsep]
1095 * [description-stmt stmtsep]
1096 * [reference-stmt stmtsep]
Vidyashree Rama528ef302016-06-30 14:31:18 +05301097 * [compiler-annotation-stmt stmtsep]
Vidyashree Ramada621502016-02-05 22:32:34 +05301098 * *((typedef-stmt /
1099 * grouping-stmt) stmtsep)
1100 * *(data-def-stmt stmtsep)
1101 * "}")
1102 * TODO : 0..1 occurance to be checked in listener
1103 */
Vidyashree Rama506cbe12016-03-28 11:59:27 +05301104 notificationStatement : NOTIFICATION_KEYWORD identifier (STMTEND | LEFT_CURLY_BRACE (ifFeatureStatement
1105 | statusStatement | descriptionStatement | referenceStatement | typedefStatement
Vidyashree Rama528ef302016-06-30 14:31:18 +05301106 | groupingStatement | dataDefStatement | compilerAnnotationStatement)* RIGHT_CURLY_BRACE);
Vidyashree Ramada621502016-02-05 22:32:34 +05301107
1108 /**
1109 * deviation-stmt = deviation-keyword sep
1110 * deviation-arg-str optsep
1111 * "{" stmtsep
1112 * ;; these stmts can appear in any order
1113 * [description-stmt stmtsep]
1114 * [reference-stmt stmtsep]
Vidyashree Rama528ef302016-06-30 14:31:18 +05301115 * [compiler-annotation-stmt stmtsep]
Vidyashree Ramada621502016-02-05 22:32:34 +05301116 * (deviate-not-supported-stmt /
1117 * 1*(deviate-add-stmt /
1118 * deviate-replace-stmt /
1119 * deviate-delete-stmt))
1120 * "}"
1121 * TODO : 0..1 occurance to be checked in listener
1122 */
Vidyashree Rama8a6b1282016-03-15 10:18:25 +05301123 deviationStatement: DEVIATION_KEYWORD deviation LEFT_CURLY_BRACE (descriptionStatement | referenceStatement
1124 | deviateNotSupportedStatement | deviateAddStatement | deviateReplaceStatement
Vidyashree Rama528ef302016-06-30 14:31:18 +05301125 | deviateDeleteStatement | compilerAnnotationStatement)* RIGHT_CURLY_BRACE;
Vidyashree Ramada621502016-02-05 22:32:34 +05301126
1127 /**
1128 * deviate-not-supported-stmt =
1129 * deviate-keyword sep
1130 * not-supported-keyword optsep
1131 * (";" /
1132 * "{" stmtsep
1133 * "}")
1134 */
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +05301135 deviateNotSupportedStatement: DEVIATE_KEYWORD NOT_SUPPORTED_KEYWORD (STMTEND | LEFT_CURLY_BRACE RIGHT_CURLY_BRACE);
Vidyashree Ramada621502016-02-05 22:32:34 +05301136
1137 /**
1138 * deviate-add-stmt = deviate-keyword sep add-keyword optsep
1139 * (";" /
1140 * "{" stmtsep
1141 * [units-stmt stmtsep]
1142 * *(must-stmt stmtsep)
1143 * *(unique-stmt stmtsep)
1144 * [default-stmt stmtsep]
1145 * [config-stmt stmtsep]
1146 * [mandatory-stmt stmtsep]
1147 * [min-elements-stmt stmtsep]
1148 * [max-elements-stmt stmtsep]
1149 * "}")
1150 */
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +05301151 deviateAddStatement: DEVIATE_KEYWORD ADD_KEYWORD (STMTEND | (LEFT_CURLY_BRACE unitsStatement? mustStatement* uniqueStatement*
1152 defaultStatement? configStatement? mandatoryStatement? minElementsStatement? maxElementsStatement?
Vidyashree Ramada621502016-02-05 22:32:34 +05301153 RIGHT_CURLY_BRACE));
1154
1155 /**
1156 * deviate-delete-stmt = deviate-keyword sep delete-keyword optsep
1157 * (";" /
1158 * "{" stmtsep
1159 * [units-stmt stmtsep]
1160 * *(must-stmt stmtsep)
1161 * *(unique-stmt stmtsep)
1162 * [default-stmt stmtsep]
1163 * "}")
1164 */
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +05301165 deviateDeleteStatement: DEVIATE_KEYWORD DELETE_KEYWORD (STMTEND
1166 | (LEFT_CURLY_BRACE unitsStatement? mustStatement* uniqueStatement* defaultStatement? RIGHT_CURLY_BRACE));
Vidyashree Ramada621502016-02-05 22:32:34 +05301167
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +05301168 /**
Vidyashree Ramada621502016-02-05 22:32:34 +05301169 * deviate-replace-stmt = deviate-keyword sep replace-keyword optsep
1170 * (";" /
1171 * "{" stmtsep
1172 * [type-stmt stmtsep]
1173 * [units-stmt stmtsep]
1174 * [default-stmt stmtsep]
1175 * [config-stmt stmtsep]
1176 * [mandatory-stmt stmtsep]
1177 * [min-elements-stmt stmtsep]
1178 * [max-elements-stmt stmtsep]
1179 * "}")
1180 */
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +05301181 deviateReplaceStatement: DEVIATE_KEYWORD REPLACE_KEYWORD (STMTEND | (LEFT_CURLY_BRACE typeStatement? unitsStatement?
1182 defaultStatement? configStatement? mandatoryStatement? minElementsStatement?
1183 maxElementsStatement? RIGHT_CURLY_BRACE));
Vidyashree Ramada621502016-02-05 22:32:34 +05301184
Vidyashree Rama528ef302016-06-30 14:31:18 +05301185 /**
1186 * compiler-annotation-stmt = compiler-annotation-keyword optsep
1187 * "{" stmtsep
1188 * ;; these stmts can appear in any order
1189 * *(if-feature-stmt stmtsep)
1190 * [status-stmt stmtsep]
1191 * [units-stmt stmtsep]
1192 * [reference-stmt stmtsep]
1193 * 1*(compiler-annotation-stmt stmtsep)
1194 * "}"
1195 */
1196 compilerAnnotationStatement : COMPILER_ANNOTATION_KEYWORD LEFT_CURLY_BRACE (ifFeatureStatement | statusStatement
1197 | unitsStatement | referenceStatement | annotationStatement)*
1198 RIGHT_CURLY_BRACE;
1199
1200 /**
1201 * annotation-stmt = "@" annotation-type [annotation-parameter-specification] ";"
1202 */
1203 annotationStatement : annotationType annotationParameterSpecification? STMTEND;
1204
1205 /**
1206 * annotation-type = identifier
1207 */
1208 annotationType : annotationIdentifier;
1209
1210 /**
1211 * annotation-parameter-specification = "(" optsep annotation-parameter-specification-arg optsep ")"
1212 */
1213 annotationParameterSpecification : LEFT_ROUND_BRACE annotationParameterSpecificationArg RIGHT_ROUND_BRACE;
1214
1215 /**
1216 * annotation-parameter-specification-arg = annotation-para-type-value
1217 * / annotation-para-instance *("," annotation-para-instance)
1218 */
1219 annotationParameterSpecificationArg : annotationParaTypeValue
1220 | annotationParaInstance (COMMA annotationParaInstance)*;
1221
1222 /**
1223 * annotation-para-instance = annotation-para-type-identifier optsep "=" optsep annotation-para-type-value
1224 */
1225 annotationParaInstance : annotationParaTypeIdentifier EQUAL annotationParaTypeValue;
1226
1227 /**
1228 * annotation-para-type-identifier = identifier
1229 */
1230 annotationParaTypeIdentifier : identifier;
1231
1232 /**
1233 * annotation-para-type-value = identifier
1234 */
1235 annotationParaTypeValue : identifier;
1236
Gaurav Agrawalb5a1c132016-02-21 02:56:46 +05301237 string : STRING (PLUS STRING)*
1238 | IDENTIFIER
Vidyashree Rama8a6b1282016-03-15 10:18:25 +05301239 | INTEGER
1240 | yangConstruct;
Vidyashree Rama468f8282016-03-04 19:08:35 +05301241
Vidyashree Rama528ef302016-06-30 14:31:18 +05301242 annotationIdentifier : STRING (PLUS STRING)*
1243 | ANNOTATION_IDENTIFIER
1244 | IDENTIFIER
1245 | yangConstruct;
1246
Vidyashree Rama468f8282016-03-04 19:08:35 +05301247 identifier : STRING (PLUS STRING)*
Vidyashree Rama8a6b1282016-03-15 10:18:25 +05301248 | IDENTIFIER
1249 | yangConstruct;
Vidyashree Rama468f8282016-03-04 19:08:35 +05301250
1251 dateArgumentString : DATE_ARG
1252 | STRING (PLUS STRING)*;
Vidyashree Rama8a6b1282016-03-15 10:18:25 +05301253
1254 version : string;
1255
1256 range : string;
1257
1258 length : string;
1259
1260 path : string;
1261
1262 position : string;
1263
1264 status : string;
1265
1266 config : string;
1267
1268 mandatory : string;
1269
1270 orderedBy : string;
1271
1272 minValue : string;
1273
1274 maxValue : string;
1275
1276 key : string;
1277
1278 unique : string;
1279
1280 refine : string;
1281
janani be18b5342016-07-13 21:06:41 +05301282 requireInstance : string;
1283
Vidyashree Rama8a6b1282016-03-15 10:18:25 +05301284 augment : string;
1285
1286 deviation : string;
1287
Vidyashree Rama1db15562016-05-17 16:16:15 +05301288 value : string;
1289
1290 fraction : string;
1291
Vidyashree Rama8a6b1282016-03-15 10:18:25 +05301292 yangConstruct : ANYXML_KEYWORD | ARGUMENT_KEYWORD | AUGMENT_KEYWORD | BASE_KEYWORD | BELONGS_TO_KEYWORD
1293 | BIT_KEYWORD | CASE_KEYWORD | CHOICE_KEYWORD | CONFIG_KEYWORD | CONTACT_KEYWORD | CONTAINER_KEYWORD
1294 | DEFAULT_KEYWORD | DESCRIPTION_KEYWORD | ENUM_KEYWORD ERROR_APP_TAG_KEYWORD | ERROR_MESSAGE_KEYWORD
1295 | EXTENSION_KEYWORD | DEVIATION_KEYWORD | DEVIATE_KEYWORD | FEATURE_KEYWORD
1296 | FRACTION_DIGITS_KEYWORD | GROUPING_KEYWORD | IDENTITY_KEYWORD | IF_FEATURE_KEYWORD
1297 | IMPORT_KEYWORD | INCLUDE_KEYWORD | INPUT_KEYWORD | KEY_KEYWORD | LEAF_KEYWORD | LEAF_LIST_KEYWORD
1298 | LENGTH_KEYWORD | LIST_KEYWORD | MANDATORY_KEYWORD | MAX_ELEMENTS_KEYWORD | MIN_ELEMENTS_KEYWORD
1299 | MODULE_KEYWORD | MUST_KEYWORD | NAMESPACE_KEYWORD | NOTIFICATION_KEYWORD | ORDERED_BY_KEYWORD
1300 | ORGANIZATION_KEYWORD | OUTPUT_KEYWORD | PATH_KEYWORD | PATTERN_KEYWORD |POSITION_KEYWORD
1301 | PREFIX_KEYWORD | PRESENCE_KEYWORD | RANGE_KEYWORD | REFERENCE_KEYWORD | REFINE_KEYWORD
1302 | REQUIRE_INSTANCE_KEYWORD | REVISION_KEYWORD | REVISION_DATE_KEYWORD | RPC_KEYWORD
1303 | STATUS_KEYWORD | SUBMODULE_KEYWORD | TYPE_KEYWORD | TYPEDEF_KEYWORD | UNIQUE_KEYWORD
1304 | UNITS_KEYWORD | USES_KEYWORD | VALUE_KEYWORD | WHEN_KEYWORD | YANG_VERSION_KEYWORD
1305 | YIN_ELEMENT_KEYWORD | ADD_KEYWORD | CURRENT_KEYWORD | DELETE_KEYWORD | DEPRECATED_KEYWORD
1306 | FALSE_KEYWORD | MAX_KEYWORD | MIN_KEYWORD | NOT_SUPPORTED_KEYWORD | OBSOLETE_KEYWORD
Vidyashree Rama528ef302016-06-30 14:31:18 +05301307 | REPLACE_KEYWORD | SYSTEM_KEYWORD | TRUE_KEYWORD | UNBOUNDED_KEYWORD | USER_KEYWORD
1308 | COMPILER_ANNOTATION_KEYWORD;