%{ #include "hspincl.h" %} %{{ module U_tree where import Ubiq -- debugging consistency check import UgenUtil import U_constr ( U_constr ) -- interface only import U_binding import U_coresyn ( U_coresyn ) -- interface only import U_hpragma ( U_hpragma ) -- interface only import U_list import U_literal import U_maybe import U_qid import U_ttype %}} type tree; hmodule : < ghname : stringId; ghimplist : list; /* [import] */ ghexplist : maybe; /* Maybe [entity] */ ghfixes : list; /* [fixop] */ ghmodlist : binding; ghmodline : long; >; fixop : < gfixop : unkId; gfixinfx : long; gfixprec : long; >; ident : < gident : qid; >; lit : < glit : literal; >; ap : < gfun : tree; garg : tree; >; infixap : < ginffun : qid; ginfarg1 : tree; ginfarg2 : tree; >; negate : < gnexp : tree; gnxxx1 : VOID_STAR; gnxxx2 : VOID_STAR; >; /* infixap and negate have the same size so they can be rearranged in precparse */ lambda : < glampats : list; glamexpr : tree; glamline : long; >; let : < gletvdefs : binding; gletvexpr : tree; >; casee : < gcaseexpr : tree; gcasebody : list; gcaseline : long; >; ife : < gifpred : tree; gifthen : tree; gifelse : tree; gifline : long; >; doe : < gdo : list; gdoline : long; >; dobind : < gdobindpat : tree; gdobindexp : tree; gdobindline : long; >; doexp : < gdoexp : tree; gdoexpline : long; >; seqlet : < gseqlet : binding; >; record : < grcon : qid; grbinds : list; >; /* [rbind] */ rupdate : < gupdexp : tree; gupdbinds : list; >; /* [rbind] */ rbind : < grbindvar : qid; grbindexp : maybe; >; /* Maybe expr */ par : < gpare : tree; >; as : < gasid : qid; gase : tree; >; lazyp : < glazyp : tree; >; wildp : < >; restr : < grestre : tree; grestrt : ttype; >; tuple : < gtuplelist : list; >; llist : < gllist : list; >; eenum : < gefrom : tree; gestep : maybe; geto : maybe; >; comprh : < gcexp : tree; gcquals : list; >; qual : < gqpat : tree; gqexp : tree; >; guard : < ggexp : tree; >; lsection: < glsexp : tree; glsop : qid; >; rsection: < grsop : qid; grsexp : tree; >; ccall : < gccid : stringId; gccinfo : stringId; gccargs : list; >; scc : < gsccid : hstring; gsccexp : tree; >; end;