#include <more/lang/cx_expr.h>
Inheritance diagram for more::lang::cx_expr:


Client code does not need to use this a the base class for expression (e.g. if virtual functions are undesirable). Instead the client expressions may be transformed into C cx_expr instances.
      
  | 
  
| 
 
  | 
  
      
  | 
  
| 
 
  | 
  
      
  | 
  
| 
 Append constructors of this expression to blk. 
 Reimplemented in more::lang::cx_block, more::lang::cx_expr_with_ctor_dtor, more::lang::cx_literal, more::lang::cx_call, more::lang::cx_switch, more::lang::cx_lambda, more::lang::cx_cond, more::lang::cx_pattern, more::lang::cx_and, more::lang::cx_locator, and more::lang::cx_package_variable.  | 
  
      
  | 
  
| 
 Append destructors of this expression to blk. Implementations of this function shall not declare variables in blk. Reimplemented in more::lang::cx_block, more::lang::cx_expr_with_ctor_dtor, more::lang::cx_literal, more::lang::cx_call, more::lang::cx_switch, more::lang::cx_lambda, more::lang::cx_cond, more::lang::cx_pattern, more::lang::cx_and, more::lang::cx_locator, and more::lang::cx_package_variable.  | 
  
      
  | 
  
| 
 Print the C source code of this expression. The default implementation thows a logic error. This function may be overloaded to extend the backend, otherwise it may be easier to transform the source code. Reimplemented in more::lang::rt_closure, more::lang::cx_block, more::lang::cx_identifier, more::lang::cx_literal, more::lang::cx_call, more::lang::cx_lambda, more::lang::cx_cond, more::lang::cx_pattern, and more::lang::cx_and.  | 
  
      
  | 
  
| 
 Print this expression as a C statement. The default implementation calls print_source and then appends a semicolon. Reimplemented in more::lang::cx_block, more::lang::cx_switch, and more::lang::cx_cond.  | 
  
      
  | 
  
| 
 Change the type of the expression. 
  | 
  
      
  | 
  
| 
 Return the type of the expression. 
 Reimplemented in more::lang::cx_lambda.  |