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,19 +36,19 @@ static void core_init_compiler(Core_Ctx *ctx, Allocator *allocator) {
ctx->interns = intern_table_make(ctx->perm, ctx->heap, 2048); ctx->interns = intern_table_make(ctx->perm, ctx->heap, 2048);
/*#import meta /*#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->keyword_{i.lower()} = pctx->intern("{i}"_s);')
print(f'pctx->interns.first_keyword = pctx->keyword_{meta.keywords[0].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;') 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);') print(f'pctx->intern_{i.lower()} = pctx->intern("{i}"_s);')
index = 0 index = 0
for i in meta.token_simple_expr: for i in meta.token_simple_expr:
if i[1] != "SPECIAL": 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)}}};') 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 index += 1
*/ */
pctx->keyword_struct = pctx->intern("struct"_s); pctx->keyword_struct = pctx->intern("struct"_s);

View File

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

View File

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

View File

@@ -696,13 +696,14 @@ lex_restream(Core_Ctx *lexer, String istream, String file) {
CORE_Static const char * CORE_Static const char *
name(Token_Kind kind) { name(Token_Kind kind) {
switch (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
if i[1] != "SPECIAL": for i in meta.token_kinds:
print("case TK_" + i[0] + f": return \"{i[1]}\";") if i[1] != "SPECIAL":
*/ print("case TK_" + i[0] + f": return \"{i[1]}\";")
*/
case TK_Mul: return "*"; case TK_Mul: return "*";
case TK_Div: return "/"; case TK_Div: return "/";
case TK_Mod: return "%"; case TK_Mod: return "%";

View File

@@ -2,7 +2,7 @@
struct Operand { struct Operand {
/*#import meta /*#import meta
meta.inline_value_fields() meta.inline_value_fields()
*/ */
union { union {
Value value; 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.write(f)
fd.truncate() fd.truncate()
fd.close() fd.close()