8 /* stuff from util.c */
13 extern BOOLEAN nonstandardFlag;
14 extern BOOLEAN hashIds;
17 extern BOOLEAN ignoreSCC;
19 extern unsigned hash_table_size;
21 void process_args PROTO((int, char **));
23 /* end of util.c stuff */
25 list mklcons PROTO((void *h, list t)); /* if we have PROTO, we have "void *" */
26 list lapp PROTO((list l1, void *l2));
27 list lconc PROTO((list l1, list l2));
29 #define lsing(l) mklcons(l, Lnil) /* Singleton Lists */
30 #define ldub(l1, l2) mklcons(l1, lsing(l2)) /* Two-element Lists */
32 #define FN fns[icontexts]
33 #define SAMEFN samefn[icontexts]
34 #define PREVPATT prevpatt[icontexts]
36 id installid PROTO((char *)); /* Create a new identifier */
37 hstring installHstring PROTO((int, char *)); /* Create a new literal string */
39 id install_literal PROTO((char *));
40 char *id_to_string PROTO((id));
42 id qid_to_id PROTO((qid));
43 char *qid_to_string PROTO((qid));
44 char *qid_to_mod PROTO((qid)); /* NULL if unqual */
45 char *qid_to_pmod PROTO((qid)); /* "?" if unqual */
46 qid creategid PROTO((long));
48 /* partain additions */
50 char *xmalloc PROTO((unsigned)); /* just a GNU-style error-checking malloc */
51 int printf PROTO((const char *, ...));
52 int fprintf PROTO((FILE *, const char *, ...));
53 /*varies (sun/alpha): int fputc PROTO((char, FILE *)); */
54 int fputs PROTO((const char *, FILE *));
55 int sscanf PROTO((const char *, const char *, ...));
56 long strtol PROTO((const char *, char **, int));
57 size_t fread PROTO((void *, size_t, size_t, FILE *));
58 int fclose PROTO((FILE *));
59 int isatty PROTO((int));
60 /*extern ??? _filbuf */
61 /*extern ??? _flsbuf */
63 void pprogram PROTO((tree));
65 void format_string PROTO((FILE *, unsigned char *, int));
66 list type2context PROTO((ttype));
67 pbinding createpat PROTO((pbinding, binding));
68 void process_args PROTO((int, char **));
69 void hash_init PROTO((void));
70 void print_hash_table PROTO((void));
71 long int hash_index PROTO((id));
72 void yyinit PROTO((void));
73 int yyparse PROTO((void));
74 int yylex PROTO((void));
75 void setyyin PROTO((char *));
76 void yyerror PROTO((char *));
77 void error PROTO((char *));
78 void hsperror PROTO((char *));
80 void makeinfix PROTO((id, int, int, id, long, long, id, id, long, long, long, list));
81 struct infix *infixlookup PROTO((qid));
82 int pprecedence PROTO((struct infix *));
83 int pfixity PROTO((struct infix *));
84 char * infixstr PROTO((int));
85 long infixint PROTO((int));
87 void hsincindent PROTO((void));
88 void hssetindent PROTO((void));
89 void hsendindent PROTO((void));
90 void hsindentoff PROTO((void));
92 int checkfixity PROTO((char *));
93 void checksamefn PROTO((qid));
94 void checkinpat PROTO((void));
96 void expORpat PROTO((int,tree));
97 /* the "int" arg says what we want; it is one of: */
101 BOOLEAN lhs_is_patt PROTO((tree));
102 tree function PROTO((tree));
103 void extendfn PROTO((binding, binding));
104 void checkorder PROTO((binding));
106 void checkdostmts PROTO((list));
107 void checknobangs PROTO((ttype));
108 void splittyconapp PROTO((ttype, qid *, list *));
111 void precparse PROTO((tree));
112 void checkprec PROTO((tree, qid, BOOLEAN));
115 BOOLEAN isconstr PROTO((char *));
116 void setstartlineno PROTO((void));
118 /* mattson additions */
119 char *xstrdup PROTO((char *)); /* Duplicate a string */
120 char *xstrndup PROTO((char *, unsigned)); /* Duplicate a substring */
121 char *xrealloc PROTO((char *, unsigned)); /* Re-allocate a string */
123 #endif /* __UTILS_H */