4848 * enum, which is built and used within basic.c for tokenization.
4949 */
5050#define TOKEN (T ) \
51- T(NO_TOKEN) \
52- T(ERROR) \
53- T(ENDOFINPUT) \
54- T(NUMBER) \
55- T(HEXNUMBER) \
56- T(STRING) \
57- T(VARIABLE) \
58- T(LET) \
59- T(PRINT) \
60- T(IF) \
61- T(THEN) \
62- T(ELSE) \
63- T(CHAIN) \
64- T(FOR) \
65- T(STEP) \
66- T(TO) \
67- T(NEXT) \
68- T(CURSOR) \
69- T(GOTO) \
70- T(GOSUB) \
71- T(RETURN) \
72- T(CALL) \
73- T(INPUT) \
74- T(COLOUR) \
75- T(COLOR) \
76- T(BACKGROUND) \
77- T(EVAL) \
78- T(CLOSE) \
79- T(DEF) \
80- T(PROC) \
81- T(ENDPROC) \
82- T(FN) \
83- T(END) \
84- T(REM) \
85- T(COMMA) \
86- T(SEMICOLON) \
87- T(PLUS) \
88- T(MINUS) \
89- T(AND) \
90- T(OR) \
91- T(NOT) \
92- T(EOR) \
93- T(ASTERISK) \
94- T(SLASH) \
95- T(MOD) \
96- T(OPENBRACKET) \
97- T(CLOSEBRACKET) \
98- T(LESSTHAN) \
99- T(GREATERTHAN) \
100- T(EQUALS) \
101- T(NEWLINE) \
102- T(AMPERSAND) \
103- T(TILDE) \
104- T(GLOBAL) \
105- T(SOCKREAD) \
106- T(SOCKWRITE) \
107- T(CONNECT) \
108- T(SOCKCLOSE) \
109- T(CLS) \
110- T(GCOL) \
111- T(LINE) \
112- T(TRIANGLE) \
113- T(RECTANGLE) \
114- T(CIRCLE) \
115- T(POINT) \
116- T(DATA) \
117- T(RESTORE) \
118- T(WRITE) \
119- T(MKDIR) \
120- T(RMDIR) \
121- T(DELETE) \
122- T(REPEAT) \
123- T(UNTIL) \
124- T(DIM) \
125- T(REDIM) \
126- T(PUSH) \
127- T(POKE) \
128- T(POKEW) \
129- T(POKED) \
130- T(POKEQ) \
131- T(POP) \
132- T(LOCAL) \
133- T(CHDIR) \
134- T(LIBRARY) \
135- T(YIELD) \
136- T(SETVARI) \
137- T(SETVARR) \
138- T(SETVARS) \
139- T(SPRITELOAD) \
140- T(SPRITEFREE) \
141- T(PLOT) \
142- T(AUTOFLIP) \
143- T(FLIP) \
144- T(KEYMAP) \
145- T(MOUNT) \
146- T(SETTIMEZONE) \
147- T(ENDIF) \
148- T(PLOTQUAD) \
149- T(ON) \
150- T(OFF) \
151- T(WHILE) \
152- T(ENDWHILE) \
153- T(SLEEP) \
154- T(CONTINUE) \
155- T(UDPBIND) \
156- T(UDPUNBIND) \
157- T(UDPWRITE) \
158- T(OUTPORT) \
159- T(OUTPORTW) \
160- T(OUTPORTD) \
161- T(KGET)
51+ T(NO_TOKEN) /* 0 */ \
52+ T (ERROR ) /* 1 */ \
53+ T (ENDOFINPUT ) /* 2 */ \
54+ T (NUMBER ) /* 3 */ \
55+ T (HEXNUMBER ) /* 4 */ \
56+ T (STRING ) /* 5 */ \
57+ T (VARIABLE ) /* 6 */ \
58+ T (LET ) /* 7 */ \
59+ T (PRINT ) /* 8 */ \
60+ T (IF ) /* 9 */ \
61+ T (THEN ) /* 10 */ \
62+ T (ELSE ) /* 11 */ \
63+ T (CHAIN ) /* 12 */ \
64+ T (FOR ) /* 13 */ \
65+ T (STEP ) /* 14 */ \
66+ T (TO ) /* 15 */ \
67+ T (NEXT ) /* 16 */ \
68+ T (CURSOR ) /* 17 */ \
69+ T (GOTO ) /* 18 */ \
70+ T (GOSUB ) /* 19 */ \
71+ T (RETURN ) /* 20 */ \
72+ T (CALL ) /* 21 */ \
73+ T (INPUT ) /* 22 */ \
74+ T (COLOUR ) /* 23 */ \
75+ T (COLOR ) /* 24 */ \
76+ T (BACKGROUND ) /* 25 */ \
77+ T (EVAL ) /* 26 */ \
78+ T (CLOSE ) /* 27 */ \
79+ T (DEF ) /* 28 */ \
80+ T (PROC ) /* 29 */ \
81+ T (ENDPROC ) /* 30 */ \
82+ T (FN ) /* 31 */ \
83+ T (END ) /* 32 */ \
84+ T (REM ) /* 33 */ \
85+ T (COMMA ) /* 34 */ \
86+ T (SEMICOLON ) /* 35 */ \
87+ T (PLUS ) /* 36 */ \
88+ T (MINUS ) /* 37 */ \
89+ T (AND ) /* 38 */ \
90+ T (OR ) /* 39 */ \
91+ T (NOT ) /* 40 */ \
92+ T (EOR ) /* 41 */ \
93+ T (ASTERISK ) /* 42 */ \
94+ T (SLASH ) /* 43 */ \
95+ T (MOD ) /* 44 */ \
96+ T (OPENBRACKET ) /* 45 */ \
97+ T (CLOSEBRACKET ) /* 46 */ \
98+ T (LESSTHAN ) /* 47 */ \
99+ T (GREATERTHAN ) /* 48 */ \
100+ T (EQUALS ) /* 49 */ \
101+ T (NEWLINE ) /* 50 */ \
102+ T (AMPERSAND ) /* 51 */ \
103+ T (TILDE ) /* 52 */ \
104+ T (GLOBAL ) /* 53 */ \
105+ T (SOCKREAD ) /* 54 */ \
106+ T (SOCKWRITE ) /* 55 */ \
107+ T (CONNECT ) /* 56 */ \
108+ T (SOCKCLOSE ) /* 57 */ \
109+ T (CLS ) /* 58 */ \
110+ T (GCOL ) /* 59 */ \
111+ T (LINE ) /* 60 */ \
112+ T (TRIANGLE ) /* 61 */ \
113+ T (RECTANGLE ) /* 62 */ \
114+ T (CIRCLE ) /* 63 */ \
115+ T (POINT ) /* 64 */ \
116+ T (DATA ) /* 65 */ \
117+ T (RESTORE ) /* 66 */ \
118+ T (WRITE ) /* 67 */ \
119+ T (MKDIR ) /* 68 */ \
120+ T (RMDIR ) /* 69 */ \
121+ T (DELETE ) /* 70 */ \
122+ T (REPEAT ) /* 71 */ \
123+ T (UNTIL ) /* 72 */ \
124+ T (DIM ) /* 73 */ \
125+ T (REDIM ) /* 74 */ \
126+ T (PUSH ) /* 75 */ \
127+ T (POKE ) /* 76 */ \
128+ T (POKEW ) /* 77 */ \
129+ T (POKED ) /* 78 */ \
130+ T (POKEQ ) /* 79 */ \
131+ T (POP ) /* 80 */ \
132+ T (LOCAL ) /* 81 */ \
133+ T (CHDIR ) /* 82 */ \
134+ T (LIBRARY ) /* 83 */ \
135+ T (YIELD ) /* 84 */ \
136+ T (SETVARI ) /* 85 */ \
137+ T (SETVARR ) /* 86 */ \
138+ T (SETVARS ) /* 87 */ \
139+ T (SPRITELOAD ) /* 88 */ \
140+ T (SPRITEFREE ) /* 89 */ \
141+ T (PLOT ) /* 90 */ \
142+ T (AUTOFLIP ) /* 91 */ \
143+ T (FLIP ) /* 92 */ \
144+ T (KEYMAP ) /* 93 */ \
145+ T (MOUNT ) /* 94 */ \
146+ T (SETTIMEZONE ) /* 95 */ \
147+ T (ENDIF ) /* 96 */ \
148+ T (PLOTQUAD ) /* 97 */ \
149+ T (ON ) /* 98 */ \
150+ T (OFF ) /* 99 */ \
151+ T (WHILE ) /* 100 */ \
152+ T (ENDWHILE ) /* 101 */ \
153+ T (SLEEP ) /* 102 */ \
154+ T (CONTINUE ) /* 103 */ \
155+ T (UDPBIND ) /* 104 */ \
156+ T (UDPUNBIND ) /* 105 */ \
157+ T (UDPWRITE ) /* 106 */ \
158+ T (OUTPORT ) /* 107 */ \
159+ T (OUTPORTW ) /* 108 */ \
160+ T (OUTPORTD ) /* 109 */ \
161+ T (KGET ) /* 110 */ \
162162
163163GENERATE_ENUM_LIST (TOKEN , token_t )
164164
@@ -183,7 +183,7 @@ void tokenizer_next(struct basic_ctx* ctx);
183183 * @param ctx context
184184 * @return int token
185185 */
186- int tokenizer_token (struct basic_ctx * ctx );
186+ enum token_t tokenizer_token (struct basic_ctx * ctx );
187187
188188/**
189189 * @brief Get integer number as next token
@@ -193,7 +193,7 @@ int tokenizer_token(struct basic_ctx* ctx);
193193 * @param token token (NUMBER or HEXNUMBER)
194194 * @return int64_t number read from program
195195 */
196- int64_t tokenizer_num (struct basic_ctx * ctx , int token );
196+ int64_t tokenizer_num (struct basic_ctx * ctx , enum token_t token );
197197
198198/**
199199 * @brief Get real number as next token
@@ -203,7 +203,7 @@ int64_t tokenizer_num(struct basic_ctx* ctx, int token);
203203 * @param token token (NUMBER)
204204 * @param f number read from program
205205 */
206- void tokenizer_fnum (struct basic_ctx * ctx , int token , double * f );
206+ void tokenizer_fnum (struct basic_ctx * ctx , enum token_t token , double * f );
207207
208208/**
209209 * @brief Get a variable name as next token
@@ -232,7 +232,7 @@ bool tokenizer_string(char *dest, int len, struct basic_ctx* ctx);
232232 * @param ctx context
233233 * @return int true if the program has finished
234234 */
235- int tokenizer_finished (struct basic_ctx * ctx );
235+ bool tokenizer_finished (struct basic_ctx * ctx );
236236
237237/**
238238 * @brief display an error to the terminal and end the program
0 commit comments