1YAML::PP::Grammar(3) User Contributed Perl Documentation YAML::PP::Grammar(3)
2
3
4
6 YAML::PP::Grammar - YAML grammar
7
9 This is the Grammar in YAML
10
11 # START OF YAML INLINE
12
13 # DO NOT CHANGE THIS
14 # This grammar is automatically generated from etc/grammar.yaml
15
16 ---
17 NODETYPE_NODE:
18 DASH:
19 match: cb_seqstart
20 EOL: { new: FULLNODE }
21 WS: { new: FULLNODE }
22
23 DEFAULT: { new: NODETYPE_SCALAR_OR_MAP }
24
25 NODETYPE_SCALAR_OR_MAP:
26
27 # Flow nodes can follow tabs
28 WS: { new: FULLMAPVALUE_INLINE }
29
30 ALIAS:
31 match: cb_alias
32 EOL: { match: cb_send_alias_from_stack }
33 WS:
34 COLON:
35 match: cb_insert_map_alias
36 EOL: { new: FULLNODE }
37 WS: { new: FULLMAPVALUE_INLINE }
38
39 QUESTION:
40 match: cb_questionstart
41 EOL: { new: FULLNODE }
42 WS: { new: FULLNODE }
43
44 QUOTED:
45 match: cb_take_quoted
46 EOL: { match: cb_send_scalar }
47 WS:
48 COLON:
49 match: cb_insert_map
50 EOL: { new: FULLNODE }
51 WS: { new: FULLMAPVALUE_INLINE }
52 COLON:
53 match: cb_insert_map
54 EOL: { new: FULLNODE }
55 WS: { new: FULLMAPVALUE_INLINE }
56
57 QUOTED_MULTILINE:
58 match: cb_quoted_multiline
59 EOL: { }
60
61
62 PLAIN:
63 match: cb_start_plain
64 EOL:
65 match: cb_send_scalar
66 WS:
67 COLON:
68 match: cb_insert_map
69 EOL: { new: FULLNODE }
70 WS: { new: FULLMAPVALUE_INLINE }
71 COLON:
72 match: cb_insert_map
73 EOL: { new: FULLNODE }
74 WS: { new: FULLMAPVALUE_INLINE }
75
76 PLAIN_MULTI:
77 match: cb_send_plain_multi
78 EOL: { }
79
80 COLON:
81 match: cb_insert_empty_map
82 EOL: { new: FULLNODE }
83 WS: { new: FULLMAPVALUE_INLINE }
84
85 BLOCK_SCALAR:
86 match: cb_send_block_scalar
87 EOL: { }
88
89 FLOWSEQ_START:
90 match: cb_start_flowseq
91 new: NEWFLOWSEQ
92
93 FLOWMAP_START:
94 match: cb_start_flowmap
95 new: NEWFLOWMAP
96
97 DOC_END:
98 match: cb_end_document
99 EOL: { }
100
101 DOC_START:
102 match: cb_end_doc_start_document
103 EOL: { new: FULLNODE }
104 WS: { new: FULLNODE }
105
106 EOL:
107 new: NODETYPE_SCALAR_OR_MAP
108
109 NODETYPE_COMPLEX:
110 COLON:
111 match: cb_complexcolon
112 EOL: { new: FULLNODE }
113 WS: { new: FULLNODE }
114 DEFAULT:
115 match: cb_empty_complexvalue
116 new: NODETYPE_MAP
117 EOL:
118 new: NODETYPE_COMPLEX
119
120 RULE_FULLFLOWSCALAR:
121 ANCHOR:
122 match: cb_anchor
123 EOL: { new: RULE_FULLFLOWSCALAR_ANCHOR }
124 DEFAULT: { new: RULE_FULLFLOWSCALAR_ANCHOR }
125 TAG:
126 match: cb_tag
127 EOL: { new: RULE_FULLFLOWSCALAR_TAG }
128 DEFAULT: { new: RULE_FULLFLOWSCALAR_TAG }
129 DEFAULT: { new: RULE_FLOWSCALAR }
130
131 RULE_FULLFLOWSCALAR_ANCHOR:
132 WS: { new: RULE_FULLFLOWSCALAR_ANCHOR }
133 TAG:
134 match: cb_tag
135 WS: { new: RULE_FLOWSCALAR }
136 EOL: { new: RULE_FLOWSCALAR }
137 DEFAULT: { new: RULE_FLOWSCALAR }
138
139 RULE_FULLFLOWSCALAR_TAG:
140 WS: { new: RULE_FULLFLOWSCALAR_TAG }
141 ANCHOR:
142 match: cb_anchor
143 WS: { new: RULE_FLOWSCALAR }
144 EOL: { new: RULE_FLOWSCALAR }
145 DEFAULT: { new: RULE_FLOWSCALAR }
146
147 RULE_FLOWSCALAR:
148 FLOWSEQ_START: { match: cb_start_flowseq, new: NEWFLOWSEQ }
149 FLOWMAP_START: { match: cb_start_flowmap, new: NEWFLOWMAP }
150
151 ALIAS: { match: cb_send_alias, return: 1 }
152
153 QUOTED:
154 match: cb_take_quoted
155 EOL: { match: cb_send_scalar }
156 WS: { match: cb_send_scalar, return: 1 }
157 DEFAULT: { match: cb_send_scalar, return: 1 }
158
159 QUOTED_MULTILINE: { match: cb_quoted_multiline, return: 1 }
160
161 PLAIN:
162 match: cb_start_plain
163 EOL: { match: cb_send_scalar }
164 DEFAULT: { match: cb_send_scalar, return: 1 }
165
166 PLAIN_MULTI: { match: cb_send_plain_multi, return: 1 }
167
168 FLOW_COMMA: { match: cb_empty_flow_mapkey, return: 1 }
169
170 FLOWMAP_END:
171 match: cb_end_flowmap_empty
172 return: 1
173
174 FLOWSEQ:
175 FLOWSEQ_START: { match: cb_start_flowseq, new: NEWFLOWSEQ }
176 FLOWMAP_START: { match: cb_start_flowmap, new: NEWFLOWMAP }
177
178 ALIAS: { match: cb_send_flow_alias, new: FLOWSEQ_NEXT }
179
180 PLAIN: { match: cb_flow_plain, new: FLOWSEQ_NEXT }
181 PLAIN_MULTI: { match: cb_send_plain_multi, new: FLOWSEQ_NEXT }
182
183 QUOTED: { match: cb_flowkey_quoted, new: FLOWSEQ_NEXT }
184 QUOTED_MULTILINE: { match: cb_quoted_multiline, new: FLOWSEQ_NEXT }
185
186 FLOWSEQ_NEXT:
187 WS: { new: FLOWSEQ_NEXT }
188 EOL: { new: FLOWSEQ_NEXT }
189
190 FLOW_COMMA:
191 match: cb_flow_comma
192 return: 1
193
194 FLOWSEQ_END:
195 match: cb_end_flowseq
196 return: 1
197
198 FLOWMAP:
199 FLOWSEQ_START: { match: cb_start_flowseq, new: NEWFLOWSEQ }
200 FLOWMAP_START: { match: cb_start_flowmap, new: NEWFLOWMAP }
201
202 ALIAS: { match: cb_send_alias, return: 1 }
203
204 PLAIN: { match: cb_flowkey_plain, return: 1 }
205 PLAIN_MULTI: { match: cb_send_plain_multi, return: 1 }
206
207 QUOTED: { match: cb_flowkey_quoted, return: 1 }
208 QUOTED_MULTILINE: { match: cb_quoted_multiline, return: 1 }
209
210 COLON:
211 WS:
212 match: cb_empty_flow_mapkey
213 new: RULE_FULLFLOWSCALAR
214 EOL:
215 match: cb_empty_flow_mapkey
216 new: RULE_FULLFLOWSCALAR
217
218
219 NEWFLOWSEQ:
220 EOL: { new: NEWFLOWSEQ }
221 WS: { new: NEWFLOWSEQ }
222
223 ANCHOR:
224 match: cb_anchor
225 WS: { new: NEWFLOWSEQ_ANCHOR }
226 EOL: { new: NEWFLOWSEQ_ANCHOR }
227 TAG:
228 match: cb_tag
229 WS: { new: NEWFLOWSEQ_TAG }
230 EOL: { new: NEWFLOWSEQ_TAG }
231
232 FLOWSEQ_END:
233 match: cb_end_flowseq
234 return: 1
235
236 DEFAULT: { new: FLOWSEQ }
237
238 NODETYPE_FLOWSEQ:
239 EOL: { new: NODETYPE_FLOWSEQ }
240 WS: { new: NODETYPE_FLOWSEQ }
241 FLOWSEQ_END:
242 match: cb_end_flowseq
243 return: 1
244 DEFAULT: { new: NEWFLOWSEQ }
245
246 NODETYPE_FLOWMAPVALUE:
247 WS: { new: NODETYPE_FLOWMAPVALUE }
248 EOL: { new: NODETYPE_FLOWMAPVALUE }
249 COLON:
250 match: cb_flow_colon
251 WS: { new: RULE_FULLFLOWSCALAR }
252 EOL: { new: RULE_FULLFLOWSCALAR }
253 DEFAULT: { new: RULE_FULLFLOWSCALAR }
254 FLOW_COMMA:
255 match: cb_empty_flowmap_value
256 return: 1
257 FLOWMAP_END:
258 match: cb_end_flowmap_empty
259 return: 1
260
261 NEWFLOWSEQ_ANCHOR:
262 WS: { new: NEWFLOWSEQ_ANCHOR }
263 EOL: { new: NEWFLOWSEQ_ANCHOR }
264 TAG:
265 match: cb_tag
266 WS: { new: FLOWSEQ }
267 EOL: { new: FLOWSEQ }
268 DEFAULT: { new: FLOWSEQ }
269
270 NEWFLOWSEQ_TAG:
271 WS: { new: NEWFLOWSEQ_TAG }
272 EOL: { new: NEWFLOWSEQ_TAG }
273 ANCHOR:
274 match: cb_anchor
275 WS: { new: FLOWSEQ }
276 EOL: { new: FLOWSEQ }
277 DEFAULT: { new: FLOWSEQ }
278
279
280 NEWFLOWMAP_ANCHOR:
281 WS: { new: NEWFLOWMAP_ANCHOR }
282 EOL: { new: NEWFLOWMAP_ANCHOR }
283 TAG:
284 match: cb_tag
285 WS: { new: FLOWMAP }
286 EOL: { new: FLOWMAP }
287 DEFAULT: { new: FLOWMAP }
288
289 NEWFLOWMAP_TAG:
290 WS: { new: NEWFLOWMAP_TAG }
291 EOL: { new: NEWFLOWMAP_TAG }
292 ANCHOR:
293 match: cb_anchor
294 WS: { new: FLOWMAP }
295 EOL: { new: FLOWMAP }
296 DEFAULT: { new: FLOWMAP }
297
298 NEWFLOWMAP:
299 EOL: { new: NEWFLOWMAP }
300 WS: { new: NEWFLOWMAP }
301 # TODO
302 QUESTION: { match: cb_flow_question, new: NEWFLOWMAP }
303
304 ANCHOR:
305 match: cb_anchor
306 WS: { new: NEWFLOWMAP_ANCHOR }
307 EOL: { new: NEWFLOWMAP_ANCHOR }
308 TAG:
309 match: cb_tag
310 WS: { new: NEWFLOWMAP_TAG }
311 EOL: { new: NEWFLOWMAP_TAG }
312
313 FLOWMAP_END:
314 match: cb_end_flowmap
315 return: 1
316
317 COLON:
318 WS:
319 match: cb_empty_flow_mapkey
320 new: RULE_FULLFLOWSCALAR
321 EOL:
322 match: cb_empty_flow_mapkey
323 new: RULE_FULLFLOWSCALAR
324
325 DEFAULT: { new: FLOWMAP }
326
327 NODETYPE_FLOWMAP:
328 EOL: { new: NODETYPE_FLOWMAP }
329 WS: { new: NODETYPE_FLOWMAP }
330 FLOWMAP_END:
331 match: cb_end_flowmap
332 return: 1
333 FLOW_COMMA: { match: cb_flow_comma, new: NEWFLOWMAP }
334 DEFAULT: { new: NEWFLOWMAP }
335
336
337 RULE_MAPKEY:
338 QUESTION:
339 match: cb_question
340 EOL: { new: FULLNODE }
341 WS: { new: FULLNODE }
342 ALIAS:
343 match: cb_send_alias
344 WS:
345 COLON:
346 EOL: { new: FULLNODE }
347 WS: { new: FULLMAPVALUE_INLINE }
348
349 QUOTED:
350 match: cb_take_quoted_key
351 WS:
352 COLON:
353 EOL: { new: FULLNODE }
354 WS: { new: FULLMAPVALUE_INLINE }
355 COLON:
356 EOL: { new: FULLNODE }
357 WS: { new: FULLMAPVALUE_INLINE }
358
359 PLAIN:
360 match: cb_mapkey
361 WS:
362 COLON:
363 match: cb_send_mapkey
364 EOL: { new: FULLNODE }
365 WS: { new: FULLMAPVALUE_INLINE }
366 COLON:
367 match: cb_send_mapkey
368 EOL: { new: FULLNODE }
369 WS: { new: FULLMAPVALUE_INLINE }
370
371 COLON:
372 match: cb_empty_mapkey
373 EOL: { new: FULLNODE }
374 WS: { new: FULLMAPVALUE_INLINE }
375
376 DOC_END:
377 match: cb_end_document
378 EOL: { }
379
380 DOC_START:
381 match: cb_end_doc_start_document
382 EOL: { new: FULLNODE }
383 WS: { new: FULLNODE }
384
385 EOL:
386 new: RULE_MAPKEY
387
388
389 NODETYPE_SEQ:
390 DASH:
391 match: cb_seqitem
392 EOL: { new: FULLNODE }
393 WS: { new: FULLNODE }
394 DOC_END:
395 match: cb_end_document
396 EOL: { }
397 DOC_START:
398 match: cb_end_doc_start_document
399 EOL: { new: FULLNODE }
400 WS: { new: FULLNODE }
401
402 EOL:
403 new: NODETYPE_SEQ
404
405 NODETYPE_MAP:
406 ANCHOR:
407 match: cb_anchor
408 WS:
409 TAG:
410 match: cb_tag
411 WS: { new: RULE_MAPKEY }
412 DEFAULT: { new: RULE_MAPKEY }
413 TAG:
414 match: cb_tag
415 WS:
416 ANCHOR:
417 match: cb_anchor
418 WS: { new: RULE_MAPKEY }
419 DEFAULT: { new: RULE_MAPKEY }
420 DEFAULT: { new: RULE_MAPKEY }
421
422 FULLNODE_ANCHOR:
423 TAG:
424 match: cb_tag
425 EOL: { match: cb_property_eol, new: FULLNODE_TAG_ANCHOR }
426 WS:
427 ANCHOR:
428 match: cb_anchor
429 WS: { new: NODETYPE_SCALAR_OR_MAP }
430 DEFAULT: { new: NODETYPE_SCALAR_OR_MAP }
431 ANCHOR:
432 match: cb_anchor
433 WS:
434 TAG:
435 match: cb_tag
436 WS: { new: NODETYPE_SCALAR_OR_MAP }
437 DEFAULT: { new: NODETYPE_SCALAR_OR_MAP }
438 EOL: { new: FULLNODE_ANCHOR }
439 DEFAULT: { new: NODETYPE_NODE }
440
441 FULLNODE_TAG:
442 ANCHOR:
443 match: cb_anchor
444 EOL: { match: cb_property_eol, new: FULLNODE_TAG_ANCHOR }
445 WS:
446 TAG:
447 match: cb_tag
448 WS: { new: NODETYPE_SCALAR_OR_MAP }
449 DEFAULT: { new: NODETYPE_SCALAR_OR_MAP, }
450 TAG:
451 match: cb_tag
452 WS:
453 ANCHOR:
454 match: cb_anchor
455 WS: { new: NODETYPE_SCALAR_OR_MAP }
456 DEFAULT: { new: NODETYPE_SCALAR_OR_MAP }
457 EOL: { new: FULLNODE_TAG }
458 DEFAULT: { new: NODETYPE_NODE }
459
460 FULLNODE_TAG_ANCHOR:
461 ANCHOR:
462 match: cb_anchor
463 WS:
464 TAG:
465 match: cb_tag
466 WS: { new: NODETYPE_SCALAR_OR_MAP }
467 DEFAULT: { new: NODETYPE_SCALAR_OR_MAP }
468 TAG:
469 match: cb_tag
470 WS:
471 ANCHOR:
472 match: cb_anchor
473 WS: { new: NODETYPE_SCALAR_OR_MAP }
474 DEFAULT: { new: NODETYPE_SCALAR_OR_MAP }
475 EOL: { new: FULLNODE_TAG_ANCHOR }
476 DEFAULT: { new: NODETYPE_NODE }
477
478 FULLNODE:
479 ANCHOR:
480 match: cb_anchor
481 EOL: { match: cb_property_eol, new: FULLNODE_ANCHOR }
482 WS:
483 TAG:
484 match: cb_tag
485 EOL: { match: cb_property_eol, new: FULLNODE_TAG_ANCHOR }
486 WS: { new: NODETYPE_SCALAR_OR_MAP }
487 DEFAULT: { new: NODETYPE_SCALAR_OR_MAP }
488 TAG:
489 match: cb_tag
490 EOL: { match: cb_property_eol, new: FULLNODE_TAG }
491 WS:
492 ANCHOR:
493 match: cb_anchor
494 EOL: { match: cb_property_eol, new: FULLNODE_TAG_ANCHOR }
495 WS: { new: NODETYPE_SCALAR_OR_MAP }
496 DEFAULT: { new: NODETYPE_SCALAR_OR_MAP }
497 EOL: { new: FULLNODE }
498 DEFAULT: { new: NODETYPE_NODE }
499
500 FULLMAPVALUE_INLINE:
501 ANCHOR:
502 match: cb_anchor
503 EOL: { match: cb_property_eol, new: FULLNODE_ANCHOR }
504 WS:
505 TAG:
506 match: cb_tag
507 EOL: { match: cb_property_eol, new: FULLNODE_TAG_ANCHOR }
508 WS: { new: NODETYPE_MAPVALUE_INLINE }
509 DEFAULT: { new: NODETYPE_MAPVALUE_INLINE }
510 TAG:
511 match: cb_tag
512 EOL: { match: cb_property_eol, new: FULLNODE_TAG }
513 WS:
514 ANCHOR:
515 match: cb_anchor
516 EOL: { match: cb_property_eol, new: FULLNODE_TAG_ANCHOR }
517 WS: { new: NODETYPE_MAPVALUE_INLINE }
518 DEFAULT: { new: NODETYPE_MAPVALUE_INLINE }
519 DEFAULT: { new: NODETYPE_MAPVALUE_INLINE }
520
521
522 NODETYPE_MAPVALUE_INLINE:
523 ALIAS:
524 match: cb_send_alias
525 EOL: { }
526
527 QUOTED:
528 match: cb_take_quoted
529 EOL: { match: cb_send_scalar }
530
531 QUOTED_MULTILINE:
532 match: cb_quoted_multiline
533 EOL: { }
534
535 PLAIN:
536 match: cb_start_plain
537 EOL:
538 match: cb_send_scalar
539
540 PLAIN_MULTI:
541 match: cb_send_plain_multi
542 EOL: { }
543
544 BLOCK_SCALAR:
545 match: cb_send_block_scalar
546 EOL: { }
547
548 FLOWSEQ_START:
549 match: cb_start_flowseq
550 new: NEWFLOWSEQ
551
552 FLOWMAP_START:
553 match: cb_start_flowmap
554 new: NEWFLOWMAP
555
556 DOC_END:
557 match: cb_end_document
558 EOL: { }
559
560
561 DOCUMENT_END:
562 DOC_END:
563 match: cb_end_document
564 EOL: { }
565 DOC_START:
566 match: cb_end_doc_start_document
567 EOL: { new: FULLNODE }
568 WS: { new: FULLNODE }
569
570 EOL:
571 new: DOCUMENT_END
572
573
574 STREAM:
575
576 DOC_END:
577 match: cb_end_document_empty
578 EOL: { }
579 DOC_START:
580 match: cb_doc_start_explicit
581 EOL: { new: FULLNODE }
582 WS: { new: FULLNODE }
583 YAML_DIRECTIVE:
584 match: cb_set_yaml_version_directive
585 EOL: { new: DIRECTIVE }
586 WS: { new: DIRECTIVE }
587 RESERVED_DIRECTIVE:
588 match: cb_reserved_directive
589 EOL: { new: DIRECTIVE }
590 WS: { new: DIRECTIVE }
591 TAG_DIRECTIVE:
592 match: cb_tag_directive
593 EOL: { new: DIRECTIVE }
594 WS: { new: DIRECTIVE }
595
596 EOL:
597 new: STREAM
598
599 DEFAULT:
600 match: cb_doc_start_implicit
601 new: FULLNODE
602
603 DIRECTIVE:
604 DOC_START:
605 match: cb_doc_start_explicit
606 EOL: { new: FULLNODE }
607 WS: { new: FULLNODE }
608
609 YAML_DIRECTIVE:
610 match: cb_set_yaml_version_directive
611 EOL: { new: DIRECTIVE }
612 WS: { new: DIRECTIVE }
613 RESERVED_DIRECTIVE:
614 match: cb_reserved_directive
615 EOL: { new: DIRECTIVE }
616 WS: { new: DIRECTIVE }
617 TAG_DIRECTIVE:
618 match: cb_tag_directive
619 EOL: { new: DIRECTIVE }
620 WS: { new: DIRECTIVE }
621
622 EOL:
623 new: DIRECTIVE
624
625
626 # END OF YAML INLINE
627
628
629
630perl v5.32.0 2020-09-11 YAML::PP::Grammar(3)