36 lines
823 B
Python
36 lines
823 B
Python
import ast
|
|
import os
|
|
|
|
bool_env = lambda name: os.environ.get(name, "false").lower() in ('true', '1', 'yes')
|
|
|
|
MAX_EXPR_LEN = 37
|
|
MAX_FMT_LEN = 45
|
|
DEBUG = bool_env("DEBUG")
|
|
PRINT = bool_env("PRINT")
|
|
INDENT = 4
|
|
SOURCE = 1
|
|
COMMENT = 2
|
|
NORMAL = 0
|
|
BREAK = 8
|
|
CONTINUE = 16
|
|
RAISE = 32
|
|
RETURN = 64
|
|
|
|
REG = lambda i: f"__REG{i}"
|
|
|
|
APPEND_SOURCE_BY_THEMSELVES = [
|
|
ast.If, ast.For, ast.With, ast.Expr
|
|
]
|
|
|
|
ASSIGN_SILENT = [
|
|
ast.Constant, ast.List
|
|
]
|
|
|
|
HANDLER_FREE_NODES = [
|
|
ast.UAdd, ast.USub, ast.Not, ast.Invert,
|
|
ast.Add, ast.Sub, ast.Mult, ast.Div, ast.FloorDiv, ast.Mod, ast.LShift, ast.RShift, ast.BitOr, ast.BitXor, ast.BitAnd, ast.MatMult,
|
|
ast.Eq, ast.NotEq, ast.Lt, ast.LtE, ast.Gt, ast.GtE, ast.Is, ast.IsNot, ast.In, ast.NotIn,
|
|
ast.Load, ast.Store,
|
|
ast.arg, ast.arguments, ast.keyword, ast.withitem,
|
|
]
|