2.21.1. A (much) longer example
Start data section to tut/tutorial/tut-1.21.01-0.flx[1
/1
]
1: //Check lexer
2: #import <flx.flxh>
3: include "flx_lex";
4: use Lexer::sub;
5:
6: print "Lexer here"; endl;
7:
8: /* some /* commented */ stuffs */
9:
10: val xx = 1214;
11:
12: //val s = "A string is here == != @@ ";
13: var s = Text_file::load("tut/tutorial/tut-1.21.01-0.flx");
14:
15: //print s; endl;
16:
17: i2 := Lexer::end_iterator s;
18: var i1 = Lexer::start_iterator s;
19:
20: proc print_token()
21: {
22: open Flx_lex;
23: def var j, var des = pre_flx_lex (i1, i2);
24: match des with
25: | qQuote => { j,des = parse_q_string (j,i2); }
26: | qqqQuote => { j,des = parse_qqq_string (j,i2); }
27: | dQuote => { j,des = parse_d_string (j,i2); }
28: | dddQuote => { j,des = parse_ddd_string (j,i2); }
29: | rqQuote => { j,des = parse_rq_string (j,i2); }
30: | rqqqQuote => { j,des = parse_rqqq_string (j,i2); }
31: | rdQuote => { j,des = parse_rd_string (j,i2); }
32: | rdddQuote => { j,des = parse_rddd_string (j,i2); }
33: | Preprocessor => { j = to_eol(j,i2) - 1; }
34: | Cpp_comment => { j = to_eol(j,i2) - 1; }
35: | C_comment => { j = to_end_c_comment (j,i2); }
36: | _ => {}
37: endmatch;
38: dess :=
39: match des with
40: | Eol => "Eol"
41: | Ident => "Id"
42: | DOLLAR => "DOLLAR"
43: | QUEST => "QUEST"
44: | EXCLAMATION => "EXCLAMATION"
45: | LPAR => "LPAR"
46: | RPAR => "RPAR"
47: | LSQB => "LSQB"
48: | RSQB => "RSQB"
49: | LBRACE => "LBRACE"
50: | RBRACE => "RBRACE"
51: | COLON => "COLON"
52: | COMMA => "COMMA"
53: | SEMI => "SEMI"
54: | PLUS => "PLUS"
55: | MINUS => "MINUS"
56: | STAR => "STAR"
57: | SLASH => "SLASH"
58: | VBAR => "VBAR"
59: | AMPER => "AMPER"
60: | LESS => "LESS"
61: | GREATER => "GREATER"
62: | EQUAL => "EQUAL"
63: | DOT => "DOT"
64: | PERCENT => "PERCENT"
65: | BACKQUOTE => "BACKQUOTE"
66: | TILDE => "TILDE"
67: | CIRCUMFLEX => "CIRCUMFLEX"
68: | HASH => "HASH"
69: | ANDLESS => "&<"
70: | ANDGREATER => "&>"
71: | EQEQUAL => "=="
72: | NOTEQUAL => "!="
73: | LESSEQUAL => "<="
74: | GREATEREQUAL => ">="
75: | LEFTSHIFT => "<<"
76: | RIGHTSHIFT => ">>"
77: | STARSTAR => "**"
78: | LESSCOLON => "<:"
79: | COLONGREATER => ":>"
80: | DOTDOT => ".."
81: | COLONCOLON => "::"
82: | PLUSPLUS => "++"
83: | MINUSMINUS => "--"
84: | PLUSEQUAL => "+="
85: | MINUSEQUAL => "-="
86: | STAREQUAL => "*="
87: | SLASHEQUAL => "/="
88: | PERCENTEQUAL => "%="
89: | CARETEQUAL => "^="
90: | VBAREQUAL => "|="
91: | AMPEREQUAL => "&="
92: | TILDEEQUAL => "~="
93: | COLONEQUAL => ":="
94: | RIGHTARROW => "->"
95: | EQRIGHTARROW => "=>"
96: | LEFTARROW => "<-"
97: | LSQANGLE => "[<"
98: | RSQANGLE => ">]"
99: | LSQBAR => "[|"
100: | RSQBAR => "|]"
101: | AMPERAMPER => "&&"
102: | VBARVBAR => "||"
103: | SLOSHAMPER => "\\&"
104: | SLOSHVBAR => "\\|"
105: | SLOSHCIRCUMFLEX => "\\^"
106: | HASHBANG => "#!"
107: | LEFTSHIFTEQUAL => "<<="
108: | RIGHTSHIFTEQUAL => ">>="
109: | LEFTRIGHTARROW => "<->"
110: | ANDEQEQUAL => "&=="
111: | ANDNOTEQUAL => "&!="
112: | ANDLESSEQUAL => "&<="
113: | ANDGREATEREQUAL => "&>="
114: | DOTDOTDOT => "..."
115: | DOTRIGHTARROW => ".->"
116: | LONGRIGHTARROW => "-->"
117: | PARSE_ACTION => "=>#"
118: | HASHBANGSLASH => "#!/"
119: | Preprocessor => "Pre"
120: | Cpp_comment => "Cppc"
121: | C_comment => "Cc"
122: | White => "White"
123: | Int => "Int"
124: | Float => "Float"
125: | _ => "Other"
126: endmatch
127: ;
128: print (dess ": ").[0 to 9];
129: print ('"' (Lexer::string_between(i1,j)) '"');
130: endl;
131: i1 = j;
132: }
133:
134:
135: while { i1 != i2 } { print_token; };
Start data section to tut/tutorial/tut-1.21.01-0.expect[1
/1
]
1: Lexer here
2: Cppc: "//Check lexer"
3: Eol: "
4: "
5: HASH: "#"
6: Id: "import"
7: White: " "
8: LESS: "<"
9: Id: "flx"
10: DOT: "."
11: Id: "flxh"
12: GREATER: ">"
13: Eol: "
14: "
15: Id: "include"
16: White: " "
17: Other: ""flx_lex""
18: SEMI: ";"
19: Eol: "
20: "
21: Id: "use"
22: White: " "
23: Id: "Lexer"
24: ::: "::"
25: Id: "sub"
26: SEMI: ";"
27: Eol: "
28: "
29: Eol: "
30: "
31: Id: "print"
32: White: " "
33: Other: ""Lexer here""
34: SEMI: ";"
35: White: " "
36: Id: "endl"
37: SEMI: ";"
38: Eol: "
39: "
40: Eol: "
41: "
42: Cc: "/* some /* commented */ stuffs */"
43: Eol: "
44: "
45: Eol: "
46: "
47: Id: "val"
48: White: " "
49: Id: "xx"
50: White: " "
51: EQUAL: "="
52: White: " "
53: Int: "1214"
54: SEMI: ";"
55: Eol: "
56: "
57: Eol: "
58: "
59: Cppc: "//val s = "A string is here == != @@ ";"
60: Eol: "
61: "
62: Id: "var"
63: White: " "
64: Id: "s"
65: White: " "
66: EQUAL: "="
67: White: " "
68: Id: "Text_file"
69: ::: "::"
70: Id: "load"
71: LPAR: "("
72: Other: ""tut/tutorial/tut-1.21.01-0.flx""
73: RPAR: ")"
74: SEMI: ";"
75: Eol: "
76: "
77: Eol: "
78: "
79: Cppc: "//print s; endl;"
80: Eol: "
81: "
82: Eol: "
83: "
84: Id: "i2"
85: White: " "
86: :=: ":="
87: White: " "
88: Id: "Lexer"
89: ::: "::"
90: Id: "end_iterator"
91: White: " "
92: Id: "s"
93: SEMI: ";"
94: Eol: "
95: "
96: Id: "var"
97: White: " "
98: Id: "i1"
99: White: " "
100: EQUAL: "="
101: White: " "
102: Id: "Lexer"
103: ::: "::"
104: Id: "start_iterator"
105: White: " "
106: Id: "s"
107: SEMI: ";"
108: Eol: "
109: "
110: Eol: "
111: "
112: Id: "proc"
113: White: " "
114: Id: "print_token"
115: LPAR: "("
116: RPAR: ")"
117: Eol: "
118: "
119: LBRACE: "{"
120: Eol: "
121: "
122: White: " "
123: Id: "open"
124: White: " "
125: Id: "Flx_lex"
126: SEMI: ";"
127: Eol: "
128: "
129: White: " "
130: Id: "def"
131: White: " "
132: Id: "var"
133: White: " "
134: Id: "j"
135: COMMA: ","
136: White: " "
137: Id: "var"
138: White: " "
139: Id: "des"
140: White: " "
141: EQUAL: "="
142: White: " "
143: Id: "pre_flx_lex"
144: White: " "
145: LPAR: "("
146: Id: "i1"
147: COMMA: ","
148: White: " "
149: Id: "i2"
150: RPAR: ")"
151: SEMI: ";"
152: Eol: "
153: "
154: White: " "
155: Id: "match"
156: White: " "
157: Id: "des"
158: White: " "
159: Id: "with"
160: Eol: "
161: "
162: White: " "
163: VBAR: "|"
164: White: " "
165: Id: "qQuote"
166: White: " "
167: =>: "=>"
168: White: " "
169: LBRACE: "{"
170: White: " "
171: Id: "j"
172: COMMA: ","
173: Id: "des"
174: White: " "
175: EQUAL: "="
176: White: " "
177: Id: "parse_q_string"
178: White: " "
179: LPAR: "("
180: Id: "j"
181: COMMA: ","
182: Id: "i2"
183: RPAR: ")"
184: SEMI: ";"
185: White: " "
186: RBRACE: "}"
187: Eol: "
188: "
189: White: " "
190: VBAR: "|"
191: White: " "
192: Id: "qqqQuote"
193: White: " "
194: =>: "=>"
195: White: " "
196: LBRACE: "{"
197: White: " "
198: Id: "j"
199: COMMA: ","
200: Id: "des"
201: White: " "
202: EQUAL: "="
203: White: " "
204: Id: "parse_qqq_string"
205: White: " "
206: LPAR: "("
207: Id: "j"
208: COMMA: ","
209: Id: "i2"
210: RPAR: ")"
211: SEMI: ";"
212: White: " "
213: RBRACE: "}"
214: Eol: "
215: "
216: White: " "
217: VBAR: "|"
218: White: " "
219: Id: "dQuote"
220: White: " "
221: =>: "=>"
222: White: " "
223: LBRACE: "{"
224: White: " "
225: Id: "j"
226: COMMA: ","
227: Id: "des"
228: White: " "
229: EQUAL: "="
230: White: " "
231: Id: "parse_d_string"
232: White: " "
233: LPAR: "("
234: Id: "j"
235: COMMA: ","
236: Id: "i2"
237: RPAR: ")"
238: SEMI: ";"
239: White: " "
240: RBRACE: "}"
241: Eol: "
242: "
243: White: " "
244: VBAR: "|"
245: White: " "
246: Id: "dddQuote"
247: White: " "
248: =>: "=>"
249: White: " "
250: LBRACE: "{"
251: White: " "
252: Id: "j"
253: COMMA: ","
254: Id: "des"
255: White: " "
256: EQUAL: "="
257: White: " "
258: Id: "parse_ddd_string"
259: White: " "
260: LPAR: "("
261: Id: "j"
262: COMMA: ","
263: Id: "i2"
264: RPAR: ")"
265: SEMI: ";"
266: White: " "
267: RBRACE: "}"
268: Eol: "
269: "
270: White: " "
271: VBAR: "|"
272: White: " "
273: Id: "rqQuote"
274: White: " "
275: =>: "=>"
276: White: " "
277: LBRACE: "{"
278: White: " "
279: Id: "j"
280: COMMA: ","
281: Id: "des"
282: White: " "
283: EQUAL: "="
284: White: " "
285: Id: "parse_rq_string"
286: White: " "
287: LPAR: "("
288: Id: "j"
289: COMMA: ","
290: Id: "i2"
291: RPAR: ")"
292: SEMI: ";"
293: White: " "
294: RBRACE: "}"
295: Eol: "
296: "
297: White: " "
298: VBAR: "|"
299: White: " "
300: Id: "rqqqQuote"
301: White: " "
302: =>: "=>"
303: White: " "
304: LBRACE: "{"
305: White: " "
306: Id: "j"
307: COMMA: ","
308: Id: "des"
309: White: " "
310: EQUAL: "="
311: White: " "
312: Id: "parse_rqqq_string"
313: White: " "
314: LPAR: "("
315: Id: "j"
316: COMMA: ","
317: Id: "i2"
318: RPAR: ")"
319: SEMI: ";"
320: White: " "
321: RBRACE: "}"
322: Eol: "
323: "
324: White: " "
325: VBAR: "|"
326: White: " "
327: Id: "rdQuote"
328: White: " "
329: =>: "=>"
330: White: " "
331: LBRACE: "{"
332: White: " "
333: Id: "j"
334: COMMA: ","
335: Id: "des"
336: White: " "
337: EQUAL: "="
338: White: " "
339: Id: "parse_rd_string"
340: White: " "
341: LPAR: "("
342: Id: "j"
343: COMMA: ","
344: Id: "i2"
345: RPAR: ")"
346: SEMI: ";"
347: White: " "
348: RBRACE: "}"
349: Eol: "
350: "
351: White: " "
352: VBAR: "|"
353: White: " "
354: Id: "rdddQuote"
355: White: " "
356: =>: "=>"
357: White: " "
358: LBRACE: "{"
359: White: " "
360: Id: "j"
361: COMMA: ","
362: Id: "des"
363: White: " "
364: EQUAL: "="
365: White: " "
366: Id: "parse_rddd_string"
367: White: " "
368: LPAR: "("
369: Id: "j"
370: COMMA: ","
371: Id: "i2"
372: RPAR: ")"
373: SEMI: ";"
374: White: " "
375: RBRACE: "}"
376: Eol: "
377: "
378: White: " "
379: VBAR: "|"
380: White: " "
381: Id: "Preprocessor"
382: White: " "
383: =>: "=>"
384: White: " "
385: LBRACE: "{"
386: White: " "
387: Id: "j"
388: White: " "
389: EQUAL: "="
390: White: " "
391: Id: "to_eol"
392: LPAR: "("
393: Id: "j"
394: COMMA: ","
395: Id: "i2"
396: RPAR: ")"
397: White: " "
398: MINUS: "-"
399: White: " "
400: Int: "1"
401: SEMI: ";"
402: White: " "
403: RBRACE: "}"
404: Eol: "
405: "
406: White: " "
407: VBAR: "|"
408: White: " "
409: Id: "Cpp_comment"
410: White: " "
411: =>: "=>"
412: White: " "
413: LBRACE: "{"
414: White: " "
415: Id: "j"
416: White: " "
417: EQUAL: "="
418: White: " "
419: Id: "to_eol"
420: LPAR: "("
421: Id: "j"
422: COMMA: ","
423: Id: "i2"
424: RPAR: ")"
425: White: " "
426: MINUS: "-"
427: White: " "
428: Int: "1"
429: SEMI: ";"
430: White: " "
431: RBRACE: "}"
432: Eol: "
433: "
434: White: " "
435: VBAR: "|"
436: White: " "
437: Id: "C_comment"
438: White: " "
439: =>: "=>"
440: White: " "
441: LBRACE: "{"
442: White: " "
443: Id: "j"
444: White: " "
445: EQUAL: "="
446: White: " "
447: Id: "to_end_c_comment"
448: White: " "
449: LPAR: "("
450: Id: "j"
451: COMMA: ","
452: Id: "i2"
453: RPAR: ")"
454: SEMI: ";"
455: White: " "
456: RBRACE: "}"
457: Eol: "
458: "
459: White: " "
460: VBAR: "|"
461: White: " "
462: Id: "_"
463: White: " "
464: =>: "=>"
465: White: " "
466: LBRACE: "{"
467: RBRACE: "}"
468: Eol: "
469: "
470: White: " "
471: Id: "endmatch"
472: SEMI: ";"
473: Eol: "
474: "
475: White: " "
476: Id: "dess"
477: White: " "
478: :=: ":="
479: Eol: "
480: "
481: White: " "
482: Id: "match"
483: White: " "
484: Id: "des"
485: White: " "
486: Id: "with"
487: Eol: "
488: "
489: White: " "
490: VBAR: "|"
491: White: " "
492: Id: "Eol"
493: White: " "
494: =>: "=>"
495: White: " "
496: Other: ""Eol""
497: Eol: "
498: "
499: White: " "
500: VBAR: "|"
501: White: " "
502: Id: "Ident"
503: White: " "
504: =>: "=>"
505: White: " "
506: Other: ""Id""
507: Eol: "
508: "
509: White: " "
510: VBAR: "|"
511: White: " "
512: Id: "DOLLAR"
513: White: " "
514: =>: "=>"
515: White: " "
516: Other: ""DOLLAR""
517: Eol: "
518: "
519: White: " "
520: VBAR: "|"
521: White: " "
522: Id: "QUEST"
523: White: " "
524: =>: "=>"
525: White: " "
526: Other: ""QUEST""
527: Eol: "
528: "
529: White: " "
530: VBAR: "|"
531: White: " "
532: Id: "EXCLAMATION"
533: White: " "
534: =>: "=>"
535: White: " "
536: Other: ""EXCLAMATION""
537: Eol: "
538: "
539: White: " "
540: VBAR: "|"
541: White: " "
542: Id: "LPAR"
543: White: " "
544: =>: "=>"
545: White: " "
546: Other: ""LPAR""
547: Eol: "
548: "
549: White: " "
550: VBAR: "|"
551: White: " "
552: Id: "RPAR"
553: White: " "
554: =>: "=>"
555: White: " "
556: Other: ""RPAR""
557: Eol: "
558: "
559: White: " "
560: VBAR: "|"
561: White: " "
562: Id: "LSQB"
563: White: " "
564: =>: "=>"
565: White: " "
566: Other: ""LSQB""
567: Eol: "
568: "
569: White: " "
570: VBAR: "|"
571: White: " "
572: Id: "RSQB"
573: White: " "
574: =>: "=>"
575: White: " "
576: Other: ""RSQB""
577: Eol: "
578: "
579: White: " "
580: VBAR: "|"
581: White: " "
582: Id: "LBRACE"
583: White: " "
584: =>: "=>"
585: White: " "
586: Other: ""LBRACE""
587: Eol: "
588: "
589: White: " "
590: VBAR: "|"
591: White: " "
592: Id: "RBRACE"
593: White: " "
594: =>: "=>"
595: White: " "
596: Other: ""RBRACE""
597: Eol: "
598: "
599: White: " "
600: VBAR: "|"
601: White: " "
602: Id: "COLON"
603: White: " "
604: =>: "=>"
605: White: " "
606: Other: ""COLON""
607: Eol: "
608: "
609: White: " "
610: VBAR: "|"
611: White: " "
612: Id: "COMMA"
613: White: " "
614: =>: "=>"
615: White: " "
616: Other: ""COMMA""
617: Eol: "
618: "
619: White: " "
620: VBAR: "|"
621: White: " "
622: Id: "SEMI"
623: White: " "
624: =>: "=>"
625: White: " "
626: Other: ""SEMI""
627: Eol: "
628: "
629: White: " "
630: VBAR: "|"
631: White: " "
632: Id: "PLUS"
633: White: " "
634: =>: "=>"
635: White: " "
636: Other: ""PLUS""
637: Eol: "
638: "
639: White: " "
640: VBAR: "|"
641: White: " "
642: Id: "MINUS"
643: White: " "
644: =>: "=>"
645: White: " "
646: Other: ""MINUS""
647: Eol: "
648: "
649: White: " "
650: VBAR: "|"
651: White: " "
652: Id: "STAR"
653: White: " "
654: =>: "=>"
655: White: " "
656: Other: ""STAR""
657: Eol: "
658: "
659: White: " "
660: VBAR: "|"
661: White: " "
662: Id: "SLASH"
663: White: " "
664: =>: "=>"
665: White: " "
666: Other: ""SLASH""
667: Eol: "
668: "
669: White: " "
670: VBAR: "|"
671: White: " "
672: Id: "VBAR"
673: White: " "
674: =>: "=>"
675: White: " "
676: Other: ""VBAR""
677: Eol: "
678: "
679: White: " "
680: VBAR: "|"
681: White: " "
682: Id: "AMPER"
683: White: " "
684: =>: "=>"
685: White: " "
686: Other: ""AMPER""
687: Eol: "
688: "
689: White: " "
690: VBAR: "|"
691: White: " "
692: Id: "LESS"
693: White: " "
694: =>: "=>"
695: White: " "
696: Other: ""LESS""
697: Eol: "
698: "
699: White: " "
700: VBAR: "|"
701: White: " "
702: Id: "GREATER"
703: White: " "
704: =>: "=>"
705: White: " "
706: Other: ""GREATER""
707: Eol: "
708: "
709: White: " "
710: VBAR: "|"
711: White: " "
712: Id: "EQUAL"
713: White: " "
714: =>: "=>"
715: White: " "
716: Other: ""EQUAL""
717: Eol: "
718: "
719: White: " "
720: VBAR: "|"
721: White: " "
722: Id: "DOT"
723: White: " "
724: =>: "=>"
725: White: " "
726: Other: ""DOT""
727: Eol: "
728: "
729: White: " "
730: VBAR: "|"
731: White: " "
732: Id: "PERCENT"
733: White: " "
734: =>: "=>"
735: White: " "
736: Other: ""PERCENT""
737: Eol: "
738: "
739: White: " "
740: VBAR: "|"
741: White: " "
742: Id: "BACKQUOTE"
743: White: " "
744: =>: "=>"
745: White: " "
746: Other: ""BACKQUOTE""
747: Eol: "
748: "
749: White: " "
750: VBAR: "|"
751: White: " "
752: Id: "TILDE"
753: White: " "
754: =>: "=>"
755: White: " "
756: Other: ""TILDE""
757: Eol: "
758: "
759: White: " "
760: VBAR: "|"
761: White: " "
762: Id: "CIRCUMFLEX"
763: White: " "
764: =>: "=>"
765: White: " "
766: Other: ""CIRCUMFLEX""
767: Eol: "
768: "
769: White: " "
770: VBAR: "|"
771: White: " "
772: Id: "HASH"
773: White: " "
774: =>: "=>"
775: White: " "
776: Other: ""HASH""
777: Eol: "
778: "
779: White: " "
780: VBAR: "|"
781: White: " "
782: Id: "ANDLESS"
783: White: " "
784: =>: "=>"
785: White: " "
786: Other: ""&<""
787: Eol: "
788: "
789: White: " "
790: VBAR: "|"
791: White: " "
792: Id: "ANDGREATER"
793: White: " "
794: =>: "=>"
795: White: " "
796: Other: ""&>""
797: Eol: "
798: "
799: White: " "
800: VBAR: "|"
801: White: " "
802: Id: "EQEQUAL"
803: White: " "
804: =>: "=>"
805: White: " "
806: Other: ""==""
807: Eol: "
808: "
809: White: " "
810: VBAR: "|"
811: White: " "
812: Id: "NOTEQUAL"
813: White: " "
814: =>: "=>"
815: White: " "
816: Other: ""!=""
817: Eol: "
818: "
819: White: " "
820: VBAR: "|"
821: White: " "
822: Id: "LESSEQUAL"
823: White: " "
824: =>: "=>"
825: White: " "
826: Other: ""<=""
827: Eol: "
828: "
829: White: " "
830: VBAR: "|"
831: White: " "
832: Id: "GREATEREQUAL"
833: White: " "
834: =>: "=>"
835: White: " "
836: Other: "">=""
837: Eol: "
838: "
839: White: " "
840: VBAR: "|"
841: White: " "
842: Id: "LEFTSHIFT"
843: White: " "
844: =>: "=>"
845: White: " "
846: Other: ""<<""
847: Eol: "
848: "
849: White: " "
850: VBAR: "|"
851: White: " "
852: Id: "RIGHTSHIFT"
853: White: " "
854: =>: "=>"
855: White: " "
856: Other: "">>""
857: Eol: "
858: "
859: White: " "
860: VBAR: "|"
861: White: " "
862: Id: "STARSTAR"
863: White: " "
864: =>: "=>"
865: White: " "
866: Other: ""**""
867: Eol: "
868: "
869: White: " "
870: VBAR: "|"
871: White: " "
872: Id: "LESSCOLON"
873: White: " "
874: =>: "=>"
875: White: " "
876: Other: ""<:""
877: Eol: "
878: "
879: White: " "
880: VBAR: "|"
881: White: " "
882: Id: "COLONGREATER"
883: White: " "
884: =>: "=>"
885: White: " "
886: Other: "":>""
887: Eol: "
888: "
889: White: " "
890: VBAR: "|"
891: White: " "
892: Id: "DOTDOT"
893: White: " "
894: =>: "=>"
895: White: " "
896: Other: ""..""
897: Eol: "
898: "
899: White: " "
900: VBAR: "|"
901: White: " "
902: Id: "COLONCOLON"
903: White: " "
904: =>: "=>"
905: White: " "
906: Other: ""::""
907: Eol: "
908: "
909: White: " "
910: VBAR: "|"
911: White: " "
912: Id: "PLUSPLUS"
913: White: " "
914: =>: "=>"
915: White: " "
916: Other: ""++""
917: Eol: "
918: "
919: White: " "
920: VBAR: "|"
921: White: " "
922: Id: "MINUSMINUS"
923: White: " "
924: =>: "=>"
925: White: " "
926: Other: ""--""
927: Eol: "
928: "
929: White: " "
930: VBAR: "|"
931: White: " "
932: Id: "PLUSEQUAL"
933: White: " "
934: =>: "=>"
935: White: " "
936: Other: ""+=""
937: Eol: "
938: "
939: White: " "
940: VBAR: "|"
941: White: " "
942: Id: "MINUSEQUAL"
943: White: " "
944: =>: "=>"
945: White: " "
946: Other: ""-=""
947: Eol: "
948: "
949: White: " "
950: VBAR: "|"
951: White: " "
952: Id: "STAREQUAL"
953: White: " "
954: =>: "=>"
955: White: " "
956: Other: ""*=""
957: Eol: "
958: "
959: White: " "
960: VBAR: "|"
961: White: " "
962: Id: "SLASHEQUAL"
963: White: " "
964: =>: "=>"
965: White: " "
966: Other: ""/=""
967: Eol: "
968: "
969: White: " "
970: VBAR: "|"
971: White: " "
972: Id: "PERCENTEQUAL"
973: White: " "
974: =>: "=>"
975: White: " "
976: Other: ""%=""
977: Eol: "
978: "
979: White: " "
980: VBAR: "|"
981: White: " "
982: Id: "CARETEQUAL"
983: White: " "
984: =>: "=>"
985: White: " "
986: Other: ""^=""
987: Eol: "
988: "
989: White: " "
990: VBAR: "|"
991: White: " "
992: Id: "VBAREQUAL"
993: White: " "
994: =>: "=>"
995: White: " "
996: Other: ""|=""
997: Eol: "
998: "
999: White: " "
1000: VBAR: "|"
1001: White: " "
1002: Id: "AMPEREQUAL"
1003: White: " "
1004: =>: "=>"
1005: White: " "
1006: Other: ""&=""
1007: Eol: "
1008: "
1009: White: " "
1010: VBAR: "|"
1011: White: " "
1012: Id: "TILDEEQUAL"
1013: White: " "
1014: =>: "=>"
1015: White: " "
1016: Other: ""~=""
1017: Eol: "
1018: "
1019: White: " "
1020: VBAR: "|"
1021: White: " "
1022: Id: "COLONEQUAL"
1023: White: " "
1024: =>: "=>"
1025: White: " "
1026: Other: "":=""
1027: Eol: "
1028: "
1029: White: " "
1030: VBAR: "|"
1031: White: " "
1032: Id: "RIGHTARROW"
1033: White: " "
1034: =>: "=>"
1035: White: " "
1036: Other: ""->""
1037: Eol: "
1038: "
1039: White: " "
1040: VBAR: "|"
1041: White: " "
1042: Id: "EQRIGHTARROW"
1043: White: " "
1044: =>: "=>"
1045: White: " "
1046: Other: ""=>""
1047: Eol: "
1048: "
1049: White: " "
1050: VBAR: "|"
1051: White: " "
1052: Id: "LEFTARROW"
1053: White: " "
1054: =>: "=>"
1055: White: " "
1056: Other: ""<-""
1057: Eol: "
1058: "
1059: White: " "
1060: VBAR: "|"
1061: White: " "
1062: Id: "LSQANGLE"
1063: White: " "
1064: =>: "=>"
1065: White: " "
1066: Other: ""[<""
1067: Eol: "
1068: "
1069: White: " "
1070: VBAR: "|"
1071: White: " "
1072: Id: "RSQANGLE"
1073: White: " "
1074: =>: "=>"
1075: White: " "
1076: Other: "">]""
1077: Eol: "
1078: "
1079: White: " "
1080: VBAR: "|"
1081: White: " "
1082: Id: "LSQBAR"
1083: White: " "
1084: =>: "=>"
1085: White: " "
1086: Other: ""[|""
1087: Eol: "
1088: "
1089: White: " "
1090: VBAR: "|"
1091: White: " "
1092: Id: "RSQBAR"
1093: White: " "
1094: =>: "=>"
1095: White: " "
1096: Other: ""|]""
1097: Eol: "
1098: "
1099: White: " "
1100: VBAR: "|"
1101: White: " "
1102: Id: "AMPERAMPER"
1103: White: " "
1104: =>: "=>"
1105: White: " "
1106: Other: ""&&""
1107: Eol: "
1108: "
1109: White: " "
1110: VBAR: "|"
1111: White: " "
1112: Id: "VBARVBAR"
1113: White: " "
1114: =>: "=>"
1115: White: " "
1116: Other: ""||""
1117: Eol: "
1118: "
1119: White: " "
1120: VBAR: "|"
1121: White: " "
1122: Id: "SLOSHAMPER"
1123: White: " "
1124: =>: "=>"
1125: White: " "
1126: Other: ""\\&""
1127: Eol: "
1128: "
1129: White: " "
1130: VBAR: "|"
1131: White: " "
1132: Id: "SLOSHVBAR"
1133: White: " "
1134: =>: "=>"
1135: White: " "
1136: Other: ""\\|""
1137: Eol: "
1138: "
1139: White: " "
1140: VBAR: "|"
1141: White: " "
1142: Id: "SLOSHCIRCUMFLEX"
1143: White: " "
1144: =>: "=>"
1145: White: " "
1146: Other: ""\\^""
1147: Eol: "
1148: "
1149: White: " "
1150: VBAR: "|"
1151: White: " "
1152: Id: "HASHBANG"
1153: White: " "
1154: =>: "=>"
1155: White: " "
1156: Other: ""#!""
1157: Eol: "
1158: "
1159: White: " "
1160: VBAR: "|"
1161: White: " "
1162: Id: "LEFTSHIFTEQUAL"
1163: White: " "
1164: =>: "=>"
1165: White: " "
1166: Other: ""<<=""
1167: Eol: "
1168: "
1169: White: " "
1170: VBAR: "|"
1171: White: " "
1172: Id: "RIGHTSHIFTEQUAL"
1173: White: " "
1174: =>: "=>"
1175: White: " "
1176: Other: "">>=""
1177: Eol: "
1178: "
1179: White: " "
1180: VBAR: "|"
1181: White: " "
1182: Id: "LEFTRIGHTARROW"
1183: White: " "
1184: =>: "=>"
1185: White: " "
1186: Other: ""<->""
1187: Eol: "
1188: "
1189: White: " "
1190: VBAR: "|"
1191: White: " "
1192: Id: "ANDEQEQUAL"
1193: White: " "
1194: =>: "=>"
1195: White: " "
1196: Other: ""&==""
1197: Eol: "
1198: "
1199: White: " "
1200: VBAR: "|"
1201: White: " "
1202: Id: "ANDNOTEQUAL"
1203: White: " "
1204: =>: "=>"
1205: White: " "
1206: Other: ""&!=""
1207: Eol: "
1208: "
1209: White: " "
1210: VBAR: "|"
1211: White: " "
1212: Id: "ANDLESSEQUAL"
1213: White: " "
1214: =>: "=>"
1215: White: " "
1216: Other: ""&<=""
1217: Eol: "
1218: "
1219: White: " "
1220: VBAR: "|"
1221: White: " "
1222: Id: "ANDGREATEREQUAL"
1223: White: " "
1224: =>: "=>"
1225: White: " "
1226: Other: ""&>=""
1227: Eol: "
1228: "
1229: White: " "
1230: VBAR: "|"
1231: White: " "
1232: Id: "DOTDOTDOT"
1233: White: " "
1234: =>: "=>"
1235: White: " "
1236: Other: ""...""
1237: Eol: "
1238: "
1239: White: " "
1240: VBAR: "|"
1241: White: " "
1242: Id: "DOTRIGHTARROW"
1243: White: " "
1244: =>: "=>"
1245: White: " "
1246: Other: "".->""
1247: Eol: "
1248: "
1249: White: " "
1250: VBAR: "|"
1251: White: " "
1252: Id: "LONGRIGHTARROW"
1253: White: " "
1254: =>: "=>"
1255: White: " "
1256: Other: ""-->""
1257: Eol: "
1258: "
1259: White: " "
1260: VBAR: "|"
1261: White: " "
1262: Id: "PARSE_ACTION"
1263: White: " "
1264: =>: "=>"
1265: White: " "
1266: Other: ""=>#""
1267: Eol: "
1268: "
1269: White: " "
1270: VBAR: "|"
1271: White: " "
1272: Id: "HASHBANGSLASH"
1273: White: " "
1274: =>: "=>"
1275: White: " "
1276: Other: ""#!/""
1277: Eol: "
1278: "
1279: White: " "
1280: VBAR: "|"
1281: White: " "
1282: Id: "Preprocessor"
1283: White: " "
1284: =>: "=>"
1285: White: " "
1286: Other: ""Pre""
1287: Eol: "
1288: "
1289: White: " "
1290: VBAR: "|"
1291: White: " "
1292: Id: "Cpp_comment"
1293: White: " "
1294: =>: "=>"
1295: White: " "
1296: Other: ""Cppc""
1297: Eol: "
1298: "
1299: White: " "
1300: VBAR: "|"
1301: White: " "
1302: Id: "C_comment"
1303: White: " "
1304: =>: "=>"
1305: White: " "
1306: Other: ""Cc""
1307: Eol: "
1308: "
1309: White: " "
1310: VBAR: "|"
1311: White: " "
1312: Id: "White"
1313: White: " "
1314: =>: "=>"
1315: White: " "
1316: Other: ""White""
1317: Eol: "
1318: "
1319: White: " "
1320: VBAR: "|"
1321: White: " "
1322: Id: "Int"
1323: White: " "
1324: =>: "=>"
1325: White: " "
1326: Other: ""Int""
1327: Eol: "
1328: "
1329: White: " "
1330: VBAR: "|"
1331: White: " "
1332: Id: "Float"
1333: White: " "
1334: =>: "=>"
1335: White: " "
1336: Other: ""Float""
1337: Eol: "
1338: "
1339: White: " "
1340: VBAR: "|"
1341: White: " "
1342: Id: "_"
1343: White: " "
1344: =>: "=>"
1345: White: " "
1346: Other: ""Other""
1347: Eol: "
1348: "
1349: White: " "
1350: Id: "endmatch"
1351: Eol: "
1352: "
1353: White: " "
1354: SEMI: ";"
1355: Eol: "
1356: "
1357: White: " "
1358: Id: "print"
1359: White: " "
1360: LPAR: "("
1361: Id: "dess"
1362: White: " "
1363: Other: "": ""
1364: RPAR: ")"
1365: DOT: "."
1366: LSQB: "["
1367: Int: "0"
1368: White: " "
1369: Id: "to"
1370: White: " "
1371: Int: "9"
1372: RSQB: "]"
1373: SEMI: ";"
1374: Eol: "
1375: "
1376: White: " "
1377: Id: "print"
1378: White: " "
1379: LPAR: "("
1380: Other: "'"'"
1381: White: " "
1382: LPAR: "("
1383: Id: "Lexer"
1384: ::: "::"
1385: Id: "string_between"
1386: LPAR: "("
1387: Id: "i1"
1388: COMMA: ","
1389: Id: "j"
1390: RPAR: ")"
1391: RPAR: ")"
1392: White: " "
1393: Other: "'"'"
1394: RPAR: ")"
1395: SEMI: ";"
1396: Eol: "
1397: "
1398: White: " "
1399: Id: "endl"
1400: SEMI: ";"
1401: Eol: "
1402: "
1403: White: " "
1404: Id: "i1"
1405: White: " "
1406: EQUAL: "="
1407: White: " "
1408: Id: "j"
1409: SEMI: ";"
1410: Eol: "
1411: "
1412: RBRACE: "}"
1413: Eol: "
1414: "
1415: Eol: "
1416: "
1417: Eol: "
1418: "
1419: Id: "while"
1420: White: " "
1421: LBRACE: "{"
1422: White: " "
1423: Id: "i1"
1424: White: " "
1425: !=: "!="
1426: White: " "
1427: Id: "i2"
1428: White: " "
1429: RBRACE: "}"
1430: White: " "
1431: LBRACE: "{"
1432: White: " "
1433: Id: "print_token"
1434: SEMI: ";"
1435: White: " "
1436: RBRACE: "}"
1437: SEMI: ";"
1438: Eol: "
1439: "