ack/mach/proto/cg/subr.h
2019-05-11 01:11:54 +08:00

48 lines
1.1 KiB
C

/* Copyright (c) 2019 ACK Project.
* See the copyright notice in the ACK home directory,
* in the file "Copyright".
*
* Created on: 2019-04-12
*
*/
#ifndef SUBR_H_
#define SUBR_H_
#include "data.h"
#include "types.h"
int match(register token_p tp, register set_p tep, int optexp);
void instance(int instno,register token_p token);
void cinstance(int instno,register token_p token,
register token_p tp,int regno);
int eqtoken(token_p tp1,token_p tp2);
int distance(int cindex);
unsigned costcalc(cost_t cost);
int ssize(int tokexpno);
int tsize(register token_p tp);
#ifdef MAXSPLIT
int instsize(int tinstno,token_p tp);
#endif /* MAXSPLIT */
void tref(register token_p tp,int amount);
#ifdef MAXSPLIT
int split(token_p tp,int *ip,int ply,int toplevel);
#endif /* MAXSPLIT */
unsigned docoerc(token_p tp,c3_p cp,int ply,int toplevel,int forced);
unsigned stackupto(token_p limit,int ply,int toplevel);
c3_p findcoerc(token_p tp,set_p tep);
void error(char *s, ...);
void fatal(char *s, ...);
#ifndef NDEBUG
void badassertion(char* asstr,char *file,int line);
#endif
int max(int a,int b);
#endif /* SUBR_H_ */