Lines Matching refs:expr
63 s_expression *expr = NULL;
75 expr = new(ctx) s_float(INFINITY);
85 expr = new(ctx) s_float(f);
87 expr = new(ctx) s_int(i);
91 expr = new(ctx) s_symbol(symbol_buffer, n);
98 return expr;
114 s_expression *expr;
116 while ((expr = __read_expression(ctx, src, symbol_buffer)) != NULL) {
117 list->subexpressions.push_tail(expr);
168 foreach_in_list(s_expression, expr, &this->subexpressions) {
169 expr->print();
170 if (!expr->next->is_tail_sentinel())
179 s_pattern::match(s_expression *expr)
183 case EXPR: *p_expr = expr; break;
184 case LIST: if (expr->is_list()) *p_list = (s_list *) expr; break;
185 case SYMBOL: if (expr->is_symbol()) *p_symbol = (s_symbol *) expr; break;
186 case NUMBER: if (expr->is_number()) *p_number = (s_number *) expr; break;
187 case INT: if (expr->is_int()) *p_int = (s_int *) expr; break;
189 s_symbol *sym = SX_AS_SYMBOL(expr);
195 return *p_expr == expr;
206 foreach_in_list(s_expression, expr, &list->subexpressions) {
210 if (expr == NULL || !pattern[i].match(expr))