Esempio n. 1
0
 def execute(self, environment):
     exp1 = self.exp1.execute(environment)
     exp2 = self.exp2.execute(environment)
     exp = exp1.value + exp2.value + self.temp + " = " + str(
         exp1.temp) + " " + self.operator.lower() + " " + str(
             exp2.temp) + "\n"
     return code.C3D(exp, self.temp, self.row, self.column)
Esempio n. 2
0
 def execute(self, environment):
     newEnv = Environment()
     decl = ""
     bl = ""
     for d in self.declaration:
         decl += d.execute(newEnv).value
     for b in self.blocks:
         bl += b.execute(newEnv).value
     return code.C3D(decl + bl, "block", self.row, self.column)
Esempio n. 3
0
 def execute(self, environment: Environment):
     environment.addVar(self.id, self.id, self.type, self.row, self.column)
     val = ''
     tmp = self.id
     if self.ass:
         a = self.ass.execute(environment)
         val = a.value
         tmp = a.temp
     return code.C3D(val, tmp, self.row, self.column)
Esempio n. 4
0
    def execute(self, environment):
        exp = self.exp.execute(environment)
        if self.operator == "+":
            exp = exp.value + self.temp + " = " + str(exp.temp) + "\n"
        elif self.operator == "-":
            exp = exp.value + self.temp + " = -1 * " + str(exp.temp) + "\n"
        elif self.operator == "NOTNULL":
            exp = exp.value + self.temp + " = " + str(
                exp.temp) + " != NULL" + "\n"
        elif self.operator == "NOT":
            exp = exp.value + self.temp + " = not " + str(exp.temp) + "\n"
        else:
            if "NOT" in self.operator:
                exp2 = self.operator[5:]
                self.operator = " != "

            else:
                exp2 = self.operator[2:]
                self.operator = " == "
            exp = exp.value + self.temp + " = " + str(
                exp.temp) + self.operator + exp2 + "\n"
        return code.C3D(exp, self.temp, self.row, self.column)
Esempio n. 5
0
def C3D(value, temp, row, column):
    return code.C3D(value, temp, row, column)
Esempio n. 6
0
 def execute(self, environment):
     exp = self.value.execute(environment)
     # TODO: Error
     if environment.getVar(self.id) != None:
         self.value = exp.value + self.id + " = " + str(exp.temp) + "\n"
         return code.C3D(self.value, self.id, self.row, self.column)