blob: c11088bdb82209b670392d9a53fceb38371425cd [file] [log] [blame]
/* Declarations created by "makeproto" on Mon Feb 16 16:39:12 2004 */
/* Declarations from trans.c */
extern void saveoldfile PP( (char *fname) );
extern void closelogfile PV();
extern void showinitfile PV();
extern void usage PV();
extern int main PP( (int argc, char **argv) );
extern int outmem PV();
extern int ISBOGUS PP( (char *p) );
extern char *meaningkindname PP( (enum meaningkind kind) );
extern char *typekindname PP( (enum typekind kind) );
extern char *exprkindname PP( (enum exprkind kind) );
extern char *stmtkindname PP( (enum stmtkind kind) );
extern void dumptype PP( (Type *tp) );
extern void dumpmeaning PP( (Meaning *mp) );
extern void dumpsymtable PP( (Symbol *sym) );
extern void dumptypename PP( (Type *tp, int waddr) );
extern void dumptypename_file PP( (FILE *f, Type *tp) );
extern void dumpexpr PP( (Expr *ex) );
extern void dumpexpr_file PP( (FILE *f, Expr *ex) );
extern void innerdumpstmt PP( (Stmt *sp, int indent) );
extern void dumpstmt PP( (Stmt *sp, int indent) );
extern void dumpstmt_file PP( (FILE *f, Stmt *sp) );
extern void wrapup PV();
extern void mem_summary PV();
extern anyptr test_malloc PP( (int size, int *total, int *final) );
extern void test_free PP( (anyptr p) );
extern anyptr test_realloc PP( (anyptr p, int size) );
/* Declarations from stuff.c */
extern void debughook PV();
extern Strlist *strlist_append PP( (Strlist **base, char *s) );
extern Strlist *strlist_insert PP( (Strlist **base, char *s) );
extern Strlist *strlist_add PP( (Strlist **base, char *s) );
extern void strlist_mix PP( (Strlist **base, Strlist *sl) );
extern void strlist_eat PP( (Strlist **base) );
extern void strlist_empty PP( (Strlist **base) );
extern void strlist_remove PP( (Strlist **base, char *s) );
extern void strlist_delete PP( (Strlist **base, Strlist *sl) );
extern Strlist *strlist_find PP( (Strlist *base, char *s) );
extern Strlist *strlist_cifind PP( (Strlist *base, char *s) );
extern int strcincmp PP( (char *s1, char *s2, int n) );
extern int strcicmp PP( (char *s1, char *s2) );
extern void fixfname PP( (char *fn, char *ext) );
extern void removesuffix PP( (char *fn) );
extern char *stralloc PP( (char *s) );
extern void strchange PP( (char **v, char *s) );
extern char *format_gen PP( (char *fmt, long i1, long i2, double dbl,
char *s1, char *s2, char *s3) );
extern char *format_none PP( (char *fmt) );
extern char *format_d PP( (char *fmt, int a1) );
extern char *format_g PP( (char *fmt, double a1) );
extern char *format_s PP( (char *fmt, char *a1) );
extern char *format_ss PP( (char *fmt, char *a1, char *a2) );
extern char *format_sd PP( (char *fmt, char *a1, int a2) );
extern char *format_ds PP( (char *fmt, long a1, char *a2) );
extern char *format_dd PP( (char *fmt, long a1, long a2) );
extern char *format_sss PP( (char *fmt, char *a1, char *a2, char *a3) );
extern char *format_ssd PP( (char *fmt, char *a1, char *a2, long a3) );
extern char *format_sds PP( (char *fmt, char *a1, long a2, char *a3) );
extern int my_toupper PP( (int c) );
extern int my_tolower PP( (int c) );
extern void upc PP( (char *s) );
extern void lwc PP( (char *s) );
extern char *strupper PP( (char *s) );
extern char *strlower PP( (char *s) );
extern char *my_strchr PP( (char *cp, int c) );
extern char *my_strrchr PP( (char *cp, int c) );
extern char *my_strtok PP( (char *cp, char *delim) );
extern long my_strtol PP( (char *buf, char **ret, int base) );
extern void init_stuff PV();
/* Declarations from out.c */
extern void setup_out PV();
extern void select_outfile PP( (FILE *fp) );
extern void start_source PV();
extern void end_source PV();
extern int line_start PV();
extern int cur_column PV();
extern int lookback PP( (int n) );
extern int lookback_prn PP( (int n) );
extern int adddeltas PP( (int d1, int d2) );
extern int applydelta PP( (int i, int d) );
extern void moreindent PP( (int delta) );
extern void singleindent PP( (int delta) );
extern void futureindent PP( (int num) );
extern int parsedelta PP( (char *cp, int def) );
extern void eatblanklines PV();
extern int parse_breakstr PP( (char *cp) );
extern long getcurtime PV();
extern void output PP( (char *msg) );
extern void out_n_spaces PP( (int n) );
extern void out_spaces PP( (int spc, int over, int len, int delta) );
extern void testlinebreaker PP( (int lev, char *fn) );
extern void outsection PP( (int size) );
extern int isembedcomment PP( (Strlist *cmt) );
extern Strlist *outcomments PP( (Strlist *cmt) );
extern void outcomment PP( (Strlist *cmt) );
extern void outtrailcomment PP( (Strlist *cmt, int serial, int indent) );
extern void flushcomments PP( (Strlist **cmt, int kind, int serial) );
extern char *rawCstring PP( (char *fmt, char *s, int len, int special) );
extern char *makeCstring PP( (char *s, int len) );
extern char *makeCchar PP( (int ich) );
/* Declarations from comment.c */
extern void setup_comment PV();
extern int commentlen PP( (Strlist *cmt) );
extern int commentvisible PP( (Strlist *cmt) );
extern void steal_comments PP( (long olds, long news, int always) );
extern Strlist *fixbeginendcomment PP( (Strlist *cmt) );
extern void attach_comments PP( (Stmt *sbase) );
extern void setcommentkind PP( (Strlist *cmt, int kind) );
extern void commentline PP( (int kind) );
extern void addnote PP( (char *msg, long serial) );
extern Strlist *grabcomment PP( (int kind) );
extern int matchcomment PP( (Strlist *cmt, int kind, int stamp) );
extern Strlist *findcomment PP( (Strlist *cmt, int kind, int stamp) );
extern Strlist *extractcomment PP( (Strlist **cmt, int kind, int stamp) );
extern void changecomments PP( (Strlist *cmt, int okind, int ostamp,
int kind, int stamp) );
/* Declarations from lex.c */
extern char *fixpascalname PP( (char *name) );
extern void init_lex PV();
extern void setup_lex PV();
extern int checkeatnote PP( (char *msg) );
extern void beginerror PV();
extern void counterror PV();
extern void error PP( (char *msg) );
extern void interror PP( (char *proc, char *msg) );
extern void warning PP( (char *msg) );
extern void intwarning PP( (char *proc, char *msg) );
extern void note PP( (char *msg) );
extern void endnote PP( (char *msg) );
extern void showendnotes PV();
extern char *tok_name PP( (Token tok) );
extern void expected PP( (char *msg) );
extern void expecttok PP( (Token tok) );
extern void needtok PP( (Token tok) );
extern int wexpected PP( (char *msg) );
extern int wexpecttok PP( (Token tok) );
extern int wneedtok PP( (Token tok) );
extern void alreadydef PP( (Symbol *sym) );
extern void undefsym PP( (Symbol *sym) );
extern void symclass PP( (Symbol *sym) );
extern void badtypes PV();
extern void valrange PV();
extern void skipparens PV();
extern void skiptotoken2 PP( (Token tok1, Token tok2) );
extern void skippasttoken2 PP( (Token tok1, Token tok2) );
extern void skippasttotoken PP( (Token tok1, Token tok2) );
extern void skiptotoken PP( (Token tok) );
extern void skippasttoken PP( (Token tok) );
extern int skipopenparen PV();
extern int skipcloseparen PV();
extern int skipcomma PV();
extern char *findaltname PP( (char *name, int num) );
extern Symbol *findsymbol_opt PP( (char *name) );
extern Symbol *findsymbol PP( (char *name) );
extern void clearprogress PV();
extern void progress PV();
extern void p2c_getline PV();
extern void push_input_file PP( (FILE *fp, char *fname, int isinclude) );
extern void include_as_import PV();
extern void push_input_strlist PP( (Strlist *sp, char *fname) );
extern void pop_input PV();
extern int undooption PP( (int i, char *name) );
extern void badinclude PV();
extern int handle_include PP( (char *fn) );
extern int turbo_directive PP( (char *closing, char *after) );
extern void defmacro PP( (char *name, long kind, char *fname,
int lnum) );
extern void check_unused_macros PV();
extern char *getinlinepart PV();
extern char getchartok PV();
extern char *getparenstr PP( (char *buf) );
extern void leadingcomments PV();
extern void get_C_string PP( (int term) );
extern void begincommenting PP( (char *cp) );
extern void saveinputcomment PP( (char *cp) );
extern void endcommenting PP( (char *cp) );
extern int peeknextchar PV();
extern void gettok PV();
extern void checkkeyword PP( (Token tok) );
extern void checkmodulewords PV();
/* Declarations from parse.c */
extern void setup_parse PV();
extern void echobreak PV();
extern void echoword PP( (char *name, int comma) );
extern void echoprocname PP( (Meaning *mp) );
extern void need_forward_decl PP( (Meaning *func) );
extern void free_stmt PP( (Stmt *sp) );
extern Stmt *makestmt PP( (enum stmtkind kind) );
extern Stmt *makestmt_call PP( (Expr *call) );
extern Stmt *makestmt_assign PP( (Expr *lhs, Expr *rhs) );
extern Stmt *makestmt_if PP( (Expr *cond, Stmt *thn, Stmt *els) );
extern Stmt *makestmt_seq PP( (Stmt *s1, Stmt *s2) );
extern Stmt *copystmt PP( (Stmt *sp) );
extern void nukestmt PP( (Stmt *sp) );
extern void splicestmt PP( (Stmt *sp, Stmt *spnew) );
extern int stmtcount PP( (Stmt *sp) );
extern Stmt *close_files_to_ctx PP( (Meaning *ctx) );
extern int simplewith PP( (Expr *ex) );
extern int simplefor PP( (Stmt *sp, Expr *ex) );
extern int tryfuncmacro PP( (Expr **exp, Meaning *mp) );
extern Expr *replaceexprexpr PP( (Expr *ex, Expr *oldex, Expr *newex,
int keeptype) );
extern void replaceexpr PP( (Stmt *sp, Expr *oldex, Expr *newex) );
extern Stmt *mixassignments PP( (Stmt *sp, Meaning *mp) );
extern int expr_is_bool PP( (Expr *ex, int want) );
extern int implies PP( (Expr *c1, Expr *c2, int not1, int not2) );
extern void infiniteloop PP( (Stmt *sp) );
extern Expr *print_func PP( (Expr *ex) );
extern int printnl_func PP( (Expr *ex) );
extern Expr *chg_printf PP( (Expr *ex) );
extern Expr *mix_printf PP( (Expr *ex, Expr *ex2) );
extern void eatstmt PP( (Stmt **spp) );
extern int haslabels PP( (Stmt *sp) );
extern void fixblock PP( (Stmt **spp, Stmt *thereturn) );
extern int checkvarchangedexpr PP( (Expr *ex, Meaning *mp, int addrokay) );
extern int checkvarchanged PP( (Stmt *sp, Meaning *mp) );
extern int checkexprchanged PP( (Stmt *sp, Expr *ex) );
extern void checkvaroffsetexpr PP( (Expr *ex, Meaning *mp, int myoffset) );
extern void checkvaroffsetstmt PP( (Stmt *sp, Meaning *mp) );
extern int checkvaroffset PP( (Stmt *sp, Meaning *mp) );
extern Expr *initfilevar PP( (Expr *ex) );
extern void initfilevars PP( (Meaning *mp, Stmt ***sppp, Expr *exbase) );
extern void movetoend PP( (Meaning *mp) );
extern void do_include PP( (Token blkind) );
extern void p_block PP( (Token blkind) );
extern int p_search PP( (char *fname, char *ext, int need) );
extern void p_program PV();
/* Declarations from decl.c */
extern Meaning *makespecialproc PP( (char *name, Stmt *(*handler)()) );
extern Meaning *makestandardproc PP( (char *name, Stmt *(*handler)()) );
extern Meaning *makespecialfunc PP( (char *name, Expr *(*handler)()) );
extern Meaning *makestandardfunc PP( (char *name, Expr *(*handler)()) );
extern Meaning *makespecialvar PP( (char *name, Expr *(*handler)()) );
extern void setup_decl PV();
extern int push_imports PV();
extern void pop_imports PP( (int mark) );
extern void import_ctx PP( (Meaning *ctx) );
extern void perm_import PP( (Meaning *ctx) );
extern void unimport PP( (int mark) );
extern void activatemeaning PP( (Meaning *mp) );
extern void pushctx PP( (Meaning *ctx) );
extern void popctx PV();
extern void forget_ctx PP( (Meaning *ctx, int all) );
extern void handle_nameof PV();
extern int issafename PP( (Symbol *sp, int isglobal, int isdefine) );
extern void setupmeaning PP( (Meaning *mp, Symbol *sym,
enum meaningkind kind,
enum meaningkind namekind) );
extern Meaning *addmeaningas PP( (Symbol *sym, enum meaningkind kind,
enum meaningkind namekind) );
extern Meaning *addmeaning PP( (Symbol *sym, enum meaningkind kind) );
extern Meaning *addmeaningafter PP( (Meaning *mpprev, Symbol *sym,
enum meaningkind kind) );
extern void unaddmeaning PP( (Meaning *mp) );
extern void readdmeaning PP( (Meaning *mp) );
extern Meaning *addfield PP( (Symbol *sym, Meaning ***flast,
Type *rectype, Meaning *tname) );
extern int isfiletype PP( (Type *type, int big) );
extern Meaning *isfilevar PP( (Expr *ex) );
extern Type *filebasetype PP( (Type *type) );
extern Expr *filebasename PP( (Expr *ex) );
extern Expr *filenamepart PP( (Expr *ex) );
extern int fileisbuffered PP( (Expr *ex, int maybe) );
extern Type *findbasetype_ PP( (Type *type, int flags) );
extern Type *findbasetype PP( (Type *type, int flags) );
extern Expr *arraysize PP( (Type *tp, int incskipped) );
extern Type *promote_type PP( (Type *tp) );
extern Type *promote_type_bin PP( (Type *t1, Type *t2) );
extern void predeclare_varstruct PP( (Meaning *mp) );
extern void outdeclarator PP( (Type *type, char *name, int flags) );
extern Type *canonicaltype PP( (Type *type) );
extern int identicaltypes PP( (Type *t1, Type *t2) );
extern int similartypes PP( (Type *t1, Type *t2) );
extern void declarefiles PP( (Strlist *fnames) );
extern char *variantfieldname PP( (int num) );
extern int record_is_union PP( (Type *tp) );
extern void outfieldlist PP( (Meaning *mp) );
extern void declarebigfile PP( (Type *type) );
extern void outbasetype PP( (Type *type, int flags) );
extern void out_type PP( (Type *type, int witharrays) );
extern int varstorageclass PP( (Meaning *mp) );
extern char *storageclassname PP( (int i) );
extern void declarevar PP( (Meaning *mp, int which) );
extern int checkvarmac PP( (Meaning *mp) );
extern int declarevars PP( (Meaning *ctx, int invarstruct) );
extern void redeclarevars PP( (Meaning *ctx) );
extern void out_argdecls PP( (Type *ftype) );
extern void makevarstruct PP( (Meaning *func) );
extern Type *maketype PP( (enum typekind kind) );
extern Type *makesubrangetype PP( (Type *type, Expr *smin, Expr *smax) );
extern Type *makesettype PP( (Type *setof) );
extern Type *makestringtype PP( (int len) );
extern Type *makepointertype PP( (Type *type) );
extern Value p_constant PP( (Type *type) );
extern int typebits PP( (long smin, long smax) );
extern int packedsize PP( (char *fname, Type **typep, long *sizep,
int mode) );
extern void decl_comments PP( (Meaning *mp) );
extern void p_attributes PV();
extern void ignore_attributes PV();
extern int size_attributes PV();
extern void p_mech_spec PP( (int doref) );
extern Type *p_modula_subrange PP( (Type *basetype) );
extern void makefakestruct PP( (Type *tp, Meaning *tname) );
extern Type *p_type PP( (Meaning *tname) );
extern Type *p_funcdecl PP( (int *isfunc, int istype) );
extern Symbol *findlabelsym PV();
extern void p_labeldecl PV();
extern Meaning *findfieldname PP( (Symbol *sym, Meaning **variants,
int *nvars) );
extern Expr *p_constrecord PP( (Type *type, int style) );
extern Expr *p_constarray PP( (Type *type, int style) );
extern Expr *p_conststring PP( (Type *type, int style) );
extern Expr *p_subconst PP( (Type *type, int style) );
extern void p_constdecl PV();
extern void declaresubtypes PP( (Meaning *mp) );
extern void declaretype PP( (Meaning *mp) );
extern void declaretypes PP( (int outflag) );
extern void p_typedecl PV();
extern void setupfilevar PP( (Meaning *mp) );
extern Meaning *validatedtype PP( (Meaning *dtype, Type *type) );
extern void p_vardecl PV();
extern void p_valuedecl PV();
extern Meaning *maketempvar PP( (Type *type, char *name) );
extern Meaning *makestmttempvar PP( (Type *type, char *name) );
extern Meaning *markstmttemps PV();
extern void freestmttemps PP( (Meaning *mark) );
extern void freetempvar PP( (Meaning *tvar) );
extern void canceltempvar PP( (Meaning *tvar) );
/* Declarations from expr.c */
extern void free_value PP( (Value *val) );
extern Value copyvalue PP( (Value val) );
extern int valuesame PP( (Value a, Value b) );
extern char *value_name PP( (Value val, char *intfmt, int islong) );
extern Value value_cast PP( (Value val, Type *type) );
extern Type *ord_type PP( (Type *tp) );
extern int long_type PP( (Type *tp) );
extern Value make_ord PP( (Type *type, long i) );
extern long ord_value PP( (Value val) );
extern void ord_range_expr PP( (Type *type, Expr **smin, Expr **smax) );
extern int ord_range PP( (Type *type, long *smin, long *smax) );
extern void freeexpr PP( (Expr *ex) );
extern Expr *makeexpr PP( (enum exprkind kind, int n) );
extern Expr *makeexpr_un PP( (enum exprkind kind, Type *type,
Expr *arg1) );
extern Expr *makeexpr_bin PP( (enum exprkind kind, Type *type,
Expr *arg1, Expr *arg2) );
extern Expr *makeexpr_val PP( (Value val) );
extern Expr *makeexpr_char PP( (int c) );
extern Expr *makeexpr_long PP( (long i) );
extern Expr *makeexpr_real PP( (char *r) );
extern Expr *makeexpr_lstring PP( (char *msg, int len) );
extern Expr *makeexpr_string PP( (char *msg) );
extern int checkstring PP( (Expr *ex, char *msg) );
extern Expr *makeexpr_var PP( (Meaning *mp) );
extern Expr *makeexpr_name PP( (char *name, Type *type) );
extern Expr *makeexpr_setbits PV();
extern Expr *makeexpr_bicall_0 PP( (char *name, Type *type) );
extern Expr *makeexpr_bicall_1 PP( (char *name, Type *type, Expr *arg1) );
extern Expr *makeexpr_bicall_2 PP( (char *name, Type *type, Expr *arg1,
Expr *arg2) );
extern Expr *makeexpr_bicall_3 PP( (char *name, Type *type, Expr *arg1,
Expr *arg2, Expr *arg3) );
extern Expr *makeexpr_bicall_4 PP( (char *name, Type *type, Expr *arg1,
Expr *arg2, Expr *arg3, Expr *arg4) );
extern Expr *makeexpr_bicall_5 PP( (char *name, Type *type, Expr *arg1,
Expr *arg2, Expr *arg3, Expr *arg4,
Expr *arg5) );
extern Expr *copyexpr PP( (Expr *ex) );
extern int exprsame PP( (Expr *a, Expr *b, int strict) );
extern int exprequiv PP( (Expr *a, Expr *b) );
extern void deletearg PP( (Expr **ex, int n) );
extern void insertarg PP( (Expr **ex, int n, Expr *arg) );
extern Expr *grabarg PP( (Expr *ex, int n) );
extern void delsimparg PP( (Expr **ep, int n) );
extern Expr *resimplify PP( (Expr *ex) );
extern int realzero PP( (char *s) );
extern int realint PP( (char *s, int i) );
extern int checkconst PP( (Expr *ex, long val) );
extern int isliteralconst PP( (Expr *ex, Value *valp) );
extern int isconstexpr PP( (Expr *ex, long *valp) );
extern int isconstantexpr PP( (Expr *ex) );
extern Expr *makeexpr_actcast PP( (Expr *a, Type *type) );
extern Expr *makeexpr_cast PP( (Expr *a, Type *type) );
extern Expr *gentle_cast PP( (Expr *a, Type *type) );
extern Expr *makeexpr_charcast PP( (Expr *ex) );
extern Expr *makeexpr_stringcast PP( (Expr *ex) );
extern int exprlongness PP( (Expr *ex) );
extern Expr *makeexpr_longcast PP( (Expr *a, int tolong) );
extern Expr *makeexpr_arglong PP( (Expr *a, int tolong) );
extern Expr *makeexpr_unlongcast PP( (Expr *a) );
extern Expr *makeexpr_forcelongness PP( (Expr *a) );
extern Expr *makeexpr_ord PP( (Expr *ex) );
extern int expr_looks_neg PP( (Expr *ex) );
extern int expr_is_neg PP( (Expr *ex) );
extern int expr_neg_cost PP( (Expr *a) );
extern Expr *enum_to_int PP( (Expr *a) );
extern Expr *neg_inside_sum PP( (Expr *a) );
extern Expr *makeexpr_neg PP( (Expr *a) );
extern Type *true_type PP( (Expr *ex) );
extern int ischartype PP( (Expr *ex) );
extern Expr *makeexpr_plus PP( (Expr *a, Expr *b) );
extern Expr *makeexpr_minus PP( (Expr *a, Expr *b) );
extern Expr *makeexpr_inc PP( (Expr *a, Expr *b) );
extern Expr *distribute_plus PP( (Expr *ex) );
extern Expr *makeexpr_times PP( (Expr *a, Expr *b) );
extern Expr *makeexpr_sqr PP( (Expr *ex, int cube) );
extern Expr *makeexpr_divide PP( (Expr *a, Expr *b) );
extern int gcd PP( (int a, int b) );
extern int negsigns PP( (int mask) );
extern int possiblesigns PP( (Expr *ex) );
extern Expr *dodivmod PP( (char *funcname, enum exprkind ekind,
Expr *a, Expr *b) );
extern Expr *makeexpr_div PP( (Expr *a, Expr *b) );
extern Expr *makeexpr_mod PP( (Expr *a, Expr *b) );
extern Expr *makeexpr_rem PP( (Expr *a, Expr *b) );
extern int expr_not_cost PP( (Expr *a) );
extern Expr *makeexpr_not PP( (Expr *a) );
extern Type *mixsets PP( (Expr **ep1, Expr **ep2) );
extern Meaning *istempprocptr PP( (Expr *ex) );
extern Expr *makeexpr_stringify PP( (Expr *ex) );
extern Expr *makeexpr_rel PP( (enum exprkind rel, Expr *a, Expr *b) );
extern Expr *makeexpr_and PP( (Expr *a, Expr *b) );
extern Expr *makeexpr_or PP( (Expr *a, Expr *b) );
extern Expr *makeexpr_range PP( (Expr *ex, Expr *exlow, Expr *exhigh,
int higheq) );
extern Expr *makeexpr_cond PP( (Expr *c, Expr *a, Expr *b) );
extern int expr_is_lvalue PP( (Expr *ex) );
extern int expr_has_address PP( (Expr *ex) );
extern Expr *checknil PP( (Expr *ex) );
extern int checkvarinlists PP( (Strlist *yes, Strlist *no, int def,
Meaning *mp) );
extern void requirefilebuffer PP( (Expr *ex) );
extern Expr *makeexpr_hat PP( (Expr *a, int check) );
extern Expr *un_sign_extend PP( (Expr *a) );
extern Expr *makeexpr_addr PP( (Expr *a) );
extern Expr *makeexpr_addrstr PP( (Expr *a) );
extern Expr *makeexpr_addrf PP( (Expr *a) );
extern Expr *makeexpr_index PP( (Expr *a, Expr *b, Expr *offset) );
extern Expr *makeexpr_type PP( (Type *type) );
extern Expr *makeexpr_sizeof PP( (Expr *ex, int incskipped) );
extern int exprspeed PP( (Expr *ex) );
extern int noargdependencies PP( (Expr *ex, int vars) );
extern int nodependencies PP( (Expr *ex, int vars) );
extern int exprdependsvar PP( (Expr *ex, Meaning *mp) );
extern int exprdepends PP( (Expr *ex, Expr *ex2) );
extern int nosideeffects_func PP( (Expr *ex) );
extern int deterministic_func PP( (Expr *ex) );
extern int noargsideeffects PP( (Expr *ex, int mode) );
extern int nosideeffects PP( (Expr *ex, int mode) );
extern int exproccurs PP( (Expr *ex, Expr *ex2) );
extern Expr *singlevar PP( (Expr *ex) );
extern int structuredfunc PP( (Expr *ex) );
extern int strlapfunc PP( (Expr *ex) );
extern Meaning *istempvar PP( (Expr *ex) );
extern Meaning *totempvar PP( (Expr *ex) );
extern Meaning *isretvar PP( (Expr *ex) );
extern Expr *bumpstring PP( (Expr *ex, Expr *index, int offset) );
extern long po2m1 PP( (int n) );
extern int isarithkind PP( (enum exprkind kind) );
extern Expr *makeexpr_assign PP( (Expr *a, Expr *b) );
extern Expr *makeexpr_comma PP( (Expr *a, Expr *b) );
extern int strmax PP( (Expr *ex) );
extern int strhasnull PP( (Value val) );
extern int istempsprintf PP( (Expr *ex) );
extern Expr *makeexpr_sprintfify PP( (Expr *ex) );
extern Expr *makeexpr_unsprintfify PP( (Expr *ex) );
extern int sprintflength PP( (Expr *ex, int allownulls) );
extern Expr *makeexpr_concat PP( (Expr *a, Expr *b, int usesprintf) );
extern Expr *cleansprintf PP( (Expr *ex) );
extern Expr *makeexpr_substring PP( (Expr *vex, Expr *ex, Expr *exi,
Expr *exj) );
extern Expr *makeexpr_dot PP( (Expr *ex, Meaning *mp) );
extern Expr *makeexpr_dotq PP( (Expr *ex, char *name, Type *type) );
extern Expr *strmax_func PP( (Expr *ex) );
extern Expr *makeexpr_nil PV();
extern Expr *makeexpr_ctx PP( (Meaning *ctx) );
extern Expr *force_signed PP( (Expr *ex) );
extern Expr *force_unsigned PP( (Expr *ex) );
extern long type_sizeof PP( (Type *type, int pasc) );
extern Value eval_expr PP( (Expr *ex) );
extern Value eval_expr_consts PP( (Expr *ex) );
extern Value eval_expr_pasc PP( (Expr *ex) );
extern int expr_is_const PP( (Expr *ex) );
extern Expr *eatcasts PP( (Expr *ex) );
/* Declarations from pexpr.c */
extern Expr *dots_n_hats PP( (Expr *ex, Type *target) );
extern Expr *p_index PP( (Expr *ex, Expr *ex2) );
extern Expr *fake_dots_n_hats PP( (Expr *ex) );
extern void var_reference PP( (Meaning *mp) );
extern Expr *p_ord_expr PV();
extern Expr *packset PP( (Expr *ex, Type *type) );
extern Expr *p_setfactor PP( (Type *target, int sure) );
extern Expr *p_funcarglist PP( (Expr *ex, Meaning *args, int firstarg,
int ismacro) );
extern Expr *replacemacargs PP( (Expr *ex, Expr *fex) );
extern Expr *p_noarglist PP( (Expr *ex, Meaning *mp, Meaning *args) );
extern void func_reference PP( (Meaning *func) );
extern Expr *p_funccall PP( (Meaning *mp) );
extern Expr *accumulate_strlit PV();
extern Expr *pascaltypecast PP( (Type *type, Expr *ex2) );
extern Expr *p_expr PP( (Type *target) );
extern Type *nametotype PP( (char *name) );
extern int istypespec PV();
extern Expr *pc_parentype PP( (char *cp) );
extern Expr *pc_factor PV();
extern Expr *pc_expr2 PP( (int prec) );
extern Expr *pc_expr PV();
extern Expr *pc_expr_str PP( (char *buf) );
extern Expr *fixexpr PP( (Expr *ex, int env) );
extern void out_var PP( (Meaning *mp, int prec) );
extern void out_field PP( (Meaning *mp) );
extern void out_expr PP( (Expr *ex) );
extern void out_expr_top PP( (Expr *ex) );
extern void out_expr_factor PP( (Expr *ex) );
extern void out_expr_parens PP( (Expr *ex) );
extern void out_expr_stmt PP( (Expr *ex) );
extern void out_expr_bool PP( (Expr *ex) );
/* Declarations from funcs.c */
extern void setup_funcs PV();
extern int isvar PP( (Expr *ex, Meaning *mp) );
extern char *getstring PP( (Expr *ex) );
extern Expr *p_parexpr PP( (Type *target) );
extern Type *argbasetype PP( (Expr *ex) );
extern Type *choosetype PP( (Type *t1, Type *t2) );
extern Expr *convert_offset PP( (Type *type, Expr *ex2) );
extern Expr *convert_size PP( (Type *type, Expr *ex, char *name) );
extern Stmt *proc_assert PV();
extern Stmt *wrapopencheck PP( (Stmt *sp, Expr *fex) );
extern void parse_special_variant PP( (Type *tp, char *buf) );
extern char *find_special_variant PP( (char *buf, char *spname,
Strlist *splist, int need) );
extern int is_std_file PP( (Expr *ex) );
extern Stmt *proc_exit PV();
extern Stmt *doseek PP( (Expr *fex, Expr *ex) );
extern Expr *writeelement PP( (Expr *ex, Expr *wid, Expr *prec,
int base) );
extern void decl_builtins PV();
/* Declarations from dir.c */
extern void init_dir PV();
extern void setup_dir PV();
extern void setup_module PP( (char *name, int defn) );
extern void fix_parameters PV();
extern Stmt *fix_statement PP( (Stmt *sp) );
extern Expr *fix_expression PP( (Expr *ex, int env) );
extern Expr *fix_bicall PP( (Expr *ex, int env) );
extern int boolean_bicall PP( (char *name) );
extern unsigned int safemask_bicall PP( (char *name) );
extern int sideeffects_bicall PP( (char *name) );
/* Declarations from hpmods.c */
extern void hpmods PP( (char *name, int defn) );
/* Declarations from citmods.c */
extern void citmods PP( (char *name, int defn) );
/* End. */