7 void getline(char *buf,int *num,int max_num);
9 #define YY_INPUT(buf,result,max_size) {\
10 getline(buf,&result,max_size);\
25 "0x"?{DIGIT}+ { yylval = strtol(yytext,NULL,0); return TOK_NUM; }
26 "ax" { return TOK_REG_AX; }
27 "bx" { return TOK_REG_BX; }
28 "cx" { return TOK_REG_CX; }
29 "dx" { return TOK_REG_DX; }
30 "di" { return TOK_REG_SI; }
31 "si" { return TOK_REG_DI; }
32 "ds" { return TOK_SEG_DS; }
33 "es" { return TOK_SEG_ES; }
34 ":" { return TOK_SEP;}
35 "$"{DIGIT}{1,2} { yylval = strtol(yytext+1,NULL,0); return TOK_VAR; }
36 "$mem" { return TOK_VAR_MEM; }
38 "#".*[\n] { return TOK_END; }
39 "boot" { return TOK_COMMAND_BOOT; }
40 "do" { return TOK_COMMAND_EXEC; }
41 "\"".*"\"" { yylval = (unsigned long) yytext; return TOK_STRING; }
42 "byte" { return TOK_BYTE; }
43 "word" { return TOK_WORD; }
44 "long" { return TOK_LONG; }
45 "setmem" { return TOK_COMMAND_MEMSET; }
46 "dumpmem" { return TOK_COMMAND_MEMDUMP; }
47 "quit" { return TOK_COMMAND_QUIT; }
48 "\n" { return TOK_END; }
49 "select" { return TOK_SELECT; }
50 "isa" { return TOK_ISA; }
51 "pci" { return TOK_PCI; }
52 "pport" { return TOK_PRINT_PORT; }
53 "iostat" { return TOK_IOSTAT; }
54 "pirq" { return TOK_PRINT_IRQ; }
55 "ppci" { return TOK_PPCI; }
56 "pip" { return TOK_PIP; }
57 "trace" { return TOK_TRACE; }
58 "on" { return TOK_ON; }
59 "off" { return TOK_OFF; }
60 "verbose" { return TOK_VERBOSE; }
61 "log" { return TOK_LOG; }
62 "print" { return TOK_STDOUT; }
63 "clstat" { return TOK_CLSTAT; }
64 "hlt" { return TOK_HLT; }
65 "del" { return TOK_DEL; }
66 "ioperm" { return TOK_IOPERM; }
67 "lpci" { return TOK_DUMP_PCI; }
68 "bootbios" { return TOK_BOOT_BIOS; }
70 . { return TOK_ERROR; }