[project @ 1998-02-25 19:17:19 by sof]
authorsof <unknown>
Wed, 25 Feb 1998 19:17:21 +0000 (19:17 +0000)
committersof <unknown>
Wed, 25 Feb 1998 19:17:21 +0000 (19:17 +0000)
Magic constant removal (id.h now has #defines for the `special-syntax'
identifiers.)

ghc/compiler/parser/hsparser.y
ghc/compiler/parser/id.c
ghc/compiler/parser/id.h

index 970412a..5c3910a 100644 (file)
@@ -408,8 +408,8 @@ import      :  var                                  { $$ = mkentid(mknoqual($1)); }
        ;
 
 itycon :  tycon                                { $$ = mknoqual($1); }
-       |  OBRACK CBRACK                        { $$ = creategid(-1); }         
-       |  OPAREN CPAREN                        { $$ = creategid(0); }         
+       |  OBRACK CBRACK                        { $$ = creategid(NILGID); }
+       |  OPAREN CPAREN                        { $$ = creategid(UNITGID); }         
        |  OPAREN commas CPAREN                 { $$ = creategid($2); }
        ;
 
@@ -677,9 +677,9 @@ atype       :  gtycon                               { $$ = mktname($1); }
         ;
 
 gtycon :  qtycon
-       |  OPAREN RARROW CPAREN                 { $$ = creategid(-2); }
-       |  OBRACK CBRACK                        { $$ = creategid(-1); }         
-       |  OPAREN CPAREN                        { $$ = creategid(0); }         
+       |  OPAREN RARROW CPAREN                 { $$ = creategid(ARROWGID); }
+       |  OBRACK CBRACK                        { $$ = creategid(NILGID); }         
+       |  OPAREN CPAREN                        { $$ = creategid(UNITGID); }         
        |  OPAREN commas CPAREN                 { $$ = creategid($2); }
        ;
 
@@ -1314,14 +1314,14 @@ apatck  :  qvark                                { $$ = mkident($1); }
 
 
 gcon   :  qcon
-       |  OBRACK CBRACK                        { $$ = creategid(-1); }
-       |  OPAREN CPAREN                        { $$ = creategid(0); }
+       |  OBRACK CBRACK                        { $$ = creategid(NILGID); }
+       |  OPAREN CPAREN                        { $$ = creategid(UNITGID); }
        |  OPAREN commas CPAREN                 { $$ = creategid($2); }
        ;
 
 gconk  :  qconk
-       |  obrackkey CBRACK                     { $$ = creategid(-1); }
-       |  oparenkey CPAREN                     { $$ = creategid(0); }
+       |  obrackkey CBRACK                     { $$ = creategid(NILGID); }
+       |  oparenkey CPAREN                     { $$ = creategid(UNITGID); }
        |  oparenkey commas CPAREN              { $$ = creategid($2); }
        ;
 
index 04228be..053dc44 100644 (file)
@@ -281,11 +281,12 @@ qid_to_pmod(q)
    look at qid.ugn) with a key (number) and a string.  Here's the 
    deal
 
-               key
-               -2      function arrow ->
-               -1      list type constructor [], or the empty list []
-               0       unit type constructor (), or the unity value ()
-               n       n-tuple type constructor (,,,)
+       key
+
+       ARROWCON   function arrow ->
+       LISTCON    list type constructor [], or the empty list []
+       UNITCON    unit type constructor (), or the unity value ()
+       n          n-tuple type constructor (,,,)
 */
                
 qid
@@ -293,11 +294,11 @@ creategid(i)
   long i;
 {
   switch(i) {
-    case -2:
+    case ARROWGID:
       return(mkgid(i,install_literal("->")));
-    case -1:
+    case NILGID:
       return(mkgid(i,install_literal("[]")));
-    case  0:
+    case UNITGID:
       return(mkgid(i,install_literal("()")));
     default:
       {
index b0fd009..841fdbf 100644 (file)
@@ -12,4 +12,15 @@ typedef Hstring *hstring;
 long  get_hstring_len  PROTO((hstring));
 char *get_hstring_bytes PROTO((hstring));
 
+id installid PROTO((char *));               /* Create a new identifier */
+hstring installHstring PROTO((int, char *)); /* Create a new literal string */
+
+/* defines for special-syntax ids, see comment next
+   to creategid()
+*/
+#define ARROWGID   (-2)
+#define NILGID     (-1)
+#define UNITGID    (0)
+
+
 #endif