ctrump/ast/fold.c File Reference

定数畳み込み演算 More...

#include "ctrump/ast/ast.h"
#include <stdlib.h>

Include dependency graph for fold.c:

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を返す


Detailed Description

定数畳み込み演算

Definition in file fold.c.


Function Documentation

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)

Parameters:
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 
)

定数畳み込み

Parameters:
expr 
is_const [out] 定数ならば1が入る。それ以外は0
Returns:
畳み込んだ値

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().


Generated on Tue Mar 31 20:19:24 2009 for ctrump by  doxygen 1.5.6