From 2a55ba0a39267480338229e36c2a663dc8bd4fc7 Mon Sep 17 00:00:00 2001 From: Stanislav Shwartsman Date: Tue, 22 Aug 2017 21:03:58 +0000 Subject: [PATCH] Merge set of debugger improvements by Doug Gale Here is his original comment: I have made several improvements in the debugger. I have fixed several issues with proper handling of 64-bit addresses, and added support for 64 bit symbols. I also have added several symbol lookups. --- bochs/bx_debug/dbg_main.cc | 202 +- bochs/bx_debug/debug.h | 11 +- bochs/bx_debug/lexer.c | 1431 ++++++++------ bochs/bx_debug/lexer.l | 1 + bochs/bx_debug/parser.c | 3287 ++++++++++++++++--------------- bochs/bx_debug/parser.h | 124 +- bochs/bx_debug/parser.y | 19 +- bochs/bx_debug/symbols.cc | 70 +- bochs/cpu/debugstuff.cc | 61 +- bochs/disasm/dis_groups.cc | 66 +- bochs/disasm/resolve.cc | 13 + bochs/doc/docbook/user/user.dbk | 11 + bochs/osdep.h | 7 + 13 files changed, 2856 insertions(+), 2447 deletions(-) diff --git a/bochs/bx_debug/dbg_main.cc b/bochs/bx_debug/dbg_main.cc index 5f3f85834..5f2dd1a16 100644 --- a/bochs/bx_debug/dbg_main.cc +++ b/bochs/bx_debug/dbg_main.cc @@ -284,8 +284,10 @@ int bx_dbg_main(void) bx_dbg_user_input_loop(); - if(debugger_log != NULL) + if(debugger_log != NULL) { fclose(debugger_log); + debugger_log = NULL; + } bx_dbg_exit(0); return(0); // keep compiler happy @@ -1160,7 +1162,7 @@ void bx_dbg_info_registers_command(int which_regs_mask) dbg_printf("r14: %08x_%08x\n", GET32H(reg), GET32L(reg)); reg = BX_CPU(dbg_cpu)->get_reg64(BX_64BIT_REG_R15); dbg_printf("r15: %08x_%08x\n", GET32H(reg), GET32L(reg)); - reg = bx_dbg_get_instruction_pointer(); + reg = bx_dbg_get_rip(); dbg_printf("rip: %08x_%08x\n", GET32H(reg), GET32L(reg)); #endif reg = BX_CPU(dbg_cpu)->read_eflags(); @@ -1290,6 +1292,15 @@ inserted: dbg_printf("Time breakpoint inserted. Delta = " FMT_LL "u\n", diff); } +Bit64u conv_8xBit8u_to_Bit64u(const Bit8u* buf) +{ + Bit64u ret = 0; + for (int i = 0; i < 8; i++) { + ret |= (buf[i] << (8 * i)); + } + return ret; +} + Bit32u conv_4xBit8u_to_Bit32u(const Bit8u* buf) { Bit32u ret = 0; @@ -1701,21 +1712,30 @@ void bx_dbg_print_stack_command(unsigned nwords) if (! bx_dbg_read_linear(dbg_cpu, linear_sp, len, buf)) break; #if BX_SUPPORT_X86_64 if (len == 8) { - dbg_printf(" | STACK 0x%08x%08x [0x%08x:0x%08x]\n", + Bit64u addr_on_stack = conv_8xBit8u_to_Bit64u(buf); + const char *Sym=bx_dbg_disasm_symbolic_address(addr_on_stack, 0); + dbg_printf(" | STACK 0x%08x%08x [0x%08x:0x%08x] (%s)\n", GET32H(linear_sp), GET32L(linear_sp), (unsigned) conv_4xBit8u_to_Bit32u(buf+4), - (unsigned) conv_4xBit8u_to_Bit32u(buf)); + (unsigned) conv_4xBit8u_to_Bit32u(buf), + Sym ? Sym : ""); } else #endif { if (len == 4) { - dbg_printf(" | STACK 0x%08x [0x%08x]\n", - (unsigned) linear_sp, (unsigned) conv_4xBit8u_to_Bit32u(buf)); + Bit32u addr_on_stack = conv_4xBit8u_to_Bit32u(buf); + const char *Sym=bx_dbg_disasm_symbolic_address(addr_on_stack, 0); + dbg_printf(" | STACK 0x%08x [0x%08x] (%s)\n", + (unsigned) linear_sp, (unsigned) conv_4xBit8u_to_Bit32u(buf), + Sym ? Sym : ""); } else { - dbg_printf(" | STACK 0x%04x [0x%04x]\n", - (unsigned) linear_sp, (unsigned) conv_2xBit8u_to_Bit16u(buf)); + Bit32u addr_on_stack = conv_2xBit8u_to_Bit16u(buf); + const char *Sym=bx_dbg_disasm_symbolic_address(addr_on_stack, 0); + dbg_printf(" | STACK 0x%04x [0x%04x] (%s)\n", + (unsigned) linear_sp, (unsigned) conv_2xBit8u_to_Bit16u(buf), + Sym ? Sym : ""); } } @@ -1723,6 +1743,98 @@ void bx_dbg_print_stack_command(unsigned nwords) } } +void bx_dbg_bt_command(unsigned dist) +{ + bx_address linear_bp; + bx_address linear_sp; + unsigned len; + +#if BX_SUPPORT_X86_64 + if (BX_CPU(dbg_cpu)->get_cpu_mode() == BX_MODE_LONG_64) { + linear_bp = BX_CPU(dbg_cpu)->get_reg64(BX_64BIT_REG_RBP); + linear_sp = BX_CPU(dbg_cpu)->get_reg64(BX_64BIT_REG_RSP); + bx_address rip = BX_CPU(dbg_cpu)->get_instruction_pointer(); + const char *Sym=bx_dbg_disasm_symbolic_address(rip, 0); + dbg_printf("%012" FMT_64 "x -> %012" FMT_64 "x (%s)\n", + (Bit64u)linear_sp, (Bit64u)rip, Sym); + len = 8; + } else +#endif + { + if (BX_CPU(dbg_cpu)->sregs[BX_SEG_REG_SS].cache.u.segment.d_b) { + linear_bp = BX_CPU(dbg_cpu)->get_reg32(BX_32BIT_REG_EBP); + linear_sp = BX_CPU(dbg_cpu)->get_reg32(BX_32BIT_REG_ESP); + bx_address eip = BX_CPU(dbg_cpu)->get_instruction_pointer(); + const char *Sym=bx_dbg_disasm_symbolic_address(eip, 0); + dbg_printf("%08x -> %08x (%s)\n", + (Bit32u)linear_sp, (Bit32u)eip, Sym); + len = 4; + } else { + linear_bp = BX_CPU(dbg_cpu)->get_reg16(BX_16BIT_REG_BP); + linear_sp = BX_CPU(dbg_cpu)->get_reg16(BX_16BIT_REG_BP); + bx_address ip = BX_CPU(dbg_cpu)->get_instruction_pointer(); + const char *Sym=bx_dbg_disasm_symbolic_address(ip, 0); + dbg_printf("%04x -> %04x (%s)\n", + (Bit16u)linear_sp, (Bit16u)ip, Sym); + len = 2; + } + } + + Bit8u buf[8]; + Bit64u addr_on_stack; + bx_address addr; + + for (unsigned i = 0; i < dist; ++i) { + // Read return address right above frame pointer + addr = BX_CPU(dbg_cpu)->get_laddr(BX_SEG_REG_SS, linear_bp); + if (!bx_dbg_read_linear(dbg_cpu, addr + len, len, buf)) + break; +#if BX_SUPPORT_X86_64 + if (len == 8) { + addr_on_stack = conv_8xBit8u_to_Bit64u(buf); + const char *Sym=bx_dbg_disasm_symbolic_address(addr_on_stack, 0); + dbg_printf("%012" FMT_64 "x -> %012" FMT_64 "x (%s)\n", + (Bit64u)addr, + (Bit64u)addr_on_stack, + Sym ? Sym : ""); + + // Get next frame pointer + if (!bx_dbg_read_linear(dbg_cpu, addr, len, buf)) + break; + linear_bp = conv_8xBit8u_to_Bit64u(buf); + } + else +#endif + { + if (len == 4) { + addr_on_stack = conv_4xBit8u_to_Bit32u(buf); + const char *Sym=bx_dbg_disasm_symbolic_address(addr_on_stack, 0); + dbg_printf(FMT_ADDRX32 " -> " FMT_ADDRX32 " (%s)\n", + (Bit32u)addr, + (Bit32u)addr_on_stack, + Sym ? Sym : ""); + + // Get next frame pointer + if (!bx_dbg_read_linear(dbg_cpu, addr, len, buf)) + break; + linear_bp = conv_4xBit8u_to_Bit32u(buf); + } else { + addr_on_stack = conv_2xBit8u_to_Bit16u(buf); + const char *Sym=bx_dbg_disasm_symbolic_address(addr_on_stack, 0); + dbg_printf(FMT_ADDRX16 " -> " FMT_ADDRX16 " (%s)\n", + (Bit16u)addr, + (Bit16u)addr_on_stack, + Sym ? Sym : ""); + + // Get next frame pointer + if (!bx_dbg_read_linear(dbg_cpu, addr, len, buf)) + break; + linear_bp = conv_2xBit8u_to_Bit16u(buf); + } + } + } +} + void bx_dbg_print_watchpoints(void) { Bit8u buf[2]; @@ -2188,6 +2300,7 @@ void bx_dbg_examine_command(const char *command, const char *format, bx_bool for Bit8u data8; Bit16u data16; Bit32u data32; + Bit64u data64; unsigned columns, per_line, offset; bx_bool is_linear; Bit8u databuf[8]; @@ -2290,11 +2403,6 @@ void bx_dbg_examine_command(const char *command, const char *format, bx_bool for return; } - if (unit_size == 'g') { - dbg_printf("error: dbg_examine: 'g' (8-byte) unit size not supported.\n"); - return; - } - if (format_passed) { // store current options as default bx_debugger.default_display_format = display_format; @@ -2317,7 +2425,7 @@ void bx_dbg_examine_command(const char *command, const char *format, bx_bool for case 'b': data_size = 1; per_line = 16; break; case 'h': data_size = 2; per_line = 8; break; case 'w': data_size = 4; per_line = 4; break; - //case 'g': data_size = 8; per_line = 2; break; + case 'g': data_size = 8; per_line = 2; break; } // binary format is quite large if (display_format == 't') @@ -2329,7 +2437,7 @@ void bx_dbg_examine_command(const char *command, const char *format, bx_bool for case 'b': data_size = 1; per_line = 8; break; case 'h': data_size = 2; per_line = 8; break; case 'w': data_size = 4; per_line = 4; break; - //case 'g': data_size = 8; per_line = 2; break; + case 'g': data_size = 8; per_line = 2; break; } } @@ -2342,8 +2450,13 @@ void bx_dbg_examine_command(const char *command, const char *format, bx_bool for dbg_printf("\n"); if (memory_dump) dbg_printf("0x" FMT_ADDRX ":", addr); + else { + const char *Sym=bx_dbg_disasm_symbolic_address(addr + offset, 0); + if (Sym) + dbg_printf("0x" FMT_ADDRX " <%s>:", addr, Sym); else dbg_printf("0x" FMT_ADDRX " :", addr, offset); + } columns = 1; } @@ -2425,10 +2538,10 @@ void bx_dbg_examine_command(const char *command, const char *format, bx_bool for } else switch (display_format) { - case 'x': dbg_printf("\t0x%08x", (unsigned) data32); break; - case 'd': dbg_printf("\t%d", (int) (Bit32s) data32); break; - case 'u': dbg_printf("\t%u", (unsigned) data32); break; - case 'o': dbg_printf("\t%o", (unsigned) data32); break; + case 'x': dbg_printf("\t0x%08x", data32); break; + case 'd': dbg_printf("\t%d", (Bit32s) data32); break; + case 'u': dbg_printf("\t%u", data32); break; + case 'o': dbg_printf("\t%o", data32); break; case 't': dbg_printf_binary("\t%s", data32, 32); break; case 'c': bx_print_char(0xff & (data32>>24)); @@ -2438,6 +2551,37 @@ void bx_dbg_examine_command(const char *command, const char *format, bx_bool for break; } break; + + case 8: + ReadHostQWordFromLittleEndian(databuf, data64); + + if (memory_dump) + switch (display_format) { + case 'd': dbg_printf("%10" FMT_64 "d ", data64); break; + case 'u': dbg_printf("%10" FMT_64 "u ", data64); break; + case 'o': dbg_printf("%12" FMT_64 "o ", data64); break; + case 't': dbg_printf_binary("%s ", data64, 64); break; + default : dbg_printf("%08" FMT_64 "X ", data64); break; + } + else + switch (display_format) { + case 'x': dbg_printf("\t0x%08" FMT_64 "x", data64); break; + case 'd': dbg_printf("\t%" FMT_64 "d", (Bit64s) data64); break; + case 'u': dbg_printf("\t%" FMT_64 "u", data64); break; + case 'o': dbg_printf("\t%" FMT_64 "o", data64); break; + case 't': dbg_printf_binary("\t%s", data64, 64); break; + case 'c': + bx_print_char(0xff & (data64>>56)); + bx_print_char(0xff & (data64>>48)); + bx_print_char(0xff & (data64>>40)); + bx_print_char(0xff & (data64>>32)); + bx_print_char(0xff & (data64>>24)); + bx_print_char(0xff & (data64>>16)); + bx_print_char(0xff & (data64>> 8)); + bx_print_char(0xff & (data64>> 0)); + break; + } + break; } addr += data_size; @@ -2561,7 +2705,7 @@ void bx_dbg_set_symbol_command(const char *symbol, bx_address val) return; } char cpu_param_name[10]; - sprintf(cpu_param_name, "cpu%d", val); + sprintf(cpu_param_name, "cpu%d", (int)val); dbg_cpu_list = (bx_list_c*) SIM->get_param(cpu_param_name, SIM->get_bochs_root()); dbg_cpu = val; return; @@ -2671,11 +2815,11 @@ void bx_dbg_disassemble_command(const char *format, Bit64u from, Bit64u to) if (! bx_dbg_read_linear(dbg_cpu, from, 16, bx_disasm_ibuf)) break; unsigned ilen = bx_disassemble.disasm(dis_size==32, dis_size==64, - (bx_address)(-1), (bx_address)(-1), bx_disasm_ibuf, bx_disasm_tbuf); + 0/*(bx_address)(-1)*/, from/*(bx_address)(-1)*/, bx_disasm_ibuf, bx_disasm_tbuf); - const char *Sym=bx_dbg_disasm_symbolic_address((Bit32u)from, 0); + const char *Sym=bx_dbg_disasm_symbolic_address(from, 0); - dbg_printf("%08x: ", (unsigned) from); + dbg_printf(FMT_ADDRX ": ", from); dbg_printf("(%20s): ", Sym?Sym:""); dbg_printf("%-25s ; ", bx_disasm_tbuf); @@ -2870,6 +3014,11 @@ void bx_dbg_print_descriptor64(Bit32u lo1, Bit32u hi1, Bit32u lo2, Bit32u hi2) default: // task, int, trap, or call gate. dbg_printf("target=0x%04x:" FMT_ADDRX ", DPL=%d", segment, offset, dpl); + + const char *Sym = bx_dbg_disasm_symbolic_address(offset, 0); + if (Sym) + dbg_printf(" (%s)", Sym); + break; } } @@ -2969,7 +3118,7 @@ void bx_dbg_info_gdt_command(unsigned from, unsigned to) Bit8u entry[8]; if (8*n + 7 > gdtr.limit) break; if (bx_dbg_read_linear(dbg_cpu, gdtr.base + 8*n, 8, entry)) { - dbg_printf("GDT[0x%02x]=", n); + dbg_printf("GDT[0x%04x]=", n << 3); Bit32u lo = (entry[3] << 24) | (entry[2] << 16) | (entry[1] << 8) | (entry[0]); Bit32u hi = (entry[7] << 24) | (entry[6] << 16) | (entry[5] << 8) | (entry[4]); @@ -3582,7 +3731,7 @@ Bit32u bx_dbg_get_eip(void) return BX_CPU(dbg_cpu)->get_eip(); } -bx_address bx_dbg_get_instruction_pointer(void) +bx_address bx_dbg_get_rip(void) { return BX_CPU(dbg_cpu)->get_instruction_pointer(); } @@ -3712,7 +3861,8 @@ bx_address bx_dbg_get_laddr(Bit16u sel, bx_address ofs) highaddr = descriptor.u.segment.limit_scaled; } - if (ofs < lowaddr || ofs > highaddr) { + if ((ofs < lowaddr || ofs > highaddr) && + BX_CPU(dbg_cpu)->get_cpu_mode() != BX_MODE_LONG_64) { dbg_printf("WARNING: Offset %08X is out of selector %04x limit (%08x...%08x)!\n", ofs, sel, lowaddr, highaddr); } diff --git a/bochs/bx_debug/debug.h b/bochs/bx_debug/debug.h index 79f32d745..9930c1fdc 100644 --- a/bochs/bx_debug/debug.h +++ b/bochs/bx_debug/debug.h @@ -77,7 +77,7 @@ bx_bool bx_dbg_read_linear(unsigned which_cpu, bx_address laddr, unsigned len, B Bit16u bx_dbg_get_selector_value(unsigned int seg_no); Bit16u bx_dbg_get_ip (void); Bit32u bx_dbg_get_eip(void); -bx_address bx_dbg_get_instruction_pointer(void); +bx_address bx_dbg_get_rip(void); Bit8u bx_dbg_get_reg8l_value(unsigned reg); Bit8u bx_dbg_get_reg8h_value(unsigned reg); Bit16u bx_dbg_get_reg16_value(unsigned reg); @@ -110,6 +110,7 @@ void bx_dbg_xlate_address(bx_lin_address laddr); void bx_dbg_tlb_lookup(bx_lin_address laddr); void bx_dbg_show_command(const char*); void bx_dbg_print_stack_command(unsigned nwords); +void bx_dbg_bt_command(unsigned dist); void bx_dbg_print_watchpoints(void); void bx_dbg_watchpoint_continue(bx_bool watch_continue); void bx_dbg_watch(int type, bx_phy_address address, Bit32u len); @@ -189,12 +190,12 @@ void bx_dbg_show_param_command(const char *param, bx_bool xml); int bx_dbg_show_symbolic(void); void bx_dbg_set_symbol_command(const char *symbol, bx_address val); -const char* bx_dbg_symbolic_address(Bit32u context, Bit32u eip, Bit32u base); -int bx_dbg_symbol_command(const char* filename, bx_bool global, Bit32u offset); +const char* bx_dbg_symbolic_address(bx_address context, bx_address eip, bx_address base); +int bx_dbg_symbol_command(const char* filename, bx_bool global, bx_address offset); void bx_dbg_info_symbols_command(const char *Symbol); int bx_dbg_lbreakpoint_symbol_command(const char *Symbol, const char *condition); -Bit32u bx_dbg_get_symbol_value(const char *Symbol); -const char* bx_dbg_disasm_symbolic_address(Bit32u eip, Bit32u base); +bx_address bx_dbg_get_symbol_value(const char *Symbol); +const char* bx_dbg_disasm_symbolic_address(bx_address eip, bx_address base); #ifdef __cplusplus } diff --git a/bochs/bx_debug/lexer.c b/bochs/bx_debug/lexer.c index 82323cbec..d6f9df250 100644 --- a/bochs/bx_debug/lexer.c +++ b/bochs/bx_debug/lexer.c @@ -7,11 +7,17 @@ #define yy_create_buffer bx_create_buffer #define yy_delete_buffer bx_delete_buffer -#define yy_flex_debug bx_flex_debug +#define yy_scan_buffer bx_scan_buffer +#define yy_scan_string bx_scan_string +#define yy_scan_bytes bx_scan_bytes #define yy_init_buffer bx_init_buffer #define yy_flush_buffer bx_flush_buffer #define yy_load_buffer_state bx_load_buffer_state #define yy_switch_to_buffer bx_switch_to_buffer +#define yypush_buffer_state bxpush_buffer_state +#define yypop_buffer_state bxpop_buffer_state +#define yyensure_buffer_stack bxensure_buffer_stack +#define yy_flex_debug bx_flex_debug #define yyin bxin #define yyleng bxleng #define yylex bxlex @@ -27,88 +33,244 @@ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 6 -#define YY_FLEX_SUBMINOR_VERSION 3 +#define YY_FLEX_SUBMINOR_VERSION 4 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif - #define yy_create_buffer bx_create_buffer +#ifdef yy_create_buffer +#define bx_create_buffer_ALREADY_DEFINED +#else +#define yy_create_buffer bx_create_buffer +#endif - #define yy_delete_buffer bx_delete_buffer +#ifdef yy_delete_buffer +#define bx_delete_buffer_ALREADY_DEFINED +#else +#define yy_delete_buffer bx_delete_buffer +#endif - #define yy_scan_buffer bx_scan_buffer +#ifdef yy_scan_buffer +#define bx_scan_buffer_ALREADY_DEFINED +#else +#define yy_scan_buffer bx_scan_buffer +#endif - #define yy_scan_string bx_scan_string +#ifdef yy_scan_string +#define bx_scan_string_ALREADY_DEFINED +#else +#define yy_scan_string bx_scan_string +#endif - #define yy_scan_bytes bx_scan_bytes +#ifdef yy_scan_bytes +#define bx_scan_bytes_ALREADY_DEFINED +#else +#define yy_scan_bytes bx_scan_bytes +#endif - #define yy_init_buffer bx_init_buffer +#ifdef yy_init_buffer +#define bx_init_buffer_ALREADY_DEFINED +#else +#define yy_init_buffer bx_init_buffer +#endif - #define yy_flush_buffer bx_flush_buffer +#ifdef yy_flush_buffer +#define bx_flush_buffer_ALREADY_DEFINED +#else +#define yy_flush_buffer bx_flush_buffer +#endif - #define yy_load_buffer_state bx_load_buffer_state +#ifdef yy_load_buffer_state +#define bx_load_buffer_state_ALREADY_DEFINED +#else +#define yy_load_buffer_state bx_load_buffer_state +#endif - #define yy_switch_to_buffer bx_switch_to_buffer +#ifdef yy_switch_to_buffer +#define bx_switch_to_buffer_ALREADY_DEFINED +#else +#define yy_switch_to_buffer bx_switch_to_buffer +#endif - #define yypush_buffer_state bxpush_buffer_state +#ifdef yypush_buffer_state +#define bxpush_buffer_state_ALREADY_DEFINED +#else +#define yypush_buffer_state bxpush_buffer_state +#endif - #define yypop_buffer_state bxpop_buffer_state +#ifdef yypop_buffer_state +#define bxpop_buffer_state_ALREADY_DEFINED +#else +#define yypop_buffer_state bxpop_buffer_state +#endif - #define yyensure_buffer_stack bxensure_buffer_stack +#ifdef yyensure_buffer_stack +#define bxensure_buffer_stack_ALREADY_DEFINED +#else +#define yyensure_buffer_stack bxensure_buffer_stack +#endif - #define yylex bxlex +#ifdef yylex +#define bxlex_ALREADY_DEFINED +#else +#define yylex bxlex +#endif - #define yyrestart bxrestart +#ifdef yyrestart +#define bxrestart_ALREADY_DEFINED +#else +#define yyrestart bxrestart +#endif - #define yylex_init bxlex_init +#ifdef yylex_init +#define bxlex_init_ALREADY_DEFINED +#else +#define yylex_init bxlex_init +#endif - #define yylex_init_extra bxlex_init_extra +#ifdef yylex_init_extra +#define bxlex_init_extra_ALREADY_DEFINED +#else +#define yylex_init_extra bxlex_init_extra +#endif - #define yylex_destroy bxlex_destroy +#ifdef yylex_destroy +#define bxlex_destroy_ALREADY_DEFINED +#else +#define yylex_destroy bxlex_destroy +#endif - #define yyget_debug bxget_debug +#ifdef yyget_debug +#define bxget_debug_ALREADY_DEFINED +#else +#define yyget_debug bxget_debug +#endif - #define yyset_debug bxset_debug +#ifdef yyset_debug +#define bxset_debug_ALREADY_DEFINED +#else +#define yyset_debug bxset_debug +#endif - #define yyget_extra bxget_extra +#ifdef yyget_extra +#define bxget_extra_ALREADY_DEFINED +#else +#define yyget_extra bxget_extra +#endif - #define yyset_extra bxset_extra +#ifdef yyset_extra +#define bxset_extra_ALREADY_DEFINED +#else +#define yyset_extra bxset_extra +#endif - #define yyget_in bxget_in +#ifdef yyget_in +#define bxget_in_ALREADY_DEFINED +#else +#define yyget_in bxget_in +#endif - #define yyset_in bxset_in +#ifdef yyset_in +#define bxset_in_ALREADY_DEFINED +#else +#define yyset_in bxset_in +#endif - #define yyget_out bxget_out +#ifdef yyget_out +#define bxget_out_ALREADY_DEFINED +#else +#define yyget_out bxget_out +#endif - #define yyset_out bxset_out +#ifdef yyset_out +#define bxset_out_ALREADY_DEFINED +#else +#define yyset_out bxset_out +#endif - #define yyget_leng bxget_leng +#ifdef yyget_leng +#define bxget_leng_ALREADY_DEFINED +#else +#define yyget_leng bxget_leng +#endif - #define yyget_text bxget_text +#ifdef yyget_text +#define bxget_text_ALREADY_DEFINED +#else +#define yyget_text bxget_text +#endif - #define yyget_lineno bxget_lineno +#ifdef yyget_lineno +#define bxget_lineno_ALREADY_DEFINED +#else +#define yyget_lineno bxget_lineno +#endif - #define yyset_lineno bxset_lineno +#ifdef yyset_lineno +#define bxset_lineno_ALREADY_DEFINED +#else +#define yyset_lineno bxset_lineno +#endif - #define yywrap bxwrap +#ifdef yywrap +#define bxwrap_ALREADY_DEFINED +#else +#define yywrap bxwrap +#endif - #define yyalloc bxalloc +#ifdef yyalloc +#define bxalloc_ALREADY_DEFINED +#else +#define yyalloc bxalloc +#endif - #define yyrealloc bxrealloc +#ifdef yyrealloc +#define bxrealloc_ALREADY_DEFINED +#else +#define yyrealloc bxrealloc +#endif - #define yyfree bxfree +#ifdef yyfree +#define bxfree_ALREADY_DEFINED +#else +#define yyfree bxfree +#endif - #define yytext bxtext +#ifdef yytext +#define bxtext_ALREADY_DEFINED +#else +#define yytext bxtext +#endif - #define yyleng bxleng +#ifdef yyleng +#define bxleng_ALREADY_DEFINED +#else +#define yyleng bxleng +#endif - #define yyin bxin +#ifdef yyin +#define bxin_ALREADY_DEFINED +#else +#define yyin bxin +#endif - #define yyout bxout +#ifdef yyout +#define bxout_ALREADY_DEFINED +#else +#define yyout bxout +#endif - #define yy_flex_debug bx_flex_debug +#ifdef yy_flex_debug +#define bx_flex_debug_ALREADY_DEFINED +#else +#define yy_flex_debug bx_flex_debug +#endif - #define yylineno bxlineno +#ifdef yylineno +#define bxlineno_ALREADY_DEFINED +#else +#define yylineno bxlineno +#endif /* First, we deal with platform-specific or compiler-specific issues. */ @@ -180,10 +342,16 @@ typedef unsigned int flex_uint32_t; #define UINT32_MAX (4294967295U) #endif +#ifndef SIZE_MAX +#define SIZE_MAX (~(size_t)0) +#endif + #endif /* ! C99 */ #endif /* ! FLEXINT_H */ +/* begin standard C++ headers. */ + /* TODO: this is always defined, so inline it */ #define yyconst const @@ -215,7 +383,7 @@ typedef unsigned int flex_uint32_t; /* Action number for EOF rule of a given start state. */ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) /* Special action meaning "start processing a new file". */ -#define YY_NEW_FILE bxrestart(bxin ) +#define YY_NEW_FILE yyrestart( yyin ) #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ @@ -245,9 +413,9 @@ typedef struct yy_buffer_state *YY_BUFFER_STATE; typedef size_t yy_size_t; #endif -extern int bxleng; +extern int yyleng; -extern FILE *bxin, *bxout; +extern FILE *yyin, *yyout; #define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_END_OF_FILE 1 @@ -260,13 +428,13 @@ extern FILE *bxin, *bxout; #define yyless(n) \ do \ { \ - /* Undo effects of setting up bxtext. */ \ + /* Undo effects of setting up yytext. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ *yy_cp = (yy_hold_char); \ YY_RESTORE_YY_MORE_OFFSET \ (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ - YY_DO_BEFORE_ACTION; /* set up bxtext again */ \ + YY_DO_BEFORE_ACTION; /* set up yytext again */ \ } \ while ( 0 ) #define unput(c) yyunput( c, (yytext_ptr) ) @@ -328,8 +496,8 @@ struct yy_buffer_state * possible backing-up. * * When we actually see the EOF, we change the status to "new" - * (via bxrestart()), so that the user can continue scanning by - * just pointing bxin at a new input file. + * (via yyrestart()), so that the user can continue scanning by + * just pointing yyin at a new input file. */ #define YY_BUFFER_EOF_PENDING 2 @@ -355,58 +523,58 @@ static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */ */ #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] -/* yy_hold_char holds the character lost when bxtext is formed. */ +/* yy_hold_char holds the character lost when yytext is formed. */ static char yy_hold_char; static int yy_n_chars; /* number of characters read into yy_ch_buf */ -int bxleng; +int yyleng; /* Points to current character in buffer. */ static char *yy_c_buf_p = NULL; static int yy_init = 0; /* whether we need to initialize */ static int yy_start = 0; /* start state number */ -/* Flag which is used to allow bxwrap()'s to do buffer switches - * instead of setting up a fresh bxin. A bit of a hack ... +/* Flag which is used to allow yywrap()'s to do buffer switches + * instead of setting up a fresh yyin. A bit of a hack ... */ static int yy_did_buffer_switch_on_eof; -void bxrestart ( FILE *input_file ); -void bx_switch_to_buffer ( YY_BUFFER_STATE new_buffer ); -YY_BUFFER_STATE bx_create_buffer ( FILE *file, int size ); -void bx_delete_buffer ( YY_BUFFER_STATE b ); -void bx_flush_buffer ( YY_BUFFER_STATE b ); -void bxpush_buffer_state ( YY_BUFFER_STATE new_buffer ); -void bxpop_buffer_state ( void ); +void yyrestart ( FILE *input_file ); +void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer ); +YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size ); +void yy_delete_buffer ( YY_BUFFER_STATE b ); +void yy_flush_buffer ( YY_BUFFER_STATE b ); +void yypush_buffer_state ( YY_BUFFER_STATE new_buffer ); +void yypop_buffer_state ( void ); -static void bxensure_buffer_stack ( void ); -static void bx_load_buffer_state ( void ); -static void bx_init_buffer ( YY_BUFFER_STATE b, FILE *file ); -#define YY_FLUSH_BUFFER bx_flush_buffer(YY_CURRENT_BUFFER ) +static void yyensure_buffer_stack ( void ); +static void yy_load_buffer_state ( void ); +static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file ); +#define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER ) -YY_BUFFER_STATE bx_scan_buffer ( char *base, yy_size_t size ); -YY_BUFFER_STATE bx_scan_string ( const char *yy_str ); -YY_BUFFER_STATE bx_scan_bytes ( const char *bytes, int len ); +YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size ); +YY_BUFFER_STATE yy_scan_string ( const char *yy_str ); +YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len ); -void *bxalloc ( yy_size_t ); -void *bxrealloc ( void *, yy_size_t ); -void bxfree ( void * ); +void *yyalloc ( yy_size_t ); +void *yyrealloc ( void *, yy_size_t ); +void yyfree ( void * ); -#define yy_new_buffer bx_create_buffer +#define yy_new_buffer yy_create_buffer #define yy_set_interactive(is_interactive) \ { \ if ( ! YY_CURRENT_BUFFER ){ \ - bxensure_buffer_stack (); \ + yyensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ - bx_create_buffer(bxin,YY_BUF_SIZE ); \ + yy_create_buffer( yyin, YY_BUF_SIZE ); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ } #define yy_set_bol(at_bol) \ { \ if ( ! YY_CURRENT_BUFFER ){\ - bxensure_buffer_stack (); \ + yyensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ - bx_create_buffer(bxin,YY_BUF_SIZE ); \ + yy_create_buffer( yyin, YY_BUF_SIZE ); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ } @@ -415,18 +583,18 @@ void bxfree ( void * ); /* Begin user sect3 */ typedef flex_uint8_t YY_CHAR; -FILE *bxin = NULL, *bxout = NULL; +FILE *yyin = NULL, *yyout = NULL; typedef int yy_state_type; -extern int bxlineno; -int bxlineno = 1; +extern int yylineno; +int yylineno = 1; -extern char *bxtext; +extern char *yytext; #ifdef yytext_ptr #undef yytext_ptr #endif -#define yytext_ptr bxtext +#define yytext_ptr yytext static yy_state_type yy_get_previous_state ( void ); static yy_state_type yy_try_NUL_trans ( yy_state_type current_state ); @@ -434,16 +602,16 @@ static int yy_get_next_buffer ( void ); static void yynoreturn yy_fatal_error ( const char* msg ); /* Done after the current pattern has been matched and before the - * corresponding action - sets up bxtext. + * corresponding action - sets up yytext. */ #define YY_DO_BEFORE_ACTION \ (yytext_ptr) = yy_bp; \ - bxleng = (int) (yy_cp - yy_bp); \ + yyleng = (int) (yy_cp - yy_bp); \ (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; -#define YY_NUM_RULES 211 -#define YY_END_OF_BUFFER 212 +#define YY_NUM_RULES 212 +#define YY_END_OF_BUFFER 213 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -451,58 +619,58 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static const flex_int16_t yy_accept[452] = +static const flex_int16_t yy_accept[453] = { 0, - 0, 0, 0, 0, 0, 0, 212, 209, 1, 207, - 195, 209, 208, 209, 192, 209, 197, 198, 182, 180, - 181, 183, 203, 203, 206, 191, 209, 190, 175, 196, - 205, 194, 205, 19, 6, 46, 205, 205, 205, 174, - 205, 205, 205, 205, 13, 205, 14, 51, 27, 11, - 205, 63, 205, 83, 52, 205, 205, 193, 210, 1, - 210, 206, 210, 1, 187, 0, 200, 0, 208, 204, - 0, 199, 0, 202, 203, 0, 185, 188, 186, 189, - 184, 205, 110, 94, 205, 114, 111, 95, 120, 205, - 115, 205, 112, 96, 205, 205, 22, 165, 116, 205, + 0, 0, 0, 0, 0, 0, 213, 210, 1, 208, + 196, 210, 209, 210, 193, 210, 198, 199, 183, 181, + 182, 184, 204, 204, 207, 192, 210, 191, 176, 197, + 206, 195, 206, 19, 6, 46, 206, 206, 206, 175, + 206, 206, 206, 206, 13, 206, 14, 51, 27, 11, + 206, 63, 206, 84, 52, 206, 206, 194, 211, 1, + 211, 207, 211, 1, 188, 0, 201, 0, 209, 205, + 0, 200, 0, 203, 204, 0, 186, 189, 187, 190, + 185, 206, 111, 95, 206, 115, 112, 96, 121, 206, + 80, 116, 206, 113, 97, 206, 206, 22, 166, 117, - 113, 119, 97, 205, 205, 24, 168, 117, 205, 205, - 205, 205, 205, 205, 166, 205, 205, 30, 169, 205, - 205, 170, 205, 205, 9, 205, 162, 205, 205, 171, - 17, 205, 205, 205, 205, 205, 205, 3, 205, 19, - 205, 205, 205, 205, 205, 154, 155, 205, 205, 205, - 205, 205, 205, 205, 75, 205, 205, 118, 205, 121, - 205, 167, 205, 205, 205, 205, 205, 205, 205, 205, - 16, 205, 205, 205, 205, 205, 53, 205, 205, 177, - 178, 179, 204, 201, 93, 34, 205, 48, 47, 101, - 205, 205, 205, 36, 5, 205, 45, 205, 99, 205, + 206, 114, 120, 98, 206, 206, 24, 169, 118, 206, + 206, 206, 206, 206, 206, 167, 206, 206, 30, 170, + 206, 206, 171, 206, 206, 9, 206, 163, 206, 206, + 172, 17, 206, 206, 206, 206, 206, 206, 3, 206, + 19, 206, 206, 206, 206, 206, 155, 156, 206, 206, + 206, 206, 206, 206, 206, 75, 206, 206, 119, 206, + 122, 206, 168, 206, 206, 206, 206, 206, 206, 206, + 206, 16, 206, 206, 206, 206, 206, 53, 206, 206, + 178, 179, 180, 205, 202, 94, 34, 206, 48, 47, + 102, 206, 206, 206, 36, 5, 206, 45, 206, 100, - 60, 205, 205, 130, 136, 131, 132, 135, 133, 205, - 163, 134, 137, 205, 205, 30, 39, 205, 205, 65, - 37, 205, 205, 61, 38, 205, 205, 40, 205, 35, - 205, 205, 4, 205, 205, 205, 205, 205, 205, 205, - 156, 157, 158, 159, 160, 161, 102, 138, 122, 103, - 139, 123, 146, 153, 147, 148, 151, 149, 205, 28, - 205, 164, 150, 152, 76, 2, 205, 98, 205, 205, - 100, 205, 31, 205, 205, 205, 205, 42, 205, 62, - 205, 41, 205, 205, 205, 205, 205, 205, 173, 32, - 33, 205, 205, 176, 7, 23, 205, 205, 205, 68, + 206, 60, 206, 206, 131, 137, 132, 133, 136, 134, + 206, 164, 135, 138, 206, 206, 30, 39, 206, 206, + 65, 37, 206, 206, 61, 38, 206, 206, 40, 206, + 35, 206, 206, 4, 206, 206, 206, 206, 206, 206, + 206, 157, 158, 159, 160, 161, 162, 103, 139, 123, + 104, 140, 124, 147, 154, 148, 149, 152, 150, 206, + 28, 206, 165, 151, 153, 76, 2, 206, 99, 206, + 206, 101, 206, 31, 206, 206, 206, 206, 42, 206, + 62, 206, 41, 206, 206, 206, 206, 206, 206, 174, + 32, 33, 206, 206, 177, 7, 23, 206, 206, 206, - 25, 205, 50, 205, 205, 174, 21, 205, 205, 205, - 205, 205, 12, 91, 205, 205, 205, 205, 205, 49, - 104, 140, 124, 105, 141, 125, 106, 142, 126, 107, - 143, 127, 108, 144, 128, 109, 145, 129, 82, 205, - 28, 205, 205, 84, 73, 205, 26, 10, 67, 205, - 205, 59, 205, 205, 205, 205, 205, 205, 205, 15, - 18, 205, 205, 205, 205, 205, 172, 205, 205, 205, - 85, 43, 205, 205, 205, 205, 74, 57, 205, 205, - 205, 87, 205, 205, 69, 205, 205, 205, 80, 89, - 83, 205, 44, 92, 64, 88, 205, 17, 77, 20, + 68, 25, 206, 50, 206, 206, 175, 21, 206, 206, + 206, 206, 206, 12, 92, 206, 206, 206, 206, 206, + 49, 105, 141, 125, 106, 142, 126, 107, 143, 127, + 108, 144, 128, 109, 145, 129, 110, 146, 130, 83, + 206, 28, 206, 206, 85, 73, 206, 26, 10, 67, + 206, 206, 59, 206, 206, 206, 206, 206, 206, 206, + 15, 18, 206, 206, 206, 206, 206, 173, 206, 206, + 206, 86, 43, 206, 206, 206, 206, 74, 57, 206, + 206, 206, 88, 206, 206, 69, 206, 206, 206, 81, + 90, 84, 206, 44, 93, 64, 89, 206, 17, 77, - 205, 0, 205, 205, 205, 205, 205, 0, 205, 16, - 205, 205, 205, 205, 58, 0, 205, 54, 56, 0, - 86, 0, 0, 81, 205, 205, 8, 205, 0, 205, - 0, 0, 0, 78, 55, 205, 0, 0, 29, 0, - 71, 70, 66, 0, 0, 0, 79, 0, 72, 90, - 0 + 20, 206, 0, 206, 206, 206, 206, 206, 0, 206, + 16, 206, 206, 206, 206, 58, 0, 206, 54, 56, + 0, 87, 0, 0, 82, 206, 206, 8, 206, 0, + 206, 0, 0, 0, 78, 55, 206, 0, 0, 29, + 0, 71, 70, 66, 0, 0, 0, 79, 0, 72, + 91, 0 } ; static const YY_CHAR yy_ec[256] = @@ -547,117 +715,117 @@ static const YY_CHAR yy_meta[61] = 5, 7, 7, 7, 5, 7, 8, 5, 5, 1 } ; -static const flex_int16_t yy_base[464] = +static const flex_int16_t yy_base[465] = { 0, - 0, 0, 59, 61, 63, 65, 549, 550, 546, 550, - 520, 64, 0, 0, 550, 61, 550, 550, 550, 550, - 550, 550, 48, 0, 550, 55, 519, 64, 550, 550, - 0, 550, 51, 53, 72, 88, 106, 64, 73, 506, - 110, 150, 117, 27, 505, 72, 138, 489, 175, 192, - 143, 495, 41, 145, 54, 495, 494, 550, 550, 537, - 235, 550, 0, 536, 550, 121, 550, 0, 0, 0, - 119, 550, 0, 152, 0, 0, 550, 550, 550, 550, - 550, 0, 0, 492, 479, 0, 0, 492, 145, 495, - 0, 488, 0, 0, 485, 477, 46, 0, 0, 34, + 0, 0, 59, 61, 63, 65, 550, 551, 547, 551, + 521, 64, 0, 0, 551, 61, 551, 551, 551, 551, + 551, 551, 48, 0, 551, 55, 520, 64, 551, 551, + 0, 551, 51, 58, 75, 91, 109, 50, 76, 507, + 113, 153, 120, 27, 506, 72, 141, 490, 178, 195, + 146, 496, 41, 87, 52, 496, 495, 551, 551, 538, + 238, 551, 0, 537, 551, 80, 551, 0, 0, 0, + 107, 551, 0, 131, 0, 0, 551, 551, 551, 551, + 551, 0, 0, 493, 480, 0, 0, 493, 140, 496, + 0, 0, 489, 0, 0, 486, 478, 120, 0, 0, - 0, 70, 0, 495, 486, 489, 0, 0, 470, 107, - 469, 94, 480, 475, 89, 480, 487, 467, 0, 467, - 471, 0, 90, 465, 0, 141, 0, 467, 463, 0, - 464, 133, 467, 456, 474, 454, 470, 0, 468, 457, - 460, 463, 462, 158, 186, 183, 184, 447, 151, 446, - 172, 195, 453, 174, 466, 447, 451, 179, 455, 452, - 457, 456, 177, 451, 447, 224, 456, 456, 438, 433, - 437, 448, 433, 446, 441, 187, 0, 437, 436, 0, - 0, 0, 0, 0, 0, 0, 429, 0, 0, 0, - 445, 442, 425, 0, 0, 436, 437, 432, 0, 439, + 34, 0, 73, 0, 496, 487, 490, 0, 0, 471, + 133, 470, 143, 481, 476, 92, 481, 488, 468, 0, + 468, 472, 0, 139, 466, 0, 147, 0, 468, 464, + 0, 465, 151, 468, 457, 475, 455, 471, 0, 469, + 458, 461, 464, 463, 150, 189, 186, 187, 448, 162, + 447, 169, 198, 454, 186, 467, 448, 452, 173, 456, + 453, 458, 457, 188, 452, 448, 184, 457, 457, 439, + 434, 438, 449, 434, 447, 442, 218, 0, 438, 437, + 0, 0, 0, 0, 0, 0, 0, 430, 0, 0, + 0, 446, 443, 426, 0, 0, 437, 438, 433, 0, - 0, 420, 431, 0, 0, 0, 0, 0, 0, 436, - 0, 0, 0, 417, 428, 0, 0, 432, 418, 0, - 0, 418, 412, 0, 0, 425, 405, 0, 408, 0, - 422, 407, 0, 420, 419, 419, 409, 409, 403, 400, - 226, 229, 248, 257, 258, 261, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 414, 218, - 398, 0, 0, 0, 0, 401, 393, 0, 409, 395, - 0, 405, 0, 396, 395, 390, 406, 0, 402, 0, - 403, 0, 404, 399, 380, 399, 384, 381, 0, 0, - 0, 380, 388, 0, 388, 0, 377, 392, 376, 0, + 440, 0, 421, 432, 0, 0, 0, 0, 0, 0, + 437, 0, 0, 0, 418, 429, 0, 0, 433, 419, + 0, 0, 419, 413, 0, 0, 426, 406, 0, 409, + 0, 423, 408, 0, 421, 420, 420, 410, 410, 404, + 401, 229, 232, 233, 260, 261, 264, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 415, + 230, 399, 0, 0, 0, 0, 402, 394, 0, 410, + 396, 0, 406, 0, 397, 396, 391, 407, 0, 403, + 0, 404, 0, 405, 400, 381, 400, 385, 382, 0, + 0, 0, 381, 389, 0, 389, 0, 378, 393, 377, - 0, 386, 0, 374, 390, 0, 0, 373, 388, 376, - 364, 384, 0, 0, 384, 375, 364, 377, 357, 0, + 0, 0, 387, 0, 375, 391, 0, 0, 374, 389, + 377, 365, 385, 0, 0, 385, 376, 365, 378, 358, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 362, - 0, 365, 366, 0, 0, 358, 0, 0, 0, 373, - 361, 0, 369, 354, 371, 362, 362, 364, 363, 0, - 0, 354, 361, 360, 352, 345, 0, 351, 341, 350, - 0, 0, 344, 348, 344, 376, 0, 0, 336, 337, - 348, 0, 344, 340, 370, 346, 338, 328, 0, 0, - 334, 321, 0, 0, 0, 0, 313, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 363, 0, 366, 367, 0, 0, 359, 0, 0, 0, + 374, 362, 0, 370, 355, 372, 363, 363, 365, 364, + 0, 0, 355, 362, 361, 353, 346, 0, 352, 342, + 351, 0, 0, 345, 349, 345, 377, 0, 0, 337, + 338, 349, 0, 345, 341, 371, 347, 339, 325, 0, + 0, 316, 307, 0, 0, 0, 0, 314, 0, 0, - 317, 305, 317, 309, 289, 313, 264, 223, 273, 0, - 276, 272, 271, 270, 0, 255, 256, 0, 0, 260, - 0, 266, 264, 0, 253, 255, 0, 253, 191, 246, - 242, 234, 238, 0, 0, 222, 229, 220, 0, 211, - 550, 550, 0, 202, 135, 140, 550, 121, 550, 550, - 550, 317, 325, 333, 338, 346, 352, 98, 358, 96, - 364, 370, 371 + 0, 318, 299, 299, 291, 273, 304, 263, 226, 272, + 0, 277, 273, 272, 271, 0, 256, 257, 0, 0, + 261, 0, 267, 266, 0, 255, 257, 0, 254, 132, + 241, 239, 237, 237, 0, 0, 213, 215, 206, 0, + 207, 551, 551, 0, 197, 118, 111, 551, 90, 551, + 551, 551, 320, 328, 336, 341, 349, 355, 101, 361, + 80, 367, 373, 374 } ; -static const flex_int16_t yy_def[464] = +static const flex_int16_t yy_def[465] = { 0, - 451, 1, 452, 452, 452, 452, 451, 451, 451, 451, - 451, 453, 454, 455, 451, 456, 451, 451, 451, 451, - 451, 451, 457, 458, 451, 451, 451, 451, 451, 451, - 459, 451, 459, 459, 459, 459, 459, 459, 459, 459, - 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, - 459, 459, 459, 459, 459, 459, 459, 451, 451, 451, - 451, 451, 460, 451, 451, 453, 451, 453, 454, 461, - 456, 451, 456, 457, 458, 462, 451, 451, 451, 451, - 451, 459, 459, 459, 459, 459, 459, 459, 459, 459, - 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, + 452, 1, 453, 453, 453, 453, 452, 452, 452, 452, + 452, 454, 455, 456, 452, 457, 452, 452, 452, 452, + 452, 452, 458, 459, 452, 452, 452, 452, 452, 452, + 460, 452, 460, 460, 460, 460, 460, 460, 460, 460, + 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, + 460, 460, 460, 460, 460, 460, 460, 452, 452, 452, + 452, 452, 461, 452, 452, 454, 452, 454, 455, 462, + 457, 452, 457, 458, 459, 463, 452, 452, 452, 452, + 452, 460, 460, 460, 460, 460, 460, 460, 460, 460, + 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, - 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, - 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, - 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, - 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, - 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, - 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, - 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, - 459, 459, 459, 459, 459, 459, 459, 459, 459, 61, - 463, 460, 461, 462, 459, 459, 459, 459, 459, 459, - 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, + 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, + 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, + 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, + 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, + 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, + 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, + 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, + 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, + 61, 464, 461, 462, 463, 460, 460, 460, 460, 460, + 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, - 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, - 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, - 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, - 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, - 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, - 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, - 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, - 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, - 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, - 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, + 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, + 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, + 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, + 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, + 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, + 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, + 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, + 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, + 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, + 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, - 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, - 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, - 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, - 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, - 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, - 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, - 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, - 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, - 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, - 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, + 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, + 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, + 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, + 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, + 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, + 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, + 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, + 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, + 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, + 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, - 459, 451, 459, 459, 459, 459, 459, 451, 459, 459, - 459, 459, 459, 459, 459, 451, 459, 459, 459, 451, - 459, 451, 451, 459, 459, 459, 459, 459, 451, 459, - 451, 451, 451, 459, 459, 459, 451, 451, 459, 451, - 451, 451, 459, 451, 451, 451, 451, 451, 451, 451, - 0, 451, 451, 451, 451, 451, 451, 451, 451, 451, - 451, 451, 451 + 460, 460, 452, 460, 460, 460, 460, 460, 452, 460, + 460, 460, 460, 460, 460, 460, 452, 460, 460, 460, + 452, 460, 452, 452, 460, 460, 460, 460, 460, 452, + 460, 452, 452, 452, 460, 460, 460, 452, 452, 460, + 452, 452, 452, 460, 452, 452, 452, 452, 452, 452, + 452, 0, 452, 452, 452, 452, 452, 452, 452, 452, + 452, 452, 452, 452 } ; -static const flex_int16_t yy_nxt[611] = +static const flex_int16_t yy_nxt[612] = { 0, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 24, 24, 24, @@ -666,69 +834,70 @@ static const flex_int16_t yy_nxt[611] = 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 60, 10, 60, 10, 60, 10, 60, 10, 67, 72, - 75, 75, 134, 61, 135, 61, 171, 63, 197, 63, - 77, 78, 195, 62, 196, 62, 172, 62, 198, 62, - 80, 81, 83, 73, 87, 84, 68, 88, 182, 176, + 75, 75, 135, 61, 136, 61, 172, 63, 198, 63, + 77, 78, 183, 62, 67, 62, 173, 62, 199, 62, + 80, 81, 83, 73, 118, 84, 68, 177, 119, 87, - 75, 89, 177, 90, 76, 85, 92, 86, 117, 91, - 120, 137, 118, 93, 199, 119, 94, 121, 138, 95, - 96, 200, 97, 98, 122, 67, 100, 72, 99, 101, - 102, 212, 103, 104, 219, 105, 208, 213, 106, 107, - 109, 110, 111, 112, 108, 113, 220, 124, 114, 125, - 209, 73, 131, 68, 132, 205, 126, 115, 127, 133, - 128, 450, 116, 206, 129, 130, 130, 130, 130, 130, - 130, 130, 139, 140, 75, 75, 141, 166, 449, 173, - 222, 448, 188, 189, 227, 228, 174, 167, 142, 190, - 143, 145, 223, 168, 169, 175, 239, 146, 147, 254, + 178, 120, 88, 75, 76, 85, 89, 86, 90, 93, + 91, 138, 68, 121, 92, 72, 94, 200, 139, 95, + 122, 174, 96, 97, 201, 98, 99, 123, 175, 101, + 451, 100, 102, 103, 213, 104, 105, 176, 106, 73, + 214, 107, 108, 110, 111, 112, 113, 109, 114, 450, + 125, 115, 126, 75, 75, 132, 196, 133, 197, 127, + 116, 128, 134, 129, 449, 117, 438, 130, 131, 131, + 131, 131, 131, 131, 131, 140, 141, 189, 190, 142, + 167, 206, 439, 220, 191, 209, 223, 452, 240, 207, + 168, 143, 241, 144, 146, 221, 169, 170, 224, 210, - 240, 241, 242, 243, 244, 245, 246, 255, 451, 148, - 149, 150, 151, 152, 257, 274, 263, 153, 247, 250, - 248, 251, 264, 268, 275, 437, 154, 155, 258, 259, - 156, 289, 273, 157, 158, 260, 159, 269, 249, 252, - 160, 438, 161, 162, 163, 447, 261, 164, 446, 165, - 180, 180, 180, 180, 180, 180, 180, 180, 180, 278, - 340, 321, 445, 322, 324, 444, 325, 279, 422, 341, - 181, 181, 181, 423, 443, 181, 181, 181, 442, 441, - 181, 323, 181, 327, 326, 328, 181, 181, 181, 440, - 181, 181, 330, 333, 331, 334, 336, 439, 337, 436, + 147, 148, 228, 229, 242, 243, 244, 245, 246, 247, + 255, 258, 149, 150, 151, 152, 153, 269, 256, 279, + 154, 248, 251, 249, 252, 259, 275, 280, 264, 155, + 156, 270, 260, 157, 265, 276, 158, 159, 261, 160, + 448, 250, 253, 161, 447, 162, 163, 164, 446, 262, + 165, 445, 166, 181, 181, 181, 181, 181, 181, 181, + 181, 181, 290, 274, 322, 444, 323, 325, 328, 326, + 329, 423, 341, 182, 182, 182, 424, 443, 182, 182, + 182, 342, 442, 182, 324, 182, 441, 327, 330, 182, + 182, 182, 440, 182, 182, 331, 334, 332, 335, 337, - 435, 434, 433, 329, 432, 431, 430, 429, 428, 427, - 426, 425, 332, 335, 424, 421, 338, 59, 59, 59, - 59, 59, 59, 59, 59, 66, 420, 66, 66, 66, - 66, 66, 66, 69, 419, 69, 69, 69, 69, 69, - 69, 70, 70, 70, 70, 70, 71, 418, 71, 71, - 71, 71, 71, 71, 74, 417, 416, 415, 414, 74, - 82, 82, 82, 82, 82, 82, 183, 183, 183, 183, - 183, 183, 184, 184, 413, 184, 181, 181, 181, 412, - 411, 410, 409, 408, 407, 406, 405, 404, 403, 402, - 401, 400, 399, 398, 397, 396, 367, 395, 394, 393, + 437, 338, 436, 435, 434, 433, 432, 431, 430, 429, + 428, 427, 426, 425, 422, 333, 336, 421, 420, 339, + 59, 59, 59, 59, 59, 59, 59, 59, 66, 419, + 66, 66, 66, 66, 66, 66, 69, 418, 69, 69, + 69, 69, 69, 69, 70, 70, 70, 70, 70, 71, + 417, 71, 71, 71, 71, 71, 71, 74, 416, 415, + 414, 413, 74, 82, 82, 82, 82, 82, 82, 184, + 184, 184, 184, 184, 184, 185, 185, 412, 185, 182, + 182, 182, 411, 410, 409, 408, 407, 406, 405, 404, + 403, 402, 401, 400, 399, 398, 397, 368, 396, 395, - 392, 391, 390, 389, 388, 387, 386, 385, 384, 383, - 382, 381, 380, 379, 378, 377, 376, 375, 374, 373, - 372, 371, 370, 369, 368, 367, 366, 365, 364, 363, - 362, 361, 360, 359, 358, 357, 356, 355, 354, 353, - 352, 351, 350, 349, 348, 347, 346, 345, 344, 343, - 342, 339, 320, 319, 318, 317, 316, 315, 314, 313, - 312, 311, 310, 309, 308, 307, 306, 305, 304, 303, - 302, 301, 300, 299, 298, 297, 296, 295, 294, 293, - 292, 291, 290, 288, 287, 286, 285, 284, 283, 282, - 281, 280, 277, 276, 273, 272, 271, 270, 267, 266, + 394, 393, 392, 391, 390, 389, 388, 387, 386, 385, + 384, 383, 382, 381, 380, 379, 378, 377, 376, 375, + 374, 373, 372, 371, 370, 369, 368, 367, 366, 365, + 364, 363, 362, 361, 360, 359, 358, 357, 356, 355, + 354, 353, 352, 351, 350, 349, 348, 347, 346, 345, + 344, 343, 340, 321, 320, 319, 318, 317, 316, 315, + 314, 313, 312, 311, 310, 309, 308, 307, 306, 305, + 304, 303, 302, 301, 300, 299, 298, 297, 296, 295, + 294, 293, 292, 291, 289, 288, 287, 286, 285, 284, + 283, 282, 281, 278, 277, 274, 273, 272, 271, 268, - 265, 262, 256, 253, 238, 237, 236, 235, 234, 233, - 232, 231, 230, 229, 226, 225, 224, 221, 218, 217, - 216, 215, 214, 211, 210, 207, 204, 203, 202, 201, - 194, 193, 192, 191, 187, 186, 185, 64, 64, 179, - 178, 170, 144, 136, 123, 79, 65, 64, 451, 7, - 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, - 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, - 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, - 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, - 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, + 267, 266, 263, 257, 254, 239, 238, 237, 236, 235, + 234, 233, 232, 231, 230, 227, 226, 225, 222, 219, + 218, 217, 216, 215, 212, 211, 208, 205, 204, 203, + 202, 195, 194, 193, 192, 188, 187, 186, 64, 64, + 180, 179, 171, 145, 137, 124, 79, 65, 64, 452, + 7, 452, 452, 452, 452, 452, 452, 452, 452, 452, + 452, 452, 452, 452, 452, 452, 452, 452, 452, 452, + 452, 452, 452, 452, 452, 452, 452, 452, 452, 452, + 452, 452, 452, 452, 452, 452, 452, 452, 452, 452, + 452, 452, 452, 452, 452, 452, 452, 452, 452, 452, - 451, 451, 451, 451, 451, 451, 451, 451, 451, 451 + 452, 452, 452, 452, 452, 452, 452, 452, 452, 452, + 452 } ; -static const flex_int16_t yy_chk[611] = +static const flex_int16_t yy_chk[612] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -737,73 +906,74 @@ static const flex_int16_t yy_chk[611] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 4, 4, 5, 5, 6, 6, 12, 16, - 23, 23, 44, 3, 44, 4, 53, 5, 100, 6, - 26, 26, 97, 3, 97, 4, 53, 5, 100, 6, - 28, 28, 33, 16, 34, 33, 12, 34, 460, 55, + 23, 23, 44, 3, 44, 4, 53, 5, 101, 6, + 26, 26, 461, 3, 66, 4, 53, 5, 101, 6, + 28, 28, 33, 16, 38, 33, 12, 55, 38, 34, - 458, 34, 55, 34, 23, 33, 35, 33, 38, 34, - 39, 46, 38, 35, 102, 38, 35, 39, 46, 35, - 35, 102, 35, 35, 39, 66, 36, 71, 35, 36, - 36, 115, 36, 36, 123, 36, 112, 115, 36, 36, - 37, 37, 37, 37, 36, 37, 123, 41, 37, 41, - 112, 71, 43, 66, 43, 110, 41, 37, 41, 43, - 41, 448, 37, 110, 41, 42, 42, 42, 42, 42, - 42, 42, 47, 47, 74, 74, 47, 51, 446, 54, - 126, 445, 89, 89, 132, 132, 54, 51, 47, 89, - 47, 49, 126, 51, 51, 54, 144, 49, 49, 149, + 55, 38, 34, 459, 23, 33, 34, 33, 34, 35, + 34, 46, 66, 39, 34, 71, 35, 103, 46, 35, + 39, 54, 35, 35, 103, 35, 35, 39, 54, 36, + 449, 35, 36, 36, 116, 36, 36, 54, 36, 71, + 116, 36, 36, 37, 37, 37, 37, 36, 37, 447, + 41, 37, 41, 74, 74, 43, 98, 43, 98, 41, + 37, 41, 43, 41, 446, 37, 430, 41, 42, 42, + 42, 42, 42, 42, 42, 47, 47, 89, 89, 47, + 51, 111, 430, 124, 89, 113, 127, 74, 145, 111, + 51, 47, 145, 47, 49, 124, 51, 51, 127, 113, - 144, 145, 145, 145, 145, 145, 145, 149, 74, 49, - 49, 49, 49, 49, 151, 163, 154, 49, 146, 147, - 146, 147, 154, 158, 163, 429, 49, 50, 151, 152, - 50, 176, 176, 50, 50, 152, 50, 158, 146, 147, - 50, 429, 50, 50, 50, 444, 152, 50, 440, 50, - 61, 61, 61, 61, 61, 61, 61, 61, 61, 166, - 260, 241, 438, 241, 242, 437, 242, 166, 408, 260, - 61, 61, 61, 408, 436, 61, 61, 61, 433, 432, - 61, 241, 61, 243, 242, 243, 61, 61, 61, 431, - 61, 61, 244, 245, 244, 245, 246, 430, 246, 428, + 49, 49, 133, 133, 146, 146, 146, 146, 146, 146, + 150, 152, 49, 49, 49, 49, 49, 159, 150, 167, + 49, 147, 148, 147, 148, 152, 164, 167, 155, 49, + 50, 159, 153, 50, 155, 164, 50, 50, 153, 50, + 445, 147, 148, 50, 441, 50, 50, 50, 439, 153, + 50, 438, 50, 61, 61, 61, 61, 61, 61, 61, + 61, 61, 177, 177, 242, 437, 242, 243, 244, 243, + 244, 409, 261, 61, 61, 61, 409, 434, 61, 61, + 61, 261, 433, 61, 242, 61, 432, 243, 244, 61, + 61, 61, 431, 61, 61, 245, 246, 245, 246, 247, - 426, 425, 423, 243, 422, 420, 417, 416, 414, 413, - 412, 411, 244, 245, 409, 407, 246, 452, 452, 452, - 452, 452, 452, 452, 452, 453, 406, 453, 453, 453, - 453, 453, 453, 454, 405, 454, 454, 454, 454, 454, - 454, 455, 455, 455, 455, 455, 456, 404, 456, 456, - 456, 456, 456, 456, 457, 403, 402, 401, 397, 457, - 459, 459, 459, 459, 459, 459, 461, 461, 461, 461, - 461, 461, 462, 462, 392, 462, 463, 463, 463, 391, - 388, 387, 386, 385, 384, 383, 381, 380, 379, 376, - 375, 374, 373, 370, 369, 368, 366, 365, 364, 363, + 429, 247, 427, 426, 424, 423, 421, 418, 417, 415, + 414, 413, 412, 410, 408, 245, 246, 407, 406, 247, + 453, 453, 453, 453, 453, 453, 453, 453, 454, 405, + 454, 454, 454, 454, 454, 454, 455, 404, 455, 455, + 455, 455, 455, 455, 456, 456, 456, 456, 456, 457, + 403, 457, 457, 457, 457, 457, 457, 458, 402, 398, + 393, 392, 458, 460, 460, 460, 460, 460, 460, 462, + 462, 462, 462, 462, 462, 463, 463, 389, 463, 464, + 464, 464, 388, 387, 386, 385, 384, 382, 381, 380, + 377, 376, 375, 374, 371, 370, 369, 367, 366, 365, - 362, 359, 358, 357, 356, 355, 354, 353, 351, 350, - 346, 343, 342, 340, 319, 318, 317, 316, 315, 312, - 311, 310, 309, 308, 305, 304, 302, 299, 298, 297, - 295, 293, 292, 288, 287, 286, 285, 284, 283, 281, - 279, 277, 276, 275, 274, 272, 270, 269, 267, 266, - 261, 259, 240, 239, 238, 237, 236, 235, 234, 232, - 231, 229, 227, 226, 223, 222, 219, 218, 215, 214, - 210, 203, 202, 200, 198, 197, 196, 193, 192, 191, - 187, 179, 178, 175, 174, 173, 172, 171, 170, 169, - 168, 167, 165, 164, 162, 161, 160, 159, 157, 156, + 364, 363, 360, 359, 358, 357, 356, 355, 354, 352, + 351, 347, 344, 343, 341, 320, 319, 318, 317, 316, + 313, 312, 311, 310, 309, 306, 305, 303, 300, 299, + 298, 296, 294, 293, 289, 288, 287, 286, 285, 284, + 282, 280, 278, 277, 276, 275, 273, 271, 270, 268, + 267, 262, 260, 241, 240, 239, 238, 237, 236, 235, + 233, 232, 230, 228, 227, 224, 223, 220, 219, 216, + 215, 211, 204, 203, 201, 199, 198, 197, 194, 193, + 192, 188, 180, 179, 176, 175, 174, 173, 172, 171, + 170, 169, 168, 166, 165, 163, 162, 161, 160, 158, - 155, 153, 150, 148, 143, 142, 141, 140, 139, 137, - 136, 135, 134, 133, 131, 129, 128, 124, 121, 120, - 118, 117, 116, 114, 113, 111, 109, 106, 105, 104, - 96, 95, 92, 90, 88, 85, 84, 64, 60, 57, - 56, 52, 48, 45, 40, 27, 11, 9, 7, 451, - 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, - 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, - 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, - 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, - 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, + 157, 156, 154, 151, 149, 144, 143, 142, 141, 140, + 138, 137, 136, 135, 134, 132, 130, 129, 125, 122, + 121, 119, 118, 117, 115, 114, 112, 110, 107, 106, + 105, 97, 96, 93, 90, 88, 85, 84, 64, 60, + 57, 56, 52, 48, 45, 40, 27, 11, 9, 7, + 452, 452, 452, 452, 452, 452, 452, 452, 452, 452, + 452, 452, 452, 452, 452, 452, 452, 452, 452, 452, + 452, 452, 452, 452, 452, 452, 452, 452, 452, 452, + 452, 452, 452, 452, 452, 452, 452, 452, 452, 452, + 452, 452, 452, 452, 452, 452, 452, 452, 452, 452, - 451, 451, 451, 451, 451, 451, 451, 451, 451, 451 + 452, 452, 452, 452, 452, 452, 452, 452, 452, 452, + 452 } ; static yy_state_type yy_last_accepting_state; static char *yy_last_accepting_cpos; -extern int bx_flex_debug; -int bx_flex_debug = 0; +extern int yy_flex_debug; +int yy_flex_debug = 0; /* The intent behind this definition is that it'll catch * any uses of REJECT which flex missed. @@ -812,7 +982,7 @@ int bx_flex_debug = 0; #define yymore() yymore_used_but_not_detected #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET -char *bxtext; +char *yytext; #line 1 "lexer.l" #line 2 "lexer.l" ///////////////////////////////////////////////////////////////////////// @@ -867,9 +1037,9 @@ static unsigned lex_input_size = 0; { bxlval.sval = strdup(bxtext); return(BX_TOKEN_GENERIC); } #endif -#line 870 "" +#line 1040 "" -#line 872 "" +#line 1042 "" #define INITIAL 0 #define EXAMINE 1 @@ -892,31 +1062,31 @@ static int yy_init_globals ( void ); /* Accessor methods to globals. These are made visible to non-reentrant scanners for convenience. */ -int bxlex_destroy ( void ); +int yylex_destroy ( void ); -int bxget_debug ( void ); +int yyget_debug ( void ); -void bxset_debug ( int debug_flag ); +void yyset_debug ( int debug_flag ); -YY_EXTRA_TYPE bxget_extra ( void ); +YY_EXTRA_TYPE yyget_extra ( void ); -void bxset_extra ( YY_EXTRA_TYPE user_defined ); +void yyset_extra ( YY_EXTRA_TYPE user_defined ); -FILE *bxget_in ( void ); +FILE *yyget_in ( void ); -void bxset_in ( FILE * _in_str ); +void yyset_in ( FILE * _in_str ); -FILE *bxget_out ( void ); +FILE *yyget_out ( void ); -void bxset_out ( FILE * _out_str ); +void yyset_out ( FILE * _out_str ); - int bxget_leng ( void ); + int yyget_leng ( void ); -char *bxget_text ( void ); +char *yyget_text ( void ); -int bxget_lineno ( void ); +int yyget_lineno ( void ); -void bxset_lineno ( int _line_number ); +void yyset_lineno ( int _line_number ); /* Macros after this point can all be overridden by user definitions in * section 1. @@ -924,9 +1094,9 @@ void bxset_lineno ( int _line_number ); #ifndef YY_SKIP_YYWRAP #ifdef __cplusplus -extern "C" int bxwrap ( void ); +extern "C" int yywrap ( void ); #else -extern int bxwrap ( void ); +extern int yywrap ( void ); #endif #endif @@ -968,7 +1138,7 @@ static int input ( void ); /* This used to be an fputs(), but since the string might contain NUL's, * we now use fwrite(). */ -#define ECHO do { if (fwrite( bxtext, (size_t) bxleng, 1, bxout )) {} } while (0) +#define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0) #endif /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, @@ -981,18 +1151,18 @@ static int input ( void ); int c = '*'; \ int n; \ for ( n = 0; n < max_size && \ - (c = getc( bxin )) != EOF && c != '\n'; ++n ) \ + (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ buf[n] = (char) c; \ if ( c == '\n' ) \ buf[n++] = (char) c; \ - if ( c == EOF && ferror( bxin ) ) \ + if ( c == EOF && ferror( yyin ) ) \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ result = n; \ } \ else \ { \ errno=0; \ - while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, bxin)) == 0 && ferror(bxin)) \ + while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \ { \ if( errno != EINTR) \ { \ @@ -1000,7 +1170,7 @@ static int input ( void ); break; \ } \ errno=0; \ - clearerr(bxin); \ + clearerr(yyin); \ } \ }\ \ @@ -1033,12 +1203,12 @@ static int input ( void ); #ifndef YY_DECL #define YY_DECL_IS_OURS 1 -extern int bxlex (void); +extern int yylex (void); -#define YY_DECL int bxlex (void) +#define YY_DECL int yylex (void) #endif /* !YY_DECL */ -/* Code executed at the beginning of each rule, after bxtext and bxleng +/* Code executed at the beginning of each rule, after yytext and yyleng * have been set up. */ #ifndef YY_USER_ACTION @@ -1072,31 +1242,31 @@ YY_DECL if ( ! (yy_start) ) (yy_start) = 1; /* first start state */ - if ( ! bxin ) - bxin = stdin; + if ( ! yyin ) + yyin = stdin; - if ( ! bxout ) - bxout = stdout; + if ( ! yyout ) + yyout = stdout; if ( ! YY_CURRENT_BUFFER ) { - bxensure_buffer_stack (); + yyensure_buffer_stack (); YY_CURRENT_BUFFER_LVALUE = - bx_create_buffer(bxin,YY_BUF_SIZE ); + yy_create_buffer( yyin, YY_BUF_SIZE ); } - bx_load_buffer_state( ); + yy_load_buffer_state( ); } { #line 59 "lexer.l" -#line 1093 "" +#line 1263 "" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { yy_cp = (yy_c_buf_p); - /* Support of bxtext. */ + /* Support of yytext. */ *yy_cp = (yy_hold_char); /* yy_bp points to the position in yy_ch_buf of the start of @@ -1117,13 +1287,13 @@ yy_match: while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 452 ) + if ( yy_current_state >= 453 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } - while ( yy_base[yy_current_state] != 550 ); + while ( yy_base[yy_current_state] != 551 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -1497,489 +1667,489 @@ YY_RULE_SETUP case 80: YY_RULE_SETUP #line 139 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_WATCH); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_BT); } YY_BREAK case 81: YY_RULE_SETUP #line 140 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_UNWATCH); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_WATCH); } YY_BREAK case 82: YY_RULE_SETUP #line 141 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_READ); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_UNWATCH); } YY_BREAK case 83: YY_RULE_SETUP #line 142 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_WRITE); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_READ); } YY_BREAK case 84: YY_RULE_SETUP #line 143 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_SHOW); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_WRITE); } YY_BREAK case 85: YY_RULE_SETUP #line 144 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_LOAD_SYMBOLS); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_SHOW); } YY_BREAK case 86: YY_RULE_SETUP #line 145 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_SYMBOLS); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_LOAD_SYMBOLS); } YY_BREAK case 87: YY_RULE_SETUP #line 146 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_LIST_SYMBOLS); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_SYMBOLS); } YY_BREAK case 88: YY_RULE_SETUP #line 147 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_GLOBAL); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_LIST_SYMBOLS); } YY_BREAK case 89: YY_RULE_SETUP #line 148 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_WHERE); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_GLOBAL); } YY_BREAK case 90: YY_RULE_SETUP #line 149 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_PRINT_STRING); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_WHERE); } YY_BREAK case 91: YY_RULE_SETUP #line 150 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_PAGE); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_PRINT_STRING); } YY_BREAK case 92: YY_RULE_SETUP #line 151 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_DEVICE); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_PAGE); } YY_BREAK case 93: YY_RULE_SETUP #line 152 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_ALL); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_DEVICE); } YY_BREAK case 94: YY_RULE_SETUP #line 153 "lexer.l" -{ bxlval.uval = BX_8BIT_REG_AL; return(BX_TOKEN_8BL_REG);} +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_ALL); } YY_BREAK case 95: YY_RULE_SETUP #line 154 "lexer.l" -{ bxlval.uval = BX_8BIT_REG_BL; return(BX_TOKEN_8BL_REG);} +{ bxlval.uval = BX_8BIT_REG_AL; return(BX_TOKEN_8BL_REG);} YY_BREAK case 96: YY_RULE_SETUP #line 155 "lexer.l" -{ bxlval.uval = BX_8BIT_REG_CL; return(BX_TOKEN_8BL_REG);} +{ bxlval.uval = BX_8BIT_REG_BL; return(BX_TOKEN_8BL_REG);} YY_BREAK case 97: YY_RULE_SETUP #line 156 "lexer.l" -{ bxlval.uval = BX_8BIT_REG_DL; return(BX_TOKEN_8BL_REG);} +{ bxlval.uval = BX_8BIT_REG_CL; return(BX_TOKEN_8BL_REG);} YY_BREAK case 98: YY_RULE_SETUP #line 157 "lexer.l" -{ LONG_MODE_8BL_REG(BX_8BIT_REG_SIL); } +{ bxlval.uval = BX_8BIT_REG_DL; return(BX_TOKEN_8BL_REG);} YY_BREAK case 99: YY_RULE_SETUP #line 158 "lexer.l" -{ LONG_MODE_8BL_REG(BX_8BIT_REG_DIL); } +{ LONG_MODE_8BL_REG(BX_8BIT_REG_SIL); } YY_BREAK case 100: YY_RULE_SETUP #line 159 "lexer.l" -{ LONG_MODE_8BL_REG(BX_8BIT_REG_SPL); } +{ LONG_MODE_8BL_REG(BX_8BIT_REG_DIL); } YY_BREAK case 101: YY_RULE_SETUP #line 160 "lexer.l" -{ LONG_MODE_8BL_REG(BX_8BIT_REG_BPL); } +{ LONG_MODE_8BL_REG(BX_8BIT_REG_SPL); } YY_BREAK case 102: YY_RULE_SETUP #line 161 "lexer.l" -{ LONG_MODE_8BL_REG(BX_8BIT_REG_R8); } +{ LONG_MODE_8BL_REG(BX_8BIT_REG_BPL); } YY_BREAK case 103: YY_RULE_SETUP #line 162 "lexer.l" -{ LONG_MODE_8BL_REG(BX_8BIT_REG_R9); } +{ LONG_MODE_8BL_REG(BX_8BIT_REG_R8); } YY_BREAK case 104: YY_RULE_SETUP #line 163 "lexer.l" -{ LONG_MODE_8BL_REG(BX_8BIT_REG_R10); } +{ LONG_MODE_8BL_REG(BX_8BIT_REG_R9); } YY_BREAK case 105: YY_RULE_SETUP #line 164 "lexer.l" -{ LONG_MODE_8BL_REG(BX_8BIT_REG_R11); } +{ LONG_MODE_8BL_REG(BX_8BIT_REG_R10); } YY_BREAK case 106: YY_RULE_SETUP #line 165 "lexer.l" -{ LONG_MODE_8BL_REG(BX_8BIT_REG_R12); } +{ LONG_MODE_8BL_REG(BX_8BIT_REG_R11); } YY_BREAK case 107: YY_RULE_SETUP #line 166 "lexer.l" -{ LONG_MODE_8BL_REG(BX_8BIT_REG_R13); } +{ LONG_MODE_8BL_REG(BX_8BIT_REG_R12); } YY_BREAK case 108: YY_RULE_SETUP #line 167 "lexer.l" -{ LONG_MODE_8BL_REG(BX_8BIT_REG_R14); } +{ LONG_MODE_8BL_REG(BX_8BIT_REG_R13); } YY_BREAK case 109: YY_RULE_SETUP #line 168 "lexer.l" -{ LONG_MODE_8BL_REG(BX_8BIT_REG_R15); } +{ LONG_MODE_8BL_REG(BX_8BIT_REG_R14); } YY_BREAK case 110: YY_RULE_SETUP #line 169 "lexer.l" -{ bxlval.uval = BX_8BIT_REG_AH; return(BX_TOKEN_8BH_REG);} +{ LONG_MODE_8BL_REG(BX_8BIT_REG_R15); } YY_BREAK case 111: YY_RULE_SETUP #line 170 "lexer.l" -{ bxlval.uval = BX_8BIT_REG_BH; return(BX_TOKEN_8BH_REG);} +{ bxlval.uval = BX_8BIT_REG_AH; return(BX_TOKEN_8BH_REG);} YY_BREAK case 112: YY_RULE_SETUP #line 171 "lexer.l" -{ bxlval.uval = BX_8BIT_REG_CH; return(BX_TOKEN_8BH_REG);} +{ bxlval.uval = BX_8BIT_REG_BH; return(BX_TOKEN_8BH_REG);} YY_BREAK case 113: YY_RULE_SETUP #line 172 "lexer.l" -{ bxlval.uval = BX_8BIT_REG_DH; return(BX_TOKEN_8BH_REG);} +{ bxlval.uval = BX_8BIT_REG_CH; return(BX_TOKEN_8BH_REG);} YY_BREAK case 114: YY_RULE_SETUP #line 173 "lexer.l" -{ bxlval.uval = BX_16BIT_REG_AX; return(BX_TOKEN_16B_REG);} +{ bxlval.uval = BX_8BIT_REG_DH; return(BX_TOKEN_8BH_REG);} YY_BREAK case 115: YY_RULE_SETUP #line 174 "lexer.l" -{ bxlval.uval = BX_16BIT_REG_BX; return(BX_TOKEN_16B_REG);} +{ bxlval.uval = BX_16BIT_REG_AX; return(BX_TOKEN_16B_REG);} YY_BREAK case 116: YY_RULE_SETUP #line 175 "lexer.l" -{ bxlval.uval = BX_16BIT_REG_CX; return(BX_TOKEN_16B_REG);} +{ bxlval.uval = BX_16BIT_REG_BX; return(BX_TOKEN_16B_REG);} YY_BREAK case 117: YY_RULE_SETUP #line 176 "lexer.l" -{ bxlval.uval = BX_16BIT_REG_DX; return(BX_TOKEN_16B_REG);} +{ bxlval.uval = BX_16BIT_REG_CX; return(BX_TOKEN_16B_REG);} YY_BREAK case 118: YY_RULE_SETUP #line 177 "lexer.l" -{ bxlval.uval = BX_16BIT_REG_SI; return(BX_TOKEN_16B_REG);} +{ bxlval.uval = BX_16BIT_REG_DX; return(BX_TOKEN_16B_REG);} YY_BREAK case 119: YY_RULE_SETUP #line 178 "lexer.l" -{ bxlval.uval = BX_16BIT_REG_DI; return(BX_TOKEN_16B_REG);} +{ bxlval.uval = BX_16BIT_REG_SI; return(BX_TOKEN_16B_REG);} YY_BREAK case 120: YY_RULE_SETUP #line 179 "lexer.l" -{ bxlval.uval = BX_16BIT_REG_BP; return(BX_TOKEN_16B_REG);} +{ bxlval.uval = BX_16BIT_REG_DI; return(BX_TOKEN_16B_REG);} YY_BREAK case 121: YY_RULE_SETUP #line 180 "lexer.l" -{ bxlval.uval = BX_16BIT_REG_SP; return(BX_TOKEN_16B_REG);} +{ bxlval.uval = BX_16BIT_REG_BP; return(BX_TOKEN_16B_REG);} YY_BREAK case 122: YY_RULE_SETUP #line 181 "lexer.l" -{ LONG_MODE_16B_REG(BX_16BIT_REG_R8); } +{ bxlval.uval = BX_16BIT_REG_SP; return(BX_TOKEN_16B_REG);} YY_BREAK case 123: YY_RULE_SETUP #line 182 "lexer.l" -{ LONG_MODE_16B_REG(BX_16BIT_REG_R9); } +{ LONG_MODE_16B_REG(BX_16BIT_REG_R8); } YY_BREAK case 124: YY_RULE_SETUP #line 183 "lexer.l" -{ LONG_MODE_16B_REG(BX_16BIT_REG_R10); } +{ LONG_MODE_16B_REG(BX_16BIT_REG_R9); } YY_BREAK case 125: YY_RULE_SETUP #line 184 "lexer.l" -{ LONG_MODE_16B_REG(BX_16BIT_REG_R11); } +{ LONG_MODE_16B_REG(BX_16BIT_REG_R10); } YY_BREAK case 126: YY_RULE_SETUP #line 185 "lexer.l" -{ LONG_MODE_16B_REG(BX_16BIT_REG_R12); } +{ LONG_MODE_16B_REG(BX_16BIT_REG_R11); } YY_BREAK case 127: YY_RULE_SETUP #line 186 "lexer.l" -{ LONG_MODE_16B_REG(BX_16BIT_REG_R13); } +{ LONG_MODE_16B_REG(BX_16BIT_REG_R12); } YY_BREAK case 128: YY_RULE_SETUP #line 187 "lexer.l" -{ LONG_MODE_16B_REG(BX_16BIT_REG_R14); } +{ LONG_MODE_16B_REG(BX_16BIT_REG_R13); } YY_BREAK case 129: YY_RULE_SETUP #line 188 "lexer.l" -{ LONG_MODE_16B_REG(BX_16BIT_REG_R15); } +{ LONG_MODE_16B_REG(BX_16BIT_REG_R14); } YY_BREAK case 130: YY_RULE_SETUP #line 189 "lexer.l" -{ bxlval.uval = BX_32BIT_REG_EAX; return(BX_TOKEN_32B_REG);} +{ LONG_MODE_16B_REG(BX_16BIT_REG_R15); } YY_BREAK case 131: YY_RULE_SETUP #line 190 "lexer.l" -{ bxlval.uval = BX_32BIT_REG_EBX; return(BX_TOKEN_32B_REG);} +{ bxlval.uval = BX_32BIT_REG_EAX; return(BX_TOKEN_32B_REG);} YY_BREAK case 132: YY_RULE_SETUP #line 191 "lexer.l" -{ bxlval.uval = BX_32BIT_REG_ECX; return(BX_TOKEN_32B_REG);} +{ bxlval.uval = BX_32BIT_REG_EBX; return(BX_TOKEN_32B_REG);} YY_BREAK case 133: YY_RULE_SETUP #line 192 "lexer.l" -{ bxlval.uval = BX_32BIT_REG_EDX; return(BX_TOKEN_32B_REG);} +{ bxlval.uval = BX_32BIT_REG_ECX; return(BX_TOKEN_32B_REG);} YY_BREAK case 134: YY_RULE_SETUP #line 193 "lexer.l" -{ bxlval.uval = BX_32BIT_REG_ESI; return(BX_TOKEN_32B_REG);} +{ bxlval.uval = BX_32BIT_REG_EDX; return(BX_TOKEN_32B_REG);} YY_BREAK case 135: YY_RULE_SETUP #line 194 "lexer.l" -{ bxlval.uval = BX_32BIT_REG_EDI; return(BX_TOKEN_32B_REG);} +{ bxlval.uval = BX_32BIT_REG_ESI; return(BX_TOKEN_32B_REG);} YY_BREAK case 136: YY_RULE_SETUP #line 195 "lexer.l" -{ bxlval.uval = BX_32BIT_REG_EBP; return(BX_TOKEN_32B_REG);} +{ bxlval.uval = BX_32BIT_REG_EDI; return(BX_TOKEN_32B_REG);} YY_BREAK case 137: YY_RULE_SETUP #line 196 "lexer.l" -{ bxlval.uval = BX_32BIT_REG_ESP; return(BX_TOKEN_32B_REG);} +{ bxlval.uval = BX_32BIT_REG_EBP; return(BX_TOKEN_32B_REG);} YY_BREAK case 138: YY_RULE_SETUP #line 197 "lexer.l" -{ LONG_MODE_32B_REG(BX_32BIT_REG_R8); } +{ bxlval.uval = BX_32BIT_REG_ESP; return(BX_TOKEN_32B_REG);} YY_BREAK case 139: YY_RULE_SETUP #line 198 "lexer.l" -{ LONG_MODE_32B_REG(BX_32BIT_REG_R9); } +{ LONG_MODE_32B_REG(BX_32BIT_REG_R8); } YY_BREAK case 140: YY_RULE_SETUP #line 199 "lexer.l" -{ LONG_MODE_32B_REG(BX_32BIT_REG_R10); } +{ LONG_MODE_32B_REG(BX_32BIT_REG_R9); } YY_BREAK case 141: YY_RULE_SETUP #line 200 "lexer.l" -{ LONG_MODE_32B_REG(BX_32BIT_REG_R11); } +{ LONG_MODE_32B_REG(BX_32BIT_REG_R10); } YY_BREAK case 142: YY_RULE_SETUP #line 201 "lexer.l" -{ LONG_MODE_32B_REG(BX_32BIT_REG_R12); } +{ LONG_MODE_32B_REG(BX_32BIT_REG_R11); } YY_BREAK case 143: YY_RULE_SETUP #line 202 "lexer.l" -{ LONG_MODE_32B_REG(BX_32BIT_REG_R13); } +{ LONG_MODE_32B_REG(BX_32BIT_REG_R12); } YY_BREAK case 144: YY_RULE_SETUP #line 203 "lexer.l" -{ LONG_MODE_32B_REG(BX_32BIT_REG_R14); } +{ LONG_MODE_32B_REG(BX_32BIT_REG_R13); } YY_BREAK case 145: YY_RULE_SETUP #line 204 "lexer.l" -{ LONG_MODE_32B_REG(BX_32BIT_REG_R15); } +{ LONG_MODE_32B_REG(BX_32BIT_REG_R14); } YY_BREAK case 146: YY_RULE_SETUP #line 205 "lexer.l" -{ LONG_MODE_64B_REG(BX_64BIT_REG_RAX); } +{ LONG_MODE_32B_REG(BX_32BIT_REG_R15); } YY_BREAK case 147: YY_RULE_SETUP #line 206 "lexer.l" -{ LONG_MODE_64B_REG(BX_64BIT_REG_RBX); } +{ LONG_MODE_64B_REG(BX_64BIT_REG_RAX); } YY_BREAK case 148: YY_RULE_SETUP #line 207 "lexer.l" -{ LONG_MODE_64B_REG(BX_64BIT_REG_RCX); } +{ LONG_MODE_64B_REG(BX_64BIT_REG_RBX); } YY_BREAK case 149: YY_RULE_SETUP #line 208 "lexer.l" -{ LONG_MODE_64B_REG(BX_64BIT_REG_RDX); } +{ LONG_MODE_64B_REG(BX_64BIT_REG_RCX); } YY_BREAK case 150: YY_RULE_SETUP #line 209 "lexer.l" -{ LONG_MODE_64B_REG(BX_64BIT_REG_RSI); } +{ LONG_MODE_64B_REG(BX_64BIT_REG_RDX); } YY_BREAK case 151: YY_RULE_SETUP #line 210 "lexer.l" -{ LONG_MODE_64B_REG(BX_64BIT_REG_RDI); } +{ LONG_MODE_64B_REG(BX_64BIT_REG_RSI); } YY_BREAK case 152: YY_RULE_SETUP #line 211 "lexer.l" -{ LONG_MODE_64B_REG(BX_64BIT_REG_RSP); } +{ LONG_MODE_64B_REG(BX_64BIT_REG_RDI); } YY_BREAK case 153: YY_RULE_SETUP #line 212 "lexer.l" -{ LONG_MODE_64B_REG(BX_64BIT_REG_RBP); } +{ LONG_MODE_64B_REG(BX_64BIT_REG_RSP); } YY_BREAK case 154: YY_RULE_SETUP #line 213 "lexer.l" -{ LONG_MODE_64B_REG(BX_64BIT_REG_R8); } +{ LONG_MODE_64B_REG(BX_64BIT_REG_RBP); } YY_BREAK case 155: YY_RULE_SETUP #line 214 "lexer.l" -{ LONG_MODE_64B_REG(BX_64BIT_REG_R9); } +{ LONG_MODE_64B_REG(BX_64BIT_REG_R8); } YY_BREAK case 156: YY_RULE_SETUP #line 215 "lexer.l" -{ LONG_MODE_64B_REG(BX_64BIT_REG_R10); } +{ LONG_MODE_64B_REG(BX_64BIT_REG_R9); } YY_BREAK case 157: YY_RULE_SETUP #line 216 "lexer.l" -{ LONG_MODE_64B_REG(BX_64BIT_REG_R11); } +{ LONG_MODE_64B_REG(BX_64BIT_REG_R10); } YY_BREAK case 158: YY_RULE_SETUP #line 217 "lexer.l" -{ LONG_MODE_64B_REG(BX_64BIT_REG_R12); } +{ LONG_MODE_64B_REG(BX_64BIT_REG_R11); } YY_BREAK case 159: YY_RULE_SETUP #line 218 "lexer.l" -{ LONG_MODE_64B_REG(BX_64BIT_REG_R13); } +{ LONG_MODE_64B_REG(BX_64BIT_REG_R12); } YY_BREAK case 160: YY_RULE_SETUP #line 219 "lexer.l" -{ LONG_MODE_64B_REG(BX_64BIT_REG_R14); } +{ LONG_MODE_64B_REG(BX_64BIT_REG_R13); } YY_BREAK case 161: YY_RULE_SETUP #line 220 "lexer.l" -{ LONG_MODE_64B_REG(BX_64BIT_REG_R15); } +{ LONG_MODE_64B_REG(BX_64BIT_REG_R14); } YY_BREAK case 162: YY_RULE_SETUP #line 221 "lexer.l" -{ return(BX_TOKEN_REG_IP); } +{ LONG_MODE_64B_REG(BX_64BIT_REG_R15); } YY_BREAK case 163: YY_RULE_SETUP #line 222 "lexer.l" -{ return(BX_TOKEN_REG_EIP);} +{ return(BX_TOKEN_REG_IP); } YY_BREAK case 164: YY_RULE_SETUP #line 223 "lexer.l" -{ return(BX_TOKEN_REG_RIP);} +{ return(BX_TOKEN_REG_EIP);} YY_BREAK case 165: YY_RULE_SETUP #line 224 "lexer.l" -{ bxlval.uval = BX_SEG_REG_CS; return(BX_TOKEN_CS); } +{ return(BX_TOKEN_REG_RIP);} YY_BREAK case 166: YY_RULE_SETUP #line 225 "lexer.l" -{ bxlval.uval = BX_SEG_REG_ES; return(BX_TOKEN_ES); } +{ bxlval.uval = BX_SEG_REG_CS; return(BX_TOKEN_CS); } YY_BREAK case 167: YY_RULE_SETUP #line 226 "lexer.l" -{ bxlval.uval = BX_SEG_REG_SS; return(BX_TOKEN_SS); } +{ bxlval.uval = BX_SEG_REG_ES; return(BX_TOKEN_ES); } YY_BREAK case 168: YY_RULE_SETUP #line 227 "lexer.l" -{ bxlval.uval = BX_SEG_REG_DS; return(BX_TOKEN_DS); } +{ bxlval.uval = BX_SEG_REG_SS; return(BX_TOKEN_SS); } YY_BREAK case 169: YY_RULE_SETUP #line 228 "lexer.l" -{ bxlval.uval = BX_SEG_REG_FS; return(BX_TOKEN_FS); } +{ bxlval.uval = BX_SEG_REG_DS; return(BX_TOKEN_DS); } YY_BREAK case 170: YY_RULE_SETUP #line 229 "lexer.l" -{ bxlval.uval = BX_SEG_REG_GS; return(BX_TOKEN_GS); } +{ bxlval.uval = BX_SEG_REG_FS; return(BX_TOKEN_FS); } YY_BREAK case 171: YY_RULE_SETUP #line 230 "lexer.l" -{ EVEX_OPMASK_REG(bxtext[1] - '0'); } +{ bxlval.uval = BX_SEG_REG_GS; return(BX_TOKEN_GS); } YY_BREAK case 172: YY_RULE_SETUP #line 231 "lexer.l" -{ bxlval.uval = 0; return (BX_TOKEN_FLAGS); } +{ EVEX_OPMASK_REG(bxtext[1] - '0'); } YY_BREAK case 173: YY_RULE_SETUP #line 232 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_XML); } +{ bxlval.uval = 0; return (BX_TOKEN_FLAGS); } YY_BREAK case 174: YY_RULE_SETUP #line 233 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_HELP); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_XML); } YY_BREAK case 175: -#line 235 "lexer.l" -case 176: YY_RULE_SETUP -#line 235 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_CALC); } +#line 234 "lexer.l" +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_HELP); } YY_BREAK +case 176: +#line 236 "lexer.l" case 177: YY_RULE_SETUP #line 236 "lexer.l" -{ BEGIN(INITIAL); bxlval.sval = strdup(bxtext); return(BX_TOKEN_XFORMAT); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_CALC); } YY_BREAK case 178: YY_RULE_SETUP @@ -1989,167 +2159,172 @@ YY_RULE_SETUP case 179: YY_RULE_SETUP #line 238 "lexer.l" -{ BEGIN(INITIAL); bxlval.sval = strdup(bxtext); return(BX_TOKEN_DISFORMAT); } +{ BEGIN(INITIAL); bxlval.sval = strdup(bxtext); return(BX_TOKEN_XFORMAT); } YY_BREAK case 180: YY_RULE_SETUP #line 239 "lexer.l" -{ return ('+'); } +{ BEGIN(INITIAL); bxlval.sval = strdup(bxtext); return(BX_TOKEN_DISFORMAT); } YY_BREAK case 181: YY_RULE_SETUP #line 240 "lexer.l" -{ return ('-'); } +{ return ('+'); } YY_BREAK case 182: YY_RULE_SETUP #line 241 "lexer.l" -{ return ('*'); } +{ return ('-'); } YY_BREAK case 183: YY_RULE_SETUP #line 242 "lexer.l" -{ return ('/'); } +{ return ('*'); } YY_BREAK case 184: YY_RULE_SETUP #line 243 "lexer.l" -{ return (BX_TOKEN_RSHIFT); } +{ return ('/'); } YY_BREAK case 185: YY_RULE_SETUP #line 244 "lexer.l" -{ return (BX_TOKEN_LSHIFT); } +{ return (BX_TOKEN_RSHIFT); } YY_BREAK case 186: YY_RULE_SETUP #line 245 "lexer.l" -{ return (BX_TOKEN_EQ); } +{ return (BX_TOKEN_LSHIFT); } YY_BREAK case 187: YY_RULE_SETUP #line 246 "lexer.l" -{ return (BX_TOKEN_NE); } +{ return (BX_TOKEN_EQ); } YY_BREAK case 188: YY_RULE_SETUP #line 247 "lexer.l" -{ return (BX_TOKEN_LE); } +{ return (BX_TOKEN_NE); } YY_BREAK case 189: YY_RULE_SETUP #line 248 "lexer.l" -{ return (BX_TOKEN_GE); } +{ return (BX_TOKEN_LE); } YY_BREAK case 190: YY_RULE_SETUP #line 249 "lexer.l" -{ return ('>'); } +{ return (BX_TOKEN_GE); } YY_BREAK case 191: YY_RULE_SETUP #line 250 "lexer.l" -{ return ('<'); } +{ return ('>'); } YY_BREAK case 192: YY_RULE_SETUP #line 251 "lexer.l" -{ return ('&'); } +{ return ('<'); } YY_BREAK case 193: YY_RULE_SETUP #line 252 "lexer.l" -{ return ('|'); } +{ return ('&'); } YY_BREAK case 194: YY_RULE_SETUP #line 253 "lexer.l" -{ return ('^'); } +{ return ('|'); } YY_BREAK case 195: YY_RULE_SETUP #line 254 "lexer.l" -{ return ('!'); } +{ return ('^'); } YY_BREAK case 196: YY_RULE_SETUP #line 255 "lexer.l" -{ return ('@'); } +{ return ('!'); } YY_BREAK case 197: YY_RULE_SETUP #line 256 "lexer.l" -{ return ('('); } +{ return ('@'); } YY_BREAK case 198: YY_RULE_SETUP #line 257 "lexer.l" -{ return (')'); } +{ return ('('); } YY_BREAK case 199: -#line 259 "lexer.l" -case 200: YY_RULE_SETUP -#line 259 "lexer.l" -{ bxlval.sval = strdup(bxtext+1); bxlval.sval[strlen(bxlval.sval)-1] = 0; return(BX_TOKEN_STRING); } +#line 258 "lexer.l" +{ return (')'); } YY_BREAK +case 200: +#line 260 "lexer.l" case 201: YY_RULE_SETUP #line 260 "lexer.l" -{ bxlval.uval = strtoull(bxtext, NULL, 16); return(BX_TOKEN_NUMERIC); } +{ bxlval.sval = strdup(bxtext+1); bxlval.sval[strlen(bxlval.sval)-1] = 0; return(BX_TOKEN_STRING); } YY_BREAK case 202: YY_RULE_SETUP #line 261 "lexer.l" -{ bxlval.uval = strtoull(bxtext, NULL, 8); return(BX_TOKEN_NUMERIC); } +{ bxlval.uval = strtoull(bxtext, NULL, 16); return(BX_TOKEN_NUMERIC); } YY_BREAK case 203: YY_RULE_SETUP #line 262 "lexer.l" -{ bxlval.uval = strtoull(bxtext, NULL, 10); return(BX_TOKEN_NUMERIC); } +{ bxlval.uval = strtoull(bxtext, NULL, 8); return(BX_TOKEN_NUMERIC); } YY_BREAK case 204: YY_RULE_SETUP #line 263 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_SYMBOLNAME); } +{ bxlval.uval = strtoull(bxtext, NULL, 10); return(BX_TOKEN_NUMERIC); } YY_BREAK case 205: YY_RULE_SETUP #line 264 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_GENERIC); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_SYMBOLNAME); } YY_BREAK case 206: YY_RULE_SETUP #line 265 "lexer.l" -{ return ('\n'); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_GENERIC); } YY_BREAK case 207: -/* rule 207 can match eol */ YY_RULE_SETUP #line 266 "lexer.l" { return ('\n'); } YY_BREAK case 208: +/* rule 208 can match eol */ YY_RULE_SETUP #line 267 "lexer.l" -; // eat up comments '//' +{ return ('\n'); } YY_BREAK case 209: YY_RULE_SETUP #line 268 "lexer.l" -{ return(bxtext[0]); } +; // eat up comments '//' YY_BREAK case 210: YY_RULE_SETUP #line 269 "lexer.l" -{ BEGIN(INITIAL); unput(*bxtext); } +{ return(bxtext[0]); } YY_BREAK case 211: YY_RULE_SETUP #line 270 "lexer.l" +{ BEGIN(INITIAL); unput(*bxtext); } + YY_BREAK +case 212: +YY_RULE_SETUP +#line 271 "lexer.l" ECHO; YY_BREAK -#line 2152 "" +#line 2327 "" case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(EXAMINE): case YY_STATE_EOF(DISASM): @@ -2168,15 +2343,15 @@ case YY_STATE_EOF(DISASM): { /* We're scanning a new file or input source. It's * possible that this happened because the user - * just pointed bxin at a new source and called - * bxlex(). If so, then we have to assure + * just pointed yyin at a new source and called + * yylex(). If so, then we have to assure * consistency between YY_CURRENT_BUFFER and our * globals. Here is the right place to do so, because * this is the first action (other than possibly a * back-up) that will match for the new input source. */ (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; - YY_CURRENT_BUFFER_LVALUE->yy_input_file = bxin; + YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; } @@ -2229,11 +2404,11 @@ case YY_STATE_EOF(DISASM): { (yy_did_buffer_switch_on_eof) = 0; - if ( bxwrap( ) ) + if ( yywrap( ) ) { /* Note: because we've taken care in * yy_get_next_buffer() to have set up - * bxtext, we can now set up + * yytext, we can now set up * yy_c_buf_p so that if some total * hoser (like flex itself) wants to * call the scanner after we return the @@ -2283,7 +2458,7 @@ case YY_STATE_EOF(DISASM): } /* end of action switch */ } /* end of scanning one token */ } /* end of user's declarations */ -} /* end of bxlex */ +} /* end of yylex */ /* yy_get_next_buffer - try to read in a new buffer * @@ -2361,7 +2536,8 @@ static int yy_get_next_buffer (void) b->yy_ch_buf = (char *) /* Include room in for 2 EOB chars. */ - bxrealloc((void *) b->yy_ch_buf,(yy_size_t) (b->yy_buf_size + 2) ); + yyrealloc( (void *) b->yy_ch_buf, + (yy_size_t) (b->yy_buf_size + 2) ); } else /* Can't grow it, we don't own it. */ @@ -2393,7 +2569,7 @@ static int yy_get_next_buffer (void) if ( number_to_move == YY_MORE_ADJ ) { ret_val = EOB_ACT_END_OF_FILE; - bxrestart(bxin ); + yyrestart( yyin ); } else @@ -2410,9 +2586,12 @@ static int yy_get_next_buffer (void) if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { /* Extend the array by 50%, plus the number we really need. */ int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) bxrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,(yy_size_t) new_size ); + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc( + (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size ); if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); + /* "- 2" to take care of EOB's */ + YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2); } (yy_n_chars) += number_to_move; @@ -2444,7 +2623,7 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 452 ) + if ( yy_current_state >= 453 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; @@ -2472,11 +2651,11 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 452 ) + if ( yy_current_state >= 453 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; - yy_is_jam = (yy_current_state == 451); + yy_is_jam = (yy_current_state == 452); return yy_is_jam ? 0 : yy_current_state; } @@ -2489,7 +2668,7 @@ static int yy_get_next_buffer (void) yy_cp = (yy_c_buf_p); - /* undo effects of setting up bxtext */ + /* undo effects of setting up yytext */ *yy_cp = (yy_hold_char); if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) @@ -2563,13 +2742,13 @@ static int yy_get_next_buffer (void) */ /* Reset buffer status. */ - bxrestart(bxin ); + yyrestart( yyin ); /*FALLTHROUGH*/ case EOB_ACT_END_OF_FILE: { - if ( bxwrap( ) ) + if ( yywrap( ) ) return 0; if ( ! (yy_did_buffer_switch_on_eof) ) @@ -2589,7 +2768,7 @@ static int yy_get_next_buffer (void) } c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */ - *(yy_c_buf_p) = '\0'; /* preserve bxtext */ + *(yy_c_buf_p) = '\0'; /* preserve yytext */ (yy_hold_char) = *++(yy_c_buf_p); return c; @@ -2601,32 +2780,32 @@ static int yy_get_next_buffer (void) * * @note This function does not reset the start condition to @c INITIAL . */ - void bxrestart (FILE * input_file ) + void yyrestart (FILE * input_file ) { if ( ! YY_CURRENT_BUFFER ){ - bxensure_buffer_stack (); + yyensure_buffer_stack (); YY_CURRENT_BUFFER_LVALUE = - bx_create_buffer(bxin,YY_BUF_SIZE ); + yy_create_buffer( yyin, YY_BUF_SIZE ); } - bx_init_buffer(YY_CURRENT_BUFFER,input_file ); - bx_load_buffer_state( ); + yy_init_buffer( YY_CURRENT_BUFFER, input_file ); + yy_load_buffer_state( ); } /** Switch to a different input buffer. * @param new_buffer The new input buffer. * */ - void bx_switch_to_buffer (YY_BUFFER_STATE new_buffer ) + void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ) { /* TODO. We should be able to replace this entire function body * with - * bxpop_buffer_state(); - * bxpush_buffer_state(new_buffer); + * yypop_buffer_state(); + * yypush_buffer_state(new_buffer); */ - bxensure_buffer_stack (); + yyensure_buffer_stack (); if ( YY_CURRENT_BUFFER == new_buffer ) return; @@ -2639,21 +2818,21 @@ static int yy_get_next_buffer (void) } YY_CURRENT_BUFFER_LVALUE = new_buffer; - bx_load_buffer_state( ); + yy_load_buffer_state( ); /* We don't actually know whether we did this switch during - * EOF (bxwrap()) processing, but the only time this flag - * is looked at is after bxwrap() is called, so it's safe + * EOF (yywrap()) processing, but the only time this flag + * is looked at is after yywrap() is called, so it's safe * to go ahead and always set it. */ (yy_did_buffer_switch_on_eof) = 1; } -static void bx_load_buffer_state (void) +static void yy_load_buffer_state (void) { (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; - bxin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; + yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; (yy_hold_char) = *(yy_c_buf_p); } @@ -2663,35 +2842,35 @@ static void bx_load_buffer_state (void) * * @return the allocated buffer state. */ - YY_BUFFER_STATE bx_create_buffer (FILE * file, int size ) + YY_BUFFER_STATE yy_create_buffer (FILE * file, int size ) { YY_BUFFER_STATE b; - b = (YY_BUFFER_STATE) bxalloc(sizeof( struct yy_buffer_state ) ); + b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) - YY_FATAL_ERROR( "out of dynamic memory in bx_create_buffer()" ); + YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); b->yy_buf_size = size; /* yy_ch_buf has to be 2 characters longer than the size given because * we need to put in 2 end-of-buffer characters. */ - b->yy_ch_buf = (char *) bxalloc((yy_size_t) (b->yy_buf_size + 2) ); + b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) ); if ( ! b->yy_ch_buf ) - YY_FATAL_ERROR( "out of dynamic memory in bx_create_buffer()" ); + YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); b->yy_is_our_buffer = 1; - bx_init_buffer(b,file ); + yy_init_buffer( b, file ); return b; } /** Destroy the buffer. - * @param b a buffer created with bx_create_buffer() + * @param b a buffer created with yy_create_buffer() * */ - void bx_delete_buffer (YY_BUFFER_STATE b ) + void yy_delete_buffer (YY_BUFFER_STATE b ) { if ( ! b ) @@ -2701,27 +2880,27 @@ static void bx_load_buffer_state (void) YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; if ( b->yy_is_our_buffer ) - bxfree((void *) b->yy_ch_buf ); + yyfree( (void *) b->yy_ch_buf ); - bxfree((void *) b ); + yyfree( (void *) b ); } /* Initializes or reinitializes a buffer. * This function is sometimes called more than once on the same buffer, - * such as during a bxrestart() or at EOF. + * such as during a yyrestart() or at EOF. */ - static void bx_init_buffer (YY_BUFFER_STATE b, FILE * file ) + static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file ) { int oerrno = errno; - bx_flush_buffer(b ); + yy_flush_buffer( b ); b->yy_input_file = file; b->yy_fill_buffer = 1; - /* If b is the current buffer, then bx_init_buffer was _probably_ - * called from bxrestart() or through yy_get_next_buffer. + /* If b is the current buffer, then yy_init_buffer was _probably_ + * called from yyrestart() or through yy_get_next_buffer. * In that case, we don't want to reset the lineno or column. */ if (b != YY_CURRENT_BUFFER){ @@ -2738,7 +2917,7 @@ static void bx_load_buffer_state (void) * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. * */ - void bx_flush_buffer (YY_BUFFER_STATE b ) + void yy_flush_buffer (YY_BUFFER_STATE b ) { if ( ! b ) return; @@ -2758,7 +2937,7 @@ static void bx_load_buffer_state (void) b->yy_buffer_status = YY_BUFFER_NEW; if ( b == YY_CURRENT_BUFFER ) - bx_load_buffer_state( ); + yy_load_buffer_state( ); } /** Pushes the new state onto the stack. The new state becomes @@ -2767,14 +2946,14 @@ static void bx_load_buffer_state (void) * @param new_buffer The new state. * */ -void bxpush_buffer_state (YY_BUFFER_STATE new_buffer ) +void yypush_buffer_state (YY_BUFFER_STATE new_buffer ) { if (new_buffer == NULL) return; - bxensure_buffer_stack(); + yyensure_buffer_stack(); - /* This block is copied from bx_switch_to_buffer. */ + /* This block is copied from yy_switch_to_buffer. */ if ( YY_CURRENT_BUFFER ) { /* Flush out information for old buffer. */ @@ -2788,8 +2967,8 @@ void bxpush_buffer_state (YY_BUFFER_STATE new_buffer ) (yy_buffer_stack_top)++; YY_CURRENT_BUFFER_LVALUE = new_buffer; - /* copied from bx_switch_to_buffer. */ - bx_load_buffer_state( ); + /* copied from yy_switch_to_buffer. */ + yy_load_buffer_state( ); (yy_did_buffer_switch_on_eof) = 1; } @@ -2797,18 +2976,18 @@ void bxpush_buffer_state (YY_BUFFER_STATE new_buffer ) * The next element becomes the new top. * */ -void bxpop_buffer_state (void) +void yypop_buffer_state (void) { if (!YY_CURRENT_BUFFER) return; - bx_delete_buffer(YY_CURRENT_BUFFER ); + yy_delete_buffer(YY_CURRENT_BUFFER ); YY_CURRENT_BUFFER_LVALUE = NULL; if ((yy_buffer_stack_top) > 0) --(yy_buffer_stack_top); if (YY_CURRENT_BUFFER) { - bx_load_buffer_state( ); + yy_load_buffer_state( ); (yy_did_buffer_switch_on_eof) = 1; } } @@ -2816,7 +2995,7 @@ void bxpop_buffer_state (void) /* Allocates the stack if it does not exist. * Guarantees space for at least one push. */ -static void bxensure_buffer_stack (void) +static void yyensure_buffer_stack (void) { yy_size_t num_to_alloc; @@ -2827,11 +3006,11 @@ static void bxensure_buffer_stack (void) * immediate realloc on the next call. */ num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */ - (yy_buffer_stack) = (struct yy_buffer_state**)bxalloc + (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc (num_to_alloc * sizeof(struct yy_buffer_state*) ); if ( ! (yy_buffer_stack) ) - YY_FATAL_ERROR( "out of dynamic memory in bxensure_buffer_stack()" ); + YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); @@ -2846,12 +3025,12 @@ static void bxensure_buffer_stack (void) yy_size_t grow_size = 8 /* arbitrary grow size */; num_to_alloc = (yy_buffer_stack_max) + grow_size; - (yy_buffer_stack) = (struct yy_buffer_state**)bxrealloc + (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc ((yy_buffer_stack), num_to_alloc * sizeof(struct yy_buffer_state*) ); if ( ! (yy_buffer_stack) ) - YY_FATAL_ERROR( "out of dynamic memory in bxensure_buffer_stack()" ); + YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); /* zero only the new slots.*/ memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*)); @@ -2865,7 +3044,7 @@ static void bxensure_buffer_stack (void) * * @return the newly allocated buffer state object. */ -YY_BUFFER_STATE bx_scan_buffer (char * base, yy_size_t size ) +YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) { YY_BUFFER_STATE b; @@ -2875,9 +3054,9 @@ YY_BUFFER_STATE bx_scan_buffer (char * base, yy_size_t size ) /* They forgot to leave room for the EOB's. */ return NULL; - b = (YY_BUFFER_STATE) bxalloc(sizeof( struct yy_buffer_state ) ); + b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) - YY_FATAL_ERROR( "out of dynamic memory in bx_scan_buffer()" ); + YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); b->yy_buf_size = (int) (size - 2); /* "- 2" to take care of EOB's */ b->yy_buf_pos = b->yy_ch_buf = base; @@ -2889,33 +3068,33 @@ YY_BUFFER_STATE bx_scan_buffer (char * base, yy_size_t size ) b->yy_fill_buffer = 0; b->yy_buffer_status = YY_BUFFER_NEW; - bx_switch_to_buffer(b ); + yy_switch_to_buffer( b ); return b; } -/** Setup the input buffer state to scan a string. The next call to bxlex() will +/** Setup the input buffer state to scan a string. The next call to yylex() will * scan from a @e copy of @a str. * @param yystr a NUL-terminated string to scan * * @return the newly allocated buffer state object. * @note If you want to scan bytes that may contain NUL values, then use - * bx_scan_bytes() instead. + * yy_scan_bytes() instead. */ -YY_BUFFER_STATE bx_scan_string (const char * yystr ) +YY_BUFFER_STATE yy_scan_string (const char * yystr ) { - return bx_scan_bytes(yystr,(int) strlen(yystr) ); + return yy_scan_bytes( yystr, (int) strlen(yystr) ); } -/** Setup the input buffer state to scan the given bytes. The next call to bxlex() will +/** Setup the input buffer state to scan the given bytes. The next call to yylex() will * scan from a @e copy of @a bytes. * @param yybytes the byte buffer to scan * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes. * * @return the newly allocated buffer state object. */ -YY_BUFFER_STATE bx_scan_bytes (const char * yybytes, int _yybytes_len ) +YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len ) { YY_BUFFER_STATE b; char *buf; @@ -2924,18 +3103,18 @@ YY_BUFFER_STATE bx_scan_bytes (const char * yybytes, int _yybytes_len ) /* Get memory for full buffer, including space for trailing EOB's. */ n = (yy_size_t) (_yybytes_len + 2); - buf = (char *) bxalloc(n ); + buf = (char *) yyalloc( n ); if ( ! buf ) - YY_FATAL_ERROR( "out of dynamic memory in bx_scan_bytes()" ); + YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); for ( i = 0; i < _yybytes_len; ++i ) buf[i] = yybytes[i]; buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; - b = bx_scan_buffer(buf,n ); + b = yy_scan_buffer( buf, n ); if ( ! b ) - YY_FATAL_ERROR( "bad buffer in bx_scan_bytes()" ); + YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" ); /* It's okay to grow etc. this buffer, and we should throw it * away when we're done. @@ -2951,7 +3130,7 @@ YY_BUFFER_STATE bx_scan_bytes (const char * yybytes, int _yybytes_len ) static void yynoreturn yy_fatal_error (const char* msg ) { - (void) fprintf( stderr, "%s\n", msg ); + fprintf( stderr, "%s\n", msg ); exit( YY_EXIT_FAILURE ); } @@ -2961,14 +3140,14 @@ static void yynoreturn yy_fatal_error (const char* msg ) #define yyless(n) \ do \ { \ - /* Undo effects of setting up bxtext. */ \ + /* Undo effects of setting up yytext. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ - bxtext[bxleng] = (yy_hold_char); \ - (yy_c_buf_p) = bxtext + yyless_macro_arg; \ + yytext[yyleng] = (yy_hold_char); \ + (yy_c_buf_p) = yytext + yyless_macro_arg; \ (yy_hold_char) = *(yy_c_buf_p); \ *(yy_c_buf_p) = '\0'; \ - bxleng = yyless_macro_arg; \ + yyleng = yyless_macro_arg; \ } \ while ( 0 ) @@ -2977,85 +3156,85 @@ static void yynoreturn yy_fatal_error (const char* msg ) /** Get the current line number. * */ -int bxget_lineno (void) +int yyget_lineno (void) { - return bxlineno; + return yylineno; } /** Get the input stream. * */ -FILE *bxget_in (void) +FILE *yyget_in (void) { - return bxin; + return yyin; } /** Get the output stream. * */ -FILE *bxget_out (void) +FILE *yyget_out (void) { - return bxout; + return yyout; } /** Get the length of the current token. * */ -int bxget_leng (void) +int yyget_leng (void) { - return bxleng; + return yyleng; } /** Get the current token. * */ -char *bxget_text (void) +char *yyget_text (void) { - return bxtext; + return yytext; } /** Set the current line number. * @param _line_number line number * */ -void bxset_lineno (int _line_number ) +void yyset_lineno (int _line_number ) { - bxlineno = _line_number; + yylineno = _line_number; } /** Set the input stream. This does not discard the current * input buffer. * @param _in_str A readable stream. * - * @see bx_switch_to_buffer + * @see yy_switch_to_buffer */ -void bxset_in (FILE * _in_str ) +void yyset_in (FILE * _in_str ) { - bxin = _in_str ; + yyin = _in_str ; } -void bxset_out (FILE * _out_str ) +void yyset_out (FILE * _out_str ) { - bxout = _out_str ; + yyout = _out_str ; } -int bxget_debug (void) +int yyget_debug (void) { - return bx_flex_debug; + return yy_flex_debug; } -void bxset_debug (int _bdebug ) +void yyset_debug (int _bdebug ) { - bx_flex_debug = _bdebug ; + yy_flex_debug = _bdebug ; } static int yy_init_globals (void) { /* Initialization is the same as for the non-reentrant scanner. - * This function is called from bxlex_destroy(), so don't allocate here. + * This function is called from yylex_destroy(), so don't allocate here. */ (yy_buffer_stack) = NULL; @@ -3067,36 +3246,36 @@ static int yy_init_globals (void) /* Defined in main.c */ #ifdef YY_STDINIT - bxin = stdin; - bxout = stdout; + yyin = stdin; + yyout = stdout; #else - bxin = NULL; - bxout = NULL; + yyin = NULL; + yyout = NULL; #endif /* For future reference: Set errno on error, since we are called by - * bxlex_init() + * yylex_init() */ return 0; } -/* bxlex_destroy is for both reentrant and non-reentrant scanners. */ -int bxlex_destroy (void) +/* yylex_destroy is for both reentrant and non-reentrant scanners. */ +int yylex_destroy (void) { /* Pop the buffer stack, destroying each element. */ while(YY_CURRENT_BUFFER){ - bx_delete_buffer(YY_CURRENT_BUFFER ); + yy_delete_buffer( YY_CURRENT_BUFFER ); YY_CURRENT_BUFFER_LVALUE = NULL; - bxpop_buffer_state(); + yypop_buffer_state(); } /* Destroy the stack itself. */ - bxfree((yy_buffer_stack) ); + yyfree((yy_buffer_stack) ); (yy_buffer_stack) = NULL; /* Reset the globals. This is important in a non-reentrant scanner so the next time - * bxlex() is called, initialization will occur. */ + * yylex() is called, initialization will occur. */ yy_init_globals( ); return 0; @@ -3127,12 +3306,12 @@ static int yy_flex_strlen (const char * s ) } #endif -void *bxalloc (yy_size_t size ) +void *yyalloc (yy_size_t size ) { return malloc(size); } -void *bxrealloc (void * ptr, yy_size_t size ) +void *yyrealloc (void * ptr, yy_size_t size ) { /* The cast to (char *) in the following accommodates both @@ -3145,14 +3324,14 @@ void *bxrealloc (void * ptr, yy_size_t size ) return realloc(ptr, size); } -void bxfree (void * ptr ) +void yyfree (void * ptr ) { - free( (char *) ptr ); /* see bxrealloc() for (char *) cast */ + free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ } #define YYTABLES_NAME "yytables" -#line 270 "lexer.l" +#line 271 "lexer.l" int diff --git a/bochs/bx_debug/lexer.l b/bochs/bx_debug/lexer.l index ebfedafe9..dab37b583 100644 --- a/bochs/bx_debug/lexer.l +++ b/bochs/bx_debug/lexer.l @@ -136,6 +136,7 @@ sba { bxlval.sval = strdup(bxtext); return(BX_TOKEN_TIMEBP_ABSOLUTE) modebp { bxlval.sval = strdup(bxtext); return(BX_TOKEN_MODEBP); } vmexitbp { bxlval.sval = strdup(bxtext); return(BX_TOKEN_VMEXITBP); } print-stack { bxlval.sval = strdup(bxtext); return(BX_TOKEN_PRINT_STACK); } +bt { bxlval.sval = strdup(bxtext); return(BX_TOKEN_BT); } watch { bxlval.sval = strdup(bxtext); return(BX_TOKEN_WATCH); } unwatch { bxlval.sval = strdup(bxtext); return(BX_TOKEN_UNWATCH); } read { bxlval.sval = strdup(bxtext); return(BX_TOKEN_READ); } diff --git a/bochs/bx_debug/parser.c b/bochs/bx_debug/parser.c index 8769ecc4d..ec23df6a9 100644 --- a/bochs/bx_debug/parser.c +++ b/bochs/bx_debug/parser.c @@ -195,36 +195,37 @@ extern int bxdebug; BX_TOKEN_MODEBP = 336, BX_TOKEN_VMEXITBP = 337, BX_TOKEN_PRINT_STACK = 338, - BX_TOKEN_WATCH = 339, - BX_TOKEN_UNWATCH = 340, - BX_TOKEN_READ = 341, - BX_TOKEN_WRITE = 342, - BX_TOKEN_SHOW = 343, - BX_TOKEN_LOAD_SYMBOLS = 344, - BX_TOKEN_SYMBOLS = 345, - BX_TOKEN_LIST_SYMBOLS = 346, - BX_TOKEN_GLOBAL = 347, - BX_TOKEN_WHERE = 348, - BX_TOKEN_PRINT_STRING = 349, - BX_TOKEN_NUMERIC = 350, - BX_TOKEN_PAGE = 351, - BX_TOKEN_HELP = 352, - BX_TOKEN_XML = 353, - BX_TOKEN_CALC = 354, - BX_TOKEN_DEVICE = 355, - BX_TOKEN_GENERIC = 356, - BX_TOKEN_RSHIFT = 357, - BX_TOKEN_LSHIFT = 358, - BX_TOKEN_EQ = 359, - BX_TOKEN_NE = 360, - BX_TOKEN_LE = 361, - BX_TOKEN_GE = 362, - BX_TOKEN_REG_IP = 363, - BX_TOKEN_REG_EIP = 364, - BX_TOKEN_REG_RIP = 365, - NOT = 366, - NEG = 367, - INDIRECT = 368 + BX_TOKEN_BT = 339, + BX_TOKEN_WATCH = 340, + BX_TOKEN_UNWATCH = 341, + BX_TOKEN_READ = 342, + BX_TOKEN_WRITE = 343, + BX_TOKEN_SHOW = 344, + BX_TOKEN_LOAD_SYMBOLS = 345, + BX_TOKEN_SYMBOLS = 346, + BX_TOKEN_LIST_SYMBOLS = 347, + BX_TOKEN_GLOBAL = 348, + BX_TOKEN_WHERE = 349, + BX_TOKEN_PRINT_STRING = 350, + BX_TOKEN_NUMERIC = 351, + BX_TOKEN_PAGE = 352, + BX_TOKEN_HELP = 353, + BX_TOKEN_XML = 354, + BX_TOKEN_CALC = 355, + BX_TOKEN_DEVICE = 356, + BX_TOKEN_GENERIC = 357, + BX_TOKEN_RSHIFT = 358, + BX_TOKEN_LSHIFT = 359, + BX_TOKEN_EQ = 360, + BX_TOKEN_NE = 361, + BX_TOKEN_LE = 362, + BX_TOKEN_GE = 363, + BX_TOKEN_REG_IP = 364, + BX_TOKEN_REG_EIP = 365, + BX_TOKEN_REG_RIP = 366, + NOT = 367, + NEG = 368, + INDIRECT = 369 }; #endif /* Tokens. */ @@ -309,36 +310,37 @@ extern int bxdebug; #define BX_TOKEN_MODEBP 336 #define BX_TOKEN_VMEXITBP 337 #define BX_TOKEN_PRINT_STACK 338 -#define BX_TOKEN_WATCH 339 -#define BX_TOKEN_UNWATCH 340 -#define BX_TOKEN_READ 341 -#define BX_TOKEN_WRITE 342 -#define BX_TOKEN_SHOW 343 -#define BX_TOKEN_LOAD_SYMBOLS 344 -#define BX_TOKEN_SYMBOLS 345 -#define BX_TOKEN_LIST_SYMBOLS 346 -#define BX_TOKEN_GLOBAL 347 -#define BX_TOKEN_WHERE 348 -#define BX_TOKEN_PRINT_STRING 349 -#define BX_TOKEN_NUMERIC 350 -#define BX_TOKEN_PAGE 351 -#define BX_TOKEN_HELP 352 -#define BX_TOKEN_XML 353 -#define BX_TOKEN_CALC 354 -#define BX_TOKEN_DEVICE 355 -#define BX_TOKEN_GENERIC 356 -#define BX_TOKEN_RSHIFT 357 -#define BX_TOKEN_LSHIFT 358 -#define BX_TOKEN_EQ 359 -#define BX_TOKEN_NE 360 -#define BX_TOKEN_LE 361 -#define BX_TOKEN_GE 362 -#define BX_TOKEN_REG_IP 363 -#define BX_TOKEN_REG_EIP 364 -#define BX_TOKEN_REG_RIP 365 -#define NOT 366 -#define NEG 367 -#define INDIRECT 368 +#define BX_TOKEN_BT 339 +#define BX_TOKEN_WATCH 340 +#define BX_TOKEN_UNWATCH 341 +#define BX_TOKEN_READ 342 +#define BX_TOKEN_WRITE 343 +#define BX_TOKEN_SHOW 344 +#define BX_TOKEN_LOAD_SYMBOLS 345 +#define BX_TOKEN_SYMBOLS 346 +#define BX_TOKEN_LIST_SYMBOLS 347 +#define BX_TOKEN_GLOBAL 348 +#define BX_TOKEN_WHERE 349 +#define BX_TOKEN_PRINT_STRING 350 +#define BX_TOKEN_NUMERIC 351 +#define BX_TOKEN_PAGE 352 +#define BX_TOKEN_HELP 353 +#define BX_TOKEN_XML 354 +#define BX_TOKEN_CALC 355 +#define BX_TOKEN_DEVICE 356 +#define BX_TOKEN_GENERIC 357 +#define BX_TOKEN_RSHIFT 358 +#define BX_TOKEN_LSHIFT 359 +#define BX_TOKEN_EQ 360 +#define BX_TOKEN_NE 361 +#define BX_TOKEN_LE 362 +#define BX_TOKEN_GE 363 +#define BX_TOKEN_REG_IP 364 +#define BX_TOKEN_REG_EIP 365 +#define BX_TOKEN_REG_RIP 366 +#define NOT 367 +#define NEG 368 +#define INDIRECT 369 /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED @@ -351,7 +353,7 @@ union YYSTYPE Bit64u uval; bx_bool bval; -#line 355 "y.tab.c" /* yacc.c:355 */ +#line 357 "y.tab.c" /* yacc.c:355 */ }; typedef union YYSTYPE YYSTYPE; @@ -368,7 +370,7 @@ int bxparse (void); /* Copy the second part of user declarations. */ -#line 372 "y.tab.c" /* yacc.c:358 */ +#line 374 "y.tab.c" /* yacc.c:358 */ #ifdef short # undef short @@ -608,23 +610,23 @@ union yyalloc #endif /* !YYCOPY_NEEDED */ /* YYFINAL -- State number of the termination state. */ -#define YYFINAL 302 +#define YYFINAL 306 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 2414 +#define YYLAST 2358 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 130 +#define YYNTOKENS 131 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 58 +#define YYNNTS 59 /* YYNRULES -- Number of rules. */ -#define YYNRULES 295 +#define YYNRULES 298 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 579 +#define YYNSTATES 584 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned by yylex, with out-of-bounds checking. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 368 +#define YYMAXUTOK 369 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -634,20 +636,20 @@ union yyalloc static const yytype_uint8 yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 123, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 124, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 126, 2, 2, 2, 2, 119, 2, - 127, 128, 117, 111, 2, 112, 2, 118, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 125, 2, - 115, 124, 116, 2, 129, 2, 2, 2, 2, 2, + 2, 2, 2, 127, 2, 2, 2, 2, 120, 2, + 128, 129, 118, 112, 2, 113, 2, 119, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 126, 2, + 116, 125, 117, 2, 130, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 115, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 114, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 113, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -669,43 +671,43 @@ static const yytype_uint8 yytranslate[] = 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 120, 121, 122 + 105, 106, 107, 108, 109, 110, 111, 121, 122, 123 }; #if YYDEBUG /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 146, 146, 147, 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, 186, - 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, - 197, 198, 199, 200, 201, 202, 208, 209, 214, 215, - 220, 221, 222, 223, 224, 225, 230, 235, 243, 251, - 259, 264, 269, 274, 279, 284, 292, 300, 308, 316, - 324, 332, 340, 345, 353, 358, 363, 368, 373, 378, - 383, 388, 393, 398, 403, 411, 416, 421, 426, 434, - 442, 450, 455, 463, 468, 473, 478, 486, 494, 499, - 504, 508, 512, 516, 520, 524, 528, 532, 539, 544, - 549, 554, 559, 564, 569, 574, 579, 584, 589, 594, - 599, 607, 615, 620, 628, 633, 638, 643, 648, 653, + 0, 147, 147, 148, 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, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 210, 211, 216, + 217, 222, 223, 224, 225, 226, 227, 232, 237, 245, + 253, 261, 266, 271, 276, 281, 286, 294, 302, 310, + 318, 326, 334, 342, 347, 355, 360, 368, 373, 378, + 383, 388, 393, 398, 403, 408, 413, 418, 426, 431, + 436, 441, 449, 457, 465, 470, 478, 483, 488, 493, + 501, 509, 514, 519, 523, 527, 531, 535, 539, 543, + 547, 554, 559, 564, 569, 574, 579, 584, 589, 594, + 599, 604, 609, 614, 622, 630, 635, 643, 648, 653, 658, 663, 668, 673, 678, 683, 688, 693, 698, 703, - 708, 716, 717, 720, 728, 736, 744, 752, 760, 768, - 776, 784, 792, 800, 807, 815, 823, 828, 833, 838, - 846, 854, 862, 870, 878, 883, 888, 896, 901, 906, - 911, 916, 921, 926, 931, 936, 944, 949, 957, 965, - 973, 978, 984, 991, 996, 1002, 1008, 1014, 1019, 1024, - 1029, 1034, 1039, 1044, 1049, 1055, 1061, 1067, 1075, 1080, - 1085, 1090, 1095, 1100, 1105, 1110, 1115, 1120, 1125, 1130, - 1135, 1140, 1145, 1150, 1155, 1160, 1170, 1181, 1187, 1200, - 1205, 1216, 1221, 1237, 1253, 1263, 1268, 1276, 1285, 1295, - 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, - 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, - 1316, 1317, 1318, 1324, 1325, 1326, 1327, 1328, 1329, 1330, - 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, - 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, - 1351, 1352, 1353, 1354, 1355, 1356 + 708, 713, 718, 723, 731, 732, 735, 743, 751, 759, + 767, 775, 783, 791, 799, 807, 815, 822, 830, 838, + 843, 848, 853, 861, 869, 877, 885, 893, 898, 903, + 911, 916, 921, 926, 931, 936, 941, 946, 951, 959, + 964, 972, 980, 988, 993, 999, 1006, 1011, 1017, 1023, + 1029, 1034, 1039, 1044, 1049, 1054, 1059, 1064, 1070, 1076, + 1082, 1090, 1095, 1100, 1105, 1110, 1115, 1120, 1125, 1130, + 1135, 1140, 1145, 1150, 1155, 1160, 1165, 1170, 1175, 1185, + 1196, 1202, 1215, 1220, 1231, 1236, 1252, 1268, 1278, 1283, + 1291, 1300, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, + 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, + 1328, 1329, 1330, 1331, 1332, 1333, 1339, 1340, 1341, 1342, + 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, + 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, + 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371 }; #endif @@ -738,21 +740,22 @@ static const char *const yytname[] = "BX_TOKEN_TRACE", "BX_TOKEN_TRACEREG", "BX_TOKEN_TRACEMEM", "BX_TOKEN_SWITCH_MODE", "BX_TOKEN_SIZE", "BX_TOKEN_PTIME", "BX_TOKEN_TIMEBP_ABSOLUTE", "BX_TOKEN_TIMEBP", "BX_TOKEN_MODEBP", - "BX_TOKEN_VMEXITBP", "BX_TOKEN_PRINT_STACK", "BX_TOKEN_WATCH", - "BX_TOKEN_UNWATCH", "BX_TOKEN_READ", "BX_TOKEN_WRITE", "BX_TOKEN_SHOW", - "BX_TOKEN_LOAD_SYMBOLS", "BX_TOKEN_SYMBOLS", "BX_TOKEN_LIST_SYMBOLS", - "BX_TOKEN_GLOBAL", "BX_TOKEN_WHERE", "BX_TOKEN_PRINT_STRING", - "BX_TOKEN_NUMERIC", "BX_TOKEN_PAGE", "BX_TOKEN_HELP", "BX_TOKEN_XML", - "BX_TOKEN_CALC", "BX_TOKEN_DEVICE", "BX_TOKEN_GENERIC", - "BX_TOKEN_RSHIFT", "BX_TOKEN_LSHIFT", "BX_TOKEN_EQ", "BX_TOKEN_NE", - "BX_TOKEN_LE", "BX_TOKEN_GE", "BX_TOKEN_REG_IP", "BX_TOKEN_REG_EIP", - "BX_TOKEN_REG_RIP", "'+'", "'-'", "'|'", "'^'", "'<'", "'>'", "'*'", - "'/'", "'&'", "NOT", "NEG", "INDIRECT", "'\\n'", "'='", "':'", "'!'", - "'('", "')'", "'@'", "$accept", "commands", "command", - "BX_TOKEN_TOGGLE_ON_OFF", "BX_TOKEN_REGISTERS", "BX_TOKEN_SEGREG", - "timebp_command", "modebp_command", "vmexitbp_command", "show_command", - "page_command", "tlb_command", "ptime_command", "trace_command", - "trace_reg_command", "trace_mem_command", "print_stack_command", + "BX_TOKEN_VMEXITBP", "BX_TOKEN_PRINT_STACK", "BX_TOKEN_BT", + "BX_TOKEN_WATCH", "BX_TOKEN_UNWATCH", "BX_TOKEN_READ", "BX_TOKEN_WRITE", + "BX_TOKEN_SHOW", "BX_TOKEN_LOAD_SYMBOLS", "BX_TOKEN_SYMBOLS", + "BX_TOKEN_LIST_SYMBOLS", "BX_TOKEN_GLOBAL", "BX_TOKEN_WHERE", + "BX_TOKEN_PRINT_STRING", "BX_TOKEN_NUMERIC", "BX_TOKEN_PAGE", + "BX_TOKEN_HELP", "BX_TOKEN_XML", "BX_TOKEN_CALC", "BX_TOKEN_DEVICE", + "BX_TOKEN_GENERIC", "BX_TOKEN_RSHIFT", "BX_TOKEN_LSHIFT", "BX_TOKEN_EQ", + "BX_TOKEN_NE", "BX_TOKEN_LE", "BX_TOKEN_GE", "BX_TOKEN_REG_IP", + "BX_TOKEN_REG_EIP", "BX_TOKEN_REG_RIP", "'+'", "'-'", "'|'", "'^'", + "'<'", "'>'", "'*'", "'/'", "'&'", "NOT", "NEG", "INDIRECT", "'\\n'", + "'='", "':'", "'!'", "'('", "')'", "'@'", "$accept", "commands", + "command", "BX_TOKEN_TOGGLE_ON_OFF", "BX_TOKEN_REGISTERS", + "BX_TOKEN_SEGREG", "timebp_command", "modebp_command", + "vmexitbp_command", "show_command", "page_command", "tlb_command", + "ptime_command", "trace_command", "trace_reg_command", + "trace_mem_command", "print_stack_command", "backtrace_command", "watch_point_command", "symbol_command", "where_command", "print_string_command", "continue_command", "stepN_command", "step_over_command", "set_command", "breakpoint_command", @@ -785,17 +788,18 @@ static const yytype_uint16 yytoknum[] = 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, - 365, 43, 45, 124, 94, 60, 62, 42, 47, 38, - 366, 367, 368, 10, 61, 58, 33, 40, 41, 64 + 365, 366, 43, 45, 124, 94, 60, 62, 42, 47, + 38, 367, 368, 369, 10, 61, 58, 33, 40, 41, + 64 }; # endif -#define YYPACT_NINF -174 +#define YYPACT_NINF -176 #define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-174))) + (!!((Yystate) == (-176))) -#define YYTABLE_NINF -294 +#define YYTABLE_NINF -297 #define yytable_value_is_error(Yytable_value) \ 0 @@ -804,64 +808,65 @@ static const yytype_uint16 yytoknum[] = STATE-NUM. */ static const yytype_int16 yypact[] = { - 543, -174, -174, -174, -174, -174, -174, -174, -174, -174, - -174, -174, -174, -3, 1357, -35, -111, 20, -101, 1432, - 1028, 1080, -53, -46, -44, 700, -68, -174, -174, -66, - -62, -60, -52, -42, -32, -22, -10, 278, 52, 62, - 1357, 72, 21, 1357, 953, -51, -174, 1357, 1357, 107, - 107, 107, 11, 1357, 1357, 14, 15, -54, 49, 1103, - 17, -30, -67, 16, 1357, -174, 1357, 1594, 1357, -174, - -174, -174, 1357, 1357, -174, 1357, 1357, 1357, 416, -174, - 18, -174, -174, -174, -174, -174, -174, -174, -174, -174, - -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, - -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, - -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, - -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, - -174, 2289, 1357, -174, 1400, 47, -49, -174, -174, 19, - 32, 33, 34, 36, 40, 107, 41, 42, 43, -174, - -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, - -174, 1484, -174, 1484, 1484, -174, 941, -1, -174, -9, - 1357, -174, 246, 45, 46, 48, 54, 55, 67, 1357, - 1357, 1357, 1357, 73, 75, 76, -34, -31, -174, -174, - -174, -174, -174, -174, -174, -174, -174, 1155, -174, 1458, - 126, 1357, 877, 77, -43, 80, 1593, 1230, 107, 81, - 82, -174, 141, 88, 90, 1617, 877, -174, -174, 91, - 92, 98, -174, 1641, 1665, -174, -174, 99, -174, 103, - 1357, 104, 1357, 1357, -174, -174, 1689, 105, 108, -40, - 111, -174, 1282, 136, 112, -174, -174, 1713, 1737, 114, - 115, 116, 117, 118, 138, 139, 140, 146, 148, 153, - 154, 155, 156, 157, 171, 172, 173, 174, 175, 176, - 177, 178, 179, 180, 181, 198, 199, 200, 201, 202, - 213, 231, 232, 233, 243, 244, 245, 247, 249, 251, - 252, 253, 254, 255, -174, 260, 1761, 259, 259, 259, - 794, 259, -174, -174, -174, 1357, 1357, 1357, 1357, 1357, - 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, 1357, - 1357, 1785, -174, 262, 268, -174, 1357, 1357, 1357, 1357, - 1357, 1357, 269, 1357, 1357, 1357, -174, -174, 898, 1484, - 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 1484, 324, - -174, 325, -174, -8, 327, -174, -174, -174, -174, -174, - -174, -174, 1357, 2289, 1357, 1357, 1357, -174, -174, -174, - 274, -174, -33, -24, -174, -174, 1809, -174, 275, 877, - 1357, 1357, 877, -174, 276, -174, -174, -174, -174, 670, - 277, -174, 307, -174, 1833, -174, -174, -174, 1857, -174, - -174, -174, -174, -174, -174, -174, 699, -174, 750, 826, - -174, -174, -174, 280, -174, -174, -174, 1881, 1305, -174, - -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, - -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, - -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, - -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, - -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, - 69, 69, 259, 259, 259, 259, 615, 615, 615, 615, - 615, 615, 69, 69, 69, 2289, -174, -174, -174, 1905, - 1929, 1953, 1977, 2001, 2025, -174, 2049, 2073, 2097, -174, - -174, -174, 9, 9, 9, 9, -174, -174, -174, 106, - 287, 288, 343, -174, 290, 291, 292, 294, 308, -174, - 309, -174, 310, -174, -174, -174, 2121, 1025, 168, 2145, - -174, -174, 2169, -174, 316, -174, -174, -174, 2193, -174, - 2217, -174, 2241, -174, -174, -174, 2265, -174, -174, -174, - -174, -174, -174, -174, -174, -174, 382, -174, -174, -174, - 334, -174, -174, -174, -174, -174, -174, -174, -174, -174, - -174, -174, -174, -174, -174, -174, 335, -174, -174 + 549, -176, -176, -176, -176, -176, -176, -176, -176, -176, + -176, -176, -176, 3, 1288, -38, -112, 21, -108, 1311, + 111, 292, -78, -51, -35, 1508, -65, -176, -176, -52, + -34, -29, -27, -26, -25, -24, -23, 1039, 20, 34, + 1288, 44, -12, 1288, 911, -21, -176, 1288, 1288, 47, + 47, 47, -16, 1288, 1288, -14, -13, -54, -41, 5, + 1062, 2, 13, -58, -11, 1288, -176, 1288, 1447, 1288, + -176, -176, -176, 1288, 1288, -176, 1288, 1288, 1288, 421, + -176, 4, -176, -176, -176, -176, -176, -176, -176, -176, + -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, + -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, + -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, + -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, + -176, -176, -176, 2232, 1288, -176, 1488, 37, -40, -176, + -176, 10, 11, 12, 14, 35, 41, 47, 42, 43, + 45, -176, -176, -176, -176, -176, -176, -176, -176, -176, + -176, -176, -176, 1336, -176, 1336, 1336, -176, 163, 16, + -176, 250, 1288, -176, 618, 6, 22, 49, 50, 55, + 68, 1288, 1288, 1288, 1288, 73, 74, 76, -33, -56, + -176, -176, -176, -176, -176, -176, -176, -176, -176, 1091, + -176, 1512, 69, 1288, 886, 77, -39, 78, 1536, 1114, + 47, 81, 46, -176, 144, 82, 84, 1560, 886, -176, + -176, 86, 87, 88, -176, 1584, 1608, -176, -176, 91, + -176, 95, -176, 99, 1288, 106, 1288, 1288, -176, -176, + 1632, 119, 120, -37, 121, -176, 1242, 90, 141, -176, + -176, 1656, 1680, 149, 155, 156, 160, 161, 162, 164, + 166, 167, 168, 169, 170, 183, 184, 201, 202, 203, + 204, 205, 212, 216, 227, 228, 235, 236, 247, 248, + 249, 251, 253, 254, 257, 258, 263, 265, 266, 267, + 268, 273, 274, 275, 280, 282, 283, 284, -176, 285, + 1704, 19, 19, 19, 1460, 19, -176, -176, -176, 1288, + 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, + 1288, 1288, 1288, 1288, 1288, 1728, -176, 288, 291, -176, + 1288, 1288, 1288, 1288, 1288, 1288, 293, 1288, 1288, 1288, + -176, -176, 113, 1336, 1336, 1336, 1336, 1336, 1336, 1336, + 1336, 1336, 1336, 100, -176, 218, -176, -17, 331, -176, + -176, -176, -176, -176, -176, -176, 1288, 2232, 1288, 1288, + 1288, -176, -176, -176, 294, -176, -30, -28, -176, -176, + 1752, -176, 312, 886, 1288, 1288, 886, -176, 313, -176, + -176, -176, -176, 677, 314, -176, 348, -176, 1776, -176, + -176, -176, 1800, -176, -176, -176, -176, -176, -176, -176, + -176, 706, -176, 758, 834, -176, -176, -176, 332, -176, + -176, -176, 1824, 1265, -176, -176, -176, -176, -176, -176, + -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, + -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, + -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, + -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, + -176, -176, -176, -176, -176, 36, 36, 19, 19, 19, + 19, 1035, 1035, 1035, 1035, 1035, 1035, 36, 36, 36, + 2232, -176, -176, -176, 1848, 1872, 1896, 1920, 1944, 1968, + -176, 1992, 2016, 2040, -176, -176, -176, 276, 276, 276, + 276, -176, -176, -176, 636, 338, 339, 395, -176, 341, + 342, 343, 344, 345, -176, 346, -176, 351, -176, -176, + -176, 2064, 1322, 70, 2088, -176, -176, 2112, -176, 352, + -176, -176, -176, 2136, -176, 2160, -176, 2184, -176, -176, + -176, 2208, -176, -176, -176, -176, -176, -176, -176, -176, + -176, 411, -176, -176, -176, 358, -176, -176, -176, -176, + -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, + -176, 360, -176, -176 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -869,86 +874,87 @@ static const yytype_int16 yypact[] = means the default is an error. */ static const yytype_uint16 yydefact[] = { - 54, 266, 265, 267, 268, 269, 60, 61, 62, 63, - 64, 65, 270, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 58, 59, 0, + 55, 269, 268, 270, 271, 272, 61, 62, 63, 64, + 65, 66, 273, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 59, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 264, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 267, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 263, 0, 0, 0, 272, - 273, 274, 0, 0, 55, 0, 0, 0, 0, 3, - 0, 271, 39, 40, 41, 46, 44, 45, 38, 35, - 36, 37, 42, 43, 47, 48, 49, 4, 5, 6, - 7, 8, 19, 20, 9, 10, 11, 12, 13, 14, - 15, 16, 18, 17, 21, 22, 23, 24, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 34, 50, 51, - 52, 53, 0, 101, 0, 0, 0, 103, 107, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 131, - 242, 241, 243, 244, 245, 246, 240, 239, 248, 249, - 250, 0, 118, 0, 0, 247, 0, 264, 121, 0, - 0, 126, 0, 0, 0, 0, 0, 0, 0, 151, - 151, 151, 151, 0, 0, 0, 0, 0, 165, 154, - 155, 156, 157, 158, 161, 160, 159, 0, 169, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 177, 0, 0, 0, 0, 0, 56, 57, 0, - 0, 0, 78, 0, 0, 68, 69, 0, 82, 0, - 0, 0, 0, 0, 86, 93, 0, 0, 0, 0, - 0, 75, 0, 0, 0, 132, 99, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 266, 0, 0, 0, + 275, 276, 277, 0, 0, 56, 0, 0, 0, 0, + 3, 0, 274, 39, 40, 41, 47, 45, 46, 38, + 35, 36, 37, 42, 43, 44, 48, 49, 50, 4, + 5, 6, 7, 8, 19, 20, 9, 10, 11, 12, + 13, 14, 15, 16, 18, 17, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 51, 52, 53, 54, 0, 104, 0, 0, 0, 106, + 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 134, 245, 244, 246, 247, 248, 249, 243, 242, + 251, 252, 253, 0, 121, 0, 0, 250, 0, 267, + 124, 0, 0, 129, 0, 0, 0, 0, 0, 0, + 0, 154, 154, 154, 154, 0, 0, 0, 0, 0, + 168, 157, 158, 159, 160, 161, 164, 163, 162, 0, + 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 180, 0, 0, 0, 0, 0, 57, + 58, 0, 0, 0, 79, 0, 0, 69, 70, 0, + 83, 0, 85, 0, 0, 0, 0, 0, 89, 96, + 0, 0, 0, 0, 0, 76, 0, 0, 0, 135, + 102, 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, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 239, 0, + 0, 295, 296, 294, 0, 297, 1, 2, 156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 236, 0, 0, 292, 293, 291, - 0, 294, 1, 2, 153, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 241, 0, 0, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 238, 0, 0, 104, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 261, 260, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 124, 0, 122, 293, 0, 127, 162, 163, 164, 142, - 134, 135, 151, 152, 151, 151, 151, 141, 140, 143, - 0, 144, 0, 0, 146, 167, 0, 168, 0, 0, - 0, 0, 0, 173, 0, 174, 176, 77, 180, 0, - 0, 183, 0, 178, 0, 186, 187, 188, 0, 79, - 80, 81, 67, 66, 83, 85, 0, 84, 0, 0, - 94, 72, 71, 0, 73, 70, 95, 0, 0, 133, - 100, 76, 191, 192, 193, 230, 200, 194, 195, 196, - 197, 198, 199, 232, 190, 215, 216, 217, 218, 219, - 222, 221, 220, 228, 207, 223, 224, 225, 229, 203, - 204, 205, 206, 208, 210, 209, 201, 202, 211, 226, - 227, 233, 212, 213, 231, 235, 234, 214, 237, 295, - 280, 281, 287, 288, 289, 290, 276, 277, 282, 283, - 286, 285, 278, 279, 284, 275, 102, 105, 106, 0, - 0, 0, 0, 0, 0, 108, 0, 0, 0, 262, - 255, 256, 251, 252, 257, 258, 253, 254, 259, 0, - 0, 0, 0, 129, 0, 0, 0, 0, 0, 145, - 0, 149, 0, 147, 166, 170, 0, 277, 278, 0, - 175, 181, 0, 184, 0, 179, 189, 87, 0, 88, - 0, 89, 0, 74, 96, 97, 0, 111, 110, 112, - 113, 114, 109, 115, 116, 117, 0, 119, 125, 123, - 0, 128, 136, 137, 138, 139, 150, 148, 171, 172, - 182, 185, 90, 91, 92, 98, 0, 130, 120 + 264, 263, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 127, 0, 125, 296, 0, 130, + 165, 166, 167, 145, 137, 138, 154, 155, 154, 154, + 154, 144, 143, 146, 0, 147, 0, 0, 149, 170, + 0, 171, 0, 0, 0, 0, 0, 176, 0, 177, + 179, 78, 183, 0, 0, 186, 0, 181, 0, 189, + 190, 191, 0, 80, 81, 82, 68, 67, 84, 86, + 88, 0, 87, 0, 0, 97, 73, 72, 0, 74, + 71, 98, 0, 0, 136, 103, 77, 194, 195, 196, + 233, 203, 197, 198, 199, 200, 201, 202, 235, 193, + 218, 219, 220, 221, 222, 225, 224, 223, 231, 210, + 226, 227, 228, 232, 206, 207, 208, 209, 211, 213, + 212, 204, 205, 214, 229, 230, 236, 215, 216, 234, + 238, 237, 217, 240, 298, 283, 284, 290, 291, 292, + 293, 279, 280, 285, 286, 289, 288, 281, 282, 287, + 278, 105, 108, 109, 0, 0, 0, 0, 0, 0, + 111, 0, 0, 0, 265, 258, 259, 254, 255, 260, + 261, 256, 257, 262, 0, 0, 0, 0, 132, 0, + 0, 0, 0, 0, 148, 0, 152, 0, 150, 169, + 173, 0, 280, 281, 0, 178, 184, 0, 187, 0, + 182, 192, 90, 0, 91, 0, 92, 0, 75, 99, + 100, 0, 114, 113, 115, 116, 117, 112, 118, 119, + 120, 0, 122, 128, 126, 0, 131, 139, 140, 141, + 142, 153, 151, 174, 175, 185, 188, 93, 94, 95, + 101, 0, 133, 123 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -174, -174, 381, -45, 393, -2, -174, -174, -174, -174, - -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, - -174, -174, -174, -174, -174, -174, -174, -174, -174, -173, - -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, - -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, - -174, -174, -174, -174, -174, -174, -160, 0 + -176, -176, 33, -45, 417, -2, -176, -176, -176, -176, + -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, + -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, + -175, -176, -176, -176, -176, -176, -176, -176, -176, -176, + -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, + -176, -176, -176, -176, -176, -176, -176, -162, 0 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 78, 79, 219, 80, 81, 82, 83, 84, 85, - 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, - 96, 97, 98, 99, 100, 101, 102, 103, 104, 362, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 166, 363 + -1, 79, 80, 221, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 366, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 168, 367 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -956,494 +962,482 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 131, 336, 244, 337, 338, 220, 221, 364, 365, 366, - 351, 512, 138, 135, 134, 148, 132, 165, 349, 213, - 169, 172, 149, 139, 140, 141, 142, 143, 6, 7, - 8, 9, 10, 11, 237, 370, 520, 199, 372, 242, - 202, 227, 173, 206, 212, 522, 324, 215, 216, 174, - 214, 175, 384, 223, 224, 188, 245, 189, 413, 236, - 136, 190, 243, 191, 247, 238, 248, 229, 296, 228, - 373, 192, 297, 298, 325, 299, 300, 301, 131, 144, - 385, 193, 230, 414, 204, 205, 239, 145, 137, 371, - 521, 194, 374, 305, 306, 307, 308, 309, 310, 523, - 332, 195, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 339, 340, 196, 352, 513, 320, 320, 240, 231, - 133, 200, 350, 217, 218, 556, 345, 346, 347, 146, - 147, 201, 321, 203, 222, 232, 233, 225, 226, 246, - 241, 304, 323, 326, 1, 2, 3, 4, 5, 6, - 7, 8, 9, 10, 11, 12, 327, 328, 329, 165, - 330, 165, 165, 390, 331, 333, 334, 335, 356, 357, - 353, 358, 234, 307, 308, 309, 310, 359, 360, 500, - 501, 502, 503, 504, 505, 506, 507, 508, 509, 515, - 361, 516, 517, 518, 320, 378, 367, 376, 368, 369, - 383, 379, 382, 386, 391, 418, 392, 389, 339, 340, - 46, 395, 394, 396, 399, 400, 398, 341, 342, 343, - 344, 401, 404, 345, 346, 347, 405, 407, 411, 557, - 406, 412, 408, 409, 415, 419, 65, 422, 423, 424, - 425, 426, 417, 305, 306, 307, 308, 309, 310, 69, - 70, 71, 311, 380, 313, 314, 315, 316, 381, 318, - 319, 427, 428, 429, 393, 354, 320, 75, 76, 430, - 77, 431, -293, -293, -293, -293, 432, 433, 434, 435, - 436, 1, 2, 3, 4, 5, 6, 7, 8, 9, - 10, 11, 12, 320, 437, 438, 439, 440, 441, 442, - 443, 444, 445, 446, 447, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, - 485, 448, 449, 450, 451, 452, 489, 490, 491, 492, - 493, 494, 197, 496, 497, 498, 453, 165, 165, 165, - 165, 165, 165, 165, 165, 165, 165, 46, 305, 306, - 307, 308, 309, 310, 454, 455, 456, 311, 312, 313, - 314, 315, 316, 317, 318, 319, 457, 458, 459, 355, - 460, 320, 461, 65, 462, 463, 464, 465, 466, 526, - 527, 528, 529, 467, 320, 487, 69, 70, 71, 532, - 72, 488, 495, 510, 511, 73, 514, 519, 525, 530, - 533, 198, 534, 543, 75, 76, 538, 77, 540, 542, - 558, 559, 560, 561, 562, 563, 302, 564, 546, 1, - 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 565, 566, 567, 13, 14, 15, 16, 17, 571, - 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, - 28, 576, 29, 30, 31, 32, 33, 577, 578, 303, - 295, 0, 0, 0, 0, 0, 34, 35, 36, 37, - 0, 0, 38, 39, 40, 0, 41, 0, 42, 0, - 0, 43, 0, 44, 45, 46, 0, 47, 48, 49, - 50, 51, 0, 0, 52, 53, 54, 55, 56, 57, - 58, 59, 0, 0, 60, 61, 0, 62, 0, 63, - 64, 65, 66, 67, 0, 68, 0, 0, 0, 0, - 0, 0, 0, 0, 69, 70, 71, 0, 72, 0, - 0, 0, 0, 73, 0, 0, 0, 0, 0, 74, - 0, 0, 75, 76, 0, 77, 1, 2, 3, 4, - 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, - 0, 13, 14, 15, 16, 17, 0, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 0, 29, - 30, 31, 32, 33, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 34, 35, 36, 37, 0, 0, 38, - 39, 40, 0, 41, 0, 42, 0, 0, 43, 0, - 44, 45, 46, 0, 47, 48, 49, 50, 51, 0, - 0, 52, 53, 54, 55, 56, 57, 58, 59, 0, - 0, 60, 61, 0, 62, 0, 63, 64, 65, 66, - 67, 0, 68, 0, 0, 0, 0, 0, 0, 0, - 0, 69, 70, 71, 0, 72, 0, 0, 0, 0, - 73, 0, 0, 0, 0, 0, 74, 0, 0, 75, - 76, 0, 77, 1, 2, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, - 9, 10, 11, 12, 0, 176, 0, 305, 306, 307, - 308, 309, 310, 0, 0, 0, 0, 177, 0, 0, - 0, 0, 317, 318, 319, 178, 0, 0, 0, 46, - 320, 0, 179, 180, 181, 182, 183, 184, 0, 185, - 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 65, 0, 0, 46, 0, - 0, 0, 305, 306, 307, 308, 309, 310, 69, 70, - 71, 311, 380, 313, 314, 315, 316, 381, 318, 319, - 186, 0, 0, 531, 65, 320, 75, 76, 0, 77, - 187, 305, 306, 307, 308, 309, 310, 69, 70, 71, - 311, 380, 313, 314, 315, 316, 381, 318, 319, 46, - 0, 0, 537, 0, 320, 75, 76, 0, 77, 1, - 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 0, 0, 0, 0, 65, 0, 0, 0, 0, - 0, 0, 305, 306, 307, 308, 309, 310, 69, 70, - 71, 311, 380, 313, 314, 315, 316, 381, 318, 319, - 0, 0, 0, 539, 0, 320, 75, 76, 0, 77, + 133, 340, 517, 341, 342, 222, 223, 368, 369, 370, + 137, 248, 140, 376, 136, 150, 151, 167, 175, 241, + 171, 174, 134, 233, 141, 142, 143, 144, 145, 6, + 7, 8, 9, 10, 11, 353, 374, 201, 234, 525, + 204, 527, 229, 208, 214, 176, 377, 217, 218, 215, + 242, 206, 207, 225, 226, 231, 328, 388, 138, 190, + 240, 177, 418, 219, 220, 251, 249, 252, 378, 300, + 230, 243, 191, 301, 302, 235, 303, 304, 305, 133, + 146, 216, 246, 232, 329, 389, 139, 419, 147, 202, + 192, 375, 236, 237, 526, 193, 528, 194, 195, 196, + 197, 198, 336, 203, 244, 205, 247, 518, 224, 324, + 227, 228, 307, 250, 1, 2, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 245, 135, 308, 238, + 360, 148, 149, 327, 325, 330, 331, 332, 382, 333, + 354, 311, 312, 313, 314, 324, 361, 1, 2, 3, + 4, 5, 6, 7, 8, 9, 10, 11, 12, 423, + 334, 167, 324, 167, 167, 394, 335, 337, 338, 515, + 339, 396, 357, 362, 363, -296, -296, -296, -296, 364, + 169, 505, 506, 507, 508, 509, 510, 511, 512, 513, + 514, 520, 365, 521, 522, 523, 324, 371, 372, 380, + 373, 387, 390, 383, 386, 395, 399, 66, 400, 393, + 403, 404, 405, 46, 398, 408, 343, 344, 402, 409, + 70, 71, 72, 410, 73, 345, 346, 347, 348, 74, + 412, 349, 350, 351, 411, 170, 413, 414, 76, 77, + 66, 78, 504, 416, 417, 420, 422, 309, 310, 311, + 312, 313, 314, 70, 71, 72, 315, 384, 317, 318, + 319, 320, 385, 322, 323, 424, 343, 344, 397, 355, + 324, 76, 77, 427, 78, 345, 346, 347, 348, 428, + 429, 349, 350, 351, 430, 431, 432, 516, 433, 352, + 434, 435, 436, 437, 438, 1, 2, 3, 4, 5, + 6, 7, 8, 9, 10, 11, 12, 439, 440, 475, + 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 488, 489, 490, 441, 442, 443, 444, 445, + 494, 495, 496, 497, 498, 499, 446, 501, 502, 503, + 447, 167, 167, 167, 167, 167, 167, 167, 167, 167, + 167, 448, 449, 309, 310, 311, 312, 313, 314, 450, + 451, 46, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 452, 453, 454, 356, 455, 324, 456, 457, 343, + 344, 458, 459, 531, 532, 533, 534, 460, 66, 461, + 462, 463, 464, 537, 349, 350, 351, 465, 466, 467, + 519, 70, 71, 72, 468, 73, 469, 470, 471, 472, + 172, 543, 492, 545, 547, 493, 173, 500, 524, 76, + 77, 306, 78, 551, 1, 2, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 530, 535, 538, 13, + 14, 15, 16, 17, 539, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 548, 29, 30, 31, + 32, 33, 563, 564, 565, 566, 567, 568, 569, 570, + 571, 34, 35, 36, 37, 572, 576, 38, 39, 40, + 581, 41, 582, 42, 583, 299, 43, 0, 44, 45, + 46, 0, 47, 48, 49, 50, 51, 0, 0, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 0, 0, + 61, 62, 0, 63, 0, 64, 65, 66, 67, 68, + 0, 69, 0, 0, 0, 0, 0, 0, 0, 0, + 70, 71, 72, 0, 73, 0, 0, 0, 0, 74, + 0, 0, 0, 0, 0, 75, 0, 0, 76, 77, + 0, 78, 1, 2, 3, 4, 5, 6, 7, 8, + 9, 10, 11, 12, 0, 0, 0, 13, 14, 15, + 16, 17, 0, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 0, 29, 30, 31, 32, 33, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, + 35, 36, 37, 0, 0, 38, 39, 40, 0, 41, + 0, 42, 0, 0, 43, 0, 44, 45, 46, 0, + 47, 48, 49, 50, 51, 0, 0, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 0, 358, 61, 62, + 0, 63, 0, 64, 65, 66, 67, 68, 0, 69, + 0, 0, 0, 0, 0, 561, 0, 0, 70, 71, + 72, 0, 73, 0, 0, 0, 0, 74, 0, 0, + 0, 0, 0, 75, 0, 0, 76, 77, 0, 78, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 0, 0, 0, 46, 305, 306, 307, 308, - 309, 310, 0, 0, 0, 311, 312, 313, 314, 315, - 316, 317, 318, 319, 0, 0, 0, 0, 0, 320, - 0, 65, 469, 0, 0, 0, 0, 0, 305, 306, - 307, 308, 309, 310, 69, 70, 71, 311, 380, 313, - 314, 315, 316, 381, 318, 319, 46, 0, 0, 541, - 0, 320, 75, 76, 0, 77, 1, 2, 3, 4, - 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, - 0, 0, 65, 0, 0, 0, 0, 0, 0, 305, - 306, 307, 308, 309, 310, 69, 70, 71, 311, 380, - 313, 314, 315, 316, 381, 318, 319, 0, 0, 0, - 339, 340, 320, 75, 76, 0, 77, 0, 207, 341, - 342, 343, 344, 0, 0, 345, 346, 347, 0, 208, - 0, 0, 46, 0, 0, 0, 499, 0, 0, 209, - 210, 1, 2, 3, 4, 5, 6, 7, 8, 9, - 10, 11, 12, 339, 340, 0, 0, 0, 65, 0, - 0, 0, 341, 342, 343, 344, 0, 0, 345, 346, - 347, 69, 70, 71, 0, 72, 348, 0, 0, 0, - 73, 0, 0, 0, 0, 0, 211, 0, 0, 75, - 76, 0, 77, 1, 2, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 0, 0, 167, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, - 5, 6, 7, 8, 9, 10, 11, 12, 0, 0, - 0, 0, 0, 65, 0, 0, 0, -292, -292, -292, - -292, -292, -292, 0, 0, 0, 69, 70, 71, 0, - 72, 0, -292, -292, -292, 73, 0, 0, 0, 46, - 320, 168, 0, 0, 75, 76, 0, 77, 1, 2, - 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 0, 0, 46, 0, 0, 65, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 69, 70, - 71, 0, 72, 0, 0, 0, 0, 170, 65, 0, - 0, 0, 0, 171, 0, 0, 75, 76, 0, 77, - 0, 69, 70, 71, 0, 72, 0, 0, 0, 0, - 73, 0, 0, 0, 46, 0, 235, 0, 0, 75, - 76, 0, 77, 1, 2, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 0, 0, 0, 0, 0, - 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 69, 70, 71, 0, 72, 0, 0, - 0, 0, 73, 0, 0, 0, 0, 0, 375, 0, - 0, 75, 76, 0, 77, 1, 2, 3, 4, 5, - 6, 7, 8, 9, 10, 11, 12, 0, 0, 46, + 11, 12, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, + 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, + 12, 309, 310, 311, 312, 313, 314, 0, 0, 0, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 343, + 344, 0, 359, 0, 324, 0, 46, 0, 345, 346, + 347, 348, 0, 0, 349, 350, 351, 0, 0, 0, + 562, 1, 2, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 66, 0, 46, 0, 0, 0, 0, + 309, 310, 311, 312, 313, 314, 70, 71, 72, 315, + 384, 317, 318, 319, 320, 385, 322, 323, 0, 0, + 0, 536, 66, 324, 76, 77, 0, 78, 0, 309, + 310, 311, 312, 313, 314, 70, 71, 72, 315, 384, + 317, 318, 319, 320, 385, 322, 323, 46, 0, 0, + 542, 0, 324, 76, 77, 0, 78, 1, 2, 3, + 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, + 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, + 0, 309, 310, 311, 312, 313, 314, 70, 71, 72, + 315, 384, 317, 318, 319, 320, 385, 322, 323, 0, + 0, 0, 544, 0, 324, 76, 77, 0, 78, 1, + 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, + 12, 0, 0, 46, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 0, 0, 0, 0, + 66, 0, 0, 0, 0, 0, 0, 309, 310, 311, + 312, 313, 314, 70, 71, 72, 315, 384, 317, 318, + 319, 320, 385, 322, 323, 46, 0, 0, 546, 0, + 324, 76, 77, 0, 78, 0, 209, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 210, 0, 0, + 46, 0, 66, 0, 0, 0, 0, 211, 212, 309, + 310, 311, 312, 313, 314, 70, 71, 72, 315, 384, + 317, 318, 319, 320, 385, 322, 323, 66, 0, 0, + 0, 0, 324, 76, 77, 0, 78, 0, 0, 0, + 70, 71, 72, 0, 73, 0, 0, 0, 0, 74, + 0, 0, 0, 0, 0, 213, 0, 0, 76, 77, + 0, 78, 1, 2, 3, 4, 5, 6, 7, 8, + 9, 10, 11, 12, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, + 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 199, 1, 2, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 0, 0, 46, 0, + 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, + 4, 5, 6, 7, 8, 9, 10, 11, 12, 0, + 0, 46, 0, 0, 0, 66, 0, 0, 309, 310, + 311, 312, 313, 314, 0, 0, 0, 0, 70, 71, + 72, 0, 73, 321, 322, 323, 0, 74, 66, 0, + 46, 324, 0, 200, 0, 0, 76, 77, 0, 78, + 0, 70, 71, 72, 0, 73, 0, 0, 0, 0, + 74, 0, 0, 46, 0, 0, 239, 66, 0, 76, + 77, 0, 78, 0, 0, 0, 0, 0, 0, 0, + 70, 71, 72, 0, 73, 0, 0, 0, 0, 74, + 66, 0, 0, 0, 0, 379, 0, 0, 76, 77, + 0, 78, 0, 70, 71, 72, 0, 73, 0, 0, + 0, 0, 74, 0, 0, 0, 0, 0, 392, 0, + 0, 76, 77, 0, 78, 1, 2, 3, 4, 5, + 6, 7, 8, 9, 10, 11, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 69, 70, - 71, 0, 72, 0, 0, 0, 0, 73, 0, 0, - 0, 46, 0, 388, 0, 0, 75, 76, 0, 77, - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 0, 0, 46, 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 69, 70, 71, 0, 72, 0, 0, 0, 0, 73, - 65, 0, 0, 0, 0, 416, 0, 0, 75, 76, - 0, 77, 0, 69, 70, 71, 0, 72, 0, 0, - 0, 0, 73, 0, 0, 0, 46, 0, 545, 0, - 0, 75, 76, 0, 77, 150, 151, 152, 153, 154, - 6, 7, 8, 9, 10, 11, 155, 0, 0, 0, - 0, 0, 65, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 69, 70, 71, 0, 72, - 0, 0, 0, 0, 73, 0, 0, 0, 0, 0, - 0, 0, 0, 75, 76, 0, 77, 150, 151, 152, - 153, 154, 6, 7, 8, 9, 10, 11, 155, 0, - 0, 156, 305, 306, 307, 308, 309, 310, 0, 0, - 0, 311, 312, 313, 314, 315, 316, 317, 318, 319, - 0, 0, 0, 322, 0, 320, 0, 157, 0, 0, + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 0, 0, 0, 0, 0, 0, 0, + 0, 46, 0, 0, 152, 153, 154, 155, 156, 6, + 7, 8, 9, 10, 11, 157, 0, 0, 0, 0, + 0, 0, 0, 0, 46, 0, 0, 0, 66, 152, + 153, 154, 155, 156, 6, 7, 8, 9, 10, 11, + 157, 70, 71, 72, 0, 73, 0, 46, 0, 0, + 74, 66, 0, 0, 0, 0, 421, 0, 0, 76, + 77, 0, 78, 0, 70, 71, 72, 0, 73, 0, + 158, 0, 0, 74, 66, 0, 0, 0, 0, 550, + 0, 0, 76, 77, 0, 78, 0, 70, 71, 72, + 0, 73, 0, 0, 0, 158, 74, 159, 0, 0, + 0, 0, 0, 0, 0, 76, 77, 0, 78, 0, + 160, 161, 162, 0, 163, -295, -295, -295, -295, -295, + -295, 0, 159, 0, 0, 164, 0, 0, 165, 166, + -295, -295, -295, 0, 0, 160, 161, 162, 324, 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 158, 159, 160, 0, 161, 0, 0, 0, 0, 0, - 0, 0, 0, 156, 0, 162, 0, 0, 163, 164, - 305, 306, 307, 308, 309, 310, 0, 0, 0, 311, - 312, 313, 314, 315, 316, 317, 318, 319, 0, 157, - 0, 377, 0, 320, 0, 0, 0, 0, 0, 0, - 0, 0, 158, 159, 160, 0, 161, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 163, 164, 249, 0, 250, 251, 252, 0, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 27, 28, 0, - 262, 263, 264, 265, 266, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 267, 268, 269, 270, 0, 0, - 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, - 0, 274, 275, 0, 0, 0, 276, 277, 278, 279, - 0, 0, 280, 281, 282, 283, 284, 285, 286, 287, - 0, 0, 288, 289, 0, 290, 0, 0, 0, 0, - 291, 292, 0, 293, 0, 305, 306, 307, 308, 309, - 310, 0, 0, 0, 311, 312, 313, 314, 315, 316, - 317, 318, 319, 0, 0, 0, 387, 294, 320, 305, - 306, 307, 308, 309, 310, 0, 0, 0, 311, 312, - 313, 314, 315, 316, 317, 318, 319, 0, 0, 0, - 397, 0, 320, 305, 306, 307, 308, 309, 310, 0, - 0, 0, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 0, 0, 0, 402, 0, 320, 305, 306, 307, - 308, 309, 310, 0, 0, 0, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 0, 0, 0, 403, 0, - 320, 305, 306, 307, 308, 309, 310, 0, 0, 0, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, - 0, 0, 410, 0, 320, 305, 306, 307, 308, 309, - 310, 0, 0, 0, 311, 312, 313, 314, 315, 316, - 317, 318, 319, 0, 0, 0, 420, 0, 320, 305, - 306, 307, 308, 309, 310, 0, 0, 0, 311, 312, - 313, 314, 315, 316, 317, 318, 319, 0, 0, 0, - 421, 0, 320, 305, 306, 307, 308, 309, 310, 0, - 0, 0, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 0, 0, 0, 468, 0, 320, 305, 306, 307, - 308, 309, 310, 0, 0, 0, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 0, 0, 0, 486, 0, - 320, 305, 306, 307, 308, 309, 310, 0, 0, 0, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, - 0, 0, 524, 0, 320, 305, 306, 307, 308, 309, - 310, 0, 0, 0, 311, 312, 313, 314, 315, 316, - 317, 318, 319, 0, 0, 0, 535, 0, 320, 305, - 306, 307, 308, 309, 310, 0, 0, 0, 311, 312, - 313, 314, 315, 316, 317, 318, 319, 0, 0, 0, - 536, 0, 320, 305, 306, 307, 308, 309, 310, 0, - 0, 0, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 0, 0, 0, 544, 0, 320, 305, 306, 307, - 308, 309, 310, 0, 0, 0, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 0, 0, 0, 547, 0, - 320, 305, 306, 307, 308, 309, 310, 0, 0, 0, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, - 0, 0, 548, 0, 320, 305, 306, 307, 308, 309, - 310, 0, 0, 0, 311, 312, 313, 314, 315, 316, - 317, 318, 319, 0, 0, 0, 549, 0, 320, 305, - 306, 307, 308, 309, 310, 0, 0, 0, 311, 312, - 313, 314, 315, 316, 317, 318, 319, 0, 0, 0, - 550, 0, 320, 305, 306, 307, 308, 309, 310, 0, - 0, 0, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 0, 0, 0, 551, 0, 320, 305, 306, 307, - 308, 309, 310, 0, 0, 0, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 0, 0, 0, 552, 0, - 320, 305, 306, 307, 308, 309, 310, 0, 0, 0, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, - 0, 0, 553, 0, 320, 305, 306, 307, 308, 309, - 310, 0, 0, 0, 311, 312, 313, 314, 315, 316, - 317, 318, 319, 0, 0, 0, 554, 0, 320, 305, - 306, 307, 308, 309, 310, 0, 0, 0, 311, 312, - 313, 314, 315, 316, 317, 318, 319, 0, 0, 0, - 555, 0, 320, 305, 306, 307, 308, 309, 310, 0, - 0, 0, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 0, 0, 0, 568, 0, 320, 305, 306, 307, - 308, 309, 310, 0, 0, 0, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 0, 0, 0, 569, 0, - 320, 305, 306, 307, 308, 309, 310, 0, 0, 0, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, - 0, 0, 570, 0, 320, 305, 306, 307, 308, 309, - 310, 0, 0, 0, 311, 312, 313, 314, 315, 316, - 317, 318, 319, 0, 0, 0, 572, 0, 320, 305, - 306, 307, 308, 309, 310, 0, 0, 0, 311, 312, - 313, 314, 315, 316, 317, 318, 319, 0, 0, 0, - 573, 0, 320, 305, 306, 307, 308, 309, 310, 0, - 0, 0, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 0, 0, 0, 574, 0, 320, 305, 306, 307, - 308, 309, 310, 0, 0, 0, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 0, 0, 0, 575, 0, - 320, 305, 306, 307, 308, 309, 310, 0, 0, 0, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, - 0, 0, 0, 0, 320 + 0, 0, 0, 165, 166, 253, 0, 254, 255, 256, + 0, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 27, 28, 0, 266, 267, 268, 269, 270, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 271, 272, 273, + 274, 0, 0, 275, 276, 277, 0, 0, 0, 0, + 0, 0, 0, 0, 278, 279, 0, 0, 0, 280, + 281, 282, 283, 178, 0, 284, 285, 286, 287, 288, + 289, 0, 290, 291, 0, 179, 292, 293, 0, 294, + 0, 0, 0, 180, 295, 296, 0, 297, 0, 0, + 181, 182, 183, 184, 185, 186, 0, 187, 0, 0, + 0, 0, 0, 309, 310, 311, 312, 313, 314, 0, + 0, 298, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 0, 0, 0, 0, 0, 324, 0, 0, 474, + 0, 309, 310, 311, 312, 313, 314, 0, 0, 188, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 189, + 0, 0, 326, 0, 324, 309, 310, 311, 312, 313, + 314, 0, 0, 0, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 0, 0, 0, 381, 0, 324, 309, + 310, 311, 312, 313, 314, 0, 0, 0, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 0, 0, 0, + 391, 0, 324, 309, 310, 311, 312, 313, 314, 0, + 0, 0, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 0, 0, 0, 401, 0, 324, 309, 310, 311, + 312, 313, 314, 0, 0, 0, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 0, 0, 0, 406, 0, + 324, 309, 310, 311, 312, 313, 314, 0, 0, 0, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 0, + 0, 0, 407, 0, 324, 309, 310, 311, 312, 313, + 314, 0, 0, 0, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 0, 0, 0, 415, 0, 324, 309, + 310, 311, 312, 313, 314, 0, 0, 0, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 0, 0, 0, + 425, 0, 324, 309, 310, 311, 312, 313, 314, 0, + 0, 0, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 0, 0, 0, 426, 0, 324, 309, 310, 311, + 312, 313, 314, 0, 0, 0, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 0, 0, 0, 473, 0, + 324, 309, 310, 311, 312, 313, 314, 0, 0, 0, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 0, + 0, 0, 491, 0, 324, 309, 310, 311, 312, 313, + 314, 0, 0, 0, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 0, 0, 0, 529, 0, 324, 309, + 310, 311, 312, 313, 314, 0, 0, 0, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 0, 0, 0, + 540, 0, 324, 309, 310, 311, 312, 313, 314, 0, + 0, 0, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 0, 0, 0, 541, 0, 324, 309, 310, 311, + 312, 313, 314, 0, 0, 0, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 0, 0, 0, 549, 0, + 324, 309, 310, 311, 312, 313, 314, 0, 0, 0, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 0, + 0, 0, 552, 0, 324, 309, 310, 311, 312, 313, + 314, 0, 0, 0, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 0, 0, 0, 553, 0, 324, 309, + 310, 311, 312, 313, 314, 0, 0, 0, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 0, 0, 0, + 554, 0, 324, 309, 310, 311, 312, 313, 314, 0, + 0, 0, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 0, 0, 0, 555, 0, 324, 309, 310, 311, + 312, 313, 314, 0, 0, 0, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 0, 0, 0, 556, 0, + 324, 309, 310, 311, 312, 313, 314, 0, 0, 0, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 0, + 0, 0, 557, 0, 324, 309, 310, 311, 312, 313, + 314, 0, 0, 0, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 0, 0, 0, 558, 0, 324, 309, + 310, 311, 312, 313, 314, 0, 0, 0, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 0, 0, 0, + 559, 0, 324, 309, 310, 311, 312, 313, 314, 0, + 0, 0, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 0, 0, 0, 560, 0, 324, 309, 310, 311, + 312, 313, 314, 0, 0, 0, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 0, 0, 0, 573, 0, + 324, 309, 310, 311, 312, 313, 314, 0, 0, 0, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 0, + 0, 0, 574, 0, 324, 309, 310, 311, 312, 313, + 314, 0, 0, 0, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 0, 0, 0, 575, 0, 324, 309, + 310, 311, 312, 313, 314, 0, 0, 0, 315, 316, + 317, 318, 319, 320, 321, 322, 323, 0, 0, 0, + 577, 0, 324, 309, 310, 311, 312, 313, 314, 0, + 0, 0, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 0, 0, 0, 578, 0, 324, 309, 310, 311, + 312, 313, 314, 0, 0, 0, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 0, 0, 0, 579, 0, + 324, 309, 310, 311, 312, 313, 314, 0, 0, 0, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 0, + 0, 0, 580, 0, 324, 309, 310, 311, 312, 313, + 314, 0, 0, 0, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 0, 0, 0, 0, 0, 324 }; static const yytype_int16 yycheck[] = { - 0, 161, 69, 163, 164, 50, 51, 180, 181, 182, - 19, 19, 123, 48, 14, 17, 19, 19, 19, 70, - 20, 21, 123, 3, 4, 5, 6, 7, 8, 9, - 10, 11, 12, 13, 17, 69, 69, 37, 69, 69, - 40, 95, 95, 43, 44, 69, 95, 47, 48, 95, - 101, 95, 95, 53, 54, 123, 123, 123, 98, 59, - 95, 123, 92, 123, 64, 48, 66, 18, 68, 123, - 101, 123, 72, 73, 123, 75, 76, 77, 78, 59, - 123, 123, 33, 123, 63, 64, 69, 67, 123, 123, - 123, 123, 123, 102, 103, 104, 105, 106, 107, 123, - 145, 123, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 102, 103, 123, 123, 123, 125, 125, 101, 70, - 123, 69, 123, 16, 17, 19, 117, 118, 119, 109, - 110, 69, 132, 61, 123, 86, 87, 123, 123, 123, - 123, 123, 95, 124, 3, 4, 5, 6, 7, 8, - 9, 10, 11, 12, 13, 14, 124, 124, 124, 161, - 124, 163, 164, 208, 124, 124, 124, 124, 123, 123, - 170, 123, 123, 104, 105, 106, 107, 123, 123, 339, - 340, 341, 342, 343, 344, 345, 346, 347, 348, 362, - 123, 364, 365, 366, 125, 69, 123, 197, 123, 123, - 123, 201, 202, 123, 123, 69, 124, 207, 102, 103, - 69, 123, 212, 123, 123, 123, 216, 111, 112, 113, - 114, 123, 123, 117, 118, 119, 123, 123, 123, 123, - 230, 123, 232, 233, 123, 123, 95, 123, 123, 123, - 123, 123, 242, 102, 103, 104, 105, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 123, 123, 123, 123, 19, 125, 126, 127, 123, - 129, 123, 104, 105, 106, 107, 123, 123, 123, 123, - 123, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 14, 125, 123, 123, 123, 123, 123, 123, - 123, 123, 123, 123, 123, 305, 306, 307, 308, 309, + 0, 163, 19, 165, 166, 50, 51, 182, 183, 184, + 48, 69, 124, 69, 14, 17, 124, 19, 96, 17, + 20, 21, 19, 18, 3, 4, 5, 6, 7, 8, + 9, 10, 11, 12, 13, 19, 69, 37, 33, 69, + 40, 69, 96, 43, 44, 96, 102, 47, 48, 70, + 48, 63, 64, 53, 54, 96, 96, 96, 96, 124, + 60, 96, 99, 16, 17, 65, 124, 67, 124, 69, + 124, 69, 124, 73, 74, 70, 76, 77, 78, 79, + 59, 102, 69, 124, 124, 124, 124, 124, 67, 69, + 124, 124, 87, 88, 124, 124, 124, 124, 124, 124, + 124, 124, 147, 69, 102, 61, 93, 124, 124, 126, + 124, 124, 79, 124, 3, 4, 5, 6, 7, 8, + 9, 10, 11, 12, 13, 14, 124, 124, 124, 124, + 124, 110, 111, 96, 134, 125, 125, 125, 69, 125, + 124, 105, 106, 107, 108, 126, 124, 3, 4, 5, + 6, 7, 8, 9, 10, 11, 12, 13, 14, 69, + 125, 163, 126, 165, 166, 210, 125, 125, 125, 69, + 125, 125, 172, 124, 124, 105, 106, 107, 108, 124, + 69, 343, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 366, 124, 368, 369, 370, 126, 124, 124, 199, + 124, 124, 124, 203, 204, 124, 124, 96, 124, 209, + 124, 124, 124, 69, 214, 124, 103, 104, 218, 124, + 109, 110, 111, 124, 113, 112, 113, 114, 115, 118, + 124, 118, 119, 120, 234, 124, 236, 237, 127, 128, + 96, 130, 129, 124, 124, 124, 246, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 124, 103, 104, 124, 19, + 126, 127, 128, 124, 130, 112, 113, 114, 115, 124, + 124, 118, 119, 120, 124, 124, 124, 69, 124, 126, + 124, 124, 124, 124, 124, 3, 4, 5, 6, 7, + 8, 9, 10, 11, 12, 13, 14, 124, 124, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, - 320, 123, 123, 123, 123, 123, 326, 327, 328, 329, - 330, 331, 54, 333, 334, 335, 123, 339, 340, 341, - 342, 343, 344, 345, 346, 347, 348, 69, 102, 103, - 104, 105, 106, 107, 123, 123, 123, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 123, 123, 123, 123, - 123, 125, 123, 95, 123, 123, 123, 123, 123, 379, - 380, 381, 382, 123, 125, 123, 108, 109, 110, 389, - 112, 123, 123, 69, 69, 117, 69, 123, 123, 123, - 123, 123, 95, 123, 126, 127, 406, 129, 408, 409, - 123, 123, 69, 123, 123, 123, 0, 123, 418, 3, - 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - 14, 123, 123, 123, 18, 19, 20, 21, 22, 123, - 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, - 34, 69, 36, 37, 38, 39, 40, 123, 123, 78, - 67, -1, -1, -1, -1, -1, 50, 51, 52, 53, - -1, -1, 56, 57, 58, -1, 60, -1, 62, -1, - -1, 65, -1, 67, 68, 69, -1, 71, 72, 73, - 74, 75, -1, -1, 78, 79, 80, 81, 82, 83, - 84, 85, -1, -1, 88, 89, -1, 91, -1, 93, - 94, 95, 96, 97, -1, 99, -1, -1, -1, -1, - -1, -1, -1, -1, 108, 109, 110, -1, 112, -1, - -1, -1, -1, 117, -1, -1, -1, -1, -1, 123, - -1, -1, 126, 127, -1, 129, 3, 4, 5, 6, - 7, 8, 9, 10, 11, 12, 13, 14, -1, -1, - -1, 18, 19, 20, 21, 22, -1, 24, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 34, -1, 36, - 37, 38, 39, 40, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 50, 51, 52, 53, -1, -1, 56, - 57, 58, -1, 60, -1, 62, -1, -1, 65, -1, - 67, 68, 69, -1, 71, 72, 73, 74, 75, -1, - -1, 78, 79, 80, 81, 82, 83, 84, 85, -1, - -1, 88, 89, -1, 91, -1, 93, 94, 95, 96, - 97, -1, 99, -1, -1, -1, -1, -1, -1, -1, - -1, 108, 109, 110, -1, 112, -1, -1, -1, -1, - 117, -1, -1, -1, -1, -1, 123, -1, -1, 126, - 127, -1, 129, 3, 4, 5, 6, 7, 8, 9, - 10, 11, 12, 13, 14, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 13, 14, -1, 15, -1, 102, 103, 104, - 105, 106, 107, -1, -1, -1, -1, 27, -1, -1, - -1, -1, 117, 118, 119, 35, -1, -1, -1, 69, - 125, -1, 42, 43, 44, 45, 46, 47, -1, 49, - -1, -1, -1, 3, 4, 5, 6, 7, 8, 9, - 10, 11, 12, 13, 14, 95, -1, -1, 69, -1, - -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 90, -1, -1, 123, 95, 125, 126, 127, -1, 129, - 100, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 69, - -1, -1, 123, -1, 125, 126, 127, -1, 129, 3, - 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - 14, -1, -1, -1, -1, 95, -1, -1, -1, -1, - -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - -1, -1, -1, 123, -1, 125, 126, 127, -1, 129, + 320, 321, 322, 323, 324, 124, 124, 124, 124, 124, + 330, 331, 332, 333, 334, 335, 124, 337, 338, 339, + 124, 343, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 124, 124, 103, 104, 105, 106, 107, 108, 124, + 124, 69, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 124, 124, 124, 124, 124, 126, 124, 124, 103, + 104, 124, 124, 383, 384, 385, 386, 124, 96, 124, + 124, 124, 124, 393, 118, 119, 120, 124, 124, 124, + 69, 109, 110, 111, 124, 113, 124, 124, 124, 124, + 118, 411, 124, 413, 414, 124, 124, 124, 124, 127, + 128, 0, 130, 423, 3, 4, 5, 6, 7, 8, + 9, 10, 11, 12, 13, 14, 124, 124, 124, 18, + 19, 20, 21, 22, 96, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 124, 36, 37, 38, + 39, 40, 124, 124, 69, 124, 124, 124, 124, 124, + 124, 50, 51, 52, 53, 124, 124, 56, 57, 58, + 69, 60, 124, 62, 124, 68, 65, -1, 67, 68, + 69, -1, 71, 72, 73, 74, 75, -1, -1, 78, + 79, 80, 81, 82, 83, 84, 85, 86, -1, -1, + 89, 90, -1, 92, -1, 94, 95, 96, 97, 98, + -1, 100, -1, -1, -1, -1, -1, -1, -1, -1, + 109, 110, 111, -1, 113, -1, -1, -1, -1, 118, + -1, -1, -1, -1, -1, 124, -1, -1, 127, 128, + -1, 130, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, -1, -1, -1, 18, 19, 20, + 21, 22, -1, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, -1, 36, 37, 38, 39, 40, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 50, + 51, 52, 53, -1, -1, 56, 57, 58, -1, 60, + -1, 62, -1, -1, 65, -1, 67, 68, 69, -1, + 71, 72, 73, 74, 75, -1, -1, 78, 79, 80, + 81, 82, 83, 84, 85, 86, -1, 19, 89, 90, + -1, 92, -1, 94, 95, 96, 97, 98, -1, 100, + -1, -1, -1, -1, -1, 19, -1, -1, 109, 110, + 111, -1, 113, -1, -1, -1, -1, 118, -1, -1, + -1, -1, -1, 124, -1, -1, 127, 128, -1, 130, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 14, -1, -1, -1, 69, 102, 103, 104, 105, - 106, 107, -1, -1, -1, 111, 112, 113, 114, 115, - 116, 117, 118, 119, -1, -1, -1, -1, -1, 125, - -1, 95, 128, -1, -1, -1, -1, -1, 102, 103, - 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 69, -1, -1, 123, - -1, 125, 126, 127, -1, 129, 3, 4, 5, 6, - 7, 8, 9, 10, 11, 12, 13, 14, -1, -1, - -1, -1, 95, -1, -1, -1, -1, -1, -1, 102, + 13, 14, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, + 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + 14, 103, 104, 105, 106, 107, 108, -1, -1, -1, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 103, + 104, -1, 124, -1, 126, -1, 69, -1, 112, 113, + 114, 115, -1, -1, 118, 119, 120, -1, -1, -1, + 124, 3, 4, 5, 6, 7, 8, 9, 10, 11, + 12, 13, 14, 96, -1, 69, -1, -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, -1, -1, -1, - 102, 103, 125, 126, 127, -1, 129, -1, 55, 111, - 112, 113, 114, -1, -1, 117, 118, 119, -1, 66, - -1, -1, 69, -1, -1, -1, 128, -1, -1, 76, - 77, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 14, 102, 103, -1, -1, -1, 95, -1, - -1, -1, 111, 112, 113, 114, -1, -1, 117, 118, - 119, 108, 109, 110, -1, 112, 125, -1, -1, -1, - 117, -1, -1, -1, -1, -1, 123, -1, -1, 126, - 127, -1, 129, 3, 4, 5, 6, 7, 8, 9, - 10, 11, 12, 13, 14, -1, -1, 69, -1, -1, - -1, -1, -1, -1, -1, -1, 3, 4, 5, 6, - 7, 8, 9, 10, 11, 12, 13, 14, -1, -1, - -1, -1, -1, 95, -1, -1, -1, 102, 103, 104, - 105, 106, 107, -1, -1, -1, 108, 109, 110, -1, - 112, -1, 117, 118, 119, 117, -1, -1, -1, 69, - 125, 123, -1, -1, 126, 127, -1, 129, 3, 4, - 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, - -1, -1, 69, -1, -1, 95, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 108, 109, - 110, -1, 112, -1, -1, -1, -1, 117, 95, -1, - -1, -1, -1, 123, -1, -1, 126, 127, -1, 129, - -1, 108, 109, 110, -1, 112, -1, -1, -1, -1, - 117, -1, -1, -1, 69, -1, 123, -1, -1, 126, - 127, -1, 129, 3, 4, 5, 6, 7, 8, 9, - 10, 11, 12, 13, 14, -1, -1, -1, -1, -1, - 95, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 108, 109, 110, -1, 112, -1, -1, - -1, -1, 117, -1, -1, -1, -1, -1, 123, -1, - -1, 126, 127, -1, 129, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 13, 14, -1, -1, 69, + 113, 114, 115, 116, 117, 118, 119, 120, -1, -1, + -1, 124, 96, 126, 127, 128, -1, 130, -1, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 69, -1, -1, + 124, -1, 126, 127, 128, -1, 130, 3, 4, 5, + 6, 7, 8, 9, 10, 11, 12, 13, 14, -1, + -1, -1, -1, -1, 96, -1, -1, -1, -1, -1, + -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, + -1, -1, 124, -1, 126, 127, 128, -1, 130, 3, + 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + 14, -1, -1, 69, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 3, 4, 5, 6, 7, 8, + 9, 10, 11, 12, 13, 14, -1, -1, -1, -1, + 96, -1, -1, -1, -1, -1, -1, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 69, -1, -1, 124, -1, + 126, 127, 128, -1, 130, -1, 55, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, + 69, -1, 96, -1, -1, -1, -1, 76, 77, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 96, -1, -1, + -1, -1, 126, 127, 128, -1, 130, -1, -1, -1, + 109, 110, 111, -1, 113, -1, -1, -1, -1, 118, + -1, -1, -1, -1, -1, 124, -1, -1, 127, 128, + -1, 130, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 3, 4, 5, 6, 7, + 8, 9, 10, 11, 12, 13, 14, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 54, 3, 4, 5, 6, 7, 8, + 9, 10, 11, 12, 13, 14, -1, -1, 69, -1, + -1, -1, -1, -1, -1, -1, -1, 3, 4, 5, + 6, 7, 8, 9, 10, 11, 12, 13, 14, -1, + -1, 69, -1, -1, -1, 96, -1, -1, 103, 104, + 105, 106, 107, 108, -1, -1, -1, -1, 109, 110, + 111, -1, 113, 118, 119, 120, -1, 118, 96, -1, + 69, 126, -1, 124, -1, -1, 127, 128, -1, 130, + -1, 109, 110, 111, -1, 113, -1, -1, -1, -1, + 118, -1, -1, 69, -1, -1, 124, 96, -1, 127, + 128, -1, 130, -1, -1, -1, -1, -1, -1, -1, + 109, 110, 111, -1, 113, -1, -1, -1, -1, 118, + 96, -1, -1, -1, -1, 124, -1, -1, 127, 128, + -1, 130, -1, 109, 110, 111, -1, 113, -1, -1, + -1, -1, 118, -1, -1, -1, -1, -1, 124, -1, + -1, 127, 128, -1, 130, 3, 4, 5, 6, 7, + 8, 9, 10, 11, 12, 13, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, - -1, -1, -1, -1, -1, 95, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 108, 109, - 110, -1, 112, -1, -1, -1, -1, 117, -1, -1, - -1, 69, -1, 123, -1, -1, 126, 127, -1, 129, - 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 14, -1, -1, 69, -1, -1, 95, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 108, 109, 110, -1, 112, -1, -1, -1, -1, 117, - 95, -1, -1, -1, -1, 123, -1, -1, 126, 127, - -1, 129, -1, 108, 109, 110, -1, 112, -1, -1, - -1, -1, 117, -1, -1, -1, 69, -1, 123, -1, - -1, 126, 127, -1, 129, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 13, 14, -1, -1, -1, - -1, -1, 95, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 108, 109, 110, -1, 112, - -1, -1, -1, -1, 117, -1, -1, -1, -1, -1, - -1, -1, -1, 126, 127, -1, 129, 3, 4, 5, - 6, 7, 8, 9, 10, 11, 12, 13, 14, -1, - -1, 69, 102, 103, 104, 105, 106, 107, -1, -1, - -1, 111, 112, 113, 114, 115, 116, 117, 118, 119, - -1, -1, -1, 123, -1, 125, -1, 95, -1, -1, + -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, + 12, 13, 14, -1, -1, -1, -1, -1, -1, -1, + -1, 69, -1, -1, 3, 4, 5, 6, 7, 8, + 9, 10, 11, 12, 13, 14, -1, -1, -1, -1, + -1, -1, -1, -1, 69, -1, -1, -1, 96, 3, + 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + 14, 109, 110, 111, -1, 113, -1, 69, -1, -1, + 118, 96, -1, -1, -1, -1, 124, -1, -1, 127, + 128, -1, 130, -1, 109, 110, 111, -1, 113, -1, + 69, -1, -1, 118, 96, -1, -1, -1, -1, 124, + -1, -1, 127, 128, -1, 130, -1, 109, 110, 111, + -1, 113, -1, -1, -1, 69, 118, 96, -1, -1, + -1, -1, -1, -1, -1, 127, 128, -1, 130, -1, + 109, 110, 111, -1, 113, 103, 104, 105, 106, 107, + 108, -1, 96, -1, -1, 124, -1, -1, 127, 128, + 118, 119, 120, -1, -1, 109, 110, 111, 126, 113, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 108, 109, 110, -1, 112, -1, -1, -1, -1, -1, - -1, -1, -1, 69, -1, 123, -1, -1, 126, 127, - 102, 103, 104, 105, 106, 107, -1, -1, -1, 111, - 112, 113, 114, 115, 116, 117, 118, 119, -1, 95, - -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, - -1, -1, 108, 109, 110, -1, 112, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 126, 127, 18, -1, 20, 21, 22, -1, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, -1, - 36, 37, 38, 39, 40, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 50, 51, 52, 53, -1, -1, - 56, 57, 58, -1, -1, -1, -1, -1, -1, -1, - -1, 67, 68, -1, -1, -1, 72, 73, 74, 75, - -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, - -1, -1, 88, 89, -1, 91, -1, -1, -1, -1, - 96, 97, -1, 99, -1, 102, 103, 104, 105, 106, - 107, -1, -1, -1, 111, 112, 113, 114, 115, 116, - 117, 118, 119, -1, -1, -1, 123, 123, 125, 102, - 103, 104, 105, 106, 107, -1, -1, -1, 111, 112, - 113, 114, 115, 116, 117, 118, 119, -1, -1, -1, - 123, -1, 125, 102, 103, 104, 105, 106, 107, -1, - -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, - 119, -1, -1, -1, 123, -1, 125, 102, 103, 104, - 105, 106, 107, -1, -1, -1, 111, 112, 113, 114, - 115, 116, 117, 118, 119, -1, -1, -1, 123, -1, - 125, 102, 103, 104, 105, 106, 107, -1, -1, -1, - 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, - -1, -1, 123, -1, 125, 102, 103, 104, 105, 106, - 107, -1, -1, -1, 111, 112, 113, 114, 115, 116, - 117, 118, 119, -1, -1, -1, 123, -1, 125, 102, - 103, 104, 105, 106, 107, -1, -1, -1, 111, 112, - 113, 114, 115, 116, 117, 118, 119, -1, -1, -1, - 123, -1, 125, 102, 103, 104, 105, 106, 107, -1, - -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, - 119, -1, -1, -1, 123, -1, 125, 102, 103, 104, - 105, 106, 107, -1, -1, -1, 111, 112, 113, 114, - 115, 116, 117, 118, 119, -1, -1, -1, 123, -1, - 125, 102, 103, 104, 105, 106, 107, -1, -1, -1, - 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, - -1, -1, 123, -1, 125, 102, 103, 104, 105, 106, - 107, -1, -1, -1, 111, 112, 113, 114, 115, 116, - 117, 118, 119, -1, -1, -1, 123, -1, 125, 102, - 103, 104, 105, 106, 107, -1, -1, -1, 111, 112, - 113, 114, 115, 116, 117, 118, 119, -1, -1, -1, - 123, -1, 125, 102, 103, 104, 105, 106, 107, -1, - -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, - 119, -1, -1, -1, 123, -1, 125, 102, 103, 104, - 105, 106, 107, -1, -1, -1, 111, 112, 113, 114, - 115, 116, 117, 118, 119, -1, -1, -1, 123, -1, - 125, 102, 103, 104, 105, 106, 107, -1, -1, -1, - 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, - -1, -1, 123, -1, 125, 102, 103, 104, 105, 106, - 107, -1, -1, -1, 111, 112, 113, 114, 115, 116, - 117, 118, 119, -1, -1, -1, 123, -1, 125, 102, - 103, 104, 105, 106, 107, -1, -1, -1, 111, 112, - 113, 114, 115, 116, 117, 118, 119, -1, -1, -1, - 123, -1, 125, 102, 103, 104, 105, 106, 107, -1, - -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, - 119, -1, -1, -1, 123, -1, 125, 102, 103, 104, - 105, 106, 107, -1, -1, -1, 111, 112, 113, 114, - 115, 116, 117, 118, 119, -1, -1, -1, 123, -1, - 125, 102, 103, 104, 105, 106, 107, -1, -1, -1, - 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, - -1, -1, 123, -1, 125, 102, 103, 104, 105, 106, - 107, -1, -1, -1, 111, 112, 113, 114, 115, 116, - 117, 118, 119, -1, -1, -1, 123, -1, 125, 102, - 103, 104, 105, 106, 107, -1, -1, -1, 111, 112, - 113, 114, 115, 116, 117, 118, 119, -1, -1, -1, - 123, -1, 125, 102, 103, 104, 105, 106, 107, -1, - -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, - 119, -1, -1, -1, 123, -1, 125, 102, 103, 104, - 105, 106, 107, -1, -1, -1, 111, 112, 113, 114, - 115, 116, 117, 118, 119, -1, -1, -1, 123, -1, - 125, 102, 103, 104, 105, 106, 107, -1, -1, -1, - 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, - -1, -1, 123, -1, 125, 102, 103, 104, 105, 106, - 107, -1, -1, -1, 111, 112, 113, 114, 115, 116, - 117, 118, 119, -1, -1, -1, 123, -1, 125, 102, - 103, 104, 105, 106, 107, -1, -1, -1, 111, 112, - 113, 114, 115, 116, 117, 118, 119, -1, -1, -1, - 123, -1, 125, 102, 103, 104, 105, 106, 107, -1, - -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, - 119, -1, -1, -1, 123, -1, 125, 102, 103, 104, - 105, 106, 107, -1, -1, -1, 111, 112, 113, 114, - 115, 116, 117, 118, 119, -1, -1, -1, 123, -1, - 125, 102, 103, 104, 105, 106, 107, -1, -1, -1, - 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, - -1, -1, -1, -1, 125 + -1, -1, -1, 127, 128, 18, -1, 20, 21, 22, + -1, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, -1, 36, 37, 38, 39, 40, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 50, 51, 52, + 53, -1, -1, 56, 57, 58, -1, -1, -1, -1, + -1, -1, -1, -1, 67, 68, -1, -1, -1, 72, + 73, 74, 75, 15, -1, 78, 79, 80, 81, 82, + 83, -1, 85, 86, -1, 27, 89, 90, -1, 92, + -1, -1, -1, 35, 97, 98, -1, 100, -1, -1, + 42, 43, 44, 45, 46, 47, -1, 49, -1, -1, + -1, -1, -1, 103, 104, 105, 106, 107, 108, -1, + -1, 124, 112, 113, 114, 115, 116, 117, 118, 119, + 120, -1, -1, -1, -1, -1, 126, -1, -1, 129, + -1, 103, 104, 105, 106, 107, 108, -1, -1, 91, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 101, + -1, -1, 124, -1, 126, 103, 104, 105, 106, 107, + 108, -1, -1, -1, 112, 113, 114, 115, 116, 117, + 118, 119, 120, -1, -1, -1, 124, -1, 126, 103, + 104, 105, 106, 107, 108, -1, -1, -1, 112, 113, + 114, 115, 116, 117, 118, 119, 120, -1, -1, -1, + 124, -1, 126, 103, 104, 105, 106, 107, 108, -1, + -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, + 120, -1, -1, -1, 124, -1, 126, 103, 104, 105, + 106, 107, 108, -1, -1, -1, 112, 113, 114, 115, + 116, 117, 118, 119, 120, -1, -1, -1, 124, -1, + 126, 103, 104, 105, 106, 107, 108, -1, -1, -1, + 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, + -1, -1, 124, -1, 126, 103, 104, 105, 106, 107, + 108, -1, -1, -1, 112, 113, 114, 115, 116, 117, + 118, 119, 120, -1, -1, -1, 124, -1, 126, 103, + 104, 105, 106, 107, 108, -1, -1, -1, 112, 113, + 114, 115, 116, 117, 118, 119, 120, -1, -1, -1, + 124, -1, 126, 103, 104, 105, 106, 107, 108, -1, + -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, + 120, -1, -1, -1, 124, -1, 126, 103, 104, 105, + 106, 107, 108, -1, -1, -1, 112, 113, 114, 115, + 116, 117, 118, 119, 120, -1, -1, -1, 124, -1, + 126, 103, 104, 105, 106, 107, 108, -1, -1, -1, + 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, + -1, -1, 124, -1, 126, 103, 104, 105, 106, 107, + 108, -1, -1, -1, 112, 113, 114, 115, 116, 117, + 118, 119, 120, -1, -1, -1, 124, -1, 126, 103, + 104, 105, 106, 107, 108, -1, -1, -1, 112, 113, + 114, 115, 116, 117, 118, 119, 120, -1, -1, -1, + 124, -1, 126, 103, 104, 105, 106, 107, 108, -1, + -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, + 120, -1, -1, -1, 124, -1, 126, 103, 104, 105, + 106, 107, 108, -1, -1, -1, 112, 113, 114, 115, + 116, 117, 118, 119, 120, -1, -1, -1, 124, -1, + 126, 103, 104, 105, 106, 107, 108, -1, -1, -1, + 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, + -1, -1, 124, -1, 126, 103, 104, 105, 106, 107, + 108, -1, -1, -1, 112, 113, 114, 115, 116, 117, + 118, 119, 120, -1, -1, -1, 124, -1, 126, 103, + 104, 105, 106, 107, 108, -1, -1, -1, 112, 113, + 114, 115, 116, 117, 118, 119, 120, -1, -1, -1, + 124, -1, 126, 103, 104, 105, 106, 107, 108, -1, + -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, + 120, -1, -1, -1, 124, -1, 126, 103, 104, 105, + 106, 107, 108, -1, -1, -1, 112, 113, 114, 115, + 116, 117, 118, 119, 120, -1, -1, -1, 124, -1, + 126, 103, 104, 105, 106, 107, 108, -1, -1, -1, + 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, + -1, -1, 124, -1, 126, 103, 104, 105, 106, 107, + 108, -1, -1, -1, 112, 113, 114, 115, 116, 117, + 118, 119, 120, -1, -1, -1, 124, -1, 126, 103, + 104, 105, 106, 107, 108, -1, -1, -1, 112, 113, + 114, 115, 116, 117, 118, 119, 120, -1, -1, -1, + 124, -1, 126, 103, 104, 105, 106, 107, 108, -1, + -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, + 120, -1, -1, -1, 124, -1, 126, 103, 104, 105, + 106, 107, 108, -1, -1, -1, 112, 113, 114, 115, + 116, 117, 118, 119, 120, -1, -1, -1, 124, -1, + 126, 103, 104, 105, 106, 107, 108, -1, -1, -1, + 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, + -1, -1, 124, -1, 126, 103, 104, 105, 106, 107, + 108, -1, -1, -1, 112, 113, 114, 115, 116, 117, + 118, 119, 120, -1, -1, -1, 124, -1, 126, 103, + 104, 105, 106, 107, 108, -1, -1, -1, 112, 113, + 114, 115, 116, 117, 118, 119, 120, -1, -1, -1, + 124, -1, 126, 103, 104, 105, 106, 107, 108, -1, + -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, + 120, -1, -1, -1, 124, -1, 126, 103, 104, 105, + 106, 107, 108, -1, -1, -1, 112, 113, 114, 115, + 116, 117, 118, 119, 120, -1, -1, -1, 124, -1, + 126, 103, 104, 105, 106, 107, 108, -1, -1, -1, + 112, 113, 114, 115, 116, 117, 118, 119, 120, -1, + -1, -1, 124, -1, 126, 103, 104, 105, 106, 107, + 108, -1, -1, -1, 112, 113, 114, 115, 116, 117, + 118, 119, 120, -1, -1, -1, -1, -1, 126 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -1456,93 +1450,94 @@ static const yytype_uint8 yystos[] = 37, 38, 39, 40, 50, 51, 52, 53, 56, 57, 58, 60, 62, 65, 67, 68, 69, 71, 72, 73, 74, 75, 78, 79, 80, 81, 82, 83, 84, 85, - 88, 89, 91, 93, 94, 95, 96, 97, 99, 108, - 109, 110, 112, 117, 123, 126, 127, 129, 131, 132, - 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 86, 89, 90, 92, 94, 95, 96, 97, 98, 100, + 109, 110, 111, 113, 118, 124, 127, 128, 130, 132, + 133, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, 160, 161, 162, 163, 164, + 154, 155, 156, 157, 158, 159, 160, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, - 185, 187, 19, 123, 187, 48, 95, 123, 123, 3, - 4, 5, 6, 7, 59, 67, 109, 110, 135, 123, - 3, 4, 5, 6, 7, 14, 69, 95, 108, 109, - 110, 112, 123, 126, 127, 135, 186, 69, 123, 187, - 117, 123, 187, 95, 95, 95, 15, 27, 35, 42, - 43, 44, 45, 46, 47, 49, 90, 100, 123, 123, - 123, 123, 123, 123, 123, 123, 123, 54, 123, 187, - 69, 69, 187, 61, 63, 64, 187, 55, 66, 76, - 77, 123, 187, 70, 101, 187, 187, 16, 17, 133, - 133, 133, 123, 187, 187, 123, 123, 95, 123, 18, - 33, 70, 86, 87, 123, 123, 187, 17, 48, 69, - 101, 123, 69, 92, 69, 123, 123, 187, 187, 18, - 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 36, 37, 38, 39, 40, 50, 51, 52, - 53, 56, 57, 58, 67, 68, 72, 73, 74, 75, - 78, 79, 80, 81, 82, 83, 84, 85, 88, 89, - 91, 96, 97, 99, 123, 134, 187, 187, 187, 187, - 187, 187, 0, 132, 123, 102, 103, 104, 105, 106, - 107, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 125, 187, 123, 95, 95, 123, 124, 124, 124, 124, - 124, 124, 133, 124, 124, 124, 186, 186, 186, 102, - 103, 111, 112, 113, 114, 117, 118, 119, 125, 19, - 123, 19, 123, 187, 19, 123, 123, 123, 123, 123, - 123, 123, 159, 187, 159, 159, 159, 123, 123, 123, - 69, 123, 69, 101, 123, 123, 187, 123, 69, 187, - 112, 117, 187, 123, 95, 123, 123, 123, 123, 187, - 133, 123, 124, 123, 187, 123, 123, 123, 187, 123, - 123, 123, 123, 123, 123, 123, 187, 123, 187, 187, - 123, 123, 123, 98, 123, 123, 123, 187, 69, 123, - 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, - 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, - 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, - 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, - 123, 123, 123, 123, 123, 123, 123, 123, 123, 128, - 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, - 187, 187, 187, 187, 187, 187, 123, 123, 123, 187, - 187, 187, 187, 187, 187, 123, 187, 187, 187, 128, - 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, - 69, 69, 19, 123, 69, 159, 159, 159, 159, 123, - 69, 123, 69, 123, 123, 123, 187, 187, 187, 187, - 123, 123, 187, 123, 95, 123, 123, 123, 187, 123, - 187, 123, 187, 123, 123, 123, 187, 123, 123, 123, - 123, 123, 123, 123, 123, 123, 19, 123, 123, 123, - 69, 123, 123, 123, 123, 123, 123, 123, 123, 123, - 123, 123, 123, 123, 123, 123, 69, 123, 123 + 185, 186, 187, 189, 19, 124, 189, 48, 96, 124, + 124, 3, 4, 5, 6, 7, 59, 67, 110, 111, + 136, 124, 3, 4, 5, 6, 7, 14, 69, 96, + 109, 110, 111, 113, 124, 127, 128, 136, 188, 69, + 124, 189, 118, 124, 189, 96, 96, 96, 15, 27, + 35, 42, 43, 44, 45, 46, 47, 49, 91, 101, + 124, 124, 124, 124, 124, 124, 124, 124, 124, 54, + 124, 189, 69, 69, 189, 61, 63, 64, 189, 55, + 66, 76, 77, 124, 189, 70, 102, 189, 189, 16, + 17, 134, 134, 134, 124, 189, 189, 124, 124, 96, + 124, 96, 124, 18, 33, 70, 87, 88, 124, 124, + 189, 17, 48, 69, 102, 124, 69, 93, 69, 124, + 124, 189, 189, 18, 20, 21, 22, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 36, 37, 38, 39, + 40, 50, 51, 52, 53, 56, 57, 58, 67, 68, + 72, 73, 74, 75, 78, 79, 80, 81, 82, 83, + 85, 86, 89, 90, 92, 97, 98, 100, 124, 135, + 189, 189, 189, 189, 189, 189, 0, 133, 124, 103, + 104, 105, 106, 107, 108, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 126, 189, 124, 96, 96, 124, + 125, 125, 125, 125, 125, 125, 134, 125, 125, 125, + 188, 188, 188, 103, 104, 112, 113, 114, 115, 118, + 119, 120, 126, 19, 124, 19, 124, 189, 19, 124, + 124, 124, 124, 124, 124, 124, 161, 189, 161, 161, + 161, 124, 124, 124, 69, 124, 69, 102, 124, 124, + 189, 124, 69, 189, 113, 118, 189, 124, 96, 124, + 124, 124, 124, 189, 134, 124, 125, 124, 189, 124, + 124, 124, 189, 124, 124, 124, 124, 124, 124, 124, + 124, 189, 124, 189, 189, 124, 124, 124, 99, 124, + 124, 124, 189, 69, 124, 124, 124, 124, 124, 124, + 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, + 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, + 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, + 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, + 124, 124, 124, 124, 129, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 124, 124, 124, 189, 189, 189, 189, 189, 189, + 124, 189, 189, 189, 129, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 69, 69, 19, 124, 69, + 161, 161, 161, 161, 124, 69, 124, 69, 124, 124, + 124, 189, 189, 189, 189, 124, 124, 189, 124, 96, + 124, 124, 124, 189, 124, 189, 124, 189, 124, 124, + 124, 189, 124, 124, 124, 124, 124, 124, 124, 124, + 124, 19, 124, 124, 124, 69, 124, 124, 124, 124, + 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, + 124, 69, 124, 124 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { - 0, 130, 131, 131, 132, 132, 132, 132, 132, 132, - 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, - 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, - 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, - 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, - 132, 132, 132, 132, 132, 132, 133, 133, 134, 134, - 135, 135, 135, 135, 135, 135, 136, 136, 137, 138, - 139, 139, 139, 139, 139, 139, 140, 141, 142, 143, - 144, 145, 146, 146, 147, 147, 147, 147, 147, 147, - 147, 147, 147, 147, 147, 148, 148, 148, 148, 149, - 150, 151, 151, 152, 152, 152, 152, 153, 154, 154, - 154, 154, 154, 154, 154, 154, 154, 154, 155, 155, - 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, - 155, 156, 157, 157, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 159, 159, 160, 161, 162, 163, 164, 165, 166, - 167, 168, 169, 170, 171, 172, 173, 173, 173, 173, - 174, 175, 176, 177, 178, 178, 178, 179, 179, 179, - 179, 179, 179, 179, 179, 179, 180, 180, 181, 182, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 184, 185, 186, - 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, - 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, - 186, 186, 186, 187, 187, 187, 187, 187, 187, 187, - 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, - 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, - 187, 187, 187, 187, 187, 187 + 0, 131, 132, 132, 133, 133, 133, 133, 133, 133, + 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, + 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, + 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, + 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, + 133, 133, 133, 133, 133, 133, 133, 134, 134, 135, + 135, 136, 136, 136, 136, 136, 136, 137, 137, 138, + 139, 140, 140, 140, 140, 140, 140, 141, 142, 143, + 144, 145, 146, 147, 147, 148, 148, 149, 149, 149, + 149, 149, 149, 149, 149, 149, 149, 149, 150, 150, + 150, 150, 151, 152, 153, 153, 154, 154, 154, 154, + 155, 156, 156, 156, 156, 156, 156, 156, 156, 156, + 156, 157, 157, 157, 157, 157, 157, 157, 157, 157, + 157, 157, 157, 157, 158, 159, 159, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 161, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 175, 175, 175, 176, 177, 178, 179, 180, 180, 180, + 181, 181, 181, 181, 181, 181, 181, 181, 181, 182, + 182, 183, 184, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, + 186, 187, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 189 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ @@ -1553,31 +1548,31 @@ static const yytype_uint8 yyr2[] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 3, 3, 2, 2, - 3, 3, 3, 3, 4, 2, 3, 3, 2, 3, - 3, 3, 2, 3, 3, 3, 2, 4, 4, 4, - 5, 5, 5, 2, 3, 3, 4, 4, 5, 2, - 3, 2, 4, 2, 3, 4, 4, 2, 4, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 2, 5, - 7, 2, 3, 5, 3, 5, 2, 3, 5, 4, - 6, 2, 2, 3, 3, 3, 5, 5, 5, 5, - 3, 3, 3, 3, 3, 4, 3, 4, 5, 4, - 5, 0, 1, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 3, 3, 3, 2, 4, 3, 3, 2, - 4, 5, 5, 3, 3, 4, 3, 2, 3, 4, - 3, 4, 5, 3, 4, 5, 3, 3, 3, 4, + 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 3, 3, 2, + 2, 3, 3, 3, 3, 4, 2, 3, 3, 2, + 3, 3, 3, 2, 3, 2, 3, 3, 3, 2, + 4, 4, 4, 5, 5, 5, 2, 3, 3, 4, + 4, 5, 2, 3, 2, 4, 2, 3, 4, 4, + 2, 4, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 2, 5, 7, 2, 3, 5, 3, 5, 2, + 3, 5, 4, 6, 2, 2, 3, 3, 3, 5, + 5, 5, 5, 3, 3, 3, 3, 3, 4, 3, + 4, 5, 4, 5, 0, 1, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 3, 3, 3, 2, 4, + 3, 3, 2, 4, 5, 5, 3, 3, 4, 3, + 2, 3, 4, 3, 4, 5, 3, 4, 5, 3, + 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, 3, 3, 2, + 3, 3, 1, 1, 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, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 2, 3, 3, 1, - 1, 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, 1, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 2, 2, 2, 2, 3 + 3, 3, 3, 3, 2, 2, 2, 2, 3 }; @@ -2253,1297 +2248,1315 @@ yyreduce: YY_REDUCE_PRINT (yyn); switch (yyn) { - case 53: -#line 200 "parser.y" /* yacc.c:1646 */ + case 54: +#line 202 "parser.y" /* yacc.c:1646 */ { eval_value = (yyvsp[0].uval); } -#line 2260 "y.tab.c" /* yacc.c:1646 */ +#line 2255 "y.tab.c" /* yacc.c:1646 */ break; - case 55: -#line 203 "parser.y" /* yacc.c:1646 */ + case 56: +#line 205 "parser.y" /* yacc.c:1646 */ { } -#line 2267 "y.tab.c" /* yacc.c:1646 */ +#line 2262 "y.tab.c" /* yacc.c:1646 */ break; - case 57: -#line 210 "parser.y" /* yacc.c:1646 */ + case 58: +#line 212 "parser.y" /* yacc.c:1646 */ { (yyval.bval)=(yyvsp[0].bval); } -#line 2273 "y.tab.c" /* yacc.c:1646 */ +#line 2268 "y.tab.c" /* yacc.c:1646 */ break; - case 59: -#line 216 "parser.y" /* yacc.c:1646 */ + case 60: +#line 218 "parser.y" /* yacc.c:1646 */ { (yyval.sval)=(yyvsp[0].sval); } -#line 2279 "y.tab.c" /* yacc.c:1646 */ - break; - - case 65: -#line 226 "parser.y" /* yacc.c:1646 */ - { (yyval.uval)=(yyvsp[0].uval); } -#line 2285 "y.tab.c" /* yacc.c:1646 */ +#line 2274 "y.tab.c" /* yacc.c:1646 */ break; case 66: -#line 231 "parser.y" /* yacc.c:1646 */ +#line 228 "parser.y" /* yacc.c:1646 */ + { (yyval.uval)=(yyvsp[0].uval); } +#line 2280 "y.tab.c" /* yacc.c:1646 */ + break; + + case 67: +#line 233 "parser.y" /* yacc.c:1646 */ { bx_dbg_timebp_command(0, (yyvsp[-1].uval)); free((yyvsp[-2].sval)); } -#line 2294 "y.tab.c" /* yacc.c:1646 */ +#line 2289 "y.tab.c" /* yacc.c:1646 */ break; - case 67: -#line 236 "parser.y" /* yacc.c:1646 */ + case 68: +#line 238 "parser.y" /* yacc.c:1646 */ { bx_dbg_timebp_command(1, (yyvsp[-1].uval)); free((yyvsp[-2].sval)); } -#line 2303 "y.tab.c" /* yacc.c:1646 */ +#line 2298 "y.tab.c" /* yacc.c:1646 */ break; - case 68: -#line 244 "parser.y" /* yacc.c:1646 */ + case 69: +#line 246 "parser.y" /* yacc.c:1646 */ { bx_dbg_modebp_command(); free((yyvsp[-1].sval)); } -#line 2312 "y.tab.c" /* yacc.c:1646 */ +#line 2307 "y.tab.c" /* yacc.c:1646 */ break; - case 69: -#line 252 "parser.y" /* yacc.c:1646 */ + case 70: +#line 254 "parser.y" /* yacc.c:1646 */ { bx_dbg_vmexitbp_command(); free((yyvsp[-1].sval)); } -#line 2321 "y.tab.c" /* yacc.c:1646 */ +#line 2316 "y.tab.c" /* yacc.c:1646 */ break; - case 70: -#line 260 "parser.y" /* yacc.c:1646 */ + case 71: +#line 262 "parser.y" /* yacc.c:1646 */ { bx_dbg_show_command((yyvsp[-1].sval)); free((yyvsp[-2].sval)); free((yyvsp[-1].sval)); } -#line 2330 "y.tab.c" /* yacc.c:1646 */ +#line 2325 "y.tab.c" /* yacc.c:1646 */ break; - case 71: -#line 265 "parser.y" /* yacc.c:1646 */ + case 72: +#line 267 "parser.y" /* yacc.c:1646 */ { bx_dbg_show_command("all"); free((yyvsp[-2].sval)); } -#line 2339 "y.tab.c" /* yacc.c:1646 */ +#line 2334 "y.tab.c" /* yacc.c:1646 */ break; - case 72: -#line 270 "parser.y" /* yacc.c:1646 */ + case 73: +#line 272 "parser.y" /* yacc.c:1646 */ { bx_dbg_show_command("off"); free((yyvsp[-2].sval)); } -#line 2348 "y.tab.c" /* yacc.c:1646 */ +#line 2343 "y.tab.c" /* yacc.c:1646 */ break; - case 73: -#line 275 "parser.y" /* yacc.c:1646 */ + case 74: +#line 277 "parser.y" /* yacc.c:1646 */ { bx_dbg_show_param_command((yyvsp[-1].sval), 0); free((yyvsp[-2].sval)); free((yyvsp[-1].sval)); } -#line 2357 "y.tab.c" /* yacc.c:1646 */ +#line 2352 "y.tab.c" /* yacc.c:1646 */ break; - case 74: -#line 280 "parser.y" /* yacc.c:1646 */ + case 75: +#line 282 "parser.y" /* yacc.c:1646 */ { bx_dbg_show_param_command((yyvsp[-2].sval), 1); free((yyvsp[-3].sval)); free((yyvsp[-2].sval)); free((yyvsp[-1].sval)); } -#line 2366 "y.tab.c" /* yacc.c:1646 */ +#line 2361 "y.tab.c" /* yacc.c:1646 */ break; - case 75: -#line 285 "parser.y" /* yacc.c:1646 */ + case 76: +#line 287 "parser.y" /* yacc.c:1646 */ { bx_dbg_show_command(0); free((yyvsp[-1].sval)); } -#line 2375 "y.tab.c" /* yacc.c:1646 */ +#line 2370 "y.tab.c" /* yacc.c:1646 */ break; - case 76: -#line 293 "parser.y" /* yacc.c:1646 */ + case 77: +#line 295 "parser.y" /* yacc.c:1646 */ { bx_dbg_xlate_address((yyvsp[-1].uval)); free((yyvsp[-2].sval)); } -#line 2384 "y.tab.c" /* yacc.c:1646 */ +#line 2379 "y.tab.c" /* yacc.c:1646 */ break; - case 77: -#line 301 "parser.y" /* yacc.c:1646 */ + case 78: +#line 303 "parser.y" /* yacc.c:1646 */ { bx_dbg_tlb_lookup((yyvsp[-1].uval)); free((yyvsp[-2].sval)); } -#line 2393 "y.tab.c" /* yacc.c:1646 */ +#line 2388 "y.tab.c" /* yacc.c:1646 */ break; - case 78: -#line 309 "parser.y" /* yacc.c:1646 */ + case 79: +#line 311 "parser.y" /* yacc.c:1646 */ { bx_dbg_ptime_command(); free((yyvsp[-1].sval)); } -#line 2402 "y.tab.c" /* yacc.c:1646 */ +#line 2397 "y.tab.c" /* yacc.c:1646 */ break; - case 79: -#line 317 "parser.y" /* yacc.c:1646 */ + case 80: +#line 319 "parser.y" /* yacc.c:1646 */ { bx_dbg_trace_command((yyvsp[-1].bval)); free((yyvsp[-2].sval)); } -#line 2411 "y.tab.c" /* yacc.c:1646 */ +#line 2406 "y.tab.c" /* yacc.c:1646 */ break; - case 80: -#line 325 "parser.y" /* yacc.c:1646 */ + case 81: +#line 327 "parser.y" /* yacc.c:1646 */ { bx_dbg_trace_reg_command((yyvsp[-1].bval)); free((yyvsp[-2].sval)); } -#line 2420 "y.tab.c" /* yacc.c:1646 */ +#line 2415 "y.tab.c" /* yacc.c:1646 */ break; - case 81: -#line 333 "parser.y" /* yacc.c:1646 */ + case 82: +#line 335 "parser.y" /* yacc.c:1646 */ { bx_dbg_trace_mem_command((yyvsp[-1].bval)); free((yyvsp[-2].sval)); } -#line 2429 "y.tab.c" /* yacc.c:1646 */ +#line 2424 "y.tab.c" /* yacc.c:1646 */ break; - case 82: -#line 341 "parser.y" /* yacc.c:1646 */ + case 83: +#line 343 "parser.y" /* yacc.c:1646 */ { bx_dbg_print_stack_command(16); free((yyvsp[-1].sval)); } -#line 2438 "y.tab.c" /* yacc.c:1646 */ +#line 2433 "y.tab.c" /* yacc.c:1646 */ break; - case 83: -#line 346 "parser.y" /* yacc.c:1646 */ + case 84: +#line 348 "parser.y" /* yacc.c:1646 */ { bx_dbg_print_stack_command((yyvsp[-1].uval)); free((yyvsp[-2].sval)); } -#line 2447 "y.tab.c" /* yacc.c:1646 */ - break; - - case 84: -#line 354 "parser.y" /* yacc.c:1646 */ - { - bx_dbg_watchpoint_continue(0); - free((yyvsp[-2].sval)); free((yyvsp[-1].sval)); - } -#line 2456 "y.tab.c" /* yacc.c:1646 */ +#line 2442 "y.tab.c" /* yacc.c:1646 */ break; case 85: -#line 359 "parser.y" /* yacc.c:1646 */ +#line 356 "parser.y" /* yacc.c:1646 */ { - bx_dbg_watchpoint_continue(1); - free((yyvsp[-2].sval)); free((yyvsp[-1].sval)); + bx_dbg_bt_command(16); + free((yyvsp[-1].sval)); } -#line 2465 "y.tab.c" /* yacc.c:1646 */ +#line 2451 "y.tab.c" /* yacc.c:1646 */ break; case 86: -#line 364 "parser.y" /* yacc.c:1646 */ +#line 361 "parser.y" /* yacc.c:1646 */ { - bx_dbg_print_watchpoints(); - free((yyvsp[-1].sval)); + bx_dbg_bt_command((yyvsp[-1].uval)); + free((yyvsp[-2].sval)); } -#line 2474 "y.tab.c" /* yacc.c:1646 */ +#line 2460 "y.tab.c" /* yacc.c:1646 */ break; case 87: #line 369 "parser.y" /* yacc.c:1646 */ { - bx_dbg_watch(0, (yyvsp[-1].uval), 1); /* BX_READ */ - free((yyvsp[-3].sval)); free((yyvsp[-2].sval)); + bx_dbg_watchpoint_continue(0); + free((yyvsp[-2].sval)); free((yyvsp[-1].sval)); } -#line 2483 "y.tab.c" /* yacc.c:1646 */ +#line 2469 "y.tab.c" /* yacc.c:1646 */ break; case 88: #line 374 "parser.y" /* yacc.c:1646 */ { - bx_dbg_watch(0, (yyvsp[-1].uval), 1); /* BX_READ */ - free((yyvsp[-3].sval)); free((yyvsp[-2].sval)); + bx_dbg_watchpoint_continue(1); + free((yyvsp[-2].sval)); free((yyvsp[-1].sval)); } -#line 2492 "y.tab.c" /* yacc.c:1646 */ +#line 2478 "y.tab.c" /* yacc.c:1646 */ break; case 89: #line 379 "parser.y" /* yacc.c:1646 */ { - bx_dbg_watch(1, (yyvsp[-1].uval), 1); /* BX_WRITE */ - free((yyvsp[-3].sval)); free((yyvsp[-2].sval)); + bx_dbg_print_watchpoints(); + free((yyvsp[-1].sval)); } -#line 2501 "y.tab.c" /* yacc.c:1646 */ +#line 2487 "y.tab.c" /* yacc.c:1646 */ break; case 90: #line 384 "parser.y" /* yacc.c:1646 */ { - bx_dbg_watch(0, (yyvsp[-2].uval), (yyvsp[-1].uval)); /* BX_READ */ - free((yyvsp[-4].sval)); free((yyvsp[-3].sval)); + bx_dbg_watch(0, (yyvsp[-1].uval), 1); /* BX_READ */ + free((yyvsp[-3].sval)); free((yyvsp[-2].sval)); } -#line 2510 "y.tab.c" /* yacc.c:1646 */ +#line 2496 "y.tab.c" /* yacc.c:1646 */ break; case 91: #line 389 "parser.y" /* yacc.c:1646 */ { - bx_dbg_watch(0, (yyvsp[-2].uval), (yyvsp[-1].uval)); /* BX_READ */ - free((yyvsp[-4].sval)); free((yyvsp[-3].sval)); + bx_dbg_watch(0, (yyvsp[-1].uval), 1); /* BX_READ */ + free((yyvsp[-3].sval)); free((yyvsp[-2].sval)); } -#line 2519 "y.tab.c" /* yacc.c:1646 */ +#line 2505 "y.tab.c" /* yacc.c:1646 */ break; case 92: #line 394 "parser.y" /* yacc.c:1646 */ { - bx_dbg_watch(1, (yyvsp[-2].uval), (yyvsp[-1].uval)); /* BX_WRITE */ - free((yyvsp[-4].sval)); free((yyvsp[-3].sval)); + bx_dbg_watch(1, (yyvsp[-1].uval), 1); /* BX_WRITE */ + free((yyvsp[-3].sval)); free((yyvsp[-2].sval)); } -#line 2528 "y.tab.c" /* yacc.c:1646 */ +#line 2514 "y.tab.c" /* yacc.c:1646 */ break; case 93: #line 399 "parser.y" /* yacc.c:1646 */ { - bx_dbg_unwatch_all(); - free((yyvsp[-1].sval)); + bx_dbg_watch(0, (yyvsp[-2].uval), (yyvsp[-1].uval)); /* BX_READ */ + free((yyvsp[-4].sval)); free((yyvsp[-3].sval)); } -#line 2537 "y.tab.c" /* yacc.c:1646 */ +#line 2523 "y.tab.c" /* yacc.c:1646 */ break; case 94: #line 404 "parser.y" /* yacc.c:1646 */ { - bx_dbg_unwatch((yyvsp[-1].uval)); - free((yyvsp[-2].sval)); + bx_dbg_watch(0, (yyvsp[-2].uval), (yyvsp[-1].uval)); /* BX_READ */ + free((yyvsp[-4].sval)); free((yyvsp[-3].sval)); } -#line 2546 "y.tab.c" /* yacc.c:1646 */ +#line 2532 "y.tab.c" /* yacc.c:1646 */ break; case 95: -#line 412 "parser.y" /* yacc.c:1646 */ +#line 409 "parser.y" /* yacc.c:1646 */ { - bx_dbg_symbol_command((yyvsp[-1].sval), 0, 0); - free((yyvsp[-2].sval)); free((yyvsp[-1].sval)); + bx_dbg_watch(1, (yyvsp[-2].uval), (yyvsp[-1].uval)); /* BX_WRITE */ + free((yyvsp[-4].sval)); free((yyvsp[-3].sval)); } -#line 2555 "y.tab.c" /* yacc.c:1646 */ +#line 2541 "y.tab.c" /* yacc.c:1646 */ break; case 96: -#line 417 "parser.y" /* yacc.c:1646 */ +#line 414 "parser.y" /* yacc.c:1646 */ { - bx_dbg_symbol_command((yyvsp[-2].sval), 0, (yyvsp[-1].uval)); - free((yyvsp[-3].sval)); free((yyvsp[-2].sval)); + bx_dbg_unwatch_all(); + free((yyvsp[-1].sval)); } -#line 2564 "y.tab.c" /* yacc.c:1646 */ +#line 2550 "y.tab.c" /* yacc.c:1646 */ break; case 97: -#line 422 "parser.y" /* yacc.c:1646 */ +#line 419 "parser.y" /* yacc.c:1646 */ { - bx_dbg_symbol_command((yyvsp[-1].sval), 1, 0); - free((yyvsp[-3].sval)); free((yyvsp[-2].sval)); free((yyvsp[-1].sval)); + bx_dbg_unwatch((yyvsp[-1].uval)); + free((yyvsp[-2].sval)); } -#line 2573 "y.tab.c" /* yacc.c:1646 */ +#line 2559 "y.tab.c" /* yacc.c:1646 */ break; case 98: #line 427 "parser.y" /* yacc.c:1646 */ { - bx_dbg_symbol_command((yyvsp[-2].sval), 1, (yyvsp[-1].uval)); - free((yyvsp[-4].sval)); free((yyvsp[-3].sval)); free((yyvsp[-2].sval)); + bx_dbg_symbol_command((yyvsp[-1].sval), 0, 0); + free((yyvsp[-2].sval)); free((yyvsp[-1].sval)); } -#line 2582 "y.tab.c" /* yacc.c:1646 */ +#line 2568 "y.tab.c" /* yacc.c:1646 */ break; case 99: -#line 435 "parser.y" /* yacc.c:1646 */ +#line 432 "parser.y" /* yacc.c:1646 */ + { + bx_dbg_symbol_command((yyvsp[-2].sval), 0, (yyvsp[-1].uval)); + free((yyvsp[-3].sval)); free((yyvsp[-2].sval)); + } +#line 2577 "y.tab.c" /* yacc.c:1646 */ + break; + + case 100: +#line 437 "parser.y" /* yacc.c:1646 */ + { + bx_dbg_symbol_command((yyvsp[-1].sval), 1, 0); + free((yyvsp[-3].sval)); free((yyvsp[-2].sval)); free((yyvsp[-1].sval)); + } +#line 2586 "y.tab.c" /* yacc.c:1646 */ + break; + + case 101: +#line 442 "parser.y" /* yacc.c:1646 */ + { + bx_dbg_symbol_command((yyvsp[-2].sval), 1, (yyvsp[-1].uval)); + free((yyvsp[-4].sval)); free((yyvsp[-3].sval)); free((yyvsp[-2].sval)); + } +#line 2595 "y.tab.c" /* yacc.c:1646 */ + break; + + case 102: +#line 450 "parser.y" /* yacc.c:1646 */ { bx_dbg_where_command(); free((yyvsp[-1].sval)); } -#line 2591 "y.tab.c" /* yacc.c:1646 */ +#line 2604 "y.tab.c" /* yacc.c:1646 */ break; - case 100: -#line 443 "parser.y" /* yacc.c:1646 */ + case 103: +#line 458 "parser.y" /* yacc.c:1646 */ { bx_dbg_print_string_command((yyvsp[-1].uval)); free((yyvsp[-2].sval)); } -#line 2600 "y.tab.c" /* yacc.c:1646 */ +#line 2613 "y.tab.c" /* yacc.c:1646 */ break; - case 101: -#line 451 "parser.y" /* yacc.c:1646 */ + case 104: +#line 466 "parser.y" /* yacc.c:1646 */ { bx_dbg_continue_command(1); free((yyvsp[-1].sval)); } -#line 2609 "y.tab.c" /* yacc.c:1646 */ +#line 2622 "y.tab.c" /* yacc.c:1646 */ break; - case 102: -#line 456 "parser.y" /* yacc.c:1646 */ + case 105: +#line 471 "parser.y" /* yacc.c:1646 */ { bx_dbg_continue_command((yyvsp[-1].uval)); free((yyvsp[-3].sval)); free((yyvsp[-2].sval)); } -#line 2618 "y.tab.c" /* yacc.c:1646 */ - break; - - case 103: -#line 464 "parser.y" /* yacc.c:1646 */ - { - bx_dbg_stepN_command(dbg_cpu, 1); - free((yyvsp[-1].sval)); - } -#line 2627 "y.tab.c" /* yacc.c:1646 */ - break; - - case 104: -#line 469 "parser.y" /* yacc.c:1646 */ - { - bx_dbg_stepN_command(dbg_cpu, (yyvsp[-1].uval)); - free((yyvsp[-2].sval)); - } -#line 2636 "y.tab.c" /* yacc.c:1646 */ - break; - - case 105: -#line 474 "parser.y" /* yacc.c:1646 */ - { - bx_dbg_stepN_command(-1, (yyvsp[-1].uval)); - free((yyvsp[-3].sval)); free((yyvsp[-2].sval)); - } -#line 2645 "y.tab.c" /* yacc.c:1646 */ +#line 2631 "y.tab.c" /* yacc.c:1646 */ break; case 106: #line 479 "parser.y" /* yacc.c:1646 */ { - bx_dbg_stepN_command((yyvsp[-2].uval), (yyvsp[-1].uval)); - free((yyvsp[-3].sval)); + bx_dbg_stepN_command(dbg_cpu, 1); + free((yyvsp[-1].sval)); } -#line 2654 "y.tab.c" /* yacc.c:1646 */ +#line 2640 "y.tab.c" /* yacc.c:1646 */ break; case 107: -#line 487 "parser.y" /* yacc.c:1646 */ +#line 484 "parser.y" /* yacc.c:1646 */ + { + bx_dbg_stepN_command(dbg_cpu, (yyvsp[-1].uval)); + free((yyvsp[-2].sval)); + } +#line 2649 "y.tab.c" /* yacc.c:1646 */ + break; + + case 108: +#line 489 "parser.y" /* yacc.c:1646 */ + { + bx_dbg_stepN_command(-1, (yyvsp[-1].uval)); + free((yyvsp[-3].sval)); free((yyvsp[-2].sval)); + } +#line 2658 "y.tab.c" /* yacc.c:1646 */ + break; + + case 109: +#line 494 "parser.y" /* yacc.c:1646 */ + { + bx_dbg_stepN_command((yyvsp[-2].uval), (yyvsp[-1].uval)); + free((yyvsp[-3].sval)); + } +#line 2667 "y.tab.c" /* yacc.c:1646 */ + break; + + case 110: +#line 502 "parser.y" /* yacc.c:1646 */ { bx_dbg_step_over_command(); free((yyvsp[-1].sval)); } -#line 2663 "y.tab.c" /* yacc.c:1646 */ +#line 2676 "y.tab.c" /* yacc.c:1646 */ break; - case 108: -#line 495 "parser.y" /* yacc.c:1646 */ + case 111: +#line 510 "parser.y" /* yacc.c:1646 */ { bx_dbg_set_auto_disassemble((yyvsp[-1].bval)); free((yyvsp[-3].sval)); free((yyvsp[-2].sval)); } -#line 2672 "y.tab.c" /* yacc.c:1646 */ +#line 2685 "y.tab.c" /* yacc.c:1646 */ break; - case 109: -#line 500 "parser.y" /* yacc.c:1646 */ + case 112: +#line 515 "parser.y" /* yacc.c:1646 */ { bx_dbg_set_symbol_command((yyvsp[-3].sval), (yyvsp[-1].uval)); free((yyvsp[-4].sval)); free((yyvsp[-3].sval)); } -#line 2681 "y.tab.c" /* yacc.c:1646 */ - break; - - case 110: -#line 505 "parser.y" /* yacc.c:1646 */ - { - bx_dbg_set_reg8l_value((yyvsp[-3].uval), (yyvsp[-1].uval)); - } -#line 2689 "y.tab.c" /* yacc.c:1646 */ - break; - - case 111: -#line 509 "parser.y" /* yacc.c:1646 */ - { - bx_dbg_set_reg8h_value((yyvsp[-3].uval), (yyvsp[-1].uval)); - } -#line 2697 "y.tab.c" /* yacc.c:1646 */ - break; - - case 112: -#line 513 "parser.y" /* yacc.c:1646 */ - { - bx_dbg_set_reg16_value((yyvsp[-3].uval), (yyvsp[-1].uval)); - } -#line 2705 "y.tab.c" /* yacc.c:1646 */ +#line 2694 "y.tab.c" /* yacc.c:1646 */ break; case 113: -#line 517 "parser.y" /* yacc.c:1646 */ +#line 520 "parser.y" /* yacc.c:1646 */ { - bx_dbg_set_reg32_value((yyvsp[-3].uval), (yyvsp[-1].uval)); + bx_dbg_set_reg8l_value((yyvsp[-3].uval), (yyvsp[-1].uval)); } -#line 2713 "y.tab.c" /* yacc.c:1646 */ +#line 2702 "y.tab.c" /* yacc.c:1646 */ break; case 114: -#line 521 "parser.y" /* yacc.c:1646 */ +#line 524 "parser.y" /* yacc.c:1646 */ { - bx_dbg_set_reg64_value((yyvsp[-3].uval), (yyvsp[-1].uval)); + bx_dbg_set_reg8h_value((yyvsp[-3].uval), (yyvsp[-1].uval)); } -#line 2721 "y.tab.c" /* yacc.c:1646 */ +#line 2710 "y.tab.c" /* yacc.c:1646 */ break; case 115: -#line 525 "parser.y" /* yacc.c:1646 */ +#line 528 "parser.y" /* yacc.c:1646 */ { - bx_dbg_set_rip_value((yyvsp[-1].uval)); + bx_dbg_set_reg16_value((yyvsp[-3].uval), (yyvsp[-1].uval)); } -#line 2729 "y.tab.c" /* yacc.c:1646 */ +#line 2718 "y.tab.c" /* yacc.c:1646 */ break; case 116: -#line 529 "parser.y" /* yacc.c:1646 */ +#line 532 "parser.y" /* yacc.c:1646 */ { - bx_dbg_set_rip_value((yyvsp[-1].uval)); + bx_dbg_set_reg32_value((yyvsp[-3].uval), (yyvsp[-1].uval)); } -#line 2737 "y.tab.c" /* yacc.c:1646 */ +#line 2726 "y.tab.c" /* yacc.c:1646 */ break; case 117: -#line 533 "parser.y" /* yacc.c:1646 */ +#line 536 "parser.y" /* yacc.c:1646 */ { - bx_dbg_load_segreg((yyvsp[-3].uval), (yyvsp[-1].uval)); + bx_dbg_set_reg64_value((yyvsp[-3].uval), (yyvsp[-1].uval)); } -#line 2745 "y.tab.c" /* yacc.c:1646 */ +#line 2734 "y.tab.c" /* yacc.c:1646 */ break; case 118: #line 540 "parser.y" /* yacc.c:1646 */ - { - bx_dbg_vbreakpoint_command(bkAtIP, 0, 0, NULL); - free((yyvsp[-1].sval)); + { + bx_dbg_set_rip_value((yyvsp[-1].uval)); } -#line 2754 "y.tab.c" /* yacc.c:1646 */ +#line 2742 "y.tab.c" /* yacc.c:1646 */ break; case 119: -#line 545 "parser.y" /* yacc.c:1646 */ - { - bx_dbg_vbreakpoint_command(bkRegular, (yyvsp[-3].uval), (yyvsp[-1].uval), NULL); - free((yyvsp[-4].sval)); +#line 544 "parser.y" /* yacc.c:1646 */ + { + bx_dbg_set_rip_value((yyvsp[-1].uval)); } -#line 2763 "y.tab.c" /* yacc.c:1646 */ +#line 2750 "y.tab.c" /* yacc.c:1646 */ break; case 120: -#line 550 "parser.y" /* yacc.c:1646 */ - { - bx_dbg_vbreakpoint_command(bkRegular, (yyvsp[-5].uval), (yyvsp[-3].uval), (yyvsp[-1].sval)); - free((yyvsp[-6].sval)); free((yyvsp[-2].sval)); free((yyvsp[-1].sval)); +#line 548 "parser.y" /* yacc.c:1646 */ + { + bx_dbg_load_segreg((yyvsp[-3].uval), (yyvsp[-1].uval)); } -#line 2772 "y.tab.c" /* yacc.c:1646 */ +#line 2758 "y.tab.c" /* yacc.c:1646 */ break; case 121: #line 555 "parser.y" /* yacc.c:1646 */ { - bx_dbg_lbreakpoint_command(bkAtIP, 0, NULL); + bx_dbg_vbreakpoint_command(bkAtIP, 0, 0, NULL); free((yyvsp[-1].sval)); } -#line 2781 "y.tab.c" /* yacc.c:1646 */ +#line 2767 "y.tab.c" /* yacc.c:1646 */ break; case 122: #line 560 "parser.y" /* yacc.c:1646 */ { - bx_dbg_lbreakpoint_command(bkRegular, (yyvsp[-1].uval), NULL); - free((yyvsp[-2].sval)); + bx_dbg_vbreakpoint_command(bkRegular, (yyvsp[-3].uval), (yyvsp[-1].uval), NULL); + free((yyvsp[-4].sval)); } -#line 2790 "y.tab.c" /* yacc.c:1646 */ +#line 2776 "y.tab.c" /* yacc.c:1646 */ break; case 123: #line 565 "parser.y" /* yacc.c:1646 */ { - bx_dbg_lbreakpoint_command(bkRegular, (yyvsp[-3].uval), (yyvsp[-1].sval)); - free((yyvsp[-4].sval)); free((yyvsp[-2].sval)); free((yyvsp[-1].sval)); + bx_dbg_vbreakpoint_command(bkRegular, (yyvsp[-5].uval), (yyvsp[-3].uval), (yyvsp[-1].sval)); + free((yyvsp[-6].sval)); free((yyvsp[-2].sval)); free((yyvsp[-1].sval)); } -#line 2799 "y.tab.c" /* yacc.c:1646 */ +#line 2785 "y.tab.c" /* yacc.c:1646 */ break; case 124: #line 570 "parser.y" /* yacc.c:1646 */ { - bx_dbg_lbreakpoint_symbol_command((yyvsp[-1].sval), NULL); - free((yyvsp[-2].sval)); free((yyvsp[-1].sval)); + bx_dbg_lbreakpoint_command(bkAtIP, 0, NULL); + free((yyvsp[-1].sval)); } -#line 2808 "y.tab.c" /* yacc.c:1646 */ +#line 2794 "y.tab.c" /* yacc.c:1646 */ break; case 125: #line 575 "parser.y" /* yacc.c:1646 */ { - bx_dbg_lbreakpoint_symbol_command((yyvsp[-3].sval), (yyvsp[-1].sval)); - free((yyvsp[-4].sval)); free((yyvsp[-3].sval)); free((yyvsp[-2].sval)); free((yyvsp[-1].sval)); + bx_dbg_lbreakpoint_command(bkRegular, (yyvsp[-1].uval), NULL); + free((yyvsp[-2].sval)); } -#line 2817 "y.tab.c" /* yacc.c:1646 */ +#line 2803 "y.tab.c" /* yacc.c:1646 */ break; case 126: #line 580 "parser.y" /* yacc.c:1646 */ { - bx_dbg_pbreakpoint_command(bkAtIP, 0, NULL); - free((yyvsp[-1].sval)); + bx_dbg_lbreakpoint_command(bkRegular, (yyvsp[-3].uval), (yyvsp[-1].sval)); + free((yyvsp[-4].sval)); free((yyvsp[-2].sval)); free((yyvsp[-1].sval)); } -#line 2826 "y.tab.c" /* yacc.c:1646 */ +#line 2812 "y.tab.c" /* yacc.c:1646 */ break; case 127: #line 585 "parser.y" /* yacc.c:1646 */ { - bx_dbg_pbreakpoint_command(bkRegular, (yyvsp[-1].uval), NULL); - free((yyvsp[-2].sval)); + bx_dbg_lbreakpoint_symbol_command((yyvsp[-1].sval), NULL); + free((yyvsp[-2].sval)); free((yyvsp[-1].sval)); } -#line 2835 "y.tab.c" /* yacc.c:1646 */ +#line 2821 "y.tab.c" /* yacc.c:1646 */ break; case 128: #line 590 "parser.y" /* yacc.c:1646 */ { - bx_dbg_pbreakpoint_command(bkRegular, (yyvsp[-3].uval), (yyvsp[-1].sval)); - free((yyvsp[-4].sval)); free((yyvsp[-2].sval)); free((yyvsp[-1].sval)); + bx_dbg_lbreakpoint_symbol_command((yyvsp[-3].sval), (yyvsp[-1].sval)); + free((yyvsp[-4].sval)); free((yyvsp[-3].sval)); free((yyvsp[-2].sval)); free((yyvsp[-1].sval)); } -#line 2844 "y.tab.c" /* yacc.c:1646 */ +#line 2830 "y.tab.c" /* yacc.c:1646 */ break; case 129: #line 595 "parser.y" /* yacc.c:1646 */ { - bx_dbg_pbreakpoint_command(bkRegular, (yyvsp[-1].uval), NULL); - free((yyvsp[-3].sval)); + bx_dbg_pbreakpoint_command(bkAtIP, 0, NULL); + free((yyvsp[-1].sval)); } -#line 2853 "y.tab.c" /* yacc.c:1646 */ +#line 2839 "y.tab.c" /* yacc.c:1646 */ break; case 130: #line 600 "parser.y" /* yacc.c:1646 */ { - bx_dbg_pbreakpoint_command(bkRegular, (yyvsp[-3].uval), (yyvsp[-1].sval)); - free((yyvsp[-5].sval)); free((yyvsp[-2].sval)); free((yyvsp[-1].sval)); + bx_dbg_pbreakpoint_command(bkRegular, (yyvsp[-1].uval), NULL); + free((yyvsp[-2].sval)); } -#line 2862 "y.tab.c" /* yacc.c:1646 */ +#line 2848 "y.tab.c" /* yacc.c:1646 */ break; case 131: -#line 608 "parser.y" /* yacc.c:1646 */ +#line 605 "parser.y" /* yacc.c:1646 */ + { + bx_dbg_pbreakpoint_command(bkRegular, (yyvsp[-3].uval), (yyvsp[-1].sval)); + free((yyvsp[-4].sval)); free((yyvsp[-2].sval)); free((yyvsp[-1].sval)); + } +#line 2857 "y.tab.c" /* yacc.c:1646 */ + break; + + case 132: +#line 610 "parser.y" /* yacc.c:1646 */ + { + bx_dbg_pbreakpoint_command(bkRegular, (yyvsp[-1].uval), NULL); + free((yyvsp[-3].sval)); + } +#line 2866 "y.tab.c" /* yacc.c:1646 */ + break; + + case 133: +#line 615 "parser.y" /* yacc.c:1646 */ + { + bx_dbg_pbreakpoint_command(bkRegular, (yyvsp[-3].uval), (yyvsp[-1].sval)); + free((yyvsp[-5].sval)); free((yyvsp[-2].sval)); free((yyvsp[-1].sval)); + } +#line 2875 "y.tab.c" /* yacc.c:1646 */ + break; + + case 134: +#line 623 "parser.y" /* yacc.c:1646 */ { bx_dbg_info_bpoints_command(); free((yyvsp[-1].sval)); } -#line 2871 "y.tab.c" /* yacc.c:1646 */ +#line 2884 "y.tab.c" /* yacc.c:1646 */ break; - case 132: -#line 616 "parser.y" /* yacc.c:1646 */ + case 135: +#line 631 "parser.y" /* yacc.c:1646 */ { bx_dbg_info_symbols_command(0); free((yyvsp[-1].sval)); } -#line 2880 "y.tab.c" /* yacc.c:1646 */ +#line 2893 "y.tab.c" /* yacc.c:1646 */ break; - case 133: -#line 621 "parser.y" /* yacc.c:1646 */ + case 136: +#line 636 "parser.y" /* yacc.c:1646 */ { bx_dbg_info_symbols_command((yyvsp[-1].sval)); free((yyvsp[-2].sval));free((yyvsp[-1].sval)); } -#line 2889 "y.tab.c" /* yacc.c:1646 */ - break; - - case 134: -#line 629 "parser.y" /* yacc.c:1646 */ - { - bx_dbg_info_bpoints_command(); - free((yyvsp[-2].sval)); free((yyvsp[-1].sval)); - } -#line 2898 "y.tab.c" /* yacc.c:1646 */ - break; - - case 135: -#line 634 "parser.y" /* yacc.c:1646 */ - { - bx_dbg_info_registers_command(-1); - free((yyvsp[-2].sval)); free((yyvsp[-1].sval)); - } -#line 2907 "y.tab.c" /* yacc.c:1646 */ - break; - - case 136: -#line 639 "parser.y" /* yacc.c:1646 */ - { - bx_dbg_info_idt_command((yyvsp[-2].uval), (yyvsp[-1].uval)); - free((yyvsp[-4].sval)); free((yyvsp[-3].sval)); - } -#line 2916 "y.tab.c" /* yacc.c:1646 */ +#line 2902 "y.tab.c" /* yacc.c:1646 */ break; case 137: #line 644 "parser.y" /* yacc.c:1646 */ { - bx_dbg_info_ivt_command((yyvsp[-2].uval), (yyvsp[-1].uval)); - free((yyvsp[-4].sval)); free((yyvsp[-3].sval)); + bx_dbg_info_bpoints_command(); + free((yyvsp[-2].sval)); free((yyvsp[-1].sval)); } -#line 2925 "y.tab.c" /* yacc.c:1646 */ +#line 2911 "y.tab.c" /* yacc.c:1646 */ break; case 138: #line 649 "parser.y" /* yacc.c:1646 */ { - bx_dbg_info_gdt_command((yyvsp[-2].uval), (yyvsp[-1].uval)); - free((yyvsp[-4].sval)); free((yyvsp[-3].sval)); + bx_dbg_info_registers_command(-1); + free((yyvsp[-2].sval)); free((yyvsp[-1].sval)); } -#line 2934 "y.tab.c" /* yacc.c:1646 */ +#line 2920 "y.tab.c" /* yacc.c:1646 */ break; case 139: #line 654 "parser.y" /* yacc.c:1646 */ { - bx_dbg_info_ldt_command((yyvsp[-2].uval), (yyvsp[-1].uval)); + bx_dbg_info_idt_command((yyvsp[-2].uval), (yyvsp[-1].uval)); free((yyvsp[-4].sval)); free((yyvsp[-3].sval)); } -#line 2943 "y.tab.c" /* yacc.c:1646 */ +#line 2929 "y.tab.c" /* yacc.c:1646 */ break; case 140: #line 659 "parser.y" /* yacc.c:1646 */ { - bx_dbg_dump_table(); - free((yyvsp[-2].sval)); free((yyvsp[-1].sval)); + bx_dbg_info_ivt_command((yyvsp[-2].uval), (yyvsp[-1].uval)); + free((yyvsp[-4].sval)); free((yyvsp[-3].sval)); } -#line 2952 "y.tab.c" /* yacc.c:1646 */ +#line 2938 "y.tab.c" /* yacc.c:1646 */ break; case 141: #line 664 "parser.y" /* yacc.c:1646 */ { - bx_dbg_info_tss_command(); - free((yyvsp[-2].sval)); free((yyvsp[-1].sval)); + bx_dbg_info_gdt_command((yyvsp[-2].uval), (yyvsp[-1].uval)); + free((yyvsp[-4].sval)); free((yyvsp[-3].sval)); } -#line 2961 "y.tab.c" /* yacc.c:1646 */ +#line 2947 "y.tab.c" /* yacc.c:1646 */ break; case 142: #line 669 "parser.y" /* yacc.c:1646 */ { - bx_dbg_info_flags(); - free((yyvsp[-2].sval)); + bx_dbg_info_ldt_command((yyvsp[-2].uval), (yyvsp[-1].uval)); + free((yyvsp[-4].sval)); free((yyvsp[-3].sval)); } -#line 2970 "y.tab.c" /* yacc.c:1646 */ +#line 2956 "y.tab.c" /* yacc.c:1646 */ break; case 143: #line 674 "parser.y" /* yacc.c:1646 */ { - bx_dbg_info_linux_command(); + bx_dbg_dump_table(); free((yyvsp[-2].sval)); free((yyvsp[-1].sval)); } -#line 2979 "y.tab.c" /* yacc.c:1646 */ +#line 2965 "y.tab.c" /* yacc.c:1646 */ break; case 144: #line 679 "parser.y" /* yacc.c:1646 */ { - bx_dbg_info_symbols_command(0); + bx_dbg_info_tss_command(); free((yyvsp[-2].sval)); free((yyvsp[-1].sval)); } -#line 2988 "y.tab.c" /* yacc.c:1646 */ +#line 2974 "y.tab.c" /* yacc.c:1646 */ break; case 145: #line 684 "parser.y" /* yacc.c:1646 */ { - bx_dbg_info_symbols_command((yyvsp[-1].sval)); - free((yyvsp[-3].sval)); free((yyvsp[-2].sval)); free((yyvsp[-1].sval)); + bx_dbg_info_flags(); + free((yyvsp[-2].sval)); } -#line 2997 "y.tab.c" /* yacc.c:1646 */ +#line 2983 "y.tab.c" /* yacc.c:1646 */ break; case 146: #line 689 "parser.y" /* yacc.c:1646 */ { - bx_dbg_info_device("", ""); + bx_dbg_info_linux_command(); free((yyvsp[-2].sval)); free((yyvsp[-1].sval)); } -#line 3006 "y.tab.c" /* yacc.c:1646 */ +#line 2992 "y.tab.c" /* yacc.c:1646 */ break; case 147: #line 694 "parser.y" /* yacc.c:1646 */ { - bx_dbg_info_device((yyvsp[-1].sval), ""); - free((yyvsp[-3].sval)); free((yyvsp[-2].sval)); + bx_dbg_info_symbols_command(0); + free((yyvsp[-2].sval)); free((yyvsp[-1].sval)); } -#line 3015 "y.tab.c" /* yacc.c:1646 */ +#line 3001 "y.tab.c" /* yacc.c:1646 */ break; case 148: #line 699 "parser.y" /* yacc.c:1646 */ { - bx_dbg_info_device((yyvsp[-2].sval), (yyvsp[-1].sval)); - free((yyvsp[-4].sval)); free((yyvsp[-3].sval)); + bx_dbg_info_symbols_command((yyvsp[-1].sval)); + free((yyvsp[-3].sval)); free((yyvsp[-2].sval)); free((yyvsp[-1].sval)); } -#line 3024 "y.tab.c" /* yacc.c:1646 */ +#line 3010 "y.tab.c" /* yacc.c:1646 */ break; case 149: #line 704 "parser.y" /* yacc.c:1646 */ { - bx_dbg_info_device((yyvsp[-1].sval), ""); - free((yyvsp[-3].sval)); free((yyvsp[-2].sval)); + bx_dbg_info_device("", ""); + free((yyvsp[-2].sval)); free((yyvsp[-1].sval)); } -#line 3033 "y.tab.c" /* yacc.c:1646 */ +#line 3019 "y.tab.c" /* yacc.c:1646 */ break; case 150: #line 709 "parser.y" /* yacc.c:1646 */ { - bx_dbg_info_device((yyvsp[-2].sval), (yyvsp[-1].sval)); - free((yyvsp[-4].sval)); free((yyvsp[-3].sval)); + bx_dbg_info_device((yyvsp[-1].sval), ""); + free((yyvsp[-3].sval)); free((yyvsp[-2].sval)); } -#line 3042 "y.tab.c" /* yacc.c:1646 */ +#line 3028 "y.tab.c" /* yacc.c:1646 */ break; case 151: -#line 716 "parser.y" /* yacc.c:1646 */ - { (yyval.uval) = EMPTY_ARG; } -#line 3048 "y.tab.c" /* yacc.c:1646 */ +#line 714 "parser.y" /* yacc.c:1646 */ + { + bx_dbg_info_device((yyvsp[-2].sval), (yyvsp[-1].sval)); + free((yyvsp[-4].sval)); free((yyvsp[-3].sval)); + } +#line 3037 "y.tab.c" /* yacc.c:1646 */ + break; + + case 152: +#line 719 "parser.y" /* yacc.c:1646 */ + { + bx_dbg_info_device((yyvsp[-1].sval), ""); + free((yyvsp[-3].sval)); free((yyvsp[-2].sval)); + } +#line 3046 "y.tab.c" /* yacc.c:1646 */ break; case 153: -#line 721 "parser.y" /* yacc.c:1646 */ +#line 724 "parser.y" /* yacc.c:1646 */ + { + bx_dbg_info_device((yyvsp[-2].sval), (yyvsp[-1].sval)); + free((yyvsp[-4].sval)); free((yyvsp[-3].sval)); + } +#line 3055 "y.tab.c" /* yacc.c:1646 */ + break; + + case 154: +#line 731 "parser.y" /* yacc.c:1646 */ + { (yyval.uval) = EMPTY_ARG; } +#line 3061 "y.tab.c" /* yacc.c:1646 */ + break; + + case 156: +#line 736 "parser.y" /* yacc.c:1646 */ { bx_dbg_info_registers_command(BX_INFO_GENERAL_PURPOSE_REGS); free((yyvsp[-1].sval)); } -#line 3057 "y.tab.c" /* yacc.c:1646 */ +#line 3070 "y.tab.c" /* yacc.c:1646 */ break; - case 154: -#line 729 "parser.y" /* yacc.c:1646 */ + case 157: +#line 744 "parser.y" /* yacc.c:1646 */ { bx_dbg_info_registers_command(BX_INFO_FPU_REGS); free((yyvsp[-1].sval)); } -#line 3066 "y.tab.c" /* yacc.c:1646 */ +#line 3079 "y.tab.c" /* yacc.c:1646 */ break; - case 155: -#line 737 "parser.y" /* yacc.c:1646 */ + case 158: +#line 752 "parser.y" /* yacc.c:1646 */ { bx_dbg_info_registers_command(BX_INFO_MMX_REGS); free((yyvsp[-1].sval)); } -#line 3075 "y.tab.c" /* yacc.c:1646 */ +#line 3088 "y.tab.c" /* yacc.c:1646 */ break; - case 156: -#line 745 "parser.y" /* yacc.c:1646 */ + case 159: +#line 760 "parser.y" /* yacc.c:1646 */ { bx_dbg_info_registers_command(BX_INFO_SSE_REGS); free((yyvsp[-1].sval)); } -#line 3084 "y.tab.c" /* yacc.c:1646 */ +#line 3097 "y.tab.c" /* yacc.c:1646 */ break; - case 157: -#line 753 "parser.y" /* yacc.c:1646 */ + case 160: +#line 768 "parser.y" /* yacc.c:1646 */ { bx_dbg_info_registers_command(BX_INFO_YMM_REGS); free((yyvsp[-1].sval)); } -#line 3093 "y.tab.c" /* yacc.c:1646 */ +#line 3106 "y.tab.c" /* yacc.c:1646 */ break; - case 158: -#line 761 "parser.y" /* yacc.c:1646 */ + case 161: +#line 776 "parser.y" /* yacc.c:1646 */ { bx_dbg_info_registers_command(BX_INFO_ZMM_REGS); free((yyvsp[-1].sval)); } -#line 3102 "y.tab.c" /* yacc.c:1646 */ +#line 3115 "y.tab.c" /* yacc.c:1646 */ break; - case 159: -#line 769 "parser.y" /* yacc.c:1646 */ + case 162: +#line 784 "parser.y" /* yacc.c:1646 */ { bx_dbg_info_segment_regs_command(); free((yyvsp[-1].sval)); } -#line 3111 "y.tab.c" /* yacc.c:1646 */ +#line 3124 "y.tab.c" /* yacc.c:1646 */ break; - case 160: -#line 777 "parser.y" /* yacc.c:1646 */ + case 163: +#line 792 "parser.y" /* yacc.c:1646 */ { bx_dbg_info_control_regs_command(); free((yyvsp[-1].sval)); } -#line 3120 "y.tab.c" /* yacc.c:1646 */ +#line 3133 "y.tab.c" /* yacc.c:1646 */ break; - case 161: -#line 785 "parser.y" /* yacc.c:1646 */ + case 164: +#line 800 "parser.y" /* yacc.c:1646 */ { bx_dbg_info_debug_regs_command(); free((yyvsp[-1].sval)); } -#line 3129 "y.tab.c" /* yacc.c:1646 */ +#line 3142 "y.tab.c" /* yacc.c:1646 */ break; - case 162: -#line 793 "parser.y" /* yacc.c:1646 */ + case 165: +#line 808 "parser.y" /* yacc.c:1646 */ { bx_dbg_del_breakpoint_command((yyvsp[-1].uval)); free((yyvsp[-2].sval)); } -#line 3138 "y.tab.c" /* yacc.c:1646 */ +#line 3151 "y.tab.c" /* yacc.c:1646 */ break; - case 163: -#line 801 "parser.y" /* yacc.c:1646 */ + case 166: +#line 816 "parser.y" /* yacc.c:1646 */ { bx_dbg_en_dis_breakpoint_command((yyvsp[-1].uval), 1); free((yyvsp[-2].sval)); } -#line 3147 "y.tab.c" /* yacc.c:1646 */ +#line 3160 "y.tab.c" /* yacc.c:1646 */ break; - case 164: -#line 808 "parser.y" /* yacc.c:1646 */ + case 167: +#line 823 "parser.y" /* yacc.c:1646 */ { bx_dbg_en_dis_breakpoint_command((yyvsp[-1].uval), 0); free((yyvsp[-2].sval)); } -#line 3156 "y.tab.c" /* yacc.c:1646 */ +#line 3169 "y.tab.c" /* yacc.c:1646 */ break; - case 165: -#line 816 "parser.y" /* yacc.c:1646 */ + case 168: +#line 831 "parser.y" /* yacc.c:1646 */ { bx_dbg_quit_command(); free((yyvsp[-1].sval)); } -#line 3165 "y.tab.c" /* yacc.c:1646 */ - break; - - case 166: -#line 824 "parser.y" /* yacc.c:1646 */ - { - bx_dbg_examine_command((yyvsp[-3].sval), (yyvsp[-2].sval),1, (yyvsp[-1].uval), 1); - free((yyvsp[-3].sval)); free((yyvsp[-2].sval)); - } -#line 3174 "y.tab.c" /* yacc.c:1646 */ - break; - - case 167: -#line 829 "parser.y" /* yacc.c:1646 */ - { - bx_dbg_examine_command((yyvsp[-2].sval), (yyvsp[-1].sval),1, 0, 0); - free((yyvsp[-2].sval)); free((yyvsp[-1].sval)); - } -#line 3183 "y.tab.c" /* yacc.c:1646 */ - break; - - case 168: -#line 834 "parser.y" /* yacc.c:1646 */ - { - bx_dbg_examine_command((yyvsp[-2].sval), NULL,0, (yyvsp[-1].uval), 1); - free((yyvsp[-2].sval)); - } -#line 3192 "y.tab.c" /* yacc.c:1646 */ +#line 3178 "y.tab.c" /* yacc.c:1646 */ break; case 169: #line 839 "parser.y" /* yacc.c:1646 */ { - bx_dbg_examine_command((yyvsp[-1].sval), NULL,0, 0, 0); - free((yyvsp[-1].sval)); + bx_dbg_examine_command((yyvsp[-3].sval), (yyvsp[-2].sval),1, (yyvsp[-1].uval), 1); + free((yyvsp[-3].sval)); free((yyvsp[-2].sval)); } -#line 3201 "y.tab.c" /* yacc.c:1646 */ +#line 3187 "y.tab.c" /* yacc.c:1646 */ break; case 170: -#line 847 "parser.y" /* yacc.c:1646 */ +#line 844 "parser.y" /* yacc.c:1646 */ + { + bx_dbg_examine_command((yyvsp[-2].sval), (yyvsp[-1].sval),1, 0, 0); + free((yyvsp[-2].sval)); free((yyvsp[-1].sval)); + } +#line 3196 "y.tab.c" /* yacc.c:1646 */ + break; + + case 171: +#line 849 "parser.y" /* yacc.c:1646 */ + { + bx_dbg_examine_command((yyvsp[-2].sval), NULL,0, (yyvsp[-1].uval), 1); + free((yyvsp[-2].sval)); + } +#line 3205 "y.tab.c" /* yacc.c:1646 */ + break; + + case 172: +#line 854 "parser.y" /* yacc.c:1646 */ + { + bx_dbg_examine_command((yyvsp[-1].sval), NULL,0, 0, 0); + free((yyvsp[-1].sval)); + } +#line 3214 "y.tab.c" /* yacc.c:1646 */ + break; + + case 173: +#line 862 "parser.y" /* yacc.c:1646 */ { bx_dbg_restore_command((yyvsp[-2].sval), (yyvsp[-1].sval)); free((yyvsp[-3].sval)); free((yyvsp[-2].sval)); free((yyvsp[-1].sval)); } -#line 3210 "y.tab.c" /* yacc.c:1646 */ +#line 3223 "y.tab.c" /* yacc.c:1646 */ break; - case 171: -#line 855 "parser.y" /* yacc.c:1646 */ + case 174: +#line 870 "parser.y" /* yacc.c:1646 */ { bx_dbg_writemem_command((yyvsp[-3].sval), (yyvsp[-2].uval), (yyvsp[-1].uval)); free((yyvsp[-4].sval)); free((yyvsp[-3].sval)); } -#line 3219 "y.tab.c" /* yacc.c:1646 */ +#line 3232 "y.tab.c" /* yacc.c:1646 */ break; - case 172: -#line 863 "parser.y" /* yacc.c:1646 */ + case 175: +#line 878 "parser.y" /* yacc.c:1646 */ { bx_dbg_setpmem_command((yyvsp[-3].uval), (yyvsp[-2].uval), (yyvsp[-1].uval)); free((yyvsp[-4].sval)); } -#line 3228 "y.tab.c" /* yacc.c:1646 */ +#line 3241 "y.tab.c" /* yacc.c:1646 */ break; - case 173: -#line 871 "parser.y" /* yacc.c:1646 */ + case 176: +#line 886 "parser.y" /* yacc.c:1646 */ { bx_dbg_query_command((yyvsp[-1].sval)); free((yyvsp[-2].sval)); free((yyvsp[-1].sval)); } -#line 3237 "y.tab.c" /* yacc.c:1646 */ +#line 3250 "y.tab.c" /* yacc.c:1646 */ break; - case 174: -#line 879 "parser.y" /* yacc.c:1646 */ + case 177: +#line 894 "parser.y" /* yacc.c:1646 */ { bx_dbg_take_command((yyvsp[-1].sval), 1); free((yyvsp[-2].sval)); free((yyvsp[-1].sval)); } -#line 3246 "y.tab.c" /* yacc.c:1646 */ +#line 3259 "y.tab.c" /* yacc.c:1646 */ break; - case 175: -#line 884 "parser.y" /* yacc.c:1646 */ + case 178: +#line 899 "parser.y" /* yacc.c:1646 */ { bx_dbg_take_command((yyvsp[-2].sval), (yyvsp[-1].uval)); free((yyvsp[-3].sval)); free((yyvsp[-2].sval)); } -#line 3255 "y.tab.c" /* yacc.c:1646 */ +#line 3268 "y.tab.c" /* yacc.c:1646 */ break; - case 176: -#line 889 "parser.y" /* yacc.c:1646 */ + case 179: +#line 904 "parser.y" /* yacc.c:1646 */ { bx_dbg_take_command((yyvsp[-1].sval), 1); free((yyvsp[-2].sval)); free((yyvsp[-1].sval)); } -#line 3264 "y.tab.c" /* yacc.c:1646 */ - break; - - case 177: -#line 897 "parser.y" /* yacc.c:1646 */ - { - bx_dbg_disassemble_current(NULL); - free((yyvsp[-1].sval)); - } -#line 3273 "y.tab.c" /* yacc.c:1646 */ - break; - - case 178: -#line 902 "parser.y" /* yacc.c:1646 */ - { - bx_dbg_disassemble_command(NULL, (yyvsp[-1].uval), (yyvsp[-1].uval)); - free((yyvsp[-2].sval)); - } -#line 3282 "y.tab.c" /* yacc.c:1646 */ - break; - - case 179: -#line 907 "parser.y" /* yacc.c:1646 */ - { - bx_dbg_disassemble_command(NULL, (yyvsp[-2].uval), (yyvsp[-1].uval)); - free((yyvsp[-3].sval)); - } -#line 3291 "y.tab.c" /* yacc.c:1646 */ +#line 3277 "y.tab.c" /* yacc.c:1646 */ break; case 180: #line 912 "parser.y" /* yacc.c:1646 */ { - bx_dbg_disassemble_current((yyvsp[-1].sval)); - free((yyvsp[-2].sval)); free((yyvsp[-1].sval)); + bx_dbg_disassemble_current(NULL); + free((yyvsp[-1].sval)); } -#line 3300 "y.tab.c" /* yacc.c:1646 */ +#line 3286 "y.tab.c" /* yacc.c:1646 */ break; case 181: #line 917 "parser.y" /* yacc.c:1646 */ { - bx_dbg_disassemble_command((yyvsp[-2].sval), (yyvsp[-1].uval), (yyvsp[-1].uval)); - free((yyvsp[-3].sval)); free((yyvsp[-2].sval)); + bx_dbg_disassemble_command(NULL, (yyvsp[-1].uval), (yyvsp[-1].uval)); + free((yyvsp[-2].sval)); } -#line 3309 "y.tab.c" /* yacc.c:1646 */ +#line 3295 "y.tab.c" /* yacc.c:1646 */ break; case 182: #line 922 "parser.y" /* yacc.c:1646 */ { - bx_dbg_disassemble_command((yyvsp[-3].sval), (yyvsp[-2].uval), (yyvsp[-1].uval)); - free((yyvsp[-4].sval)); free((yyvsp[-3].sval)); + bx_dbg_disassemble_command(NULL, (yyvsp[-2].uval), (yyvsp[-1].uval)); + free((yyvsp[-3].sval)); } -#line 3318 "y.tab.c" /* yacc.c:1646 */ +#line 3304 "y.tab.c" /* yacc.c:1646 */ break; case 183: #line 927 "parser.y" /* yacc.c:1646 */ { - bx_dbg_disassemble_switch_mode(); + bx_dbg_disassemble_current((yyvsp[-1].sval)); free((yyvsp[-2].sval)); free((yyvsp[-1].sval)); } -#line 3327 "y.tab.c" /* yacc.c:1646 */ +#line 3313 "y.tab.c" /* yacc.c:1646 */ break; case 184: #line 932 "parser.y" /* yacc.c:1646 */ { - bx_dbg_disassemble_hex_mode_switch((yyvsp[-1].bval)); + bx_dbg_disassemble_command((yyvsp[-2].sval), (yyvsp[-1].uval), (yyvsp[-1].uval)); free((yyvsp[-3].sval)); free((yyvsp[-2].sval)); } -#line 3336 "y.tab.c" /* yacc.c:1646 */ +#line 3322 "y.tab.c" /* yacc.c:1646 */ break; case 185: #line 937 "parser.y" /* yacc.c:1646 */ { - bx_dbg_set_disassemble_size((yyvsp[-1].uval)); + bx_dbg_disassemble_command((yyvsp[-3].sval), (yyvsp[-2].uval), (yyvsp[-1].uval)); free((yyvsp[-4].sval)); free((yyvsp[-3].sval)); } -#line 3345 "y.tab.c" /* yacc.c:1646 */ +#line 3331 "y.tab.c" /* yacc.c:1646 */ break; case 186: -#line 945 "parser.y" /* yacc.c:1646 */ +#line 942 "parser.y" /* yacc.c:1646 */ { - bx_dbg_instrument_command((yyvsp[-1].sval)); + bx_dbg_disassemble_switch_mode(); free((yyvsp[-2].sval)); free((yyvsp[-1].sval)); } -#line 3354 "y.tab.c" /* yacc.c:1646 */ +#line 3340 "y.tab.c" /* yacc.c:1646 */ break; case 187: -#line 950 "parser.y" /* yacc.c:1646 */ +#line 947 "parser.y" /* yacc.c:1646 */ + { + bx_dbg_disassemble_hex_mode_switch((yyvsp[-1].bval)); + free((yyvsp[-3].sval)); free((yyvsp[-2].sval)); + } +#line 3349 "y.tab.c" /* yacc.c:1646 */ + break; + + case 188: +#line 952 "parser.y" /* yacc.c:1646 */ + { + bx_dbg_set_disassemble_size((yyvsp[-1].uval)); + free((yyvsp[-4].sval)); free((yyvsp[-3].sval)); + } +#line 3358 "y.tab.c" /* yacc.c:1646 */ + break; + + case 189: +#line 960 "parser.y" /* yacc.c:1646 */ { bx_dbg_instrument_command((yyvsp[-1].sval)); free((yyvsp[-2].sval)); free((yyvsp[-1].sval)); } -#line 3363 "y.tab.c" /* yacc.c:1646 */ +#line 3367 "y.tab.c" /* yacc.c:1646 */ break; - case 188: -#line 958 "parser.y" /* yacc.c:1646 */ + case 190: +#line 965 "parser.y" /* yacc.c:1646 */ + { + bx_dbg_instrument_command((yyvsp[-1].sval)); + free((yyvsp[-2].sval)); free((yyvsp[-1].sval)); + } +#line 3376 "y.tab.c" /* yacc.c:1646 */ + break; + + case 191: +#line 973 "parser.y" /* yacc.c:1646 */ { bx_dbg_doit_command((yyvsp[-1].uval)); free((yyvsp[-2].sval)); } -#line 3372 "y.tab.c" /* yacc.c:1646 */ +#line 3385 "y.tab.c" /* yacc.c:1646 */ break; - case 189: -#line 966 "parser.y" /* yacc.c:1646 */ + case 192: +#line 981 "parser.y" /* yacc.c:1646 */ { bx_dbg_crc_command((yyvsp[-2].uval), (yyvsp[-1].uval)); free((yyvsp[-3].sval)); } -#line 3381 "y.tab.c" /* yacc.c:1646 */ +#line 3394 "y.tab.c" /* yacc.c:1646 */ break; - case 190: -#line 974 "parser.y" /* yacc.c:1646 */ + case 193: +#line 989 "parser.y" /* yacc.c:1646 */ { dbg_printf("q|quit|exit - quit debugger and emulator execution\n"); free((yyvsp[-2].sval));free((yyvsp[-1].sval)); } -#line 3390 "y.tab.c" /* yacc.c:1646 */ +#line 3403 "y.tab.c" /* yacc.c:1646 */ break; - case 191: -#line 979 "parser.y" /* yacc.c:1646 */ + case 194: +#line 994 "parser.y" /* yacc.c:1646 */ { dbg_printf("c|cont|continue - continue executing\n"); dbg_printf("c|cont|continue if \"expression\" - continue executing only if expression is true\n"); free((yyvsp[-2].sval));free((yyvsp[-1].sval)); } -#line 3400 "y.tab.c" /* yacc.c:1646 */ +#line 3413 "y.tab.c" /* yacc.c:1646 */ break; - case 192: -#line 985 "parser.y" /* yacc.c:1646 */ + case 195: +#line 1000 "parser.y" /* yacc.c:1646 */ { dbg_printf("s|step [count] - execute #count instructions on current processor (default is one instruction)\n"); dbg_printf("s|step [cpu] - execute #count instructions on processor #cpu\n"); dbg_printf("s|step all - execute #count instructions on all the processors\n"); free((yyvsp[-2].sval));free((yyvsp[-1].sval)); } -#line 3411 "y.tab.c" /* yacc.c:1646 */ +#line 3424 "y.tab.c" /* yacc.c:1646 */ break; - case 193: -#line 992 "parser.y" /* yacc.c:1646 */ + case 196: +#line 1007 "parser.y" /* yacc.c:1646 */ { dbg_printf("n|next|p - execute instruction stepping over subroutines\n"); free((yyvsp[-2].sval));free((yyvsp[-1].sval)); } -#line 3420 "y.tab.c" /* yacc.c:1646 */ +#line 3433 "y.tab.c" /* yacc.c:1646 */ break; - case 194: -#line 997 "parser.y" /* yacc.c:1646 */ + case 197: +#line 1012 "parser.y" /* yacc.c:1646 */ { dbg_printf("vb|vbreak - set a virtual address instruction breakpoint\n"); dbg_printf("vb|vbreak if \"expression\" - set a conditional virtual address instruction breakpoint\n"); free((yyvsp[-2].sval));free((yyvsp[-1].sval)); } -#line 3430 "y.tab.c" /* yacc.c:1646 */ +#line 3443 "y.tab.c" /* yacc.c:1646 */ break; - case 195: -#line 1003 "parser.y" /* yacc.c:1646 */ + case 198: +#line 1018 "parser.y" /* yacc.c:1646 */ { dbg_printf("lb|lbreak - set a linear address instruction breakpoint\n"); dbg_printf("lb|lbreak if \"expression\" - set a conditional linear address instruction breakpoint\n"); free((yyvsp[-2].sval));free((yyvsp[-1].sval)); } -#line 3440 "y.tab.c" /* yacc.c:1646 */ +#line 3453 "y.tab.c" /* yacc.c:1646 */ break; - case 196: -#line 1009 "parser.y" /* yacc.c:1646 */ + case 199: +#line 1024 "parser.y" /* yacc.c:1646 */ { dbg_printf("p|pb|break|pbreak - set a physical address instruction breakpoint\n"); dbg_printf("p|pb|break|pbreak if \"expression\" - set a conditional physical address instruction breakpoint\n"); free((yyvsp[-2].sval));free((yyvsp[-1].sval)); } -#line 3450 "y.tab.c" /* yacc.c:1646 */ - break; - - case 197: -#line 1015 "parser.y" /* yacc.c:1646 */ - { - dbg_printf("d|del|delete - delete a breakpoint\n"); - free((yyvsp[-2].sval));free((yyvsp[-1].sval)); - } -#line 3459 "y.tab.c" /* yacc.c:1646 */ - break; - - case 198: -#line 1020 "parser.y" /* yacc.c:1646 */ - { - dbg_printf("bpe - enable a breakpoint\n"); - free((yyvsp[-2].sval));free((yyvsp[-1].sval)); - } -#line 3468 "y.tab.c" /* yacc.c:1646 */ - break; - - case 199: -#line 1025 "parser.y" /* yacc.c:1646 */ - { - dbg_printf("bpd - disable a breakpoint\n"); - free((yyvsp[-2].sval));free((yyvsp[-1].sval)); - } -#line 3477 "y.tab.c" /* yacc.c:1646 */ +#line 3463 "y.tab.c" /* yacc.c:1646 */ break; case 200: #line 1030 "parser.y" /* yacc.c:1646 */ { - dbg_printf("blist - list all breakpoints (same as 'info break')\n"); + dbg_printf("d|del|delete - delete a breakpoint\n"); free((yyvsp[-2].sval));free((yyvsp[-1].sval)); } -#line 3486 "y.tab.c" /* yacc.c:1646 */ +#line 3472 "y.tab.c" /* yacc.c:1646 */ break; case 201: #line 1035 "parser.y" /* yacc.c:1646 */ { - dbg_printf("modebp - toggles mode switch breakpoint\n"); + dbg_printf("bpe - enable a breakpoint\n"); free((yyvsp[-2].sval));free((yyvsp[-1].sval)); } -#line 3495 "y.tab.c" /* yacc.c:1646 */ +#line 3481 "y.tab.c" /* yacc.c:1646 */ break; case 202: #line 1040 "parser.y" /* yacc.c:1646 */ { - dbg_printf("vmexitbp - toggles VMEXIT switch breakpoint\n"); + dbg_printf("bpd - disable a breakpoint\n"); free((yyvsp[-2].sval));free((yyvsp[-1].sval)); } -#line 3504 "y.tab.c" /* yacc.c:1646 */ +#line 3490 "y.tab.c" /* yacc.c:1646 */ break; case 203: #line 1045 "parser.y" /* yacc.c:1646 */ { - 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)); } -#line 3513 "y.tab.c" /* yacc.c:1646 */ +#line 3499 "y.tab.c" /* yacc.c:1646 */ break; case 204: #line 1050 "parser.y" /* yacc.c:1646 */ + { + dbg_printf("modebp - toggles mode switch breakpoint\n"); + free((yyvsp[-2].sval));free((yyvsp[-1].sval)); + } +#line 3508 "y.tab.c" /* yacc.c:1646 */ + break; + + case 205: +#line 1055 "parser.y" /* yacc.c:1646 */ + { + dbg_printf("vmexitbp - toggles VMEXIT switch breakpoint\n"); + free((yyvsp[-2].sval));free((yyvsp[-1].sval)); + } +#line 3517 "y.tab.c" /* yacc.c:1646 */ + break; + + case 206: +#line 1060 "parser.y" /* yacc.c:1646 */ + { + dbg_printf("crc - show CRC32 for physical memory range addr1..addr2\n"); + free((yyvsp[-2].sval));free((yyvsp[-1].sval)); + } +#line 3526 "y.tab.c" /* yacc.c:1646 */ + break; + + case 207: +#line 1065 "parser.y" /* yacc.c:1646 */ { 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)); } -#line 3523 "y.tab.c" /* yacc.c:1646 */ +#line 3536 "y.tab.c" /* yacc.c:1646 */ break; - case 205: -#line 1056 "parser.y" /* yacc.c:1646 */ + case 208: +#line 1071 "parser.y" /* yacc.c:1646 */ { 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)); } -#line 3533 "y.tab.c" /* yacc.c:1646 */ +#line 3546 "y.tab.c" /* yacc.c:1646 */ break; - case 206: -#line 1062 "parser.y" /* yacc.c:1646 */ + case 209: +#line 1077 "parser.y" /* yacc.c:1646 */ { dbg_printf("trace-mem on - print all memory accesses occured during instruction execution\n"); dbg_printf("trace-mem off - disable memory accesses tracing\n"); free((yyvsp[-2].sval));free((yyvsp[-1].sval)); } -#line 3543 "y.tab.c" /* yacc.c:1646 */ +#line 3556 "y.tab.c" /* yacc.c:1646 */ break; - case 207: -#line 1068 "parser.y" /* yacc.c:1646 */ + case 210: +#line 1083 "parser.y" /* yacc.c:1646 */ { dbg_printf("restore [path] - restore bochs root param from the file\n"); dbg_printf("for example:\n"); @@ -3551,164 +3564,164 @@ yyreduce: dbg_printf("restore \"cpu0\" \"/save\" - restore CPU #0 from file \"cpu0\" located in directory \"/save\"\n"); free((yyvsp[-2].sval));free((yyvsp[-1].sval)); } -#line 3555 "y.tab.c" /* yacc.c:1646 */ - break; - - case 208: -#line 1076 "parser.y" /* yacc.c:1646 */ - { - dbg_printf("ptime - print current time (number of ticks since start of simulation)\n"); - free((yyvsp[-2].sval));free((yyvsp[-1].sval)); - } -#line 3564 "y.tab.c" /* yacc.c:1646 */ - break; - - case 209: -#line 1081 "parser.y" /* yacc.c:1646 */ - { - dbg_printf("sb - insert a time breakpoint delta instructions into the future\n"); - free((yyvsp[-2].sval));free((yyvsp[-1].sval)); - } -#line 3573 "y.tab.c" /* yacc.c:1646 */ - break; - - case 210: -#line 1086 "parser.y" /* yacc.c:1646 */ - { - dbg_printf("sba