extern char HiSuffix[];
extern char PreludeHiSuffix[];
-extern void process_args PROTO((int, char **));
+void process_args PROTO((int, char **));
/* end of util.c stuff */
-extern list mklcons PROTO((void *h, list t)); /* if we have PROTO, we have "void *" */
-extern list lapp PROTO((list l1, void *l2));
-extern list lconc PROTO((list l1, list l2));
-extern list mktruecase PROTO((tree t));
+list mklcons PROTO((void *h, list t)); /* if we have PROTO, we have "void *" */
+list lapp PROTO((list l1, void *l2));
+list lconc PROTO((list l1, list l2));
+list mktruecase PROTO((tree t));
#define lsing(l) mklcons(l, Lnil) /* Singleton Lists */
#define ldub(l1, l2) mklcons(l1, lsing(l2)) /* Two-element Lists */
#define SAMEFN samefn[icontexts]
#define PREVPATT prevpatt[icontexts]
-extern tree *Rginfun PROTO((struct Sap *));
-extern tree *Rginarg1 PROTO((struct Sap *));
-extern tree *Rginarg2 PROTO((struct Sap *));
+tree *Rginfun PROTO((struct Sap *));
+tree *Rginarg1 PROTO((struct Sap *));
+tree *Rginarg2 PROTO((struct Sap *));
#define ginfun(xx) *Rginfun(xx)
#define ginarg1(xx) *Rginarg1(xx)
#define ginarg2(xx) *Rginarg2(xx)
-extern id installid PROTO((char *)); /* Create a new identifier */
-extern hstring installHstring PROTO((int, char *)); /* Create a new literal string */
+id installid PROTO((char *)); /* Create a new identifier */
+hstring installHstring PROTO((int, char *)); /* Create a new literal string */
-extern id install_literal PROTO((char *));
-extern char *id_to_string PROTO((id));
+id install_literal PROTO((char *));
+char *id_to_string PROTO((id));
-extern struct infix *infixlookup();
+struct infix *infixlookup PROTO((id));
/* partain additions */
-extern char *xmalloc PROTO((unsigned)); /* just a GNU-style error-checking malloc */
-extern int printf PROTO((const char *, ...));
-extern int fprintf PROTO((FILE *, const char *, ...));
-/*varies (sun/alpha): extern int fputc PROTO((char, FILE *)); */
-extern int fputs PROTO((const char *, FILE *));
-extern int sscanf PROTO((const char *, const char *, ...));
-extern long strtol PROTO((const char *, char **, int));
-extern size_t fread PROTO((void *, size_t, size_t, FILE *));
-extern int fclose PROTO((FILE *));
-extern int isatty PROTO((int));
+char *xmalloc PROTO((unsigned)); /* just a GNU-style error-checking malloc */
+int printf PROTO((const char *, ...));
+int fprintf PROTO((FILE *, const char *, ...));
+/*varies (sun/alpha): int fputc PROTO((char, FILE *)); */
+int fputs PROTO((const char *, FILE *));
+int sscanf PROTO((const char *, const char *, ...));
+long strtol PROTO((const char *, char **, int));
+size_t fread PROTO((void *, size_t, size_t, FILE *));
+int fclose PROTO((FILE *));
+int isatty PROTO((int));
/*extern ??? _filbuf */
/*extern ??? _flsbuf */
-extern void format_string PROTO((FILE *, unsigned char *, int));
-extern tree mkbinop PROTO((char *, tree, tree));
-extern tree mkinfixop PROTO((char *, tree, tree));
-extern list type2context PROTO((ttype));
-extern pbinding createpat PROTO((list, binding));
-extern void process_args PROTO((int, char **));
-extern void hash_init PROTO((void));
-extern void print_hash_table PROTO((void));
-extern long int hash_index PROTO((id));
-extern void yyinit PROTO((void));
-extern int yyparse PROTO((void));
-extern int yylex PROTO((void));
-extern void setyyin PROTO((char *));
-extern void yyerror PROTO((char *));
-extern void error PROTO((char *));
-extern void hsperror PROTO((char *));
-extern void enteriscope PROTO((void));
-extern void exposeis PROTO((void));
-extern void makeinfix PROTO((id, int, int));
-extern int nfixes PROTO((void));
-extern long int precedence PROTO((int));
-extern int pprecedence PROTO((struct infix *));
-extern void rearrangeprec PROTO((tree, tree));
-extern int pfixity PROTO((struct infix *));
-extern void hsincindent PROTO((void));
-extern void hssetindent PROTO((void));
-extern void hsentercontext PROTO((int));
-extern void hsendindent PROTO((void));
-extern void hsindentoff PROTO((void));
-
-extern int checkfixity PROTO((char *));
-extern void checksamefn PROTO((char *));
-extern void checkcontext PROTO((list));
-extern void checkinpat PROTO((void));
-extern void checkpatt PROTO((tree));
-extern BOOLEAN lhs_is_patt PROTO((tree));
-extern tree function PROTO((tree));
-extern void checkconap PROTO((tree, tree));
-extern void extendfn PROTO((binding, binding));
-extern void precparse PROTO((tree));
-extern void checkorder PROTO((binding));
-extern BOOLEAN checkorder2 PROTO((binding, BOOLEAN));
-extern BOOLEAN checksig PROTO((BOOLEAN, binding));
-extern void checkprec PROTO((tree, id, BOOLEAN));
-extern BOOLEAN isconstr PROTO((char *));
-extern void setstartlineno PROTO((void));
-extern void pprogram PROTO((tree));
-extern void who_am_i PROTO((void));
-extern void new_filename PROTO((char *));
-extern int Return PROTO((int));
+void format_string PROTO((FILE *, unsigned char *, int));
+tree mkbinop PROTO((char *, tree, tree));
+tree mkinfixop PROTO((char *, tree, tree));
+list type2context PROTO((ttype));
+pbinding createpat PROTO((list, binding));
+void process_args PROTO((int, char **));
+void hash_init PROTO((void));
+void print_hash_table PROTO((void));
+long int hash_index PROTO((id));
+void yyinit PROTO((void));
+int yyparse PROTO((void));
+int yylex PROTO((void));
+void setyyin PROTO((char *));
+void yyerror PROTO((char *));
+void error PROTO((char *));
+void hsperror PROTO((char *));
+void enteriscope PROTO((void));
+void exposeis PROTO((void));
+void makeinfix PROTO((id, int, int));
+int nfixes PROTO((void));
+long int precedence PROTO((int));
+int pprecedence PROTO((struct infix *));
+int pfixity PROTO((struct infix *));
+void pprogram PROTO((tree));
+void hsincindent PROTO((void));
+void hssetindent PROTO((void));
+void hsendindent PROTO((void));
+void hsindentoff PROTO((void));
+
+int checkfixity PROTO((char *));
+void checksamefn PROTO((char *));
+void checkinpat PROTO((void));
+
+void patternOrExpr PROTO((int,tree));
+/* the "int" arg says what we want; it is one of: */
+#define LEGIT_PATT 1
+#define LEGIT_EXPR 2
+
+BOOLEAN lhs_is_patt PROTO((tree));
+tree function PROTO((tree));
+void extendfn PROTO((binding, binding));
+void precparse PROTO((tree));
+void checkorder PROTO((binding));
+void checkprec PROTO((tree, id, BOOLEAN));
+BOOLEAN isconstr PROTO((char *));
+void setstartlineno PROTO((void));
+void find_module_on_imports_dirlist PROTO((char *, BOOLEAN, char *));
+char *fixop PROTO((int));
+char *fixtype PROTO((int));
/* mattson additions */
-extern char *xstrdup PROTO((char *)); /* Duplicate a string */
-extern char *xstrndup PROTO((char *, unsigned));/* Duplicate a substring */
-extern char *xrealloc PROTO((char *, unsigned));/* Re-allocate a string */
+char *xstrdup PROTO((char *)); /* Duplicate a string */
+char *xstrndup PROTO((char *, unsigned)); /* Duplicate a substring */
+char *xrealloc PROTO((char *, unsigned)); /* Re-allocate a string */
#endif /* __UTILS_H */