48 lines
1.1 KiB
C
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_ */
|