From 3a420aacaaf5ae9e377254efd8a69dc0a106d8fd Mon Sep 17 00:00:00 2001 From: Stanislav Shwartsman Date: Mon, 13 Feb 2006 21:32:21 +0000 Subject: [PATCH] First step in removing of bx_num_range, fixed parser. Cleaned and improved 'info idt' 'info ivt' and 'info gdt' commands --- bochs/bx_debug/dbg_main.cc | 293 +++--- bochs/bx_debug/debug.h | 12 +- bochs/bx_debug/lexer.c | 4 +- bochs/bx_debug/parser.c | 1969 ++++++++++++++++++------------------ bochs/bx_debug/parser.h | 2 +- bochs/bx_debug/parser.y | 694 +++++++------ 6 files changed, 1490 insertions(+), 1484 deletions(-) diff --git a/bochs/bx_debug/dbg_main.cc b/bochs/bx_debug/dbg_main.cc index f4417fed4..3fe55e304 100644 --- a/bochs/bx_debug/dbg_main.cc +++ b/bochs/bx_debug/dbg_main.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: dbg_main.cc,v 1.56 2006-02-13 18:28:13 sshwarts Exp $ +// $Id: dbg_main.cc,v 1.57 2006-02-13 21:32:20 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -2744,7 +2744,7 @@ void bx_dbg_print_descriptor (unsigned char desc[8], int verbose) // either a code or a data segment. bit 11 (type file MSB) then says // 0=data segment, 1=code seg if (type&8) { - dbg_printf("Code segment, linearaddr=%08x, len=%05x %s, %s%s%s, %d-bit addrs\n", + dbg_printf("Code segment, linearaddr=%08x, len=%05x %s, %s%s%s, %d-bit\n", base, limit, g ? "* 4Kbytes" : "bytes", (type&2)? "Execute/Read" : "Execute-Only", (type&4)? ", Conforming" : "", @@ -2788,21 +2788,29 @@ void bx_dbg_print_descriptor (unsigned char desc[8], int verbose) } } -void bx_dbg_info_idt_command(bx_num_range range) +void bx_dbg_info_idt_command(unsigned from, unsigned to) { bx_dbg_cpu_t cpu; BX_CPU(dbg_cpu)->dbg_get_cpu(&cpu); - int n, print_table = 0; - if (range.to == EMPTY_ARG) { - // show all entries - range.from = 0; - range.to = (cpu.idtr.limit) / 8; - print_table = 1; + bx_bool all = 0; + + if (to == (unsigned) EMPTY_ARG) { + to = from; + if(from == (unsigned) EMPTY_ARG) { from = 0; to = 255; all = 1; } } - if (print_table) - dbg_printf("Interrupt Descriptor Table (0x%08x):\n", cpu.idtr.base); - for (n = (int)range.from; n<=(int)range.to; n++) { - unsigned char entry[8]; + if (from > 255 || to > 255) { + dbg_printf("IDT entry should be [0-255], 'info idt' command malformed\n"); + return; + } + if (from > to) { + unsigned temp = from; + from = to; + to = temp; + } + + dbg_printf("Interrupt Descriptor Table (base=0x%08x):\n", cpu.idtr.base); + for (unsigned n = from; n<=to; n++) { + Bit8u entry[8]; if (bx_dbg_read_linear(dbg_cpu, cpu.idtr.base + 8*n, 8, entry)) { dbg_printf("IDT[0x%02x]=", n); bx_dbg_print_descriptor(entry, 0); @@ -2812,25 +2820,33 @@ void bx_dbg_info_idt_command(bx_num_range range) n, cpu.idtr.base); } } - if (print_table) - dbg_printf("You can list individual entries with 'info idt NUM' or groups with 'info idt NUMNUM'\n"); + if (all) + dbg_printf("You can list individual entries with 'info idt [NUM]' or groups with 'info idt [NUM] [NUM]'\n"); } -void bx_dbg_info_gdt_command(bx_num_range range) +void bx_dbg_info_gdt_command(unsigned from, unsigned to) { bx_dbg_cpu_t cpu; BX_CPU(dbg_cpu)->dbg_get_cpu(&cpu); - int n, print_table = 0; - if (range.to == EMPTY_ARG) { - // show all entries - range.from = 0; - range.to = (cpu.gdtr.limit) / 8; - print_table = 1; + bx_bool all = 0; + + if (to == (unsigned) EMPTY_ARG) { + to = from; + if(from == (unsigned) EMPTY_ARG) { from = 0; to = 0xffff; all = 1; } } - if (print_table) - dbg_printf("Global Descriptor Table (0x%08x):\n", cpu.gdtr.base); - for (n = (int)range.from; n<=(int)range.to; n++) { - unsigned char entry[8]; + if (from > 0xffff || to > 0xffff) { + dbg_printf("IDT entry should be [0-65535], 'info gdt' command malformed\n"); + return; + } + if (from > to) { + unsigned temp = from; + from = to; + to = temp; + } + + dbg_printf("Global Descriptor Table (base=0x%08x):\n", cpu.gdtr.base); + for (unsigned n = from; n<=to; n++) { + Bit8u entry[8]; if (bx_dbg_read_linear(dbg_cpu, cpu.gdtr.base + 8*n, 8, entry)) { dbg_printf("GDT[0x%02x]=", n); bx_dbg_print_descriptor (entry, 0); @@ -2840,18 +2856,115 @@ void bx_dbg_info_gdt_command(bx_num_range range) n, cpu.gdtr.base); } } - if (print_table) - dbg_printf("You can list individual entries with 'info gdt NUM'.\n"); + if (all) + dbg_printf("You can list individual entries with 'info gdt [NUM]' or groups with 'info gdt [NUM] [NUM]'\n"); } -void bx_dbg_info_ldt_command(bx_num_range n) +void bx_dbg_info_ldt_command(unsigned from, unsigned to) { bx_dbg_cpu_t cpu; BX_CPU(dbg_cpu)->dbg_get_cpu(&cpu); dbg_printf("Local Descriptor Table output not implemented\n"); } -static void bx_dbg_print_tss (unsigned char *tss, int len) +/*form RB list*/ +static char* bx_dbg_ivt_desc(int intnum) +{ + char* ret = ""; + switch (intnum) + { case 0x00 : ret = "DIVIDE ERROR" ; break; + case 0x01 : ret = "SINGLE STEP" ; break; + case 0x02 : ret = "NON-MASKABLE INTERRUPT" ; break; + case 0x03 : ret = "BREAKPOINT" ; break; + case 0x04 : ret = "INT0 DETECTED OVERFLOW" ; break; + case 0x05 : ret = "BOUND RANGE EXCEED" ; break; + case 0x06 : ret = "INVALID OPCODE" ; break; + case 0x07 : ret = "PROCESSOR EXTENSION NOT AVAILABLE" ; break; + case 0x08 : ret = "IRQ0 - SYSTEM TIMER" ; break; + case 0x09 : ret = "IRQ1 - KEYBOARD DATA READY" ; break; + case 0x0a : ret = "IRQ2 - LPT2" ; break; + case 0x0b : ret = "IRQ3 - COM2" ; break; + case 0x0c : ret = "IRQ4 - COM1" ; break; + case 0x0d : ret = "IRQ5 - FIXED DISK" ; break; + case 0x0e : ret = "IRQ6 - DISKETTE CONTROLLER" ; break; + case 0x0f : ret = "IRQ7 - PARALLEL PRINTER" ; break; + case 0x10 : ret = "VIDEO" ; break; + case 0x11 : ret = "GET EQUIPMENT LIST" ; break; + case 0x12 : ret = "GET MEMORY SIZE" ; break; + case 0x13 : ret = "DISK" ; break; + case 0x14 : ret = "SERIAL" ; break; + case 0x15 : ret = "SYSTEM" ; break; + case 0x16 : ret = "KEYBOARD" ; break; + case 0x17 : ret = "PRINTER" ; break; + case 0x18 : ret = "CASETTE BASIC" ; break; + case 0x19 : ret = "BOOTSTRAP LOADER" ; break; + case 0x1a : ret = "TIME" ; break; + case 0x1b : ret = "KEYBOARD - CONTROL-BREAK HANDLER" ; break; + case 0x1c : ret = "TIME - SYSTEM TIMER TICK" ; break; + case 0x1d : ret = "SYSTEM DATA - VIDEO PARAMETER TABLES"; break; + case 0x1e : ret = "SYSTEM DATA - DISKETTE PARAMETERS" ; break; + case 0x1f : ret = "SYSTEM DATA - 8x8 GRAPHICS FONT" ; break; + case 0x70 : ret = "IRQ8 - CMOS REAL-TIME CLOCK" ; break; + case 0x71 : ret = "IRQ9 - REDIRECTED TO INT 0A BY BIOS" ; break; + case 0x72 : ret = "IRQ10 - RESERVED" ; break; + case 0x73 : ret = "IRQ11 - RESERVED" ; break; + case 0x74 : ret = "IRQ12 - POINTING DEVICE" ; break; + case 0x75 : ret = "IRQ13 - MATH COPROCESSOR EXCEPTION" ; break; + case 0x76 : ret = "IRQ14 - HARD DISK CONTROLLER OPERATION COMPLETE"; break; + case 0x77 : ret = "IRQ15 - SECONDARY IDE CONTROLLER OPERATION COMPLETE"; break; + default : ret = "" ; break; + } + return ret; +} + +void bx_dbg_info_ivt_command(unsigned from, unsigned to) +{ + bx_dbg_cpu_t cpu; + unsigned char buff[4]; + Bit16u seg; + Bit16u off; + bx_bool all = 0; + + BX_CPU(dbg_cpu)->dbg_get_cpu(&cpu); + + if ((cpu.cr0 & 1) == 0) + { + if (to == (unsigned) EMPTY_ARG) { + to = from; + if(from == (unsigned) EMPTY_ARG) { from = 0; to = 255; all = 1; } + } + if (from > 255 || to > 255) { + dbg_printf("IVT entry should be [0-255], 'info ivt' command malformed\n"); + return; + } + if (from > to) { + unsigned temp = from; + from = to; + to = temp; + } + + for (unsigned i = from; i <= to; i++) + { + BX_MEM(0)->dbg_fetch_mem(cpu.idtr.base + i * 4, sizeof(buff), buff); +#ifdef BX_LITTLE_ENDIAN + seg = *(Bit16u*)(&buff[2]); + off = *(Bit16u*)(&buff[0]); +#else + seg = (buff[3] << 8) | buff[2]; + off = (buff[1] << 8) | buff[0]; +#endif + BX_MEM(0)->dbg_fetch_mem(cpu.idtr.base + ((seg << 4) + off), sizeof(buff), buff); + dbg_printf("INT# %02x > %04X:%04X (%08X) %s%s\n", i, seg, off, + cpu.idtr.base + ((seg << 4) + off), bx_dbg_ivt_desc(i), + (buff[0] == 0xcf) ? " ; dummy iret" : ""); + } + if (all) dbg_printf("You can list individual entries with 'info ivt [NUM]' or groups with 'info ivt [NUM] [NUM]'\n"); + } + else + dbg_printf("cpu in protected mode, use info idt\n"); +} + +static void bx_dbg_print_tss(unsigned char *tss, int len) { if (len<104) { dbg_printf("Invalid tss length (limit must be greater then 103)\n"); @@ -2882,32 +2995,24 @@ static void bx_dbg_print_tss (unsigned char *tss, int len) dbg_printf("i/o map: 0x%04x\n", *(Bit16u*)(tss+0x66)); } -void bx_dbg_info_tss_command(bx_num_range range) +void bx_dbg_info_tss_command(void) { bx_dbg_cpu_t cpu; BX_CPU(dbg_cpu)->dbg_get_cpu(&cpu); - int print_table = 0; - if (range.to == EMPTY_ARG) { - // show all entries - Bit32u laddr = (cpu.tr.des_l>>16) | - ((cpu.tr.des_h<<16)&0x00ff0000) | + Bit32u laddr = (cpu.tr.des_l>>16) | + ((cpu.tr.des_h<<16)&0x00ff0000) | (cpu.tr.des_h & 0xff000000); - Bit32u len = (cpu.tr.des_l & 0xffff) + 1; + Bit32u len = (cpu.tr.des_l & 0xffff) + 1; - dbg_printf("tr:s=0x%x, base=0x%x, valid=%u\n", + dbg_printf("tr:s=0x%x, base=0x%x, valid=%u\n", (unsigned) cpu.tr.sel, laddr, (unsigned) cpu.tr.valid); - Bit32u paddr; - bx_bool paddr_valid; - BX_CPU(dbg_cpu)->dbg_xlate_linear2phy(laddr, &paddr, &paddr_valid); + bx_bool paddr_valid; + Bit32u paddr; + BX_CPU(dbg_cpu)->dbg_xlate_linear2phy(laddr, &paddr, &paddr_valid); - bx_dbg_print_tss(BX_MEM(0)->vector+paddr, len); - - range.from = 0; - range.to = (cpu.gdtr.limit) / 8; - print_table = 1; - } + bx_dbg_print_tss(BX_MEM(0)->vector+paddr, len); } bx_num_range make_num_range (Bit64s from, Bit64s to) @@ -3173,100 +3278,6 @@ void bx_dbg_dump_table(void) start_lin, 0xffffffff, start_phy, start_phy + (0xffffffff-start_lin)); } -/*form RB list*/ -static char* bx_dbg_ivt_desc(int intnum) -{ - char* ret = ""; - switch (intnum) - { case 0x00 : ret = "DIVIDE ERROR" ; break; - case 0x01 : ret = "SINGLE STEP" ; break; - case 0x02 : ret = "NON-MASKABLE INTERRUPT" ; break; - case 0x03 : ret = "BREAKPOINT" ; break; - case 0x04 : ret = "INT0 DETECTED OVERFLOW" ; break; - case 0x05 : ret = "BOUND RANGE EXCEED" ; break; - case 0x06 : ret = "INVALID OPCODE" ; break; - case 0x07 : ret = "PROCESSOR EXTENSION NOT AVAILABLE" ; break; - case 0x08 : ret = "IRQ0 - SYSTEM TIMER" ; break; - case 0x09 : ret = "IRQ1 - KEYBOARD DATA READY" ; break; - case 0x0a : ret = "IRQ2 - LPT2" ; break; - case 0x0b : ret = "IRQ3 - COM2" ; break; - case 0x0c : ret = "IRQ4 - COM1" ; break; - case 0x0d : ret = "IRQ5 - FIXED DISK" ; break; - case 0x0e : ret = "IRQ6 - DISKETTE CONTROLLER" ; break; - case 0x0f : ret = "IRQ7 - PARALLEL PRINTER" ; break; - case 0x10 : ret = "VIDEO" ; break; - case 0x11 : ret = "GET EQUIPMENT LIST" ; break; - case 0x12 : ret = "GET MEMORY SIZE" ; break; - case 0x13 : ret = "DISK" ; break; - case 0x14 : ret = "SERIAL" ; break; - case 0x15 : ret = "SYSTEM" ; break; - case 0x16 : ret = "KEYBOARD" ; break; - case 0x17 : ret = "PRINTER" ; break; - case 0x18 : ret = "CASETTE BASIC" ; break; - case 0x19 : ret = "BOOTSTRAP LOADER" ; break; - case 0x1a : ret = "TIME" ; break; - case 0x1b : ret = "KEYBOARD - CONTROL-BREAK HANDLER" ; break; - case 0x1c : ret = "TIME - SYSTEM TIMER TICK" ; break; - case 0x1d : ret = "SYSTEM DATA - VIDEO PARAMETER TABLES"; break; - case 0x1e : ret = "SYSTEM DATA - DISKETTE PARAMETERS" ; break; - case 0x1f : ret = "SYSTEM DATA - 8x8 GRAPHICS FONT" ; break; - case 0x70 : ret = "IRQ8 - CMOS REAL-TIME CLOCK" ; break; - case 0x71 : ret = "IRQ9 - REDIRECTED TO INT 0A BY BIOS" ; break; - case 0x72 : ret = "IRQ10 - RESERVED" ; break; - case 0x73 : ret = "IRQ11 - RESERVED" ; break; - case 0x74 : ret = "IRQ12 - POINTING DEVICE" ; break; - case 0x75 : ret = "IRQ13 - MATH COPROCESSOR EXCEPTION" ; break; - case 0x76 : ret = "IRQ14 - HARD DISK CONTROLLER OPERATION COMPLETE"; break; - case 0x77 : ret = "IRQ15 - SECONDARY IDE CONTROLLER OPERATION COMPLETE"; break; - default : ret = "" ; break; - } - return ret; -} - -void bx_dbg_info_ivt_command(bx_num_range r) -{ - bx_dbg_cpu_t cpu; - int i; - unsigned char buff[4]; - Bit16u seg; - Bit16u off; - int tail = 0; - - BX_CPU(dbg_cpu)->dbg_get_cpu(&cpu); - - if ((cpu.cr0 & 1) == 0) - { - if ((r.from == -1L) && (r.to == -1L)) - { r.from = 0; - r.to = 256; - tail = 1; - } - else if (r.to == r.from) - { r.to = r.from + 1L; - } - if ((r.from > r.to) || (r.from > 256) || (r.to > 256)) - { dbg_printf("wrong range\n"); - return; - } - for (i = (int)r.from; i < r.to; i++) - { - BX_MEM(0)->dbg_fetch_mem(cpu.idtr.base + i * 4, sizeof(buff), buff); -#ifdef BX_LITTLE_ENDIAN - seg = *(Bit16u*)(&buff[2]); - off = *(Bit16u*)(&buff[0]); -#else - seg = (buff[3] << 8) | buff[2]; - off = (buff[1] << 8) | buff[0]; -#endif - BX_MEM(0)->dbg_fetch_mem(cpu.idtr.base + ((seg << 4) + off), sizeof(buff), buff); - dbg_printf("INT# %02x > %04X:%04X (%08X) %s%s\n", i, seg, off, cpu.idtr.base + ((seg << 4) + off), bx_dbg_ivt_desc(i), (buff[0] == 0xcf) ? " ; dummy iret" : ""); - } - if (tail == 1) dbg_printf("You can list individual entries with 'info ivt NUM' or groups with 'info ivt NUM NUM'\n"); - } - else - dbg_printf("cpu in protected mode, use info idt\n"); -} - void bx_dbg_print_help(void) { dbg_printf("h|help - show list of debugger commands\n"); diff --git a/bochs/bx_debug/debug.h b/bochs/bx_debug/debug.h index b94753e1c..9e1f61e67 100644 --- a/bochs/bx_debug/debug.h +++ b/bochs/bx_debug/debug.h @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: debug.h,v 1.21 2006-02-13 18:28:13 sshwarts Exp $ +// $Id: debug.h,v 1.22 2006-02-13 21:32:21 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -274,10 +274,11 @@ void bx_dbg_quit_command(void); #define BX_INFO_SSE_REGS 4 void bx_dbg_info_registers_command(int); void bx_dbg_info_dirty_command(void); -void bx_dbg_info_idt_command(bx_num_range); -void bx_dbg_info_gdt_command(bx_num_range); -void bx_dbg_info_ldt_command(bx_num_range); -void bx_dbg_info_tss_command(bx_num_range); +void bx_dbg_info_ivt_command(unsigned from, unsigned to); +void bx_dbg_info_idt_command(unsigned from, unsigned to); +void bx_dbg_info_gdt_command(unsigned from, unsigned to); +void bx_dbg_info_ldt_command(unsigned from, unsigned to); +void bx_dbg_info_tss_command(void); void bx_dbg_info_control_regs_command(void); void bx_dbg_info_flags(void); void bx_dbg_info_linux_command(void); @@ -299,7 +300,6 @@ void bx_dbg_info_pic(void); void bx_dbg_info_vga(void); void bx_dbg_print_help(void); void bx_dbg_calc_command(Bit64u value); -void bx_dbg_info_ivt_command(bx_num_range); void bx_dbg_dump_table(void); int bx_dbg_show_symbolic(void); void bx_dbg_set_symbol_command(char *symbol, Bit32u val); diff --git a/bochs/bx_debug/lexer.c b/bochs/bx_debug/lexer.c index 68fd3319f..c594c00ca 100644 --- a/bochs/bx_debug/lexer.c +++ b/bochs/bx_debug/lexer.c @@ -19,7 +19,7 @@ /* A lexical scanner generated by flex */ /* Scanner skeleton version: - * $Header: /home/volker/Archiv/bochs-cvs-rsync-20110222/bochs/bx_debug/lexer.c,v 1.16 2006-02-13 18:28:13 sshwarts Exp $ + * $Header: /home/volker/Archiv/bochs-cvs-rsync-20110222/bochs/bx_debug/lexer.c,v 1.17 2006-02-13 21:32:21 sshwarts Exp $ */ #define FLEX_SCANNER @@ -1055,7 +1055,7 @@ char *yytext; #define INITIAL 0 #line 2 "lexer.l" ///////////////////////////////////////////////////////////////////////// -// $Id: lexer.c,v 1.16 2006-02-13 18:28:13 sshwarts Exp $ +// $Id: lexer.c,v 1.17 2006-02-13 21:32:21 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// #include diff --git a/bochs/bx_debug/parser.c b/bochs/bx_debug/parser.c index d24c9e228..bc72c6d18 100644 --- a/bochs/bx_debug/parser.c +++ b/bochs/bx_debug/parser.c @@ -275,11 +275,6 @@ #if BX_DEBUGGER -// %left '-' '+' -// %left '*' '/' -// %right -// %nonassoc UMINUS - /* Enabling traces. */ #ifndef YYDEBUG @@ -295,7 +290,7 @@ #endif #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) -#line 19 "parser.y" +#line 13 "parser.y" typedef union YYSTYPE { char *sval; Bit64u uval; @@ -303,7 +298,7 @@ typedef union YYSTYPE { bx_num_range uval_range; } YYSTYPE; /* Line 191 of yacc.c. */ -#line 307 "y.tab.c" +#line 302 "y.tab.c" # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 # define YYSTYPE_IS_TRIVIAL 1 @@ -315,7 +310,7 @@ typedef union YYSTYPE { /* Line 214 of yacc.c. */ -#line 319 "y.tab.c" +#line 314 "y.tab.c" #if ! defined (yyoverflow) || YYERROR_VERBOSE @@ -414,16 +409,16 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 246 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 932 +#define YYLAST 914 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 115 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 47 +#define YYNNTS 48 /* YYNRULES -- Number of rules. */ -#define YYNRULES 232 +#define YYNRULES 234 /* YYNRULES -- Number of states. */ -#define YYNSTATES 448 +#define YYNSTATES 452 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 @@ -488,20 +483,20 @@ static const unsigned short yyprhs[] = 171, 176, 181, 185, 190, 196, 199, 203, 206, 209, 213, 216, 221, 227, 233, 239, 245, 251, 257, 260, 266, 269, 273, 277, 280, 284, 289, 292, 295, 299, - 303, 307, 311, 315, 319, 323, 327, 332, 337, 342, - 347, 352, 356, 360, 364, 368, 373, 377, 381, 387, - 395, 399, 403, 404, 406, 408, 411, 414, 417, 421, - 425, 429, 432, 437, 441, 445, 448, 454, 458, 462, - 467, 471, 474, 478, 483, 487, 493, 497, 501, 506, - 510, 514, 518, 522, 526, 530, 534, 538, 542, 546, - 550, 554, 558, 562, 566, 570, 574, 578, 582, 586, - 590, 594, 598, 602, 606, 610, 614, 618, 622, 626, - 630, 634, 638, 642, 646, 650, 653, 657, 659, 661, - 663, 665, 667, 669, 671, 673, 675, 677, 681, 685, - 689, 693, 697, 701, 705, 709, 713, 716, 719, 723, - 725, 727, 729, 731, 733, 735, 737, 739, 741, 743, - 745, 749, 753, 757, 761, 765, 769, 773, 777, 781, - 785, 788, 791 + 303, 307, 311, 315, 319, 323, 327, 333, 339, 345, + 351, 355, 359, 363, 367, 371, 376, 380, 384, 390, + 398, 402, 406, 407, 409, 410, 412, 414, 417, 420, + 423, 427, 431, 435, 438, 443, 447, 451, 454, 460, + 464, 468, 473, 477, 480, 484, 489, 493, 499, 503, + 507, 512, 516, 520, 524, 528, 532, 536, 540, 544, + 548, 552, 556, 560, 564, 568, 572, 576, 580, 584, + 588, 592, 596, 600, 604, 608, 612, 616, 620, 624, + 628, 632, 636, 640, 644, 648, 652, 656, 659, 663, + 665, 667, 669, 671, 673, 675, 677, 679, 681, 683, + 687, 691, 695, 699, 703, 707, 711, 715, 719, 722, + 725, 729, 731, 733, 735, 737, 739, 741, 743, 745, + 747, 749, 751, 755, 759, 763, 767, 771, 775, 779, + 783, 787, 791, 794, 797 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ @@ -509,13 +504,13 @@ static const short yyrhs[] = { 116, 0, -1, 116, 117, -1, 117, -1, 133, -1, 134, -1, 135, -1, 136, -1, 137, -1, 140, -1, - 143, -1, 138, -1, 139, -1, 144, -1, 145, -1, - 146, -1, 147, -1, 148, -1, 149, -1, 150, -1, - 151, -1, 152, -1, 153, -1, 154, -1, 155, -1, - 156, -1, 157, -1, 126, -1, 127, -1, 125, -1, + 144, -1, 138, -1, 139, -1, 145, -1, 146, -1, + 147, -1, 148, -1, 149, -1, 150, -1, 151, -1, + 152, -1, 153, -1, 154, -1, 155, -1, 156, -1, + 157, -1, 158, -1, 126, -1, 127, -1, 125, -1, 120, -1, 121, -1, 122, -1, 123, -1, 128, -1, 129, -1, 124, -1, 130, -1, 131, -1, 132, -1, - 158, -1, 159, -1, -1, 109, -1, 15, -1, 16, + 159, -1, 160, -1, -1, 109, -1, 15, -1, 16, -1, 8, -1, 9, -1, 10, -1, 11, -1, 12, -1, 13, -1, 70, 86, 109, -1, 69, 86, 109, -1, 71, 60, 109, -1, 72, 60, 109, -1, 73, @@ -530,92 +525,93 @@ static const short yyrhs[] = 86, 109, -1, 17, 109, -1, 18, 109, -1, 18, 86, 109, -1, 19, 109, -1, 21, 58, 118, 109, -1, 21, 50, 110, 86, 109, -1, 21, 4, 110, - 161, 109, -1, 21, 3, 110, 161, 109, -1, 21, - 5, 110, 161, 109, -1, 21, 6, 110, 161, 109, - -1, 21, 7, 110, 161, 109, -1, 24, 109, -1, - 24, 160, 111, 161, 109, -1, 25, 109, -1, 25, - 161, 109, -1, 25, 60, 109, -1, 26, 109, -1, - 26, 161, 109, -1, 26, 104, 161, 109, -1, 23, + 162, 109, -1, 21, 3, 110, 162, 109, -1, 21, + 5, 110, 162, 109, -1, 21, 6, 110, 162, 109, + -1, 21, 7, 110, 162, 109, -1, 24, 109, -1, + 24, 161, 111, 162, 109, -1, 25, 109, -1, 25, + 162, 109, -1, 25, 60, 109, -1, 26, 109, -1, + 26, 162, 109, -1, 26, 104, 162, 109, -1, 23, 109, -1, 82, 109, -1, 82, 60, 109, -1, 30, 26, 109, -1, 30, 33, 109, -1, 30, 32, 109, -1, 30, 34, 109, -1, 30, 35, 109, -1, 30, 36, 109, -1, 30, 43, 109, -1, 30, 37, 141, - 109, -1, 30, 38, 141, 109, -1, 30, 39, 141, - 109, -1, 30, 40, 141, 109, -1, 30, 41, 141, - 109, -1, 30, 42, 109, -1, 30, 14, 109, -1, - 30, 44, 109, -1, 30, 81, 109, -1, 30, 81, - 60, 109, -1, 30, 45, 109, -1, 30, 87, 109, - -1, 30, 87, 89, 86, 109, -1, 30, 87, 89, - 86, 32, 86, 109, -1, 30, 88, 109, -1, 30, - 92, 109, -1, -1, 142, -1, 161, -1, 161, 161, - -1, 32, 109, -1, 56, 109, -1, 27, 86, 109, - -1, 28, 86, 109, -1, 29, 86, 109, -1, 31, - 109, -1, 46, 47, 161, 109, -1, 46, 47, 109, - -1, 46, 161, 109, -1, 46, 109, -1, 49, 86, - 86, 86, 109, -1, 51, 52, 109, -1, 53, 54, - 109, -1, 53, 54, 86, 109, -1, 53, 55, 109, - -1, 57, 109, -1, 58, 141, 109, -1, 58, 48, - 141, 109, -1, 58, 66, 109, -1, 58, 67, 110, - 86, 109, -1, 59, 93, 109, -1, 62, 86, 109, - -1, 63, 86, 86, 109, -1, 90, 31, 109, -1, - 90, 17, 109, -1, 90, 18, 109, -1, 90, 19, - 109, -1, 90, 24, 109, -1, 90, 25, 109, -1, - 90, 27, 109, -1, 90, 28, 109, -1, 90, 29, - 109, -1, 90, 23, 109, -1, 90, 73, 109, -1, - 90, 63, 109, -1, 90, 64, 109, -1, 90, 65, - 109, -1, 90, 56, 109, -1, 90, 57, 109, -1, - 90, 68, 109, -1, 90, 70, 109, -1, 90, 69, - 109, -1, 90, 74, 109, -1, 90, 71, 109, -1, - 90, 72, 109, -1, 90, 80, 109, -1, 90, 82, - 109, -1, 90, 32, 109, -1, 90, 49, 109, -1, - 90, 58, 109, -1, 90, 75, 109, -1, 90, 76, - 109, -1, 90, 46, 109, -1, 90, 59, 109, -1, - 90, 21, 109, -1, 90, 30, 109, -1, 90, 79, - 109, -1, 90, 91, 109, -1, 90, 90, 109, -1, - 90, 109, -1, 91, 161, 109, -1, 86, -1, 4, - -1, 3, -1, 5, -1, 6, -1, 7, -1, 119, - -1, 97, -1, 98, -1, 99, -1, 160, 100, 160, - -1, 160, 101, 160, -1, 160, 104, 160, -1, 160, - 105, 160, -1, 160, 95, 160, -1, 160, 96, 160, - -1, 160, 102, 160, -1, 160, 103, 160, -1, 160, - 106, 160, -1, 112, 160, -1, 101, 160, -1, 113, - 160, 114, -1, 86, -1, 60, -1, 4, -1, 3, - -1, 5, -1, 6, -1, 7, -1, 119, -1, 97, - -1, 98, -1, 99, -1, 161, 111, 161, -1, 161, - 100, 161, -1, 161, 101, 161, -1, 161, 104, 161, - -1, 161, 105, 161, -1, 161, 95, 161, -1, 161, - 96, 161, -1, 161, 102, 161, -1, 161, 103, 161, - -1, 161, 106, 161, -1, 112, 161, -1, 101, 161, - -1, 113, 161, 114, -1 + 141, 109, -1, 30, 38, 141, 141, 109, -1, 30, + 39, 141, 141, 109, -1, 30, 40, 141, 141, 109, + -1, 30, 42, 109, -1, 30, 41, 109, -1, 30, + 14, 109, -1, 30, 44, 109, -1, 30, 81, 109, + -1, 30, 81, 60, 109, -1, 30, 45, 109, -1, + 30, 87, 109, -1, 30, 87, 89, 86, 109, -1, + 30, 87, 89, 86, 32, 86, 109, -1, 30, 88, + 109, -1, 30, 92, 109, -1, -1, 86, -1, -1, + 143, -1, 162, -1, 162, 162, -1, 32, 109, -1, + 56, 109, -1, 27, 86, 109, -1, 28, 86, 109, + -1, 29, 86, 109, -1, 31, 109, -1, 46, 47, + 162, 109, -1, 46, 47, 109, -1, 46, 162, 109, + -1, 46, 109, -1, 49, 86, 86, 86, 109, -1, + 51, 52, 109, -1, 53, 54, 109, -1, 53, 54, + 86, 109, -1, 53, 55, 109, -1, 57, 109, -1, + 58, 142, 109, -1, 58, 48, 142, 109, -1, 58, + 66, 109, -1, 58, 67, 110, 86, 109, -1, 59, + 93, 109, -1, 62, 86, 109, -1, 63, 86, 86, + 109, -1, 90, 31, 109, -1, 90, 17, 109, -1, + 90, 18, 109, -1, 90, 19, 109, -1, 90, 24, + 109, -1, 90, 25, 109, -1, 90, 27, 109, -1, + 90, 28, 109, -1, 90, 29, 109, -1, 90, 23, + 109, -1, 90, 73, 109, -1, 90, 63, 109, -1, + 90, 64, 109, -1, 90, 65, 109, -1, 90, 56, + 109, -1, 90, 57, 109, -1, 90, 68, 109, -1, + 90, 70, 109, -1, 90, 69, 109, -1, 90, 74, + 109, -1, 90, 71, 109, -1, 90, 72, 109, -1, + 90, 80, 109, -1, 90, 82, 109, -1, 90, 32, + 109, -1, 90, 49, 109, -1, 90, 58, 109, -1, + 90, 75, 109, -1, 90, 76, 109, -1, 90, 46, + 109, -1, 90, 59, 109, -1, 90, 21, 109, -1, + 90, 30, 109, -1, 90, 79, 109, -1, 90, 91, + 109, -1, 90, 90, 109, -1, 90, 109, -1, 91, + 162, 109, -1, 86, -1, 4, -1, 3, -1, 5, + -1, 6, -1, 7, -1, 119, -1, 97, -1, 98, + -1, 99, -1, 161, 100, 161, -1, 161, 101, 161, + -1, 161, 104, 161, -1, 161, 105, 161, -1, 161, + 95, 161, -1, 161, 96, 161, -1, 161, 102, 161, + -1, 161, 103, 161, -1, 161, 106, 161, -1, 112, + 161, -1, 101, 161, -1, 113, 161, 114, -1, 86, + -1, 60, -1, 4, -1, 3, -1, 5, -1, 6, + -1, 7, -1, 119, -1, 97, -1, 98, -1, 99, + -1, 162, 111, 162, -1, 162, 100, 162, -1, 162, + 101, 162, -1, 162, 104, 162, -1, 162, 105, 162, + -1, 162, 95, 162, -1, 162, 96, 162, -1, 162, + 102, 162, -1, 162, 103, 162, -1, 162, 106, 162, + -1, 112, 162, -1, 101, 162, -1, 113, 162, 114, + -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const unsigned short yyrline[] = { - 0, 141, 141, 142, 146, 147, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, - 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, - 182, 183, 184, 185, 191, 192, 197, 198, 199, 200, - 201, 202, 207, 212, 220, 228, 236, 244, 249, 257, - 265, 273, 281, 286, 294, 300, 306, 311, 316, 321, - 326, 331, 339, 344, 349, 357, 365, 373, 381, 386, - 394, 402, 407, 412, 416, 420, 424, 428, 435, 440, - 445, 450, 455, 460, 465, 470, 478, 486, 491, 499, - 504, 509, 514, 519, 524, 529, 534, 539, 544, 549, - 554, 559, 564, 569, 574, 579, 584, 589, 594, 599, - 604, 609, 621, 622, 625, 629, 635, 643, 651, 659, - 666, 674, 682, 687, 692, 697, 705, 713, 721, 726, - 731, 739, 747, 752, 757, 762, 770, 778, 786, 794, - 799, 804, 809, 814, 819, 824, 829, 834, 839, 844, - 849, 854, 860, 866, 871, 876, 881, 886, 891, 896, - 901, 906, 911, 916, 921, 926, 935, 944, 951, 964, - 972, 982, 1003, 1015, 1025, 1030, 1038, 1056, 1057, 1058, - 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, - 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1082, - 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, - 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, - 1103, 1104, 1105 + 0, 135, 135, 136, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 185, 186, 191, 192, 193, 194, + 195, 196, 201, 206, 214, 222, 230, 238, 243, 251, + 259, 267, 275, 280, 288, 294, 300, 305, 310, 315, + 320, 325, 333, 338, 343, 351, 359, 367, 375, 380, + 388, 396, 401, 406, 410, 414, 418, 422, 429, 434, + 439, 444, 449, 454, 459, 464, 472, 480, 485, 493, + 498, 503, 508, 513, 518, 523, 528, 533, 538, 543, + 548, 553, 558, 563, 568, 573, 578, 583, 588, 593, + 598, 603, 611, 612, 615, 616, 619, 623, 629, 637, + 645, 653, 660, 668, 676, 681, 686, 691, 699, 707, + 715, 720, 725, 733, 741, 746, 751, 756, 764, 772, + 780, 788, 793, 798, 803, 808, 813, 818, 823, 828, + 833, 838, 843, 848, 854, 860, 865, 870, 875, 880, + 885, 890, 895, 900, 905, 910, 915, 920, 929, 938, + 945, 958, 966, 976, 997, 1009, 1019, 1024, 1032, 1050, + 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, + 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, + 1071, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, + 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, + 1095, 1096, 1097, 1098, 1099 }; #endif @@ -663,12 +659,13 @@ static const char *const yytname[] = "where_command", "print_string_command", "continue_command", "stepN_command", "step_over_command", "set_command", "breakpoint_command", "blist_command", "slist_command", "info_command", - "optional_numeric_range", "numeric_range", "regs_command", - "dump_cpu_command", "delete_command", "bpe_command", "bpd_command", - "quit_command", "examine_command", "setpmem_command", "query_command", - "take_command", "set_cpu_command", "disassemble_command", - "instrument_command", "doit_command", "crc_command", "help_command", - "calc_command", "vexpression", "expression", 0 + "optional_numeric", "optional_numeric_range", "numeric_range", + "regs_command", "dump_cpu_command", "delete_command", "bpe_command", + "bpd_command", "quit_command", "examine_command", "setpmem_command", + "query_command", "take_command", "set_cpu_command", + "disassemble_command", "instrument_command", "doit_command", + "crc_command", "help_command", "calc_command", "vexpression", + "expression", 0 }; #endif @@ -707,18 +704,18 @@ static const unsigned char yyr1[] = 137, 137, 137, 137, 137, 137, 138, 139, 139, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 141, 141, 142, 142, 143, 144, 145, 146, - 147, 148, 149, 149, 149, 149, 150, 151, 152, 152, - 152, 153, 154, 154, 154, 154, 155, 156, 157, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 159, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, 160, 161, + 140, 140, 141, 141, 142, 142, 143, 143, 144, 145, + 146, 147, 148, 149, 150, 150, 150, 150, 151, 152, + 153, 153, 153, 154, 155, 155, 155, 155, 156, 157, + 158, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 159, 159, 159, 160, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161 + 161, 162, 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -734,20 +731,20 @@ static const unsigned char yyr2[] = 4, 4, 3, 4, 5, 2, 3, 2, 2, 3, 2, 4, 5, 5, 5, 5, 5, 5, 2, 5, 2, 3, 3, 2, 3, 4, 2, 2, 3, 3, - 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, - 4, 3, 3, 3, 3, 4, 3, 3, 5, 7, - 3, 3, 0, 1, 1, 2, 2, 2, 3, 3, - 3, 2, 4, 3, 3, 2, 5, 3, 3, 4, - 3, 2, 3, 4, 3, 5, 3, 3, 4, 3, + 3, 3, 3, 3, 3, 3, 5, 5, 5, 5, + 3, 3, 3, 3, 3, 4, 3, 3, 5, 7, + 3, 3, 0, 1, 0, 1, 1, 2, 2, 2, + 3, 3, 3, 2, 4, 3, 3, 2, 5, 3, + 3, 4, 3, 2, 3, 4, 3, 5, 3, 3, + 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 2, 3, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 2, 2, 3, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 2, 2, 3 + 3, 3, 3, 3, 3, 3, 3, 2, 3, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, + 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 2, 2, 3 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -757,49 +754,50 @@ static const unsigned char yydefact[] = { 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 122, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 0, 3, 30, 31, 32, 33, 36, 29, 27, 28, 34, 35, 37, 38, 39, 4, 5, 6, 7, 8, 11, 12, 9, 10, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 40, 41, 77, 0, 78, 80, 0, 0, - 0, 0, 0, 0, 0, 96, 189, 188, 190, 191, - 192, 46, 47, 48, 49, 50, 51, 187, 194, 195, - 196, 0, 88, 0, 0, 193, 0, 212, 211, 213, - 214, 215, 210, 209, 217, 218, 219, 0, 90, 0, - 0, 216, 0, 210, 0, 93, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 96, 191, 190, 192, 193, + 194, 46, 47, 48, 49, 50, 51, 189, 196, 197, + 198, 0, 88, 0, 0, 195, 0, 214, 213, 215, + 216, 217, 212, 211, 219, 220, 221, 0, 90, 0, + 0, 218, 0, 212, 0, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 122, 122, 122, - 122, 122, 0, 0, 0, 0, 0, 0, 0, 0, - 131, 126, 0, 135, 0, 0, 0, 0, 0, 127, - 141, 122, 0, 0, 0, 123, 124, 0, 0, 0, + 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 133, 128, 0, 137, 0, 0, 0, 0, 0, 129, + 143, 124, 0, 0, 0, 125, 126, 0, 0, 0, 44, 45, 0, 0, 59, 0, 0, 0, 0, 56, 0, 62, 0, 0, 0, 0, 66, 0, 0, 67, 0, 58, 0, 0, 0, 97, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 185, 0, 1, 2, 79, 0, - 0, 0, 0, 0, 0, 0, 207, 206, 0, 0, + 0, 0, 0, 0, 187, 0, 1, 2, 79, 0, + 0, 0, 0, 0, 0, 0, 209, 208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, - 231, 230, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 91, 0, 0, 94, 128, 129, 130, 112, - 99, 101, 100, 102, 103, 104, 0, 0, 0, 0, - 0, 111, 105, 113, 116, 0, 114, 0, 117, 120, - 121, 133, 0, 134, 0, 137, 0, 138, 140, 0, - 144, 0, 142, 0, 125, 146, 147, 0, 60, 61, - 53, 52, 54, 55, 63, 65, 64, 0, 0, 0, - 0, 57, 0, 72, 0, 98, 76, 150, 151, 152, - 180, 158, 153, 154, 155, 156, 157, 181, 149, 173, - 178, 174, 163, 164, 175, 179, 160, 161, 162, 165, - 167, 166, 169, 170, 159, 168, 176, 177, 182, 171, - 172, 184, 183, 186, 0, 0, 0, 0, 0, 0, - 81, 208, 201, 202, 197, 198, 203, 204, 199, 200, - 205, 0, 232, 225, 226, 221, 222, 227, 228, 223, - 224, 229, 220, 95, 106, 107, 108, 109, 110, 115, - 0, 132, 0, 139, 143, 0, 222, 148, 68, 70, + 233, 232, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 91, 0, 0, 94, 130, 131, 132, 112, + 99, 101, 100, 102, 103, 104, 123, 122, 122, 122, + 122, 111, 110, 105, 113, 116, 0, 114, 0, 117, + 120, 121, 135, 0, 136, 0, 139, 0, 140, 142, + 0, 146, 0, 144, 0, 127, 148, 149, 0, 60, + 61, 53, 52, 54, 55, 63, 65, 64, 0, 0, + 0, 0, 57, 0, 72, 0, 98, 76, 152, 153, + 154, 182, 160, 155, 156, 157, 158, 159, 183, 151, + 175, 180, 176, 165, 166, 177, 181, 162, 163, 164, + 167, 169, 168, 171, 172, 161, 170, 178, 179, 184, + 173, 174, 186, 185, 188, 0, 0, 0, 0, 0, + 0, 81, 210, 203, 204, 199, 200, 205, 206, 201, + 202, 207, 0, 234, 227, 228, 223, 224, 229, 230, + 225, 226, 231, 222, 95, 0, 0, 0, 0, 115, + 0, 134, 0, 141, 145, 0, 224, 150, 68, 70, 69, 71, 73, 0, 84, 83, 85, 86, 87, 82, - 89, 0, 118, 136, 145, 74, 0, 119 + 89, 106, 107, 108, 109, 0, 118, 138, 147, 74, + 0, 119 }; /* YYDEFGOTO[NTERM-NUM]. */ @@ -807,71 +805,72 @@ static const short yydefgoto[] = { -1, 44, 45, 182, 131, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - 61, 62, 63, 64, 65, 66, 174, 175, 67, 68, - 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 116, 176 + 61, 62, 63, 64, 65, 66, 297, 174, 175, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 116, 176 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -120 +#define YYPACT_NINF -147 static const short yypact[] = { - 593, -86, -76, -84, 11, -83, 81, 290, 226, -59, - -52, -22, 731, -51, -44, 245, -20, 28, -35, -39, - -27, 106, -12, 9, 10, 6, 6, -10, 14, 15, - 37, 42, -6, -50, -4, -71, -37, -21, -56, -5, - 20, 668, 401, -120, 518, -120, -120, -120, -120, -120, - -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, - -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, - -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, - -120, -120, -120, -120, -120, -2, -120, -120, 16, 35, - 36, 43, 46, 58, 6, -120, -120, -120, -120, -120, - -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, - -120, 418, -120, 418, 418, -120, 390, -120, -120, -120, - -120, -120, -1, -120, -120, -120, -120, 401, -120, 401, - 401, -120, 371, -120, 401, -120, 457, 12, 19, 21, - 39, 61, 62, 67, 68, 72, 77, 401, 401, 401, - 401, 401, 78, 80, 82, 86, -55, -34, 87, 88, - -120, -120, 356, -120, 683, 66, 89, -49, 90, -120, - -120, 401, 91, 92, 97, -120, 38, 99, 100, 102, - -120, -120, 101, 103, -120, 104, 105, 107, 108, -120, - 111, -120, 112, 113, 115, 125, -120, 129, 137, -120, - 116, -120, -46, 65, 117, -120, -120, 118, 119, 131, - 132, 138, 150, 151, 153, 154, 155, 156, 166, 178, - 179, 180, 181, 182, 195, 197, 198, 199, 200, 201, - 202, 204, 205, 206, 208, 209, 210, 211, 212, 213, - 217, 219, 220, 223, -120, 695, -120, -120, -120, 401, - 401, 401, 401, 401, 247, 225, -120, -120, 344, 418, - 418, 418, 418, 418, 418, 418, 418, 418, 401, -120, - 229, 229, 279, 401, 401, 401, 401, 401, 401, 401, - 401, 401, -120, 401, 725, -120, -120, -120, -120, -120, - -120, -120, -120, -120, -120, -120, 227, 228, 232, 236, - 238, -120, -120, -120, -120, 239, -120, 263, -120, -120, - -120, -120, 737, -120, 265, -120, 243, -120, -120, 244, - -120, 269, -120, 401, 821, -120, -120, 261, -120, -120, - -120, -120, -120, -120, -120, -120, -120, 262, 264, 268, - 277, -120, 283, -120, 270, -120, -120, -120, -120, -120, - -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, - -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, - -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, - -120, -120, -120, -120, 749, 761, 773, 785, 797, 285, - -120, -120, -120, -120, 79, 79, 79, 79, -120, -120, - -120, 809, -120, 229, 229, -28, -28, -28, -28, 229, - 229, 229, 821, -120, -120, -120, -120, -120, -120, -120, - -30, -120, 286, -120, -120, 287, -28, -120, -120, -120, - -120, -120, -120, 288, -120, -120, -120, -120, -120, -120, - -120, 292, -120, -120, -120, -120, 289, -120 + 622, -99, -79, -86, 22, -77, 389, 355, 202, -52, + -38, -36, 19, -40, -39, 244, -13, 23, -17, -33, + -32, 227, -22, -8, -5, 25, 25, -30, -4, 9, + 36, 38, -10, -73, -12, -63, -62, -44, -42, -6, + 15, 697, 414, -147, 522, -147, -147, -147, -147, -147, + -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, + -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, + -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, + -147, -147, -147, -147, -147, 1, -147, -147, 2, 11, + 20, 29, 39, 40, 25, -147, -147, -147, -147, -147, + -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, + -147, 525, -147, 525, 525, -147, 13, -147, -147, -147, + -147, -147, 24, -147, -147, -147, -147, 414, -147, 414, + 414, -147, 461, -147, 414, -147, 561, 58, 59, 61, + 62, 63, 64, 65, 81, 85, 86, 16, 16, 16, + 16, 90, 91, 93, 94, 95, -41, -67, 107, 108, + -147, -147, 372, -147, 689, 103, 109, -66, 110, -147, + -147, 414, 111, 112, 114, -147, 80, 115, 116, 135, + -147, -147, 117, 118, -147, 119, 120, 132, 149, -147, + 150, -147, 151, 154, 178, 179, -147, 200, 203, -147, + 181, -147, -65, 44, 183, -147, -147, 186, 187, 188, + 189, 193, 196, 198, 199, 201, 207, 209, 210, 211, + 212, 213, 214, 218, 220, 222, 223, 224, 225, 226, + 228, 229, 235, 237, 238, 239, 240, 241, 242, 243, + 245, 246, 260, 261, -147, 707, -147, -147, -147, 414, + 414, 414, 414, 414, 250, 262, -147, -147, 42, 525, + 525, 525, 525, 525, 525, 525, 525, 525, 414, -147, + 17, 17, 333, 414, 414, 414, 414, 414, 414, 414, + 414, 414, -147, 414, 719, -147, -147, -147, -147, -147, + -147, -147, -147, -147, -147, -147, -147, 16, 16, 16, + 16, -147, -147, -147, -147, -147, 263, -147, 287, -147, + -147, -147, -147, 731, -147, 288, -147, 277, -147, -147, + 278, -147, 302, -147, 414, 514, -147, -147, 280, -147, + -147, -147, -147, -147, -147, -147, -147, -147, 281, 282, + 294, 295, -147, 296, -147, 320, -147, -147, -147, -147, + -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, + -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, + -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, + -147, -147, -147, -147, -147, 743, 755, 767, 779, 791, + 298, -147, -147, -147, -147, 92, 92, 92, 92, -147, + -147, -147, 803, -147, 17, 17, 30, 30, 30, 30, + 17, 17, 17, 514, -147, 299, 300, 301, 303, -147, + -15, -147, 304, -147, -147, 305, 30, -147, -147, -147, + -147, -147, -147, 307, -147, -147, -147, -147, -147, -147, + -147, -147, -147, -147, -147, 325, -147, -147, -147, -147, + 321, -147 }; /* YYPGOTO[NTERM-NUM]. */ static const short yypgoto[] = { - -120, -120, 328, -23, 18, -120, -120, -120, -120, -120, - -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, - -120, -120, -120, -120, -120, -120, -119, -120, -120, -120, - -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, - -120, -120, -120, -120, -120, -102, -7 + -147, -147, 157, -20, 18, -147, -147, -147, -147, -147, + -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, + -147, -147, -147, -147, -147, -147, -146, 138, -147, -147, + -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, + -147, -147, -147, -147, -147, -147, -102, -7 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@ -881,188 +880,183 @@ static const short yypgoto[] = #define YYTABLE_NINF -1 static const unsigned short yytable[] = { - 132, 136, 441, 183, 204, 305, 197, 198, 164, 256, - 85, 257, 258, 192, 88, 89, 90, 91, 92, 167, - 168, 180, 181, 84, 115, 87, 95, 137, 296, 297, - 298, 299, 300, 86, 138, 245, 190, 316, 199, 202, - 342, 117, 118, 119, 120, 121, 101, 102, 103, 104, - 105, 106, 319, 205, 306, 307, 200, 193, 160, 191, - 317, 93, 203, 343, 139, 161, 165, 273, 274, 94, - 169, 255, 201, 194, 195, 308, 279, 280, 281, 442, - 166, 177, 170, 283, 96, 97, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 178, 179, 187, 133, 184, - 185, 186, 188, 189, 206, 196, 207, 248, 269, 117, - 118, 119, 120, 121, 101, 102, 103, 104, 105, 106, - 270, 286, 271, 272, 123, 344, 249, 284, 287, 115, - 288, 115, 115, 273, 274, 124, 125, 126, 275, 323, - 277, 278, 279, 280, 281, 250, 251, 0, 289, 283, - 129, 130, 314, 252, 171, 312, 253, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 133, 107, 254, 324, - 290, 291, 172, 173, 259, 260, 292, 293, 108, 109, - 110, 294, 111, 265, 266, 267, 295, 301, 327, 302, - 112, 303, 123, 113, 114, 304, 309, 310, 315, 318, - 320, 337, 321, 124, 125, 126, 322, 127, 325, 326, - 328, 338, 329, 330, 331, 339, 332, 333, 129, 130, - 334, 335, 336, 340, 0, 341, 345, 346, 347, 117, - 118, 119, 120, 121, 101, 102, 103, 104, 105, 106, - 348, 349, 384, 385, 386, 387, 388, 350, 117, 118, - 119, 120, 121, 101, 102, 103, 104, 105, 106, 351, - 352, 401, 353, 354, 355, 356, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 357, 412, 115, 115, 115, - 115, 115, 115, 115, 115, 115, 133, 358, 359, 360, - 361, 362, 162, 117, 118, 119, 120, 121, 101, 102, - 103, 104, 105, 106, 363, 133, 364, 365, 366, 367, - 368, 369, 123, 370, 371, 372, 426, 373, 374, 375, - 376, 377, 378, 124, 125, 126, 379, 127, 380, 381, - 134, 123, 382, 389, 390, 135, 414, 415, 129, 130, - 283, 416, 124, 125, 126, 417, 127, 418, 419, 420, - 122, 422, 423, 424, 163, 425, 433, 129, 130, 117, - 118, 119, 120, 121, 101, 102, 103, 104, 105, 106, - 427, 428, 247, 429, 273, 274, 123, 430, 446, 275, - 276, 277, 278, 279, 280, 281, 431, 124, 125, 126, - 283, 127, 432, 402, 439, 443, 444, 445, 447, 128, - 0, 0, 129, 130, 117, 118, 119, 120, 121, 101, - 102, 103, 104, 105, 106, 0, 133, 0, 0, 0, - 0, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 0, 0, 0, 0, 0, 0, 0, 259, - 260, 0, 123, 0, 261, 262, 263, 264, 265, 266, - 267, 0, 0, 124, 125, 126, 0, 127, 391, 0, - 0, 133, 0, 0, 0, 311, 273, 274, 129, 130, - 0, 275, 276, 277, 278, 279, 280, 281, 0, 0, - 282, 0, 283, 0, 0, 259, 260, 123, 0, 0, - 261, 262, 263, 264, 265, 266, 267, 0, 124, 125, - 126, 268, 127, 0, 107, 0, 0, 0, 0, 0, - 0, 0, 0, 129, 130, 108, 109, 110, 246, 111, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 113, 114, 0, 0, 0, 1, 2, 3, 0, 4, - 0, 5, 6, 7, 8, 9, 10, 11, 12, 13, - 14, 0, 273, 274, 0, 0, 0, 275, 276, 277, - 278, 279, 280, 281, 15, 0, 285, 16, 283, 17, - 0, 18, 0, 0, 19, 20, 21, 22, 0, 0, - 23, 24, 25, 26, 0, 0, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 0, 0, 36, 37, 0, - 38, 0, 39, 40, 0, 0, 0, 0, 41, 42, - 1, 2, 3, 0, 4, 0, 5, 6, 7, 8, - 9, 10, 11, 12, 13, 14, 0, 43, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, - 0, 0, 16, 0, 17, 0, 18, 0, 0, 19, - 20, 21, 22, 0, 0, 23, 24, 25, 26, 0, - 0, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 0, 0, 36, 37, 0, 38, 0, 39, 40, 0, - 0, 0, 0, 41, 42, 208, 209, 210, 0, 211, - 0, 212, 213, 214, 0, 215, 216, 217, 218, 219, - 220, 0, 43, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 221, 0, 0, 222, 0, 0, - 0, 0, 0, 0, 223, 224, 225, 226, 0, 0, - 0, 227, 228, 229, 0, 0, 230, 231, 232, 233, - 234, 235, 236, 237, 238, 140, 0, 239, 240, 0, - 241, 0, 0, 0, 0, 0, 0, 141, 242, 243, - 0, 0, 0, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 155, 244, 273, 274, - 0, 0, 0, 275, 276, 277, 278, 279, 280, 281, - 273, 274, 313, 0, 283, 275, 276, 277, 278, 279, - 280, 281, 0, 0, 383, 0, 283, 0, 0, 0, - 0, 0, 156, 0, 0, 0, 0, 0, 157, 158, - 273, 274, 0, 159, 0, 275, 276, 277, 278, 279, - 280, 281, 273, 274, 413, 0, 283, 275, 276, 277, - 278, 279, 280, 281, 273, 274, 421, 0, 283, 275, - 276, 277, 278, 279, 280, 281, 273, 274, 434, 0, + 132, 136, 298, 299, 300, 192, 183, 85, 164, 256, + 84, 257, 258, 190, 197, 198, 202, 445, 204, 306, + 317, 343, 308, 87, 115, 88, 89, 90, 91, 92, + 86, 200, 95, 140, 137, 245, 191, 167, 168, 203, + 180, 181, 309, 318, 344, 141, 199, 201, 138, 193, + 139, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 194, 195, 205, 307, 160, + 161, 177, 93, 165, 255, 166, 169, 170, 178, 184, + 94, 179, 185, 117, 118, 119, 120, 121, 101, 102, + 103, 104, 105, 106, 446, 186, 187, 196, 188, 189, + 156, 207, 296, 206, 345, 0, 157, 158, 259, 260, + 248, 159, 249, 261, 262, 263, 264, 265, 266, 267, + 270, 250, 271, 272, 268, 273, 274, 284, 283, 115, + 251, 115, 115, 269, 279, 280, 281, 259, 260, 252, + 133, 283, 261, 262, 263, 264, 265, 266, 267, 253, + 254, 415, 416, 417, 418, 313, 392, 393, 394, 395, + 396, 397, 398, 399, 400, 401, 123, 286, 287, 325, + 288, 289, 290, 291, 292, 273, 274, 124, 125, 126, + 275, 324, 277, 278, 279, 280, 281, 259, 260, 315, + 293, 283, 129, 130, 294, 295, 265, 266, 267, 301, + 302, 247, 303, 304, 305, 117, 118, 119, 120, 121, + 101, 102, 103, 104, 105, 106, 310, 311, 316, 319, + 321, 328, 322, 323, 326, 327, 329, 330, 331, 332, + 117, 118, 119, 120, 121, 101, 102, 103, 104, 105, + 106, 333, 385, 386, 387, 388, 389, 117, 118, 119, + 120, 121, 101, 102, 103, 104, 105, 106, 334, 335, + 336, 402, 133, 337, 338, 339, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 171, 413, 115, 115, 115, + 115, 115, 115, 115, 115, 115, 340, 133, 123, 341, + 342, 162, 346, 172, 173, 347, 348, 349, 350, 124, + 125, 126, 351, 127, 133, 352, 134, 353, 354, 320, + 355, 135, 0, 123, 129, 130, 356, 426, 357, 358, + 359, 360, 361, 362, 124, 125, 126, 363, 127, 364, + 123, 365, 366, 367, 368, 369, 390, 370, 371, 129, + 130, 124, 125, 126, 372, 127, 373, 374, 375, 376, + 377, 378, 379, 163, 380, 381, 129, 130, 117, 118, + 119, 120, 121, 101, 102, 103, 104, 105, 106, 382, + 383, 391, 419, 420, 422, 117, 118, 119, 120, 121, + 101, 102, 103, 104, 105, 106, 423, 424, 425, 427, + 428, 429, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 430, 431, 432, 433, 439, 441, 442, + 443, 450, 444, 447, 448, 122, 449, 117, 118, 119, + 120, 121, 101, 102, 103, 104, 105, 106, 273, 274, + 451, 0, 133, 275, 276, 277, 278, 279, 280, 281, + 0, 123, 0, 0, 283, 0, 0, 403, 0, 0, + 0, 0, 124, 125, 126, 0, 127, 0, 123, 0, + 0, 0, 0, 0, 128, 0, 0, 129, 130, 124, + 125, 126, 0, 127, 133, 107, 0, 0, 0, 0, + 0, 312, 0, 0, 129, 130, 108, 109, 110, 0, + 111, 0, 0, 0, 0, 0, 0, 0, 112, 0, + 123, 113, 114, 0, 0, 0, 0, 0, 0, 0, + 0, 124, 125, 126, 0, 127, 0, 0, 0, 0, + 0, 0, 246, 0, 0, 0, 129, 130, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 1, + 2, 3, 0, 4, 0, 5, 6, 7, 8, 9, + 10, 11, 12, 13, 14, 0, 273, 274, 0, 0, + 0, 275, 276, 277, 278, 279, 280, 281, 15, 0, + 282, 16, 283, 17, 0, 18, 0, 0, 19, 20, + 21, 22, 0, 0, 23, 24, 25, 26, 0, 0, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 0, + 0, 36, 37, 0, 38, 0, 39, 40, 0, 273, + 274, 107, 41, 42, 275, 276, 277, 278, 279, 280, + 281, 0, 108, 109, 110, 283, 111, 0, 0, 0, + 0, 43, 0, 0, 0, 0, 0, 113, 114, 1, + 2, 3, 0, 4, 0, 5, 6, 7, 8, 9, + 10, 11, 12, 13, 14, 0, 273, 274, 0, 0, + 0, 275, 276, 277, 278, 279, 280, 281, 15, 0, + 285, 16, 283, 17, 0, 18, 0, 0, 19, 20, + 21, 22, 0, 0, 23, 24, 25, 26, 0, 0, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 0, + 0, 36, 37, 0, 38, 0, 39, 40, 0, 0, + 0, 0, 41, 42, 208, 209, 210, 0, 211, 0, + 212, 213, 214, 0, 215, 216, 217, 218, 219, 220, + 0, 43, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 221, 0, 0, 222, 0, 0, 0, + 0, 0, 0, 223, 224, 225, 226, 0, 0, 0, + 227, 228, 229, 0, 0, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 0, 0, 239, 240, 0, 241, + 0, 0, 0, 0, 273, 274, 0, 242, 243, 275, + 276, 277, 278, 279, 280, 281, 0, 0, 314, 0, + 283, 0, 273, 274, 0, 0, 244, 275, 276, 277, + 278, 279, 280, 281, 273, 274, 384, 0, 283, 275, + 276, 277, 278, 279, 280, 281, 273, 274, 414, 0, 283, 275, 276, 277, 278, 279, 280, 281, 273, 274, - 435, 0, 283, 275, 276, 277, 278, 279, 280, 281, - 273, 274, 436, 0, 283, 275, 276, 277, 278, 279, - 280, 281, 273, 274, 437, 0, 283, 275, 276, 277, - 278, 279, 280, 281, 273, 274, 438, 0, 283, 275, - 276, 277, 278, 279, 280, 281, 273, 274, 440, 0, - 283, 275, 276, 277, 278, 279, 280, 281, 0, 0, - 0, 0, 283 + 421, 0, 283, 275, 276, 277, 278, 279, 280, 281, + 273, 274, 434, 0, 283, 275, 276, 277, 278, 279, + 280, 281, 273, 274, 435, 0, 283, 275, 276, 277, + 278, 279, 280, 281, 273, 274, 436, 0, 283, 275, + 276, 277, 278, 279, 280, 281, 273, 274, 437, 0, + 283, 275, 276, 277, 278, 279, 280, 281, 273, 274, + 438, 0, 283, 275, 276, 277, 278, 279, 280, 281, + 0, 0, 440, 0, 283 }; static const short yycheck[] = { - 7, 8, 32, 26, 60, 60, 77, 78, 15, 111, - 86, 113, 114, 17, 3, 4, 5, 6, 7, 54, - 55, 15, 16, 109, 6, 109, 109, 86, 147, 148, - 149, 150, 151, 109, 86, 42, 86, 86, 109, 60, - 86, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 171, 109, 109, 89, 93, 61, 109, 109, - 109, 50, 83, 109, 86, 109, 86, 95, 96, 58, - 109, 94, 109, 77, 78, 109, 104, 105, 106, 109, - 52, 93, 109, 111, 3, 4, 5, 6, 7, 8, - 9, 10, 11, 12, 13, 86, 86, 60, 60, 109, - 86, 86, 60, 109, 109, 109, 86, 109, 109, 3, - 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - 127, 109, 129, 130, 86, 60, 110, 134, 109, 111, - 109, 113, 114, 95, 96, 97, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 110, 110, -1, 109, 111, - 112, 113, 86, 110, 48, 162, 110, 259, 260, 261, - 262, 263, 264, 265, 266, 267, 60, 86, 110, 176, - 109, 109, 66, 67, 95, 96, 109, 109, 97, 98, - 99, 109, 101, 104, 105, 106, 109, 109, 86, 109, - 109, 109, 86, 112, 113, 109, 109, 109, 109, 109, - 109, 86, 110, 97, 98, 99, 109, 101, 109, 109, - 109, 86, 109, 109, 109, 86, 109, 109, 112, 113, - 109, 109, 109, 86, -1, 109, 109, 109, 109, 3, - 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - 109, 109, 249, 250, 251, 252, 253, 109, 3, 4, + 7, 8, 148, 149, 150, 17, 26, 86, 15, 111, + 109, 113, 114, 86, 77, 78, 60, 32, 60, 60, + 86, 86, 89, 109, 6, 3, 4, 5, 6, 7, + 109, 93, 109, 14, 86, 42, 109, 54, 55, 83, + 15, 16, 109, 109, 109, 26, 109, 109, 86, 61, + 86, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 77, 78, 109, 109, 109, + 109, 93, 50, 86, 94, 52, 109, 109, 86, 109, + 58, 86, 86, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 13, 109, 86, 60, 109, 60, 109, + 81, 86, 86, 109, 60, -1, 87, 88, 95, 96, + 109, 92, 110, 100, 101, 102, 103, 104, 105, 106, + 127, 110, 129, 130, 111, 95, 96, 134, 111, 111, + 110, 113, 114, 109, 104, 105, 106, 95, 96, 110, + 60, 111, 100, 101, 102, 103, 104, 105, 106, 110, + 110, 297, 298, 299, 300, 162, 114, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 86, 109, 109, 176, + 109, 109, 109, 109, 109, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 95, 96, 86, + 109, 111, 112, 113, 109, 109, 104, 105, 106, 109, + 109, 44, 109, 109, 109, 3, 4, 5, 6, 7, + 8, 9, 10, 11, 12, 13, 109, 109, 109, 109, + 109, 86, 110, 109, 109, 109, 109, 109, 109, 109, + 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 13, 109, 249, 250, 251, 252, 253, 3, 4, 5, + 6, 7, 8, 9, 10, 11, 12, 13, 109, 109, + 109, 268, 60, 109, 86, 86, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 48, 283, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 86, 60, 86, 86, + 109, 47, 109, 66, 67, 109, 109, 109, 109, 97, + 98, 99, 109, 101, 60, 109, 104, 109, 109, 171, + 109, 109, -1, 86, 112, 113, 109, 324, 109, 109, + 109, 109, 109, 109, 97, 98, 99, 109, 101, 109, + 86, 109, 109, 109, 109, 109, 86, 109, 109, 112, + 113, 97, 98, 99, 109, 101, 109, 109, 109, 109, + 109, 109, 109, 109, 109, 109, 112, 113, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 109, - 109, 268, 109, 109, 109, 109, 273, 274, 275, 276, - 277, 278, 279, 280, 281, 109, 283, 259, 260, 261, - 262, 263, 264, 265, 266, 267, 60, 109, 109, 109, - 109, 109, 47, 3, 4, 5, 6, 7, 8, 9, - 10, 11, 12, 13, 109, 60, 109, 109, 109, 109, - 109, 109, 86, 109, 109, 109, 323, 109, 109, 109, - 109, 109, 109, 97, 98, 99, 109, 101, 109, 109, - 104, 86, 109, 86, 109, 109, 109, 109, 112, 113, - 111, 109, 97, 98, 99, 109, 101, 109, 109, 86, - 60, 86, 109, 109, 109, 86, 86, 112, 113, 3, - 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - 109, 109, 44, 109, 95, 96, 86, 109, 86, 100, - 101, 102, 103, 104, 105, 106, 109, 97, 98, 99, - 111, 101, 109, 114, 109, 109, 109, 109, 109, 109, - -1, -1, 112, 113, 3, 4, 5, 6, 7, 8, - 9, 10, 11, 12, 13, -1, 60, -1, -1, -1, - -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, -1, -1, -1, -1, -1, -1, -1, 95, - 96, -1, 86, -1, 100, 101, 102, 103, 104, 105, - 106, -1, -1, 97, 98, 99, -1, 101, 114, -1, - -1, 60, -1, -1, -1, 109, 95, 96, 112, 113, - -1, 100, 101, 102, 103, 104, 105, 106, -1, -1, - 109, -1, 111, -1, -1, 95, 96, 86, -1, -1, - 100, 101, 102, 103, 104, 105, 106, -1, 97, 98, - 99, 111, 101, -1, 86, -1, -1, -1, -1, -1, - -1, -1, -1, 112, 113, 97, 98, 99, 0, 101, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 112, 113, -1, -1, -1, 17, 18, 19, -1, 21, - -1, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, -1, 95, 96, -1, -1, -1, 100, 101, 102, - 103, 104, 105, 106, 46, -1, 109, 49, 111, 51, - -1, 53, -1, -1, 56, 57, 58, 59, -1, -1, - 62, 63, 64, 65, -1, -1, 68, 69, 70, 71, - 72, 73, 74, 75, 76, -1, -1, 79, 80, -1, - 82, -1, 84, 85, -1, -1, -1, -1, 90, 91, - 17, 18, 19, -1, 21, -1, 23, 24, 25, 26, - 27, 28, 29, 30, 31, 32, -1, 109, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 46, - -1, -1, 49, -1, 51, -1, 53, -1, -1, 56, - 57, 58, 59, -1, -1, 62, 63, 64, 65, -1, - -1, 68, 69, 70, 71, 72, 73, 74, 75, 76, - -1, -1, 79, 80, -1, 82, -1, 84, 85, -1, - -1, -1, -1, 90, 91, 17, 18, 19, -1, 21, - -1, 23, 24, 25, -1, 27, 28, 29, 30, 31, - 32, -1, 109, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 46, -1, -1, 49, -1, -1, - -1, -1, -1, -1, 56, 57, 58, 59, -1, -1, - -1, 63, 64, 65, -1, -1, 68, 69, 70, 71, - 72, 73, 74, 75, 76, 14, -1, 79, 80, -1, - 82, -1, -1, -1, -1, -1, -1, 26, 90, 91, - -1, -1, -1, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, 109, 95, 96, - -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, - 95, 96, 109, -1, 111, 100, 101, 102, 103, 104, - 105, 106, -1, -1, 109, -1, 111, -1, -1, -1, - -1, -1, 81, -1, -1, -1, -1, -1, 87, 88, - 95, 96, -1, 92, -1, 100, 101, 102, 103, 104, - 105, 106, 95, 96, 109, -1, 111, 100, 101, 102, + 109, 109, 109, 86, 86, 3, 4, 5, 6, 7, + 8, 9, 10, 11, 12, 13, 109, 109, 86, 109, + 109, 109, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 109, 109, 109, 86, 109, 109, 109, + 109, 86, 109, 109, 109, 60, 109, 3, 4, 5, + 6, 7, 8, 9, 10, 11, 12, 13, 95, 96, + 109, -1, 60, 100, 101, 102, 103, 104, 105, 106, + -1, 86, -1, -1, 111, -1, -1, 114, -1, -1, + -1, -1, 97, 98, 99, -1, 101, -1, 86, -1, + -1, -1, -1, -1, 109, -1, -1, 112, 113, 97, + 98, 99, -1, 101, 60, 86, -1, -1, -1, -1, + -1, 109, -1, -1, 112, 113, 97, 98, 99, -1, + 101, -1, -1, -1, -1, -1, -1, -1, 109, -1, + 86, 112, 113, -1, -1, -1, -1, -1, -1, -1, + -1, 97, 98, 99, -1, 101, -1, -1, -1, -1, + -1, -1, 0, -1, -1, -1, 112, 113, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 17, + 18, 19, -1, 21, -1, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, -1, 95, 96, -1, -1, + -1, 100, 101, 102, 103, 104, 105, 106, 46, -1, + 109, 49, 111, 51, -1, 53, -1, -1, 56, 57, + 58, 59, -1, -1, 62, 63, 64, 65, -1, -1, + 68, 69, 70, 71, 72, 73, 74, 75, 76, -1, + -1, 79, 80, -1, 82, -1, 84, 85, -1, 95, + 96, 86, 90, 91, 100, 101, 102, 103, 104, 105, + 106, -1, 97, 98, 99, 111, 101, -1, -1, -1, + -1, 109, -1, -1, -1, -1, -1, 112, 113, 17, + 18, 19, -1, 21, -1, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, -1, 95, 96, -1, -1, + -1, 100, 101, 102, 103, 104, 105, 106, 46, -1, + 109, 49, 111, 51, -1, 53, -1, -1, 56, 57, + 58, 59, -1, -1, 62, 63, 64, 65, -1, -1, + 68, 69, 70, 71, 72, 73, 74, 75, 76, -1, + -1, 79, 80, -1, 82, -1, 84, 85, -1, -1, + -1, -1, 90, 91, 17, 18, 19, -1, 21, -1, + 23, 24, 25, -1, 27, 28, 29, 30, 31, 32, + -1, 109, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 46, -1, -1, 49, -1, -1, -1, + -1, -1, -1, 56, 57, 58, 59, -1, -1, -1, + 63, 64, 65, -1, -1, 68, 69, 70, 71, 72, + 73, 74, 75, 76, -1, -1, 79, 80, -1, 82, + -1, -1, -1, -1, 95, 96, -1, 90, 91, 100, + 101, 102, 103, 104, 105, 106, -1, -1, 109, -1, + 111, -1, 95, 96, -1, -1, 109, 100, 101, 102, 103, 104, 105, 106, 95, 96, 109, -1, 111, 100, 101, 102, 103, 104, 105, 106, 95, 96, 109, -1, 111, 100, 101, 102, 103, 104, 105, 106, 95, 96, @@ -1071,8 +1065,9 @@ static const short yycheck[] = 105, 106, 95, 96, 109, -1, 111, 100, 101, 102, 103, 104, 105, 106, 95, 96, 109, -1, 111, 100, 101, 102, 103, 104, 105, 106, 95, 96, 109, -1, - 111, 100, 101, 102, 103, 104, 105, 106, -1, -1, - -1, -1, 111 + 111, 100, 101, 102, 103, 104, 105, 106, 95, 96, + 109, -1, 111, 100, 101, 102, 103, 104, 105, 106, + -1, -1, 109, -1, 111 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -1085,45 +1080,46 @@ static const unsigned char yystos[] = 71, 72, 73, 74, 75, 76, 79, 80, 82, 84, 85, 90, 91, 109, 116, 117, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, 139, 140, 143, 144, 145, - 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 157, 158, 159, 109, 86, 109, 109, 3, 4, + 134, 135, 136, 137, 138, 139, 140, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 109, 86, 109, 109, 3, 4, 5, 6, 7, 50, 58, 109, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 86, 97, 98, - 99, 101, 109, 112, 113, 119, 160, 3, 4, 5, + 99, 101, 109, 112, 113, 119, 161, 3, 4, 5, 6, 7, 60, 86, 97, 98, 99, 101, 109, 112, - 113, 119, 161, 60, 104, 109, 161, 86, 86, 86, + 113, 119, 162, 60, 104, 109, 162, 86, 86, 86, 14, 26, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 81, 87, 88, 92, - 109, 109, 47, 109, 161, 86, 52, 54, 55, 109, - 109, 48, 66, 67, 141, 142, 161, 93, 86, 86, + 109, 109, 47, 109, 162, 86, 52, 54, 55, 109, + 109, 48, 66, 67, 142, 143, 162, 93, 86, 86, 15, 16, 118, 118, 109, 86, 86, 60, 60, 109, 86, 109, 17, 61, 77, 78, 109, 77, 78, 109, 93, 109, 60, 83, 60, 109, 109, 86, 17, 18, 19, 21, 23, 24, 25, 27, 28, 29, 30, 31, 32, 46, 49, 56, 57, 58, 59, 63, 64, 65, 68, 69, 70, 71, 72, 73, 74, 75, 76, 79, - 80, 82, 90, 91, 109, 161, 0, 117, 109, 110, - 110, 110, 110, 110, 110, 118, 160, 160, 160, 95, + 80, 82, 90, 91, 109, 162, 0, 117, 109, 110, + 110, 110, 110, 110, 110, 118, 161, 161, 161, 95, 96, 100, 101, 102, 103, 104, 105, 106, 111, 109, - 161, 161, 161, 95, 96, 100, 101, 102, 103, 104, - 105, 106, 109, 111, 161, 109, 109, 109, 109, 109, - 109, 109, 109, 109, 109, 109, 141, 141, 141, 141, - 141, 109, 109, 109, 109, 60, 109, 89, 109, 109, - 109, 109, 161, 109, 86, 109, 86, 109, 109, 141, - 109, 110, 109, 101, 161, 109, 109, 86, 109, 109, - 109, 109, 109, 109, 109, 109, 109, 86, 86, 86, - 86, 109, 86, 109, 60, 109, 109, 109, 109, 109, + 162, 162, 162, 95, 96, 100, 101, 102, 103, 104, + 105, 106, 109, 111, 162, 109, 109, 109, 109, 109, + 109, 109, 109, 109, 109, 109, 86, 141, 141, 141, + 141, 109, 109, 109, 109, 109, 60, 109, 89, 109, + 109, 109, 109, 162, 109, 86, 109, 86, 109, 109, + 142, 109, 110, 109, 101, 162, 109, 109, 86, 109, + 109, 109, 109, 109, 109, 109, 109, 109, 86, 86, + 86, 86, 109, 86, 109, 60, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, - 109, 109, 109, 109, 161, 161, 161, 161, 161, 86, - 109, 114, 160, 160, 160, 160, 160, 160, 160, 160, - 160, 161, 114, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 109, 109, 109, 109, 109, 109, 109, - 86, 109, 86, 109, 109, 86, 161, 109, 109, 109, + 109, 109, 109, 109, 109, 162, 162, 162, 162, 162, + 86, 109, 114, 161, 161, 161, 161, 161, 161, 161, + 161, 161, 162, 114, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 109, 141, 141, 141, 141, 109, + 86, 109, 86, 109, 109, 86, 162, 109, 109, 109, 109, 109, 109, 86, 109, 109, 109, 109, 109, 109, - 109, 32, 109, 109, 109, 109, 86, 109 + 109, 109, 109, 109, 109, 32, 109, 109, 109, 109, + 86, 109 }; #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__) @@ -1734,993 +1730,998 @@ yyreduce: switch (yyn) { case 43: -#line 186 "parser.y" +#line 180 "parser.y" { } break; case 45: -#line 193 "parser.y" +#line 187 "parser.y" { yyval.bval=yyvsp[0].bval; } break; case 51: -#line 203 "parser.y" +#line 197 "parser.y" { yyval.uval=yyvsp[0].uval; } break; case 52: -#line 208 "parser.y" +#line 202 "parser.y" { - bx_dbg_timebp_command(0, yyvsp[-1].uval); - free(yyvsp[-2].sval); - } + bx_dbg_timebp_command(0, yyvsp[-1].uval); + free(yyvsp[-2].sval); + } break; case 53: -#line 213 "parser.y" +#line 207 "parser.y" { - bx_dbg_timebp_command(1, yyvsp[-1].uval); - free(yyvsp[-2].sval); - } + bx_dbg_timebp_command(1, yyvsp[-1].uval); + free(yyvsp[-2].sval); + } break; case 54: -#line 221 "parser.y" +#line 215 "parser.y" { bx_dbg_record_command(yyvsp[-1].sval); free(yyvsp[-2].sval); free(yyvsp[-1].sval); - } + } break; case 55: -#line 229 "parser.y" +#line 223 "parser.y" { bx_dbg_playback_command(yyvsp[-1].sval); free(yyvsp[-2].sval); free(yyvsp[-1].sval); - } + } break; case 56: -#line 237 "parser.y" +#line 231 "parser.y" { bx_dbg_modebp_command(); free(yyvsp[-1].sval); - } + } break; case 57: -#line 245 "parser.y" +#line 239 "parser.y" { bx_dbg_show_command(yyvsp[-1].sval); free(yyvsp[-2].sval); free(yyvsp[-1].sval); - } + } break; case 58: -#line 250 "parser.y" +#line 244 "parser.y" { bx_dbg_show_command(0); free(yyvsp[-1].sval); - } + } break; case 59: -#line 258 "parser.y" +#line 252 "parser.y" { - bx_dbg_ptime_command(); - free(yyvsp[-1].sval); - } + bx_dbg_ptime_command(); + free(yyvsp[-1].sval); + } break; case 60: -#line 266 "parser.y" +#line 260 "parser.y" { - bx_dbg_trace_command(yyvsp[-1].bval); - free(yyvsp[-2].sval); - } + bx_dbg_trace_command(yyvsp[-1].bval); + free(yyvsp[-2].sval); + } break; case 61: -#line 274 "parser.y" +#line 268 "parser.y" { - bx_dbg_trace_reg_command(yyvsp[-1].bval); - free(yyvsp[-2].sval); - } + bx_dbg_trace_reg_command(yyvsp[-1].bval); + free(yyvsp[-2].sval); + } break; case 62: -#line 282 "parser.y" +#line 276 "parser.y" { bx_dbg_print_stack_command(16); free(yyvsp[-1].sval); - } + } break; case 63: -#line 287 "parser.y" +#line 281 "parser.y" { bx_dbg_print_stack_command(yyvsp[-1].uval); free(yyvsp[-2].sval); - } + } break; case 64: -#line 295 "parser.y" +#line 289 "parser.y" { watchpoint_continue = 0; - dbg_printf("Will stop on watch points\n"); + dbg_printf("Will stop on watch points\n"); free(yyvsp[-2].sval); free(yyvsp[-1].sval); - } + } break; case 65: -#line 301 "parser.y" +#line 295 "parser.y" { watchpoint_continue = 1; dbg_printf("Will not stop on watch points (they will still be logged)\n"); free(yyvsp[-2].sval); free(yyvsp[-1].sval); - } + } break; case 66: -#line 307 "parser.y" +#line 301 "parser.y" { bx_dbg_watch(-1, 0); free(yyvsp[-1].sval); - } + } break; case 67: -#line 312 "parser.y" +#line 306 "parser.y" { bx_dbg_unwatch(-1, 0); free(yyvsp[-1].sval); - } + } break; case 68: -#line 317 "parser.y" +#line 311 "parser.y" { bx_dbg_watch(1, yyvsp[-1].uval); free(yyvsp[-3].sval); free(yyvsp[-2].sval); - } + } break; case 69: -#line 322 "parser.y" +#line 316 "parser.y" { bx_dbg_unwatch(1, yyvsp[-1].uval); free(yyvsp[-3].sval); free(yyvsp[-2].sval); - } + } break; case 70: -#line 327 "parser.y" +#line 321 "parser.y" { bx_dbg_watch(0, yyvsp[-1].uval); free(yyvsp[-3].sval); free(yyvsp[-2].sval); - } + } break; case 71: -#line 332 "parser.y" +#line 326 "parser.y" { bx_dbg_unwatch(0, yyvsp[-1].uval); free(yyvsp[-3].sval); free(yyvsp[-2].sval); - } + } break; case 72: -#line 340 "parser.y" +#line 334 "parser.y" { - bx_dbg_symbol_command(yyvsp[-1].sval, 0, 0); + bx_dbg_symbol_command(yyvsp[-1].sval, 0, 0); free(yyvsp[-2].sval); free(yyvsp[-1].sval); - } + } break; case 73: -#line 345 "parser.y" +#line 339 "parser.y" { - bx_dbg_symbol_command(yyvsp[-2].sval, 0, yyvsp[-1].uval); + bx_dbg_symbol_command(yyvsp[-2].sval, 0, yyvsp[-1].uval); free(yyvsp[-3].sval); free(yyvsp[-2].sval); - } + } break; case 74: -#line 350 "parser.y" +#line 344 "parser.y" { - bx_dbg_symbol_command(yyvsp[-2].sval, 1, yyvsp[-1].uval); + bx_dbg_symbol_command(yyvsp[-2].sval, 1, yyvsp[-1].uval); free(yyvsp[-4].sval); free(yyvsp[-3].sval); free(yyvsp[-2].sval); - } + } break; case 75: -#line 358 "parser.y" +#line 352 "parser.y" { bx_dbg_where_command(); free(yyvsp[-1].sval); - } + } break; case 76: -#line 366 "parser.y" +#line 360 "parser.y" { bx_dbg_print_string_command(yyvsp[-1].uval); free(yyvsp[-2].sval); - } + } break; case 77: -#line 374 "parser.y" +#line 368 "parser.y" { bx_dbg_continue_command(); free(yyvsp[-1].sval); - } + } break; case 78: -#line 382 "parser.y" +#line 376 "parser.y" { bx_dbg_stepN_command(1); free(yyvsp[-1].sval); - } + } break; case 79: -#line 387 "parser.y" +#line 381 "parser.y" { bx_dbg_stepN_command(yyvsp[-1].uval); free(yyvsp[-2].sval); - } + } break; case 80: -#line 395 "parser.y" +#line 389 "parser.y" { bx_dbg_step_over_command(); free(yyvsp[-1].sval); - } + } break; case 81: -#line 403 "parser.y" +#line 397 "parser.y" { bx_dbg_set_auto_disassemble(yyvsp[-1].bval); free(yyvsp[-3].sval); free(yyvsp[-2].sval); - } + } break; case 82: -#line 408 "parser.y" +#line 402 "parser.y" { bx_dbg_set_symbol_command(yyvsp[-3].sval, yyvsp[-1].uval); free(yyvsp[-4].sval); free(yyvsp[-3].sval); - } + } break; case 83: -#line 413 "parser.y" +#line 407 "parser.y" { bx_dbg_set_reg8l_value(yyvsp[-3].uval, yyvsp[-1].uval); - } + } break; case 84: -#line 417 "parser.y" +#line 411 "parser.y" { bx_dbg_set_reg8h_value(yyvsp[-3].uval, yyvsp[-1].uval); - } + } break; case 85: -#line 421 "parser.y" +#line 415 "parser.y" { bx_dbg_set_reg16_value(yyvsp[-3].uval, yyvsp[-1].uval); - } + } break; case 86: -#line 425 "parser.y" +#line 419 "parser.y" { bx_dbg_set_reg32_value(yyvsp[-3].uval, yyvsp[-1].uval); - } + } break; case 87: -#line 429 "parser.y" +#line 423 "parser.y" { bx_dbg_set_reg64_value(yyvsp[-3].uval, yyvsp[-1].uval); - } + } break; case 88: -#line 436 "parser.y" +#line 430 "parser.y" { bx_dbg_vbreakpoint_command(bkAtIP, 0, 0); free(yyvsp[-1].sval); - } + } break; case 89: -#line 441 "parser.y" +#line 435 "parser.y" { bx_dbg_vbreakpoint_command(bkRegular, yyvsp[-3].uval, yyvsp[-1].uval); free(yyvsp[-4].sval); - } + } break; case 90: -#line 446 "parser.y" +#line 440 "parser.y" { bx_dbg_lbreakpoint_command(bkAtIP, 0); free(yyvsp[-1].sval); - } + } break; case 91: -#line 451 "parser.y" +#line 445 "parser.y" { bx_dbg_lbreakpoint_command(bkRegular, yyvsp[-1].uval); free(yyvsp[-2].sval); - } + } break; case 92: -#line 456 "parser.y" +#line 450 "parser.y" { bx_dbg_lbreakpoint_symbol_command(yyvsp[-1].sval); free(yyvsp[-2].sval);free(yyvsp[-1].sval); - } + } break; case 93: -#line 461 "parser.y" +#line 455 "parser.y" { bx_dbg_pbreakpoint_command(bkAtIP, 0); free(yyvsp[-1].sval); - } + } break; case 94: -#line 466 "parser.y" +#line 460 "parser.y" { bx_dbg_pbreakpoint_command(bkRegular, yyvsp[-1].uval); free(yyvsp[-2].sval); - } + } break; case 95: -#line 471 "parser.y" +#line 465 "parser.y" { bx_dbg_pbreakpoint_command(bkRegular, yyvsp[-1].uval); free(yyvsp[-3].sval); - } + } break; case 96: -#line 479 "parser.y" +#line 473 "parser.y" { bx_dbg_info_bpoints_command(); free(yyvsp[-1].sval); - } + } break; case 97: -#line 487 "parser.y" +#line 481 "parser.y" { bx_dbg_info_symbols_command(0); free(yyvsp[-1].sval); - } + } break; case 98: -#line 492 "parser.y" +#line 486 "parser.y" { bx_dbg_info_symbols_command(yyvsp[-1].sval); free(yyvsp[-2].sval);free(yyvsp[-1].sval); - } + } break; case 99: -#line 500 "parser.y" +#line 494 "parser.y" { bx_dbg_info_bpoints_command(); free(yyvsp[-2].sval); free(yyvsp[-1].sval); - } + } break; case 100: -#line 505 "parser.y" +#line 499 "parser.y" { bx_dbg_dump_cpu_command(); free(yyvsp[-2].sval); free(yyvsp[-1].sval); - } + } break; case 101: -#line 510 "parser.y" +#line 504 "parser.y" { bx_dbg_info_registers_command(BX_INFO_CPU_REGS); free(yyvsp[-2].sval); free(yyvsp[-1].sval); - } + } break; case 102: -#line 515 "parser.y" +#line 509 "parser.y" { bx_dbg_info_registers_command(BX_INFO_FPU_REGS); free(yyvsp[-2].sval); free(yyvsp[-1].sval); - } + } break; case 103: -#line 520 "parser.y" +#line 514 "parser.y" { bx_dbg_info_registers_command(BX_INFO_SSE_REGS); free(yyvsp[-2].sval); free(yyvsp[-1].sval); - } + } break; case 104: -#line 525 "parser.y" +#line 519 "parser.y" { bx_dbg_info_registers_command(BX_INFO_CPU_REGS | BX_INFO_FPU_REGS | BX_INFO_SSE_REGS); free(yyvsp[-2].sval); free(yyvsp[-1].sval); - } + } break; case 105: -#line 530 "parser.y" +#line 524 "parser.y" { bx_dbg_info_dirty_command(); free(yyvsp[-2].sval); free(yyvsp[-1].sval); - } + } break; case 106: -#line 535 "parser.y" +#line 529 "parser.y" { - bx_dbg_info_idt_command(yyvsp[-1].uval_range); - free(yyvsp[-3].sval); free(yyvsp[-2].sval); - } + bx_dbg_info_idt_command(yyvsp[-2].uval, yyvsp[-1].uval); + free(yyvsp[-4].sval); free(yyvsp[-3].sval); + } break; case 107: -#line 540 "parser.y" +#line 534 "parser.y" { - bx_dbg_info_ivt_command(yyvsp[-1].uval_range); - free(yyvsp[-3].sval); free(yyvsp[-2].sval); - } + bx_dbg_info_ivt_command(yyvsp[-2].uval, yyvsp[-1].uval); + free(yyvsp[-4].sval); free(yyvsp[-3].sval); + } break; case 108: -#line 545 "parser.y" +#line 539 "parser.y" { - bx_dbg_info_gdt_command(yyvsp[-1].uval_range); - free(yyvsp[-3].sval); free(yyvsp[-2].sval); - } + bx_dbg_info_gdt_command(yyvsp[-2].uval, yyvsp[-1].uval); + free(yyvsp[-4].sval); free(yyvsp[-3].sval); + } break; case 109: -#line 550 "parser.y" +#line 544 "parser.y" { - bx_dbg_info_ldt_command(yyvsp[-1].uval_range); - free(yyvsp[-3].sval); free(yyvsp[-2].sval); - } + bx_dbg_info_ldt_command(yyvsp[-2].uval, yyvsp[-1].uval); + free(yyvsp[-4].sval); free(yyvsp[-3].sval); + } break; case 110: -#line 555 "parser.y" - { - bx_dbg_info_tss_command(yyvsp[-1].uval_range); - free(yyvsp[-3].sval); free(yyvsp[-2].sval); - } - break; - - case 111: -#line 560 "parser.y" +#line 549 "parser.y" { bx_dbg_dump_table(); free(yyvsp[-2].sval); free(yyvsp[-1].sval); - } + } + break; + + case 111: +#line 554 "parser.y" + { + bx_dbg_info_tss_command(); + free(yyvsp[-2].sval); free(yyvsp[-1].sval); + } break; case 112: -#line 565 "parser.y" +#line 559 "parser.y" { bx_dbg_info_flags(); free(yyvsp[-2].sval); - } + } break; case 113: -#line 570 "parser.y" +#line 564 "parser.y" { bx_dbg_info_linux_command(); free(yyvsp[-2].sval); free(yyvsp[-1].sval); - } + } break; case 114: -#line 575 "parser.y" +#line 569 "parser.y" { bx_dbg_info_symbols_command(0); free(yyvsp[-2].sval); free(yyvsp[-1].sval); - } + } break; case 115: -#line 580 "parser.y" +#line 574 "parser.y" { bx_dbg_info_symbols_command(yyvsp[-1].sval); free(yyvsp[-3].sval); free(yyvsp[-2].sval); free(yyvsp[-1].sval); - } + } break; case 116: -#line 585 "parser.y" +#line 579 "parser.y" { bx_dbg_info_control_regs_command(); free(yyvsp[-2].sval); free(yyvsp[-1].sval); - } + } break; case 117: -#line 590 "parser.y" +#line 584 "parser.y" { bx_dbg_info_ne2k(-1, -1); free(yyvsp[-2].sval); free(yyvsp[-1].sval); - } + } break; case 118: -#line 595 "parser.y" +#line 589 "parser.y" { free(yyvsp[-4].sval); free(yyvsp[-3].sval); free(yyvsp[-2].sval); bx_dbg_info_ne2k(yyvsp[-1].uval, -1); - } + } break; case 119: -#line 600 "parser.y" +#line 594 "parser.y" { free(yyvsp[-6].sval); free(yyvsp[-5].sval); free(yyvsp[-4].sval); free(yyvsp[-2].sval); bx_dbg_info_ne2k(yyvsp[-3].uval, yyvsp[-1].uval); - } + } break; case 120: -#line 605 "parser.y" +#line 599 "parser.y" { bx_dbg_info_pic(); free(yyvsp[-2].sval); free(yyvsp[-1].sval); - } + } break; case 121: -#line 610 "parser.y" +#line 604 "parser.y" { bx_dbg_info_vga(); free(yyvsp[-2].sval); free(yyvsp[-1].sval); - } + } break; case 122: -#line 621 "parser.y" - { yyval.uval_range = make_num_range (EMPTY_ARG, EMPTY_ARG); } +#line 611 "parser.y" + { yyval.uval = EMPTY_ARG; } break; case 124: -#line 626 "parser.y" +#line 615 "parser.y" + { yyval.uval_range = make_num_range (EMPTY_ARG, EMPTY_ARG); } + break; + + case 126: +#line 620 "parser.y" { yyval.uval_range = make_num_range (yyvsp[0].uval, yyvsp[0].uval); } break; - case 125: -#line 630 "parser.y" + case 127: +#line 624 "parser.y" { yyval.uval_range = make_num_range (yyvsp[-1].uval, yyvsp[0].uval); } break; - case 126: -#line 636 "parser.y" + case 128: +#line 630 "parser.y" { bx_dbg_info_registers_command(BX_INFO_CPU_REGS); free(yyvsp[-1].sval); - } - break; - - case 127: -#line 644 "parser.y" - { - bx_dbg_dump_cpu_command(); - free(yyvsp[-1].sval); - } - break; - - case 128: -#line 652 "parser.y" - { - bx_dbg_del_breakpoint_command(yyvsp[-1].uval); - free(yyvsp[-2].sval); - } + } break; case 129: -#line 660 "parser.y" +#line 638 "parser.y" { - bx_dbg_en_dis_breakpoint_command(yyvsp[-1].uval, 1); - free(yyvsp[-2].sval); - } + bx_dbg_dump_cpu_command(); + free(yyvsp[-1].sval); + } break; case 130: -#line 667 "parser.y" +#line 646 "parser.y" { - bx_dbg_en_dis_breakpoint_command(yyvsp[-1].uval, 0); + bx_dbg_del_breakpoint_command(yyvsp[-1].uval); free(yyvsp[-2].sval); - } + } break; case 131: -#line 675 "parser.y" +#line 654 "parser.y" { - bx_dbg_quit_command(); - free(yyvsp[-1].sval); - } + bx_dbg_en_dis_breakpoint_command(yyvsp[-1].uval, 1); + free(yyvsp[-2].sval); + } break; case 132: -#line 683 "parser.y" +#line 661 "parser.y" { - bx_dbg_examine_command(yyvsp[-3].sval, yyvsp[-2].sval,1, yyvsp[-1].uval, 1); - free(yyvsp[-3].sval); free(yyvsp[-2].sval); - } + bx_dbg_en_dis_breakpoint_command(yyvsp[-1].uval, 0); + free(yyvsp[-2].sval); + } break; case 133: -#line 688 "parser.y" +#line 669 "parser.y" { - bx_dbg_examine_command(yyvsp[-2].sval, yyvsp[-1].sval,1, 0, 0); - free(yyvsp[-2].sval); free(yyvsp[-1].sval); - } + bx_dbg_quit_command(); + free(yyvsp[-1].sval); + } break; case 134: -#line 693 "parser.y" +#line 677 "parser.y" { - bx_dbg_examine_command(yyvsp[-2].sval, NULL,0, yyvsp[-1].uval, 1); - free(yyvsp[-2].sval); - } + bx_dbg_examine_command(yyvsp[-3].sval, yyvsp[-2].sval,1, yyvsp[-1].uval, 1); + free(yyvsp[-3].sval); free(yyvsp[-2].sval); + } break; case 135: -#line 698 "parser.y" +#line 682 "parser.y" { - bx_dbg_examine_command(yyvsp[-1].sval, NULL,0, 0, 0); - free(yyvsp[-1].sval); - } + bx_dbg_examine_command(yyvsp[-2].sval, yyvsp[-1].sval,1, 0, 0); + free(yyvsp[-2].sval); free(yyvsp[-1].sval); + } break; case 136: -#line 706 "parser.y" +#line 687 "parser.y" { - bx_dbg_setpmem_command(yyvsp[-3].uval, yyvsp[-2].uval, yyvsp[-1].uval); - free(yyvsp[-4].sval); - } + bx_dbg_examine_command(yyvsp[-2].sval, NULL,0, yyvsp[-1].uval, 1); + free(yyvsp[-2].sval); + } break; case 137: -#line 714 "parser.y" +#line 692 "parser.y" { - bx_dbg_query_command(yyvsp[-1].sval); - free(yyvsp[-2].sval); free(yyvsp[-1].sval); - } + bx_dbg_examine_command(yyvsp[-1].sval, NULL,0, 0, 0); + free(yyvsp[-1].sval); + } break; case 138: -#line 722 "parser.y" +#line 700 "parser.y" { - bx_dbg_take_command(yyvsp[-1].sval, 1); - free(yyvsp[-2].sval); free(yyvsp[-1].sval); - } + bx_dbg_setpmem_command(yyvsp[-3].uval, yyvsp[-2].uval, yyvsp[-1].uval); + free(yyvsp[-4].sval); + } break; case 139: -#line 727 "parser.y" +#line 708 "parser.y" { - bx_dbg_take_command(yyvsp[-2].sval, yyvsp[-1].uval); - free(yyvsp[-3].sval); free(yyvsp[-2].sval); - } + bx_dbg_query_command(yyvsp[-1].sval); + free(yyvsp[-2].sval); free(yyvsp[-1].sval); + } break; case 140: -#line 732 "parser.y" +#line 716 "parser.y" { bx_dbg_take_command(yyvsp[-1].sval, 1); free(yyvsp[-2].sval); free(yyvsp[-1].sval); - } + } break; case 141: -#line 740 "parser.y" +#line 721 "parser.y" { - bx_dbg_set_cpu_command(); - free(yyvsp[-1].sval); - } + bx_dbg_take_command(yyvsp[-2].sval, yyvsp[-1].uval); + free(yyvsp[-3].sval); free(yyvsp[-2].sval); + } break; case 142: -#line 748 "parser.y" +#line 726 "parser.y" { - bx_dbg_disassemble_command(NULL, yyvsp[-1].uval_range); - free(yyvsp[-2].sval); - } + bx_dbg_take_command(yyvsp[-1].sval, 1); + free(yyvsp[-2].sval); free(yyvsp[-1].sval); + } break; case 143: -#line 753 "parser.y" +#line 734 "parser.y" { - bx_dbg_disassemble_command(yyvsp[-2].sval, yyvsp[-1].uval_range); - free(yyvsp[-3].sval); free(yyvsp[-2].sval); - } + bx_dbg_set_cpu_command(); + free(yyvsp[-1].sval); + } break; case 144: -#line 758 "parser.y" +#line 742 "parser.y" { - bx_dbg_disassemble_switch_mode(); - free(yyvsp[-2].sval); free(yyvsp[-1].sval); - } + bx_dbg_disassemble_command(NULL, yyvsp[-1].uval_range); + free(yyvsp[-2].sval); + } break; case 145: -#line 763 "parser.y" +#line 747 "parser.y" { - bx_dbg_set_disassemble_size(yyvsp[-1].uval); - free(yyvsp[-4].sval); free(yyvsp[-3].sval); - } + bx_dbg_disassemble_command(yyvsp[-2].sval, yyvsp[-1].uval_range); + free(yyvsp[-3].sval); free(yyvsp[-2].sval); + } break; case 146: -#line 771 "parser.y" +#line 752 "parser.y" { - bx_dbg_instrument_command(yyvsp[-1].sval); + bx_dbg_disassemble_switch_mode(); free(yyvsp[-2].sval); free(yyvsp[-1].sval); - } + } break; case 147: -#line 779 "parser.y" +#line 757 "parser.y" { - bx_dbg_doit_command(yyvsp[-1].uval); - free(yyvsp[-2].sval); - } + bx_dbg_set_disassemble_size(yyvsp[-1].uval); + free(yyvsp[-4].sval); free(yyvsp[-3].sval); + } break; case 148: -#line 787 "parser.y" +#line 765 "parser.y" { - bx_dbg_crc_command(yyvsp[-2].uval, yyvsp[-1].uval); - free(yyvsp[-3].sval); - } + bx_dbg_instrument_command(yyvsp[-1].sval); + free(yyvsp[-2].sval); free(yyvsp[-1].sval); + } break; case 149: -#line 795 "parser.y" +#line 773 "parser.y" { - dbg_printf("q|quit|exit - quit debugger and emulator execution\n"); - free(yyvsp[-2].sval);free(yyvsp[-1].sval); - } + bx_dbg_doit_command(yyvsp[-1].uval); + free(yyvsp[-2].sval); + } break; case 150: -#line 800 "parser.y" +#line 781 "parser.y" { - dbg_printf("c|cont|continue - continue executing\n"); - free(yyvsp[-2].sval);free(yyvsp[-1].sval); - } + bx_dbg_crc_command(yyvsp[-2].uval, yyvsp[-1].uval); + free(yyvsp[-3].sval); + } break; case 151: -#line 805 "parser.y" +#line 789 "parser.y" { - dbg_printf("s|step|stepi [count] - execute #count instructions (default is one instruction)\n"); + dbg_printf("q|quit|exit - quit debugger and emulator execution\n"); free(yyvsp[-2].sval);free(yyvsp[-1].sval); - } + } break; case 152: -#line 810 "parser.y" +#line 794 "parser.y" { - dbg_printf("n|next|p - execute instruction stepping over subroutines\n"); + dbg_printf("c|cont|continue - continue executing\n"); free(yyvsp[-2].sval);free(yyvsp[-1].sval); - } + } break; case 153: -#line 815 "parser.y" +#line 799 "parser.y" { - dbg_printf("vb|vbreak - set a virtual address instruction breakpoint\n"); + dbg_printf("s|step|stepi [count] - execute #count instructions (default is one instruction)\n"); free(yyvsp[-2].sval);free(yyvsp[-1].sval); - } + } break; case 154: -#line 820 "parser.y" +#line 804 "parser.y" { - dbg_printf("p|pb|break|pbreak - set a physical address instruction breakpoint\n"); + dbg_printf("n|next|p - execute instruction stepping over subroutines\n"); free(yyvsp[-2].sval);free(yyvsp[-1].sval); - } + } break; case 155: -#line 825 "parser.y" +#line 809 "parser.y" { - dbg_printf("d|del|delete - delete a breakpoint\n"); + dbg_printf("vb|vbreak - set a virtual address instruction breakpoint\n"); free(yyvsp[-2].sval);free(yyvsp[-1].sval); - } + } break; case 156: -#line 830 "parser.y" +#line 814 "parser.y" { - dbg_printf("bpe - enable a breakpoint\n"); + dbg_printf("p|pb|break|pbreak - set a physical address instruction breakpoint\n"); free(yyvsp[-2].sval);free(yyvsp[-1].sval); - } + } break; case 157: -#line 835 "parser.y" +#line 819 "parser.y" { - dbg_printf("bpd - disable a breakpoint\n"); + dbg_printf("d|del|delete - delete a breakpoint\n"); free(yyvsp[-2].sval);free(yyvsp[-1].sval); - } + } break; case 158: -#line 840 "parser.y" +#line 824 "parser.y" { - dbg_printf("blist - list all breakpoints (same as 'info break')\n"); + dbg_printf("bpe - enable a breakpoint\n"); free(yyvsp[-2].sval);free(yyvsp[-1].sval); - } + } break; case 159: -#line 845 "parser.y" +#line 829 "parser.y" { - dbg_printf("modebp - toggles mode switch breakpoint\n"); + dbg_printf("bpd - disable a breakpoint\n"); free(yyvsp[-2].sval);free(yyvsp[-1].sval); - } + } break; case 160: -#line 850 "parser.y" +#line 834 "parser.y" { - dbg_printf("crc - show CRC32 for physical memory range addr1..addr2\n"); + dbg_printf("blist - list all breakpoints (same as 'info break')\n"); free(yyvsp[-2].sval);free(yyvsp[-1].sval); - } + } break; case 161: -#line 855 "parser.y" +#line 839 "parser.y" + { + dbg_printf("modebp - toggles mode switch breakpoint\n"); + free(yyvsp[-2].sval);free(yyvsp[-1].sval); + } + break; + + case 162: +#line 844 "parser.y" + { + dbg_printf("crc - show CRC32 for physical memory range addr1..addr2\n"); + free(yyvsp[-2].sval);free(yyvsp[-1].sval); + } + break; + + case 163: +#line 849 "parser.y" { dbg_printf("trace on - print disassembly for every executed instruction\n"); dbg_printf("trace off - disable instruction tracing\n"); free(yyvsp[-2].sval);free(yyvsp[-1].sval); - } + } break; - case 162: -#line 861 "parser.y" + case 164: +#line 855 "parser.y" { dbg_printf("trace-reg on - print all registers before every executed instruction\n"); dbg_printf("trace-reg off - disable registers state tracing\n"); free(yyvsp[-2].sval);free(yyvsp[-1].sval); - } - break; - - case 163: -#line 867 "parser.y" - { - dbg_printf("dump_cpu - dump complete cpu state\n"); - free(yyvsp[-2].sval);free(yyvsp[-1].sval); - } - break; - - case 164: -#line 872 "parser.y" - { - dbg_printf("set_cpu - set complete cpu state\n"); - free(yyvsp[-2].sval);free(yyvsp[-1].sval); - } + } break; case 165: -#line 877 "parser.y" +#line 861 "parser.y" { - dbg_printf("ptime - print current time (number of ticks since start of simulation)\n"); + dbg_printf("dump_cpu - dump complete cpu state\n"); free(yyvsp[-2].sval);free(yyvsp[-1].sval); - } + } break; case 166: -#line 882 "parser.y" +#line 866 "parser.y" { - dbg_printf("sb - insert a time breakpoint delta instructions into the future\n"); + dbg_printf("set_cpu - set complete cpu state\n"); free(yyvsp[-2].sval);free(yyvsp[-1].sval); - } + } break; case 167: -#line 887 "parser.y" +#line 871 "parser.y" { - dbg_printf("sba