/* ---------------------------------------------------------------------- */ /* Copyright (C) 1991 by Natrlich! */ /* This file is copyrighted! */ /* Refer to the documentation for details. */ /* ---------------------------------------------------------------------- */ #define DEBUG 0 #define TOKDEBUG 0 /* following set 4 Atari 8MHz */ #define FINPUT_IO 1 /* yields 15% speed increase */ #define QINPUT_IO 1 /* yields 20% speed increase */ #define USEINLINE 0 #define QSTRING 0 /* 1 == doesn't do much */ #define QWHITE 1 #define QCOMMENT 1 #define QIDENT 1 #define QIDENT2 0 /* 1 == worsens performance ! */ #define QLABEL 0 /* 1 == doesn't do anything */ #define QMACRO 0 /* 1 == same or worse */ #define QDIRECT 0 /* 1 == doesn't do anything */ /* --------------------------------------------------------- */ /* SHIT!! FLEX can't digest characters >= 128 */ /* Now I have to write my own lexer... */ /* --------------------------------------------------------- */ #include "defines.h" #include "nasm.h" #include "y_tab.h" #include #if OS == TOS #include #endif #include #include "debug.h" #include "code.h" #include NMALLOC_H #if VERSION && FINPUT_IO extern buffer huge *bp; # include "inputfst.h" #endif #define LINESTART 0 #define INSTRUCTION 1 #define AFTERINSTR 2 #define AFTERELSE 3 #define AFTEROPTION 4 #define AFTERFLOAT 5 #define AFTERINCLUDE 6 #define COMMENT 7 #define E_GARBAGE garbage /* historic */ #define E_LABELFORM labelform #define E_HEXLEN hexlen #define E_INTSIZE intsize static char igarbage[] = "Garbage in the instruction field", garbage[] = "Totally uncomprehendable garbage", labelform[] = "Label starts off with wrong character", hexlen[] = "Hex value exceeds 16 Bit (not that good on a 64K machine)", intsize[] = "Integer value >= 65536, how would that fit into 2 bytes ?", mpara_incomplete[] = "Incomplete macro parameter (form %[$]<[0-9]+|(