subexpr
struct hx_expr *subexpr;
subexpr = expr->arg2;
if (subexpr->op == expr_WORDS) {
while (subexpr) {
s1 = eval_word(context, env, subexpr->arg1);
subexpr = subexpr->arg2;
} else if (subexpr->op == expr_VAR) {
subenv = find_variable(context, env, subexpr);
_hx509_abort("hx509 eval IN unknown op: %d", (int)subexpr->op);
expression_ptr subexpr;
return (*subexpr)();
subexpr->dump();
expression_ptr subexpr;
result s = (*subexpr)();
subexpr->dump();
expression_ptr &&subexpr = parse_expression();
if (!subexpr)
lhs.reset(new paren_expression(l, std::move(subexpr)));
expression_ptr &&subexpr = parse_expression();
if (!subexpr)
lhs.reset(new unary_operator<'+', unary_plus<valty>>(l, std::move(subexpr)));
expression_ptr &&subexpr = parse_expression();
if (!subexpr)
lhs.reset(new unary_operator<'-', std::negate<valty>>(l, std::move(subexpr)));
expression_ptr &&subexpr = parse_expression();
if (!subexpr)
lhs.reset(new unary_operator<'!', std::logical_not<valty>>(l, std::move(subexpr)));
expression_ptr &&subexpr = parse_expression();
if (!subexpr)
lhs.reset(new unary_operator<'~', bit_not<valty>>(l, std::move(subexpr)));