Skip to content

Commit

Permalink
fix placeholder bug
Browse files Browse the repository at this point in the history
  • Loading branch information
fabiosvm committed Jan 28, 2024
1 parent bf3153d commit cd3bff8
Show file tree
Hide file tree
Showing 4 changed files with 98 additions and 98 deletions.
156 changes: 78 additions & 78 deletions docs/tokens.txt
Original file line number Diff line number Diff line change
@@ -1,79 +1,79 @@

TOKEN_KIND_EOF EOF
TOKEN_KIND_DOTDOT '..'
TOKEN_KIND_DOT '.'
TOKEN_KIND_COMMA ','
TOKEN_KIND_COLON ':'
TOKEN_KIND_SEMICOLON ';'
TOKEN_KIND_LPAREN '('
TOKEN_KIND_RPAREN ')'
TOKEN_KIND_LBRACKET '['
TOKEN_KIND_RBRACKET ']'
TOKEN_KIND_LBRACE '{'
TOKEN_KIND_RBRACE '}'
TOKEN_KIND_PIPEEQ '|='
TOKEN_KIND_PIPEPIPE '||'
TOKEN_KIND_PIPE '|'
TOKEN_KIND_CARETEQ '^='
TOKEN_KIND_CARET '^'
TOKEN_KIND_AMPEQ '&='
TOKEN_KIND_AMPAMP '&&'
TOKEN_KIND_AMP '&'
TOKEN_KIND_ARROW '=>'
TOKEN_KIND_EQEQ '=='
TOKEN_KIND_EQ '='
TOKEN_KIND_BANGEQ '!='
TOKEN_KIND_BANG '!'
TOKEN_KIND_GTEQ '>='
TOKEN_KIND_GTGTEQ '>>='
TOKEN_KIND_GTGT '>>'
TOKEN_KIND_GT '>'
TOKEN_KIND_LTEQ '<='
TOKEN_KIND_LTLTEQ '<<='
TOKEN_KIND_LTLT '<<'
TOKEN_KIND_LT '<'
TOKEN_KIND_PLUSEQ '+='
TOKEN_KIND_PLUSPLUS '++'
TOKEN_KIND_PLUS '+'
TOKEN_KIND_DASHEQ '-='
TOKEN_KIND_DASHDASH '--'
TOKEN_KIND_DASH '-'
TOKEN_KIND_STAREQ '*='
TOKEN_KIND_STAR '*'
TOKEN_KIND_SLASHEQ '/='
TOKEN_KIND_SLASH '/'
TOKEN_KIND_TILDESLASHEQ '~/='
TOKEN_KIND_TILDESLASH '~/'
TOKEN_KIND_TILDE '~'
TOKEN_KIND_PERCENTEQ '%='
TOKEN_KIND_PERCENT '%'
TOKEN_KIND_INT INT
TOKEN_KIND_FLOAT FLOAT
TOKEN_KIND_STRING STRING
TOKEN_KIND_UNDERSCORE '_'
TOKEN_KIND_AS_KW 'as'
TOKEN_KIND_BREAK_KW 'break'
TOKEN_KIND_CONTINUE_KW 'continue'
TOKEN_KIND_DEL_KW 'del'
TOKEN_KIND_DO_KW 'do'
TOKEN_KIND_ELSE_KW 'else'
TOKEN_KIND_FALSE_KW 'false'
TOKEN_KIND_FN_KW 'fn'
TOKEN_KIND_FOR_KW 'for'
TOKEN_KIND_FOREACH_KW 'foreach'
TOKEN_KIND_FROM_KW 'from'
TOKEN_KIND_IF_KW 'if'
TOKEN_KIND_IFBANG_KW 'if!'
TOKEN_KIND_IMPORT_KW 'import'
TOKEN_KIND_IN_KW 'in'
TOKEN_KIND_LET_KW 'let'
TOKEN_KIND_LOOP_KW 'loop'
TOKEN_KIND_MATCH_KW 'match'
TOKEN_KIND_MUT_KW 'mut'
TOKEN_KIND_NIL_KW 'nil'
TOKEN_KIND_RETURN_KW 'return'
TOKEN_KIND_STRUCT_KW 'struct'
TOKEN_KIND_TRUE_KW 'true'
TOKEN_KIND_WHILE_KW 'while'
TOKEN_KIND_WHILEBANG_KW 'while!'
TOKEN_KIND_NAME_KW NAME
TOKEN_KIND_EOF EOF
TOKEN_KIND_DOTDOT '..'
TOKEN_KIND_DOT '.'
TOKEN_KIND_COMMA ','
TOKEN_KIND_COLON ':'
TOKEN_KIND_SEMICOLON ';'
TOKEN_KIND_LPAREN '('
TOKEN_KIND_RPAREN ')'
TOKEN_KIND_LBRACKET '['
TOKEN_KIND_RBRACKET ']'
TOKEN_KIND_LBRACE '{'
TOKEN_KIND_RBRACE '}'
TOKEN_KIND_PIPEEQ '|='
TOKEN_KIND_PIPEPIPE '||'
TOKEN_KIND_PIPE '|'
TOKEN_KIND_CARETEQ '^='
TOKEN_KIND_CARET '^'
TOKEN_KIND_AMPEQ '&='
TOKEN_KIND_AMPAMP '&&'
TOKEN_KIND_AMP '&'
TOKEN_KIND_ARROW '=>'
TOKEN_KIND_EQEQ '=='
TOKEN_KIND_EQ '='
TOKEN_KIND_BANGEQ '!='
TOKEN_KIND_BANG '!'
TOKEN_KIND_GTEQ '>='
TOKEN_KIND_GTGTEQ '>>='
TOKEN_KIND_GTGT '>>'
TOKEN_KIND_GT '>'
TOKEN_KIND_LTEQ '<='
TOKEN_KIND_LTLTEQ '<<='
TOKEN_KIND_LTLT '<<'
TOKEN_KIND_LT '<'
TOKEN_KIND_PLUSEQ '+='
TOKEN_KIND_PLUSPLUS '++'
TOKEN_KIND_PLUS '+'
TOKEN_KIND_DASHEQ '-='
TOKEN_KIND_DASHDASH '--'
TOKEN_KIND_DASH '-'
TOKEN_KIND_STAREQ '*='
TOKEN_KIND_STAR '*'
TOKEN_KIND_SLASHEQ '/='
TOKEN_KIND_SLASH '/'
TOKEN_KIND_TILDESLASHEQ '~/='
TOKEN_KIND_TILDESLASH '~/'
TOKEN_KIND_TILDE '~'
TOKEN_KIND_PERCENTEQ '%='
TOKEN_KIND_PERCENT '%'
TOKEN_KIND_INT INT
TOKEN_KIND_FLOAT FLOAT
TOKEN_KIND_STRING STRING
TOKEN_KIND_UNDERSCORE_KW '_'
TOKEN_KIND_AS_KW 'as'
TOKEN_KIND_BREAK_KW 'break'
TOKEN_KIND_CONTINUE_KW 'continue'
TOKEN_KIND_DEL_KW 'del'
TOKEN_KIND_DO_KW 'do'
TOKEN_KIND_ELSE_KW 'else'
TOKEN_KIND_FALSE_KW 'false'
TOKEN_KIND_FN_KW 'fn'
TOKEN_KIND_FOR_KW 'for'
TOKEN_KIND_FOREACH_KW 'foreach'
TOKEN_KIND_FROM_KW 'from'
TOKEN_KIND_IF_KW 'if'
TOKEN_KIND_IFBANG_KW 'if!'
TOKEN_KIND_IMPORT_KW 'import'
TOKEN_KIND_IN_KW 'in'
TOKEN_KIND_LET_KW 'let'
TOKEN_KIND_LOOP_KW 'loop'
TOKEN_KIND_MATCH_KW 'match'
TOKEN_KIND_MUT_KW 'mut'
TOKEN_KIND_NIL_KW 'nil'
TOKEN_KIND_RETURN_KW 'return'
TOKEN_KIND_STRUCT_KW 'struct'
TOKEN_KIND_TRUE_KW 'true'
TOKEN_KIND_WHILE_KW 'while'
TOKEN_KIND_WHILEBANG_KW 'while!'
TOKEN_KIND_NAME_KW NAME
14 changes: 7 additions & 7 deletions src/compiler.c
Original file line number Diff line number Diff line change
Expand Up @@ -603,7 +603,7 @@ static void compile_constant_declaration(Compiler *comp)
if (match(scan, TOKEN_KIND_LBRACKET))
{
scanner_next_token(scan);
if (match(scan, TOKEN_KIND_UNDERSCORE))
if (match(scan, TOKEN_KIND_UNDERSCORE_KW))
add_placeholder(comp);
else
{
Expand All @@ -616,7 +616,7 @@ static void compile_constant_declaration(Compiler *comp)
while (match(scan, TOKEN_KIND_COMMA))
{
scanner_next_token(scan);
if (match(scan, TOKEN_KIND_UNDERSCORE))
if (match(scan, TOKEN_KIND_UNDERSCORE_KW))
add_placeholder(comp);
else
{
Expand Down Expand Up @@ -695,7 +695,7 @@ static void compile_variable_declaration(Compiler *comp)
if (match(scan, TOKEN_KIND_LBRACKET))
{
scanner_next_token(scan);
if (match(scan, TOKEN_KIND_UNDERSCORE))
if (match(scan, TOKEN_KIND_UNDERSCORE_KW))
add_placeholder(comp);
else
{
Expand All @@ -709,7 +709,7 @@ static void compile_variable_declaration(Compiler *comp)
while (match(scan, TOKEN_KIND_COMMA))
{
scanner_next_token(scan);
if (match(scan, TOKEN_KIND_UNDERSCORE))
if (match(scan, TOKEN_KIND_UNDERSCORE_KW))
add_placeholder(comp);
else
{
Expand Down Expand Up @@ -1335,7 +1335,7 @@ static void compile_match_statement_member(Compiler *comp)
hk_chunk_emit_opcode(chunk, HK_OP_POP);
return;
}
if (match(scan, TOKEN_KIND_UNDERSCORE))
if (match(scan, TOKEN_KIND_UNDERSCORE_KW))
{
scanner_next_token(scan);
consume(comp, TOKEN_KIND_ARROW);
Expand Down Expand Up @@ -2054,7 +2054,7 @@ static void compile_match_expression(Compiler *comp)
if (match(scan, TOKEN_KIND_COMMA))
{
scanner_next_token(scan);
if (match(scan, TOKEN_KIND_UNDERSCORE))
if (match(scan, TOKEN_KIND_UNDERSCORE_KW))
{
scanner_next_token(scan);
consume(comp, TOKEN_KIND_ARROW);
Expand Down Expand Up @@ -2084,7 +2084,7 @@ static void compile_match_expression_member(Compiler *comp)
if (match(scan, TOKEN_KIND_COMMA))
{
scanner_next_token(scan);
if (match(scan, TOKEN_KIND_UNDERSCORE))
if (match(scan, TOKEN_KIND_UNDERSCORE_KW))
{
scanner_next_token(scan);
consume(comp, TOKEN_KIND_ARROW);
Expand Down
4 changes: 2 additions & 2 deletions src/scanner.c
Original file line number Diff line number Diff line change
Expand Up @@ -491,9 +491,9 @@ void scanner_next_token(Scanner *scan)
return;
if (match_string(scan))
return;
if (match_chars(scan, "_"))
if (match_keyword(scan, "_"))
{
scan->token.kind = TOKEN_KIND_UNDERSCORE;
scan->token.kind = TOKEN_KIND_UNDERSCORE_KW;
return;
}
if (match_keyword(scan, "as"))
Expand Down
22 changes: 11 additions & 11 deletions src/scanner.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,17 +10,17 @@

typedef enum
{
TOKEN_KIND_EOF, TOKEN_KIND_DOTDOT, TOKEN_KIND_DOT, TOKEN_KIND_COMMA, TOKEN_KIND_COLON, TOKEN_KIND_SEMICOLON, TOKEN_KIND_LPAREN,
TOKEN_KIND_RPAREN, TOKEN_KIND_LBRACKET, TOKEN_KIND_RBRACKET, TOKEN_KIND_LBRACE, TOKEN_KIND_RBRACE, TOKEN_KIND_PIPEEQ, TOKEN_KIND_PIPEPIPE,
TOKEN_KIND_PIPE, TOKEN_KIND_CARETEQ, TOKEN_KIND_CARET, TOKEN_KIND_AMPEQ, TOKEN_KIND_AMPAMP, TOKEN_KIND_AMP, TOKEN_KIND_ARROW,
TOKEN_KIND_EQEQ, TOKEN_KIND_EQ, TOKEN_KIND_BANGEQ, TOKEN_KIND_BANG, TOKEN_KIND_GTEQ, TOKEN_KIND_GTGTEQ, TOKEN_KIND_GTGT,
TOKEN_KIND_GT, TOKEN_KIND_LTEQ, TOKEN_KIND_LTLTEQ, TOKEN_KIND_LTLT, TOKEN_KIND_LT, TOKEN_KIND_PLUSEQ, TOKEN_KIND_PLUSPLUS,
TOKEN_KIND_PLUS, TOKEN_KIND_DASHEQ, TOKEN_KIND_DASHDASH, TOKEN_KIND_DASH, TOKEN_KIND_STAREQ, TOKEN_KIND_STAR, TOKEN_KIND_SLASHEQ,
TOKEN_KIND_SLASH, TOKEN_KIND_TILDESLASHEQ, TOKEN_KIND_TILDESLASH, TOKEN_KIND_TILDE, TOKEN_KIND_PERCENTEQ, TOKEN_KIND_PERCENT, TOKEN_KIND_INT,
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,
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,
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,
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,
TOKEN_KIND_EOF, TOKEN_KIND_DOTDOT, TOKEN_KIND_DOT, TOKEN_KIND_COMMA, TOKEN_KIND_COLON, TOKEN_KIND_SEMICOLON, TOKEN_KIND_LPAREN,
TOKEN_KIND_RPAREN, TOKEN_KIND_LBRACKET, TOKEN_KIND_RBRACKET, TOKEN_KIND_LBRACE, TOKEN_KIND_RBRACE, TOKEN_KIND_PIPEEQ, TOKEN_KIND_PIPEPIPE,
TOKEN_KIND_PIPE, TOKEN_KIND_CARETEQ, TOKEN_KIND_CARET, TOKEN_KIND_AMPEQ, TOKEN_KIND_AMPAMP, TOKEN_KIND_AMP, TOKEN_KIND_ARROW,
TOKEN_KIND_EQEQ, TOKEN_KIND_EQ, TOKEN_KIND_BANGEQ, TOKEN_KIND_BANG, TOKEN_KIND_GTEQ, TOKEN_KIND_GTGTEQ, TOKEN_KIND_GTGT,
TOKEN_KIND_GT, TOKEN_KIND_LTEQ, TOKEN_KIND_LTLTEQ, TOKEN_KIND_LTLT, TOKEN_KIND_LT, TOKEN_KIND_PLUSEQ, TOKEN_KIND_PLUSPLUS,
TOKEN_KIND_PLUS, TOKEN_KIND_DASHEQ, TOKEN_KIND_DASHDASH, TOKEN_KIND_DASH, TOKEN_KIND_STAREQ, TOKEN_KIND_STAR, TOKEN_KIND_SLASHEQ,
TOKEN_KIND_SLASH, TOKEN_KIND_TILDESLASHEQ, TOKEN_KIND_TILDESLASH, TOKEN_KIND_TILDE, TOKEN_KIND_PERCENTEQ, TOKEN_KIND_PERCENT, TOKEN_KIND_INT,
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,
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,
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,
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,
TOKEN_KIND_NAME
} TokenKind;

Expand Down

0 comments on commit cd3bff8

Please sign in to comment.