public string ConvertArrayAssign(ArrayAssign arrayAssign, Dictionary <string, int> dict) { string code = converter.ConvertToCode("", converter.Convert(arrayAssign.tree, dict), "push eax", converter.Convert(arrayAssign.index, dict), "shl eax, 2", "mov ecx, " + converter.ConvertName(arrayAssign.name, dict), "add ecx, eax", "pop eax", "mov [ecx], eax"); return(code); }
private bool VerifyArrayAssignement(ArrayAssign assign, Environment env) { type t1 = GetType(assign.index, env); if (!IsFixedInt(t1)) { return(false); } ArrayType atype = (ArrayType)env.GetType(assign.name); return(AssignementMatches(atype.variableType, GetType(assign.tree, env))); }
public string Print(ArrayAssign aa) { return(aa.name + "[" + Print(aa.index) + "]" + " = " + Print(aa.tree)); }