expression
const char *expression; /* expression being evaluated */
curstate.expression = curstate.tokp = expr;
warningf(true, "%s: unexpected `%s'", es->expression, s);
warningf(true, "%s: bad number `%s'", es->expression, str);
es->expression, str);
es->expression, str);
es->expression, str);
warningf(true, "%s: %s", es->expression, str);
testfail(const char *file, unsigned long line, const char *expression)
expression, file, line);
#define tt_assert(expression) \
if (!(expression)) { \
static void type_check(symbol_t *symbol, expression_t *expression, int and_op);
expression_t expression;
f2_opcode destination ',' expression opt_source ret ';'
type_check(symbol_t *symbol, expression_t *expression, int opcode)
&& (expression->value & ~symbol->info.rinfo->valid_bitmask) != 0) {
expression->value & ~symbol->info.rinfo->valid_bitmask,
SLIST_FOREACH(node, &expression->referenced_syms, links) {
%type <expression> expression immediate immediate_or_a
| T_FIELD T_SYMBOL expression
| T_FIELD T_SYMBOL expression
| T_ENUM T_SYMBOL expression
| T_SYMBOL expression
T_MASK T_SYMBOL expression
expression:
expression '|' expression
| expression '&' expression
| expression '+' expression
| expression '-' expression
| expression '*' expression
| expression '/' expression
| expression T_EXPR_LSHIFT expression
| expression T_EXPR_RSHIFT expression
| '(' expression ')'
| '~' expression
| '-' expression %prec UMINUS
T_CONST T_SYMBOL expression
expression
expression
int expression (int *);
value = expression (&i);
%type <node> expression
statement : expression
| named_expression ASSIGN_OP expression
argument_list : expression
| argument_list COMMA expression
: expression EQUALS expression
| expression UNEQUALS expression
| expression LESS expression
| expression LESS_EQ expression
| expression GREATER expression
| expression GREATER_EQ expression
| expression
| expression
| expression
expression : named_expression
| LPAR expression RPAR
| MINUS expression %prec UMINUS
| expression PLUS expression
| expression MINUS expression
| expression MULTIPLY expression
| expression DIVIDE expression
| expression REMAINDER expression
| expression EXPONENT expression
| named_expression ASSIGN_OP expression
| LENGTH LPAR expression RPAR
| SQRT LPAR expression RPAR
| SCALE LPAR expression RPAR
| BOOL_NOT expression
| expression BOOL_AND alloc_macro pop_nesting expression
| expression BOOL_OR alloc_macro pop_nesting expression
| expression EQUALS expression
| expression UNEQUALS expression
| expression LESS expression
| expression LESS_EQ expression
| expression GREATER expression
| expression GREATER_EQ expression
| LETTER LBRACKET expression RBRACKET
: expression
isc_error_runtimecheck(const char *file, int line, const char *expression) {
isc_error_fatal(file, line, "RUNTIME_CHECK(%s) %s", expression,
isc_regex_validate(const char *expression);
struct ifsd_expression *expression;
TAILQ_FOREACH(expression, &external->expressions, entries) {
expression, eval);
expression->truth = !external->prevstatus;
struct ifsd_expression *expression;
TAILQ_FOREACH(expression,
expression->truth = truth;
expression, eval);
struct ifsd_expression *expression;
while ((expression = TAILQ_FIRST(expressions)) != NULL) {
TAILQ_REMOVE(expressions, expression, eval);
if (expression->depth == depth) {
switch (expression->type) {
expression->truth = expression->left->truth &&
expression->right->truth;
expression->truth = expression->left->truth ||
expression->right->truth;
expression->truth = !expression->right->truth;
if (expression->parent != NULL) {
if (expression->parent == te)
expression->parent, eval);
TAILQ_INSERT_TAIL(&nexpressions, expression, eval);
if ((action->act.c.expression != NULL &&
action->act.c.expression->truth) ||
action->act.c.expression == NULL) {
if (action->act.c.expression != NULL)
remove_expression(action->act.c.expression, state);
remove_expression(struct ifsd_expression *expression,
switch (expression->type) {
TAILQ_REMOVE(&expression->u.ifstate->expressions, expression,
if (--expression->u.ifstate->refcount == 0) {
expression->u.ifstate, entries);
free(expression->u.ifstate);
TAILQ_REMOVE(&expression->u.external->expressions, expression,
if (--expression->u.external->refcount == 0) {
expression->u.external, entries);
free(expression->u.external->command);
event_del(&expression->u.external->ev);
free(expression->u.external);
if (expression->left != NULL)
remove_expression(expression->left, state);
if (expression->right != NULL)
remove_expression(expression->right, state);
free(expression);
struct ifsd_expression *expression;
%type <v.expression> expr term
set_expression_depth(curaction->act.c.expression, 0);
curaction->act.c.expression = $$;
curaction->act.c.expression = $$;
curaction->act.c.expression = $$;
curaction->act.c.expression = $$;
curaction->act.c.expression = $$;
set_expression_depth(struct ifsd_expression *expression, int depth)
expression->depth = depth;
if (expression->left != NULL)
set_expression_depth(expression->left, depth + 1);
if (expression->right != NULL)
set_expression_depth(expression->right, depth + 1);
struct ifsd_expression *expression;