#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. |