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