Exemple #1
0
 def execute(self, environment):
     if self.isBlock:
         return C3D("", self.id, self.row, self.column)
     if environment.isBlock:
         return C3D("", self.id, self.row, self.column)
     if not isinstance(environment, GlobalEnvironment):
         if environment.getVar(self.id):
             fix = (
                 "\t"
                 + "if isinstance("
                 + self.id
                 + ", str): "
                 + self.tempS
                 + ' = "\'"+'
                 + self.id
                 + '+"\'"'
                 + "\n"
                 + "\telse: "
                 + self.tempS
                 + " = "
                 + self.id
                 + "\n"
             )
             grammar.optimizer_.addIgnoreString(str(fix), self.row, False)
             return C3D(fix, '"+str(' + self.tempS + ')+"', self.row, self.column)
         else:
             pass
     return C3D("", self.id, self.row, self.column)
Exemple #2
0
    def execute(self, environment):
        if self.isBlock:
            return C3D("", self.id, self.row, self.column)
        if environment.isBlock:
            return C3D("", self.id, self.row, self.column)
        if not isinstance(environment, GlobalEnvironment):
            if environment.getVar(self.id):
                return C3D("", '"+str(' + self.id + ')+"', self.row,
                           self.column)

        return C3D("", self.id, self.row, self.column)
Exemple #3
0
 def execute(self, environment):
     if self.isBlock:
         return C3D("", self.id, self.row, self.column)
     if environment.isBlock:
         return C3D("", self.id, self.row, self.column)
     if not isinstance(environment, GlobalEnvironment):
         if environment.getVar(self.id):
             return C3D("", '"+str(' + self.id + ')+"', self.row,
                        self.column)
         else:
             grammar.PL_errors.append("Error P0000: La variable " +
                                      self.id + " no esta declarada")
     return C3D("", self.id, self.row, self.column)
Exemple #4
0
    def execute(self, environment):
        if self.isBlock:
            op = operation.Unary(self.temp, self.exp, self.operator, self.row,
                                 self.column)
            return op.execute(environment)

        c3d = self.operator.execute(environment).temp
        c3d = self.exp.execute(environment).temp
        return C3D("", c3d, self.row, self.column)
Exemple #5
0
    def execute(self, environment):
        if self.isBlock:
            op = operation.Unary(self.temp, self.exp, self.operator, self.row,
                                 self.column)
            return op.execute(environment)

        val = self.exp.execute(environment)
        if self.operator == "-" or self.operator == "+" or self.operator == "NOT":
            c3d = self.operator
            c3d += val.temp
        else:
            c3d = val.temp
            c3d += operators.get(self.operator, self.operator)

        return C3D(val.value, c3d, self.row, self.column)
Exemple #6
0
    def execute(self, environment):
        if self.isBlock:
            op = operation.Binary(self.temp, self.exp1, self.exp2,
                                  self.operator, self.row, self.column)
            return op.execute(environment)

        space = ""
        if self.operator == "AND" or self.operator == "OR":
            space = " "
        c3d = ""
        val1 = self.exp1.execute(environment)
        c3d += val1.temp
        c3d += space + self.operator + space
        val2 = self.exp2.execute(environment)
        c3d += val2.temp
        return C3D(val1.value + val2.value, c3d, self.row, self.column)
Exemple #7
0
    def execute(self, environment):
        if self.isBlock:
            op = operation.Ternary(
                self.temp,
                self.exp1,
                self.exp2,
                self.exp3,
                self.operator,
                self.row,
                self.column,
            )
            return op.execute(environment)

        c3d = ""
        val1 = self.exp1.execute(environment)
        c3d += val1.temp
        c3d += " " + operators.get(self.operator, self.operator) + " "
        val2 = self.exp2.execute(environment)
        c3d += val2.temp
        c3d += " AND "
        val3 = self.exp3.execute(environment)
        c3d += val3.temp
        return C3D(val1.value + val2.value + val3.value, c3d, self.row, self.column)
Exemple #8
0
 def execute(self, environment):
     val = self.exp.execute(environment)
     if self.isBlock:
         return val
     c3d = "(" + val.temp + ")"
     return C3D(val.value, c3d, self.row, self.column)
Exemple #9
0
 def execute(self, environment):
     if self.isBlock:
         return C3D("", self.id, self.row, self.column)
     if environment.getVar(self.id):
         return C3D("", '"' + self.id + '"', self.row, self.column)
     return C3D("", self.id, self.row, self.column)