1 /* Generated by re2c */ 2 #line 1 "line-02.re" 3 // re2c $INPUT -o $OUTPUT 4 /* Generated by re2c 0.16 on Mon Jun 25 20:07:34 2018 */ 5 typedef enum num_t { ERR, BIN, OCT, DEC, HEX } num_t; lex(const char * YYCURSOR)6static num_t lex(const char *YYCURSOR) 7 { 8 const char *YYMARKER; 9 10 { 11 char yych; 12 yych = *YYCURSOR; 13 switch (yych) { 14 case '0': goto yy4; 15 case '1': 16 case '2': 17 case '3': 18 case '4': 19 case '5': 20 case '6': 21 case '7': 22 case '8': 23 case '9': goto yy5; 24 default: goto yy2; 25 } 26 yy2: 27 ++YYCURSOR; 28 yy3: 29 { return ERR; } 30 yy4: 31 yych = *(YYMARKER = ++YYCURSOR); 32 switch (yych) { 33 case 0x00: goto yy6; 34 case '0': 35 case '1': 36 case '2': 37 case '3': 38 case '4': 39 case '5': 40 case '6': 41 case '7': goto yy8; 42 case 'B': 43 case 'b': goto yy11; 44 case 'X': 45 case 'x': goto yy12; 46 default: goto yy3; 47 } 48 yy5: 49 yych = *(YYMARKER = ++YYCURSOR); 50 switch (yych) { 51 case 0x00: goto yy13; 52 case '0': 53 case '1': 54 case '2': 55 case '3': 56 case '4': 57 case '5': 58 case '6': 59 case '7': 60 case '8': 61 case '9': goto yy15; 62 default: goto yy3; 63 } 64 yy6: 65 ++YYCURSOR; 66 { return OCT; } 67 yy8: 68 ++YYCURSOR; 69 yych = *YYCURSOR; 70 switch (yych) { 71 case 0x00: goto yy6; 72 case '0': 73 case '1': 74 case '2': 75 case '3': 76 case '4': 77 case '5': 78 case '6': 79 case '7': goto yy8; 80 default: goto yy10; 81 } 82 yy10: 83 YYCURSOR = YYMARKER; 84 goto yy3; 85 yy11: 86 yych = *++YYCURSOR; 87 if (yych <= 0x00) goto yy10; 88 goto yy18; 89 yy12: 90 yych = *++YYCURSOR; 91 if (yych <= 0x00) goto yy10; 92 goto yy20; 93 yy13: 94 ++YYCURSOR; 95 { return DEC; } 96 yy15: 97 ++YYCURSOR; 98 yych = *YYCURSOR; 99 switch (yych) { 100 case 0x00: goto yy13; 101 case '0': 102 case '1': 103 case '2': 104 case '3': 105 case '4': 106 case '5': 107 case '6': 108 case '7': 109 case '8': 110 case '9': goto yy15; 111 default: goto yy10; 112 } 113 yy17: 114 ++YYCURSOR; 115 yych = *YYCURSOR; 116 yy18: 117 switch (yych) { 118 case 0x00: goto yy21; 119 case '0': 120 case '1': goto yy17; 121 default: goto yy10; 122 } 123 yy19: 124 ++YYCURSOR; 125 yych = *YYCURSOR; 126 yy20: 127 switch (yych) { 128 case 0x00: goto yy23; 129 case '0': 130 case '1': 131 case '2': 132 case '3': 133 case '4': 134 case '5': 135 case '6': 136 case '7': 137 case '8': 138 case '9': 139 case 'A': 140 case 'B': 141 case 'C': 142 case 'D': 143 case 'E': 144 case 'F': 145 case 'a': 146 case 'b': 147 case 'c': 148 case 'd': 149 case 'e': 150 case 'f': goto yy19; 151 default: goto yy10; 152 } 153 yy21: 154 ++YYCURSOR; 155 { return BIN; } 156 yy23: 157 ++YYCURSOR; 158 { return HEX; } 159 } 160 161 } 162