Skip to content

Commit 367d5e1

Browse files
committed
Define stdbool macros
Macro 'bool', 'true', 'false' are defined in c.c. In addition, this commit also tweaks 'define' preprocessor directive so that parsing identifier after 'define' is possible.
1 parent 7f328f3 commit 367d5e1

File tree

3 files changed

+9
-1
lines changed

3 files changed

+9
-1
lines changed

lib/c.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@
99

1010
#define NULL 0
1111

12+
#define bool _Bool
13+
#define true 1
14+
#define false 0
15+
1216
#if defined(__arm__)
1317
#define __syscall_exit 1
1418
#define __syscall_read 3

src/main.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
#include <stdio.h>
99
#include <stdlib.h>
1010
#include <string.h>
11+
#include <stdbool.h>
1112

1213
/* Define target machine */
1314
#include "../config"

src/parser.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -380,14 +380,17 @@ int read_preproc_directive()
380380
char alias[MAX_VAR_LEN];
381381
char value[MAX_VAR_LEN];
382382

383-
lex_ident(T_identifier, alias);
383+
lex_ident_internal(T_identifier, alias, 0);
384384

385385
if (lex_peek(T_numeric, value)) {
386386
lex_expect(T_numeric);
387387
add_alias(alias, value);
388388
} else if (lex_peek(T_string, value)) {
389389
lex_expect(T_string);
390390
add_alias(alias, value);
391+
} else if (lex_peek(T_identifier, value)) {
392+
lex_expect(T_identifier);
393+
add_alias(alias, value);
391394
} else if (lex_accept(T_open_bracket)) { /* function-like macro */
392395
macro_t *macro = add_macro(alias);
393396

0 commit comments

Comments
 (0)