示例#1
0
 def mk_temp_lval(self) -> AST.ASTLval:
     tmpname = "temp" + str(self.new_tmp_id())
     varinfo = self.get_symbol(tmpname, None, None, None, None)
     id = self.new_id()
     var = AST.ASTVariable(id, varinfo)
     id = self.new_id()
     return AST.ASTLval(id, var, AST.ASTNoOffset(-1))
示例#2
0
 def mk_register_variable_lval(
         self,
         name: str,
         vtype: Optional["BCTyp"] = None,
         parameter: Optional[int] = None) -> AST.ASTLval:
     id = self.new_id()
     var = self.mk_register_variable(name, vtype, parameter)
     return AST.ASTLval(id, var, nooffset)
示例#3
0
 def mk_global_variable_lval(
         self,
         name: str,
         vtype: Optional["BCTyp"] = None,
         globaladdress: Optional[int] = None) -> AST.ASTLval:
     id = self.new_id()
     var = self.mk_global_variable(name, vtype, globaladdress)
     return AST.ASTLval(id, var, nooffset)
示例#4
0
 def mk_returnval_variable_lval(self, iaddr: str,
                                vtype: Optional["BCTyp"]) -> AST.ASTLval:
     othername = self.other_variable_name("rtn_" + iaddr)
     if othername is not None and othername.startswith("ignore-"):
         return self.mk_ignored_lval()
     else:
         id = self.new_id()
         var = self.mk_returnval_variable(iaddr, vtype)
         return AST.ASTLval(id, var, nooffset)
示例#5
0
 def mk_memref_lval(
     self, memexp: AST.ASTExpr, offset: AST.ASTOffset = AST.ASTNoOffset(-1)
 ) -> AST.ASTLval:
     memref = self.mk_memref(memexp)
     id = self.new_id()
     return AST.ASTLval(id, memref, offset)
示例#6
0
 def mk_stack_variable_lval(self, offset: int) -> AST.ASTLval:
     id = self.new_id()
     var = self.mk_stack_variable(offset)
     return AST.ASTLval(id, var, nooffset)
示例#7
0
 def mk_variable_lval(self, name: str) -> AST.ASTLval:
     var = self.mk_variable(name)
     id = self.new_id()
     return AST.ASTLval(id, var, nooffset)
示例#8
0
 def mk_lval(self, lhost: AST.ASTLHost,
             offset: AST.ASTOffset) -> AST.ASTLval:
     id = self.new_id()
     return AST.ASTLval(id, lhost, offset)
示例#9
0
 def mk_ignored_lval(self) -> AST.ASTLval:
     varinfo = ignoredvariable
     var = AST.ASTVariable(-1, varinfo)
     return AST.ASTLval(-1, var, AST.ASTNoOffset(-1))