SYMBOL INDEX (102 symbols across 1 files) FILE: pl_comp.py function skip_space (line 24) | def skip_space(s, idx): function parse_expr (line 40) | def parse_expr(s, idx): function parse_quotes (line 70) | def parse_quotes(s, idx): function parse_value (line 96) | def parse_value(s): function try_int (line 124) | def try_int(s): function pl_parse (line 132) | def pl_parse(s): function pl_parse_main (line 140) | def pl_parse_main(s): class Func (line 145) | class Func: method __init__ (line 146) | def __init__(self, prev): method scope_enter (line 167) | def scope_enter(self): method scope_leave (line 172) | def scope_leave(self): method add_var (line 178) | def add_var(self, name, tp): method get_var (line 192) | def get_var(self, name): method tmp (line 201) | def tmp(self): method new_label (line 207) | def new_label(self): method set_label (line 213) | def set_label(self, l): class Scope (line 219) | class Scope: method __init__ (line 220) | def __init__(self, prev): function scope_get_var (line 235) | def scope_get_var(scope, name): function pl_comp_expr (line 245) | def pl_comp_expr(fenv: Func, node, *, allow_var=False): function pl_comp_getvar (line 268) | def pl_comp_getvar(fenv: Func, node): function pl_comp_const (line 281) | def pl_comp_const(fenv: Func, node): function pl_comp_binop (line 291) | def pl_comp_binop(fenv: Func, node): function pl_comp_unop (line 347) | def pl_comp_unop(fenv: Func, node): function pl_comp_expr_tmp (line 369) | def pl_comp_expr_tmp(fenv: Func, node, *, allow_var=False): function pl_comp_cast (line 455) | def pl_comp_cast(fenv: Func, node): function pl_comp_peek (line 478) | def pl_comp_peek(fenv: Func, node): function pl_comp_poke (line 492) | def pl_comp_poke(fenv: Func, node): function pl_comp_ref (line 509) | def pl_comp_ref(fenv: Func, node): function pl_comp_main (line 521) | def pl_comp_main(fenv: Func, node): function pl_comp_return (line 527) | def pl_comp_return(fenv: Func, node): function pl_comp_call (line 538) | def pl_comp_call(fenv: Func, node): function pl_comp_scope (line 561) | def pl_comp_scope(fenv: Func, node): function move_to (line 597) | def move_to(fenv, var, dst): function pl_comp_newvar (line 603) | def pl_comp_newvar(fenv: Func, node): function pl_comp_setvar (line 614) | def pl_comp_setvar(fenv: Func, node): function pl_comp_cond (line 631) | def pl_comp_cond(fenv: Func, node): function pl_comp_loop (line 668) | def pl_comp_loop(fenv: Func, node): function validate_type (line 693) | def validate_type(tp): function pl_scan_func (line 711) | def pl_scan_func(fenv: Func, node): function pl_comp_func (line 731) | def pl_comp_func(fenv: Func, node): function pl_comp_syscall (line 754) | def pl_comp_syscall(fenv: Func, node): class MemProgram (line 775) | class MemProgram: method __init__ (line 776) | def __init__(self, code): method invoke (line 796) | def invoke(self): method close (line 799) | def close(self): class MemProgramWindows (line 805) | class MemProgramWindows: method __init__ (line 806) | def __init__(self, code): method invoke (line 838) | def invoke(self): method close (line 841) | def close(self): class CodeGen (line 857) | class CodeGen: method __init__ (line 868) | def __init__(self): method f16 (line 882) | def f16(self, name): method f32 (line 885) | def f32(self, name): method f64 (line 888) | def f64(self, name): method setf (line 893) | def setf(self, name, i): method elf_begin (line 898) | def elf_begin(self): method elf_header (line 912) | def elf_header(self): method elf_program_header (line 931) | def elf_program_header(self): method output_elf (line 945) | def output_elf(self, root: Func): method elf_end (line 956) | def elf_end(self): method create_stack (line 962) | def create_stack(self, data): method code_entry (line 994) | def code_entry(self): method padding (line 1007) | def padding(self): method output_mem (line 1015) | def output_mem(self, root: Func): method mem_entry (line 1022) | def mem_entry(self): method func (line 1038) | def func(self, func: Func): method patch_addr (line 1059) | def patch_addr(self, patch_off, dst_off): method code_end (line 1064) | def code_end(self): method i8 (line 1081) | def i8(self, i): method i32 (line 1083) | def i32(self, i): method i64 (line 1085) | def i64(self, i): method asm_disp (line 1090) | def asm_disp(self, lead, reg, rm, disp): method asm_load (line 1115) | def asm_load(self, reg, rm, disp): method asm_store (line 1119) | def asm_store(self, rm, disp, reg): method store_rax (line 1122) | def store_rax(self, dst): method load_rax (line 1126) | def load_rax(self, src): method const (line 1130) | def const(self, val, dst): method mov (line 1153) | def mov(self, src, dst): method binop (line 1159) | def binop(self, op, a1, a2, dst): method unop (line 1220) | def unop(self, op, a1, dst): method jmpf (line 1234) | def jmpf(self, a1, L): method jmp (line 1243) | def jmp(self, L): method asm_call (line 1248) | def asm_call(self, L): method call (line 1253) | def call(self, func, arg_start, level_cur, level_new): method ret (line 1279) | def ret(self, a1): method load_env_addr (line 1285) | def load_env_addr(self, level_var): method get_env (line 1289) | def get_env(self, level_var, var, dst): method set_env (line 1296) | def set_env(self, level_var, var, src): method lea (line 1303) | def lea(self, a1, a2, scale, dst): method peek (line 1316) | def peek(self, var, dst): method peek8 (line 1322) | def peek8(self, var, dst): method poke (line 1328) | def poke(self, ptr, val): method poke8 (line 1335) | def poke8(self, ptr, val): method ref_var (line 1342) | def ref_var(self, var, dst): method ref_env (line 1348) | def ref_env(self, level_var, var, dst): method cast8 (line 1356) | def cast8(self, var): method syscall (line 1361) | def syscall(self, dst, num, *arg_list): method debug (line 1373) | def debug(self): function ir_dump (line 1456) | def ir_dump(root: Func): function test_comp (line 1478) | def test_comp(): function main (line 1671) | def main():