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; };
End data section to tut/tutorial/tut-1.21.01-0.flx[1]
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: "
End data section to tut/tutorial/tut-1.21.01-0.expect[1]