stage1 支持指针运算 提供新的类型检查计算
This commit is contained in:
1 parent
be41a82d55
commit
06f3884c30
12 files changed
+572
-321
No files matched your search
+15
-14
@@ -333,19 +333,20 @@ spl_tok_vec_t spl_lex(const char *source, const char *fname) {
|
||||
continue;
|
||||
}
|
||||
|
||||
emit_int: {
|
||||
spl_tok_t tok;
|
||||
memset(&tok, 0, sizeof(tok));
|
||||
tok.type = TOK_INT_LITERAL;
|
||||
tok.lexeme = num_start;
|
||||
tok.len = (usize)((source + offset) - num_start);
|
||||
tok.fname = fname;
|
||||
tok.offset = num_start - source;
|
||||
tok.line = line;
|
||||
tok.col = col - tok.len;
|
||||
vec_push(toks, tok);
|
||||
continue;
|
||||
}
|
||||
emit_int:
|
||||
{
|
||||
spl_tok_t tok;
|
||||
memset(&tok, 0, sizeof(tok));
|
||||
tok.type = TOK_INT_LITERAL;
|
||||
tok.lexeme = num_start;
|
||||
tok.len = (usize)((source + offset) - num_start);
|
||||
tok.fname = fname;
|
||||
tok.offset = num_start - source;
|
||||
tok.line = line;
|
||||
tok.col = col - tok.len;
|
||||
vec_push(toks, tok);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
/* Multi-character operators (longest match) */
|
||||
@@ -411,7 +412,7 @@ spl_tok_vec_t spl_lex(const char *source, const char *fname) {
|
||||
|
||||
/* Three-char operators first */
|
||||
TRY_OP3('<', '-', '>', TOK_ARROW_BOTH, TOK_RIGHT_ARROW, TOK_LT)
|
||||
TRY_OP3('<', '=', '>', TOK_FAT_ARROW_BOTH, TOK_RIGHT_FAT_ARROW, TOK_LT)
|
||||
TRY_OP3('<', '=', '>', TOK_FAT_ARROW_BOTH, TOK_LE, TOK_LT)
|
||||
TRY_OP3('<', '<', '=', TOK_ASSIGN_L_SH, TOK_L_SH, TOK_LT)
|
||||
TRY_OP3('>', '>', '=', TOK_ASSIGN_R_SH, TOK_R_SH, TOK_GT)
|
||||
TRY_OP3('.', '.', '.', TOK_ELLIPSIS, TOK_RANGE, TOK_DOT)
|
||||
|
||||
Reference in new issue
Block a user