Meta generated data working
This commit is contained in:
@@ -41,8 +41,8 @@ for i in meta.token_simple_expr:
|
|||||||
|
|
||||||
first = "op_" + meta.pascal_to_snake(meta.token_simple_expr[0][0])
|
first = "op_" + meta.pascal_to_snake(meta.token_simple_expr[0][0])
|
||||||
last = "op_" + meta.pascal_to_snake(meta.token_simple_expr[-1][0])
|
last = "op_" + meta.pascal_to_snake(meta.token_simple_expr[-1][0])
|
||||||
print(f"l->first_op = {first}")
|
print(f"l->first_op = {first};")
|
||||||
print(f"l->last_op = {last}")
|
print(f"l->last_op = {last};")
|
||||||
*/
|
*/
|
||||||
op_mul = l->intern("*"_s);
|
op_mul = l->intern("*"_s);
|
||||||
op_div = l->intern("/"_s);
|
op_div = l->intern("/"_s);
|
||||||
@@ -68,8 +68,8 @@ op_decrement = l->intern("--"_s);
|
|||||||
op_increment = l->intern("++"_s);
|
op_increment = l->intern("++"_s);
|
||||||
op_post_decrement = l->intern("--"_s);
|
op_post_decrement = l->intern("--"_s);
|
||||||
op_post_increment = l->intern("++"_s);
|
op_post_increment = l->intern("++"_s);
|
||||||
l->first_op = op_mul
|
l->first_op = op_mul;
|
||||||
l->last_op = op_post_increment
|
l->last_op = op_post_increment;
|
||||||
/*END*/
|
/*END*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -14,54 +14,54 @@ enum Token_Kind{
|
|||||||
/*#
|
/*#
|
||||||
import meta
|
import meta
|
||||||
for i in meta.token_kinds:
|
for i in meta.token_kinds:
|
||||||
print(" " + i[0] + ",")
|
print(" TK_" + i[0] + ",")
|
||||||
*/
|
*/
|
||||||
Mul,
|
TK_Mul,
|
||||||
Div,
|
TK_Div,
|
||||||
Mod,
|
TK_Mod,
|
||||||
LeftShift,
|
TK_LeftShift,
|
||||||
RightShift,
|
TK_RightShift,
|
||||||
FirstMul = TK_Mul,
|
TK_FirstMul = TK_Mul,
|
||||||
LastMul = TK_RightShift,
|
TK_LastMul = TK_RightShift,
|
||||||
Add,
|
TK_Add,
|
||||||
Sub,
|
TK_Sub,
|
||||||
FirstAdd = TK_Add,
|
TK_FirstAdd = TK_Add,
|
||||||
LastAdd = TK_Sub,
|
TK_LastAdd = TK_Sub,
|
||||||
Equals,
|
TK_Equals,
|
||||||
LesserThenOrEqual,
|
TK_LesserThenOrEqual,
|
||||||
GreaterThenOrEqual,
|
TK_GreaterThenOrEqual,
|
||||||
LesserThen,
|
TK_LesserThen,
|
||||||
GreaterThen,
|
TK_GreaterThen,
|
||||||
NotEquals,
|
TK_NotEquals,
|
||||||
FirstCompare = TK_Equals,
|
TK_FirstCompare = TK_Equals,
|
||||||
LastCompare = TK_NotEquals,
|
TK_LastCompare = TK_NotEquals,
|
||||||
BitAnd,
|
TK_BitAnd,
|
||||||
BitOr,
|
TK_BitOr,
|
||||||
BitXor,
|
TK_BitXor,
|
||||||
And,
|
TK_And,
|
||||||
Or,
|
TK_Or,
|
||||||
FirstLogical = TK_BitAnd,
|
TK_FirstLogical = TK_BitAnd,
|
||||||
LastLogical = TK_Or,
|
TK_LastLogical = TK_Or,
|
||||||
Neg,
|
TK_Neg,
|
||||||
Not,
|
TK_Not,
|
||||||
Decrement,
|
TK_Decrement,
|
||||||
Increment,
|
TK_Increment,
|
||||||
PostDecrement,
|
TK_PostDecrement,
|
||||||
PostIncrement,
|
TK_PostIncrement,
|
||||||
Assign,
|
TK_Assign,
|
||||||
ColonAssign,
|
TK_ColonAssign,
|
||||||
DivAssign,
|
TK_DivAssign,
|
||||||
MulAssign,
|
TK_MulAssign,
|
||||||
ModAssign,
|
TK_ModAssign,
|
||||||
SubAssign,
|
TK_SubAssign,
|
||||||
AddAssign,
|
TK_AddAssign,
|
||||||
AndAssign,
|
TK_AndAssign,
|
||||||
OrAssign,
|
TK_OrAssign,
|
||||||
XorAssign,
|
TK_XorAssign,
|
||||||
LeftShiftAssign,
|
TK_LeftShiftAssign,
|
||||||
RightShiftAssign,
|
TK_RightShiftAssign,
|
||||||
FirstAssign = TK_Assign,
|
TK_FirstAssign = TK_Assign,
|
||||||
LastAssign = TK_RightShiftAssign,
|
TK_LastAssign = TK_RightShiftAssign,
|
||||||
TK_OpenParen,
|
TK_OpenParen,
|
||||||
TK_CloseParen,
|
TK_CloseParen,
|
||||||
TK_OpenBrace,
|
TK_OpenBrace,
|
||||||
|
|||||||
@@ -35,28 +35,38 @@ Intern_String intern_it;
|
|||||||
Intern_String intern_strict;
|
Intern_String intern_strict;
|
||||||
Intern_String intern_flag;
|
Intern_String intern_flag;
|
||||||
|
|
||||||
Intern_String op_add; // first
|
/*#
|
||||||
|
import meta
|
||||||
|
|
||||||
|
for i in meta.token_simple_expr:
|
||||||
|
if i[1] != "SPECIAL":
|
||||||
|
print("Intern_String op_" + meta.pascal_to_snake(i[0]) + ";")
|
||||||
|
*/
|
||||||
Intern_String op_mul;
|
Intern_String op_mul;
|
||||||
Intern_String op_div;
|
Intern_String op_div;
|
||||||
|
Intern_String op_mod;
|
||||||
|
Intern_String op_left_shift;
|
||||||
|
Intern_String op_right_shift;
|
||||||
|
Intern_String op_add;
|
||||||
Intern_String op_sub;
|
Intern_String op_sub;
|
||||||
Intern_String op_and;
|
|
||||||
Intern_String op_bitand;
|
|
||||||
Intern_String op_or;
|
|
||||||
Intern_String op_bitor;
|
|
||||||
Intern_String op_xor;
|
|
||||||
Intern_String op_equals;
|
Intern_String op_equals;
|
||||||
Intern_String op_not_equals;
|
|
||||||
Intern_String op_lesser_then_or_equal;
|
Intern_String op_lesser_then_or_equal;
|
||||||
Intern_String op_greater_then_or_equal;
|
Intern_String op_greater_then_or_equal;
|
||||||
Intern_String op_lesser_then;
|
Intern_String op_lesser_then;
|
||||||
Intern_String op_greater_then;
|
Intern_String op_greater_then;
|
||||||
Intern_String op_left_shift;
|
Intern_String op_not_equals;
|
||||||
Intern_String op_right_shift;
|
Intern_String op_bit_and;
|
||||||
|
Intern_String op_bit_or;
|
||||||
Intern_String op_not;
|
Intern_String op_bit_xor;
|
||||||
|
Intern_String op_and;
|
||||||
|
Intern_String op_or;
|
||||||
Intern_String op_neg;
|
Intern_String op_neg;
|
||||||
|
Intern_String op_not;
|
||||||
Intern_String op_decrement;
|
Intern_String op_decrement;
|
||||||
Intern_String op_increment; // last
|
Intern_String op_increment;
|
||||||
|
Intern_String op_post_decrement;
|
||||||
|
Intern_String op_post_increment;
|
||||||
|
/*END*/
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Type globals
|
// Type globals
|
||||||
|
|||||||
@@ -863,10 +863,10 @@ map_operator_to_intern(Token_Kind op){
|
|||||||
case TK_Div: return op_div; break;
|
case TK_Div: return op_div; break;
|
||||||
case TK_Sub: return op_sub; break;
|
case TK_Sub: return op_sub; break;
|
||||||
case TK_And: return op_and; break;
|
case TK_And: return op_and; break;
|
||||||
case TK_BitAnd: return op_bitand; break;
|
case TK_BitAnd: return op_bit_and; break;
|
||||||
case TK_Or: return op_or; break;
|
case TK_Or: return op_or; break;
|
||||||
case TK_BitOr: return op_bitor; break;
|
case TK_BitOr: return op_bit_or; break;
|
||||||
case TK_BitXor: return op_xor; break;
|
case TK_BitXor: return op_bit_xor; break;
|
||||||
case TK_Equals: return op_equals; break;
|
case TK_Equals: return op_equals; break;
|
||||||
case TK_NotEquals: return op_not_equals; break;
|
case TK_NotEquals: return op_not_equals; break;
|
||||||
case TK_LesserThenOrEqual: return op_lesser_then_or_equal; break;
|
case TK_LesserThenOrEqual: return op_lesser_then_or_equal; break;
|
||||||
@@ -890,10 +890,10 @@ map_operator_intern_to_identifier_name(Intern_String op){
|
|||||||
if(op.str == op_div.str) return "DIV"_s;
|
if(op.str == op_div.str) return "DIV"_s;
|
||||||
if(op.str == op_sub.str) return "SUB"_s;
|
if(op.str == op_sub.str) return "SUB"_s;
|
||||||
if(op.str == op_and.str) return "AND"_s;
|
if(op.str == op_and.str) return "AND"_s;
|
||||||
if(op.str == op_bitand.str) return "BITAND"_s;
|
if(op.str == op_bit_and.str) return "BITAND"_s;
|
||||||
if(op.str == op_or.str) return "OR"_s;
|
if(op.str == op_or.str) return "OR"_s;
|
||||||
if(op.str == op_bitor.str) return "BITOR"_s;
|
if(op.str == op_bit_or.str) return "BITOR"_s;
|
||||||
if(op.str == op_xor.str) return "XOR"_s;
|
if(op.str == op_bit_xor.str) return "XOR"_s;
|
||||||
if(op.str == op_equals.str) return "EQUALS"_s;
|
if(op.str == op_equals.str) return "EQUALS"_s;
|
||||||
if(op.str == op_not_equals.str) return "NOT_EQUALS"_s;
|
if(op.str == op_not_equals.str) return "NOT_EQUALS"_s;
|
||||||
if(op.str == op_lesser_then_or_equal.str) return "LESSER_THEN_OR_EQUAL"_s;
|
if(op.str == op_lesser_then_or_equal.str) return "LESSER_THEN_OR_EQUAL"_s;
|
||||||
|
|||||||
56
meta.py
56
meta.py
@@ -59,34 +59,34 @@ token_assign_expr = [
|
|||||||
]
|
]
|
||||||
|
|
||||||
token_rest = [
|
token_rest = [
|
||||||
["TK_OpenParen", "("],
|
["OpenParen", "("],
|
||||||
["TK_CloseParen", ")"],
|
["CloseParen", ")"],
|
||||||
["TK_OpenBrace", "{"],
|
["OpenBrace", "{"],
|
||||||
["TK_CloseBrace", "}"],
|
["CloseBrace", "}"],
|
||||||
["TK_OpenBracket", "["],
|
["OpenBracket", "["],
|
||||||
["TK_CloseBracket", "]"],
|
["CloseBracket", "]"],
|
||||||
["TK_Comma", ","],
|
["Comma", ","],
|
||||||
["TK_Pound", "#"],
|
["Pound", "#"],
|
||||||
["TK_Question", "?"],
|
["Question", "?"],
|
||||||
["TK_ThreeDots", "..."],
|
["ThreeDots", "..."],
|
||||||
["TK_Semicolon", ";"],
|
["Semicolon", ";"],
|
||||||
["TK_Dot", "."],
|
["Dot", "."],
|
||||||
["TK_TwoDots", ".."],
|
["TwoDots", ".."],
|
||||||
["TK_NewLine", "[NewLine]"],
|
["NewLine", "[NewLine]"],
|
||||||
["TK_Colon", ":"],
|
["Colon", ":"],
|
||||||
["TK_DoubleColon", "::"],
|
["DoubleColon", "::"],
|
||||||
["TK_At", "@"],
|
["At", "@"],
|
||||||
["TK_Arrow", "->"],
|
["Arrow", "->"],
|
||||||
["TK_ExprSizeof", "[SizeOf]"],
|
["ExprSizeof", "[SizeOf]"],
|
||||||
["TK_DocComment", "[///]"],
|
["DocComment", "[///]"],
|
||||||
["TK_Comment", "//"],
|
["Comment", "//"],
|
||||||
["TK_Identifier", "[Ident]"],
|
["Identifier", "[Ident]"],
|
||||||
["TK_UnicodeLit", "[Unicode]"],
|
["UnicodeLit", "[Unicode]"],
|
||||||
["TK_StringLit", "[String]"],
|
["StringLit", "[String]"],
|
||||||
["TK_Error", "[Error]"],
|
["Error", "[Error]"],
|
||||||
["TK_Float", "[Float]"],
|
["Float", "[Float]"],
|
||||||
["TK_Integer", "[Int]"],
|
["Integer", "[Int]"],
|
||||||
["TK_Keyword", "[Keyword]"],
|
["Keyword", "[Keyword]"],
|
||||||
]
|
]
|
||||||
|
|
||||||
token_kinds = token_simple_expr + token_assign_expr + token_rest
|
token_kinds = token_simple_expr + token_assign_expr + token_rest
|
||||||
@@ -3,7 +3,7 @@ import sys
|
|||||||
import os
|
import os
|
||||||
|
|
||||||
|
|
||||||
files = ["core_compiler.cpp", "core_compiler.h"]
|
files = ["core_compiler.cpp", "core_compiler.h", "core_globals.cpp"]
|
||||||
|
|
||||||
for file_to_modify in files:
|
for file_to_modify in files:
|
||||||
fd = open(file_to_modify, "r+")
|
fd = open(file_to_modify, "r+")
|
||||||
|
|||||||
Reference in New Issue
Block a user