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