Lines Matching defs:expr
60 s_expression *expr = NULL;
72 expr = new(ctx) s_float(std::numeric_limits<float>::infinity());
82 expr = new(ctx) s_float(f);
84 expr = new(ctx) s_int(i);
88 expr = new(ctx) s_symbol(symbol_buffer, n);
95 return expr;
111 s_expression *expr;
113 while ((expr = __read_expression(ctx, src, symbol_buffer)) != NULL) {
114 list->subexpressions.push_tail(expr);
166 s_expression *expr = (s_expression*) it.get();
167 expr->print();
168 if (!expr->next->is_tail_sentinel())
177 s_pattern::match(s_expression *expr)
181 case EXPR: *p_expr = expr; break;
182 case LIST: if (expr->is_list()) *p_list = (s_list *) expr; break;
183 case SYMBOL: if (expr->is_symbol()) *p_symbol = (s_symbol *) expr; break;
184 case NUMBER: if (expr->is_number()) *p_number = (s_number *) expr; break;
185 case INT: if (expr->is_int()) *p_int = (s_int *) expr; break;
187 s_symbol *sym = SX_AS_SYMBOL(expr);
193 return *p_expr == expr;
208 s_expression *expr = (s_expression *) it.get();
209 if (expr == NULL || !pattern[i].match(expr))