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))
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)
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)
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)
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)
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)
def mk_variable_lval(self, name: str) -> AST.ASTLval: var = self.mk_variable(name) id = self.new_id() return AST.ASTLval(id, var, nooffset)
def mk_lval(self, lhost: AST.ASTLHost, offset: AST.ASTOffset) -> AST.ASTLval: id = self.new_id() return AST.ASTLval(id, lhost, offset)
def mk_ignored_lval(self) -> AST.ASTLval: varinfo = ignoredvariable var = AST.ASTVariable(-1, varinfo) return AST.ASTLval(-1, var, AST.ASTNoOffset(-1))