/* * internal ITER Iter * { * get { return (ITER)iter.Peek();} * } */ // Locals internal RVarmap DynaPush() { RVarmap vars = dyna_vars; dvar_push(0, null); lvtbl.dlev++; return(vars); }
internal object DVarRef(uint id) { RVarmap vars = dyna_vars; while (vars != null) { if (vars.id == id) { return(vars.val); } vars = vars.next; } return(null); }
internal bool dvar_defined(uint id) { RVarmap vars = dyna_vars; while (vars != null) { if (vars.id == id) { return(true); } vars = vars.next; } return(false); }
internal bool dvar_curr(uint id) { RVarmap vars = dyna_vars; while (vars != null) { if (vars.id == 0) { break; } if (vars.id == id) { return(true); } vars = vars.next; } return(false); }
private void DVarAsgn(uint id, object val, bool curr) { RVarmap vars = dyna_vars; while (vars != null) { if (curr && vars.id == id) { vars.val = val; return; } vars = vars.next; } if (dyna_vars == null) { dyna_vars = new_dvar(id, val, null); } else { vars = new_dvar(id, val, dyna_vars.next); dyna_vars.next = vars; } }
internal RVarmap new_dvar(uint id, object value, RVarmap prev) { RVarmap vars = new RVarmap(ruby, id, value, prev); return(vars); }
internal void DynaPop(RVarmap vars) { lvtbl.dlev--; dyna_vars = vars; }