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,
]