Lines Matching defs:expr
84 s_expression *expr = s_expression::read_expression(sx_mem_ctx, src);
85 if (expr == NULL) {
91 scan_for_prototypes(instructions, expr);
96 read_instructions(instructions, expr, NULL);
104 ir_reader::ir_read_error(s_expression *expr, const char *fmt, ...)
120 if (expr != NULL) {
122 expr->print();
128 ir_reader::read_type(s_expression *expr)
134 if (MATCH(expr, pat)) {
144 s_symbol *type_sym = SX_AS_SYMBOL(expr);
146 ir_read_error(expr, "expected <type>");
152 ir_read_error(expr, "invalid type: %s", type_sym->value());
159 ir_reader::scan_for_prototypes(exec_list *instructions, s_expression *expr)
161 s_list *list = SX_AS_LIST(expr);
163 ir_read_error(expr, "Expected (<instruction> ...); found an atom.");
184 ir_reader::read_function(s_expression *expr, bool skip_body)
190 if (!PARTIAL_MATCH(expr, pat)) {
191 ir_read_error(expr, "Expected (function <name> (signature ...) ...)");
202 exec_list_iterator it = ((s_list *) expr)->subexpressions.iterator();
213 ir_reader::read_function_sig(ir_function *f, s_expression *expr, bool skip_body)
220 if (!MATCH(expr, pat)) {
221 ir_read_error(expr, "Expected (signature <type> (parameters ...) "
258 ir_read_error(expr, "function `%s' parameter `%s' qualifiers "
264 ir_read_error(expr, "function `%s' return type doesn't "
279 ir_read_error(expr, "function %s redefined", f->name);
292 ir_reader::read_instructions(exec_list *instructions, s_expression *expr,
296 s_list *list = SX_AS_LIST(expr);
298 ir_read_error(expr, "Expected (<instruction> ...); found an atom.");
321 ir_reader::read_instruction(s_expression *expr, ir_loop *loop_ctx)
323 s_symbol *symbol = SX_AS_SYMBOL(expr);
331 s_list *list = SX_AS_LIST(expr);
333 ir_read_error(expr, "Invalid instruction.\n");
339 ir_read_error(expr, "expected instruction tag");
367 ir_reader::read_declaration(s_expression *expr)
374 if (!MATCH(expr, pat)) {
375 ir_read_error(expr, "expected (declare (<qualifiers>) <type> <name>)");
389 ir_read_error(expr, "qualifier list must contain only symbols");
419 ir_read_error(expr, "unknown qualifier: %s", qualifier->value());
432 ir_reader::read_if(s_expression *expr, ir_loop *loop_ctx)
439 if (!MATCH(expr, pat)) {
440 ir_read_error(expr, "expected (if <condition> (<then>...) (<else>...))");
463 ir_reader::read_loop(s_expression *expr)
468 if (!MATCH(expr, pat)) {
469 ir_read_error(expr, "expected (loop <counter> <from> <to> "
487 ir_reader::read_return(s_expression *expr)
493 if (MATCH(expr, return_value_pat)) {
500 } else if (MATCH(expr, return_void_pat)) {
503 ir_read_error(expr, "expected (return <rvalue>) or (return)");
510 ir_reader::read_rvalue(s_expression *expr)
512 s_list *list = SX_AS_LIST(expr);
518 ir_read_error(expr, "expected rvalue tag");
534 ir_read_error(expr, "unrecognized rvalue tag: %s", tag->value());
541 ir_reader::read_assignment(s_expression *expr)
549 if (!MATCH(expr, pat4) && !MATCH(expr, pat5)) {
550 ir_read_error(expr, "expected (assign [<condition>] (<write mask>) "
572 ir_read_error(expr, "invalid write mask: %s", mask_str);
580 ir_read_error(expr, "write mask contains invalid character: %c",
604 ir_read_error(expr, "non-zero write mask required.");
612 ir_reader::read_call(s_expression *expr)
622 if (MATCH(expr, non_void_pat)) {
628 } else if (!MATCH(expr, void_pat)) {
629 ir_read_error(expr, "expected (call <name> [<deref>] (<param> ...))");
636 s_expression *expr = (s_expression*) it.get();
637 ir_rvalue *param = read_rvalue(expr);
639 ir_read_error(expr, "when reading parameter to function call");
647 ir_read_error(expr, "found call to undefined function %s",
654 ir_read_error(expr, "couldn't find matching signature for function "
660 ir_read_error(expr, "call has return value storage but void type");
663 ir_read_error(expr, "call has non-void type but no return value storage");
671 ir_reader::read_expression(s_expression *expr)
678 if (!PARTIAL_MATCH(expr, pat)) {
679 ir_read_error(expr, "expected (expression <type> <operator> "
692 ir_read_error(expr, "invalid operator: %s", s_op->value());
698 ir_read_error(expr, "expected (expression <type> %s <operand>)",
712 ir_read_error(expr, "expected (expression <type> %s <operand> "
728 ir_reader::read_swizzle(s_expression *expr)
734 if (!MATCH(expr, pat)) {
735 ir_read_error(expr, "expected (swiz <swizzle> <rvalue>)");
740 ir_read_error(expr, "expected a valid swizzle; found %s", swiz->value());
751 ir_read_error(expr, "invalid swizzle");
757 ir_reader::read_constant(s_expression *expr)
763 if (!MATCH(expr, pat)) {
764 ir_read_error(expr, "expected (constant <type> (...))");
773 ir_read_error(expr, "expected (constant <type> (...))");
807 s_expression *expr = (s_expression*) it.get();
810 s_number *value = SX_AS_NUMBER(expr);
817 s_int *value = SX_AS_INT(expr);
853 ir_reader::read_var_ref(s_expression *expr)
858 if (MATCH(expr, var_pat)) {
861 ir_read_error(expr, "undeclared variable: %s", s_var->value());
870 ir_reader::read_dereference(s_expression *expr)
879 ir_dereference_variable *var_ref = read_var_ref(expr);
882 } else if (MATCH(expr, array_pat)) {
895 } else if (MATCH(expr, record_pat)) {
907 ir_reader::read_texture(s_expression *expr)
929 if (MATCH(expr, tex_pattern)) {
931 } else if (MATCH(expr, txf_pattern)) {
933 } else if (MATCH(expr, txs_pattern)) {
935 } else if (MATCH(expr, other_pattern)) {