Generating meta data

This commit is contained in:
Krzosa Karol
2022-09-29 19:14:42 +02:00
parent 256eaf8640
commit 3601e83032
5 changed files with 248 additions and 78 deletions

View File

@@ -7,57 +7,61 @@ struct Ast_Type;
struct Ast;
struct Ast_Expr;
enum Token_Kind{
TK_End,
TK_Mul,
TK_Div,
TK_Mod,
TK_LeftShift,
TK_RightShift,
TK_FirstMul = TK_Mul,
TK_LastMul = TK_RightShift,
TK_Add,
TK_Sub,
TK_FirstAdd = TK_Add,
TK_LastAdd = TK_Sub,
TK_Equals,
TK_LesserThenOrEqual,
TK_GreaterThenOrEqual,
TK_LesserThen,
TK_GreaterThen,
TK_NotEquals,
TK_FirstCompare = TK_Equals,
TK_LastCompare = TK_NotEquals,
TK_BitAnd,
TK_BitOr,
TK_BitXor,
TK_And,
TK_Or,
TK_FirstLogical = TK_BitAnd,
TK_LastLogical = TK_Or,
TK_Neg,
TK_Not,
TK_Assign,
TK_ColonAssign,
TK_DivAssign,
TK_MulAssign,
TK_ModAssign,
TK_SubAssign,
TK_AddAssign,
TK_AndAssign,
TK_OrAssign,
TK_XorAssign,
TK_LeftShiftAssign,
TK_RightShiftAssign,
TK_FirstAssign = TK_Assign,
TK_LastAssign = TK_RightShiftAssign,
/*#
import meta
for i in meta.token_kinds:
print(" " + i[0] + ",")
*/
Mul,
Div,
Mod,
LeftShift,
RightShift,
FirstMul = TK_Mul,
LastMul = TK_RightShift,
Add,
Sub,
FirstAdd = TK_Add,
LastAdd = TK_Sub,
Equals,
LesserThenOrEqual,
GreaterThenOrEqual,
LesserThen,
GreaterThen,
NotEquals,
FirstCompare = TK_Equals,
LastCompare = TK_NotEquals,
BitAnd,
BitOr,
BitXor,
And,
Or,
FirstLogical = TK_BitAnd,
LastLogical = TK_Or,
Neg,
Not,
Decrement,
Increment,
PostDecrement,
PostIncrement,
Assign,
ColonAssign,
DivAssign,
MulAssign,
ModAssign,
SubAssign,
AddAssign,
AndAssign,
OrAssign,
XorAssign,
LeftShiftAssign,
RightShiftAssign,
FirstAssign = TK_Assign,
LastAssign = TK_RightShiftAssign,
TK_OpenParen,
TK_CloseParen,
TK_OpenBrace,
@@ -71,17 +75,10 @@ enum Token_Kind{
TK_Semicolon,
TK_Dot,
TK_TwoDots,
TK_NewLine,
TK_Colon,
TK_DoubleColon,
TK_At,
TK_Decrement,
TK_Increment,
TK_PostDecrement,
TK_PostIncrement,
TK_Arrow,
TK_ExprSizeof,
TK_DocComment,
@@ -93,6 +90,7 @@ enum Token_Kind{
TK_Float,
TK_Integer,
TK_Keyword,
/*END*/
TK_Pointer = TK_Mul,
TK_Dereference = TK_BitAnd,