Clang format + meta fix

This commit is contained in:
Krzosa Karol
2023-03-29 09:24:30 +02:00
parent c97bb4272b
commit e13b4b7f25
7 changed files with 40 additions and 34 deletions

View File

@@ -36,16 +36,16 @@ static void core_init_compiler(Core_Ctx *ctx, Allocator *allocator) {
ctx->interns = intern_table_make(ctx->perm, ctx->heap, 2048);
/*#import meta
for i in meta.keywords:
for i in meta.keywords:
print(f'pctx->keyword_{i.lower()} = pctx->intern("{i}"_s);')
print(f'pctx->interns.first_keyword = pctx->keyword_{meta.keywords[0].lower()}.str;')
print(f'pctx->interns.last_keyword = pctx->keyword_{meta.keywords[-1].lower()}.str;')
print(f'pctx->interns.first_keyword = pctx->keyword_{meta.keywords[0].lower()}.str;')
print(f'pctx->interns.last_keyword = pctx->keyword_{meta.keywords[-1].lower()}.str;')
for i in meta.interns:
for i in meta.interns:
print(f'pctx->intern_{i.lower()} = pctx->intern("{i}"_s);')
index = 0
for i in meta.token_simple_expr:
index = 0
for i in meta.token_simple_expr:
if i[1] != "SPECIAL":
print(f'pctx->op_info_table[{index}] = {{pctx->intern("{i[1]}"_s), "{i[0].upper()}"_s, TK_{i[0]}, {int(i[2]&meta.BINARY_EXPR>0)}, {int(i[2]&meta.UNARY_EXPR>0)}}};')
index += 1

View File

@@ -89,8 +89,8 @@ struct Core_Ctx {
Token null_token;
/*#import meta
for i in meta.keywords: print(f'Intern_String keyword_{i.lower()};')
for i in meta.interns: print(f'Intern_String intern_{i.lower()};')
for i in meta.keywords: print(f'Intern_String keyword_{i.lower()};')
for i in meta.interns: print(f'Intern_String intern_{i.lower()};')
*/
Intern_String keyword_struct;
Intern_String keyword_union;
@@ -122,11 +122,11 @@ struct Core_Ctx {
/*END*/
/*#import meta
size = 0
for i in meta.token_simple_expr:
size = 0
for i in meta.token_simple_expr:
if i[1] != "SPECIAL":
size += 1
print(f"Ast_Operator_Info op_info_table[{size}];")
print(f"Ast_Operator_Info op_info_table[{size}];")
*/
Ast_Operator_Info op_info_table[20];
/*END*/

View File

@@ -59,8 +59,8 @@ struct List {
enum Token_Kind {
TK_End,
/*#
import meta
for i in meta.token_kinds:
import meta
for i in meta.token_kinds:
print(" TK_" + i[0] + ",")
*/
TK_Mul,
@@ -227,7 +227,7 @@ enum Ast_Type_Kind {
struct Value {
/*#import meta
print(meta.value_struct_content)
print(meta.value_struct_content)
*/
Ast_Type *type;
Ast_Decl *resolved_decl;
@@ -246,7 +246,7 @@ struct Ast_Resolved_Member {
int32_t offset;
bool visited;
/*#import meta
meta.inline_value_fields()
meta.inline_value_fields()
*/
union {
Value value;
@@ -390,7 +390,7 @@ struct Ast_Atom : Ast_Expr {
// can be use during code generation
// it cannot be untyped. (or at least thats the hope :)
/*#import meta
meta.inline_value_fields()
meta.inline_value_fields()
*/
union {
Value value;
@@ -606,7 +606,7 @@ struct Ast_Decl : Ast {
};
/*#import meta
meta.inline_value_fields()
meta.inline_value_fields()
*/
union {
Value value;

View File

@@ -696,10 +696,11 @@ lex_restream(Core_Ctx *lexer, String istream, String file) {
CORE_Static const char *
name(Token_Kind kind) {
switch (kind) {
case TK_End: return "End of stream";
case TK_End:
return "End of stream";
/*#
import meta
for i in meta.token_kinds:
import meta
for i in meta.token_kinds:
if i[1] != "SPECIAL":
print("case TK_" + i[0] + f": return \"{i[1]}\";")
*/

View File

@@ -2,7 +2,7 @@
struct Operand {
/*#import meta
meta.inline_value_fields()
meta.inline_value_fields()
*/
union {
Value value;

4
meta.bat Normal file
View File

@@ -0,0 +1,4 @@
@echo off
call meta_run.bat preprocess cpp
clang-format -i *.cpp *.hpp *.h

View File

@@ -62,3 +62,4 @@ for file_to_modify in files:
fd.write(f)
fd.truncate()
fd.close()