Changing typespecs to be normal expressions

This commit is contained in:
Krzosa Karol
2022-05-27 12:29:51 +02:00
parent f66fd447e5
commit d8a9b318b7
4 changed files with 78 additions and 53 deletions

View File

@@ -26,6 +26,7 @@ enum Token_Kind{
TK_BitAnd,
TK_BitOr,
TK_BitXor,
TK_And,
TK_Or,
TK_FirstLogical = TK_BitAnd,
@@ -82,12 +83,12 @@ enum Token_Kind{
TK_Integer,
TK_Keyword,
TK_Pointer,
TK_Dereference,
TK_Pointer = TK_Mul,
TK_Dereference = TK_BitAnd,
// These are not produced by lexer
// but identified by parser
OPEN_SCOPE,
OPEN_SCOPE = 128,
CLOSE_SCOPE,
SAME_SCOPE,
};
@@ -443,7 +444,7 @@ lex__stream(Intern_Table *table, Array<Token> *array, Lex_Stream *s){
case '~': t.kind = TK_Neg; break;
case '?': t.kind = TK_Question; break;
case '#': t.kind = TK_Pound; break;
case '^': t.kind = TK_Pointer; break;
case '^': t.kind = TK_BitXor; break;
CASE2('!', TK_Not, TK_NotEquals);
CASE2('=', TK_Assign, TK_Equals);
CASE2('*', TK_Mul, TK_MulAssign);
@@ -697,7 +698,7 @@ token_kind_string(Token_Kind kind){
case TK_Mod: return "%"_s;
case TK_BitAnd: return "&"_s;
case TK_BitOr: return "|"_s;
case TK_Pointer: return "^"_s;
case TK_BitXor: return "^"_s;
case TK_Neg: return "~"_s;
case TK_Not: return "!"_s;
case TK_OpenParen: return "("_s;