예제 #1
0
 def mk_register_variable_expr(
         self,
         name: str,
         vtype: Optional["BCTyp"] = None,
         parameter: Optional[int] = None) -> AST.ASTExpr:
     id = self.new_id()
     lval = self.mk_register_variable_lval(name, vtype, parameter)
     return AST.ASTLvalExpr(id, lval)
예제 #2
0
 def mk_global_variable_expr(
         self,
         name: str,
         vtype: Optional["BCTyp"] = None,
         globaladdress: Optional[int] = None) -> AST.ASTExpr:
     id = self.new_id()
     lval = self.mk_global_variable_lval(name, vtype, globaladdress)
     return AST.ASTLvalExpr(id, lval)
예제 #3
0
 def mk_lval_expr(self, lval: AST.ASTLval) -> AST.ASTExpr:
     id = self.new_id()
     return AST.ASTLvalExpr(id, lval)
예제 #4
0
 def mk_memref_expr(
     self, memexp: AST.ASTExpr, offset: AST.ASTOffset = AST.ASTNoOffset(-1)
 ) -> AST.ASTExpr:
     memreflval = self.mk_memref_lval(memexp, offset)
     id = self.new_id()
     return AST.ASTLvalExpr(id, memreflval)