3 #ifndef MYLANG_SYNTAX_HPP
4 #define MYLANG_SYNTAX_HPP
15 RuleItemRef<MP_STR("main structure", 14)>,
17 RuleItemKeyword<MP_STR(";", 1)>,
22 RuleItemRef<MP_STR("main structure", 14)>,
26 RuleItemError<MP_STR("Syntax error", 12)>
32 public RuleList<MP_STR("main structure", 14),
34 RuleItemRef<MP_STR("program", 7)>
37 RuleItemRef<MP_STR("function", 8)>
40 RuleItemRef<MP_STR("class", 5)>
46 public RuleList<MP_STR("program", 7),
48 RuleItemKeyword<MP_STR("program", 7)>,
50 RuleItemRef<MP_STR("function proto", 14)>,
52 RuleItemRef<MP_STR("main body", 9)>
58 public RuleList<MP_STR("function", 8),
60 RuleItemKeyword<MP_STR("function", 8)>,
62 RuleItemRef<MP_STR("function proto", 14)>,
64 RuleItemRef<MP_STR("main body", 9)>
72 RuleItemKeyword<MP_STR("class", 5)>,
74 RuleItemRef<MP_STR("main body", 9)>
80 public RuleList<MP_STR("main body", 9),
82 RuleItemRef<MP_STR("specific list", 13)>,
84 RuleItemRef<MP_STR("interface block", 15)>,
86 RuleItemRef<MP_STR("is block", 8)>,
88 RuleItemRef<MP_STR("code block", 10)>,
90 RuleItemRef<MP_STR("main end", 8)>
96 public RuleList<MP_STR("interface block", 15),
98 RuleItemRef<MP_STR("definition", 10)>,
100 RuleItemRef<MP_STR("interface block", 15)>
109 public RuleList<MP_STR("is block", 8),
111 RuleItemKeyword<MP_STR("is", 2)>,
113 RuleItemRef<MP_STR("interface block", 15)>
122 public RuleList<MP_STR("code block", 10),
124 RuleItemKeyword<MP_STR("begin", 5)>,
126 RuleItemRef<MP_STR("statement list", 14)>
135 public RuleList<MP_STR("main end", 8),
137 RuleItemKeyword<MP_STR("end", 3)>,
139 RuleItemKeyword<MP_STR("program", 7)>,
141 RuleItemRef<MP_STR("id", 2)>
144 RuleItemKeyword<MP_STR("end", 3)>,
146 RuleItemKeyword<MP_STR("function", 8)>,
148 RuleItemRef<MP_STR("id", 2)>
151 RuleItemKeyword<MP_STR("end", 3)>,
153 RuleItemKeyword<MP_STR("class", 5)>
156 RuleItemKeyword<MP_STR("end", 3)>
162 public RuleList<MP_STR("function proto", 14),
164 RuleItemRef<MP_STR("id", 2)>,
166 RuleItemKeyword<MP_STR("(", 1)>,
168 RuleItemRef<MP_STR("argument list", 13)>,
170 RuleItemKeyword<MP_STR(")", 1)>
176 public RuleList<MP_STR("argument list", 13),
178 RuleItemRef<MP_STR("argument option", 15)>,
180 RuleItemRef<MP_STR("id", 2)>,
182 RuleItemKeyword<MP_STR(",", 1)>,
184 RuleItemRef<MP_STR("argument list", 13)>
187 RuleItemRef<MP_STR("argument option", 15)>,
189 RuleItemRef<MP_STR("id", 2)>
198 public RuleList<MP_STR("argument option", 15),
200 RuleItemKeyword<MP_STR("in", 2)>
203 RuleItemKeyword<MP_STR("out", 3)>
206 RuleItemKeyword<MP_STR("fast", 4)>,
208 RuleItemRef<MP_STR("id", 2)>
217 public RuleList<MP_STR("specific list", 13),
219 RuleItemRef<MP_STR("specific", 8)>,
221 RuleItemKeyword<MP_STR(",", 1)>,
223 RuleItemRef<MP_STR("specific list", 13)>
226 RuleItemRef<MP_STR("specific", 8)>
235 public RuleList<MP_STR("specific", 8),
237 RuleItemKeyword<MP_STR("extends", 7)>,
239 RuleItemRef<MP_STR("type", 4)>
242 RuleItemKeyword<MP_STR("encloses", 8)>,
244 RuleItemRef<MP_STR("expression", 10)>
250 public RuleList<MP_STR("definition", 10),
252 RuleItemRef<MP_STR("var definition", 14)>,
254 RuleItemKeyword<MP_STR(";", 1)>
257 RuleItemRef<MP_STR("const definition", 16)>,
259 RuleItemKeyword<MP_STR(";", 1)>
262 RuleItemRef<MP_STR("static definition", 17)>,
264 RuleItemKeyword<MP_STR(";", 1)>
267 RuleItemRef<MP_STR("type definition", 15)>,
269 RuleItemKeyword<MP_STR(";", 1)>
272 RuleItemRef<MP_STR("program", 7)>,
274 RuleItemKeyword<MP_STR(";", 1)>
277 RuleItemRef<MP_STR("function", 8)>,
279 RuleItemKeyword<MP_STR(";", 1)>
282 RuleItemRef<MP_STR("return definition", 17)>,
284 RuleItemKeyword<MP_STR(";", 1)>
287 RuleItemKeyword<MP_STR(";", 1)>
293 public RuleList<MP_STR("type definition", 15),
295 RuleItemKeyword<MP_STR("type", 4)>,
297 RuleItemRef<MP_STR("id", 2)>,
299 RuleItemKeyword<MP_STR("is", 2)>,
301 RuleItemRef<MP_STR("type", 4)>
307 public RuleList<MP_STR("var definition", 14),
309 RuleItemKeyword<MP_STR("var", 3)>,
311 RuleItemRef<MP_STR("id", 2)>,
313 RuleItemKeyword<MP_STR("is", 2)>,
315 RuleItemRef<MP_STR("type", 4)>
321 public RuleList<MP_STR("const definition", 16),
323 RuleItemKeyword<MP_STR("const", 5)>,
325 RuleItemRef<MP_STR("id", 2)>,
327 RuleItemKeyword<MP_STR("is", 2)>,
329 RuleItemRef<MP_STR("type", 4)>
335 public RuleList<MP_STR("static definition", 17),
337 RuleItemKeyword<MP_STR("static", 6)>,
339 RuleItemRef<MP_STR("id", 2)>,
341 RuleItemKeyword<MP_STR("is", 2)>,
343 RuleItemRef<MP_STR("type", 4)>
349 public RuleList<MP_STR("return definition", 17),
351 RuleItemKeyword<MP_STR("return", 6)>,
353 RuleItemRef<MP_STR("id", 2)>,
355 RuleItemKeyword<MP_STR("is", 2)>,
357 RuleItemRef<MP_STR("type", 4)>
360 RuleItemKeyword<MP_STR("return", 6)>,
362 RuleItemRef<MP_STR("type", 4)>
368 public RuleList<MP_STR("statement list", 14),
370 RuleItemRef<MP_STR("statement", 9)>,
372 RuleItemRef<MP_STR("statement list", 14)>
381 public RuleList<MP_STR("statement", 9),
383 RuleItemRef<MP_STR("expression", 10)>,
385 RuleItemKeyword<MP_STR(";", 1)>
388 RuleItemRef<MP_STR("assignment", 10)>,
390 RuleItemKeyword<MP_STR(";", 1)>
393 RuleItemRef<MP_STR("return", 6)>,
395 RuleItemKeyword<MP_STR(";", 1)>
398 RuleItemRef<MP_STR("structure", 9)>
401 RuleItemRef<MP_STR("repeat", 6)>,
403 RuleItemKeyword<MP_STR(";", 1)>
406 RuleItemKeyword<MP_STR(";", 1)>
412 public RuleList<MP_STR("assignment", 10),
414 RuleItemRef<MP_STR("expression", 10)>,
416 RuleItemRef<MP_STR("assign sign", 11)>,
418 RuleItemRef<MP_STR("expression", 10)>
424 public RuleRegex<MP_STR("assign sign", 11),
425 MP_STR("\\:=|\\+=|-=|\\*=|\\/=", 18)
430 public RuleList<MP_STR("return", 6),
432 RuleItemKeyword<MP_STR("return", 6)>,
434 RuleItemRef<MP_STR("expression", 10)>
437 RuleItemKeyword<MP_STR("return", 6)>
443 public RuleList<MP_STR("structure", 9),
445 RuleItemKeyword<MP_STR("if", 2)>,
447 RuleItemRef<MP_STR("expression", 10)>,
449 RuleItemKeyword<MP_STR("then", 4)>,
451 RuleItemRef<MP_STR("statement list", 14)>,
453 RuleItemRef<MP_STR("condition chain", 15)>,
455 RuleItemRef<MP_STR("structure end", 13)>
458 RuleItemKeyword<MP_STR("for", 3)>,
460 RuleItemRef<MP_STR("id", 2)>,
462 RuleItemKeyword<MP_STR("in", 2)>,
464 RuleItemRef<MP_STR("for range", 9)>,
466 RuleItemKeyword<MP_STR("do", 2)>,
468 RuleItemRef<MP_STR("statement list", 14)>,
470 RuleItemRef<MP_STR("structure end", 13)>
473 RuleItemKeyword<MP_STR("foreach", 7)>,
475 RuleItemRef<MP_STR("id", 2)>,
477 RuleItemKeyword<MP_STR("in", 2)>,
479 RuleItemRef<MP_STR("expression", 10)>,
481 RuleItemKeyword<MP_STR("do", 2)>,
483 RuleItemRef<MP_STR("statement list", 14)>,
485 RuleItemRef<MP_STR("structure end", 13)>
488 RuleItemKeyword<MP_STR("while", 5)>,
490 RuleItemRef<MP_STR("expression", 10)>,
492 RuleItemKeyword<MP_STR("do", 2)>,
494 RuleItemRef<MP_STR("statement list", 14)>,
496 RuleItemRef<MP_STR("structure end", 13)>
502 public RuleList<MP_STR("condition chain", 15),
504 RuleItemKeyword<MP_STR("elif", 4)>,
506 RuleItemRef<MP_STR("expression", 10)>,
508 RuleItemKeyword<MP_STR("then", 4)>,
510 RuleItemRef<MP_STR("statement list", 14)>,
512 RuleItemRef<MP_STR("condition chain", 15)>
515 RuleItemKeyword<MP_STR("else", 4)>,
517 RuleItemRef<MP_STR("statement list", 14)>
526 public RuleList<MP_STR("for range", 9),
528 RuleItemRef<MP_STR("expression", 10)>,
530 RuleItemKeyword<MP_STR("to", 2)>,
532 RuleItemRef<MP_STR("expression", 10)>
535 RuleItemRef<MP_STR("expression", 10)>,
537 RuleItemKeyword<MP_STR("downto", 6)>,
539 RuleItemRef<MP_STR("expression", 10)>
545 public RuleList<MP_STR("structure end", 13),
547 RuleItemKeyword<MP_STR("end", 3)>,
549 RuleItemKeyword<MP_STR("if", 2)>
552 RuleItemKeyword<MP_STR("end", 3)>,
554 RuleItemKeyword<MP_STR("for", 3)>
557 RuleItemKeyword<MP_STR("end", 3)>,
559 RuleItemKeyword<MP_STR("foreach", 7)>
562 RuleItemKeyword<MP_STR("end", 3)>,
564 RuleItemKeyword<MP_STR("while", 5)>
570 public RuleList<MP_STR("repeat", 6),
572 RuleItemKeyword<MP_STR("repeat", 6)>,
574 RuleItemRef<MP_STR("statement list", 14)>,
576 RuleItemKeyword<MP_STR("until", 5)>,
578 RuleItemRef<MP_STR("expression", 10)>
584 public RuleList<MP_STR("expression list", 15),
586 RuleItemRef<MP_STR("expression", 10)>,
588 RuleItemKeyword<MP_STR(",", 1)>,
590 RuleItemRef<MP_STR("expression list", 15)>
593 RuleItemRef<MP_STR("expression", 10)>
602 public RuleList<MP_STR("expression", 10),
604 RuleItemRef<MP_STR("relative expression", 19)>
610 public RuleList<MP_STR("relative expression", 19),
612 RuleItemRef<MP_STR("additive expression", 19)>,
614 RuleItemRef<MP_STR("relative operation", 18)>
620 public RuleList<MP_STR("relative operation", 18),
622 RuleItemRef<MP_STR("relation", 8)>,
624 RuleItemRef<MP_STR("relative expression", 19)>
633 public RuleList<MP_STR("additive expression", 19),
635 RuleItemRef<MP_STR("multiplicative expression", 25)>,
637 RuleItemRef<MP_STR("additive operation", 18)>
643 public RuleList<MP_STR("additive operation", 18),
645 RuleItemRef<MP_STR("addition", 8)>,
647 RuleItemRef<MP_STR("additive expression", 19)>
656 public RuleList<MP_STR("multiplicative expression", 25),
658 RuleItemRef<MP_STR("unary expression", 16)>,
660 RuleItemRef<MP_STR("multiplicative operation", 24)>
666 public RuleList<MP_STR("multiplicative operation", 24),
668 RuleItemRef<MP_STR("multiplication", 14)>,
670 RuleItemRef<MP_STR("multiplicative expression", 25)>
679 public RuleList<MP_STR("unary expression", 16),
681 RuleItemRef<MP_STR("unary operator", 14)>,
683 RuleItemRef<MP_STR("unary expression", 16)>
686 RuleItemRef<MP_STR("literal", 7)>,
688 RuleItemRef<MP_STR("access operation", 16)>
691 RuleItemRef<MP_STR("id", 2)>,
693 RuleItemRef<MP_STR("access operation", 16)>
696 RuleItemKeyword<MP_STR("(", 1)>,
698 RuleItemRef<MP_STR("expression", 10)>,
700 RuleItemKeyword<MP_STR(")", 1)>
706 public RuleList<MP_STR("access operation", 16),
708 RuleItemRef<MP_STR("argument apply", 14)>,
710 RuleItemRef<MP_STR("access operation", 16)>
713 RuleItemKeyword<MP_STR(".", 1)>,
715 RuleItemRef<MP_STR("id", 2)>,
717 RuleItemRef<MP_STR("access operation", 16)>
726 public RuleList<MP_STR("argument apply", 14),
728 RuleItemRef<MP_STR("literal", 7)>
731 RuleItemRef<MP_STR("id", 2)>
734 RuleItemKeyword<MP_STR("(", 1)>,
736 RuleItemRef<MP_STR("expression list", 15)>,
738 RuleItemKeyword<MP_STR(")", 1)>
746 RuleItemRef<MP_STR("native type", 11)>
749 RuleItemRef<MP_STR("wrap type", 9)>
752 RuleItemRef<MP_STR("program type", 12)>
755 RuleItemRef<MP_STR("function type", 13)>
758 RuleItemRef<MP_STR("type inference", 14)>
761 RuleItemRef<MP_STR("class", 5)>
764 RuleItemRef<MP_STR("id", 2)>
770 public RuleList<MP_STR("native type", 11),
772 RuleItemKeyword<MP_STR("void", 4)>
775 RuleItemKeyword<MP_STR("boolean", 7)>
778 RuleItemKeyword<MP_STR("byte", 4)>
781 RuleItemKeyword<MP_STR("integer", 7)>
784 RuleItemKeyword<MP_STR("real", 4)>
787 RuleItemKeyword<MP_STR("bitset", 6)>
793 public RuleList<MP_STR("wrap type", 9),
795 RuleItemRef<MP_STR("array", 5)>
798 RuleItemRef<MP_STR("pointer", 7)>
801 RuleItemRef<MP_STR("reference", 9)>
809 RuleItemKeyword<MP_STR("array", 5)>,
811 RuleItemKeyword<MP_STR("of", 2)>,
813 RuleItemRef<MP_STR("integer", 7)>,
815 RuleItemRef<MP_STR("type", 4)>
821 public RuleList<MP_STR("pointer", 7),
823 RuleItemKeyword<MP_STR("pointer", 7)>,
825 RuleItemKeyword<MP_STR("of", 2)>,
827 RuleItemRef<MP_STR("type", 4)>
833 public RuleList<MP_STR("reference", 9),
835 RuleItemKeyword<MP_STR("reference", 9)>,
837 RuleItemKeyword<MP_STR("of", 2)>,
839 RuleItemRef<MP_STR("type", 4)>
845 public RuleList<MP_STR("program type", 12),
847 RuleItemKeyword<MP_STR("program", 7)>,
849 RuleItemRef<MP_STR("id", 2)>
855 public RuleList<MP_STR("function type", 13),
857 RuleItemKeyword<MP_STR("function", 8)>,
859 RuleItemRef<MP_STR("id", 2)>
865 public RuleList<MP_STR("type inference", 14),
867 RuleItemKeyword<MP_STR("type", 4)>,
869 RuleItemKeyword<MP_STR("of", 2)>,
871 RuleItemRef<MP_STR("expression", 10)>
877 public RuleList<MP_STR("relation", 8),
879 RuleItemRef<MP_STR("comparison", 10)>
882 RuleItemKeyword<MP_STR("in", 2)>
888 public RuleList<MP_STR("addition", 8),
890 RuleItemRef<MP_STR("addsub", 6)>
893 RuleItemKeyword<MP_STR("or", 2)>
896 RuleItemKeyword<MP_STR("xor", 3)>
902 public RuleList<MP_STR("multiplication", 14),
904 RuleItemRef<MP_STR("muldiv", 6)>
907 RuleItemKeyword<MP_STR("div", 3)>
910 RuleItemKeyword<MP_STR("mod", 3)>
913 RuleItemKeyword<MP_STR("and", 3)>
916 RuleItemKeyword<MP_STR("shl", 3)>
919 RuleItemKeyword<MP_STR("shr", 3)>
922 RuleItemKeyword<MP_STR("rol", 3)>
925 RuleItemKeyword<MP_STR("ror", 3)>
931 public RuleList<MP_STR("unary operator", 14),
933 RuleItemRef<MP_STR("addsub", 6)>
936 RuleItemKeyword<MP_STR("not", 3)>
942 public RuleRegex<MP_STR("comparison", 10),
943 MP_STR("==|<=|=<|>=|=>|!=|<|>", 21)
960 public RuleList<MP_STR("literal", 7),
962 RuleItemRef<MP_STR("boolean", 7)>
965 RuleItemRef<MP_STR("byte", 4)>
968 RuleItemRef<MP_STR("integer", 7)>
971 RuleItemRef<MP_STR("real", 4)>
974 RuleItemRef<MP_STR("string", 6)>
977 RuleItemRef<MP_STR("instant array", 13)>
983 public RuleList<MP_STR("boolean", 7),
985 RuleItemKeyword<MP_STR("yes", 3)>
988 RuleItemKeyword<MP_STR("no", 2)>
995 MP_STR("\'([^\\\\]|\\\\.)\'", 13)
1007 MP_STR("[0-9]*\\.[0-9]+([Ee][\\+-]?[0-9]+)?", 33)
1013 MP_STR("\"([^\\\\]|\\\\.)*\"", 14)
1018 public RuleList<MP_STR("instant array", 13),
1020 RuleItemKeyword<MP_STR("[", 1)>,
1022 RuleItemRef<MP_STR("expression list", 15)>,
1024 RuleItemKeyword<MP_STR("]", 1)>
1030 public RuleList<MP_STR("space", 5),
1032 RuleItemRef<MP_STR("ignored", 7)>
1038 public RuleList<MP_STR("keyword", 7),
1040 RuleItemRef<MP_STR("reserved id", 11)>
1043 RuleItemRef<MP_STR("sign", 4)>
1050 MP_STR("[A-Za-z_][A-Za-z0-9_]*", 22)
1055 public RuleRegex<MP_STR("reserved id", 11),
1056 MP_STR("[A-Za-z_][A-Za-z0-9_]*", 22)
1062 MP_STR("[\\(\\)\\[\\],.;]", 13)
1068 MP_STR("(\\/\\/.*|[ \\t\\r\\n])*", 19)
Definition: myparser_rule.hpp:60
Definition: myparser_rule.hpp:118
#define MP_STR(str, len)
Definition: myparser_str.hpp:9
int main()
Definition: ml.cpp:73
Definition: myparser_rule.hpp:47