Beloch.AstAbstract syntax for Beloch. Spans point into the source for diagnostics.
type export_entry = {ekind : [ `Point | `Line ];esrc : string;eshadow : bool;erename : string option;espan : Error.span;}and line_operand = | LNamed of crease_ref| LFilter of line_operand * filter_elt * Error.span| LUnion of line_operand list * Error.span| LSelect of selector list * Error.spanand alignment_kind = | AlOnto of align_object * align_object| AlThrough of point_operand| AlPerp of line_operandand alignment = {al_fold_line : string option;al_fold_line2 : string option;al_kind : alignment_kind;al_span : Error.span;}and construction = {c_fold_lines : string list;c_alignments : alignment list;c_heading : line_operand option;c_heading_span : Error.span option;c_span : Error.span;}val no_side_spans : side_spanstype fold_spec = {moving : flap_arg option;toward : toward_item option;up_to : flap_arg option;direction : direction;place : (place_dir * flap_arg) option;spans : side_spans;}type reverse_spec = {rmoving : flap_arg option;rtoward : toward_item option;outside : bool;rletters : (line_operand * bool * Error.span) list;rspans : side_spans;}type point_expr = | PsExpr of point_operand| PsFree of {line : line_operand;anchor : point_operand;pos : free_pos option;span : Error.span;}type raw_item = | RiConstruction of construction * Error.span| RiLine of line_operand * mv_constraint * Error.span| RiMoving of flap_arg * Error.span| RiMovingDir of flap_arg * bool * Error.span| RiUpTo of flap_arg * Error.span| RiLetter of mv_constraint * Error.span| RiPlace of place_dir * flap_arg * Error.span| RiOutside of Error.span| RiOn of flap_arg * Error.span| RiExtent of extent * Error.span| RiOrder of flap_arg * flap_arg * Error.span| RiStaying of point_operand list * Error.span| RiSelection of toward_item * Error.span| RiAlignment of line_operand * align_object * Error.spantype annot_value = | AvPoint of point_operand| AvLine of line_operand| AvFlap of flap_operand| AvConstruction of construction| AvText of string| AvNumber of Q.t| AvWord of stringtype annotation = {a_ns : string option;a_key : string;a_args : annot_arg list;a_span : Error.span;}type stmt = | Annotation of annotation| BindLine of string * construction * sides * Error.span| Mark of output
* markable
* extent
* direction
* flap_arg option
* sides
* Error.span| Fold of output * markable * fold_spec * Error.span| Reverse of output * markable * reverse_spec * Error.span| Unfold of line_operand * fold_spec * Error.span| BindBundle of string * line_operand * Error.span| Point of string * point_expr * Error.span| Flip of Error.span| Def of string * param list * stmt list * Error.span| Apply of string option * string * arg list * Error.span| Export of export_entry list option * string * Error.span| Squash of output * line_operand * align_object * Error.span| Flatten of output
* collapse_elem list
* (flap_arg * flap_arg) list
* point_operand list option
* flap_arg option
* point_operand option
* Error.spantype shape_def = {sd_name : string;sd_name_span : Error.span;sd_params : (string * Error.span) list;sd_sheet : sheet;sd_body : stmt list;sd_trim : flap_arg * Error.span;sd_exports : export_entry list option;sd_span : Error.span;}type program = {p_unit : (string * Error.span) option;p_shapes : shape_def list;p_sheet : sheet;p_stmts : stmt list;}