mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-08-08 06:48:41 +00:00
const/volatile/unsigned/signed type operators
This commit is contained in:
@@ -2486,6 +2486,64 @@ e2_compile_from_expr(Arena *arena, E2_CompileState *state, E2_IRNode *resolve_re
|
|||||||
scratch_end(scratch);
|
scratch_end(scratch);
|
||||||
}break;
|
}break;
|
||||||
|
|
||||||
|
//- rjf: const type operator
|
||||||
|
case E2_ExprKind_Const:
|
||||||
|
{
|
||||||
|
E2_TypeKey const_type_key = e2_type_key_cons(E2_TypeKind_Modifier, .flags = E2_TypeFlag_Const, .direct = lhs->type_key);
|
||||||
|
finished_root = e2_irnode(arena);
|
||||||
|
finished_root->type_key = const_type_key;
|
||||||
|
}break;
|
||||||
|
|
||||||
|
//- rjf: volatile type operator
|
||||||
|
case E2_ExprKind_Volatile:
|
||||||
|
{
|
||||||
|
E2_TypeKey volatile_type_key = e2_type_key_cons(E2_TypeKind_Modifier, .flags = E2_TypeFlag_Volatile, .direct = lhs->type_key);
|
||||||
|
finished_root = e2_irnode(arena);
|
||||||
|
finished_root->type_key = volatile_type_key;
|
||||||
|
}break;
|
||||||
|
|
||||||
|
//- rjf: unsigned type operator
|
||||||
|
case E2_ExprKind_Unsigned:
|
||||||
|
{
|
||||||
|
E2_TypeKey unsigned_type_key = lhs->type_key;
|
||||||
|
E2_TypeKey int_type_key = e2_type_key_undecorate(lhs->type_key);
|
||||||
|
E2_TypeKind int_type_kind = e2_type_kind_from_key(int_type_key);
|
||||||
|
switch(int_type_kind)
|
||||||
|
{
|
||||||
|
default:{}break;
|
||||||
|
case E2_TypeKind_S8: {unsigned_type_key = e2_type_key_basic(E2_TypeKind_U8);}break;
|
||||||
|
case E2_TypeKind_S16: {unsigned_type_key = e2_type_key_basic(E2_TypeKind_U16);}break;
|
||||||
|
case E2_TypeKind_S32: {unsigned_type_key = e2_type_key_basic(E2_TypeKind_U32);}break;
|
||||||
|
case E2_TypeKind_S64: {unsigned_type_key = e2_type_key_basic(E2_TypeKind_U64);}break;
|
||||||
|
case E2_TypeKind_S128:{unsigned_type_key = e2_type_key_basic(E2_TypeKind_U128);}break;
|
||||||
|
case E2_TypeKind_S256:{unsigned_type_key = e2_type_key_basic(E2_TypeKind_U256);}break;
|
||||||
|
case E2_TypeKind_S512:{unsigned_type_key = e2_type_key_basic(E2_TypeKind_U512);}break;
|
||||||
|
}
|
||||||
|
finished_root = e2_irnode(arena);
|
||||||
|
finished_root->type_key = unsigned_type_key;
|
||||||
|
}break;
|
||||||
|
|
||||||
|
//- rjf: signed type operator
|
||||||
|
case E2_ExprKind_Signed:
|
||||||
|
{
|
||||||
|
E2_TypeKey signed_type_key = lhs->type_key;
|
||||||
|
E2_TypeKey int_type_key = e2_type_key_undecorate(lhs->type_key);
|
||||||
|
E2_TypeKind int_type_kind = e2_type_kind_from_key(int_type_key);
|
||||||
|
switch(int_type_kind)
|
||||||
|
{
|
||||||
|
default:{}break;
|
||||||
|
case E2_TypeKind_U8: {signed_type_key = e2_type_key_basic(E2_TypeKind_S8);}break;
|
||||||
|
case E2_TypeKind_U16: {signed_type_key = e2_type_key_basic(E2_TypeKind_S16);}break;
|
||||||
|
case E2_TypeKind_U32: {signed_type_key = e2_type_key_basic(E2_TypeKind_S32);}break;
|
||||||
|
case E2_TypeKind_U64: {signed_type_key = e2_type_key_basic(E2_TypeKind_S64);}break;
|
||||||
|
case E2_TypeKind_U128:{signed_type_key = e2_type_key_basic(E2_TypeKind_S128);}break;
|
||||||
|
case E2_TypeKind_U256:{signed_type_key = e2_type_key_basic(E2_TypeKind_S256);}break;
|
||||||
|
case E2_TypeKind_U512:{signed_type_key = e2_type_key_basic(E2_TypeKind_S512);}break;
|
||||||
|
}
|
||||||
|
finished_root = e2_irnode(arena);
|
||||||
|
finished_root->type_key = signed_type_key;
|
||||||
|
}break;
|
||||||
|
|
||||||
//- rjf: leaf numerics
|
//- rjf: leaf numerics
|
||||||
case E2_ExprKind_Numeric:
|
case E2_ExprKind_Numeric:
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -147,11 +147,19 @@ struct E2_TypeKeyList
|
|||||||
////////////////////////////////
|
////////////////////////////////
|
||||||
//~ rjf: Constructed Type Cache Types
|
//~ rjf: Constructed Type Cache Types
|
||||||
|
|
||||||
|
typedef U32 E2_TypeFlags;
|
||||||
|
enum
|
||||||
|
{
|
||||||
|
E2_TypeFlag_Const = (1<<0),
|
||||||
|
E2_TypeFlag_Volatile = (1<<1),
|
||||||
|
};
|
||||||
|
|
||||||
typedef struct E2_ConsTypeParams E2_ConsTypeParams;
|
typedef struct E2_ConsTypeParams E2_ConsTypeParams;
|
||||||
struct E2_ConsTypeParams
|
struct E2_ConsTypeParams
|
||||||
{
|
{
|
||||||
Arch arch;
|
Arch arch;
|
||||||
E2_TypeKind kind;
|
E2_TypeKind kind;
|
||||||
|
E2_TypeFlags flags;
|
||||||
String8 name;
|
String8 name;
|
||||||
E2_TypeKey direct;
|
E2_TypeKey direct;
|
||||||
U64 count;
|
U64 count;
|
||||||
|
|||||||
+55
-42
@@ -4,15 +4,24 @@
|
|||||||
@table(name allow_type_operands is_type_expression is_first_operand_type_maybe target_operand_count)
|
@table(name allow_type_operands is_type_expression is_first_operand_type_maybe target_operand_count)
|
||||||
E2_ExprKindTable:
|
E2_ExprKindTable:
|
||||||
{
|
{
|
||||||
|
//- rjf: leaves
|
||||||
{Identifier 0 0 0 0 }
|
{Identifier 0 0 0 0 }
|
||||||
{MacroArg 0 0 0 0 }
|
{MacroArg 0 0 0 0 }
|
||||||
{TypeIdentifier 0 1 0 0 }
|
{TypeIdentifier 0 1 0 0 }
|
||||||
{Ptr 1 1 1 1 }
|
|
||||||
{Array 1 1 1 2 }
|
|
||||||
{Function 1 1 1 0xffffffffffffffffull}
|
|
||||||
{Numeric 0 0 0 0 }
|
{Numeric 0 0 0 0 }
|
||||||
{StringLiteral 0 0 0 0 }
|
{StringLiteral 0 0 0 0 }
|
||||||
{CharLiteral 0 0 0 0 }
|
{CharLiteral 0 0 0 0 }
|
||||||
|
|
||||||
|
//- rjf: type operators
|
||||||
|
{Ptr 1 1 1 1 }
|
||||||
|
{Array 1 1 1 2 }
|
||||||
|
{Function 1 1 1 0xffffffffffffffffull}
|
||||||
|
{Const 1 1 1 1 }
|
||||||
|
{Volatile 1 1 1 1 }
|
||||||
|
{Unsigned 1 1 1 1 }
|
||||||
|
{Signed 1 1 1 1 }
|
||||||
|
|
||||||
|
//- rjf: operators
|
||||||
{Dot 1 0 0 1 }
|
{Dot 1 0 0 1 }
|
||||||
{Index 0 0 0 2 }
|
{Index 0 0 0 2 }
|
||||||
{Call 0 0 0 0xffffffffffffffffull}
|
{Call 0 0 0 0xffffffffffffffffull}
|
||||||
@@ -117,45 +126,49 @@ E2_LangKindTable:
|
|||||||
@table(name parse_kind precedence pre sep pos chain reverse_children)
|
@table(name parse_kind precedence pre sep pos chain reverse_children)
|
||||||
E2_ExprKindParseInfoTable_CLike:
|
E2_ExprKindParseInfoTable_CLike:
|
||||||
{
|
{
|
||||||
{Dot Postfix 1 "" "." "" "" 0}
|
{Dot Postfix 1 "" "." "" "" 0}
|
||||||
{Index Postfix 1 "" "[" "]" "" 0}
|
{Index Postfix 1 "" "[" "]" "" 0}
|
||||||
{Call Postfix 1 "" "(" ")" "," 0}
|
{Call Postfix 1 "" "(" ")" "," 0}
|
||||||
{Function Postfix 1 "" "(" ")" "," 0}
|
{Function Postfix 1 "" "(" ")" "," 0}
|
||||||
{DerefAsm Prefix 1 "[" "" "]" "" 0}
|
{DerefAsm Prefix 1 "[" "" "]" "" 0}
|
||||||
{SizeOf Prefix 1 "sizeof " "" "" "" 0}
|
{Unsigned Prefix 1 "unsigned " "" "" "" 0}
|
||||||
{TypeOf Prefix 1 "typeof " "" "" "" 0}
|
{Signed Prefix 1 "signed " "" "" "" 0}
|
||||||
{SizeOf Prefix 1 "size_of " "" "" "" 0}
|
{Volatile Prefix 1 "volatile " "" "" "" 0}
|
||||||
{TypeOf Prefix 1 "type_of " "" "" "" 0}
|
{Const Prefix 1 "const " "" "" "" 0}
|
||||||
{Cast Prefix 1 "" "" "" "" 0}
|
{SizeOf Prefix 1 "sizeof " "" "" "" 0}
|
||||||
{Deref Prefix 2 "*" "" "" "" 0}
|
{TypeOf Prefix 1 "typeof " "" "" "" 0}
|
||||||
{Address Prefix 2 "&" "" "" "" 0}
|
{SizeOf Prefix 1 "size_of " "" "" "" 0}
|
||||||
{Pos Prefix 2 "+" "" "" "" 0}
|
{TypeOf Prefix 1 "type_of " "" "" "" 0}
|
||||||
{Neg Prefix 2 "-" "" "" "" 0}
|
{Cast Prefix 1 "" "" "" "" 0}
|
||||||
{LogNot Prefix 2 "!" "" "" "" 0}
|
{Deref Prefix 2 "*" "" "" "" 0}
|
||||||
{BitNot Prefix 2 "~" "" "" "" 0}
|
{Address Prefix 2 "&" "" "" "" 0}
|
||||||
{Cast Prefix 1 "cast " "" "" "" 0}
|
{Pos Prefix 2 "+" "" "" "" 0}
|
||||||
{Cast Postfix 1 "" "as" "" "" 1}
|
{Neg Prefix 2 "-" "" "" "" 0}
|
||||||
{Ptr Postfix 1 "" "" "*" "" 0}
|
{LogNot Prefix 2 "!" "" "" "" 0}
|
||||||
{Array Postfix 1 "" "[" "]" "" 0}
|
{BitNot Prefix 2 "~" "" "" "" 0}
|
||||||
{Mul Postfix 3 "" "*" "" "" 0}
|
{Cast Prefix 1 "cast " "" "" "" 0}
|
||||||
{Div Postfix 3 "" "/" "" "" 0}
|
{Cast Postfix 1 "" "as" "" "" 1}
|
||||||
{Mod Postfix 3 "" "%" "" "" 0}
|
{Ptr Postfix 1 "" "" "*" "" 0}
|
||||||
{Add Postfix 4 "" "+" "" "" 0}
|
{Array Postfix 1 "" "[" "]" "" 0}
|
||||||
{Sub Postfix 4 "" "-" "" "" 0}
|
{Mul Postfix 3 "" "*" "" "" 0}
|
||||||
{LShift Postfix 5 "" "<<" "" "" 0}
|
{Div Postfix 3 "" "/" "" "" 0}
|
||||||
{RShift Postfix 5 "" ">>" "" "" 0}
|
{Mod Postfix 3 "" "%" "" "" 0}
|
||||||
{Less Postfix 6 "" "<" "" "" 0}
|
{Add Postfix 4 "" "+" "" "" 0}
|
||||||
{LtEq Postfix 6 "" "<=" "" "" 0}
|
{Sub Postfix 4 "" "-" "" "" 0}
|
||||||
{Grtr Postfix 6 "" ">" "" "" 0}
|
{LShift Postfix 5 "" "<<" "" "" 0}
|
||||||
{GrEq Postfix 6 "" ">=" "" "" 0}
|
{RShift Postfix 5 "" ">>" "" "" 0}
|
||||||
{EqEq Postfix 7 "" "==" "" "" 0}
|
{Less Postfix 6 "" "<" "" "" 0}
|
||||||
{NtEq Postfix 7 "" "!=" "" "" 0}
|
{LtEq Postfix 6 "" "<=" "" "" 0}
|
||||||
{BitAnd Postfix 8 "" "&" "" "" 0}
|
{Grtr Postfix 6 "" ">" "" "" 0}
|
||||||
{BitXor Postfix 9 "" "^" "" "" 0}
|
{GrEq Postfix 6 "" ">=" "" "" 0}
|
||||||
{BitOr Postfix 10 "" "|" "" "" 0}
|
{EqEq Postfix 7 "" "==" "" "" 0}
|
||||||
{LogAnd Postfix 11 "" "&&" "" "" 0}
|
{NtEq Postfix 7 "" "!=" "" "" 0}
|
||||||
{LogOr Postfix 12 "" "||" "" "" 0}
|
{BitAnd Postfix 8 "" "&" "" "" 0}
|
||||||
{Cond Postfix 14 "" "?" "" ":" 0}
|
{BitXor Postfix 9 "" "^" "" "" 0}
|
||||||
|
{BitOr Postfix 10 "" "|" "" "" 0}
|
||||||
|
{LogAnd Postfix 11 "" "&&" "" "" 0}
|
||||||
|
{LogOr Postfix 12 "" "||" "" "" 0}
|
||||||
|
{Cond Postfix 14 "" "?" "" ":" 0}
|
||||||
}
|
}
|
||||||
|
|
||||||
@data(E2_ExprKindParseInfo) e2_expr_kind_parse_info_table__clike:
|
@data(E2_ExprKindParseInfo) e2_expr_kind_parse_info_table__clike:
|
||||||
|
|||||||
@@ -4,19 +4,23 @@
|
|||||||
//- GENERATED CODE
|
//- GENERATED CODE
|
||||||
|
|
||||||
C_LINKAGE_BEGIN
|
C_LINKAGE_BEGIN
|
||||||
B8 e2_expr_kind_allow_type_operands_table[44] =
|
B8 e2_expr_kind_allow_type_operands_table[48] =
|
||||||
{
|
{
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
1,
|
|
||||||
1,
|
|
||||||
1,
|
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
1,
|
1,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
1,
|
1,
|
||||||
@@ -52,18 +56,22 @@ B8 e2_expr_kind_allow_type_operands_table[44] =
|
|||||||
1,
|
1,
|
||||||
};
|
};
|
||||||
|
|
||||||
B8 e2_expr_kind_is_type_expr_table[44] =
|
B8 e2_expr_kind_is_type_expr_table[48] =
|
||||||
{
|
{
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
1,
|
1,
|
||||||
1,
|
|
||||||
1,
|
|
||||||
1,
|
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
@@ -100,18 +108,22 @@ B8 e2_expr_kind_is_type_expr_table[44] =
|
|||||||
0,
|
0,
|
||||||
};
|
};
|
||||||
|
|
||||||
B8 e2_expr_kind_is_first_operand_type_maybe_table[44] =
|
B8 e2_expr_kind_is_first_operand_type_maybe_table[48] =
|
||||||
{
|
{
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
1,
|
|
||||||
1,
|
|
||||||
1,
|
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
@@ -148,18 +160,22 @@ B8 e2_expr_kind_is_first_operand_type_maybe_table[44] =
|
|||||||
0,
|
0,
|
||||||
};
|
};
|
||||||
|
|
||||||
U64 e2_expr_kind_target_operand_count_table[44] =
|
U64 e2_expr_kind_target_operand_count_table[48] =
|
||||||
{
|
{
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
1,
|
1,
|
||||||
2,
|
2,
|
||||||
0xffffffffffffffffull,
|
0xffffffffffffffffull,
|
||||||
0,
|
1,
|
||||||
0,
|
1,
|
||||||
0,
|
1,
|
||||||
|
1,
|
||||||
1,
|
1,
|
||||||
2,
|
2,
|
||||||
0xffffffffffffffffull,
|
0xffffffffffffffffull,
|
||||||
@@ -201,13 +217,17 @@ E2_LangInfo e2_lang_kind_info_table[1] =
|
|||||||
{ArrayCount(e2_expr_kind_parse_info_table__clike), (e2_expr_kind_parse_info_table__clike)},
|
{ArrayCount(e2_expr_kind_parse_info_table__clike), (e2_expr_kind_parse_info_table__clike)},
|
||||||
};
|
};
|
||||||
|
|
||||||
E2_ExprKindParseInfo e2_expr_kind_parse_info_table__clike[39] =
|
E2_ExprKindParseInfo e2_expr_kind_parse_info_table__clike[43] =
|
||||||
{
|
{
|
||||||
{E2_ExprKind_Dot, E2_ExprParseKind_Postfix, 1, 0, str8_lit_comp(""), str8_lit_comp("."), str8_lit_comp(""), str8_lit_comp("")},
|
{E2_ExprKind_Dot, E2_ExprParseKind_Postfix, 1, 0, str8_lit_comp(""), str8_lit_comp("."), str8_lit_comp(""), str8_lit_comp("")},
|
||||||
{E2_ExprKind_Index, E2_ExprParseKind_Postfix, 1, 0, str8_lit_comp(""), str8_lit_comp("["), str8_lit_comp("]"), str8_lit_comp("")},
|
{E2_ExprKind_Index, E2_ExprParseKind_Postfix, 1, 0, str8_lit_comp(""), str8_lit_comp("["), str8_lit_comp("]"), str8_lit_comp("")},
|
||||||
{E2_ExprKind_Call, E2_ExprParseKind_Postfix, 1, 0, str8_lit_comp(""), str8_lit_comp("("), str8_lit_comp(")"), str8_lit_comp(",")},
|
{E2_ExprKind_Call, E2_ExprParseKind_Postfix, 1, 0, str8_lit_comp(""), str8_lit_comp("("), str8_lit_comp(")"), str8_lit_comp(",")},
|
||||||
{E2_ExprKind_Function, E2_ExprParseKind_Postfix, 1, 0, str8_lit_comp(""), str8_lit_comp("("), str8_lit_comp(")"), str8_lit_comp(",")},
|
{E2_ExprKind_Function, E2_ExprParseKind_Postfix, 1, 0, str8_lit_comp(""), str8_lit_comp("("), str8_lit_comp(")"), str8_lit_comp(",")},
|
||||||
{E2_ExprKind_DerefAsm, E2_ExprParseKind_Prefix, 1, 0, str8_lit_comp("["), str8_lit_comp(""), str8_lit_comp("]"), str8_lit_comp("")},
|
{E2_ExprKind_DerefAsm, E2_ExprParseKind_Prefix, 1, 0, str8_lit_comp("["), str8_lit_comp(""), str8_lit_comp("]"), str8_lit_comp("")},
|
||||||
|
{E2_ExprKind_Unsigned, E2_ExprParseKind_Prefix, 1, 0, str8_lit_comp("unsigned "), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("")},
|
||||||
|
{E2_ExprKind_Signed, E2_ExprParseKind_Prefix, 1, 0, str8_lit_comp("signed "), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("")},
|
||||||
|
{E2_ExprKind_Volatile, E2_ExprParseKind_Prefix, 1, 0, str8_lit_comp("volatile "), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("")},
|
||||||
|
{E2_ExprKind_Const, E2_ExprParseKind_Prefix, 1, 0, str8_lit_comp("const "), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("")},
|
||||||
{E2_ExprKind_SizeOf, E2_ExprParseKind_Prefix, 1, 0, str8_lit_comp("sizeof "), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("")},
|
{E2_ExprKind_SizeOf, E2_ExprParseKind_Prefix, 1, 0, str8_lit_comp("sizeof "), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("")},
|
||||||
{E2_ExprKind_TypeOf, E2_ExprParseKind_Prefix, 1, 0, str8_lit_comp("typeof "), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("")},
|
{E2_ExprKind_TypeOf, E2_ExprParseKind_Prefix, 1, 0, str8_lit_comp("typeof "), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("")},
|
||||||
{E2_ExprKind_SizeOf, E2_ExprParseKind_Prefix, 1, 0, str8_lit_comp("size_of "), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("")},
|
{E2_ExprKind_SizeOf, E2_ExprParseKind_Prefix, 1, 0, str8_lit_comp("size_of "), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp("")},
|
||||||
|
|||||||
@@ -12,12 +12,16 @@ E2_ExprKind_Null,
|
|||||||
E2_ExprKind_Identifier,
|
E2_ExprKind_Identifier,
|
||||||
E2_ExprKind_MacroArg,
|
E2_ExprKind_MacroArg,
|
||||||
E2_ExprKind_TypeIdentifier,
|
E2_ExprKind_TypeIdentifier,
|
||||||
E2_ExprKind_Ptr,
|
|
||||||
E2_ExprKind_Array,
|
|
||||||
E2_ExprKind_Function,
|
|
||||||
E2_ExprKind_Numeric,
|
E2_ExprKind_Numeric,
|
||||||
E2_ExprKind_StringLiteral,
|
E2_ExprKind_StringLiteral,
|
||||||
E2_ExprKind_CharLiteral,
|
E2_ExprKind_CharLiteral,
|
||||||
|
E2_ExprKind_Ptr,
|
||||||
|
E2_ExprKind_Array,
|
||||||
|
E2_ExprKind_Function,
|
||||||
|
E2_ExprKind_Const,
|
||||||
|
E2_ExprKind_Volatile,
|
||||||
|
E2_ExprKind_Unsigned,
|
||||||
|
E2_ExprKind_Signed,
|
||||||
E2_ExprKind_Dot,
|
E2_ExprKind_Dot,
|
||||||
E2_ExprKind_Index,
|
E2_ExprKind_Index,
|
||||||
E2_ExprKind_Call,
|
E2_ExprKind_Call,
|
||||||
@@ -159,12 +163,12 @@ E2_ExprKindParseInfo *expr_kind_parse_infos;
|
|||||||
};
|
};
|
||||||
|
|
||||||
C_LINKAGE_BEGIN
|
C_LINKAGE_BEGIN
|
||||||
extern B8 e2_expr_kind_allow_type_operands_table[44];
|
extern B8 e2_expr_kind_allow_type_operands_table[48];
|
||||||
extern B8 e2_expr_kind_is_type_expr_table[44];
|
extern B8 e2_expr_kind_is_type_expr_table[48];
|
||||||
extern B8 e2_expr_kind_is_first_operand_type_maybe_table[44];
|
extern B8 e2_expr_kind_is_first_operand_type_maybe_table[48];
|
||||||
extern U64 e2_expr_kind_target_operand_count_table[44];
|
extern U64 e2_expr_kind_target_operand_count_table[48];
|
||||||
extern E2_LangInfo e2_lang_kind_info_table[1];
|
extern E2_LangInfo e2_lang_kind_info_table[1];
|
||||||
extern E2_ExprKindParseInfo e2_expr_kind_parse_info_table__clike[39];
|
extern E2_ExprKindParseInfo e2_expr_kind_parse_info_table__clike[43];
|
||||||
extern U8 e2_type_kind_basic_byte_size_table[61];
|
extern U8 e2_type_kind_basic_byte_size_table[61];
|
||||||
extern String8 e2_type_kind_basic_string_table[61];
|
extern String8 e2_type_kind_basic_string_table[61];
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user