Exemple #1
0
        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));
 }