161: # 390 "./lpsrc/flx_types.ipk" 162: and expr_t = 163: [ 164: | `AST_vsprintf of range_srcref * string 165: | `AST_map of range_srcref * expr_t * expr_t 166: | `AST_noexpand of range_srcref * expr_t 167: | `AST_name of range_srcref * string * typecode_t list 168: | `AST_the of range_srcref * qualified_name_t 169: | `AST_index of range_srcref * string * int 170: | `AST_case_tag of range_srcref * int 171: | `AST_typed_case of range_srcref * int * typecode_t 172: | `AST_lookup of range_srcref * (expr_t * string * typecode_t list) 173: | `AST_apply of range_srcref * (expr_t * expr_t) 174: | `AST_tuple of range_srcref * expr_t list 175: | `AST_record of range_srcref * (string * expr_t) list 176: | `AST_record_type of range_srcref * (string * typecode_t) list 177: | `AST_variant of range_srcref * (string * expr_t) 178: | `AST_variant_type of range_srcref * (string * typecode_t) list 179: | `AST_arrayof of range_srcref * expr_t list 180: | `AST_coercion of range_srcref * (expr_t * typecode_t) 181: | `AST_suffix of range_srcref * (qualified_name_t * typecode_t) 182: 183: | `AST_void of range_srcref 184: | `AST_ellipsis of range_srcref 185: | `AST_product of range_srcref * expr_t list 186: | `AST_sum of range_srcref * expr_t list 187: | `AST_setintersection of range_srcref * expr_t list 188: | `AST_setunion of range_srcref * expr_t list 189: | `AST_orlist of range_srcref * expr_t list 190: | `AST_andlist of range_srcref * expr_t list 191: | `AST_arrow of range_srcref * (expr_t * expr_t) 192: | `AST_longarrow of range_srcref * (expr_t * expr_t) 193: | `AST_superscript of range_srcref * (expr_t * expr_t) 194: 195: | `AST_literal of range_srcref * literal_t 196: | `AST_deref of range_srcref * expr_t 197: | `AST_ref of range_srcref * expr_t 198: | `AST_lvalue of range_srcref * expr_t 199: | `AST_callback of range_srcref * qualified_name_t 200: | `AST_method_apply of range_srcref * (id_t * expr_t * typecode_t list) 201: | `AST_dot of range_srcref * (expr_t * id_t * typecode_t list) 202: | `AST_lambda of range_srcref * (params_t list * typecode_t * statement_t list) 203: 204: (* this boolean expression checks its argument is 205: the nominated union variant .. not a very good name for it 206: *) 207: | `AST_match_ctor of range_srcref * (qualified_name_t * expr_t) 208: 209: (* this boolean expression checks its argument is the nominate 210: sum variant 211: *) 212: | `AST_match_case of range_srcref * (int * expr_t) 213: 214: (* this extracts the argument of a named union variant -- unsafe *) 215: | `AST_ctor_arg of range_srcref * (qualified_name_t * expr_t) 216: 217: (* this extracts the argument of a number sum variant -- unsafe *) 218: | `AST_case_arg of range_srcref * (int * expr_t) 219: 220: (* this just returns an integer equal to union or sum index *) 221: | `AST_case_index of range_srcref * expr_t (* the zero origin variant index *) 222: 223: | `AST_letin of range_srcref * (pattern_t * expr_t * expr_t) 224: 225: | `AST_get_n of range_srcref * (int * expr_t) (* get n'th component of a tuple *) 226: | `AST_get_named_variable of range_srcref * (string * expr_t) (* get named component of a class or record *) 227: | `AST_get_named_method of range_srcref * (string * int * typecode_t list * expr_t ) (* get named component of a class *) 228: | `AST_as of range_srcref * (expr_t * string) 229: | `AST_match of range_srcref * (expr_t * (pattern_t * expr_t) list) 230: | `AST_parse of range_srcref * expr_t * (range_srcref * production_t * expr_t) list 231: | `AST_sparse of range_srcref * expr_t * string * int list 232: 233: | `AST_regmatch of range_srcref * (expr_t * expr_t * (regexp_t * expr_t) list) 234: | `AST_string_regmatch of range_srcref * (expr_t * (regexp_t * expr_t) list) 235: | `AST_reglex of range_srcref * (expr_t * expr_t * (regexp_t * expr_t) list) 236: | `AST_typeof of range_srcref * expr_t 237: | `AST_cond of range_srcref * (expr_t * expr_t * expr_t) 238: 239: | `AST_expr of range_srcref * string * typecode_t 240: 241: | `AST_type_match of range_srcref * (typecode_t * (tpattern_t * typecode_t) list) 242: 243: | `AST_macro_ctor of range_srcref * (string * expr_t) 244: | `AST_macro_statements of range_srcref * statement_t list 245: ] 246: