Skip to content

Commit cd3bff8

Browse files
committed
fix placeholder bug
1 parent bf3153d commit cd3bff8

File tree

4 files changed

+98
-98
lines changed

4 files changed

+98
-98
lines changed

docs/tokens.txt

Lines changed: 78 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -1,79 +1,79 @@
11

2-
TOKEN_KIND_EOF EOF
3-
TOKEN_KIND_DOTDOT '..'
4-
TOKEN_KIND_DOT '.'
5-
TOKEN_KIND_COMMA ','
6-
TOKEN_KIND_COLON ':'
7-
TOKEN_KIND_SEMICOLON ';'
8-
TOKEN_KIND_LPAREN '('
9-
TOKEN_KIND_RPAREN ')'
10-
TOKEN_KIND_LBRACKET '['
11-
TOKEN_KIND_RBRACKET ']'
12-
TOKEN_KIND_LBRACE '{'
13-
TOKEN_KIND_RBRACE '}'
14-
TOKEN_KIND_PIPEEQ '|='
15-
TOKEN_KIND_PIPEPIPE '||'
16-
TOKEN_KIND_PIPE '|'
17-
TOKEN_KIND_CARETEQ '^='
18-
TOKEN_KIND_CARET '^'
19-
TOKEN_KIND_AMPEQ '&='
20-
TOKEN_KIND_AMPAMP '&&'
21-
TOKEN_KIND_AMP '&'
22-
TOKEN_KIND_ARROW '=>'
23-
TOKEN_KIND_EQEQ '=='
24-
TOKEN_KIND_EQ '='
25-
TOKEN_KIND_BANGEQ '!='
26-
TOKEN_KIND_BANG '!'
27-
TOKEN_KIND_GTEQ '>='
28-
TOKEN_KIND_GTGTEQ '>>='
29-
TOKEN_KIND_GTGT '>>'
30-
TOKEN_KIND_GT '>'
31-
TOKEN_KIND_LTEQ '<='
32-
TOKEN_KIND_LTLTEQ '<<='
33-
TOKEN_KIND_LTLT '<<'
34-
TOKEN_KIND_LT '<'
35-
TOKEN_KIND_PLUSEQ '+='
36-
TOKEN_KIND_PLUSPLUS '++'
37-
TOKEN_KIND_PLUS '+'
38-
TOKEN_KIND_DASHEQ '-='
39-
TOKEN_KIND_DASHDASH '--'
40-
TOKEN_KIND_DASH '-'
41-
TOKEN_KIND_STAREQ '*='
42-
TOKEN_KIND_STAR '*'
43-
TOKEN_KIND_SLASHEQ '/='
44-
TOKEN_KIND_SLASH '/'
45-
TOKEN_KIND_TILDESLASHEQ '~/='
46-
TOKEN_KIND_TILDESLASH '~/'
47-
TOKEN_KIND_TILDE '~'
48-
TOKEN_KIND_PERCENTEQ '%='
49-
TOKEN_KIND_PERCENT '%'
50-
TOKEN_KIND_INT INT
51-
TOKEN_KIND_FLOAT FLOAT
52-
TOKEN_KIND_STRING STRING
53-
TOKEN_KIND_UNDERSCORE '_'
54-
TOKEN_KIND_AS_KW 'as'
55-
TOKEN_KIND_BREAK_KW 'break'
56-
TOKEN_KIND_CONTINUE_KW 'continue'
57-
TOKEN_KIND_DEL_KW 'del'
58-
TOKEN_KIND_DO_KW 'do'
59-
TOKEN_KIND_ELSE_KW 'else'
60-
TOKEN_KIND_FALSE_KW 'false'
61-
TOKEN_KIND_FN_KW 'fn'
62-
TOKEN_KIND_FOR_KW 'for'
63-
TOKEN_KIND_FOREACH_KW 'foreach'
64-
TOKEN_KIND_FROM_KW 'from'
65-
TOKEN_KIND_IF_KW 'if'
66-
TOKEN_KIND_IFBANG_KW 'if!'
67-
TOKEN_KIND_IMPORT_KW 'import'
68-
TOKEN_KIND_IN_KW 'in'
69-
TOKEN_KIND_LET_KW 'let'
70-
TOKEN_KIND_LOOP_KW 'loop'
71-
TOKEN_KIND_MATCH_KW 'match'
72-
TOKEN_KIND_MUT_KW 'mut'
73-
TOKEN_KIND_NIL_KW 'nil'
74-
TOKEN_KIND_RETURN_KW 'return'
75-
TOKEN_KIND_STRUCT_KW 'struct'
76-
TOKEN_KIND_TRUE_KW 'true'
77-
TOKEN_KIND_WHILE_KW 'while'
78-
TOKEN_KIND_WHILEBANG_KW 'while!'
79-
TOKEN_KIND_NAME_KW NAME
2+
TOKEN_KIND_EOF EOF
3+
TOKEN_KIND_DOTDOT '..'
4+
TOKEN_KIND_DOT '.'
5+
TOKEN_KIND_COMMA ','
6+
TOKEN_KIND_COLON ':'
7+
TOKEN_KIND_SEMICOLON ';'
8+
TOKEN_KIND_LPAREN '('
9+
TOKEN_KIND_RPAREN ')'
10+
TOKEN_KIND_LBRACKET '['
11+
TOKEN_KIND_RBRACKET ']'
12+
TOKEN_KIND_LBRACE '{'
13+
TOKEN_KIND_RBRACE '}'
14+
TOKEN_KIND_PIPEEQ '|='
15+
TOKEN_KIND_PIPEPIPE '||'
16+
TOKEN_KIND_PIPE '|'
17+
TOKEN_KIND_CARETEQ '^='
18+
TOKEN_KIND_CARET '^'
19+
TOKEN_KIND_AMPEQ '&='
20+
TOKEN_KIND_AMPAMP '&&'
21+
TOKEN_KIND_AMP '&'
22+
TOKEN_KIND_ARROW '=>'
23+
TOKEN_KIND_EQEQ '=='
24+
TOKEN_KIND_EQ '='
25+
TOKEN_KIND_BANGEQ '!='
26+
TOKEN_KIND_BANG '!'
27+
TOKEN_KIND_GTEQ '>='
28+
TOKEN_KIND_GTGTEQ '>>='
29+
TOKEN_KIND_GTGT '>>'
30+
TOKEN_KIND_GT '>'
31+
TOKEN_KIND_LTEQ '<='
32+
TOKEN_KIND_LTLTEQ '<<='
33+
TOKEN_KIND_LTLT '<<'
34+
TOKEN_KIND_LT '<'
35+
TOKEN_KIND_PLUSEQ '+='
36+
TOKEN_KIND_PLUSPLUS '++'
37+
TOKEN_KIND_PLUS '+'
38+
TOKEN_KIND_DASHEQ '-='
39+
TOKEN_KIND_DASHDASH '--'
40+
TOKEN_KIND_DASH '-'
41+
TOKEN_KIND_STAREQ '*='
42+
TOKEN_KIND_STAR '*'
43+
TOKEN_KIND_SLASHEQ '/='
44+
TOKEN_KIND_SLASH '/'
45+
TOKEN_KIND_TILDESLASHEQ '~/='
46+
TOKEN_KIND_TILDESLASH '~/'
47+
TOKEN_KIND_TILDE '~'
48+
TOKEN_KIND_PERCENTEQ '%='
49+
TOKEN_KIND_PERCENT '%'
50+
TOKEN_KIND_INT INT
51+
TOKEN_KIND_FLOAT FLOAT
52+
TOKEN_KIND_STRING STRING
53+
TOKEN_KIND_UNDERSCORE_KW '_'
54+
TOKEN_KIND_AS_KW 'as'
55+
TOKEN_KIND_BREAK_KW 'break'
56+
TOKEN_KIND_CONTINUE_KW 'continue'
57+
TOKEN_KIND_DEL_KW 'del'
58+
TOKEN_KIND_DO_KW 'do'
59+
TOKEN_KIND_ELSE_KW 'else'
60+
TOKEN_KIND_FALSE_KW 'false'
61+
TOKEN_KIND_FN_KW 'fn'
62+
TOKEN_KIND_FOR_KW 'for'
63+
TOKEN_KIND_FOREACH_KW 'foreach'
64+
TOKEN_KIND_FROM_KW 'from'
65+
TOKEN_KIND_IF_KW 'if'
66+
TOKEN_KIND_IFBANG_KW 'if!'
67+
TOKEN_KIND_IMPORT_KW 'import'
68+
TOKEN_KIND_IN_KW 'in'
69+
TOKEN_KIND_LET_KW 'let'
70+
TOKEN_KIND_LOOP_KW 'loop'
71+
TOKEN_KIND_MATCH_KW 'match'
72+
TOKEN_KIND_MUT_KW 'mut'
73+
TOKEN_KIND_NIL_KW 'nil'
74+
TOKEN_KIND_RETURN_KW 'return'
75+
TOKEN_KIND_STRUCT_KW 'struct'
76+
TOKEN_KIND_TRUE_KW 'true'
77+
TOKEN_KIND_WHILE_KW 'while'
78+
TOKEN_KIND_WHILEBANG_KW 'while!'
79+
TOKEN_KIND_NAME_KW NAME

src/compiler.c

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -603,7 +603,7 @@ static void compile_constant_declaration(Compiler *comp)
603603
if (match(scan, TOKEN_KIND_LBRACKET))
604604
{
605605
scanner_next_token(scan);
606-
if (match(scan, TOKEN_KIND_UNDERSCORE))
606+
if (match(scan, TOKEN_KIND_UNDERSCORE_KW))
607607
add_placeholder(comp);
608608
else
609609
{
@@ -616,7 +616,7 @@ static void compile_constant_declaration(Compiler *comp)
616616
while (match(scan, TOKEN_KIND_COMMA))
617617
{
618618
scanner_next_token(scan);
619-
if (match(scan, TOKEN_KIND_UNDERSCORE))
619+
if (match(scan, TOKEN_KIND_UNDERSCORE_KW))
620620
add_placeholder(comp);
621621
else
622622
{
@@ -695,7 +695,7 @@ static void compile_variable_declaration(Compiler *comp)
695695
if (match(scan, TOKEN_KIND_LBRACKET))
696696
{
697697
scanner_next_token(scan);
698-
if (match(scan, TOKEN_KIND_UNDERSCORE))
698+
if (match(scan, TOKEN_KIND_UNDERSCORE_KW))
699699
add_placeholder(comp);
700700
else
701701
{
@@ -709,7 +709,7 @@ static void compile_variable_declaration(Compiler *comp)
709709
while (match(scan, TOKEN_KIND_COMMA))
710710
{
711711
scanner_next_token(scan);
712-
if (match(scan, TOKEN_KIND_UNDERSCORE))
712+
if (match(scan, TOKEN_KIND_UNDERSCORE_KW))
713713
add_placeholder(comp);
714714
else
715715
{
@@ -1335,7 +1335,7 @@ static void compile_match_statement_member(Compiler *comp)
13351335
hk_chunk_emit_opcode(chunk, HK_OP_POP);
13361336
return;
13371337
}
1338-
if (match(scan, TOKEN_KIND_UNDERSCORE))
1338+
if (match(scan, TOKEN_KIND_UNDERSCORE_KW))
13391339
{
13401340
scanner_next_token(scan);
13411341
consume(comp, TOKEN_KIND_ARROW);
@@ -2054,7 +2054,7 @@ static void compile_match_expression(Compiler *comp)
20542054
if (match(scan, TOKEN_KIND_COMMA))
20552055
{
20562056
scanner_next_token(scan);
2057-
if (match(scan, TOKEN_KIND_UNDERSCORE))
2057+
if (match(scan, TOKEN_KIND_UNDERSCORE_KW))
20582058
{
20592059
scanner_next_token(scan);
20602060
consume(comp, TOKEN_KIND_ARROW);
@@ -2084,7 +2084,7 @@ static void compile_match_expression_member(Compiler *comp)
20842084
if (match(scan, TOKEN_KIND_COMMA))
20852085
{
20862086
scanner_next_token(scan);
2087-
if (match(scan, TOKEN_KIND_UNDERSCORE))
2087+
if (match(scan, TOKEN_KIND_UNDERSCORE_KW))
20882088
{
20892089
scanner_next_token(scan);
20902090
consume(comp, TOKEN_KIND_ARROW);

src/scanner.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -491,9 +491,9 @@ void scanner_next_token(Scanner *scan)
491491
return;
492492
if (match_string(scan))
493493
return;
494-
if (match_chars(scan, "_"))
494+
if (match_keyword(scan, "_"))
495495
{
496-
scan->token.kind = TOKEN_KIND_UNDERSCORE;
496+
scan->token.kind = TOKEN_KIND_UNDERSCORE_KW;
497497
return;
498498
}
499499
if (match_keyword(scan, "as"))

src/scanner.h

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,17 @@
1010

1111
typedef enum
1212
{
13-
TOKEN_KIND_EOF, TOKEN_KIND_DOTDOT, TOKEN_KIND_DOT, TOKEN_KIND_COMMA, TOKEN_KIND_COLON, TOKEN_KIND_SEMICOLON, TOKEN_KIND_LPAREN,
14-
TOKEN_KIND_RPAREN, TOKEN_KIND_LBRACKET, TOKEN_KIND_RBRACKET, TOKEN_KIND_LBRACE, TOKEN_KIND_RBRACE, TOKEN_KIND_PIPEEQ, TOKEN_KIND_PIPEPIPE,
15-
TOKEN_KIND_PIPE, TOKEN_KIND_CARETEQ, TOKEN_KIND_CARET, TOKEN_KIND_AMPEQ, TOKEN_KIND_AMPAMP, TOKEN_KIND_AMP, TOKEN_KIND_ARROW,
16-
TOKEN_KIND_EQEQ, TOKEN_KIND_EQ, TOKEN_KIND_BANGEQ, TOKEN_KIND_BANG, TOKEN_KIND_GTEQ, TOKEN_KIND_GTGTEQ, TOKEN_KIND_GTGT,
17-
TOKEN_KIND_GT, TOKEN_KIND_LTEQ, TOKEN_KIND_LTLTEQ, TOKEN_KIND_LTLT, TOKEN_KIND_LT, TOKEN_KIND_PLUSEQ, TOKEN_KIND_PLUSPLUS,
18-
TOKEN_KIND_PLUS, TOKEN_KIND_DASHEQ, TOKEN_KIND_DASHDASH, TOKEN_KIND_DASH, TOKEN_KIND_STAREQ, TOKEN_KIND_STAR, TOKEN_KIND_SLASHEQ,
19-
TOKEN_KIND_SLASH, TOKEN_KIND_TILDESLASHEQ, TOKEN_KIND_TILDESLASH, TOKEN_KIND_TILDE, TOKEN_KIND_PERCENTEQ, TOKEN_KIND_PERCENT, TOKEN_KIND_INT,
20-
TOKEN_KIND_FLOAT, TOKEN_KIND_STRING, TOKEN_KIND_UNDERSCORE, TOKEN_KIND_AS_KW, TOKEN_KIND_BREAK_KW, TOKEN_KIND_CONTINUE_KW, TOKEN_KIND_DEL_KW,
21-
TOKEN_KIND_DO_KW, TOKEN_KIND_ELSE_KW, TOKEN_KIND_FALSE_KW, TOKEN_KIND_FN_KW, TOKEN_KIND_FOR_KW, TOKEN_KIND_FOREACH_KW, TOKEN_KIND_FROM_KW,
22-
TOKEN_KIND_IF_KW, TOKEN_KIND_IFBANG_KW, TOKEN_KIND_IMPORT_KW, TOKEN_KIND_IN_KW, TOKEN_KIND_LET_KW, TOKEN_KIND_LOOP_KW, TOKEN_KIND_MATCH_KW,
23-
TOKEN_KIND_MUT_KW, TOKEN_KIND_NIL_KW, TOKEN_KIND_RETURN_KW, TOKEN_KIND_STRUCT_KW, TOKEN_KIND_TRUE_KW, TOKEN_KIND_WHILE_KW, TOKEN_KIND_WHILEBANG_KW,
13+
TOKEN_KIND_EOF, TOKEN_KIND_DOTDOT, TOKEN_KIND_DOT, TOKEN_KIND_COMMA, TOKEN_KIND_COLON, TOKEN_KIND_SEMICOLON, TOKEN_KIND_LPAREN,
14+
TOKEN_KIND_RPAREN, TOKEN_KIND_LBRACKET, TOKEN_KIND_RBRACKET, TOKEN_KIND_LBRACE, TOKEN_KIND_RBRACE, TOKEN_KIND_PIPEEQ, TOKEN_KIND_PIPEPIPE,
15+
TOKEN_KIND_PIPE, TOKEN_KIND_CARETEQ, TOKEN_KIND_CARET, TOKEN_KIND_AMPEQ, TOKEN_KIND_AMPAMP, TOKEN_KIND_AMP, TOKEN_KIND_ARROW,
16+
TOKEN_KIND_EQEQ, TOKEN_KIND_EQ, TOKEN_KIND_BANGEQ, TOKEN_KIND_BANG, TOKEN_KIND_GTEQ, TOKEN_KIND_GTGTEQ, TOKEN_KIND_GTGT,
17+
TOKEN_KIND_GT, TOKEN_KIND_LTEQ, TOKEN_KIND_LTLTEQ, TOKEN_KIND_LTLT, TOKEN_KIND_LT, TOKEN_KIND_PLUSEQ, TOKEN_KIND_PLUSPLUS,
18+
TOKEN_KIND_PLUS, TOKEN_KIND_DASHEQ, TOKEN_KIND_DASHDASH, TOKEN_KIND_DASH, TOKEN_KIND_STAREQ, TOKEN_KIND_STAR, TOKEN_KIND_SLASHEQ,
19+
TOKEN_KIND_SLASH, TOKEN_KIND_TILDESLASHEQ, TOKEN_KIND_TILDESLASH, TOKEN_KIND_TILDE, TOKEN_KIND_PERCENTEQ, TOKEN_KIND_PERCENT, TOKEN_KIND_INT,
20+
TOKEN_KIND_FLOAT, TOKEN_KIND_STRING, TOKEN_KIND_UNDERSCORE_KW, TOKEN_KIND_AS_KW, TOKEN_KIND_BREAK_KW, TOKEN_KIND_CONTINUE_KW, TOKEN_KIND_DEL_KW,
21+
TOKEN_KIND_DO_KW, TOKEN_KIND_ELSE_KW, TOKEN_KIND_FALSE_KW, TOKEN_KIND_FN_KW, TOKEN_KIND_FOR_KW, TOKEN_KIND_FOREACH_KW, TOKEN_KIND_FROM_KW,
22+
TOKEN_KIND_IF_KW, TOKEN_KIND_IFBANG_KW, TOKEN_KIND_IMPORT_KW, TOKEN_KIND_IN_KW, TOKEN_KIND_LET_KW, TOKEN_KIND_LOOP_KW, TOKEN_KIND_MATCH_KW,
23+
TOKEN_KIND_MUT_KW, TOKEN_KIND_NIL_KW, TOKEN_KIND_RETURN_KW, TOKEN_KIND_STRUCT_KW, TOKEN_KIND_TRUE_KW, TOKEN_KIND_WHILE_KW, TOKEN_KIND_WHILEBANG_KW,
2424
TOKEN_KIND_NAME
2525
} TokenKind;
2626

0 commit comments

Comments
 (0)