blob: eb2336433838d4549d7df14243e8e3554fd2f491 [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 /**
Mahesh Poojary Huawei46fb4db2016-07-14 12:38:17 +0530378 * decimal64-specification = ;; these stmts can appear in any order
379 * fraction-digits-stmt
380 * [range-stmt]
381 */
382 decimal64Specification : fractionDigitStatement rangeStatement?;
383
384 /**
Vidyashree Rama1db15562016-05-17 16:16:15 +0530385 * fraction-digits-stmt = fraction-digits-keyword sep
386 * fraction-digits-arg-str stmtend
387 *
388 * fraction-digits-arg-str = < a string that matches the rule
389 * fraction-digits-arg >
390 *
391 * fraction-digits-arg = ("1" ["0" / "1" / "2" / "3" / "4" /
392 * "5" / "6" / "7" / "8"])
393 * / "2" / "3" / "4" / "5" / "6" / "7" / "8" / "9"
394 */
Mahesh Poojary Huawei46fb4db2016-07-14 12:38:17 +0530395 fractionDigitStatement : FRACTION_DIGITS_KEYWORD fraction STMTEND;
Vidyashree Rama1db15562016-05-17 16:16:15 +0530396
397 /**
Vidyashree Ramada621502016-02-05 22:32:34 +0530398 * numerical-restrictions = range-stmt stmtsep
399 */
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530400 numericalRestrictions : rangeStatement;
Vidyashree Ramada621502016-02-05 22:32:34 +0530401
402 /**
403 * range-stmt = range-keyword sep range-arg-str optsep
404 * (";" /
405 * "{" stmtsep
406 * ;; these stmts can appear in any order
407 * [error-message-stmt stmtsep]
408 * [error-app-tag-stmt stmtsep]
409 * [description-stmt stmtsep]
410 * [reference-stmt stmtsep]
411 * "}")
412 */
Vidyashree Rama8a6b1282016-03-15 10:18:25 +0530413 rangeStatement : RANGE_KEYWORD range (STMTEND | LEFT_CURLY_BRACE commonStatements RIGHT_CURLY_BRACE);
Vidyashree Ramada621502016-02-05 22:32:34 +0530414
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530415 commonStatements : errorMessageStatement? errorAppTagStatement? descriptionStatement? referenceStatement?
416 | errorMessageStatement? errorAppTagStatement? referenceStatement? descriptionStatement?
417 | errorMessageStatement? descriptionStatement? errorAppTagStatement? referenceStatement?
418 | errorMessageStatement? descriptionStatement? referenceStatement? errorAppTagStatement?
419 | errorMessageStatement? referenceStatement? errorAppTagStatement? descriptionStatement?
420 | errorMessageStatement? referenceStatement? descriptionStatement? errorAppTagStatement?
421 | errorAppTagStatement? errorMessageStatement? descriptionStatement? referenceStatement?
422 | errorAppTagStatement? errorMessageStatement? referenceStatement? descriptionStatement?
423 | errorAppTagStatement? descriptionStatement? descriptionStatement? errorMessageStatement?
424 | errorAppTagStatement? descriptionStatement? errorMessageStatement? descriptionStatement?
425 | errorAppTagStatement? referenceStatement? errorMessageStatement? descriptionStatement?
426 | errorAppTagStatement? referenceStatement? descriptionStatement? errorMessageStatement?
427 | descriptionStatement? errorMessageStatement? errorAppTagStatement? referenceStatement?
428 | descriptionStatement? errorMessageStatement? referenceStatement? errorAppTagStatement?
429 | descriptionStatement? errorAppTagStatement? errorMessageStatement? referenceStatement?
430 | descriptionStatement? errorAppTagStatement? referenceStatement? errorMessageStatement?
431 | descriptionStatement? referenceStatement? errorMessageStatement? errorAppTagStatement?
432 | descriptionStatement? referenceStatement? errorAppTagStatement? errorMessageStatement?
433 | referenceStatement? errorMessageStatement? descriptionStatement? errorAppTagStatement?
434 | referenceStatement? errorMessageStatement? errorAppTagStatement? descriptionStatement?
435 | referenceStatement? errorAppTagStatement? descriptionStatement? errorMessageStatement?
436 | referenceStatement? errorAppTagStatement? errorMessageStatement? descriptionStatement?
437 | referenceStatement? descriptionStatement? errorMessageStatement? errorAppTagStatement?
438 | referenceStatement? descriptionStatement? errorAppTagStatement? errorMessageStatement?
Vidyashree Ramada621502016-02-05 22:32:34 +0530439 ;
440
441 /**
442 * string-restrictions = ;; these stmts can appear in any order
443 * [length-stmt stmtsep]
444 * *(pattern-stmt stmtsep)
445 */
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530446 stringRestrictions : ((lengthStatement)? (patternStatement)*) | ((patternStatement)* (lengthStatement)?);
Vidyashree Ramada621502016-02-05 22:32:34 +0530447
448 /**
449 * length-stmt = length-keyword sep length-arg-str optsep
450 * (";" /
451 * "{" stmtsep
452 * ;; these stmts can appear in any order
453 * [error-message-stmt stmtsep]
454 * [error-app-tag-stmt stmtsep]
455 * [description-stmt stmtsep]
456 * [reference-stmt stmtsep]
457 * "}")
458 */
Vidyashree Rama8a6b1282016-03-15 10:18:25 +0530459 lengthStatement : LENGTH_KEYWORD length
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530460 (STMTEND | LEFT_CURLY_BRACE commonStatements RIGHT_CURLY_BRACE);
Vidyashree Ramada621502016-02-05 22:32:34 +0530461
462 /**
463 * pattern-stmt = pattern-keyword sep string optsep
464 * (";" /
465 * "{" stmtsep
466 * ;; these stmts can appear in any order
467 * [error-message-stmt stmtsep]
468 * [error-app-tag-stmt stmtsep]
469 * [description-stmt stmtsep]
470 * [reference-stmt stmtsep]
471 * "}")
472 */
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530473 patternStatement : PATTERN_KEYWORD string (STMTEND | LEFT_CURLY_BRACE commonStatements RIGHT_CURLY_BRACE);
Vidyashree Ramada621502016-02-05 22:32:34 +0530474
475 /**
476 * default-stmt = default-keyword sep string stmtend
477 */
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530478 defaultStatement : DEFAULT_KEYWORD string STMTEND;
Vidyashree Ramada621502016-02-05 22:32:34 +0530479
480 /**
481 * enum-specification = 1*(enum-stmt stmtsep)
482 */
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530483 enumSpecification : enumStatement+;
Vidyashree Ramada621502016-02-05 22:32:34 +0530484
485 /**
486 * enum-stmt = enum-keyword sep string optsep
487 * (";" /
488 * "{" stmtsep
489 * ;; these stmts can appear in any order
490 * [value-stmt stmtsep]
491 * [status-stmt stmtsep]
492 * [description-stmt stmtsep]
493 * [reference-stmt stmtsep]
494 * "}")
495 */
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530496 enumStatement : ENUM_KEYWORD string (STMTEND | LEFT_CURLY_BRACE enumStatementBody RIGHT_CURLY_BRACE);
Vidyashree Ramada621502016-02-05 22:32:34 +0530497
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530498 enumStatementBody : valueStatement? statusStatement? descriptionStatement? referenceStatement?
499 | valueStatement? statusStatement? referenceStatement? descriptionStatement?
500 | valueStatement? descriptionStatement? statusStatement? referenceStatement?
501 | valueStatement? descriptionStatement? referenceStatement? statusStatement?
502 | valueStatement? referenceStatement? statusStatement? descriptionStatement?
503 | valueStatement? referenceStatement? descriptionStatement? statusStatement?
504 | statusStatement? valueStatement? descriptionStatement? referenceStatement?
505 | statusStatement? valueStatement? referenceStatement? descriptionStatement?
506 | statusStatement? descriptionStatement? descriptionStatement? valueStatement?
507 | statusStatement? descriptionStatement? valueStatement? descriptionStatement?
508 | statusStatement? referenceStatement? valueStatement? descriptionStatement?
509 | statusStatement? referenceStatement? descriptionStatement? valueStatement?
510 | descriptionStatement? valueStatement? statusStatement? referenceStatement?
511 | descriptionStatement? valueStatement? referenceStatement? statusStatement?
512 | descriptionStatement? statusStatement? valueStatement? referenceStatement?
513 | descriptionStatement? statusStatement? referenceStatement? valueStatement?
514 | descriptionStatement? referenceStatement? valueStatement? statusStatement?
515 | descriptionStatement? referenceStatement? statusStatement? valueStatement?
516 | referenceStatement? valueStatement? descriptionStatement? statusStatement?
517 | referenceStatement? valueStatement? statusStatement? descriptionStatement?
518 | referenceStatement? statusStatement? descriptionStatement? valueStatement?
519 | referenceStatement? statusStatement? valueStatement? descriptionStatement?
520 | referenceStatement? descriptionStatement? valueStatement? statusStatement?
521 | referenceStatement? descriptionStatement? statusStatement? valueStatement?
Vidyashree Ramada621502016-02-05 22:32:34 +0530522 ;
523
524 /**
525 * leafref-specification =
526 * ;; these stmts can appear in any order
527 * path-stmt stmtsep
528 * [require-instance-stmt stmtsep]
529 */
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530530 leafrefSpecification : (pathStatement (requireInstanceStatement)?) | ((requireInstanceStatement)? pathStatement);
Vidyashree Ramada621502016-02-05 22:32:34 +0530531
532 /**
533 * path-stmt = path-keyword sep path-arg-str stmtend
534 */
Vidyashree Rama8a6b1282016-03-15 10:18:25 +0530535 pathStatement : PATH_KEYWORD path STMTEND;
Vidyashree Ramada621502016-02-05 22:32:34 +0530536
537 /**
538 * require-instance-stmt = require-instance-keyword sep
539 * require-instance-arg-str stmtend
540 * require-instance-arg-str = < a string that matches the rule
541 * require-instance-arg >
542 * require-instance-arg = true-keyword / false-keyword
543 */
janani be18b5342016-07-13 21:06:41 +0530544 requireInstanceStatement : REQUIRE_INSTANCE_KEYWORD requireInstance STMTEND;
Vidyashree Ramada621502016-02-05 22:32:34 +0530545
546 /**
547 * instance-identifier-specification =
548 * [require-instance-stmt stmtsep]
549 */
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530550 instanceIdentifierSpecification : requireInstanceStatement?;
Vidyashree Ramada621502016-02-05 22:32:34 +0530551
552 /**
553 * identityref-specification =
554 * base-stmt stmtsep
555 */
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530556 identityrefSpecification : baseStatement;
Vidyashree Ramada621502016-02-05 22:32:34 +0530557
558 /**
559 * union-specification = 1*(type-stmt stmtsep)
560 */
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530561 unionSpecification : typeStatement+;
Vidyashree Ramada621502016-02-05 22:32:34 +0530562
563 /**
564 * bits-specification = 1*(bit-stmt stmtsep)
565 */
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530566 bitsSpecification : bitStatement+;
Vidyashree Ramada621502016-02-05 22:32:34 +0530567
568 /**
569 * bit-stmt = bit-keyword sep identifier-arg-str optsep
570 * (";" /
571 * "{" stmtsep
572 * ;; these stmts can appear in any order
573 * [position-stmt stmtsep]
574 * [status-stmt stmtsep]
575 * [description-stmt stmtsep]
576 * [reference-stmt stmtsep]
577 * "}"
578 * "}")
579 */
Vidyashree Rama468f8282016-03-04 19:08:35 +0530580 bitStatement : BIT_KEYWORD identifier (STMTEND | LEFT_CURLY_BRACE bitBodyStatement RIGHT_CURLY_BRACE);
Vidyashree Ramada621502016-02-05 22:32:34 +0530581
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530582 bitBodyStatement : positionStatement? statusStatement? descriptionStatement? referenceStatement?
583 | positionStatement? statusStatement? referenceStatement? descriptionStatement?
584 | positionStatement? descriptionStatement? statusStatement? referenceStatement?
585 | positionStatement? descriptionStatement? referenceStatement? statusStatement?
586 | positionStatement? referenceStatement? statusStatement? descriptionStatement?
587 | positionStatement? referenceStatement? descriptionStatement? statusStatement?
588 | statusStatement? positionStatement? descriptionStatement? referenceStatement?
589 | statusStatement? positionStatement? referenceStatement? descriptionStatement?
590 | statusStatement? descriptionStatement? descriptionStatement? positionStatement?
591 | statusStatement? descriptionStatement? positionStatement? descriptionStatement?
592 | statusStatement? referenceStatement? positionStatement? descriptionStatement?
593 | statusStatement? referenceStatement? descriptionStatement? positionStatement?
594 | descriptionStatement? positionStatement? statusStatement? referenceStatement?
595 | descriptionStatement? positionStatement? referenceStatement? statusStatement?
596 | descriptionStatement? statusStatement? positionStatement? referenceStatement?
597 | descriptionStatement? statusStatement? referenceStatement? positionStatement?
598 | descriptionStatement? referenceStatement? positionStatement? statusStatement?
599 | descriptionStatement? referenceStatement? statusStatement? positionStatement?
600 | referenceStatement? positionStatement? descriptionStatement? statusStatement?
601 | referenceStatement? positionStatement? statusStatement? descriptionStatement?
602 | referenceStatement? statusStatement? descriptionStatement? positionStatement?
603 | referenceStatement? statusStatement? positionStatement? descriptionStatement?
604 | referenceStatement? descriptionStatement? positionStatement? statusStatement?
605 | referenceStatement? descriptionStatement? statusStatement? positionStatement?
Vidyashree Ramada621502016-02-05 22:32:34 +0530606 ;
607
608 /**
609 * position-stmt = position-keyword sep
610 * position-value-arg-str stmtend
611 * position-value-arg-str = < a string that matches the rule
612 * position-value-arg >
613 * position-value-arg = non-negative-integer-value
614 */
Vidyashree Rama8a6b1282016-03-15 10:18:25 +0530615 positionStatement : POSITION_KEYWORD position STMTEND;
Vidyashree Ramada621502016-02-05 22:32:34 +0530616
617 /**
618 * status-stmt = status-keyword sep status-arg-str stmtend
619 * status-arg-str = < a string that matches the rule
620 * status-arg >
621 * status-arg = current-keyword /
622 * obsolete-keyword /
623 * deprecated-keyword
624 */
Vidyashree Rama8a6b1282016-03-15 10:18:25 +0530625 statusStatement : STATUS_KEYWORD status STMTEND;
Vidyashree Ramada621502016-02-05 22:32:34 +0530626
627 /**
628 * config-stmt = config-keyword sep
629 * config-arg-str stmtend
630 * config-arg-str = < a string that matches the rule
631 * config-arg >
632 * config-arg = true-keyword / false-keyword
633 */
Vidyashree Rama8a6b1282016-03-15 10:18:25 +0530634 configStatement : CONFIG_KEYWORD config STMTEND;
Vidyashree Ramada621502016-02-05 22:32:34 +0530635
636 /**
637 * mandatory-stmt = mandatory-keyword sep
638 * mandatory-arg-str stmtend
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530639 *
Vidyashree Ramada621502016-02-05 22:32:34 +0530640 * mandatory-arg-str = < a string that matches the rule
641 * mandatory-arg >
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530642 *
643 * mandatory-arg = true-keyword / false-keyword
Vidyashree Ramada621502016-02-05 22:32:34 +0530644 */
Vidyashree Rama8a6b1282016-03-15 10:18:25 +0530645 mandatoryStatement : MANDATORY_KEYWORD mandatory STMTEND;
Vidyashree Ramada621502016-02-05 22:32:34 +0530646
647 /**
648 * presence-stmt = presence-keyword sep string stmtend
649 */
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530650 presenceStatement : PRESENCE_KEYWORD string STMTEND;
Vidyashree Ramada621502016-02-05 22:32:34 +0530651
652 /**
653 * ordered-by-stmt = ordered-by-keyword sep
654 * ordered-by-arg-str stmtend
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530655 *
Vidyashree Ramada621502016-02-05 22:32:34 +0530656 * ordered-by-arg-str = < a string that matches the rule
657 * ordered-by-arg >
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530658 *
Vidyashree Ramada621502016-02-05 22:32:34 +0530659 * ordered-by-arg = user-keyword / system-keyword
660 */
Vidyashree Rama8a6b1282016-03-15 10:18:25 +0530661 orderedByStatement : ORDERED_BY_KEYWORD orderedBy STMTEND;
Vidyashree Ramada621502016-02-05 22:32:34 +0530662
663 /**
664 * must-stmt = must-keyword sep string optsep
665 * (";" /
666 * "{" stmtsep
667 * ;; these stmts can appear in any order
668 * [error-message-stmt stmtsep]
669 * [error-app-tag-stmt stmtsep]
670 * [description-stmt stmtsep]
671 * [reference-stmt stmtsep]
672 * "}")
673 */
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530674 mustStatement : MUST_KEYWORD string (STMTEND | LEFT_CURLY_BRACE commonStatements RIGHT_CURLY_BRACE);
Vidyashree Ramada621502016-02-05 22:32:34 +0530675
676 /**
677 * error-message-stmt = error-message-keyword sep string stmtend
678 */
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530679 errorMessageStatement : ERROR_MESSAGE_KEYWORD string STMTEND;
Vidyashree Ramada621502016-02-05 22:32:34 +0530680
681 /**
682 * error-app-tag-stmt = error-app-tag-keyword sep string stmtend
683 */
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530684 errorAppTagStatement : ERROR_APP_TAG_KEYWORD string STMTEND;
Vidyashree Ramada621502016-02-05 22:32:34 +0530685
686 /**
687 * min-elements-stmt = min-elements-keyword sep
688 * min-value-arg-str stmtend
689 * min-value-arg-str = < a string that matches the rule
690 * min-value-arg >
691 * min-value-arg = non-negative-integer-value
692 */
Vidyashree Rama8a6b1282016-03-15 10:18:25 +0530693 minElementsStatement : MIN_ELEMENTS_KEYWORD minValue STMTEND;
Vidyashree Ramada621502016-02-05 22:32:34 +0530694
695 /**
696 * max-elements-stmt = max-elements-keyword sep
697 * max-value-arg-str stmtend
698 * max-value-arg-str = < a string that matches the rule
699 * max-value-arg >
Vidyashree Ramada621502016-02-05 22:32:34 +0530700 * max-value-arg = unbounded-keyword /
701 * positive-integer-value
702 */
Vidyashree Rama8a6b1282016-03-15 10:18:25 +0530703 maxElementsStatement : MAX_ELEMENTS_KEYWORD maxValue STMTEND;
Vidyashree Ramada621502016-02-05 22:32:34 +0530704
705 /**
706 * value-stmt = value-keyword sep integer-value stmtend
707 */
Vidyashree Rama1db15562016-05-17 16:16:15 +0530708 valueStatement : VALUE_KEYWORD value STMTEND;
Vidyashree Ramada621502016-02-05 22:32:34 +0530709
710 /**
711 * grouping-stmt = grouping-keyword sep identifier-arg-str optsep
712 * (";" /
713 * "{" stmtsep
714 * ;; these stmts can appear in any order
715 * [status-stmt stmtsep]
716 * [description-stmt stmtsep]
717 * [reference-stmt stmtsep]
Vidyashree Rama528ef302016-06-30 14:31:18 +0530718 * [compiler-annotation-stmt stmtsep]
Vidyashree Ramada621502016-02-05 22:32:34 +0530719 * *((typedef-stmt /
720 * grouping-stmt) stmtsep)
721 * *(data-def-stmt stmtsep)
722 * "}")
723 * TODO : 0..1 occurance to be checked in listener
724 */
Vidyashree Rama468f8282016-03-04 19:08:35 +0530725 groupingStatement : GROUPING_KEYWORD identifier (STMTEND | LEFT_CURLY_BRACE
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530726 (statusStatement | descriptionStatement | referenceStatement | typedefStatement | groupingStatement
Vidyashree Rama528ef302016-06-30 14:31:18 +0530727 | dataDefStatement | compilerAnnotationStatement)* RIGHT_CURLY_BRACE);
Vidyashree Ramada621502016-02-05 22:32:34 +0530728
729 /**
730 * container-stmt = container-keyword sep identifier-arg-str optsep
731 * (";" /
732 * "{" stmtsep
733 * ;; these stmts can appear in any order
734 * [when-stmt stmtsep]
735 * *(if-feature-stmt stmtsep)
736 * *(must-stmt stmtsep)
737 * [presence-stmt stmtsep]
738 * [config-stmt stmtsep]
739 * [status-stmt stmtsep]
740 * [description-stmt stmtsep]
741 * [reference-stmt stmtsep]
Vidyashree Rama528ef302016-06-30 14:31:18 +0530742 * [compiler-annotation-stmt stmtsep]
Vidyashree Ramada621502016-02-05 22:32:34 +0530743 * *((typedef-stmt /
744 * grouping-stmt) stmtsep)
745 * *(data-def-stmt stmtsep)
746 * "}")
747 * TODO : 0..1 occurance to be checked in listener
748 */
Vidyashree Rama468f8282016-03-04 19:08:35 +0530749 containerStatement : CONTAINER_KEYWORD identifier
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530750 (STMTEND | LEFT_CURLY_BRACE (whenStatement | ifFeatureStatement | mustStatement | presenceStatement | configStatement
751 | statusStatement | descriptionStatement | referenceStatement | typedefStatement | groupingStatement
Vidyashree Rama528ef302016-06-30 14:31:18 +0530752 | dataDefStatement | compilerAnnotationStatement)* RIGHT_CURLY_BRACE);
Vidyashree Ramada621502016-02-05 22:32:34 +0530753
754 /**
755 * leaf-stmt = leaf-keyword sep identifier-arg-str optsep
756 * "{" stmtsep
757 * ;; these stmts can appear in any order
758 * [when-stmt stmtsep]
759 * *(if-feature-stmt stmtsep)
760 * type-stmt stmtsep
761 * [units-stmt stmtsep]
762 * *(must-stmt stmtsep)
763 * [default-stmt stmtsep]
764 * [config-stmt stmtsep]
765 * [mandatory-stmt stmtsep]
766 * [status-stmt stmtsep]
767 * [description-stmt stmtsep]
768 * [reference-stmt stmtsep]
769 * "}"
770 * TODO : 0..1 occurance to be checked in listener
771 */
Vidyashree Rama468f8282016-03-04 19:08:35 +0530772 leafStatement : LEAF_KEYWORD identifier LEFT_CURLY_BRACE (whenStatement | ifFeatureStatement | typeStatement | unitsStatement
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530773 | mustStatement | defaultStatement | configStatement | mandatoryStatement | statusStatement | descriptionStatement
Vidyashree Rama528ef302016-06-30 14:31:18 +0530774 | referenceStatement | compilerAnnotationStatement)* RIGHT_CURLY_BRACE;
Vidyashree Ramada621502016-02-05 22:32:34 +0530775
776 /**
777 * leaf-list-stmt = leaf-list-keyword sep identifier-arg-str optsep
778 * "{" stmtsep
779 * ;; these stmts can appear in any order
780 * [when-stmt stmtsep]
781 * *(if-feature-stmt stmtsep)
782 * type-stmt stmtsep
783 * [units-stmt stmtsep]
784 * *(must-stmt stmtsep)
785 * [config-stmt stmtsep]
786 * [min-elements-stmt stmtsep]
787 * [max-elements-stmt stmtsep]
788 * [ordered-by-stmt stmtsep]
789 * [status-stmt stmtsep]
790 * [description-stmt stmtsep]
791 * [reference-stmt stmtsep]
792 * "}"
793 * TODO : 0..1 occurance to be checked in listener
794 */
Vidyashree Rama468f8282016-03-04 19:08:35 +0530795 leafListStatement : LEAF_LIST_KEYWORD identifier LEFT_CURLY_BRACE (whenStatement | ifFeatureStatement | typeStatement
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530796 | unitsStatement | mustStatement | configStatement | minElementsStatement | maxElementsStatement | orderedByStatement
Vidyashree Rama528ef302016-06-30 14:31:18 +0530797 | statusStatement | descriptionStatement | referenceStatement | compilerAnnotationStatement)* RIGHT_CURLY_BRACE;
Vidyashree Ramada621502016-02-05 22:32:34 +0530798
799 /**
800 * list-stmt = list-keyword sep identifier-arg-str optsep
801 * "{" stmtsep
802 * ;; these stmts can appear in any order
803 * [when-stmt stmtsep]
804 * *(if-feature-stmt stmtsep)
805 * *(must-stmt stmtsep)
806 * [key-stmt stmtsep]
807 * *(unique-stmt stmtsep)
808 * [config-stmt stmtsep]
809 * [min-elements-stmt stmtsep]
810 * [max-elements-stmt stmtsep]
811 * [ordered-by-stmt stmtsep]
812 * [status-stmt stmtsep]
813 * [description-stmt stmtsep]
814 * [reference-stmt stmtsep]
815 * *((typedef-stmt /
816 * grouping-stmt) stmtsep)
817 * 1*(data-def-stmt stmtsep)
818 * "}"
819 * TODO : 0..1 occurance to be checked in listener
820 */
Vidyashree Rama468f8282016-03-04 19:08:35 +0530821 listStatement : LIST_KEYWORD identifier LEFT_CURLY_BRACE (whenStatement | ifFeatureStatement | mustStatement | keyStatement
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530822 | uniqueStatement | configStatement | minElementsStatement | maxElementsStatement | orderedByStatement | statusStatement
Vidyashree Rama528ef302016-06-30 14:31:18 +0530823 | descriptionStatement | referenceStatement | typedefStatement | groupingStatement| dataDefStatement
824 | compilerAnnotationStatement)* RIGHT_CURLY_BRACE;
Vidyashree Ramada621502016-02-05 22:32:34 +0530825
826 /**
827 * key-stmt = key-keyword sep key-arg-str stmtend
828 */
Vidyashree Rama8a6b1282016-03-15 10:18:25 +0530829 keyStatement : KEY_KEYWORD key STMTEND;
Vidyashree Ramada621502016-02-05 22:32:34 +0530830
831 /**
832 * unique-stmt = unique-keyword sep unique-arg-str stmtend
833 */
Vidyashree Rama8a6b1282016-03-15 10:18:25 +0530834 uniqueStatement: UNIQUE_KEYWORD unique STMTEND;
Vidyashree Ramada621502016-02-05 22:32:34 +0530835
836 /**
837 * choice-stmt = choice-keyword sep identifier-arg-str optsep
838 * (";" /
839 * "{" stmtsep
840 * ;; these stmts can appear in any order
841 * [when-stmt stmtsep]
842 * *(if-feature-stmt stmtsep)
843 * [default-stmt stmtsep]
844 * [config-stmt stmtsep]
845 * [mandatory-stmt stmtsep]
846 * [status-stmt stmtsep]
847 * [description-stmt stmtsep]
848 * [reference-stmt stmtsep]
849 * *((short-case-stmt / case-stmt) stmtsep)
850 * "}")
851 * TODO : 0..1 occurance to be checked in listener
852 */
Vidyashree Rama468f8282016-03-04 19:08:35 +0530853 choiceStatement : CHOICE_KEYWORD identifier (STMTEND | LEFT_CURLY_BRACE (whenStatement | ifFeatureStatement | defaultStatement
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530854 | configStatement | mandatoryStatement | statusStatement | descriptionStatement | referenceStatement | shortCaseStatement
Vidyashree Rama528ef302016-06-30 14:31:18 +0530855 | caseStatement | compilerAnnotationStatement)* RIGHT_CURLY_BRACE);
Vidyashree Ramada621502016-02-05 22:32:34 +0530856
857 /**
858 * short-case-stmt = container-stmt /
859 * leaf-stmt /
860 * leaf-list-stmt /
861 * list-stmt /
862 * anyxml-stmt
863 */
Vidyashree Rama1db15562016-05-17 16:16:15 +0530864 shortCaseStatement : containerStatement | leafStatement | leafListStatement | listStatement | anyxmlStatement;
Vidyashree Ramada621502016-02-05 22:32:34 +0530865
866 /**
867 * case-stmt = case-keyword sep identifier-arg-str optsep
868 * (";" /
869 * "{" stmtsep
870 * ;; these stmts can appear in any order
871 * [when-stmt stmtsep]
872 * *(if-feature-stmt stmtsep)
873 * [status-stmt stmtsep]
874 * [description-stmt stmtsep]
875 * [reference-stmt stmtsep]
876 * *(data-def-stmt stmtsep)
877 * "}")
878 * TODO : 0..1 occurance to be checked in listener
879 */
Vidyashree Rama468f8282016-03-04 19:08:35 +0530880 caseStatement : CASE_KEYWORD identifier (STMTEND | LEFT_CURLY_BRACE (whenStatement | ifFeatureStatement | statusStatement
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530881 | descriptionStatement | referenceStatement | dataDefStatement)* RIGHT_CURLY_BRACE);
Vidyashree Ramada621502016-02-05 22:32:34 +0530882
883 /**
Vidyashree Rama1db15562016-05-17 16:16:15 +0530884 * anyxml-stmt = anyxml-keyword sep identifier-arg-str optsep
885 * (";" /
886 * "{" stmtsep
887 * ;; these stmts can appear in any order
888 * [when-stmt stmtsep]
889 * *(if-feature-stmt stmtsep)
890 * *(must-stmt stmtsep)
891 * [config-stmt stmtsep]
892 * [mandatory-stmt stmtsep]
893 * [status-stmt stmtsep]
894 * [description-stmt stmtsep]
895 * [reference-stmt stmtsep]
896 * "}")
897 */
898 anyxmlStatement : ANYXML_KEYWORD identifier (STMTEND | LEFT_CURLY_BRACE (whenStatement | ifFeatureStatement
899 | mustStatement | configStatement | mandatoryStatement | statusStatement | descriptionStatement
Vidyashree Rama528ef302016-06-30 14:31:18 +0530900 | referenceStatement | compilerAnnotationStatement)* RIGHT_CURLY_BRACE);
Vidyashree Rama1db15562016-05-17 16:16:15 +0530901
902 /**
Vidyashree Ramada621502016-02-05 22:32:34 +0530903 * uses-stmt = uses-keyword sep identifier-ref-arg-str optsep
904 * (";" /
905 * "{" stmtsep
906 * ;; these stmts can appear in any order
907 * [when-stmt stmtsep]
908 * *(if-feature-stmt stmtsep)
909 * [status-stmt stmtsep]
910 * [description-stmt stmtsep]
911 * [reference-stmt stmtsep]
Vidyashree Rama528ef302016-06-30 14:31:18 +0530912 * [compiler-annotation-stmt stmtsep]
Vidyashree Ramada621502016-02-05 22:32:34 +0530913 * *(refine-stmt stmtsep)
914 * *(uses-augment-stmt stmtsep)
915 * "}")
916 * TODO : 0..1 occurance to be checked in listener
917 */
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530918 usesStatement : USES_KEYWORD string (STMTEND | LEFT_CURLY_BRACE (whenStatement | ifFeatureStatement | statusStatement
Vidyashree Rama528ef302016-06-30 14:31:18 +0530919 | descriptionStatement | referenceStatement | refineStatement | augmentStatement
920 | compilerAnnotationStatement)* RIGHT_CURLY_BRACE);
Vidyashree Ramada621502016-02-05 22:32:34 +0530921
922 /**
923 * refine-stmt = refine-keyword sep refine-arg-str optsep
924 * (";" /
925 * "{" stmtsep
926 * (refine-container-stmts /
927 * refine-leaf-stmts /
928 * refine-leaf-list-stmts /
929 * refine-list-stmts /
930 * refine-choice-stmts /
931 * refine-case-stmts /
932 * refine-anyxml-stmts)
933 * "}")
934 */
Vidyashree Rama8a6b1282016-03-15 10:18:25 +0530935 refineStatement : REFINE_KEYWORD refine (STMTEND | LEFT_CURLY_BRACE (refineContainerStatements
936 | refineLeafStatements | refineLeafListStatements | refineListStatements | refineChoiceStatements
Vidyashree Rama1db15562016-05-17 16:16:15 +0530937 | refineCaseStatements | refineAnyxmlStatements) RIGHT_CURLY_BRACE);
Vidyashree Ramada621502016-02-05 22:32:34 +0530938
939 /**
940 * refine-container-stmts =
941 * ;; these stmts can appear in any order
942 * *(must-stmt stmtsep)
943 * [presence-stmt stmtsep]
944 * [config-stmt stmtsep]
945 * [description-stmt stmtsep]
946 * [reference-stmt stmtsep]
947 * TODO : 0..1 occurance to be checked in listener
948 */
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530949 refineContainerStatements : (mustStatement | presenceStatement | configStatement | descriptionStatement | referenceStatement)* ;
Vidyashree Ramada621502016-02-05 22:32:34 +0530950
951 /**
952 * refine-leaf-stmts = ;; these stmts can appear in any order
953 * *(must-stmt stmtsep)
954 * [default-stmt stmtsep]
955 * [config-stmt stmtsep]
956 * [mandatory-stmt stmtsep]
957 * [description-stmt stmtsep]
958 * [reference-stmt stmtsep]
959 * TODO : 0..1 occurance to be checked in listener
960 */
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530961 refineLeafStatements : (mustStatement | defaultStatement | configStatement | mandatoryStatement | descriptionStatement | referenceStatement)*;
Vidyashree Ramada621502016-02-05 22:32:34 +0530962
963 /**
964 * refine-leaf-list-stmts =
965 * ;; these stmts can appear in any order
966 * *(must-stmt stmtsep)
967 * [config-stmt stmtsep]
968 * [min-elements-stmt stmtsep]
969 * [max-elements-stmt stmtsep]
970 * [description-stmt stmtsep]
971 * [reference-stmt stmtsep]
972 * TODO : 0..1 occurance to be checked in listener
973 */
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530974 refineLeafListStatements : (mustStatement | configStatement | minElementsStatement | maxElementsStatement | descriptionStatement
975 | referenceStatement)*;
Vidyashree Ramada621502016-02-05 22:32:34 +0530976
977 /**
978 * refine-list-stmts = ;; these stmts can appear in any order
979 * *(must-stmt stmtsep)
980 * [config-stmt stmtsep]
981 * [min-elements-stmt stmtsep]
982 * [max-elements-stmt stmtsep]
983 * [description-stmt stmtsep]
984 * [reference-stmt stmtsep]
985 * TODO : 0..1 occurance to be checked in listener
986 */
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530987 refineListStatements : (mustStatement | configStatement | minElementsStatement | maxElementsStatement | descriptionStatement
988 | referenceStatement)*;
Vidyashree Ramada621502016-02-05 22:32:34 +0530989
990 /**
991 * refine-choice-stmts = ;; these stmts can appear in any order
992 * [default-stmt stmtsep]
993 * [config-stmt stmtsep]
994 * [mandatory-stmt stmtsep]
995 * [description-stmt stmtsep]
996 * [reference-stmt stmtsep]
997 * TODO : 0..1 occurance to be checked in listener
998 */
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +0530999 refineChoiceStatements : (defaultStatement | configStatement | mandatoryStatement | descriptionStatement | referenceStatement)*;
Vidyashree Ramada621502016-02-05 22:32:34 +05301000
1001 /**
1002 * refine-case-stmts = ;; these stmts can appear in any order
1003 * [description-stmt stmtsep]
1004 * [reference-stmt stmtsep]
1005 *
1006 */
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +05301007 refineCaseStatements : (descriptionStatement | referenceStatement)? | (referenceStatement | descriptionStatement)?;
Vidyashree Ramada621502016-02-05 22:32:34 +05301008
1009 /**
Vidyashree Rama1db15562016-05-17 16:16:15 +05301010 * refine-anyxml-stmts = ;; these stmts can appear in any order
1011 * *(must-stmt stmtsep)
1012 * [config-stmt stmtsep]
1013 * [mandatory-stmt stmtsep]
1014 * [description-stmt stmtsep]
1015 * [reference-stmt stmtsep]
Vidyashree Ramada621502016-02-05 22:32:34 +05301016 */
Vidyashree Rama1db15562016-05-17 16:16:15 +05301017 refineAnyxmlStatements : (mustStatement | configStatement | mandatoryStatement | descriptionStatement
1018 | referenceStatement)*;
Vidyashree Ramada621502016-02-05 22:32:34 +05301019
1020 /**
1021 * augment-stmt = augment-keyword sep augment-arg-str optsep
1022 * "{" stmtsep
1023 * ;; these stmts can appear in any order
1024 * [when-stmt stmtsep]
1025 * *(if-feature-stmt stmtsep)
1026 * [status-stmt stmtsep]
1027 * [description-stmt stmtsep]
1028 * [reference-stmt stmtsep]
1029 * 1*((data-def-stmt stmtsep) /
1030 * (case-stmt stmtsep))
1031 * "}"
1032 * TODO : 0..1 occurance to be checked in listener
1033 */
Vidyashree Rama25bf4d02016-03-29 14:37:02 +05301034 augmentStatement : AUGMENT_KEYWORD augment LEFT_CURLY_BRACE (whenStatement | ifFeatureStatement | statusStatement
Vidyashree Rama528ef302016-06-30 14:31:18 +05301035 | descriptionStatement | referenceStatement | dataDefStatement | caseStatement
1036 | compilerAnnotationStatement)* RIGHT_CURLY_BRACE;
Vidyashree Ramada621502016-02-05 22:32:34 +05301037
1038 /**
1039 * when-stmt = when-keyword sep string optsep
1040 * (";" /
1041 * "{" stmtsep
1042 * ;; these stmts can appear in any order
1043 * [description-stmt stmtsep]
1044 * [reference-stmt stmtsep]
1045 * "}")
1046 *
1047 */
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +05301048 whenStatement : WHEN_KEYWORD string (STMTEND | LEFT_CURLY_BRACE ((descriptionStatement? referenceStatement?)
1049 | (referenceStatement? descriptionStatement?)) RIGHT_CURLY_BRACE);
Vidyashree Ramada621502016-02-05 22:32:34 +05301050
1051 /**
1052 * rpc-stmt = rpc-keyword sep identifier-arg-str optsep
1053 * (";" /
1054 * "{" stmtsep
1055 * ;; these stmts can appear in any order
1056 * *(if-feature-stmt stmtsep)
1057 * [status-stmt stmtsep]
1058 * [description-stmt stmtsep]
1059 * [reference-stmt stmtsep]
1060 * *((typedef-stmt /
1061 * grouping-stmt) stmtsep)
1062 * [input-stmt stmtsep]
1063 * [output-stmt stmtsep]
Vidyashree Rama528ef302016-06-30 14:31:18 +05301064 * [compiler-annotation-stmt stmtsep]
Vidyashree Ramada621502016-02-05 22:32:34 +05301065 * "}")
Vidyashree Rama528ef302016-06-30 14:31:18 +05301066 * TODO : 0..1 occurance to be checked in listener
Vidyashree Ramada621502016-02-05 22:32:34 +05301067 */
Vidyashree Rama528ef302016-06-30 14:31:18 +05301068 rpcStatement : RPC_KEYWORD identifier (STMTEND | LEFT_CURLY_BRACE (ifFeatureStatement | statusStatement
1069 | descriptionStatement | referenceStatement | typedefStatement | groupingStatement | inputStatement
1070 | outputStatement | compilerAnnotationStatement)* RIGHT_CURLY_BRACE);
Vidyashree Ramada621502016-02-05 22:32:34 +05301071
1072 /**
1073 * input-stmt = input-keyword optsep
1074 * "{" stmtsep
1075 * ;; these stmts can appear in any order
1076 * *((typedef-stmt /
1077 * grouping-stmt) stmtsep)
1078 * 1*(data-def-stmt stmtsep)
1079 * "}"
1080 */
janani b4e53f9b2016-04-26 18:49:20 +05301081 inputStatement : INPUT_KEYWORD LEFT_CURLY_BRACE (typedefStatement | groupingStatement | dataDefStatement)* RIGHT_CURLY_BRACE;
Vidyashree Ramada621502016-02-05 22:32:34 +05301082
1083 /**
1084 * output-stmt = output-keyword optsep
1085 * "{" stmtsep
1086 * ;; these stmts can appear in any order
1087 * *((typedef-stmt /
1088 * grouping-stmt) stmtsep)
1089 * 1*(data-def-stmt stmtsep)
1090 * "}"
1091 */
janani b4e53f9b2016-04-26 18:49:20 +05301092 outputStatement : OUTPUT_KEYWORD LEFT_CURLY_BRACE (typedefStatement | groupingStatement | dataDefStatement)* RIGHT_CURLY_BRACE;
Vidyashree Ramada621502016-02-05 22:32:34 +05301093
1094 /**
1095 * notification-stmt = notification-keyword sep
1096 * identifier-arg-str optsep
1097 * (";" /
1098 * "{" stmtsep
1099 * ;; these stmts can appear in any order
1100 * *(if-feature-stmt stmtsep)
1101 * [status-stmt stmtsep]
1102 * [description-stmt stmtsep]
1103 * [reference-stmt stmtsep]
Vidyashree Rama528ef302016-06-30 14:31:18 +05301104 * [compiler-annotation-stmt stmtsep]
Vidyashree Ramada621502016-02-05 22:32:34 +05301105 * *((typedef-stmt /
1106 * grouping-stmt) stmtsep)
1107 * *(data-def-stmt stmtsep)
1108 * "}")
1109 * TODO : 0..1 occurance to be checked in listener
1110 */
Vidyashree Rama506cbe12016-03-28 11:59:27 +05301111 notificationStatement : NOTIFICATION_KEYWORD identifier (STMTEND | LEFT_CURLY_BRACE (ifFeatureStatement
1112 | statusStatement | descriptionStatement | referenceStatement | typedefStatement
Vidyashree Rama528ef302016-06-30 14:31:18 +05301113 | groupingStatement | dataDefStatement | compilerAnnotationStatement)* RIGHT_CURLY_BRACE);
Vidyashree Ramada621502016-02-05 22:32:34 +05301114
1115 /**
1116 * deviation-stmt = deviation-keyword sep
1117 * deviation-arg-str optsep
1118 * "{" stmtsep
1119 * ;; these stmts can appear in any order
1120 * [description-stmt stmtsep]
1121 * [reference-stmt stmtsep]
Vidyashree Rama528ef302016-06-30 14:31:18 +05301122 * [compiler-annotation-stmt stmtsep]
Vidyashree Ramada621502016-02-05 22:32:34 +05301123 * (deviate-not-supported-stmt /
1124 * 1*(deviate-add-stmt /
1125 * deviate-replace-stmt /
1126 * deviate-delete-stmt))
1127 * "}"
1128 * TODO : 0..1 occurance to be checked in listener
1129 */
Vidyashree Rama8a6b1282016-03-15 10:18:25 +05301130 deviationStatement: DEVIATION_KEYWORD deviation LEFT_CURLY_BRACE (descriptionStatement | referenceStatement
1131 | deviateNotSupportedStatement | deviateAddStatement | deviateReplaceStatement
Vidyashree Rama528ef302016-06-30 14:31:18 +05301132 | deviateDeleteStatement | compilerAnnotationStatement)* RIGHT_CURLY_BRACE;
Vidyashree Ramada621502016-02-05 22:32:34 +05301133
1134 /**
1135 * deviate-not-supported-stmt =
1136 * deviate-keyword sep
1137 * not-supported-keyword optsep
1138 * (";" /
1139 * "{" stmtsep
1140 * "}")
1141 */
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +05301142 deviateNotSupportedStatement: DEVIATE_KEYWORD NOT_SUPPORTED_KEYWORD (STMTEND | LEFT_CURLY_BRACE RIGHT_CURLY_BRACE);
Vidyashree Ramada621502016-02-05 22:32:34 +05301143
1144 /**
1145 * deviate-add-stmt = deviate-keyword sep add-keyword optsep
1146 * (";" /
1147 * "{" stmtsep
1148 * [units-stmt stmtsep]
1149 * *(must-stmt stmtsep)
1150 * *(unique-stmt stmtsep)
1151 * [default-stmt stmtsep]
1152 * [config-stmt stmtsep]
1153 * [mandatory-stmt stmtsep]
1154 * [min-elements-stmt stmtsep]
1155 * [max-elements-stmt stmtsep]
1156 * "}")
1157 */
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +05301158 deviateAddStatement: DEVIATE_KEYWORD ADD_KEYWORD (STMTEND | (LEFT_CURLY_BRACE unitsStatement? mustStatement* uniqueStatement*
1159 defaultStatement? configStatement? mandatoryStatement? minElementsStatement? maxElementsStatement?
Vidyashree Ramada621502016-02-05 22:32:34 +05301160 RIGHT_CURLY_BRACE));
1161
1162 /**
1163 * deviate-delete-stmt = deviate-keyword sep delete-keyword optsep
1164 * (";" /
1165 * "{" stmtsep
1166 * [units-stmt stmtsep]
1167 * *(must-stmt stmtsep)
1168 * *(unique-stmt stmtsep)
1169 * [default-stmt stmtsep]
1170 * "}")
1171 */
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +05301172 deviateDeleteStatement: DEVIATE_KEYWORD DELETE_KEYWORD (STMTEND
1173 | (LEFT_CURLY_BRACE unitsStatement? mustStatement* uniqueStatement* defaultStatement? RIGHT_CURLY_BRACE));
Vidyashree Ramada621502016-02-05 22:32:34 +05301174
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +05301175 /**
Vidyashree Ramada621502016-02-05 22:32:34 +05301176 * deviate-replace-stmt = deviate-keyword sep replace-keyword optsep
1177 * (";" /
1178 * "{" stmtsep
1179 * [type-stmt stmtsep]
1180 * [units-stmt stmtsep]
1181 * [default-stmt stmtsep]
1182 * [config-stmt stmtsep]
1183 * [mandatory-stmt stmtsep]
1184 * [min-elements-stmt stmtsep]
1185 * [max-elements-stmt stmtsep]
1186 * "}")
1187 */
Gaurav Agrawal4f8ad172016-02-12 16:17:32 +05301188 deviateReplaceStatement: DEVIATE_KEYWORD REPLACE_KEYWORD (STMTEND | (LEFT_CURLY_BRACE typeStatement? unitsStatement?
1189 defaultStatement? configStatement? mandatoryStatement? minElementsStatement?
1190 maxElementsStatement? RIGHT_CURLY_BRACE));
Vidyashree Ramada621502016-02-05 22:32:34 +05301191
Vidyashree Rama528ef302016-06-30 14:31:18 +05301192 /**
1193 * compiler-annotation-stmt = compiler-annotation-keyword optsep
1194 * "{" stmtsep
1195 * ;; these stmts can appear in any order
1196 * *(if-feature-stmt stmtsep)
1197 * [status-stmt stmtsep]
1198 * [units-stmt stmtsep]
1199 * [reference-stmt stmtsep]
1200 * 1*(compiler-annotation-stmt stmtsep)
1201 * "}"
1202 */
1203 compilerAnnotationStatement : COMPILER_ANNOTATION_KEYWORD LEFT_CURLY_BRACE (ifFeatureStatement | statusStatement
1204 | unitsStatement | referenceStatement | annotationStatement)*
1205 RIGHT_CURLY_BRACE;
1206
1207 /**
1208 * annotation-stmt = "@" annotation-type [annotation-parameter-specification] ";"
1209 */
1210 annotationStatement : annotationType annotationParameterSpecification? STMTEND;
1211
1212 /**
1213 * annotation-type = identifier
1214 */
1215 annotationType : annotationIdentifier;
1216
1217 /**
1218 * annotation-parameter-specification = "(" optsep annotation-parameter-specification-arg optsep ")"
1219 */
1220 annotationParameterSpecification : LEFT_ROUND_BRACE annotationParameterSpecificationArg RIGHT_ROUND_BRACE;
1221
1222 /**
1223 * annotation-parameter-specification-arg = annotation-para-type-value
1224 * / annotation-para-instance *("," annotation-para-instance)
1225 */
1226 annotationParameterSpecificationArg : annotationParaTypeValue
1227 | annotationParaInstance (COMMA annotationParaInstance)*;
1228
1229 /**
1230 * annotation-para-instance = annotation-para-type-identifier optsep "=" optsep annotation-para-type-value
1231 */
1232 annotationParaInstance : annotationParaTypeIdentifier EQUAL annotationParaTypeValue;
1233
1234 /**
1235 * annotation-para-type-identifier = identifier
1236 */
1237 annotationParaTypeIdentifier : identifier;
1238
1239 /**
1240 * annotation-para-type-value = identifier
1241 */
1242 annotationParaTypeValue : identifier;
1243
Gaurav Agrawalb5a1c132016-02-21 02:56:46 +05301244 string : STRING (PLUS STRING)*
1245 | IDENTIFIER
Vidyashree Rama8a6b1282016-03-15 10:18:25 +05301246 | INTEGER
1247 | yangConstruct;
Vidyashree Rama468f8282016-03-04 19:08:35 +05301248
Vidyashree Rama528ef302016-06-30 14:31:18 +05301249 annotationIdentifier : STRING (PLUS STRING)*
1250 | ANNOTATION_IDENTIFIER
1251 | IDENTIFIER
1252 | yangConstruct;
1253
Vidyashree Rama468f8282016-03-04 19:08:35 +05301254 identifier : STRING (PLUS STRING)*
Vidyashree Rama8a6b1282016-03-15 10:18:25 +05301255 | IDENTIFIER
1256 | yangConstruct;
Vidyashree Rama468f8282016-03-04 19:08:35 +05301257
1258 dateArgumentString : DATE_ARG
1259 | STRING (PLUS STRING)*;
Vidyashree Rama8a6b1282016-03-15 10:18:25 +05301260
1261 version : string;
1262
1263 range : string;
1264
1265 length : string;
1266
1267 path : string;
1268
1269 position : string;
1270
1271 status : string;
1272
1273 config : string;
1274
1275 mandatory : string;
1276
1277 orderedBy : string;
1278
1279 minValue : string;
1280
1281 maxValue : string;
1282
1283 key : string;
1284
1285 unique : string;
1286
1287 refine : string;
1288
janani be18b5342016-07-13 21:06:41 +05301289 requireInstance : string;
1290
Vidyashree Rama8a6b1282016-03-15 10:18:25 +05301291 augment : string;
1292
1293 deviation : string;
1294
Vidyashree Rama1db15562016-05-17 16:16:15 +05301295 value : string;
1296
1297 fraction : string;
1298
Vidyashree Rama8a6b1282016-03-15 10:18:25 +05301299 yangConstruct : ANYXML_KEYWORD | ARGUMENT_KEYWORD | AUGMENT_KEYWORD | BASE_KEYWORD | BELONGS_TO_KEYWORD
1300 | BIT_KEYWORD | CASE_KEYWORD | CHOICE_KEYWORD | CONFIG_KEYWORD | CONTACT_KEYWORD | CONTAINER_KEYWORD
1301 | DEFAULT_KEYWORD | DESCRIPTION_KEYWORD | ENUM_KEYWORD ERROR_APP_TAG_KEYWORD | ERROR_MESSAGE_KEYWORD
1302 | EXTENSION_KEYWORD | DEVIATION_KEYWORD | DEVIATE_KEYWORD | FEATURE_KEYWORD
1303 | FRACTION_DIGITS_KEYWORD | GROUPING_KEYWORD | IDENTITY_KEYWORD | IF_FEATURE_KEYWORD
1304 | IMPORT_KEYWORD | INCLUDE_KEYWORD | INPUT_KEYWORD | KEY_KEYWORD | LEAF_KEYWORD | LEAF_LIST_KEYWORD
1305 | LENGTH_KEYWORD | LIST_KEYWORD | MANDATORY_KEYWORD | MAX_ELEMENTS_KEYWORD | MIN_ELEMENTS_KEYWORD
1306 | MODULE_KEYWORD | MUST_KEYWORD | NAMESPACE_KEYWORD | NOTIFICATION_KEYWORD | ORDERED_BY_KEYWORD
1307 | ORGANIZATION_KEYWORD | OUTPUT_KEYWORD | PATH_KEYWORD | PATTERN_KEYWORD |POSITION_KEYWORD
1308 | PREFIX_KEYWORD | PRESENCE_KEYWORD | RANGE_KEYWORD | REFERENCE_KEYWORD | REFINE_KEYWORD
1309 | REQUIRE_INSTANCE_KEYWORD | REVISION_KEYWORD | REVISION_DATE_KEYWORD | RPC_KEYWORD
1310 | STATUS_KEYWORD | SUBMODULE_KEYWORD | TYPE_KEYWORD | TYPEDEF_KEYWORD | UNIQUE_KEYWORD
1311 | UNITS_KEYWORD | USES_KEYWORD | VALUE_KEYWORD | WHEN_KEYWORD | YANG_VERSION_KEYWORD
1312 | YIN_ELEMENT_KEYWORD | ADD_KEYWORD | CURRENT_KEYWORD | DELETE_KEYWORD | DEPRECATED_KEYWORD
1313 | FALSE_KEYWORD | MAX_KEYWORD | MIN_KEYWORD | NOT_SUPPORTED_KEYWORD | OBSOLETE_KEYWORD
Vidyashree Rama528ef302016-06-30 14:31:18 +05301314 | REPLACE_KEYWORD | SYSTEM_KEYWORD | TRUE_KEYWORD | UNBOUNDED_KEYWORD | USER_KEYWORD
1315 | COMPILER_ANNOTATION_KEYWORD;