5.7.2.4. Expressions

Raw expression terms.
Start ocaml section to src/flx_ast.mli[5 /8 ] Next Prev First Last
   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: 
End ocaml section to src/flx_ast.mli[5]