1 /* ====== BEGIN INCLUDE SEGMENT apl_operator_bead.incl.pl1 ================================ */ 2 3 declare 4 1 operator_bead aligned based, 5 6 2 type unaligned like general_bead.type, 7 8 2 bits_for_lex unaligned, 9 3 allow_brackets bit(1), /* operator may have dimension info in brackets */ 10 3 allow_product bit(1), /* operator may be used in inner and outer product */ 11 3 allow_reduction bit(1), /* operator may be used in reduction and scan */ 12 3 special_assignment bit(1), /* doesn't use standard assignment operator */ 13 3 ignores_assignment bit(1), /* assignment has no effect */ 14 3 allow_subscripted_assignment 15 bit(1), /* system variable that can be subscripted assigned */ 16 3 pad bit(12), 17 18 2 bits_for_parse unaligned, 19 3 stop_trace_control bit(1), /* next lexeme is function being stopped/traced 20 (op1 tells which) */ 21 3 quad bit(1), /* this is a quad type */ 22 3 system_variable bit(1), /* this is a system variable, not an op */ 23 3 dyadic bit(1), /* operator may be dyadic */ 24 3 monadic bit(1), /* operator may be monadic */ 25 3 function bit(1), /* operator is a user defined function */ 26 3 semantics_valid bit(1), /* if semantics has been set */ 27 3 has_list bit(1), /* semantics is a list */ 28 3 inner_product bit(1), /* op2 is valid */ 29 3 semantics_on_stack bit(1), /* semantics points to value stack */ 30 3 is_external_function bit(1), /* semantics points to function bead for ext function */ 31 3 pad bit(7), 32 3 op2 fixed bin(8) unaligned, /* secondary operator code */ 33 3 op1 fixed bin(8) unaligned, /* primary operator code */ 34 2 type_code fixed bin; /* for parse */ 35 36 /* ------ END INCLUDE SEGMENT apl_operator_bead.incl.pl1 -------------------------------- */