[project @ 1996-01-08 20:28:12 by partain]
[ghc-hetmet.git] / ghc / compiler / yaccParser / binding.ugn
diff --git a/ghc/compiler/yaccParser/binding.ugn b/ghc/compiler/yaccParser/binding.ugn
new file mode 100644 (file)
index 0000000..6c7b19e
--- /dev/null
@@ -0,0 +1,106 @@
+%{
+#include "hspincl.h"
+%}
+%{{
+module U_binding where
+import UgenUtil
+import Util
+
+import U_coresyn       ( U_coresyn ) -- for interfaces only
+import U_hpragma
+import U_list
+import U_literal       ( U_literal ) -- for interfaces only
+import U_ttype
+%}}
+type binding;
+       tbind   : < gtbindc     : list;
+                   gtbindid    : ttype;
+                   gtbindl     : list; 
+                   gtbindd     : list;
+                   gtline      : long;
+                   gtpragma    : hpragma; >;
+       nbind   : < gnbindid    : ttype;
+                   gnbindas    : ttype;
+                   gnline      : long;
+                   gnpragma    : hpragma; >;
+       pbind   : < gpbindl     : list;
+                   gpline      : long; >;
+       fbind   : < gfbindl     : list;
+                   gfline      : long; >;
+       abind   : < gabindfst   : binding;
+                   gabindsnd   : binding; >;
+       lbind   : < glbindfst   : binding;
+                   glbindsnd   : binding; >;
+       ebind   : < gebindl     : list;
+                   gebind      : binding;
+                   geline      : long; >;
+       hbind   : < ghbindl     : list;
+                   ghbind      : binding;
+                   ghline      : long; >;
+       ibind   : < gibindc     : list;
+                   gibindid    : unkId;
+                   gibindi     : ttype;
+                   gibindw     : binding;
+                   giline      : long;
+                   gipragma    : hpragma; >;
+       dbind   : < gdbindts    : list;
+                   gdline      : long; >;
+       cbind   : < gcbindc     : list;
+                   gcbindid    : ttype;
+                   gcbindw     : binding;
+                   gcline      : long;
+                   gcpragma    : hpragma; >;
+       sbind   : < gsbindids   : list;
+                   gsbindid    : ttype;
+                   gsline      : long;
+                   gspragma    : hpragma; >;
+       mbind   : < gmbindmodn  : stringId;
+                   gmbindimp   : list;
+                   gmbindren   : list;
+                   gmline      : long; >;
+       nullbind : < >;
+       import  : < giebindmod  : stringId;
+                   giebindexp  : list;
+                   giebindren  : list;
+                   giebinddef  : binding;
+                   giebindfile : stringId;
+                   giebindline : long; >;
+       hiding  : < gihbindmod  : stringId;
+                   gihbindexp  : list;
+                   gihbindren  : list;
+                   gihbinddef  : binding;
+                   gihbindfile : stringId;
+                   gihbindline : long; >;
+
+       /* user-specified pragmas:XXXX */
+
+       vspec_uprag : < gvspec_id   : unkId;
+                       gvspec_tys  : list;
+                       gvspec_line : long; >;
+
+       vspec_ty_and_id : < gvspec_ty : ttype;
+                       gvspec_tyid : list; /* nil or singleton */ >;
+
+       ispec_uprag : < gispec_clas : unkId;
+                       gispec_ty   : ttype;
+                       gispec_line : long; >;
+
+       inline_uprag: < ginline_id   : unkId;
+                       ginline_howto: list;
+                       ginline_line : long; >;
+
+       deforest_uprag: < gdeforest_id : unkId;
+                       gdeforest_line : long; >;
+
+       magicuf_uprag:< gmagicuf_id   : unkId;
+                       gmagicuf_str  : stringId;
+                       gmagicuf_line : long; >;
+
+       abstract_uprag:<gabstract_id   : unkId;
+                       gabstract_line : long; >;
+
+       dspec_uprag : < gdspec_id   : unkId;
+                       gdspec_tys  : list;
+                       gdspec_line : long; >;
+
+end;