5.7.2.4. Expressions

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