File Coverage

blib/lib/YAML/PP/Grammar.pm
Criterion Covered Total %
statement 9 9 100.0
branch n/a
condition n/a
subroutine 3 3 100.0
pod n/a
total 12 12 100.0


line stmt bran cond sub pod time code
1 52     52   157190 use strict;
  52         71  
  52         1487  
2 52     52   1734 use warnings;
  52         1682  
  52         3142  
3             package YAML::PP::Grammar;
4              
5             our $VERSION = 'v0.39.0'; # VERSION
6              
7 52     52   236 use base 'Exporter';
  52         64  
  52         102195  
8              
9             our @EXPORT_OK = qw/ $GRAMMAR /;
10              
11             our $GRAMMAR = {};
12              
13             # START OF GRAMMAR INLINE
14              
15             # DO NOT CHANGE THIS
16             # This grammar is automatically generated from etc/grammar.yaml
17              
18             $GRAMMAR = {
19             'DIRECTIVE' => {
20             'DOC_START' => {
21             'EOL' => {
22             'new' => 'FULLNODE'
23             },
24             'WS' => {
25             'new' => 'FULLNODE'
26             },
27             'match' => 'cb_doc_start_explicit'
28             },
29             'EOL' => {
30             'new' => 'DIRECTIVE'
31             },
32             'RESERVED_DIRECTIVE' => {
33             'EOL' => {
34             'new' => 'DIRECTIVE'
35             },
36             'WS' => {
37             'new' => 'DIRECTIVE'
38             },
39             'match' => 'cb_reserved_directive'
40             },
41             'TAG_DIRECTIVE' => {
42             'EOL' => {
43             'new' => 'DIRECTIVE'
44             },
45             'WS' => {
46             'new' => 'DIRECTIVE'
47             },
48             'match' => 'cb_tag_directive'
49             },
50             'YAML_DIRECTIVE' => {
51             'EOL' => {
52             'new' => 'DIRECTIVE'
53             },
54             'WS' => {
55             'new' => 'DIRECTIVE'
56             },
57             'match' => 'cb_set_yaml_version_directive'
58             }
59             },
60             'DOCUMENT_END' => {
61             'DOC_END' => {
62             'EOL' => {},
63             'match' => 'cb_end_document'
64             },
65             'DOC_START' => {
66             'EOL' => {
67             'new' => 'FULLNODE'
68             },
69             'WS' => {
70             'new' => 'FULLNODE'
71             },
72             'match' => 'cb_end_doc_start_document'
73             },
74             'EOL' => {
75             'new' => 'DOCUMENT_END'
76             }
77             },
78             'END_FLOW' => {
79             'EOL' => {
80             'match' => 'cb_end_outer_flow',
81             'return' => 1
82             }
83             },
84             'FLOWMAP' => {
85             'ANCHOR' => {
86             'DEFAULT' => {
87             'new' => 'NEWFLOWMAP_ANCHOR'
88             },
89             'EOL' => {
90             'new' => 'NEWFLOWMAP_ANCHOR_SPC'
91             },
92             'WS' => {
93             'new' => 'NEWFLOWMAP_ANCHOR_SPC'
94             },
95             'match' => 'cb_anchor'
96             },
97             'COLON' => {
98             'EOL' => {
99             'match' => 'cb_empty_flow_mapkey',
100             'new' => 'RULE_FULLFLOWSCALAR'
101             },
102             'WS' => {
103             'match' => 'cb_empty_flow_mapkey',
104             'new' => 'RULE_FULLFLOWSCALAR'
105             }
106             },
107             'DEFAULT' => {
108             'new' => 'FLOWMAP_CONTENT'
109             },
110             'EOL' => {
111             'new' => 'FLOWMAP'
112             },
113             'FLOWMAP_END' => {
114             'match' => 'cb_end_flowmap',
115             'return' => 1
116             },
117             'TAG' => {
118             'DEFAULT' => {
119             'new' => 'NEWFLOWMAP_TAG'
120             },
121             'EOL' => {
122             'new' => 'NEWFLOWMAP_TAG_SPC'
123             },
124             'WS' => {
125             'new' => 'NEWFLOWMAP_TAG_SPC'
126             },
127             'match' => 'cb_tag'
128             },
129             'WS' => {
130             'new' => 'FLOWMAP'
131             }
132             },
133             'FLOWMAP_CONTENT' => {
134             'ALIAS' => {
135             'match' => 'cb_send_alias',
136             'return' => 1
137             },
138             'COLON' => {
139             'EOL' => {
140             'match' => 'cb_empty_flow_mapkey',
141             'new' => 'RULE_FULLFLOWSCALAR'
142             },
143             'WS' => {
144             'match' => 'cb_empty_flow_mapkey',
145             'new' => 'RULE_FULLFLOWSCALAR'
146             }
147             },
148             'FLOWMAP_START' => {
149             'match' => 'cb_start_flowmap',
150             'new' => 'NEWFLOWMAP'
151             },
152             'FLOWSEQ_START' => {
153             'match' => 'cb_start_flowseq',
154             'new' => 'NEWFLOWSEQ'
155             },
156             'PLAIN' => {
157             'match' => 'cb_flowkey_plain',
158             'return' => 1
159             },
160             'PLAIN_MULTI' => {
161             'match' => 'cb_send_plain_multi',
162             'return' => 1
163             },
164             'QUOTED' => {
165             'match' => 'cb_flowkey_quoted',
166             'return' => 1
167             },
168             'QUOTED_MULTILINE' => {
169             'match' => 'cb_quoted_multiline',
170             'return' => 1
171             }
172             },
173             'FLOWMAP_EMPTYKEY' => {
174             'FLOWMAP_END' => {
175             'match' => 'cb_end_empty_flowmap_key_value',
176             'return' => 1
177             },
178             'FLOW_COMMA' => {
179             'match' => 'cb_empty_flowmap_key_value',
180             'return' => 1
181             }
182             },
183             'FLOWMAP_EXPLICIT_KEY' => {
184             'DEFAULT' => {
185             'new' => 'FLOWMAP'
186             },
187             'EOL' => {
188             'new' => 'FLOWMAP_EXPLICIT_KEY'
189             },
190             'FLOWMAP_END' => {
191             'match' => 'cb_end_empty_flowmap_key_value',
192             'return' => 1
193             },
194             'FLOW_COMMA' => {
195             'match' => 'cb_empty_flowmap_key_value',
196             'return' => 1
197             },
198             'WS' => {
199             'new' => 'FLOWMAP_EXPLICIT_KEY'
200             }
201             },
202             'FLOWMAP_PROPS' => {
203             'COLON' => {
204             'EOL' => {
205             'match' => 'cb_empty_flow_mapkey',
206             'new' => 'RULE_FULLFLOWSCALAR'
207             },
208             'WS' => {
209             'match' => 'cb_empty_flow_mapkey',
210             'new' => 'RULE_FULLFLOWSCALAR'
211             }
212             },
213             'FLOWMAP_END' => {
214             'match' => 'cb_end_empty_flowmap_key_value',
215             'return' => 1
216             },
217             'FLOWMAP_START' => {
218             'match' => 'cb_start_flowmap',
219             'new' => 'NEWFLOWMAP'
220             },
221             'FLOWSEQ_START' => {
222             'match' => 'cb_start_flowseq',
223             'new' => 'NEWFLOWSEQ'
224             },
225             'FLOW_COMMA' => {
226             'match' => 'cb_empty_flowmap_key_value',
227             'return' => 1
228             },
229             'PLAIN' => {
230             'match' => 'cb_flowkey_plain',
231             'return' => 1
232             },
233             'PLAIN_MULTI' => {
234             'match' => 'cb_send_plain_multi',
235             'return' => 1
236             },
237             'QUOTED' => {
238             'match' => 'cb_flowkey_quoted',
239             'return' => 1
240             },
241             'QUOTED_MULTILINE' => {
242             'match' => 'cb_quoted_multiline',
243             'return' => 1
244             }
245             },
246             'FLOWSEQ' => {
247             'ALIAS' => {
248             'match' => 'cb_send_flow_alias',
249             'new' => 'FLOWSEQ_NEXT'
250             },
251             'COLON' => {
252             'EOL' => {
253             'match' => 'cb_insert_empty_implicit_flowseq_map',
254             'new' => 'RULE_FULLFLOWSCALAR'
255             },
256             'WS' => {
257             'match' => 'cb_insert_empty_implicit_flowseq_map',
258             'new' => 'RULE_FULLFLOWSCALAR'
259             }
260             },
261             'FLOWMAP_START' => {
262             'match' => 'cb_start_flowmap',
263             'new' => 'NEWFLOWMAP'
264             },
265             'FLOWSEQ_START' => {
266             'match' => 'cb_start_flowseq',
267             'new' => 'NEWFLOWSEQ'
268             },
269             'PLAIN' => {
270             'DEFAULT' => {
271             'new' => 'FLOWSEQ_MAYBE_KEY'
272             },
273             'EOL' => {
274             'match' => 'cb_send_scalar',
275             'new' => 'FLOWSEQ_NEXT'
276             },
277             'match' => 'cb_start_plain'
278             },
279             'PLAIN_MULTI' => {
280             'match' => 'cb_send_plain_multi',
281             'new' => 'FLOWSEQ_NEXT'
282             },
283             'QUOTED' => {
284             'DEFAULT' => {
285             'new' => 'FLOWSEQ_MAYBE_KEY'
286             },
287             'EOL' => {
288             'match' => 'cb_send_scalar',
289             'new' => 'FLOWSEQ_NEXT'
290             },
291             'match' => 'cb_take_quoted'
292             },
293             'QUOTED_MULTILINE' => {
294             'match' => 'cb_quoted_multiline',
295             'new' => 'FLOWSEQ_NEXT'
296             }
297             },
298             'FLOWSEQ_EMPTY' => {
299             'FLOWSEQ_END' => {
300             'match' => 'cb_empty_flowseq_end',
301             'return' => 1
302             },
303             'FLOW_COMMA' => {
304             'match' => 'cb_empty_flowseq_comma',
305             'return' => 1
306             }
307             },
308             'FLOWSEQ_MAYBE_KEY' => {
309             'COLON' => {
310             'DEFAULT' => {
311             'match' => 'cb_insert_implicit_flowseq_map',
312             'new' => 'RULE_FULLFLOWSCALAR'
313             },
314             'EOL' => {
315             'match' => 'cb_insert_implicit_flowseq_map',
316             'new' => 'RULE_FULLFLOWSCALAR'
317             },
318             'WS' => {
319             'match' => 'cb_insert_implicit_flowseq_map',
320             'new' => 'RULE_FULLFLOWSCALAR'
321             }
322             },
323             'DEFAULT' => {
324             'new' => 'FLOWSEQ_NEXT'
325             },
326             'WS' => {
327             'new' => 'FLOWSEQ_MAYBE_KEY'
328             }
329             },
330             'FLOWSEQ_NEXT' => {
331             'EOL' => {
332             'new' => 'FLOWSEQ_NEXT'
333             },
334             'FLOWSEQ_END' => {
335             'match' => 'cb_end_flowseq',
336             'return' => 1
337             },
338             'FLOW_COMMA' => {
339             'match' => 'cb_flow_comma',
340             'return' => 1
341             },
342             'WS' => {
343             'new' => 'FLOWSEQ_NEXT'
344             }
345             },
346             'FLOWSEQ_PROPS' => {
347             'COLON' => {
348             'EOL' => {
349             'match' => 'cb_insert_empty_implicit_flowseq_map',
350             'new' => 'RULE_FULLFLOWSCALAR'
351             },
352             'WS' => {
353             'match' => 'cb_insert_empty_implicit_flowseq_map',
354             'new' => 'RULE_FULLFLOWSCALAR'
355             }
356             },
357             'FLOWMAP_START' => {
358             'match' => 'cb_start_flowmap',
359             'new' => 'NEWFLOWMAP'
360             },
361             'FLOWSEQ_END' => {
362             'match' => 'cb_empty_flowseq_end',
363             'return' => 1
364             },
365             'FLOWSEQ_START' => {
366             'match' => 'cb_start_flowseq',
367             'new' => 'NEWFLOWSEQ'
368             },
369             'FLOW_COMMA' => {
370             'match' => 'cb_empty_flowseq_comma',
371             'return' => 1
372             },
373             'PLAIN' => {
374             'DEFAULT' => {
375             'new' => 'FLOWSEQ_MAYBE_KEY'
376             },
377             'EOL' => {
378             'match' => 'cb_send_scalar',
379             'new' => 'FLOWSEQ_NEXT'
380             },
381             'match' => 'cb_start_plain'
382             },
383             'PLAIN_MULTI' => {
384             'match' => 'cb_send_plain_multi',
385             'new' => 'FLOWSEQ_NEXT'
386             },
387             'QUOTED' => {
388             'DEFAULT' => {
389             'new' => 'FLOWSEQ_MAYBE_KEY'
390             },
391             'EOL' => {
392             'match' => 'cb_send_scalar',
393             'new' => 'FLOWSEQ_NEXT'
394             },
395             'match' => 'cb_take_quoted'
396             },
397             'QUOTED_MULTILINE' => {
398             'match' => 'cb_quoted_multiline',
399             'new' => 'FLOWSEQ_NEXT'
400             }
401             },
402             'FULLMAPVALUE_INLINE' => {
403             'ANCHOR' => {
404             'EOL' => {
405             'match' => 'cb_property_eol',
406             'new' => 'FULLNODE_ANCHOR'
407             },
408             'WS' => {
409             'DEFAULT' => {
410             'new' => 'NODETYPE_MAPVALUE_INLINE'
411             },
412             'TAG' => {
413             'EOL' => {
414             'match' => 'cb_property_eol',
415             'new' => 'FULLNODE_TAG_ANCHOR'
416             },
417             'WS' => {
418             'new' => 'NODETYPE_MAPVALUE_INLINE'
419             },
420             'match' => 'cb_tag'
421             }
422             },
423             'match' => 'cb_anchor'
424             },
425             'DEFAULT' => {
426             'new' => 'NODETYPE_MAPVALUE_INLINE'
427             },
428             'TAG' => {
429             'EOL' => {
430             'match' => 'cb_property_eol',
431             'new' => 'FULLNODE_TAG'
432             },
433             'WS' => {
434             'ANCHOR' => {
435             'EOL' => {
436             'match' => 'cb_property_eol',
437             'new' => 'FULLNODE_TAG_ANCHOR'
438             },
439             'WS' => {
440             'new' => 'NODETYPE_MAPVALUE_INLINE'
441             },
442             'match' => 'cb_anchor'
443             },
444             'DEFAULT' => {
445             'new' => 'NODETYPE_MAPVALUE_INLINE'
446             }
447             },
448             'match' => 'cb_tag'
449             }
450             },
451             'FULLNODE' => {
452             'ANCHOR' => {
453             'EOL' => {
454             'match' => 'cb_property_eol',
455             'new' => 'FULLNODE_ANCHOR'
456             },
457             'WS' => {
458             'DEFAULT' => {
459             'new' => 'NODETYPE_SCALAR_OR_MAP'
460             },
461             'TAG' => {
462             'EOL' => {
463             'match' => 'cb_property_eol',
464             'new' => 'FULLNODE_TAG_ANCHOR'
465             },
466             'WS' => {
467             'new' => 'NODETYPE_SCALAR_OR_MAP'
468             },
469             'match' => 'cb_tag'
470             }
471             },
472             'match' => 'cb_anchor'
473             },
474             'DEFAULT' => {
475             'new' => 'NODETYPE_NODE'
476             },
477             'EOL' => {
478             'new' => 'FULLNODE'
479             },
480             'TAG' => {
481             'EOL' => {
482             'match' => 'cb_property_eol',
483             'new' => 'FULLNODE_TAG'
484             },
485             'WS' => {
486             'ANCHOR' => {
487             'EOL' => {
488             'match' => 'cb_property_eol',
489             'new' => 'FULLNODE_TAG_ANCHOR'
490             },
491             'WS' => {
492             'new' => 'NODETYPE_SCALAR_OR_MAP'
493             },
494             'match' => 'cb_anchor'
495             },
496             'DEFAULT' => {
497             'new' => 'NODETYPE_SCALAR_OR_MAP'
498             }
499             },
500             'match' => 'cb_tag'
501             }
502             },
503             'FULLNODE_ANCHOR' => {
504             'ANCHOR' => {
505             'WS' => {
506             'DEFAULT' => {
507             'new' => 'NODETYPE_SCALAR_OR_MAP'
508             },
509             'TAG' => {
510             'WS' => {
511             'new' => 'NODETYPE_SCALAR_OR_MAP'
512             },
513             'match' => 'cb_tag'
514             }
515             },
516             'match' => 'cb_anchor'
517             },
518             'DEFAULT' => {
519             'new' => 'NODETYPE_NODE'
520             },
521             'EOL' => {
522             'new' => 'FULLNODE_ANCHOR'
523             },
524             'TAG' => {
525             'EOL' => {
526             'match' => 'cb_property_eol',
527             'new' => 'FULLNODE_TAG_ANCHOR'
528             },
529             'WS' => {
530             'ANCHOR' => {
531             'WS' => {
532             'new' => 'NODETYPE_SCALAR_OR_MAP'
533             },
534             'match' => 'cb_anchor'
535             },
536             'DEFAULT' => {
537             'new' => 'NODETYPE_SCALAR_OR_MAP'
538             }
539             },
540             'match' => 'cb_tag'
541             }
542             },
543             'FULLNODE_TAG' => {
544             'ANCHOR' => {
545             'EOL' => {
546             'match' => 'cb_property_eol',
547             'new' => 'FULLNODE_TAG_ANCHOR'
548             },
549             'WS' => {
550             'DEFAULT' => {
551             'new' => 'NODETYPE_SCALAR_OR_MAP'
552             },
553             'TAG' => {
554             'WS' => {
555             'new' => 'NODETYPE_SCALAR_OR_MAP'
556             },
557             'match' => 'cb_tag'
558             }
559             },
560             'match' => 'cb_anchor'
561             },
562             'DEFAULT' => {
563             'new' => 'NODETYPE_NODE'
564             },
565             'EOL' => {
566             'new' => 'FULLNODE_TAG'
567             },
568             'TAG' => {
569             'WS' => {
570             'ANCHOR' => {
571             'WS' => {
572             'new' => 'NODETYPE_SCALAR_OR_MAP'
573             },
574             'match' => 'cb_anchor'
575             },
576             'DEFAULT' => {
577             'new' => 'NODETYPE_SCALAR_OR_MAP'
578             }
579             },
580             'match' => 'cb_tag'
581             }
582             },
583             'FULLNODE_TAG_ANCHOR' => {
584             'ANCHOR' => {
585             'WS' => {
586             'DEFAULT' => {
587             'new' => 'NODETYPE_SCALAR_OR_MAP'
588             },
589             'TAG' => {
590             'WS' => {
591             'new' => 'NODETYPE_SCALAR_OR_MAP'
592             },
593             'match' => 'cb_tag'
594             }
595             },
596             'match' => 'cb_anchor'
597             },
598             'DEFAULT' => {
599             'new' => 'NODETYPE_NODE'
600             },
601             'EOL' => {
602             'new' => 'FULLNODE_TAG_ANCHOR'
603             },
604             'TAG' => {
605             'WS' => {
606             'ANCHOR' => {
607             'WS' => {
608             'new' => 'NODETYPE_SCALAR_OR_MAP'
609             },
610             'match' => 'cb_anchor'
611             },
612             'DEFAULT' => {
613             'new' => 'NODETYPE_SCALAR_OR_MAP'
614             }
615             },
616             'match' => 'cb_tag'
617             }
618             },
619             'NEWFLOWMAP' => {
620             'DEFAULT' => {
621             'new' => 'FLOWMAP'
622             },
623             'EOL' => {
624             'new' => 'NEWFLOWMAP'
625             },
626             'QUESTION' => {
627             'match' => 'cb_flow_question',
628             'new' => 'FLOWMAP_EXPLICIT_KEY'
629             },
630             'WS' => {
631             'new' => 'NEWFLOWMAP'
632             }
633             },
634             'NEWFLOWMAP_ANCHOR' => {
635             'DEFAULT' => {
636             'new' => 'FLOWMAP_EMPTYKEY'
637             }
638             },
639             'NEWFLOWMAP_ANCHOR_SPC' => {
640             'DEFAULT' => {
641             'new' => 'FLOWMAP_PROPS'
642             },
643             'EOL' => {
644             'new' => 'NEWFLOWMAP_ANCHOR_SPC'
645             },
646             'TAG' => {
647             'DEFAULT' => {
648             'new' => 'FLOWMAP_EMPTYKEY'
649             },
650             'EOL' => {
651             'new' => 'FLOWMAP_PROPS'
652             },
653             'WS' => {
654             'new' => 'FLOWMAP_PROPS'
655             },
656             'match' => 'cb_tag'
657             },
658             'WS' => {
659             'new' => 'NEWFLOWMAP_ANCHOR_SPC'
660             }
661             },
662             'NEWFLOWMAP_TAG' => {
663             'DEFAULT' => {
664             'new' => 'FLOWMAP_EMPTYKEY'
665             }
666             },
667             'NEWFLOWMAP_TAG_SPC' => {
668             'ANCHOR' => {
669             'DEFAULT' => {
670             'new' => 'FLOWMAP_EMPTYKEY'
671             },
672             'EOL' => {
673             'new' => 'FLOWMAP_PROPS'
674             },
675             'WS' => {
676             'new' => 'FLOWMAP_PROPS'
677             },
678             'match' => 'cb_anchor'
679             },
680             'DEFAULT' => {
681             'new' => 'FLOWMAP_PROPS'
682             },
683             'EOL' => {
684             'new' => 'NEWFLOWMAP_TAG_SPC'
685             },
686             'WS' => {
687             'new' => 'NEWFLOWMAP_TAG_SPC'
688             }
689             },
690             'NEWFLOWSEQ' => {
691             'ANCHOR' => {
692             'DEFAULT' => {
693             'new' => 'NEWFLOWSEQ_ANCHOR'
694             },
695             'EOL' => {
696             'new' => 'NEWFLOWSEQ_ANCHOR_SPC'
697             },
698             'WS' => {
699             'new' => 'NEWFLOWSEQ_ANCHOR_SPC'
700             },
701             'match' => 'cb_anchor'
702             },
703             'DEFAULT' => {
704             'new' => 'FLOWSEQ'
705             },
706             'EOL' => {
707             'new' => 'NEWFLOWSEQ'
708             },
709             'FLOWSEQ_END' => {
710             'match' => 'cb_end_flowseq',
711             'return' => 1
712             },
713             'TAG' => {
714             'DEFAULT' => {
715             'new' => 'NEWFLOWSEQ_TAG'
716             },
717             'EOL' => {
718             'new' => 'NEWFLOWSEQ_TAG_SPC'
719             },
720             'WS' => {
721             'new' => 'NEWFLOWSEQ_TAG_SPC'
722             },
723             'match' => 'cb_tag'
724             },
725             'WS' => {
726             'new' => 'NEWFLOWSEQ'
727             }
728             },
729             'NEWFLOWSEQ_ANCHOR' => {
730             'DEFAULT' => {
731             'new' => 'FLOWSEQ_EMPTY'
732             }
733             },
734             'NEWFLOWSEQ_ANCHOR_SPC' => {
735             'DEFAULT' => {
736             'new' => 'FLOWSEQ_PROPS'
737             },
738             'EOL' => {
739             'new' => 'NEWFLOWSEQ_ANCHOR_SPC'
740             },
741             'TAG' => {
742             'DEFAULT' => {
743             'new' => 'FLOWSEQ_EMPTY'
744             },
745             'EOL' => {
746             'new' => 'FLOWSEQ_PROPS'
747             },
748             'WS' => {
749             'new' => 'FLOWSEQ_PROPS'
750             },
751             'match' => 'cb_tag'
752             },
753             'WS' => {
754             'new' => 'NEWFLOWSEQ_ANCHOR_SPC'
755             }
756             },
757             'NEWFLOWSEQ_TAG' => {
758             'DEFAULT' => {
759             'new' => 'FLOWSEQ_EMPTY'
760             }
761             },
762             'NEWFLOWSEQ_TAG_SPC' => {
763             'ANCHOR' => {
764             'DEFAULT' => {
765             'new' => 'FLOWSEQ_EMPTY'
766             },
767             'EOL' => {
768             'new' => 'FLOWSEQ_PROPS'
769             },
770             'WS' => {
771             'new' => 'FLOWSEQ_PROPS'
772             },
773             'match' => 'cb_anchor'
774             },
775             'DEFAULT' => {
776             'new' => 'FLOWSEQ_PROPS'
777             },
778             'EOL' => {
779             'new' => 'NEWFLOWSEQ_TAG_SPC'
780             },
781             'WS' => {
782             'new' => 'NEWFLOWSEQ_TAG_SPC'
783             }
784             },
785             'NODETYPE_COMPLEX' => {
786             'COLON' => {
787             'EOL' => {
788             'new' => 'FULLNODE'
789             },
790             'WS' => {
791             'new' => 'FULLNODE'
792             },
793             'match' => 'cb_complexcolon'
794             },
795             'DEFAULT' => {
796             'match' => 'cb_empty_complexvalue',
797             'new' => 'NODETYPE_MAP'
798             },
799             'EOL' => {
800             'new' => 'NODETYPE_COMPLEX'
801             }
802             },
803             'NODETYPE_FLOWMAP' => {
804             'DEFAULT' => {
805             'new' => 'NEWFLOWMAP'
806             },
807             'EOL' => {
808             'new' => 'NODETYPE_FLOWMAP'
809             },
810             'FLOWMAP_END' => {
811             'match' => 'cb_end_flowmap',
812             'return' => 1
813             },
814             'FLOW_COMMA' => {
815             'match' => 'cb_flow_comma',
816             'new' => 'NEWFLOWMAP'
817             },
818             'WS' => {
819             'new' => 'NODETYPE_FLOWMAP'
820             }
821             },
822             'NODETYPE_FLOWMAPVALUE' => {
823             'COLON' => {
824             'DEFAULT' => {
825             'new' => 'RULE_FULLFLOWSCALAR'
826             },
827             'EOL' => {
828             'new' => 'RULE_FULLFLOWSCALAR'
829             },
830             'WS' => {
831             'new' => 'RULE_FULLFLOWSCALAR'
832             },
833             'match' => 'cb_flow_colon'
834             },
835             'EOL' => {
836             'new' => 'NODETYPE_FLOWMAPVALUE'
837             },
838             'FLOWMAP_END' => {
839             'match' => 'cb_end_flowmap_empty',
840             'return' => 1
841             },
842             'FLOW_COMMA' => {
843             'match' => 'cb_empty_flowmap_value',
844             'return' => 1
845             },
846             'WS' => {
847             'new' => 'NODETYPE_FLOWMAPVALUE'
848             }
849             },
850             'NODETYPE_FLOWSEQ' => {
851             'DEFAULT' => {
852             'new' => 'NEWFLOWSEQ'
853             },
854             'EOL' => {
855             'new' => 'NODETYPE_FLOWSEQ'
856             },
857             'FLOWSEQ_END' => {
858             'match' => 'cb_end_flowseq',
859             'return' => 1
860             },
861             'WS' => {
862             'new' => 'NODETYPE_FLOWSEQ'
863             }
864             },
865             'NODETYPE_MAP' => {
866             'ANCHOR' => {
867             'WS' => {
868             'DEFAULT' => {
869             'new' => 'RULE_MAPKEY'
870             },
871             'TAG' => {
872             'WS' => {
873             'new' => 'RULE_MAPKEY'
874             },
875             'match' => 'cb_tag'
876             }
877             },
878             'match' => 'cb_anchor'
879             },
880             'DEFAULT' => {
881             'new' => 'RULE_MAPKEY'
882             },
883             'TAG' => {
884             'WS' => {
885             'ANCHOR' => {
886             'WS' => {
887             'new' => 'RULE_MAPKEY'
888             },
889             'match' => 'cb_anchor'
890             },
891             'DEFAULT' => {
892             'new' => 'RULE_MAPKEY'
893             }
894             },
895             'match' => 'cb_tag'
896             }
897             },
898             'NODETYPE_MAPVALUE_INLINE' => {
899             'ALIAS' => {
900             'EOL' => {},
901             'match' => 'cb_send_alias'
902             },
903             'BLOCK_SCALAR' => {
904             'EOL' => {},
905             'match' => 'cb_send_block_scalar'
906             },
907             'DOC_END' => {
908             'EOL' => {},
909             'match' => 'cb_end_document'
910             },
911             'FLOWMAP_START' => {
912             'match' => 'cb_start_flowmap',
913             'new' => 'NEWFLOWMAP'
914             },
915             'FLOWSEQ_START' => {
916             'match' => 'cb_start_flowseq',
917             'new' => 'NEWFLOWSEQ'
918             },
919             'PLAIN' => {
920             'EOL' => {
921             'match' => 'cb_send_scalar'
922             },
923             'match' => 'cb_start_plain'
924             },
925             'PLAIN_MULTI' => {
926             'EOL' => {},
927             'match' => 'cb_send_plain_multi'
928             },
929             'QUOTED' => {
930             'EOL' => {
931             'match' => 'cb_send_scalar'
932             },
933             'match' => 'cb_take_quoted'
934             },
935             'QUOTED_MULTILINE' => {
936             'EOL' => {},
937             'match' => 'cb_quoted_multiline'
938             }
939             },
940             'NODETYPE_NODE' => {
941             'DASH' => {
942             'EOL' => {
943             'new' => 'FULLNODE'
944             },
945             'WS' => {
946             'new' => 'FULLNODE'
947             },
948             'match' => 'cb_seqstart'
949             },
950             'DEFAULT' => {
951             'new' => 'NODETYPE_SCALAR_OR_MAP'
952             }
953             },
954             'NODETYPE_SCALAR_OR_MAP' => {
955             'ALIAS' => {
956             'EOL' => {
957             'match' => 'cb_send_alias_from_stack'
958             },
959             'WS' => {
960             'COLON' => {
961             'EOL' => {
962             'new' => 'FULLNODE'
963             },
964             'WS' => {
965             'new' => 'FULLMAPVALUE_INLINE'
966             },
967             'match' => 'cb_insert_map_alias'
968             }
969             },
970             'match' => 'cb_alias'
971             },
972             'BLOCK_SCALAR' => {
973             'EOL' => {},
974             'match' => 'cb_send_block_scalar'
975             },
976             'COLON' => {
977             'EOL' => {
978             'new' => 'FULLNODE'
979             },
980             'WS' => {
981             'new' => 'FULLMAPVALUE_INLINE'
982             },
983             'match' => 'cb_insert_empty_map'
984             },
985             'DOC_END' => {
986             'EOL' => {},
987             'match' => 'cb_end_document'
988             },
989             'DOC_START' => {
990             'EOL' => {
991             'new' => 'FULLNODE'
992             },
993             'WS' => {
994             'new' => 'FULLNODE'
995             },
996             'match' => 'cb_end_doc_start_document'
997             },
998             'EOL' => {
999             'new' => 'NODETYPE_SCALAR_OR_MAP'
1000             },
1001             'FLOWMAP_START' => {
1002             'match' => 'cb_start_flowmap',
1003             'new' => 'NEWFLOWMAP'
1004             },
1005             'FLOWSEQ_START' => {
1006             'match' => 'cb_start_flowseq',
1007             'new' => 'NEWFLOWSEQ'
1008             },
1009             'PLAIN' => {
1010             'COLON' => {
1011             'EOL' => {
1012             'new' => 'FULLNODE'
1013             },
1014             'WS' => {
1015             'new' => 'FULLMAPVALUE_INLINE'
1016             },
1017             'match' => 'cb_insert_map'
1018             },
1019             'EOL' => {
1020             'match' => 'cb_send_scalar'
1021             },
1022             'WS' => {
1023             'COLON' => {
1024             'EOL' => {
1025             'new' => 'FULLNODE'
1026             },
1027             'WS' => {
1028             'new' => 'FULLMAPVALUE_INLINE'
1029             },
1030             'match' => 'cb_insert_map'
1031             }
1032             },
1033             'match' => 'cb_start_plain'
1034             },
1035             'PLAIN_MULTI' => {
1036             'EOL' => {},
1037             'match' => 'cb_send_plain_multi'
1038             },
1039             'QUESTION' => {
1040             'EOL' => {
1041             'new' => 'FULLNODE'
1042             },
1043             'WS' => {
1044             'new' => 'FULLNODE'
1045             },
1046             'match' => 'cb_questionstart'
1047             },
1048             'QUOTED' => {
1049             'COLON' => {
1050             'EOL' => {
1051             'new' => 'FULLNODE'
1052             },
1053             'WS' => {
1054             'new' => 'FULLMAPVALUE_INLINE'
1055             },
1056             'match' => 'cb_insert_map'
1057             },
1058             'EOL' => {
1059             'match' => 'cb_send_scalar'
1060             },
1061             'WS' => {
1062             'COLON' => {
1063             'EOL' => {
1064             'new' => 'FULLNODE'
1065             },
1066             'WS' => {
1067             'new' => 'FULLMAPVALUE_INLINE'
1068             },
1069             'match' => 'cb_insert_map'
1070             }
1071             },
1072             'match' => 'cb_take_quoted'
1073             },
1074             'QUOTED_MULTILINE' => {
1075             'EOL' => {},
1076             'match' => 'cb_quoted_multiline'
1077             },
1078             'WS' => {
1079             'new' => 'FULLMAPVALUE_INLINE'
1080             }
1081             },
1082             'NODETYPE_SEQ' => {
1083             'DASH' => {
1084             'EOL' => {
1085             'new' => 'FULLNODE'
1086             },
1087             'WS' => {
1088             'new' => 'FULLNODE'
1089             },
1090             'match' => 'cb_seqitem'
1091             },
1092             'DOC_END' => {
1093             'EOL' => {},
1094             'match' => 'cb_end_document'
1095             },
1096             'DOC_START' => {
1097             'EOL' => {
1098             'new' => 'FULLNODE'
1099             },
1100             'WS' => {
1101             'new' => 'FULLNODE'
1102             },
1103             'match' => 'cb_end_doc_start_document'
1104             },
1105             'EOL' => {
1106             'new' => 'NODETYPE_SEQ'
1107             }
1108             },
1109             'RULE_FLOWSCALAR' => {
1110             'ALIAS' => {
1111             'match' => 'cb_send_alias',
1112             'return' => 1
1113             },
1114             'FLOWMAP_END' => {
1115             'match' => 'cb_end_flowmap_empty',
1116             'return' => 1
1117             },
1118             'FLOWMAP_START' => {
1119             'match' => 'cb_start_flowmap',
1120             'new' => 'NEWFLOWMAP'
1121             },
1122             'FLOWSEQ_START' => {
1123             'match' => 'cb_start_flowseq',
1124             'new' => 'NEWFLOWSEQ'
1125             },
1126             'FLOW_COMMA' => {
1127             'match' => 'cb_empty_flow_mapkey',
1128             'return' => 1
1129             },
1130             'PLAIN' => {
1131             'DEFAULT' => {
1132             'match' => 'cb_send_scalar',
1133             'return' => 1
1134             },
1135             'EOL' => {
1136             'match' => 'cb_send_scalar'
1137             },
1138             'match' => 'cb_start_plain'
1139             },
1140             'PLAIN_MULTI' => {
1141             'match' => 'cb_send_plain_multi',
1142             'return' => 1
1143             },
1144             'QUOTED' => {
1145             'DEFAULT' => {
1146             'match' => 'cb_send_scalar',
1147             'return' => 1
1148             },
1149             'EOL' => {
1150             'match' => 'cb_send_scalar'
1151             },
1152             'WS' => {
1153             'match' => 'cb_send_scalar',
1154             'return' => 1
1155             },
1156             'match' => 'cb_take_quoted'
1157             },
1158             'QUOTED_MULTILINE' => {
1159             'match' => 'cb_quoted_multiline',
1160             'return' => 1
1161             }
1162             },
1163             'RULE_FULLFLOWSCALAR' => {
1164             'ANCHOR' => {
1165             'DEFAULT' => {
1166             'new' => 'RULE_FULLFLOWSCALAR_ANCHOR'
1167             },
1168             'EOL' => {
1169             'new' => 'RULE_FULLFLOWSCALAR_ANCHOR'
1170             },
1171             'match' => 'cb_anchor'
1172             },
1173             'DEFAULT' => {
1174             'new' => 'RULE_FLOWSCALAR'
1175             },
1176             'TAG' => {
1177             'DEFAULT' => {
1178             'new' => 'RULE_FULLFLOWSCALAR_TAG'
1179             },
1180             'EOL' => {
1181             'new' => 'RULE_FULLFLOWSCALAR_TAG'
1182             },
1183             'match' => 'cb_tag'
1184             }
1185             },
1186             'RULE_FULLFLOWSCALAR_ANCHOR' => {
1187             'DEFAULT' => {
1188             'new' => 'RULE_FLOWSCALAR'
1189             },
1190             'TAG' => {
1191             'EOL' => {
1192             'new' => 'RULE_FLOWSCALAR'
1193             },
1194             'WS' => {
1195             'new' => 'RULE_FLOWSCALAR'
1196             },
1197             'match' => 'cb_tag'
1198             },
1199             'WS' => {
1200             'new' => 'RULE_FULLFLOWSCALAR_ANCHOR'
1201             }
1202             },
1203             'RULE_FULLFLOWSCALAR_TAG' => {
1204             'ANCHOR' => {
1205             'EOL' => {
1206             'new' => 'RULE_FLOWSCALAR'
1207             },
1208             'WS' => {
1209             'new' => 'RULE_FLOWSCALAR'
1210             },
1211             'match' => 'cb_anchor'
1212             },
1213             'DEFAULT' => {
1214             'new' => 'RULE_FLOWSCALAR'
1215             },
1216             'WS' => {
1217             'new' => 'RULE_FULLFLOWSCALAR_TAG'
1218             }
1219             },
1220             'RULE_MAPKEY' => {
1221             'ALIAS' => {
1222             'WS' => {
1223             'COLON' => {
1224             'EOL' => {
1225             'new' => 'FULLNODE'
1226             },
1227             'WS' => {
1228             'new' => 'FULLMAPVALUE_INLINE'
1229             }
1230             }
1231             },
1232             'match' => 'cb_send_alias_key'
1233             },
1234             'COLON' => {
1235             'EOL' => {
1236             'new' => 'FULLNODE'
1237             },
1238             'WS' => {
1239             'new' => 'FULLMAPVALUE_INLINE'
1240             },
1241             'match' => 'cb_empty_mapkey'
1242             },
1243             'DOC_END' => {
1244             'EOL' => {},
1245             'match' => 'cb_end_document'
1246             },
1247             'DOC_START' => {
1248             'EOL' => {
1249             'new' => 'FULLNODE'
1250             },
1251             'WS' => {
1252             'new' => 'FULLNODE'
1253             },
1254             'match' => 'cb_end_doc_start_document'
1255             },
1256             'EOL' => {
1257             'new' => 'RULE_MAPKEY'
1258             },
1259             'PLAIN' => {
1260             'COLON' => {
1261             'EOL' => {
1262             'new' => 'FULLNODE'
1263             },
1264             'WS' => {
1265             'new' => 'FULLMAPVALUE_INLINE'
1266             },
1267             'match' => 'cb_send_mapkey'
1268             },
1269             'WS' => {
1270             'COLON' => {
1271             'EOL' => {
1272             'new' => 'FULLNODE'
1273             },
1274             'WS' => {
1275             'new' => 'FULLMAPVALUE_INLINE'
1276             },
1277             'match' => 'cb_send_mapkey'
1278             }
1279             },
1280             'match' => 'cb_mapkey'
1281             },
1282             'QUESTION' => {
1283             'EOL' => {
1284             'new' => 'FULLNODE'
1285             },
1286             'WS' => {
1287             'new' => 'FULLNODE'
1288             },
1289             'match' => 'cb_question'
1290             },
1291             'QUOTED' => {
1292             'COLON' => {
1293             'EOL' => {
1294             'new' => 'FULLNODE'
1295             },
1296             'WS' => {
1297             'new' => 'FULLMAPVALUE_INLINE'
1298             }
1299             },
1300             'WS' => {
1301             'COLON' => {
1302             'EOL' => {
1303             'new' => 'FULLNODE'
1304             },
1305             'WS' => {
1306             'new' => 'FULLMAPVALUE_INLINE'
1307             }
1308             }
1309             },
1310             'match' => 'cb_take_quoted_key'
1311             }
1312             },
1313             'STREAM' => {
1314             'DEFAULT' => {
1315             'match' => 'cb_doc_start_implicit',
1316             'new' => 'FULLNODE'
1317             },
1318             'DOC_END' => {
1319             'EOL' => {},
1320             'match' => 'cb_end_document_empty'
1321             },
1322             'DOC_START' => {
1323             'EOL' => {
1324             'new' => 'FULLNODE'
1325             },
1326             'WS' => {
1327             'new' => 'FULLNODE'
1328             },
1329             'match' => 'cb_doc_start_explicit'
1330             },
1331             'EOL' => {
1332             'new' => 'STREAM'
1333             },
1334             'RESERVED_DIRECTIVE' => {
1335             'EOL' => {
1336             'new' => 'DIRECTIVE'
1337             },
1338             'WS' => {
1339             'new' => 'DIRECTIVE'
1340             },
1341             'match' => 'cb_reserved_directive'
1342             },
1343             'TAG_DIRECTIVE' => {
1344             'EOL' => {
1345             'new' => 'DIRECTIVE'
1346             },
1347             'WS' => {
1348             'new' => 'DIRECTIVE'
1349             },
1350             'match' => 'cb_tag_directive'
1351             },
1352             'YAML_DIRECTIVE' => {
1353             'EOL' => {
1354             'new' => 'DIRECTIVE'
1355             },
1356             'WS' => {
1357             'new' => 'DIRECTIVE'
1358             },
1359             'match' => 'cb_set_yaml_version_directive'
1360             }
1361             }
1362             };
1363              
1364              
1365             # END OF GRAMMAR INLINE
1366              
1367             1;
1368              
1369             __END__
1370              
1371             =pod
1372              
1373             =encoding utf-8
1374              
1375             =head1 NAME
1376              
1377             YAML::PP::Grammar - YAML grammar
1378              
1379             =head1 GRAMMAR
1380              
1381             This is the Grammar in YAML
1382              
1383             # START OF YAML INLINE
1384              
1385             # DO NOT CHANGE THIS
1386             # This grammar is automatically generated from etc/grammar.yaml
1387              
1388             ---
1389             NODETYPE_NODE:
1390             DASH:
1391             match: cb_seqstart
1392             EOL: { new: FULLNODE }
1393             WS: { new: FULLNODE }
1394            
1395             DEFAULT: { new: NODETYPE_SCALAR_OR_MAP }
1396            
1397             NODETYPE_SCALAR_OR_MAP:
1398            
1399             # Flow nodes can follow tabs
1400             WS: { new: FULLMAPVALUE_INLINE }
1401            
1402             ALIAS:
1403             match: cb_alias
1404             EOL: { match: cb_send_alias_from_stack }
1405             WS:
1406             COLON:
1407             match: cb_insert_map_alias
1408             EOL: { new: FULLNODE }
1409             WS: { new: FULLMAPVALUE_INLINE }
1410            
1411             QUESTION:
1412             match: cb_questionstart
1413             EOL: { new: FULLNODE }
1414             WS: { new: FULLNODE }
1415            
1416             QUOTED:
1417             match: cb_take_quoted
1418             EOL: { match: cb_send_scalar }
1419             WS:
1420             COLON:
1421             match: cb_insert_map
1422             EOL: { new: FULLNODE }
1423             WS: { new: FULLMAPVALUE_INLINE }
1424             COLON:
1425             match: cb_insert_map
1426             EOL: { new: FULLNODE }
1427             WS: { new: FULLMAPVALUE_INLINE }
1428            
1429             QUOTED_MULTILINE:
1430             match: cb_quoted_multiline
1431             EOL: { }
1432            
1433            
1434             PLAIN:
1435             match: cb_start_plain
1436             EOL:
1437             match: cb_send_scalar
1438             WS:
1439             COLON:
1440             match: cb_insert_map
1441             EOL: { new: FULLNODE }
1442             WS: { new: FULLMAPVALUE_INLINE }
1443             COLON:
1444             match: cb_insert_map
1445             EOL: { new: FULLNODE }
1446             WS: { new: FULLMAPVALUE_INLINE }
1447            
1448             PLAIN_MULTI:
1449             match: cb_send_plain_multi
1450             EOL: { }
1451            
1452             COLON:
1453             match: cb_insert_empty_map
1454             EOL: { new: FULLNODE }
1455             WS: { new: FULLMAPVALUE_INLINE }
1456            
1457             BLOCK_SCALAR:
1458             match: cb_send_block_scalar
1459             EOL: { }
1460            
1461             FLOWSEQ_START:
1462             match: cb_start_flowseq
1463             new: NEWFLOWSEQ
1464            
1465             FLOWMAP_START:
1466             match: cb_start_flowmap
1467             new: NEWFLOWMAP
1468            
1469             DOC_END:
1470             match: cb_end_document
1471             EOL: { }
1472            
1473             DOC_START:
1474             match: cb_end_doc_start_document
1475             EOL: { new: FULLNODE }
1476             WS: { new: FULLNODE }
1477            
1478             EOL:
1479             new: NODETYPE_SCALAR_OR_MAP
1480            
1481             NODETYPE_COMPLEX:
1482             COLON:
1483             match: cb_complexcolon
1484             EOL: { new: FULLNODE }
1485             WS: { new: FULLNODE }
1486             DEFAULT:
1487             match: cb_empty_complexvalue
1488             new: NODETYPE_MAP
1489             EOL:
1490             new: NODETYPE_COMPLEX
1491            
1492             RULE_FULLFLOWSCALAR:
1493             ANCHOR:
1494             match: cb_anchor
1495             EOL: { new: RULE_FULLFLOWSCALAR_ANCHOR }
1496             DEFAULT: { new: RULE_FULLFLOWSCALAR_ANCHOR }
1497             TAG:
1498             match: cb_tag
1499             EOL: { new: RULE_FULLFLOWSCALAR_TAG }
1500             DEFAULT: { new: RULE_FULLFLOWSCALAR_TAG }
1501             DEFAULT: { new: RULE_FLOWSCALAR }
1502            
1503             RULE_FULLFLOWSCALAR_ANCHOR:
1504             WS: { new: RULE_FULLFLOWSCALAR_ANCHOR }
1505             TAG:
1506             match: cb_tag
1507             WS: { new: RULE_FLOWSCALAR }
1508             EOL: { new: RULE_FLOWSCALAR }
1509             DEFAULT: { new: RULE_FLOWSCALAR }
1510            
1511             RULE_FULLFLOWSCALAR_TAG:
1512             WS: { new: RULE_FULLFLOWSCALAR_TAG }
1513             ANCHOR:
1514             match: cb_anchor
1515             WS: { new: RULE_FLOWSCALAR }
1516             EOL: { new: RULE_FLOWSCALAR }
1517             DEFAULT: { new: RULE_FLOWSCALAR }
1518            
1519             RULE_FLOWSCALAR:
1520             FLOWSEQ_START: { match: cb_start_flowseq, new: NEWFLOWSEQ }
1521             FLOWMAP_START: { match: cb_start_flowmap, new: NEWFLOWMAP }
1522            
1523             ALIAS: { match: cb_send_alias, return: 1 }
1524            
1525             QUOTED:
1526             match: cb_take_quoted
1527             EOL: { match: cb_send_scalar }
1528             WS: { match: cb_send_scalar, return: 1 }
1529             DEFAULT: { match: cb_send_scalar, return: 1 }
1530            
1531             QUOTED_MULTILINE: { match: cb_quoted_multiline, return: 1 }
1532            
1533             PLAIN:
1534             match: cb_start_plain
1535             EOL: { match: cb_send_scalar }
1536             DEFAULT: { match: cb_send_scalar, return: 1 }
1537            
1538             PLAIN_MULTI: { match: cb_send_plain_multi, return: 1 }
1539            
1540             FLOW_COMMA: { match: cb_empty_flow_mapkey, return: 1 }
1541            
1542             FLOWMAP_END:
1543             match: cb_end_flowmap_empty
1544             return: 1
1545            
1546             FLOWSEQ:
1547             FLOWSEQ_START: { match: cb_start_flowseq, new: NEWFLOWSEQ }
1548             FLOWMAP_START: { match: cb_start_flowmap, new: NEWFLOWMAP }
1549            
1550             ALIAS: { match: cb_send_flow_alias, new: FLOWSEQ_NEXT }
1551            
1552             PLAIN:
1553             match: cb_start_plain
1554             EOL:
1555             match: cb_send_scalar
1556             new: FLOWSEQ_NEXT
1557             DEFAULT:
1558             new: FLOWSEQ_MAYBE_KEY
1559             PLAIN_MULTI: { match: cb_send_plain_multi, new: FLOWSEQ_NEXT }
1560            
1561             QUOTED:
1562             match: cb_take_quoted
1563             EOL:
1564             match: cb_send_scalar
1565             new: FLOWSEQ_NEXT
1566             DEFAULT:
1567             new: FLOWSEQ_MAYBE_KEY
1568             QUOTED_MULTILINE: { match: cb_quoted_multiline, new: FLOWSEQ_NEXT }
1569            
1570             COLON:
1571             WS:
1572             match: cb_insert_empty_implicit_flowseq_map
1573             new: RULE_FULLFLOWSCALAR
1574             EOL:
1575             match: cb_insert_empty_implicit_flowseq_map
1576             new: RULE_FULLFLOWSCALAR
1577            
1578             FLOWSEQ_PROPS:
1579             FLOWSEQ_START: { match: cb_start_flowseq, new: NEWFLOWSEQ }
1580             FLOWMAP_START: { match: cb_start_flowmap, new: NEWFLOWMAP }
1581            
1582             PLAIN:
1583             match: cb_start_plain
1584             EOL:
1585             match: cb_send_scalar
1586             new: FLOWSEQ_NEXT
1587             DEFAULT:
1588             new: FLOWSEQ_MAYBE_KEY
1589             PLAIN_MULTI: { match: cb_send_plain_multi, new: FLOWSEQ_NEXT }
1590            
1591             QUOTED:
1592             match: cb_take_quoted
1593             EOL:
1594             match: cb_send_scalar
1595             new: FLOWSEQ_NEXT
1596             DEFAULT:
1597             new: FLOWSEQ_MAYBE_KEY
1598             QUOTED_MULTILINE: { match: cb_quoted_multiline, new: FLOWSEQ_NEXT }
1599            
1600             FLOW_COMMA:
1601             match: cb_empty_flowseq_comma
1602             return: 1
1603             FLOWSEQ_END:
1604             match: cb_empty_flowseq_end
1605             return: 1
1606            
1607             COLON:
1608             WS:
1609             match: cb_insert_empty_implicit_flowseq_map
1610             new: RULE_FULLFLOWSCALAR
1611             EOL:
1612             match: cb_insert_empty_implicit_flowseq_map
1613             new: RULE_FULLFLOWSCALAR
1614            
1615             FLOWSEQ_EMPTY:
1616             FLOW_COMMA:
1617             match: cb_empty_flowseq_comma
1618             return: 1
1619             FLOWSEQ_END:
1620             match: cb_empty_flowseq_end
1621             return: 1
1622            
1623             FLOWSEQ_NEXT:
1624             WS: { new: FLOWSEQ_NEXT }
1625             EOL: { new: FLOWSEQ_NEXT }
1626            
1627             FLOW_COMMA:
1628             match: cb_flow_comma
1629             return: 1
1630             FLOWSEQ_END:
1631             match: cb_end_flowseq
1632             return: 1
1633            
1634             FLOWSEQ_MAYBE_KEY:
1635             WS: { new: FLOWSEQ_MAYBE_KEY }
1636            
1637             COLON:
1638             WS:
1639             match: cb_insert_implicit_flowseq_map
1640             new: RULE_FULLFLOWSCALAR
1641             EOL:
1642             match: cb_insert_implicit_flowseq_map
1643             new: RULE_FULLFLOWSCALAR
1644             DEFAULT:
1645             match: cb_insert_implicit_flowseq_map
1646             new: RULE_FULLFLOWSCALAR
1647             DEFAULT:
1648             new: FLOWSEQ_NEXT
1649            
1650             FLOWMAP_CONTENT:
1651             FLOWSEQ_START: { match: cb_start_flowseq, new: NEWFLOWSEQ }
1652             FLOWMAP_START: { match: cb_start_flowmap, new: NEWFLOWMAP }
1653            
1654             ALIAS: { match: cb_send_alias, return: 1 }
1655            
1656             PLAIN: { match: cb_flowkey_plain, return: 1 }
1657             PLAIN_MULTI: { match: cb_send_plain_multi, return: 1 }
1658            
1659             QUOTED: { match: cb_flowkey_quoted, return: 1 }
1660             QUOTED_MULTILINE: { match: cb_quoted_multiline, return: 1 }
1661            
1662             COLON:
1663             WS:
1664             match: cb_empty_flow_mapkey
1665             new: RULE_FULLFLOWSCALAR
1666             EOL:
1667             match: cb_empty_flow_mapkey
1668             new: RULE_FULLFLOWSCALAR
1669            
1670             FLOWMAP_PROPS:
1671             FLOWSEQ_START: { match: cb_start_flowseq, new: NEWFLOWSEQ }
1672             FLOWMAP_START: { match: cb_start_flowmap, new: NEWFLOWMAP }
1673            
1674             PLAIN: { match: cb_flowkey_plain, return: 1 }
1675             PLAIN_MULTI: { match: cb_send_plain_multi, return: 1 }
1676            
1677             QUOTED: { match: cb_flowkey_quoted, return: 1 }
1678             QUOTED_MULTILINE: { match: cb_quoted_multiline, return: 1 }
1679            
1680             COLON:
1681             WS:
1682             match: cb_empty_flow_mapkey
1683             new: RULE_FULLFLOWSCALAR
1684             EOL:
1685             match: cb_empty_flow_mapkey
1686             new: RULE_FULLFLOWSCALAR
1687             FLOW_COMMA:
1688             match: cb_empty_flowmap_key_value
1689             return: 1
1690             FLOWMAP_END:
1691             match: cb_end_empty_flowmap_key_value
1692             return: 1
1693            
1694             FLOWMAP_EMPTYKEY:
1695             FLOW_COMMA:
1696             match: cb_empty_flowmap_key_value
1697             return: 1
1698             FLOWMAP_END:
1699             match: cb_end_empty_flowmap_key_value
1700             return: 1
1701            
1702             NEWFLOWSEQ:
1703             EOL: { new: NEWFLOWSEQ }
1704             WS: { new: NEWFLOWSEQ }
1705            
1706             ANCHOR:
1707             match: cb_anchor
1708             WS: { new: NEWFLOWSEQ_ANCHOR_SPC }
1709             EOL: { new: NEWFLOWSEQ_ANCHOR_SPC }
1710             DEFAULT: { new: NEWFLOWSEQ_ANCHOR }
1711            
1712             TAG:
1713             match: cb_tag
1714             WS: { new: NEWFLOWSEQ_TAG_SPC }
1715             EOL: { new: NEWFLOWSEQ_TAG_SPC }
1716             DEFAULT: { new: NEWFLOWSEQ_TAG }
1717            
1718             FLOWSEQ_END:
1719             match: cb_end_flowseq
1720             return: 1
1721            
1722             DEFAULT: { new: FLOWSEQ }
1723            
1724             NODETYPE_FLOWSEQ:
1725             EOL: { new: NODETYPE_FLOWSEQ }
1726             WS: { new: NODETYPE_FLOWSEQ }
1727             FLOWSEQ_END:
1728             match: cb_end_flowseq
1729             return: 1
1730             DEFAULT: { new: NEWFLOWSEQ }
1731            
1732             NODETYPE_FLOWMAPVALUE:
1733             WS: { new: NODETYPE_FLOWMAPVALUE }
1734             EOL: { new: NODETYPE_FLOWMAPVALUE }
1735             COLON:
1736             match: cb_flow_colon
1737             WS: { new: RULE_FULLFLOWSCALAR }
1738             EOL: { new: RULE_FULLFLOWSCALAR }
1739             DEFAULT: { new: RULE_FULLFLOWSCALAR }
1740             FLOW_COMMA:
1741             match: cb_empty_flowmap_value
1742             return: 1
1743             FLOWMAP_END:
1744             match: cb_end_flowmap_empty
1745             return: 1
1746            
1747             NEWFLOWSEQ_ANCHOR:
1748             DEFAULT: { new: FLOWSEQ_EMPTY }
1749             NEWFLOWSEQ_TAG:
1750             DEFAULT: { new: FLOWSEQ_EMPTY }
1751            
1752             NEWFLOWSEQ_ANCHOR_SPC:
1753             WS: { new: NEWFLOWSEQ_ANCHOR_SPC }
1754             EOL: { new: NEWFLOWSEQ_ANCHOR_SPC }
1755             TAG:
1756             match: cb_tag
1757             WS: { new: FLOWSEQ_PROPS }
1758             EOL: { new: FLOWSEQ_PROPS }
1759             DEFAULT: { new: FLOWSEQ_EMPTY }
1760             DEFAULT: { new: FLOWSEQ_PROPS }
1761            
1762             NEWFLOWSEQ_TAG_SPC:
1763             WS: { new: NEWFLOWSEQ_TAG_SPC }
1764             EOL: { new: NEWFLOWSEQ_TAG_SPC }
1765             ANCHOR:
1766             match: cb_anchor
1767             WS: { new: FLOWSEQ_PROPS }
1768             EOL: { new: FLOWSEQ_PROPS }
1769             DEFAULT: { new: FLOWSEQ_EMPTY }
1770             DEFAULT: { new: FLOWSEQ_PROPS }
1771            
1772            
1773             NEWFLOWMAP_ANCHOR:
1774             DEFAULT: { new: FLOWMAP_EMPTYKEY }
1775             NEWFLOWMAP_TAG:
1776             DEFAULT: { new: FLOWMAP_EMPTYKEY }
1777            
1778             NEWFLOWMAP_ANCHOR_SPC:
1779             WS: { new: NEWFLOWMAP_ANCHOR_SPC }
1780             EOL: { new: NEWFLOWMAP_ANCHOR_SPC }
1781             TAG:
1782             match: cb_tag
1783             WS: { new: FLOWMAP_PROPS }
1784             EOL: { new: FLOWMAP_PROPS }
1785             DEFAULT: { new: FLOWMAP_EMPTYKEY }
1786             DEFAULT: { new: FLOWMAP_PROPS }
1787            
1788             NEWFLOWMAP_TAG_SPC:
1789             WS: { new: NEWFLOWMAP_TAG_SPC }
1790             EOL: { new: NEWFLOWMAP_TAG_SPC }
1791             ANCHOR:
1792             match: cb_anchor
1793             WS: { new: FLOWMAP_PROPS }
1794             EOL: { new: FLOWMAP_PROPS }
1795             DEFAULT: { new: FLOWMAP_EMPTYKEY }
1796             DEFAULT: { new: FLOWMAP_PROPS }
1797            
1798             NEWFLOWMAP:
1799             EOL: { new: NEWFLOWMAP }
1800             WS: { new: NEWFLOWMAP }
1801             QUESTION: { match: cb_flow_question, new: FLOWMAP_EXPLICIT_KEY }
1802             DEFAULT: { new: FLOWMAP }
1803            
1804            
1805             FLOWMAP_EXPLICIT_KEY:
1806             WS: { new: FLOWMAP_EXPLICIT_KEY }
1807             EOL: { new: FLOWMAP_EXPLICIT_KEY }
1808             FLOWMAP_END:
1809             match: cb_end_empty_flowmap_key_value
1810             return: 1
1811             FLOW_COMMA:
1812             match: cb_empty_flowmap_key_value
1813             return: 1
1814             DEFAULT: { new: FLOWMAP }
1815            
1816             FLOWMAP:
1817             EOL: { new: FLOWMAP }
1818             WS: { new: FLOWMAP }
1819            
1820             ANCHOR:
1821             match: cb_anchor
1822             WS: { new: NEWFLOWMAP_ANCHOR_SPC }
1823             EOL: { new: NEWFLOWMAP_ANCHOR_SPC }
1824             DEFAULT: { new: NEWFLOWMAP_ANCHOR }
1825             TAG:
1826             match: cb_tag
1827             WS: { new: NEWFLOWMAP_TAG_SPC }
1828             EOL: { new: NEWFLOWMAP_TAG_SPC }
1829             DEFAULT: { new: NEWFLOWMAP_TAG }
1830            
1831             FLOWMAP_END:
1832             match: cb_end_flowmap
1833             return: 1
1834            
1835             COLON:
1836             WS:
1837             match: cb_empty_flow_mapkey
1838             new: RULE_FULLFLOWSCALAR
1839             EOL:
1840             match: cb_empty_flow_mapkey
1841             new: RULE_FULLFLOWSCALAR
1842            
1843             DEFAULT: { new: FLOWMAP_CONTENT }
1844            
1845             NODETYPE_FLOWMAP:
1846             EOL: { new: NODETYPE_FLOWMAP }
1847             WS: { new: NODETYPE_FLOWMAP }
1848             FLOWMAP_END:
1849             match: cb_end_flowmap
1850             return: 1
1851             FLOW_COMMA: { match: cb_flow_comma, new: NEWFLOWMAP }
1852             DEFAULT: { new: NEWFLOWMAP }
1853            
1854             END_FLOW:
1855             EOL:
1856             match: cb_end_outer_flow
1857             return: 1
1858            
1859             RULE_MAPKEY:
1860             QUESTION:
1861             match: cb_question
1862             EOL: { new: FULLNODE }
1863             WS: { new: FULLNODE }
1864             ALIAS:
1865             match: cb_send_alias_key
1866             WS:
1867             COLON:
1868             EOL: { new: FULLNODE }
1869             WS: { new: FULLMAPVALUE_INLINE }
1870            
1871             QUOTED:
1872             match: cb_take_quoted_key
1873             WS:
1874             COLON:
1875             EOL: { new: FULLNODE }
1876             WS: { new: FULLMAPVALUE_INLINE }
1877             COLON:
1878             EOL: { new: FULLNODE }
1879             WS: { new: FULLMAPVALUE_INLINE }
1880            
1881             PLAIN:
1882             match: cb_mapkey
1883             WS:
1884             COLON:
1885             match: cb_send_mapkey
1886             EOL: { new: FULLNODE }
1887             WS: { new: FULLMAPVALUE_INLINE }
1888             COLON:
1889             match: cb_send_mapkey
1890             EOL: { new: FULLNODE }
1891             WS: { new: FULLMAPVALUE_INLINE }
1892            
1893             COLON:
1894             match: cb_empty_mapkey
1895             EOL: { new: FULLNODE }
1896             WS: { new: FULLMAPVALUE_INLINE }
1897            
1898             DOC_END:
1899             match: cb_end_document
1900             EOL: { }
1901            
1902             DOC_START:
1903             match: cb_end_doc_start_document
1904             EOL: { new: FULLNODE }
1905             WS: { new: FULLNODE }
1906            
1907             EOL:
1908             new: RULE_MAPKEY
1909            
1910            
1911             NODETYPE_SEQ:
1912             DASH:
1913             match: cb_seqitem
1914             EOL: { new: FULLNODE }
1915             WS: { new: FULLNODE }
1916             DOC_END:
1917             match: cb_end_document
1918             EOL: { }
1919             DOC_START:
1920             match: cb_end_doc_start_document
1921             EOL: { new: FULLNODE }
1922             WS: { new: FULLNODE }
1923            
1924             EOL:
1925             new: NODETYPE_SEQ
1926            
1927             NODETYPE_MAP:
1928             ANCHOR:
1929             match: cb_anchor
1930             WS:
1931             TAG:
1932             match: cb_tag
1933             WS: { new: RULE_MAPKEY }
1934             DEFAULT: { new: RULE_MAPKEY }
1935             TAG:
1936             match: cb_tag
1937             WS:
1938             ANCHOR:
1939             match: cb_anchor
1940             WS: { new: RULE_MAPKEY }
1941             DEFAULT: { new: RULE_MAPKEY }
1942             DEFAULT: { new: RULE_MAPKEY }
1943            
1944             FULLNODE_ANCHOR:
1945             TAG:
1946             match: cb_tag
1947             EOL: { match: cb_property_eol, new: FULLNODE_TAG_ANCHOR }
1948             WS:
1949             ANCHOR:
1950             match: cb_anchor
1951             WS: { new: NODETYPE_SCALAR_OR_MAP }
1952             DEFAULT: { new: NODETYPE_SCALAR_OR_MAP }
1953             ANCHOR:
1954             match: cb_anchor
1955             WS:
1956             TAG:
1957             match: cb_tag
1958             WS: { new: NODETYPE_SCALAR_OR_MAP }
1959             DEFAULT: { new: NODETYPE_SCALAR_OR_MAP }
1960             EOL: { new: FULLNODE_ANCHOR }
1961             DEFAULT: { new: NODETYPE_NODE }
1962            
1963             FULLNODE_TAG:
1964             ANCHOR:
1965             match: cb_anchor
1966             EOL: { match: cb_property_eol, new: FULLNODE_TAG_ANCHOR }
1967             WS:
1968             TAG:
1969             match: cb_tag
1970             WS: { new: NODETYPE_SCALAR_OR_MAP }
1971             DEFAULT: { new: NODETYPE_SCALAR_OR_MAP, }
1972             TAG:
1973             match: cb_tag
1974             WS:
1975             ANCHOR:
1976             match: cb_anchor
1977             WS: { new: NODETYPE_SCALAR_OR_MAP }
1978             DEFAULT: { new: NODETYPE_SCALAR_OR_MAP }
1979             EOL: { new: FULLNODE_TAG }
1980             DEFAULT: { new: NODETYPE_NODE }
1981            
1982             FULLNODE_TAG_ANCHOR:
1983             ANCHOR:
1984             match: cb_anchor
1985             WS:
1986             TAG:
1987             match: cb_tag
1988             WS: { new: NODETYPE_SCALAR_OR_MAP }
1989             DEFAULT: { new: NODETYPE_SCALAR_OR_MAP }
1990             TAG:
1991             match: cb_tag
1992             WS:
1993             ANCHOR:
1994             match: cb_anchor
1995             WS: { new: NODETYPE_SCALAR_OR_MAP }
1996             DEFAULT: { new: NODETYPE_SCALAR_OR_MAP }
1997             EOL: { new: FULLNODE_TAG_ANCHOR }
1998             DEFAULT: { new: NODETYPE_NODE }
1999            
2000             FULLNODE:
2001             ANCHOR:
2002             match: cb_anchor
2003             EOL: { match: cb_property_eol, new: FULLNODE_ANCHOR }
2004             WS:
2005             TAG:
2006             match: cb_tag
2007             EOL: { match: cb_property_eol, new: FULLNODE_TAG_ANCHOR }
2008             WS: { new: NODETYPE_SCALAR_OR_MAP }
2009             DEFAULT: { new: NODETYPE_SCALAR_OR_MAP }
2010             TAG:
2011             match: cb_tag
2012             EOL: { match: cb_property_eol, new: FULLNODE_TAG }
2013             WS:
2014             ANCHOR:
2015             match: cb_anchor
2016             EOL: { match: cb_property_eol, new: FULLNODE_TAG_ANCHOR }
2017             WS: { new: NODETYPE_SCALAR_OR_MAP }
2018             DEFAULT: { new: NODETYPE_SCALAR_OR_MAP }
2019             EOL: { new: FULLNODE }
2020             DEFAULT: { new: NODETYPE_NODE }
2021            
2022             FULLMAPVALUE_INLINE:
2023             ANCHOR:
2024             match: cb_anchor
2025             EOL: { match: cb_property_eol, new: FULLNODE_ANCHOR }
2026             WS:
2027             TAG:
2028             match: cb_tag
2029             EOL: { match: cb_property_eol, new: FULLNODE_TAG_ANCHOR }
2030             WS: { new: NODETYPE_MAPVALUE_INLINE }
2031             DEFAULT: { new: NODETYPE_MAPVALUE_INLINE }
2032             TAG:
2033             match: cb_tag
2034             EOL: { match: cb_property_eol, new: FULLNODE_TAG }
2035             WS:
2036             ANCHOR:
2037             match: cb_anchor
2038             EOL: { match: cb_property_eol, new: FULLNODE_TAG_ANCHOR }
2039             WS: { new: NODETYPE_MAPVALUE_INLINE }
2040             DEFAULT: { new: NODETYPE_MAPVALUE_INLINE }
2041             DEFAULT: { new: NODETYPE_MAPVALUE_INLINE }
2042            
2043            
2044             NODETYPE_MAPVALUE_INLINE:
2045             ALIAS:
2046             match: cb_send_alias
2047             EOL: { }
2048            
2049             QUOTED:
2050             match: cb_take_quoted
2051             EOL: { match: cb_send_scalar }
2052            
2053             QUOTED_MULTILINE:
2054             match: cb_quoted_multiline
2055             EOL: { }
2056            
2057             PLAIN:
2058             match: cb_start_plain
2059             EOL:
2060             match: cb_send_scalar
2061            
2062             PLAIN_MULTI:
2063             match: cb_send_plain_multi
2064             EOL: { }
2065            
2066             BLOCK_SCALAR:
2067             match: cb_send_block_scalar
2068             EOL: { }
2069            
2070             FLOWSEQ_START:
2071             match: cb_start_flowseq
2072             new: NEWFLOWSEQ
2073            
2074             FLOWMAP_START:
2075             match: cb_start_flowmap
2076             new: NEWFLOWMAP
2077            
2078             DOC_END:
2079             match: cb_end_document
2080             EOL: { }
2081            
2082            
2083             DOCUMENT_END:
2084             DOC_END:
2085             match: cb_end_document
2086             EOL: { }
2087             DOC_START:
2088             match: cb_end_doc_start_document
2089             EOL: { new: FULLNODE }
2090             WS: { new: FULLNODE }
2091            
2092             EOL:
2093             new: DOCUMENT_END
2094            
2095            
2096             STREAM:
2097            
2098             DOC_END:
2099             match: cb_end_document_empty
2100             EOL: { }
2101             DOC_START:
2102             match: cb_doc_start_explicit
2103             EOL: { new: FULLNODE }
2104             WS: { new: FULLNODE }
2105             YAML_DIRECTIVE:
2106             match: cb_set_yaml_version_directive
2107             EOL: { new: DIRECTIVE }
2108             WS: { new: DIRECTIVE }
2109             RESERVED_DIRECTIVE:
2110             match: cb_reserved_directive
2111             EOL: { new: DIRECTIVE }
2112             WS: { new: DIRECTIVE }
2113             TAG_DIRECTIVE:
2114             match: cb_tag_directive
2115             EOL: { new: DIRECTIVE }
2116             WS: { new: DIRECTIVE }
2117            
2118             EOL:
2119             new: STREAM
2120            
2121             DEFAULT:
2122             match: cb_doc_start_implicit
2123             new: FULLNODE
2124            
2125             DIRECTIVE:
2126             DOC_START:
2127             match: cb_doc_start_explicit
2128             EOL: { new: FULLNODE }
2129             WS: { new: FULLNODE }
2130            
2131             YAML_DIRECTIVE:
2132             match: cb_set_yaml_version_directive
2133             EOL: { new: DIRECTIVE }
2134             WS: { new: DIRECTIVE }
2135             RESERVED_DIRECTIVE:
2136             match: cb_reserved_directive
2137             EOL: { new: DIRECTIVE }
2138             WS: { new: DIRECTIVE }
2139             TAG_DIRECTIVE:
2140             match: cb_tag_directive
2141             EOL: { new: DIRECTIVE }
2142             WS: { new: DIRECTIVE }
2143            
2144             EOL:
2145             new: DIRECTIVE
2146              
2147              
2148             # END OF YAML INLINE
2149              
2150             =cut