%start Yang
%title "Yang grammar"
%comment "YANG grammar by `parol`"
%line_comment "//"
%block_comment "/\*" "\*/"
%on DoubleQuotation %push DQString
%on KwAction, KwAnydata, KwAnyxml, KwArgument, KwBase, KwBelongsTo, KwBit, KwCase, KwChoice, KwContainer, KwDeviation, KwExtension, KwFeature, KwGrouping, KwIdentity, KwImport, KwInclude, KwKey, KwLeaf, KwLeafList, KwList, KwModule, KwNotification, KwPrefix, KwRefine, KwRpc, KwSubmodule, KwType, KwTypedef, KwUses %enter Keyword
%on KwConfig, KwMandatory, KwRequireInstance %enter Mandatory
%on KwDefault %enter Default
%on KwEnum %enter Enum
%on KwFractionDigits %enter Fraction
%on KwIfFeature %enter IfFeature
%on KwLength, KwRange %enter Range
%on KwNamespace %enter Uri
%on KwOrderedBy %enter Ordered
%on KwPosition, KwValue %enter Value
%on KwRevision, KwRevisionDate %enter Revision
%on KwStatus %enter Status
%on KwYangVersion %enter YVersion
%on SingleQuotation %push SQString
%scanner DQString {
%auto_newline_off
%auto_ws_off
%on DoubleQuotation %pop
%on Escape %push Esc
}
%scanner SQString {
%auto_newline_off
%auto_ws_off
%on Escape %push Esc
%on SingleQuotation %pop
}
%scanner Esc {
%auto_newline_off
%auto_ws_off
%on DoubleQuotation, EscN, EscT, Escape, SQEscapeSeqChar %pop
}
%scanner Keyword {
%on LBrace, Semicolon %enter INITIAL
}
%scanner YVersion {
%on Semicolon %enter INITIAL
}
%scanner Range {
%on Semicolon %enter INITIAL
}
%scanner Enum {
%on LBrace, Semicolon %enter INITIAL
}
%scanner Default {
%on Semicolon %enter INITIAL
}
%scanner Revision {
%on LBrace, Semicolon %enter INITIAL
}
%scanner Mandatory {
%on Semicolon %enter INITIAL
}
%scanner IfFeature {
%on Semicolon %enter INITIAL
}
%scanner Status {
%on Semicolon %enter INITIAL
}
%scanner Value {
%on Semicolon %enter INITIAL
}
%scanner Fraction {
%on Semicolon %enter INITIAL
}
%scanner Ordered {
%on Semicolon %enter INITIAL
}
%scanner Uri {
%on Semicolon %enter INITIAL
}
%%
/* 0 */ LBrace: <INITIAL, Keyword, Enum, Revision>'{';
/* 1 */ EscN: <Esc>"n";
/* 2 */ EscT: <Esc>"t";
/* 3 */ KwModule: 'module';
/* 4 */ KwSubmodule: 'submodule';
/* 5 */ KwRpc: 'rpc';
/* 6 */ KwExtension: 'extension';
/* 7 */ KwArgument: 'argument';
/* 8 */ KwFeature: 'feature';
/* 9 */ KwTypedef: 'typedef';
/* 10 */ KwGrouping: 'grouping';
/* 11 */ KwIdentity: 'identity';
/* 12 */ KwAnyxml: 'anyxml';
/* 13 */ KwAnydata: 'anydata';
/* 14 */ KwCase: 'case';
/* 15 */ KwContainer: 'container';
/* 16 */ KwAction: 'action';
/* 17 */ KwNotification: 'notification';
/* 18 */ KwLeafList: 'leaf-list';
/* 19 */ KwLeaf: 'leaf';
/* 20 */ KwList: 'list';
/* 21 */ KwBit: 'bit';
/* 22 */ KwImport: 'import';
/* 23 */ KwInclude: 'include';
/* 24 */ KwPrefix: 'prefix';
/* 25 */ KwBelongsTo: 'belongs-to';
/* 26 */ KwBase: 'base';
/* 27 */ KwChoice: 'choice';
/* 28 */ KwUses: 'uses';
/* 29 */ KwType: 'type';
/* 30 */ KwRefine: 'refine';
/* 31 */ KwKey: 'key';
/* 32 */ KwDeviation: 'deviation';
/* 33 */ KwYangVersion: 'yang-version';
/* 34 */ KwStatus: 'status';
/* 35 */ KwIfFeature: 'if-feature';
/* 36 */ KwMandatory: 'mandatory';
/* 37 */ KwConfig: 'config';
/* 38 */ KwRequireInstance: 'require-instance';
/* 39 */ KwOrderedBy: 'ordered-by';
/* 40 */ KwDefault: 'default';
/* 41 */ KwFractionDigits: 'fraction-digits';
/* 42 */ KwLength: 'length';
/* 43 */ KwRange: 'range';
/* 44 */ KwValue: 'value';
/* 45 */ KwPosition: 'position';
/* 46 */ KwEnum: 'enum';
/* 47 */ KwRevision: 'revision';
/* 48 */ KwRevisionDate: 'revision-date';
/* 49 */ KwNamespace: 'namespace';
/* 50 */ Yang: ModuleStmt;
/* 51 */ Yang: SubmoduleStmt;
/* 52 */ ModuleStmt: KwModule^ /* Clipped */ IdentifierArgStr LBrace^ /* Clipped */ ModuleStmtList /* Vec */ ModuleStmtList0 /* Vec */ ModuleStmtList1 /* Vec */ ModuleStmtList2 /* Vec */ ModuleStmtList3 /* Vec */ '}'^ /* Clipped */;
/* 53 */ ModuleStmtList3 /* Vec<T>::Push */: BodyStmts ModuleStmtList3;
/* 54 */ ModuleStmtList3 /* Vec<T>::New */: ;
/* 55 */ ModuleStmtList2 /* Vec<T>::Push */: RevisionStmt ModuleStmtList2;
/* 56 */ ModuleStmtList2 /* Vec<T>::New */: ;
/* 57 */ ModuleStmtList1 /* Vec<T>::Push */: MetaStmts ModuleStmtList1;
/* 58 */ ModuleStmtList1 /* Vec<T>::New */: ;
/* 59 */ ModuleStmtList0 /* Vec<T>::Push */: LinkageStmts ModuleStmtList0;
/* 60 */ ModuleStmtList0 /* Vec<T>::New */: ;
/* 61 */ ModuleStmtList /* Vec<T>::Push */: ModuleHeaderStmts ModuleStmtList;
/* 62 */ ModuleStmtList /* Vec<T>::New */: ;
/* 63 */ SubmoduleStmt: KwSubmodule^ /* Clipped */ IdentifierArgStr LBrace^ /* Clipped */ SubmoduleStmtList /* Vec */ SubmoduleStmtList0 /* Vec */ SubmoduleStmtList1 /* Vec */ SubmoduleStmtList2 /* Vec */ SubmoduleStmtList3 /* Vec */ '}'^ /* Clipped */;
/* 64 */ SubmoduleStmtList3 /* Vec<T>::Push */: BodyStmts SubmoduleStmtList3;
/* 65 */ SubmoduleStmtList3 /* Vec<T>::New */: ;
/* 66 */ SubmoduleStmtList2 /* Vec<T>::Push */: RevisionStmt SubmoduleStmtList2;
/* 67 */ SubmoduleStmtList2 /* Vec<T>::New */: ;
/* 68 */ SubmoduleStmtList1 /* Vec<T>::Push */: MetaStmts SubmoduleStmtList1;
/* 69 */ SubmoduleStmtList1 /* Vec<T>::New */: ;
/* 70 */ SubmoduleStmtList0 /* Vec<T>::Push */: LinkageStmts SubmoduleStmtList0;
/* 71 */ SubmoduleStmtList0 /* Vec<T>::New */: ;
/* 72 */ SubmoduleStmtList /* Vec<T>::Push */: SubmoduleHeaderStmts SubmoduleStmtList;
/* 73 */ SubmoduleStmtList /* Vec<T>::New */: ;
/* 74 */ ModuleHeaderStmts: YangVersionStmt;
/* 75 */ ModuleHeaderStmts: NamespaceStmt;
/* 76 */ ModuleHeaderStmts: PrefixStmt;
/* 77 */ SubmoduleHeaderStmts: YangVersionStmt;
/* 78 */ SubmoduleHeaderStmts: BelongsToStmt;
/* 79 */ MetaStmts: OrganizationStmt;
/* 80 */ MetaStmts: ContactStmt;
/* 81 */ MetaStmts: DescriptionStmt;
/* 82 */ MetaStmts: ReferenceStmt;
/* 83 */ LinkageStmts: ImportStmt;
/* 84 */ LinkageStmts: IncludeStmt;
/* 85 */ BodyStmts: ExtensionStmt;
/* 86 */ BodyStmts: FeatureStmt;
/* 87 */ BodyStmts: IdentityStmt;
/* 88 */ BodyStmts: TypedefStmt;
/* 89 */ BodyStmts: GroupingStmt;
/* 90 */ BodyStmts: DataDefStmt;
/* 91 */ BodyStmts: AugmentStmt;
/* 92 */ BodyStmts: RpcStmt;
/* 93 */ BodyStmts: NotificationStmt;
/* 94 */ BodyStmts: DeviationStmt;
/* 95 */ BodyStmts: UnknownStmt;
/* 96 */ DataDefStmt: ContainerStmt;
/* 97 */ DataDefStmt: LeafStmt;
/* 98 */ DataDefStmt: LeafListStmt;
/* 99 */ DataDefStmt: ListStmt;
/* 100 */ DataDefStmt: ChoiceStmt;
/* 101 */ DataDefStmt: AnydataStmt;
/* 102 */ DataDefStmt: AnyxmlStmt;
/* 103 */ DataDefStmt: UsesStmt;
/* 104 */ YangVersionStmt: KwYangVersion^ /* Clipped */ YangVersionArgStr Semicolon^ /* Clipped */;
/* 105 */ YangVersionArgStr: YangVersionArg;
/* 106 */ YangVersionArgStr: <YVersion>'"'^ /* Clipped */ YangVersionArg <YVersion>'"'^ /* Clipped */;
/* 107 */ DeviationStmt: KwDeviation^ /* Clipped */ AbsoluteSchemaNodeid Semicolon;
/* 108 */ RpcStmt: KwRpc^ /* Clipped */ IdentifierArgStr RpcStmtSuffix;
/* 109 */ RpcStmtSuffix: Semicolon;
/* 110 */ RpcStmtSuffix: LBrace^ /* Clipped */ RpcStmtList /* Vec */ '}';
/* 111 */ RpcStmtList /* Vec<T>::Push */: RpcStmtListGroup RpcStmtList;
/* 112 */ RpcStmtListGroup: IfFeatureStmt;
/* 113 */ RpcStmtListGroup: StatusStmt;
/* 114 */ RpcStmtListGroup: DescriptionStmt;
/* 115 */ RpcStmtListGroup: ReferenceStmt;
/* 116 */ RpcStmtListGroup: TypedefStmt;
/* 117 */ RpcStmtListGroup: GroupingStmt;
/* 118 */ RpcStmtListGroup: InputStmt;
/* 119 */ RpcStmtListGroup: OutputStmt;
/* 120 */ RpcStmtList /* Vec<T>::New */: ;
/* 121 */ ExtensionStmt: KwExtension^ /* Clipped */ IdentifierArgStr ExtensionStmtSuffix;
/* 122 */ ExtensionStmtSuffix: Semicolon^ /* Clipped */;
/* 123 */ ExtensionStmtSuffix: LBrace^ /* Clipped */ ExtensionStmtList /* Vec */ '}'^ /* Clipped */;
/* 124 */ ExtensionStmtList /* Vec<T>::Push */: ExtensionStmtListGroup ExtensionStmtList;
/* 125 */ ExtensionStmtListGroup: ArgumentStmt;
/* 126 */ ExtensionStmtListGroup: StatusStmt;
/* 127 */ ExtensionStmtListGroup: DescriptionStmt;
/* 128 */ ExtensionStmtListGroup: ReferenceStmt;
/* 129 */ ExtensionStmtList /* Vec<T>::New */: ;
/* 130 */ ArgumentStmt: KwArgument^ /* Clipped */ IdentifierArgStr Semicolon^ /* Clipped */;
/* 131 */ FeatureStmt: KwFeature^ /* Clipped */ IdentifierArgStr FeatureStmtSuffix;
/* 132 */ FeatureStmtSuffix: Semicolon^ /* Clipped */;
/* 133 */ FeatureStmtSuffix: LBrace^ /* Clipped */ FeatureStmtList /* Vec */ '}';
/* 134 */ FeatureStmtList /* Vec<T>::Push */: FeatureStmtListGroup FeatureStmtList;
/* 135 */ FeatureStmtListGroup: IfFeatureStmt;
/* 136 */ FeatureStmtListGroup: StatusStmt;
/* 137 */ FeatureStmtListGroup: DescriptionStmt;
/* 138 */ FeatureStmtListGroup: ReferenceStmt;
/* 139 */ FeatureStmtList /* Vec<T>::New */: ;
/* 140 */ TypedefStmt: KwTypedef^ /* Clipped */ IdentifierArgStr LBrace^ /* Clipped */ TypedefStmtList /* Vec */ '}'^ /* Clipped */;
/* 141 */ TypedefStmtList /* Vec<T>::Push */: TypedefStmtListGroup TypedefStmtList;
/* 142 */ TypedefStmtListGroup: TypeStmt;
/* 143 */ TypedefStmtListGroup: UnitsStmt;
/* 144 */ TypedefStmtListGroup: DefaultStmt;
/* 145 */ TypedefStmtListGroup: StatusStmt;
/* 146 */ TypedefStmtListGroup: DescriptionStmt;
/* 147 */ TypedefStmtListGroup: ReferenceStmt;
/* 148 */ TypedefStmtList /* Vec<T>::New */: ;
/* 149 */ AugmentStmt: 'augment'^ /* Clipped */ AugmentArgStr LBrace^ /* Clipped */ AugmentStmtList /* Vec */ '}'^ /* Clipped */;
/* 150 */ AugmentStmtList /* Vec<T>::Push */: AugmentStmtListGroup AugmentStmtList;
/* 151 */ AugmentStmtListGroup: WhenStmt;
/* 152 */ AugmentStmtListGroup: IfFeatureStmt;
/* 153 */ AugmentStmtListGroup: StatusStmt;
/* 154 */ AugmentStmtListGroup: DescriptionStmt;
/* 155 */ AugmentStmtListGroup: ReferenceStmt;
/* 156 */ AugmentStmtListGroup: DataDefStmt;
/* 157 */ AugmentStmtListGroup: CaseStmt;
/* 158 */ AugmentStmtListGroup: ActionStmt;
/* 159 */ AugmentStmtListGroup: NotificationStmt;
/* 160 */ AugmentStmtList /* Vec<T>::New */: ;
/* 161 */ AugmentArgStr: Ystring;
/* 162 */ WhenStmt: 'when'^ /* Clipped */ Ystring WhenStmtSuffix;
/* 163 */ WhenStmtSuffix: Semicolon^ /* Clipped */;
/* 164 */ WhenStmtSuffix: LBrace^ /* Clipped */ WhenStmtList /* Vec */ '}';
/* 165 */ WhenStmtList /* Vec<T>::Push */: WhenStmtListGroup WhenStmtList;
/* 166 */ WhenStmtListGroup: DescriptionStmt;
/* 167 */ WhenStmtListGroup: ReferenceStmt;
/* 168 */ WhenStmtList /* Vec<T>::New */: ;
/* 169 */ GroupingStmt: KwGrouping^ /* Clipped */ IdentifierArgStr LBrace^ /* Clipped */ GroupingStmtList /* Vec */ '}'^ /* Clipped */;
/* 170 */ GroupingStmtList /* Vec<T>::Push */: GroupingStmtListGroup GroupingStmtList;
/* 171 */ GroupingStmtListGroup: StatusStmt;
/* 172 */ GroupingStmtListGroup: DescriptionStmt;
/* 173 */ GroupingStmtListGroup: ReferenceStmt;
/* 174 */ GroupingStmtListGroup: TypedefStmt;
/* 175 */ GroupingStmtListGroup: GroupingStmt;
/* 176 */ GroupingStmtListGroup: DataDefStmt;
/* 177 */ GroupingStmtListGroup: ActionStmt;
/* 178 */ GroupingStmtListGroup: NotificationStmt;
/* 179 */ GroupingStmtListGroup: UnknownStmt;
/* 180 */ GroupingStmtList /* Vec<T>::New */: ;
/* 181 */ IdentityStmt: KwIdentity^ /* Clipped */ IdentifierArgStr LBrace^ /* Clipped */ IdentityStmtList /* Vec */ '}'^ /* Clipped */;
/* 182 */ IdentityStmtList /* Vec<T>::Push */: IdentityStmtListGroup IdentityStmtList;
/* 183 */ IdentityStmtListGroup: IfFeatureStmt;
/* 184 */ IdentityStmtListGroup: BaseStmt;
/* 185 */ IdentityStmtListGroup: DescriptionStmt;
/* 186 */ IdentityStmtListGroup: ReferenceStmt;
/* 187 */ IdentityStmtList /* Vec<T>::New */: ;
/* 188 */ BaseStmt: KwBase^ /* Clipped */ IdentifierRefArgStr Semicolon^ /* Clipped */;
/* 189 */ AnyxmlStmt: KwAnyxml^ /* Clipped */ IdentifierArgStr AnyxmlStmtSuffix;
/* 190 */ AnyxmlStmtSuffix: Semicolon^ /* Clipped */;
/* 191 */ AnyxmlStmtSuffix: LBrace^ /* Clipped */ AnyxmlStmtList /* Vec */ '}'^ /* Clipped */;
/* 192 */ AnyxmlStmtList /* Vec<T>::Push */: AnyxmlStmtListGroup AnyxmlStmtList;
/* 193 */ AnyxmlStmtListGroup: WhenStmt;
/* 194 */ AnyxmlStmtListGroup: IfFeatureStmt;
/* 195 */ AnyxmlStmtListGroup: MustStmt;
/* 196 */ AnyxmlStmtListGroup: ConfigStmt;
/* 197 */ AnyxmlStmtListGroup: MandatoryStmt;
/* 198 */ AnyxmlStmtListGroup: StatusStmt;
/* 199 */ AnyxmlStmtListGroup: DescriptionStmt;
/* 200 */ AnyxmlStmtListGroup: ReferenceStmt;
/* 201 */ AnyxmlStmtList /* Vec<T>::New */: ;
/* 202 */ ChoiceStmt: KwChoice^ /* Clipped */ IdentifierRefArgStr ChoiceStmtSuffix;
/* 203 */ ChoiceStmtSuffix: Semicolon^ /* Clipped */;
/* 204 */ ChoiceStmtSuffix: LBrace^ /* Clipped */ ChoiceStmtList /* Vec */ '}';
/* 205 */ ChoiceStmtList /* Vec<T>::Push */: ChoiceStmtListGroup ChoiceStmtList;
/* 206 */ ChoiceStmtListGroup: WhenStmt;
/* 207 */ ChoiceStmtListGroup: IfFeatureStmt;
/* 208 */ ChoiceStmtListGroup: DefaultStmt;
/* 209 */ ChoiceStmtListGroup: ConfigStmt;
/* 210 */ ChoiceStmtListGroup: MandatoryStmt;
/* 211 */ ChoiceStmtListGroup: StatusStmt;
/* 212 */ ChoiceStmtListGroup: DescriptionStmt;
/* 213 */ ChoiceStmtListGroup: ReferenceStmt;
/* 214 */ ChoiceStmtListGroup: ShortCaseStmt;
/* 215 */ ChoiceStmtListGroup: CaseStmt;
/* 216 */ ChoiceStmtList /* Vec<T>::New */: ;
/* 217 */ ShortCaseStmt: ChoiceStmt;
/* 218 */ ShortCaseStmt: ContainerStmt;
/* 219 */ ShortCaseStmt: LeafStmt;
/* 220 */ ShortCaseStmt: LeafListStmt;
/* 221 */ ShortCaseStmt: ListStmt;
/* 222 */ ShortCaseStmt: AnydataStmt;
/* 223 */ ShortCaseStmt: AnyxmlStmt;
/* 224 */ AnydataStmt: KwAnydata^ /* Clipped */ IdentifierArgStr AnydataStmtSuffix;
/* 225 */ AnydataStmtSuffix: Semicolon^ /* Clipped */;
/* 226 */ AnydataStmtSuffix: LBrace^ /* Clipped */ AnydataStmtList /* Vec */ '}'^ /* Clipped */;
/* 227 */ AnydataStmtList /* Vec<T>::Push */: AnydataStmtListGroup AnydataStmtList;
/* 228 */ AnydataStmtListGroup: WhenStmt;
/* 229 */ AnydataStmtListGroup: IfFeatureStmt;
/* 230 */ AnydataStmtListGroup: MustStmt;
/* 231 */ AnydataStmtListGroup: ConfigStmt;
/* 232 */ AnydataStmtListGroup: MandatoryStmt;
/* 233 */ AnydataStmtListGroup: StatusStmt;
/* 234 */ AnydataStmtListGroup: DescriptionStmt;
/* 235 */ AnydataStmtListGroup: ReferenceStmt;
/* 236 */ AnydataStmtList /* Vec<T>::New */: ;
/* 237 */ CaseStmt: KwCase^ /* Clipped */ IdentifierArgStr CaseStmtSuffix;
/* 238 */ CaseStmtSuffix: Semicolon^ /* Clipped */;
/* 239 */ CaseStmtSuffix: LBrace^ /* Clipped */ CaseStmtList /* Vec */ '}'^ /* Clipped */;
/* 240 */ CaseStmtList /* Vec<T>::Push */: CaseStmtListGroup CaseStmtList;
/* 241 */ CaseStmtListGroup: WhenStmt;
/* 242 */ CaseStmtListGroup: IfFeatureStmt;
/* 243 */ CaseStmtListGroup: DataDefStmt;
/* 244 */ CaseStmtListGroup: DescriptionStmt;
/* 245 */ CaseStmtListGroup: ReferenceStmt;
/* 246 */ CaseStmtList /* Vec<T>::New */: ;
/* 247 */ StatusStmt: KwStatus^ /* Clipped */ StatusArgStr Semicolon^ /* Clipped */;
/* 248 */ StatusArgStr: StatusArg;
/* 249 */ StatusArgStr: <Status>'"'^ /* Clipped */ StatusArg <Status>'"'^ /* Clipped */;
/* 250 */ StatusArg: <Status>/current|obsolete|deprecated/;
/* 251 */ ContainerStmt: KwContainer^ /* Clipped */ IdentifierArgStr ContainerStmtSuffix;
/* 252 */ ContainerStmtSuffix: Semicolon^ /* Clipped */;
/* 253 */ ContainerStmtSuffix: LBrace^ /* Clipped */ ContainerStmtList /* Vec */ '}'^ /* Clipped */;
/* 254 */ ContainerStmtList /* Vec<T>::Push */: ContainerStmtListGroup ContainerStmtList;
/* 255 */ ContainerStmtListGroup: WhenStmt;
/* 256 */ ContainerStmtListGroup: IfFeatureStmt;
/* 257 */ ContainerStmtListGroup: MustStmt;
/* 258 */ ContainerStmtListGroup: PresenceStmt;
/* 259 */ ContainerStmtListGroup: ConfigStmt;
/* 260 */ ContainerStmtListGroup: StatusStmt;
/* 261 */ ContainerStmtListGroup: DescriptionStmt;
/* 262 */ ContainerStmtListGroup: ReferenceStmt;
/* 263 */ ContainerStmtListGroup: DataDefStmt;
/* 264 */ ContainerStmtListGroup: ActionStmt;
/* 265 */ ContainerStmtListGroup: NotificationStmt;
/* 266 */ ContainerStmtListGroup: UnknownStmt;
/* 267 */ ContainerStmtList /* Vec<T>::New */: ;
/* 268 */ ActionStmt: KwAction^ /* Clipped */ IdentifierArgStr ActionStmtSuffix;
/* 269 */ ActionStmtSuffix: Semicolon;
/* 270 */ ActionStmtSuffix: LBrace^ /* Clipped */ ActionStmtList /* Vec */ '}';
/* 271 */ ActionStmtList /* Vec<T>::Push */: ActionStmtListGroup ActionStmtList;
/* 272 */ ActionStmtListGroup: IfFeatureStmt;
/* 273 */ ActionStmtListGroup: StatusStmt;
/* 274 */ ActionStmtListGroup: DescriptionStmt;
/* 275 */ ActionStmtListGroup: ReferenceStmt;
/* 276 */ ActionStmtListGroup: InputStmt;
/* 277 */ ActionStmtListGroup: OutputStmt;
/* 278 */ ActionStmtList /* Vec<T>::New */: ;
/* 279 */ InputStmt: 'input' LBrace^ /* Clipped */ InputStmtList /* Vec */ '}';
/* 280 */ InputStmtList /* Vec<T>::Push */: DataDefStmt InputStmtList;
/* 281 */ InputStmtList /* Vec<T>::New */: ;
/* 282 */ OutputStmt: 'output' LBrace^ /* Clipped */ OutputStmtList /* Vec */ '}';
/* 283 */ OutputStmtList /* Vec<T>::Push */: DataDefStmt OutputStmtList;
/* 284 */ OutputStmtList /* Vec<T>::New */: ;
/* 285 */ NotificationStmt: KwNotification^ /* Clipped */ IdentifierArgStr LBrace^ /* Clipped */ NotificationStmtList /* Vec */ '}';
/* 286 */ NotificationStmtList /* Vec<T>::Push */: NotificationStmtListGroup NotificationStmtList;
/* 287 */ NotificationStmtListGroup: IfFeatureStmt;
/* 288 */ NotificationStmtListGroup: MustStmt;
/* 289 */ NotificationStmtListGroup: StatusStmt;
/* 290 */ NotificationStmtListGroup: DescriptionStmt;
/* 291 */ NotificationStmtListGroup: ReferenceStmt;
/* 292 */ NotificationStmtListGroup: TypedefStmt;
/* 293 */ NotificationStmtListGroup: GroupingStmt;
/* 294 */ NotificationStmtListGroup: DataDefStmt;
/* 295 */ NotificationStmtList /* Vec<T>::New */: ;
/* 296 */ IfFeatureStmt: KwIfFeature^ /* Clipped */ IfFeatureExprStr Semicolon^ /* Clipped */;
/* 297 */ IfFeatureExprStr: IfFeatureExpr;
/* 298 */ IfFeatureExpr: IfFeatureTerm IfFeatureExprOpt /* Option */;
/* 299 */ IfFeatureExprOpt /* Option<T>::Some */: <IfFeature>'or' IfFeatureExpr;
/* 300 */ IfFeatureExprOpt /* Option<T>::None */: ;
/* 301 */ IfFeatureTerm: IfFeatureFactor IfFeatureTermOpt /* Option */;
/* 302 */ IfFeatureTermOpt /* Option<T>::Some */: <IfFeature>'and' IfFeatureTerm;
/* 303 */ IfFeatureTermOpt /* Option<T>::None */: ;
/* 304 */ IfFeatureFactor: <IfFeature>'not' IfFeatureFactor;
/* 305 */ IfFeatureFactor: <IfFeature>'(' IfFeatureExpr <IfFeature>')';
/* 306 */ IfFeatureFactor: Identifier;
/* 307 */ IfFeatureFactor: <IfFeature>'"' Identifier <IfFeature>'"';
/* 308 */ PresenceStmt: 'presence'^ /* Clipped */ Ystring Semicolon^ /* Clipped */;
/* 309 */ UsesStmt: KwUses^ /* Clipped */ IdentifierRefArgStr UsesStmtSuffix;
/* 310 */ UsesStmtSuffix: Semicolon^ /* Clipped */;
/* 311 */ UsesStmtSuffix: LBrace^ /* Clipped */ UsesStmtList /* Vec */ '}'^ /* Clipped */;
/* 312 */ UsesStmtList /* Vec<T>::Push */: UsesStmtListGroup UsesStmtList;
/* 313 */ UsesStmtListGroup: WhenStmt;
/* 314 */ UsesStmtListGroup: IfFeatureStmt;
/* 315 */ UsesStmtListGroup: StatusStmt;
/* 316 */ UsesStmtListGroup: DescriptionStmt;
/* 317 */ UsesStmtListGroup: ReferenceStmt;
/* 318 */ UsesStmtListGroup: RefineStmt;
/* 319 */ UsesStmtListGroup: AugmentStmt;
/* 320 */ UsesStmtList /* Vec<T>::New */: ;
/* 321 */ RefineStmt: KwRefine^ /* Clipped */ RefineArgStr RefineStmtSuffix;
/* 322 */ RefineStmtSuffix: Semicolon^ /* Clipped */;
/* 323 */ RefineStmtSuffix: LBrace^ /* Clipped */ RefineStmtList /* Vec */ '}'^ /* Clipped */;
/* 324 */ RefineStmtList /* Vec<T>::Push */: RefineStmtListGroup RefineStmtList;
/* 325 */ RefineStmtListGroup: IfFeatureStmt;
/* 326 */ RefineStmtListGroup: MustStmt;
/* 327 */ RefineStmtListGroup: PresenceStmt;
/* 328 */ RefineStmtListGroup: DefaultStmt;
/* 329 */ RefineStmtListGroup: ConfigStmt;
/* 330 */ RefineStmtListGroup: MandatoryStmt;
/* 331 */ RefineStmtListGroup: MinElementsStmt;
/* 332 */ RefineStmtListGroup: MaxElementsStmt;
/* 333 */ RefineStmtListGroup: DescriptionStmt;
/* 334 */ RefineStmtListGroup: ReferenceStmt;
/* 335 */ RefineStmtList /* Vec<T>::New */: ;
/* 336 */ RefineArgStr: RefineArg;
/* 337 */ RefineArgStr: <Keyword>'"' RefineArg <Keyword>'"';
/* 338 */ RefineArg: DescendantSchemaNodeid;
/* 339 */ DescendantSchemaNodeid: IdentifierRef;
/* 340 */ DescendantSchemaNodeid: AbsoluteSchemaNodeid;
/* 341 */ UnknownStmt: IdentifierRef Ystring UnknownStmtSuffix;
/* 342 */ UnknownStmtSuffix: Semicolon^ /* Clipped */;
/* 343 */ UnknownStmtSuffix: LBrace^ /* Clipped */ UnknownStmtList /* Vec */ '}'^ /* Clipped */;
/* 344 */ UnknownStmtList /* Vec<T>::Push */: UnknownStmtListGroup UnknownStmtList;
/* 345 */ UnknownStmtListGroup: TypeStmt;
/* 346 */ UnknownStmtListGroup: DescriptionStmt;
/* 347 */ UnknownStmtList /* Vec<T>::New */: ;
/* 348 */ LeafListStmt: KwLeafList^ /* Clipped */ IdentifierArgStr LBrace^ /* Clipped */ LeafListStmtList /* Vec */ '}'^ /* Clipped */;
/* 349 */ LeafListStmtList /* Vec<T>::Push */: LeafListStmtListGroup LeafListStmtList;
/* 350 */ LeafListStmtListGroup: WhenStmt;
/* 351 */ LeafListStmtListGroup: IfFeatureStmt;
/* 352 */ LeafListStmtListGroup: TypeStmt;
/* 353 */ LeafListStmtListGroup: UnitsStmt;
/* 354 */ LeafListStmtListGroup: MustStmt;
/* 355 */ LeafListStmtListGroup: DefaultStmt;
/* 356 */ LeafListStmtListGroup: ConfigStmt;
/* 357 */ LeafListStmtListGroup: MinElementsStmt;
/* 358 */ LeafListStmtListGroup: MaxElementsStmt;
/* 359 */ LeafListStmtListGroup: OrderedByStmt;
/* 360 */ LeafListStmtListGroup: StatusStmt;
/* 361 */ LeafListStmtListGroup: DescriptionStmt;
/* 362 */ LeafListStmtListGroup: ReferenceStmt;
/* 363 */ LeafListStmtListGroup: UnknownStmt;
/* 364 */ LeafListStmtList /* Vec<T>::New */: ;
/* 365 */ LeafStmt: KwLeaf^ /* Clipped */ IdentifierArgStr LBrace^ /* Clipped */ LeafStmtList /* Vec */ '}'^ /* Clipped */;
/* 366 */ LeafStmtList /* Vec<T>::Push */: LeafStmtListGroup LeafStmtList;
/* 367 */ LeafStmtListGroup: WhenStmt;
/* 368 */ LeafStmtListGroup: StatusStmt;
/* 369 */ LeafStmtListGroup: IfFeatureStmt;
/* 370 */ LeafStmtListGroup: TypeStmt;
/* 371 */ LeafStmtListGroup: UnitsStmt;
/* 372 */ LeafStmtListGroup: MustStmt;
/* 373 */ LeafStmtListGroup: DefaultStmt;
/* 374 */ LeafStmtListGroup: ConfigStmt;
/* 375 */ LeafStmtListGroup: MandatoryStmt;
/* 376 */ LeafStmtListGroup: DescriptionStmt;
/* 377 */ LeafStmtListGroup: ReferenceStmt;
/* 378 */ LeafStmtListGroup: UnknownStmt;
/* 379 */ LeafStmtList /* Vec<T>::New */: ;
/* 380 */ MustStmt: 'must'^ /* Clipped */ Ystring MustStmtSuffix;
/* 381 */ MustStmtSuffix: Semicolon^ /* Clipped */;
/* 382 */ MustStmtSuffix: LBrace^ /* Clipped */ MustStmtList /* Vec */ '}'^ /* Clipped */;
/* 383 */ MustStmtList /* Vec<T>::Push */: MustStmtListGroup MustStmtList;
/* 384 */ MustStmtListGroup: ErrorMessage;
/* 385 */ MustStmtListGroup: DescriptionStmt;
/* 386 */ MustStmtList /* Vec<T>::New */: ;
/* 387 */ ErrorMessage: 'error-message' Ystring Semicolon;
/* 388 */ UnitsStmt: 'units' Ystring Semicolon;
/* 389 */ ConfigStmt: KwConfig^ /* Clipped */ MandatoryArgStr Semicolon;
/* 390 */ MandatoryStmt: KwMandatory^ /* Clipped */ MandatoryArgStr Semicolon;
/* 391 */ MandatoryArgStr: MandatoryArg;
/* 392 */ MandatoryArgStr: <Mandatory>'"' MandatoryArg <Mandatory>'"';
/* 393 */ MandatoryArg: <Mandatory>/true|false/;
/* 394 */ ListStmt: KwList^ /* Clipped */ IdentifierArgStr LBrace^ /* Clipped */ ListStmtList /* Vec */ '}'^ /* Clipped */;
/* 395 */ ListStmtList /* Vec<T>::Push */: ListStmtListGroup ListStmtList;
/* 396 */ ListStmtListGroup: WhenStmt;
/* 397 */ ListStmtListGroup: IfFeatureStmt;
/* 398 */ ListStmtListGroup: MustStmt;
/* 399 */ ListStmtListGroup: KeyStmt;
/* 400 */ ListStmtListGroup: ConfigStmt;
/* 401 */ ListStmtListGroup: MinElementsStmt;
/* 402 */ ListStmtListGroup: MaxElementsStmt;
/* 403 */ ListStmtListGroup: OrderedByStmt;
/* 404 */ ListStmtListGroup: StatusStmt;
/* 405 */ ListStmtListGroup: DescriptionStmt;
/* 406 */ ListStmtListGroup: ReferenceStmt;
/* 407 */ ListStmtListGroup: DataDefStmt;
/* 408 */ ListStmtListGroup: ActionStmt;
/* 409 */ ListStmtListGroup: NotificationStmt;
/* 410 */ ListStmtListGroup: UnknownStmt;
/* 411 */ ListStmtList /* Vec<T>::New */: ;
/* 412 */ OrderedByStmt: KwOrderedBy^ /* Clipped */ OrderedByArgStr Semicolon^ /* Clipped */;
/* 413 */ OrderedByArgStr: OrderedByArg;
/* 414 */ OrderedByArgStr: <Ordered>'"' OrderedByArg <Ordered>'"';
/* 415 */ OrderedByArg: <Ordered>/user|system/;
/* 416 */ DefaultStmt: KwDefault^ /* Clipped */ DefaultStmtSuffix;
/* 417 */ DefaultStmtSuffix: AsciiNoSemicolon Semicolon^ /* Clipped */;
/* 418 */ DefaultStmtSuffix: <Default>'"' AsciiNoSemicolon <Default>'"' Semicolon^ /* Clipped */;
/* 419 */ MaxElementsStmt: 'max-elements'^ /* Clipped */ /[1-9][0-9]*/ Semicolon^ /* Clipped */;
/* 420 */ MinElementsStmt: 'min-elements'^ /* Clipped */ /[1-9][0-9]*/ Semicolon^ /* Clipped */;
/* 421 */ TypeStmt: KwType^ /* Clipped */ IdentifierRefArgStr TypeStmtSuffix;
/* 422 */ TypeStmtSuffix: Semicolon^ /* Clipped */;
/* 423 */ TypeStmtSuffix: LBrace^ /* Clipped */ TypeStmtList /* Vec */ <INITIAL, Keyword>'}'^ /* Clipped */;
/* 424 */ TypeStmtList /* Vec<T>::Push */: TypeStmtListGroup TypeStmtList;
/* 425 */ TypeStmtListGroup: FractionDigitsStmt;
/* 426 */ TypeStmtListGroup: EnumStmt;
/* 427 */ TypeStmtListGroup: BaseStmt;
/* 428 */ TypeStmtListGroup: LeafrefSpecification;
/* 429 */ TypeStmtListGroup: StringRestrictions;
/* 430 */ TypeStmtListGroup: RangeStmt;
/* 431 */ TypeStmtListGroup: BitStmt;
/* 432 */ TypeStmtListGroup: TypeStmt;
/* 433 */ TypeStmtList /* Vec<T>::New */: ;
/* 434 */ FractionDigitsStmt: KwFractionDigits^ /* Clipped */ FractionDigitsArg Semicolon^ /* Clipped */;
/* 435 */ FractionDigitsArg: <Fraction>/1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|/;
/* 436 */ BitStmt: KwBit^ /* Clipped */ IdentifierArgStr BitStmtSuffix;
/* 437 */ BitStmtSuffix: Semicolon^ /* Clipped */;
/* 438 */ BitStmtSuffix: LBrace^ /* Clipped */ BitStmtList /* Vec */ '}'^ /* Clipped */;
/* 439 */ BitStmtList /* Vec<T>::Push */: BitStmtListGroup BitStmtList;
/* 440 */ BitStmtListGroup: PositionStmt;
/* 441 */ BitStmtListGroup: DescriptionStmt;
/* 442 */ BitStmtListGroup: ReferenceStmt;
/* 443 */ BitStmtList /* Vec<T>::New */: ;
/* 444 */ PositionStmt: KwPosition^ /* Clipped */ IntegerValueStr Semicolon^ /* Clipped */;
/* 445 */ LeafrefSpecification: PathStmt;
/* 446 */ LeafrefSpecification: RequireInstanceStmt;
/* 447 */ RequireInstanceStmt: KwRequireInstance^ /* Clipped */ RequireInstanceArgStr Semicolon;
/* 448 */ RequireInstanceArgStr: MandatoryArg;
/* 449 */ RequireInstanceArgStr: <Mandatory>'"' MandatoryArg <Mandatory>'"';
/* 450 */ PathStmt: 'path'^ /* Clipped */ Ystring Semicolon^ /* Clipped */;
/* 451 */ StringRestrictions: LengthStmt;
/* 452 */ StringRestrictions: PatternStmt;
/* 453 */ PatternStmt: 'pattern' Ystring Semicolon;
/* 454 */ LengthStmt: KwLength^ /* Clipped */ RangeArgStr Semicolon^ /* Clipped */;
/* 455 */ EnumStmt: KwEnum^ /* Clipped */ EnumArgStr EnumStmtSuffix;
/* 456 */ EnumStmtSuffix: Semicolon^ /* Clipped */;
/* 457 */ EnumStmtSuffix: LBrace^ /* Clipped */ EnumStmtList /* Vec */ '}'^ /* Clipped */;
/* 458 */ EnumStmtList /* Vec<T>::Push */: EnumStmtListGroup EnumStmtList;
/* 459 */ EnumStmtListGroup: IfFeatureStmt;
/* 460 */ EnumStmtListGroup: DescriptionStmt;
/* 461 */ EnumStmtListGroup: ValueStmt;
/* 462 */ EnumStmtListGroup: ReferenceStmt;
/* 463 */ EnumStmtList /* Vec<T>::New */: ;
/* 464 */ ValueStmt: KwValue^ /* Clipped */ IntegerValueStr Semicolon^ /* Clipped */;
/* 465 */ IntegerValueStr: IntegerValue;
/* 466 */ IntegerValueStr: <Value>'"' IntegerValue <Value>'"';
/* 467 */ IntegerValue: <Value>/[0-9]+/;
/* 468 */ EnumArgStr: AsciiNoBrace;
/* 469 */ EnumArgStr: <Enum>'"'^ /* Clipped */ AsciiNoBrace <Enum>'"'^ /* Clipped */;
/* 470 */ RangeStmt: KwRange^ /* Clipped */ RangeArgStr Semicolon^ /* Clipped */;
/* 471 */ RangeArgStr: RangeArg;
/* 472 */ RangeArgStr: <Range>'"'^ /* Clipped */ RangeArg <Range>'"'^ /* Clipped */;
/* 473 */ RangeArg: RangePart RangeArgOpt /* Option */;
/* 474 */ RangeArgOpt /* Option<T>::Some */: <Range>'|' RangeArg;
/* 475 */ RangeArgOpt /* Option<T>::None */: ;
/* 476 */ RangePart: RangeBoundary RangePartOpt /* Option */;
/* 477 */ RangePartOpt /* Option<T>::Some */: <Range>'..' RangeBoundary;
/* 478 */ RangePartOpt /* Option<T>::None */: ;
/* 479 */ RangeBoundary: <Range>'min';
/* 480 */ RangeBoundary: <Range>'max';
/* 481 */ RangeBoundary: <Range>"-?[0-9]+";
/* 482 */ IdentifierRefArgStr: IdentifierRef;
/* 483 */ IdentifierRefArgStr: <Keyword, IfFeature>'"' IdentifierRef <Keyword, IfFeature>'"';
/* 484 */ IdentifierRef: IdentifierRefOpt /* Option */ Identifier;
/* 485 */ IdentifierRefOpt /* Option<T>::Some */: Identifier <Keyword, IfFeature>':';
/* 486 */ IdentifierRefOpt /* Option<T>::None */: ;
/* 487 */ KeyStmt: KwKey^ /* Clipped */ KeyArgStr Semicolon^ /* Clipped */;
/* 488 */ KeyArgStr: KeyArg;
/* 489 */ KeyArgStr: <Keyword>'"'^ /* Clipped */ KeyArg <Keyword>'"'^ /* Clipped */;
/* 490 */ Semicolon: <INITIAL, Keyword, YVersion, Range, Enum, Default, Revision, Mandatory, IfFeature, Status, Value, Fraction, Ordered, Uri>';';
/* 491 */ KeyArg: IdentifierRef KeyArgOpt /* Option */;
/* 492 */ KeyArgOpt /* Option<T>::Some */: KeyArg;
/* 493 */ KeyArgOpt /* Option<T>::None */: ;
/* 494 */ AbsoluteSchemaNodeid: <Keyword, IfFeature>'/' IdentifierRef;
/* 495 */ ImportStmt: KwImport^ /* Clipped */ IdentifierArgStr LBrace^ /* Clipped */ ImportStmtList /* Vec */ '}'^ /* Clipped */;
/* 496 */ ImportStmtList /* Vec<T>::Push */: ImportStmtListGroup ImportStmtList;
/* 497 */ ImportStmtListGroup: PrefixStmt;
/* 498 */ ImportStmtListGroup: RevisionDateStmt;
/* 499 */ ImportStmtListGroup: DescriptionStmt;
/* 500 */ ImportStmtListGroup: ReferenceStmt;
/* 501 */ ImportStmtList /* Vec<T>::New */: ;
/* 502 */ IncludeStmt: KwInclude^ /* Clipped */ IdentifierArgStr IncludeStmtSuffix;
/* 503 */ IncludeStmtSuffix: Semicolon^ /* Clipped */;
/* 504 */ IncludeStmtSuffix: LBrace^ /* Clipped */ IncludeStmtList /* Vec */ '}'^ /* Clipped */;
/* 505 */ IncludeStmtList /* Vec<T>::Push */: IncludeStmtListGroup IncludeStmtList;
/* 506 */ IncludeStmtListGroup: RevisionDateStmt;
/* 507 */ IncludeStmtListGroup: DescriptionStmt;
/* 508 */ IncludeStmtListGroup: ReferenceStmt;
/* 509 */ IncludeStmtList /* Vec<T>::New */: ;
/* 510 */ RevisionDateStmt: KwRevisionDate^ /* Clipped */ DateArgStr Semicolon^ /* Clipped */;
/* 511 */ NamespaceStmt: KwNamespace^ /* Clipped */ UriStr Semicolon^ /* Clipped */;
/* 512 */ UriStr: UriArg;
/* 513 */ UriStr: <Uri>'"'^ /* Clipped */ UriArg <Uri>'"'^ /* Clipped */;
/* 514 */ UriArg: <Uri>"urn:[a-zA-Z0-9\-\.:]+";
/* 515 */ PrefixStmt: KwPrefix^ /* Clipped */ IdentifierArgStr Semicolon^ /* Clipped */;
/* 516 */ BelongsToStmt: KwBelongsTo^ /* Clipped */ IdentifierArgStr LBrace^ /* Clipped */ PrefixStmt '}'^ /* Clipped */;
/* 517 */ OrganizationStmt: 'organization'^ /* Clipped */ Ystring Semicolon;
/* 518 */ ContactStmt: 'contact'^ /* Clipped */ Ystring Semicolon;
/* 519 */ DescriptionStmt: 'description'^ /* Clipped */ Ystring Semicolon^ /* Clipped */;
/* 520 */ ReferenceStmt: 'reference'^ /* Clipped */ Ystring Semicolon^ /* Clipped */;
/* 521 */ RevisionStmt: KwRevision^ /* Clipped */ DateArgStr LBrace^ /* Clipped */ RevisionStmtList /* Vec */ '}'^ /* Clipped */;
/* 522 */ RevisionStmtList /* Vec<T>::Push */: RevisionStmtListGroup RevisionStmtList;
/* 523 */ RevisionStmtListGroup: DescriptionStmt;
/* 524 */ RevisionStmtListGroup: ReferenceStmt;
/* 525 */ RevisionStmtList /* Vec<T>::New */: ;
/* 526 */ DateArgStr: DateArg;
/* 527 */ DateArgStr: <Revision>'"'^ /* Clipped */ DateArg <Revision>'"'^ /* Clipped */;
/* 528 */ DateArg: <Revision>/\d{4}-\d{2}-\d{2}/;
/* 529 */ Ystring: BasicString YstringOpt /* Option */;
/* 530 */ Ystring: Identifier;
/* 531 */ YstringOpt /* Option<T>::Some */: '+' Ystring;
/* 532 */ YstringOpt /* Option<T>::None */: ;
/* 533 */ BasicString: DQString;
/* 534 */ BasicString: SQString;
/* 535 */ DoubleQuotation: <INITIAL, DQString, Esc>'"';
/* 536 */ DQString: DoubleQuotation^ /* Clipped */ DQStringList /* Vec */ DoubleQuotation^ /* Clipped */;
/* 537 */ DQStringList /* Vec<T>::Push */: DQChar DQStringList;
/* 538 */ DQStringList /* Vec<T>::New */: ;
/* 539 */ DQChar: DQUnescaped;
/* 540 */ DQChar: DQEscaped;
/* 541 */ DQUnescaped: DQNoEscape;
/* 542 */ DQUnescaped: NonAscii;
/* 543 */ DQEscaped: Escape DQEscapeSeqChar;
/* 544 */ DQEscapeSeqChar: Escape;
/* 545 */ DQEscapeSeqChar: DoubleQuotation;
/* 546 */ DQEscapeSeqChar: EscN;
/* 547 */ DQEscapeSeqChar: EscT;
/* 548 */ Escape: <DQString, SQString, Esc>"\u{5C}";
/* 549 */ NonAscii: <DQString, SQString>"[\n\r\u{80}-\u{D7FF}\u{E000}-\u{10FFFF}]";
/* 550 */ DQNoEscape: <DQString>"[ \n\r\t\u{21}\u{23}-\u{5B}\u{5D}-\u{7E}]+";
/* 551 */ SQString: SingleQuotation SQStringList /* Vec */ SingleQuotation;
/* 552 */ SQStringList /* Vec<T>::Push */: SQChar SQStringList;
/* 553 */ SQStringList /* Vec<T>::New */: ;
/* 554 */ SQChar: SQUnescaped;
/* 555 */ SQChar: SQEscaped;
/* 556 */ SQEscaped: Escape SQEscapeSeqChar;
/* 557 */ SQEscapeSeqChar: <Esc>".";
/* 558 */ SQUnescaped: SQNoEscape;
/* 559 */ SQUnescaped: NonAscii;
/* 560 */ SQNoEscape: <SQString>"[ \t\u{21}-\u{26}\u{28}-\u{5B}\u{5D}-\u{7E}]+";
/* 561 */ SingleQuotation: <INITIAL, SQString>"\u{27}";
/* 562 */ IdentifierArgStr: Identifier;
/* 563 */ IdentifierArgStr: <Keyword>'"'^ /* Clipped */ Identifier <Keyword>'"'^ /* Clipped */;
/* 564 */ Identifier: <INITIAL, Keyword, IfFeature>/[a-zA-Z_][a-zA-Z0-9_\-\/\.:]*/;
/* 565 */ AsciiNoSemicolon: <Default>/[ \t\u{21}\u{23}-\u{3a}\u{3c}-\u{5b}\u{5d}-\u{7e}]+/;
/* 566 */ AsciiNoBrace: <Enum>/[\t\u{21}\u{23}-\u{3a}\u{3c}-\u{5b}\u{5d}-\u{7a}\u{7c}\u{7e}]+/;
/* 567 */ YangVersionArg: <YVersion>"1.1|1";