#include "stdio.h"
#include "stdlib.h"
#include "strstream.h"
#include "iostream.h"
#include "fstream.h"
#include "string.h"
#include "sys/ddi.h"
#include "math.h"

#include "global.h"

struct ASCLine                             // ASC op line
{
  char opcode[MAX_LENGTH_NAME];
  int D[2],Md[2][MAX_DIM],Sig[2],Noi[2],T[2][MAX_DIM]; 
  char r[MAX_LENGTH_NAME],o[MAX_LENGTH_NAME];
  int Pr,Po;
} ASC;

struct ASMLine                             // ASM op line
{
  char opcode[MAX_LENGTH_NAME];
  int regsize1,regsize2,regsize3;
  char regid1[MAX_LENGTH_REGID],regid2[MAX_LENGTH_REGID],regid3[MAX_LENGTH_REGID];
} ASM;

int MESH=1;

//int mesh_size;

int Nasc=0,Nasm,Nbvc;
char ASCcall[MAXASCNO][MAX_LENGTH_LINE];
char** ASMcall[MAXASCNO];
char*** BVCcall[MAXASCNO];
int asmi,bvci;
int ASCBrace[MAX_NESTEDLOOP],ASMBrace[MAX_NESTEDLOOP],BVCBrace[MAX_NESTEDLOOP];
int ascbrc=0,asmbrc=0,bvcbrc=0;
int eof[3];

TransTable Trn[TYPENO];
int Dat[TYPENO][4][MAXASCNO],Ins[TYPENO][4];


char typehtbl[TYPENO][2][MAX_LENGTH_NAME];
int TPN=0;
int asctp,asmtp,bvctp;
void type(const char[MAX_LENGTH_NAME],char[MAX_LENGTH_NAME],int&);

char asc[MAXASCNO][MAX_LENGTH_NAME];

