184: # 413 "./lpsrc/flx_types.ipk" 185: and axiom_kind_t = [`Axiom | `Lemma ] 186: and axiom_method_t = [`Predicate of expr_t | `Equation of expr_t * expr_t] 187: and expr_t = 188: [ 189: | `AST_interpolate of range_srcref * string 190: | `AST_vsprintf of range_srcref * string 191: | `AST_map of range_srcref * expr_t * expr_t 192: | `AST_noexpand of range_srcref * expr_t 193: | `AST_name of range_srcref * string * typecode_t list 194: | `AST_the of range_srcref * qualified_name_t 195: | `AST_index of range_srcref * string * int 196: | `AST_case_tag of range_srcref * int 197: | `AST_typed_case of range_srcref * int * typecode_t 198: | `AST_lookup of range_srcref * (expr_t * string * typecode_t list) 199: | `AST_apply of range_srcref * (expr_t * expr_t) 200: | `AST_tuple of range_srcref * expr_t list 201: | `AST_record of range_srcref * (string * expr_t) list 202: | `AST_record_type of range_srcref * (string * typecode_t) list 203: | `AST_variant of range_srcref * (string * expr_t) 204: | `AST_variant_type of range_srcref * (string * typecode_t) list 205: | `AST_arrayof of range_srcref * expr_t list 206: | `AST_coercion of range_srcref * (expr_t * typecode_t) 207: | `AST_suffix of range_srcref * (qualified_name_t * typecode_t) 208: 209: | `AST_patvar of range_srcref * string 210: | `AST_patany of range_srcref 211: 212: | `AST_void of range_srcref 213: | `AST_ellipsis of range_srcref 214: | `AST_product of range_srcref * expr_t list 215: | `AST_sum of range_srcref * expr_t list 216: | `AST_setintersection of range_srcref * expr_t list 217: | `AST_setunion of range_srcref * expr_t list 218: | `AST_orlist of range_srcref * expr_t list 219: | `AST_andlist of range_srcref * expr_t list 220: | `AST_arrow of range_srcref * (expr_t * expr_t) 221: | `AST_longarrow of range_srcref * (expr_t * expr_t) 222: | `AST_superscript of range_srcref * (expr_t * expr_t) 223: 224: | `AST_literal of range_srcref * literal_t 225: | `AST_deref of range_srcref * expr_t 226: | `AST_ref of range_srcref * expr_t 227: | `AST_new of range_srcref * expr_t 228: | `AST_lvalue of range_srcref * expr_t 229: | `AST_callback of range_srcref * qualified_name_t 230: | `AST_method_apply of range_srcref * (id_t * expr_t * typecode_t list) 231: (* 232: | `AST_dot of range_srcref * (expr_t * id_t * typecode_t list) 233: *) 234: | `AST_dot of range_srcref * (expr_t * expr_t) 235: | `AST_lambda of range_srcref * (vs_list_t * params_t list * typecode_t * statement_t list) 236: 237: (* this boolean expression checks its argument is 238: the nominated union variant .. not a very good name for it 239: *) 240: | `AST_match_ctor of range_srcref * (qualified_name_t * expr_t) 241: 242: (* this boolean expression checks its argument is the nominate 243: sum variant 244: *) 245: | `AST_match_case of range_srcref * (int * expr_t) 246: 247: (* this extracts the argument of a named union variant -- unsafe *) 248: | `AST_ctor_arg of range_srcref * (qualified_name_t * expr_t) 249: 250: (* this extracts the argument of a number sum variant -- unsafe *) 251: | `AST_case_arg of range_srcref * (int * expr_t) 252: 253: (* this just returns an integer equal to union or sum index *) 254: | `AST_case_index of range_srcref * expr_t (* the zero origin variant index *) 255: 256: | `AST_letin of range_srcref * (pattern_t * expr_t * expr_t) 257: 258: | `AST_get_n of range_srcref * (int * expr_t) (* get n'th component of a tuple *) 259: | `AST_get_named_variable of range_srcref * (string * expr_t) (* get named component of a class or record *) 260: | `AST_get_named_method of range_srcref * (string * int * typecode_t list * expr_t ) (* get named component of a class *) 261: | `AST_as of range_srcref * (expr_t * string) 262: | `AST_match of range_srcref * (expr_t * (pattern_t * expr_t) list) 263: | `AST_parse of range_srcref * expr_t * (range_srcref * production_t * expr_t) list 264: | `AST_sparse of range_srcref * expr_t * string * int list 265: 266: | `AST_regmatch of range_srcref * (expr_t * expr_t * (regexp_t * expr_t) list) 267: | `AST_string_regmatch of range_srcref * (expr_t * (regexp_t * expr_t) list) 268: | `AST_reglex of range_srcref * (expr_t * expr_t * (regexp_t * expr_t) list) 269: | `AST_typeof of range_srcref * expr_t 270: | `AST_lift of range_srcref * expr_t 271: | `AST_cond of range_srcref * (expr_t * expr_t * expr_t) 272: 273: | `AST_expr of range_srcref * string * typecode_t 274: 275: | `AST_type_match of range_srcref * (typecode_t * (typecode_t * typecode_t) list) 276: 277: | `AST_macro_ctor of range_srcref * (string * expr_t) 278: | `AST_macro_statements of range_srcref * statement_t list 279: 280: | `AST_case of range_srcref * expr_t * string list * expr_t 281: ] 282: