10 import U_coresyn ( U_coresyn ) -- interface only
11 import U_hpragma ( U_hpragma ) -- interface only
16 type U_infixTree = (ProtoName, U_tree, U_tree)
18 rdU_infixTree :: _Addr -> UgnM U_infixTree
20 = ioToUgnM (_casm_ ``%r = gident(*Rginfun_hs((struct Sap *)%0));'' pt) `thenUgn` \ op_t ->
21 ioToUgnM (_casm_ ``%r = (*Rginarg1_hs((struct Sap *)%0));'' pt) `thenUgn` \ arg1_t ->
22 ioToUgnM (_casm_ ``%r = (*Rginarg2_hs((struct Sap *)%0));'' pt) `thenUgn` \ arg2_t ->
24 rdU_unkId op_t `thenUgn` \ op ->
25 rdU_tree arg1_t `thenUgn` \ arg1 ->
26 rdU_tree arg2_t `thenUgn` \ arg2 ->
27 returnUgn (op, arg1, arg2)
30 hmodule : < ghname : stringId;
35 ident : < gident : unkId; >;
36 lit : < glit : literal; >;
37 tuple : < gtuplelist : list; >;
40 lambda : < glampats : list;
43 let : < gletvdeflist : binding;
45 casee : < gcaseexpr : tree;
47 ife : < gifpred : tree;
50 par : < gpare : tree; >;
53 lazyp : < glazyp : tree; >;
54 plusp : < gplusp : tree;
57 restr : < grestre : tree;
59 comprh : < gcexp : tree;
61 qual : < gqpat : tree;
63 guard : < ggexp : tree; >;
64 def : < ggdef : tree; >;
65 tinfixop: < gdummy : infixTree; >;
66 lsection: < glsexp : tree;
68 rsection: < grsop : unkId;
70 eenum : < gefrom : tree;
73 llist : < gllist : list; >;
74 ccall : < gccid : stringId;
77 scc : < gsccid : hstring;
79 negate : < gnexp : tree; >;