Lines Matching refs:tree
148 static struct token *parse_type(struct token *token, struct expression **tree)
151 *tree = alloc_expression(token->pos, EXPR_TYPE);
157 (*tree)->symbol = sym;
162 struct expression **tree)
183 *tree = expr;
188 struct expression **tree)
214 *tree = expr;
388 static struct token *generic_selection(struct token *token, struct expression **tree)
418 *tree = expr;
422 struct token *primary_expression(struct token *token, struct expression **tree)
528 *tree = expr;
551 static struct token *postfix_expression(struct token *token, struct expression **tree, struct expression *cast_init_expr)
621 *tree = expr;
625 static struct token *cast_expression(struct token *token, struct expression **tree);
626 static struct token *unary_expression(struct token *token, struct expression **tree);
629 struct expression **tree, int type)
634 *tree = expr;
667 static struct token *unary_expression(struct token *token, struct expression **tree)
685 return type_info_expression(token, tree, type_information[i].type);
701 *tree = NULL;
707 *tree = unary;
719 *tree = NULL;
725 *tree = unary;
740 *tree = label;
746 return postfix_expression(token, tree, NULL);
757 static struct token *cast_expression(struct token *token, struct expression **tree)
777 return postfix_expression(token, tree, cast);
779 *tree = cast;
789 return unary_expression(token, tree);
805 #define LR_BINOP_EXPRESSION(__token, tree, type, inner, compare) \
829 *tree = left; \
832 static struct token *multiplicative_expression(struct token *token, struct expression **tree)
835 token, tree, EXPR_BINOP, cast_expression,
840 static struct token *additive_expression(struct token *token, struct expression **tree)
843 token, tree, EXPR_BINOP, multiplicative_expression,
848 static struct token *shift_expression(struct token *token, struct expression **tree)
851 token, tree, EXPR_BINOP, additive_expression,
856 static struct token *relational_expression(struct token *token, struct expression **tree)
859 token, tree, EXPR_COMPARE, shift_expression,
865 static struct token *equality_expression(struct token *token, struct expression **tree)
868 token, tree, EXPR_COMPARE, relational_expression,
873 static struct token *bitwise_and_expression(struct token *token, struct expression **tree)
876 token, tree, EXPR_BINOP, equality_expression,
881 static struct token *bitwise_xor_expression(struct token *token, struct expression **tree)
884 token, tree, EXPR_BINOP, bitwise_and_expression,
889 static struct token *bitwise_or_expression(struct token *token, struct expression **tree)
892 token, tree, EXPR_BINOP, bitwise_xor_expression,
897 static struct token *logical_and_expression(struct token *token, struct expression **tree)
900 token, tree, EXPR_LOGICAL, bitwise_or_expression,
905 static struct token *logical_or_expression(struct token *token, struct expression **tree)
908 token, tree, EXPR_LOGICAL, logical_and_expression,
913 struct token *conditional_expression(struct token *token, struct expression **tree)
915 token = logical_or_expression(token, tree);
916 if (*tree && match_op(token, '?')) {
919 expr->conditional = *tree;
920 *tree = expr;
928 struct token *assignment_expression(struct token *token, struct expression **tree)
930 token = conditional_expression(token, tree);
931 if (*tree && token_type(token) == TOKEN_SPECIAL) {
944 expr->left = *tree;
946 *tree = expr;
956 static struct token *comma_expression(struct token *token, struct expression **tree)
959 token, tree, EXPR_COMMA, assignment_expression,
964 struct token *parse_expression(struct token *token, struct expression **tree)
966 return comma_expression(token,tree);