#include "ctrump/ast/ast.h"
#include <stdlib.h>
Go to the source code of this file.
Functions | |
int | ctrump_ast_fold_const_sint (const struct ctrump_expr *expr, int *is_const) |
定数畳み込み | |
void | ctrump_ast_fold_const_offset_sint (int *ret_offset, struct ctrump_expr **ret_expr, struct ctrump_expr *e) |
定数畳み込み 1 + (a+4) のような式がある場合に、a + 5 に変換して、定数5と式aを返す |
Definition in file fold.c.
void ctrump_ast_fold_const_offset_sint | ( | int * | ret_offset, | |
struct ctrump_expr ** | ret_expr, | |||
struct ctrump_expr * | e | |||
) |
定数畳み込み 1 + (a+4) のような式がある場合に、a + 5 に変換して、定数5と式aを返す
加算される値の定数畳み込み fold (expr + offset)
ret_offset | [out] 定数値を返すポインタ | |
ret_expr | [out] 定数値以外を返すポインタ | |
e | 式 |
Definition at line 75 of file fold.c.
References ctrump_expr::binary, ctrump_expr::code, ctrump_ast_fold_const_sint(), CTRUMP_EXPR_BIN_ADD, CTRUMP_EXPR_BIN_SUB, CTRUMP_EXPR_PAREN, CTRUMP_EXPR_SINT_LITERAL, ctrump_paren_expr::expr, ctrump_binary_expr::lhs, ctrump_expr::paren, ctrump_binary_expr::rhs, rhs, ctrump_expr::sint_literal, ctrump_expr::u, and ctrump_integer_literal::value.
Referenced by single_expr_subscripts_to_loop_subscript().
int ctrump_ast_fold_const_sint | ( | const struct ctrump_expr * | expr, | |
int * | is_const | |||
) |
定数畳み込み
expr | 式 | |
is_const | [out] 定数ならば1が入る。それ以外は0 |
Definition at line 46 of file fold.c.
References ctrump_expr::code, CTRUMP_EXPR_PAREN, CTRUMP_EXPR_SINT_LITERAL, ctrump_paren_expr::expr, ctrump_expr::paren, ctrump_expr::sint_literal, ctrump_expr::u, and ctrump_integer_literal::value.
Referenced by ctrump_ast_fold_const_offset_sint(), ctrump_env_handle_decl_node(), fold_const(), and recog_inductive().