Generating meta data
This commit is contained in:
92
meta.py
Normal file
92
meta.py
Normal file
@@ -0,0 +1,92 @@
|
||||
import re
|
||||
snake_case_pattern = re.compile(r'(?<!^)(?=[A-Z])')
|
||||
|
||||
def pascal_to_snake(v):
|
||||
name = snake_case_pattern.sub('_', v).lower()
|
||||
return name
|
||||
|
||||
token_simple_expr = [
|
||||
["Mul", "*"],
|
||||
["Div", "/"],
|
||||
["Mod", "%"],
|
||||
["LeftShift", "<<"],
|
||||
["RightShift", ">>"],
|
||||
["FirstMul = TK_Mul", "SPECIAL"],
|
||||
["LastMul = TK_RightShift", "SPECIAL"],
|
||||
["Add", "+"],
|
||||
["Sub", "-"],
|
||||
["FirstAdd = TK_Add", "SPECIAL"],
|
||||
["LastAdd = TK_Sub", "SPECIAL"],
|
||||
["Equals", "=="],
|
||||
["LesserThenOrEqual", "<="],
|
||||
["GreaterThenOrEqual", ">="],
|
||||
["LesserThen", "<"],
|
||||
["GreaterThen", ">"],
|
||||
["NotEquals", "!="],
|
||||
["FirstCompare = TK_Equals", "SPECIAL"],
|
||||
["LastCompare = TK_NotEquals", "SPECIAL"],
|
||||
["BitAnd", "&"],
|
||||
["BitOr", "|"],
|
||||
["BitXor", "^"],
|
||||
["And", "&&"],
|
||||
["Or", "||"],
|
||||
["FirstLogical = TK_BitAnd", "SPECIAL"],
|
||||
["LastLogical = TK_Or", "SPECIAL"],
|
||||
|
||||
["Neg", "~"],
|
||||
["Not", "!"],
|
||||
["Decrement", "--"],
|
||||
["Increment", "++"],
|
||||
["PostDecrement", "--"],
|
||||
["PostIncrement", "++"],
|
||||
]
|
||||
|
||||
token_assign_expr = [
|
||||
["Assign", "="],
|
||||
["ColonAssign", ":="],
|
||||
["DivAssign", "/="],
|
||||
["MulAssign", "*="],
|
||||
["ModAssign", "%="],
|
||||
["SubAssign", "-="],
|
||||
["AddAssign", "+="],
|
||||
["AndAssign", "&="],
|
||||
["OrAssign", "|="],
|
||||
["XorAssign", "^="],
|
||||
["LeftShiftAssign", "<<="],
|
||||
["RightShiftAssign", ">>="],
|
||||
["FirstAssign = TK_Assign", "SPECIAL"],
|
||||
["LastAssign = TK_RightShiftAssign", "SPECIAL"],
|
||||
]
|
||||
|
||||
token_rest = [
|
||||
["TK_OpenParen", "("],
|
||||
["TK_CloseParen", ")"],
|
||||
["TK_OpenBrace", "{"],
|
||||
["TK_CloseBrace", "}"],
|
||||
["TK_OpenBracket", "["],
|
||||
["TK_CloseBracket", "]"],
|
||||
["TK_Comma", ","],
|
||||
["TK_Pound", "#"],
|
||||
["TK_Question", "?"],
|
||||
["TK_ThreeDots", "..."],
|
||||
["TK_Semicolon", ";"],
|
||||
["TK_Dot", "."],
|
||||
["TK_TwoDots", ".."],
|
||||
["TK_NewLine", "[NewLine]"],
|
||||
["TK_Colon", ":"],
|
||||
["TK_DoubleColon", "::"],
|
||||
["TK_At", "@"],
|
||||
["TK_Arrow", "->"],
|
||||
["TK_ExprSizeof", "[SizeOf]"],
|
||||
["TK_DocComment", "[///]"],
|
||||
["TK_Comment", "//"],
|
||||
["TK_Identifier", "[Ident]"],
|
||||
["TK_UnicodeLit", "[Unicode]"],
|
||||
["TK_StringLit", "[String]"],
|
||||
["TK_Error", "[Error]"],
|
||||
["TK_Float", "[Float]"],
|
||||
["TK_Integer", "[Int]"],
|
||||
["TK_Keyword", "[Keyword]"],
|
||||
]
|
||||
|
||||
token_kinds = token_simple_expr + token_assign_expr + token_rest
|
||||
Reference in New Issue
Block a user