mirror of
https://github.com/odin-lang/Odin.git
synced 2026-01-07 13:33:13 +00:00
Remove unused tokens
This commit is contained in:
@@ -22,7 +22,7 @@ inspect :: proc(node: ^Node, f: proc(^Node) -> bool) {
|
||||
if f(node) {
|
||||
return v;
|
||||
}
|
||||
return nil
|
||||
return nil;
|
||||
},
|
||||
data = rawptr(f),
|
||||
};
|
||||
|
||||
@@ -2599,7 +2599,7 @@ parse_operand :: proc(p: ^Parser, lhs: bool) -> ^ast.Expr {
|
||||
case .Asm:
|
||||
tok := expect_token(p, .Asm);
|
||||
|
||||
param_types: [dynamic]^ast.Expr
|
||||
param_types: [dynamic]^ast.Expr;
|
||||
return_type: ^ast.Expr;
|
||||
if allow_token(p, .Open_Paren) {
|
||||
for p.curr_tok.kind != .Close_Paren && p.curr_tok.kind != .EOF {
|
||||
|
||||
@@ -34,122 +34,120 @@ Token_Kind :: enum u32 {
|
||||
Comment,
|
||||
|
||||
B_Literal_Begin,
|
||||
Ident,
|
||||
Integer,
|
||||
Float,
|
||||
Imag,
|
||||
Rune,
|
||||
String,
|
||||
Ident, // main
|
||||
Integer, // 12345
|
||||
Float, // 123.45
|
||||
Imag, // 123.45i
|
||||
Rune, // 'a'
|
||||
String, // "abc"
|
||||
B_Literal_End,
|
||||
|
||||
B_Operator_Begin,
|
||||
Eq,
|
||||
Not,
|
||||
Hash,
|
||||
At,
|
||||
Dollar,
|
||||
Pointer,
|
||||
Question,
|
||||
Add,
|
||||
Sub,
|
||||
Mul,
|
||||
Quo,
|
||||
Mod,
|
||||
Mod_Mod,
|
||||
And,
|
||||
Or,
|
||||
Xor,
|
||||
And_Not,
|
||||
Shl,
|
||||
Shr,
|
||||
Eq, // =
|
||||
Not, // !
|
||||
Hash, // #
|
||||
At, // @
|
||||
Dollar, // $
|
||||
Pointer, // ^
|
||||
Question, // ?
|
||||
Add, // +
|
||||
Sub, // -
|
||||
Mul, // *
|
||||
Quo, // /
|
||||
Mod, // %
|
||||
Mod_Mod, // %%
|
||||
And, // &
|
||||
Or, // |
|
||||
Xor, // ~
|
||||
And_Not, // &~
|
||||
Shl, // <<
|
||||
Shr, // >>
|
||||
|
||||
Cmp_And,
|
||||
Cmp_Or,
|
||||
Cmp_And, // &&
|
||||
Cmp_Or, // ||
|
||||
|
||||
B_Assign_Op_Begin,
|
||||
Add_Eq,
|
||||
Sub_Eq,
|
||||
Mul_Eq,
|
||||
Quo_Eq,
|
||||
Mod_Eq,
|
||||
Mod_Mod_Eq,
|
||||
And_Eq,
|
||||
Or_Eq,
|
||||
Xor_Eq,
|
||||
And_Not_Eq,
|
||||
Shl_Eq,
|
||||
Shr_Eq,
|
||||
Cmp_And_Eq,
|
||||
Cmp_Or_Eq,
|
||||
Add_Eq, // +=
|
||||
Sub_Eq, // -=
|
||||
Mul_Eq, // *=
|
||||
Quo_Eq, // /=
|
||||
Mod_Eq, // %=
|
||||
Mod_Mod_Eq, // %%=
|
||||
And_Eq, // &=
|
||||
Or_Eq, // |=
|
||||
Xor_Eq, // ~=
|
||||
And_Not_Eq, // &~=
|
||||
Shl_Eq, // <<=
|
||||
Shr_Eq, // >>=
|
||||
Cmp_And_Eq, // &&=
|
||||
Cmp_Or_Eq, // ||=
|
||||
B_Assign_Op_End,
|
||||
|
||||
Arrow_Right,
|
||||
Arrow_Left,
|
||||
Double_Arrow_Right,
|
||||
Undef,
|
||||
Arrow_Right, // ->
|
||||
Undef, // ---
|
||||
|
||||
B_Comparison_Begin,
|
||||
Cmp_Eq,
|
||||
Not_Eq,
|
||||
Lt,
|
||||
Gt,
|
||||
Lt_Eq,
|
||||
Gt_Eq,
|
||||
Cmp_Eq, // ==
|
||||
Not_Eq, // !=
|
||||
Lt, // <
|
||||
Gt, // >
|
||||
Lt_Eq, // <=
|
||||
Gt_Eq, // >=
|
||||
B_Comparison_End,
|
||||
|
||||
Open_Paren,
|
||||
Close_Paren,
|
||||
Open_Bracket,
|
||||
Close_Bracket,
|
||||
Open_Brace,
|
||||
Close_Brace,
|
||||
Colon,
|
||||
Semicolon,
|
||||
Period,
|
||||
Comma,
|
||||
Ellipsis,
|
||||
Range_Half,
|
||||
Back_Slash,
|
||||
Open_Paren, // (
|
||||
Close_Paren, // )
|
||||
Open_Bracket, // [
|
||||
Close_Bracket, // ]
|
||||
Open_Brace, // {
|
||||
Close_Brace, // }
|
||||
Colon, // :
|
||||
Semicolon, // ;
|
||||
Period, // .
|
||||
Comma, // ,
|
||||
Ellipsis, // ..
|
||||
Range_Half, // ..<
|
||||
Back_Slash, // \
|
||||
B_Operator_End,
|
||||
|
||||
B_Keyword_Begin,
|
||||
Import,
|
||||
Foreign,
|
||||
Package,
|
||||
Typeid,
|
||||
When,
|
||||
Where,
|
||||
If,
|
||||
Else,
|
||||
For,
|
||||
Switch,
|
||||
In,
|
||||
Not_In,
|
||||
Do,
|
||||
Case,
|
||||
Break,
|
||||
Continue,
|
||||
Fallthrough,
|
||||
Defer,
|
||||
Return,
|
||||
Proc,
|
||||
Struct,
|
||||
Union,
|
||||
Enum,
|
||||
Bit_Field,
|
||||
Bit_Set,
|
||||
Map,
|
||||
Dynamic,
|
||||
Auto_Cast,
|
||||
Cast,
|
||||
Transmute,
|
||||
Distinct,
|
||||
Opaque,
|
||||
Using,
|
||||
Inline,
|
||||
No_Inline,
|
||||
Context,
|
||||
Asm,
|
||||
Import, // import
|
||||
Foreign, // foreign
|
||||
Package, // package
|
||||
Typeid, // typeid
|
||||
When, // when
|
||||
Where, // where
|
||||
If, // if
|
||||
Else, // else
|
||||
For, // for
|
||||
Switch, // switch
|
||||
In, // in
|
||||
Not_In, // not_in
|
||||
Do, // do
|
||||
Case, // case
|
||||
Break, // break
|
||||
Continue, // continue
|
||||
Fallthrough, // fallthrough
|
||||
Defer, // defer
|
||||
Return, // return
|
||||
Proc, // proc
|
||||
Struct, // struct
|
||||
Union, // union
|
||||
Enum, // enum
|
||||
Bit_Field, // bit_field
|
||||
Bit_Set, // bit_set
|
||||
Map, // map
|
||||
Dynamic, // dynamic
|
||||
Auto_Cast, // auto_cast
|
||||
Cast, // cast
|
||||
Transmute, // transmute
|
||||
Distinct, // distinct
|
||||
Opaque, // opaque
|
||||
Using, // using
|
||||
Inline, // inline
|
||||
No_Inline, // no_inline
|
||||
Context, // context
|
||||
Asm, // asm
|
||||
B_Keyword_End,
|
||||
|
||||
COUNT,
|
||||
@@ -214,8 +212,6 @@ tokens := [Token_Kind.COUNT]string {
|
||||
"",
|
||||
|
||||
"->",
|
||||
"<-",
|
||||
"=>",
|
||||
"---",
|
||||
|
||||
"",
|
||||
|
||||
@@ -563,13 +563,7 @@ scan :: proc(t: ^Tokenizer) -> Token {
|
||||
insert_semicolon = true;
|
||||
kind = .String;
|
||||
lit = scan_raw_string(t);
|
||||
case '=':
|
||||
if t.ch == '>' {
|
||||
advance_rune(t);
|
||||
kind = .Double_Arrow_Right;
|
||||
} else {
|
||||
kind = switch2(t, .Eq, .Cmp_Eq);
|
||||
}
|
||||
case '=': kind = switch2(t, .Eq, .Cmp_Eq);
|
||||
case '!': kind = switch2(t, .Not, .Not_Eq);
|
||||
case '#':
|
||||
kind = .Hash;
|
||||
@@ -615,13 +609,7 @@ scan :: proc(t: ^Tokenizer) -> Token {
|
||||
}
|
||||
case '|': kind = switch3(t, .Or, .Or_Eq, '|', .Cmp_Or);
|
||||
case '~': kind = .Xor;
|
||||
case '<':
|
||||
if t.ch == '-' {
|
||||
advance_rune(t);
|
||||
kind = .Arrow_Left;
|
||||
} else {
|
||||
kind = switch4(t, .Lt, .Lt_Eq, '<', .Shl, .Shl_Eq);
|
||||
}
|
||||
case '<': kind = switch4(t, .Lt, .Lt_Eq, '<', .Shl, .Shl_Eq);
|
||||
case '>': kind = switch4(t, .Gt, .Gt_Eq, '>', .Shr,.Shr_Eq);
|
||||
|
||||
case '.':
|
||||
|
||||
@@ -52,8 +52,6 @@ TOKEN_KIND(Token__AssignOpBegin, ""), \
|
||||
TOKEN_KIND(Token_CmpOrEq, "||="), \
|
||||
TOKEN_KIND(Token__AssignOpEnd, ""), \
|
||||
TOKEN_KIND(Token_ArrowRight, "->"), \
|
||||
TOKEN_KIND(Token_ArrowLeft, "<-"), \
|
||||
TOKEN_KIND(Token_DoubleArrowRight, "=>"), \
|
||||
TOKEN_KIND(Token_Undef, "---"), \
|
||||
\
|
||||
TOKEN_KIND(Token__ComparisonBegin, ""), \
|
||||
@@ -1160,10 +1158,7 @@ void tokenizer_get_token(Tokenizer *t, Token *token) {
|
||||
break;
|
||||
case '=':
|
||||
token->kind = Token_Eq;
|
||||
if (t->curr_rune == '>') {
|
||||
advance_to_next_rune(t);
|
||||
token->kind = Token_DoubleArrowRight;
|
||||
} else if (t->curr_rune == '=') {
|
||||
if (t->curr_rune == '=') {
|
||||
advance_to_next_rune(t);
|
||||
token->kind = Token_CmpEq;
|
||||
}
|
||||
@@ -1259,10 +1254,7 @@ void tokenizer_get_token(Tokenizer *t, Token *token) {
|
||||
|
||||
case '<':
|
||||
token->kind = Token_Lt;
|
||||
if (t->curr_rune == '-') {
|
||||
advance_to_next_rune(t);
|
||||
token->kind = Token_ArrowLeft;
|
||||
} else if (t->curr_rune == '=') {
|
||||
if (t->curr_rune == '=') {
|
||||
token->kind = Token_LtEq;
|
||||
advance_to_next_rune(t);
|
||||
} else if (t->curr_rune == '<') {
|
||||
|
||||
Reference in New Issue
Block a user