CIRC1, GT1, GT2, LT1, LT2, OR1, AND1, ASG1, NOT1, DOTS1, S_SELF=MAXSTATE, S_SELFB, S_EOF, S_NL, S_EOFSTR, S_STNL, S_COMNL, S_EOFCOM, S_COMMENT, S_EOB, S_WS, S_NAME }; int tottok; int tokkind[256]; struct fsm { int state; /* if in this state */ uchar ch[4]; /* and see one of these characters */ int nextstate; /* enter this state if +ve */ }; /*const*/ struct fsm fsm[] = { /* start state */ { START, { C_XX }, ACT(UNCLASS,S_SELF) }, { START, { ' ', '\t', '\v' }, WS1 }, { START, { C_NUM }, NUM1 }, { START, { '.' }, NUM3 }, { START, { C_ALPH }, ID1 }, { START, { 'L' }, ST1 }, { START, { '"' }, ST2 }, { START, { '\'' }, CC1 }, { START, { '/' }, COM1 }, { START, { EOFC }, S_EOF }, { START, { '\n' }, S_NL }, { START, { '-' }, MINUS1 }, { START, { '+' }, PLUS1 }, { START, { '<' }, LT1 }, { START, { '>' }, GT1 }, { START, { '=' }, ASG1 },
#include "misc.h" #include "load.h" #include "trace.h" #include "err.h" static int disassemble = 0; /* This must be higher than any other option index. */ #define OPT_ACT 400 #define ACT(E,A) (OPT_ACT + SIM_ERR_##E * SIM_ERRACTION_NUM_ACTIONS + SIM_ERRACTION_##A) static struct option sim_options[] = { { "end-sim-args", 0, NULL, 'E' }, { "exit-null-deref", 0, NULL, ACT(NULL_POINTER_DEREFERENCE,EXIT) }, { "warn-null-deref", 0, NULL, ACT(NULL_POINTER_DEREFERENCE,WARN) }, { "ignore-null-deref", 0, NULL, ACT(NULL_POINTER_DEREFERENCE,IGNORE) }, { "exit-unwritten-pages", 0, NULL, ACT(READ_UNWRITTEN_PAGES,EXIT) }, { "warn-unwritten-pages", 0, NULL, ACT(READ_UNWRITTEN_PAGES,WARN) }, { "ignore-unwritten-pages", 0, NULL, ACT(READ_UNWRITTEN_PAGES,IGNORE) }, { "exit-unwritten-bytes", 0, NULL, ACT(READ_UNWRITTEN_BYTES,EXIT) }, { "warn-unwritten-bytes", 0, NULL, ACT(READ_UNWRITTEN_BYTES,WARN) }, { "ignore-unwritten-bytes", 0, NULL, ACT(READ_UNWRITTEN_BYTES,IGNORE) }, { "exit-corrupt-stack", 0, NULL, ACT(CORRUPT_STACK,EXIT) }, { "warn-corrupt-stack", 0, NULL, ACT(CORRUPT_STACK,WARN) }, { "ignore-corrupt-stack", 0, NULL, ACT(CORRUPT_STACK,IGNORE) }, { 0, 0, 0, 0 } }; static void