From d37f62d2b420f4dbea37cdd1fddddef1ee758280 Mon Sep 17 00:00:00 2001 From: Stanislav Shwartsman Date: Mon, 13 Feb 2006 18:28:14 +0000 Subject: [PATCH] Support for 64-bit registers set reg = expr command Print found guard cs_eip in more nice way, it was too mane leading zeroes in x86-64 mode ON --- bochs/bx_debug/dbg_main.cc | 108 +- bochs/bx_debug/debug.h | 6 +- bochs/bx_debug/lexer.c | 1770 ++++++++++++++++++--------- bochs/bx_debug/lexer.l | 131 +- bochs/bx_debug/parser.c | 2359 +++++++++++++++++------------------- bochs/bx_debug/parser.h | 437 +++---- bochs/bx_debug/parser.y | 104 +- 7 files changed, 2722 insertions(+), 2193 deletions(-) diff --git a/bochs/bx_debug/dbg_main.cc b/bochs/bx_debug/dbg_main.cc index 74538b424..f4417fed4 100644 --- a/bochs/bx_debug/dbg_main.cc +++ b/bochs/bx_debug/dbg_main.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: dbg_main.cc,v 1.55 2006-02-12 20:43:01 sshwarts Exp $ +// $Id: dbg_main.cc,v 1.56 2006-02-13 18:28:13 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -834,6 +834,21 @@ void bx_dbg_print_string_command(bx_address start_addr) dbg_printf("\n"); } +static void dbg_print_guard_found(unsigned cpu_mode, Bit32u cs, bx_address eip, bx_address laddr) +{ +#if BX_SUPPORT_X86_64 + if (cpu_mode == BX_MODE_LONG_64) { + dbg_printf("0x%04x:" FMT_ADDRX " (0x" FMT_ADDRX ")", cs, eip, laddr); + return; + } +#endif + + if (cpu_mode >= BX_MODE_IA32_PROTECTED) + dbg_printf("%04x:%08x (0x%08x)", cs, (unsigned) eip, (unsigned) laddr); + else // real or v8086 mode + dbg_printf("%04x:%04x (0x%08x)", cs, (unsigned) eip, (unsigned) laddr); +} + unsigned dbg_show_mask = 0; #define BX_DBG_SHOW_CALLRET (Flag_call|Flag_ret) @@ -1005,34 +1020,34 @@ int bx_dbg_show_symbolic(void) /* interrupts */ if (dbg_show_mask & BX_DBG_SHOW_SOFTINT) { if(BX_CPU(dbg_cpu)->show_flag & Flag_softint) { - dbg_printf (FMT_TICK ": softint 0x%04x:" FMT_ADDRX " (0x" FMT_ADDRX ")\n", - bx_pc_system.time_ticks(), - BX_CPU(dbg_cpu)->guard_found.cs, - BX_CPU(dbg_cpu)->guard_found.eip, + dbg_printf(FMT_TICK ": softint ", bx_pc_system.time_ticks()); + dbg_print_guard_found(BX_CPU(dbg_cpu)->get_cpu_mode(), + BX_CPU(dbg_cpu)->guard_found.cs, BX_CPU(dbg_cpu)->guard_found.eip, BX_CPU(dbg_cpu)->guard_found.laddr); + dbg_printf("\n"); } } if (dbg_show_mask & BX_DBG_SHOW_EXTINT) { if((BX_CPU(dbg_cpu)->show_flag & Flag_intsig) && !(BX_CPU(dbg_cpu)->show_flag & Flag_softint)) { - dbg_printf (FMT_TICK ": exception (not softint) 0x%04x:" FMT_ADDRX " (0x" FMT_ADDRX ")\n", - bx_pc_system.time_ticks(), - BX_CPU(dbg_cpu)->guard_found.cs, - BX_CPU(dbg_cpu)->guard_found.eip, + dbg_printf(FMT_TICK ": exception (not softint) ", bx_pc_system.time_ticks()); + dbg_print_guard_found(BX_CPU(dbg_cpu)->get_cpu_mode(), + BX_CPU(dbg_cpu)->guard_found.cs, BX_CPU(dbg_cpu)->guard_found.eip, BX_CPU(dbg_cpu)->guard_found.laddr); + dbg_printf("\n"); } } if (dbg_show_mask & BX_DBG_SHOW_IRET) { if(BX_CPU(dbg_cpu)->show_flag & Flag_iret) { - dbg_printf (FMT_TICK ": iret 0x%04x:" FMT_ADDRX " (0x" FMT_ADDRX ")\n", - bx_pc_system.time_ticks(), - BX_CPU(dbg_cpu)->guard_found.cs, - BX_CPU(dbg_cpu)->guard_found.eip, + dbg_printf(FMT_TICK ": iret ", bx_pc_system.time_ticks()); + dbg_print_guard_found(BX_CPU(dbg_cpu)->get_cpu_mode(), + BX_CPU(dbg_cpu)->guard_found.cs, BX_CPU(dbg_cpu)->guard_found.eip, BX_CPU(dbg_cpu)->guard_found.laddr); + dbg_printf("\n"); } } - + /* calls */ if (dbg_show_mask & BX_DBG_SHOW_CALLRET) { @@ -1041,16 +1056,17 @@ int bx_dbg_show_symbolic(void) bx_bool valid; BX_CPU(dbg_cpu)->dbg_xlate_linear2phy(BX_CPU(dbg_cpu)->guard_found.laddr, &phy, &valid); - dbg_printf (FMT_TICK ": call 0x%04x:" FMT_ADDRX " 0x" FMT_ADDRX " (%08x) %s", - bx_pc_system.time_ticks(), - BX_CPU(dbg_cpu)->guard_found.cs, - BX_CPU(dbg_cpu)->guard_found.eip, - BX_CPU(dbg_cpu)->guard_found.laddr, - phy, - bx_dbg_symbolic_address(BX_CPU(dbg_cpu)->cr3, + dbg_printf(FMT_TICK ": call ", bx_pc_system.time_ticks()); + dbg_print_guard_found(BX_CPU(dbg_cpu)->get_cpu_mode(), + BX_CPU(dbg_cpu)->guard_found.cs, BX_CPU(dbg_cpu)->guard_found.eip, + BX_CPU(dbg_cpu)->guard_found.laddr); + if (!valid) dbg_printf(" phys not valid"); + else { + dbg_printf(" (phy: 0x%08x) %s", phy, + bx_dbg_symbolic_address(BX_CPU(dbg_cpu)->cr3, BX_CPU(dbg_cpu)->guard_found.eip, BX_CPU(dbg_cpu)->guard_found.laddr - BX_CPU(dbg_cpu)->guard_found.eip)); - if(!valid) dbg_printf(" phys not valid"); + } dbg_printf("\n"); } } @@ -1385,12 +1401,11 @@ void bx_dbg_print_guard_results(void) #if BX_DBG_SUPPORT_VIR_BPOINT else if (found & BX_DBG_GUARD_IADDR_VIR) { i = BX_CPU(cpu)->guard_found.iaddr_index; - dbg_printf("(%u) Breakpoint %u, " FMT_ADDRX " (0x%04x:" FMT_ADDRX ")\n", - cpu, - bx_guard.iaddr.vir[i].bpoint_id, - BX_CPU(cpu)->guard_found.laddr, - BX_CPU(cpu)->guard_found.cs, - BX_CPU(cpu)->guard_found.eip); + dbg_printf("(%u) Breakpoint %u, in "); + dbg_print_guard_found(BX_CPU(dbg_cpu)->get_cpu_mode(), + BX_CPU(cpu)->guard_found.cs, BX_CPU(cpu)->guard_found.eip, + BX_CPU(cpu)->guard_found.laddr); + dbg_printf("\n"); } #endif #if BX_DBG_SUPPORT_LIN_BPOINT @@ -3279,7 +3294,7 @@ Bit8u bx_dbg_get_reg8l_value(unsigned reg) if (reg < BX_GENERAL_REGISTERS) return BX_CPU(dbg_cpu)->get_reg8l(reg); - fprintf(stderr, "Unknown register [%d] !!!\n", reg); + dbg_printf("Unknown 8BL register [%d] !!!\n", reg); return 0; } @@ -3288,7 +3303,7 @@ Bit8u bx_dbg_get_reg8h_value(unsigned reg) if (reg < BX_GENERAL_REGISTERS) return BX_CPU(dbg_cpu)->get_reg8h(reg); - fprintf(stderr, "Unknown register [%d] !!!\n", reg); + dbg_printf("Unknown 8BH register [%d] !!!\n", reg); return 0; } @@ -3297,7 +3312,7 @@ Bit16u bx_dbg_get_reg16_value(unsigned reg) if (reg < BX_GENERAL_REGISTERS) return BX_CPU(dbg_cpu)->get_reg16(reg); - fprintf(stderr, "Unknown register [%d] !!!\n", reg); + dbg_printf("Unknown 16B register [%d] !!!\n", reg); return 0; } @@ -3306,7 +3321,18 @@ Bit32u bx_dbg_get_reg32_value(unsigned reg) if (reg < BX_GENERAL_REGISTERS) return BX_CPU(dbg_cpu)->get_reg32(reg); - fprintf(stderr, "Unknown register [%d] !!!\n", reg); + dbg_printf("Unknown 32B register [%d] !!!\n", reg); + return 0; +} + +Bit64u bx_dbg_get_reg64_value(unsigned reg) +{ +#if BX_SUPPORT_X86_64 + if (reg < BX_GENERAL_REGISTERS) + return BX_CPU(dbg_cpu)->get_reg64(reg); +#endif + + dbg_printf("Unknown 64B register [%d] !!!\n", reg); return 0; } @@ -3315,7 +3341,7 @@ void bx_dbg_set_reg8l_value(unsigned reg, Bit8u value) if (reg < BX_GENERAL_REGISTERS) BX_CPU(dbg_cpu)->set_reg8l(reg, value); else - fprintf(stderr, "Unknown register [%d] !!!\n", reg); + dbg_printf("Unknown 8BL register [%d] !!!\n", reg); } void bx_dbg_set_reg8h_value(unsigned reg, Bit8u value) @@ -3323,7 +3349,7 @@ void bx_dbg_set_reg8h_value(unsigned reg, Bit8u value) if (reg < BX_GENERAL_REGISTERS) BX_CPU(dbg_cpu)->set_reg8h(reg, value); else - fprintf(stderr, "Unknown register [%d] !!!\n", reg); + dbg_printf("Unknown 8BH register [%d] !!!\n", reg); } void bx_dbg_set_reg16_value(unsigned reg, Bit16u value) @@ -3331,7 +3357,7 @@ void bx_dbg_set_reg16_value(unsigned reg, Bit16u value) if (reg < BX_GENERAL_REGISTERS) BX_CPU(dbg_cpu)->set_reg16(reg, value); else - fprintf(stderr, "Unknown register [%d] !!!\n", reg); + dbg_printf("Unknown 16B register [%d] !!!\n", reg); } void bx_dbg_set_reg32_value(unsigned reg, Bit32u value) @@ -3339,7 +3365,17 @@ void bx_dbg_set_reg32_value(unsigned reg, Bit32u value) if (reg < BX_GENERAL_REGISTERS) BX_CPU(dbg_cpu)->set_reg32(reg, value); else - fprintf(stderr, "Unknown register [%d] !!!\n", reg); + dbg_printf("Unknown 32B register [%d] !!!\n", reg); +} + +void bx_dbg_set_reg64_value(unsigned reg, Bit64u value) +{ +#if BX_SUPPORT_X86_64 + if (reg < BX_GENERAL_REGISTERS) + BX_CPU(dbg_cpu)->set_reg64(reg, value); + else +#endif + dbg_printf("Unknown 64B register [%d] !!!\n", reg); } Bit16u bx_dbg_get_selector_value(unsigned int seg_no) diff --git a/bochs/bx_debug/debug.h b/bochs/bx_debug/debug.h index a34630a14..b94753e1c 100644 --- a/bochs/bx_debug/debug.h +++ b/bochs/bx_debug/debug.h @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: debug.h,v 1.20 2006-02-12 20:21:36 sshwarts Exp $ +// $Id: debug.h,v 1.21 2006-02-13 18:28:13 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2001 MandrakeSoft S.A. @@ -220,15 +220,17 @@ typedef struct { 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_intruction_pointer(void); +bx_address bx_dbg_get_instruction_pointer(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); Bit32u bx_dbg_get_reg32_value(unsigned reg); +Bit64u bx_dbg_get_reg64_value(unsigned reg); void bx_dbg_set_reg8l_value(unsigned reg, Bit8u value); void bx_dbg_set_reg8h_value(unsigned reg, Bit8u value); void bx_dbg_set_reg16_value(unsigned reg, Bit16u value); void bx_dbg_set_reg32_value(unsigned reg, Bit32u value); +void bx_dbg_set_reg64_value(unsigned reg, Bit64u value); Bit32u bx_dbg_get_laddr(Bit16u sel, Bit32u ofs); void bx_dbg_step_over_command(void); bx_num_range make_num_range (Bit64s from, Bit64s to); diff --git a/bochs/bx_debug/lexer.c b/bochs/bx_debug/lexer.c index 39475974d..68fd3319f 100644 --- a/bochs/bx_debug/lexer.c +++ b/bochs/bx_debug/lexer.c @@ -19,7 +19,7 @@ /* A lexical scanner generated by flex */ /* Scanner skeleton version: - * $Header: /home/volker/Archiv/bochs-cvs-rsync-20110222/bochs/bx_debug/lexer.c,v 1.15 2006-02-11 21:19:22 sshwarts Exp $ + * $Header: /home/volker/Archiv/bochs-cvs-rsync-20110222/bochs/bx_debug/lexer.c,v 1.16 2006-02-13 18:28:13 sshwarts Exp $ */ #define FLEX_SCANNER @@ -303,54 +303,59 @@ static void yy_fatal_error YY_PROTO(( yyconst char msg[] )); *yy_cp = '\0'; \ yy_c_buf_p = yy_cp; -#define YY_NUM_RULES 158 -#define YY_END_OF_BUFFER 159 -static yyconst short int yy_accept[398] = +#define YY_NUM_RULES 201 +#define YY_END_OF_BUFFER 202 +static yyconst short int yy_accept[451] = { 0, - 0, 0, 0, 0, 0, 0, 159, 156, 1, 154, - 142, 156, 155, 156, 139, 156, 143, 144, 135, 133, - 134, 136, 150, 150, 153, 156, 156, 128, 141, 151, - 21, 6, 47, 151, 151, 151, 127, 151, 151, 151, - 151, 13, 151, 14, 52, 28, 11, 151, 63, 151, - 151, 53, 140, 157, 1, 157, 153, 157, 1, 0, - 146, 0, 155, 152, 0, 145, 0, 148, 150, 149, - 0, 138, 137, 151, 98, 94, 102, 99, 95, 108, - 151, 103, 151, 100, 96, 151, 151, 25, 120, 104, - 151, 101, 107, 97, 151, 151, 123, 151, 105, 151, + 0, 0, 0, 0, 0, 0, 202, 199, 1, 197, + 185, 199, 198, 199, 182, 199, 186, 187, 178, 176, + 177, 179, 192, 192, 196, 199, 199, 171, 195, 184, + 193, 19, 6, 45, 193, 193, 193, 170, 193, 193, + 193, 193, 13, 193, 14, 50, 26, 11, 193, 61, + 193, 193, 51, 183, 200, 1, 200, 196, 200, 1, + 0, 189, 0, 198, 194, 0, 188, 0, 191, 192, + 0, 181, 180, 195, 193, 108, 92, 112, 109, 93, + 118, 193, 113, 193, 110, 94, 193, 193, 23, 163, + 114, 193, 111, 117, 95, 193, 193, 166, 193, 115, - 151, 151, 151, 151, 151, 121, 151, 151, 151, 124, - 151, 151, 125, 151, 151, 151, 110, 151, 151, 18, - 151, 151, 151, 151, 151, 151, 3, 151, 22, 151, - 151, 151, 151, 151, 151, 151, 74, 151, 151, 106, - 151, 109, 122, 151, 151, 151, 151, 151, 151, 151, - 16, 151, 151, 151, 151, 54, 130, 131, 132, 152, - 147, 35, 151, 49, 48, 151, 151, 151, 34, 5, - 151, 46, 151, 151, 59, 151, 151, 111, 117, 112, - 113, 116, 114, 151, 119, 115, 118, 151, 151, 32, - 38, 151, 151, 36, 151, 151, 60, 37, 151, 39, + 193, 193, 193, 193, 193, 193, 164, 193, 193, 193, + 167, 193, 193, 168, 193, 193, 193, 160, 193, 193, + 17, 193, 193, 193, 193, 193, 193, 3, 193, 20, + 193, 193, 193, 193, 193, 193, 195, 152, 153, 193, + 193, 193, 193, 193, 193, 193, 72, 193, 193, 116, + 193, 119, 165, 193, 193, 193, 193, 193, 193, 193, + 16, 193, 193, 193, 193, 52, 173, 174, 175, 194, + 190, 33, 193, 47, 46, 99, 193, 193, 193, 32, + 5, 193, 44, 97, 193, 193, 57, 193, 193, 128, + 134, 129, 130, 133, 131, 193, 161, 132, 135, 193, - 151, 151, 151, 0, 151, 4, 151, 151, 151, 61, - 151, 151, 151, 151, 151, 151, 151, 29, 75, 2, - 151, 151, 151, 33, 151, 151, 151, 151, 41, 151, - 151, 40, 151, 151, 93, 151, 151, 151, 151, 151, - 129, 7, 26, 151, 151, 151, 68, 151, 151, 51, - 151, 151, 127, 24, 151, 151, 151, 151, 151, 0, - 91, 12, 92, 151, 151, 151, 151, 151, 151, 50, - 82, 151, 151, 30, 0, 151, 84, 72, 151, 10, - 67, 151, 151, 58, 151, 151, 151, 151, 151, 151, - 15, 20, 151, 27, 151, 42, 151, 0, 151, 126, + 193, 30, 36, 193, 193, 34, 193, 193, 58, 35, + 193, 37, 193, 193, 193, 195, 193, 4, 193, 193, + 193, 59, 193, 193, 193, 193, 193, 154, 155, 156, + 157, 158, 159, 100, 136, 120, 101, 137, 121, 144, + 151, 145, 146, 149, 147, 193, 193, 27, 162, 148, + 150, 73, 2, 193, 96, 193, 193, 98, 31, 193, + 193, 193, 193, 39, 193, 193, 38, 193, 193, 91, + 193, 193, 193, 193, 193, 172, 7, 24, 193, 193, + 193, 66, 193, 193, 49, 193, 193, 170, 22, 193, + 193, 193, 193, 193, 195, 89, 12, 90, 193, 193, - 151, 151, 151, 43, 0, 151, 0, 151, 151, 151, - 151, 73, 56, 151, 151, 0, 151, 87, 9, 151, - 151, 69, 151, 151, 80, 89, 83, 151, 45, 64, - 151, 0, 88, 151, 19, 0, 78, 23, 151, 151, - 0, 76, 151, 0, 151, 151, 151, 0, 151, 17, - 151, 151, 0, 151, 0, 57, 151, 0, 151, 62, - 55, 0, 86, 0, 81, 8, 151, 44, 151, 0, - 77, 0, 151, 0, 0, 151, 151, 0, 0, 0, - 31, 0, 70, 151, 66, 0, 0, 0, 0, 65, - 0, 79, 0, 71, 85, 90, 0 + 193, 193, 193, 193, 48, 102, 138, 122, 103, 139, + 123, 104, 140, 124, 105, 141, 125, 106, 142, 126, + 107, 143, 127, 80, 193, 193, 28, 195, 193, 82, + 70, 193, 10, 65, 193, 193, 56, 193, 193, 193, + 193, 193, 193, 15, 18, 193, 25, 193, 40, 193, + 195, 193, 169, 193, 193, 193, 41, 0, 193, 195, + 193, 193, 193, 193, 71, 54, 193, 193, 195, 193, + 85, 9, 193, 193, 67, 193, 193, 78, 87, 81, + 193, 43, 62, 193, 195, 86, 193, 17, 0, 76, + 21, 193, 193, 0, 74, 193, 195, 193, 193, 193, + 0, 193, 16, 193, 193, 195, 193, 0, 55, 193, + 0, 193, 60, 53, 0, 84, 0, 79, 8, 193, + 42, 193, 0, 75, 0, 193, 0, 0, 193, 193, + 0, 0, 0, 29, 0, 68, 193, 64, 0, 0, + 0, 0, 63, 0, 77, 0, 69, 83, 88, 0 } ; static yyconst int yy_ec[256] = @@ -360,15 +365,15 @@ static yyconst int yy_ec[256] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 4, 5, 6, 7, 1, 8, 9, 10, 11, 12, 13, 1, 14, 1, 15, 16, 17, 18, - 17, 17, 17, 17, 17, 19, 19, 1, 20, 21, - 1, 22, 23, 1, 24, 24, 24, 24, 24, 24, - 25, 25, 25, 25, 25, 26, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, - 1, 27, 1, 28, 29, 1, 30, 31, 32, 33, + 19, 20, 21, 22, 22, 23, 24, 1, 25, 26, + 1, 27, 28, 1, 29, 29, 29, 29, 29, 29, + 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, + 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, + 1, 31, 1, 32, 33, 1, 34, 35, 36, 37, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 1, 56, 1, 1, 1, 1, 1, 1, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 1, 60, 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, 1, 1, @@ -385,242 +390,654 @@ static yyconst int yy_ec[256] = 1, 1, 1, 1, 1 } ; -static yyconst int yy_meta[57] = +static yyconst int yy_meta[61] = { 0, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 3, 3, 3, 3, 1, - 1, 1, 1, 4, 5, 5, 1, 1, 5, 6, - 7, 7, 7, 6, 6, 8, 8, 8, 9, 9, - 9, 8, 9, 8, 9, 9, 9, 8, 8, 8, - 9, 8, 8, 9, 9, 1 + 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 1, 1, 1, 1, 4, 5, + 1, 1, 5, 4, 6, 6, 6, 4, 4, 7, + 7, 7, 5, 5, 5, 7, 5, 7, 5, 5, + 5, 7, 7, 7, 5, 7, 8, 5, 5, 1 } ; -static yyconst short int yy_base[407] = +static yyconst short int yy_base[464] = { 0, - 0, 0, 55, 57, 59, 61, 503, 504, 500, 504, - 504, 60, 0, 0, 504, 57, 504, 504, 504, 504, - 504, 504, 72, 76, 504, 480, 478, 504, 504, 30, - 59, 73, 93, 117, 37, 68, 465, 111, 0, 107, - 454, 463, 62, 130, 446, 461, 149, 81, 451, 37, - 85, 448, 504, 504, 490, 156, 504, 188, 489, 81, - 504, 0, 0, 0, 115, 504, 0, 192, 196, 504, - 0, 504, 504, 0, 0, 449, 0, 0, 451, 133, - 454, 0, 446, 0, 0, 443, 435, 125, 0, 0, - 443, 0, 134, 0, 453, 444, 0, 439, 0, 427, + 0, 0, 59, 61, 63, 65, 253, 2311, 245, 2311, + 2311, 64, 0, 0, 2311, 61, 2311, 2311, 2311, 2311, + 2311, 2311, 48, 0, 2311, 216, 210, 2311, 0, 2311, + 90, 132, 81, 152, 176, 42, 123, 181, 194, 195, + 213, 134, 221, 235, 250, 254, 292, 310, 270, 330, + 238, 330, 292, 2311, 2311, 232, 372, 2311, 0, 227, + 70, 2311, 0, 0, 0, 72, 2311, 0, 101, 0, + 0, 2311, 2311, 0, 362, 363, 395, 396, 399, 411, + 419, 428, 436, 437, 446, 454, 458, 455, 475, 479, + 483, 487, 491, 489, 507, 516, 517, 525, 526, 534, - 54, 426, 125, 437, 432, 131, 438, 445, 424, 0, - 424, 428, 0, 430, 421, 88, 0, 423, 419, 420, - 417, 422, 434, 430, 135, 427, 0, 425, 413, 416, - 426, 427, 418, 417, 151, 163, 424, 404, 408, 396, - 412, 0, 415, 158, 410, 405, 160, 416, 397, 392, - 396, 412, 392, 406, 401, 0, 207, 211, 215, 0, - 0, 0, 390, 0, 0, 407, 404, 386, 0, 0, - 398, 399, 383, 401, 0, 381, 384, 0, 0, 0, - 0, 0, 0, 398, 0, 0, 0, 378, 390, 0, - 0, 394, 379, 0, 379, 373, 0, 0, 387, 0, + 542, 540, 547, 558, 566, 570, 585, 588, 603, 604, + 607, 619, 622, 631, 639, 640, 655, 643, 663, 664, + 667, 679, 687, 691, 701, 705, 709, 717, 721, 729, + 737, 746, 755, 756, 764, 772, 123, 42, 65, 776, + 774, 781, 792, 808, 804, 820, 824, 828, 836, 840, + 852, 856, 868, 876, 860, 880, 888, 900, 903, 904, + 919, 929, 937, 938, 946, 947, 0, 0, 0, 0, + 0, 956, 964, 965, 973, 982, 991, 999, 1003, 1007, + 1011, 1023, 1031, 1035, 1039, 1051, 1047, 1059, 1067, 1063, + 1071, 1083, 1086, 1087, 1095, 1104, 1105, 1113, 1114, 1122, - 370, 386, 384, 180, 368, 0, 382, 381, 381, 0, - 359, 369, 369, 363, 360, 375, 363, 197, 0, 192, - 354, 371, 356, 0, 358, 357, 352, 369, 0, 365, - 366, 0, 367, 362, 0, 363, 347, 344, 343, 351, - 0, 352, 341, 339, 333, 338, 0, 356, 348, 0, - 335, 352, 0, 0, 334, 350, 326, 364, 346, 360, - 504, 0, 0, 345, 336, 342, 323, 337, 316, 0, - 0, 322, 320, 0, 335, 324, 0, 0, 316, 326, - 0, 331, 318, 0, 327, 311, 329, 321, 323, 322, - 0, 0, 312, 0, 320, 0, 71, 321, 304, 0, + 1123, 1131, 1132, 1141, 1149, 1153, 1157, 1165, 1169, 1173, + 1185, 1177, 1189, 1193, 1207, 73, 1211, 1215, 1223, 1231, + 1235, 1239, 1243, 1247, 1251, 1261, 1265, 81, 122, 149, + 244, 276, 282, 0, 0, 0, 0, 0, 0, 1269, + 1273, 1285, 1288, 1289, 1297, 1305, 1306, 1309, 1321, 1325, + 1329, 1333, 1341, 1345, 1349, 1357, 1361, 1369, 1373, 1377, + 1381, 1385, 1397, 1400, 1409, 1417, 1421, 1433, 1436, 1445, + 1453, 1457, 1461, 1465, 1475, 1485, 1489, 1493, 1501, 1505, + 1509, 1523, 1531, 1532, 1540, 1541, 1550, 1559, 1560, 1568, + 1578, 1586, 1590, 1587, 208, 0, 1602, 1605, 1614, 1617, - 310, 300, 309, 0, 300, 302, 330, 305, 301, 313, - 328, 0, 0, 308, 291, 294, 304, 0, 0, 300, - 295, 321, 302, 293, 0, 0, 0, 282, 0, 0, - 297, 285, 0, 287, 0, 274, 0, 0, 291, 294, - 277, 0, 290, 273, 280, 307, 272, 272, 281, 0, - 283, 274, 265, 280, 271, 0, 272, 262, 263, 504, - 0, 265, 0, 261, 0, 0, 263, 504, 250, 249, - 0, 189, 217, 212, 208, 202, 193, 197, 208, 201, - 0, 205, 504, 183, 0, 175, 144, 96, 99, 0, - 32, 504, 33, 504, 504, 504, 504, 245, 254, 263, + 1626, 1629, 1638, 1646, 1650, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1654, 1658, 1666, 1675, 187, 1678, 1690, + 1693, 1694, 1702, 1711, 1719, 1723, 1727, 1735, 1739, 1751, + 1754, 1763, 1771, 1775, 1779, 1783, 1787, 1799, 1791, 1803, + 184, 1811, 1819, 1823, 1827, 1835, 1843, 164, 1847, 198, + 1855, 1863, 1867, 1879, 1871, 1883, 1887, 1891, 159, 1899, + 1903, 1911, 1915, 1923, 1935, 1938, 1947, 1950, 1959, 1962, + 1971, 1974, 1986, 1989, 158, 1998, 2001, 2013, 144, 2016, + 2017, 2031, 2039, 147, 2035, 2047, 142, 2051, 2066, 2063, - 269, 278, 282, 289, 295, 302 + 144, 2075, 2083, 2084, 2092, 138, 2104, 145, 2108, 2116, + 135, 2120, 0, 2124, 141, 2128, 147, 2132, 2140, 2144, + 0, 2148, 144, 2152, 94, 2156, 122, 127, 2164, 2168, + 118, 127, 104, 2176, 99, 2311, 2185, 2193, 89, 83, + 57, 59, 2194, 44, 2311, 45, 2311, 2311, 2311, 2311, + 2242, 2250, 2258, 2263, 2271, 2277, 79, 2283, 2289, 70, + 2295, 2301, 2302 } ; -static yyconst short int yy_def[407] = +static yyconst short int yy_def[464] = { 0, - 397, 1, 398, 398, 398, 398, 397, 397, 397, 397, - 397, 399, 400, 401, 397, 402, 397, 397, 397, 397, - 397, 397, 397, 397, 397, 397, 397, 397, 397, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 397, 397, 397, 404, 397, 397, 397, 399, - 397, 399, 400, 405, 402, 397, 402, 397, 397, 397, - 406, 397, 397, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, + 450, 1, 451, 451, 451, 451, 450, 450, 450, 450, + 450, 452, 453, 454, 450, 455, 450, 450, 450, 450, + 450, 450, 456, 457, 450, 450, 450, 450, 458, 450, + 459, 459, 32, 32, 32, 32, 32, 32, 32, 32, + 39, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 32, 32, 450, 450, 450, 450, 450, 460, 450, + 452, 450, 452, 453, 461, 455, 450, 455, 456, 457, + 462, 450, 450, 458, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 32, 41, 41, 41, 41, 41, 41, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 404, 404, 397, 405, - 406, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, + 41, 32, 32, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 458, 458, 458, 41, + 32, 32, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 57, 463, 460, 461, + 462, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, - 403, 403, 403, 397, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 397, - 397, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 397, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 397, 403, 403, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 458, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 458, 458, 458, + 458, 458, 458, 458, 458, 458, 458, 458, 458, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 458, 458, 41, 41, 41, 41, - 403, 403, 403, 403, 397, 403, 397, 403, 403, 403, - 403, 403, 403, 403, 403, 397, 403, 403, 403, 403, - 403, 403, 403, 403, 403, 403, 403, 403, 403, 403, - 403, 397, 403, 403, 403, 397, 403, 403, 403, 403, - 397, 403, 403, 397, 403, 403, 403, 397, 403, 403, - 403, 403, 397, 403, 397, 403, 403, 397, 403, 397, - 403, 397, 403, 397, 403, 403, 403, 397, 403, 397, - 403, 397, 403, 397, 397, 403, 403, 397, 397, 397, - 403, 397, 397, 403, 403, 397, 397, 397, 397, 403, - 397, 397, 397, 397, 397, 397, 0, 397, 397, 397, + 41, 41, 41, 41, 41, 458, 458, 458, 458, 458, + 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, + 458, 458, 458, 41, 41, 41, 41, 458, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 458, 41, 41, 41, 41, 41, 41, 450, 41, 458, + 41, 41, 41, 41, 41, 41, 41, 41, 458, 41, + 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, + 41, 41, 41, 41, 458, 41, 41, 41, 450, 41, + 41, 41, 41, 450, 41, 41, 458, 41, 41, 41, - 397, 397, 397, 397, 397, 397 + 450, 41, 41, 41, 41, 458, 41, 450, 41, 41, + 450, 41, 458, 41, 450, 41, 450, 41, 41, 41, + 458, 41, 450, 41, 450, 41, 450, 450, 41, 41, + 450, 450, 450, 41, 450, 450, 41, 41, 450, 450, + 450, 450, 41, 450, 450, 450, 450, 450, 450, 0, + 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, + 450, 450, 450 } ; -static yyconst short int yy_nxt[561] = +static yyconst short int yy_nxt[2372] = { 0, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, - 18, 19, 20, 21, 22, 23, 24, 24, 24, 25, - 26, 27, 28, 8, 8, 8, 8, 29, 8, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 39, - 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 39, 39, 53, 55, 10, 55, 10, - 55, 10, 55, 10, 61, 66, 75, 151, 396, 56, - 76, 56, 152, 58, 57, 58, 57, 108, 57, 395, - 57, 109, 77, 67, 110, 61, 62, 68, 68, 68, - 69, 69, 69, 69, 69, 78, 126, 70, 179, 79, + 18, 19, 20, 21, 22, 23, 24, 24, 24, 24, + 24, 24, 24, 24, 25, 26, 27, 28, 29, 29, + 8, 30, 29, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 40, 40, 54, + 56, 10, 56, 10, 56, 10, 56, 10, 62, 67, + 70, 70, 169, 57, 62, 57, 234, 59, 235, 59, + 67, 70, 75, 58, 449, 58, 109, 58, 295, 58, + 110, 68, 75, 111, 63, 448, 447, 236, 75, 237, - 111, 70, 83, 80, 127, 81, 180, 62, 112, 84, - 147, 82, 330, 85, 153, 113, 86, 87, 331, 88, - 89, 154, 195, 66, 71, 90, 91, 148, 149, 92, - 93, 155, 394, 94, 95, 196, 96, 120, 393, 121, - 97, 67, 98, 115, 122, 99, 100, 101, 102, 103, - 123, 104, 204, 116, 105, 117, 170, 118, 171, 128, - 129, 119, 182, 130, 106, 164, 165, 131, 186, 107, - 132, 157, 157, 157, 157, 187, 133, 183, 134, 137, - 173, 174, 138, 392, 214, 139, 140, 205, 215, 141, - 229, 225, 216, 142, 217, 260, 143, 144, 218, 230, + 63, 238, 68, 446, 71, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 84, 306, 296, 307, 74, 74, + 239, 85, 74, 70, 70, 86, 445, 432, 87, 88, + 76, 89, 90, 444, 77, 442, 308, 91, 228, 229, + 230, 231, 232, 233, 433, 441, 78, 74, 74, 74, + 74, 74, 74, 74, 74, 74, 309, 450, 310, 112, + 74, 74, 440, 75, 74, 439, 436, 113, 75, 435, + 75, 75, 79, 75, 114, 75, 80, 311, 431, 75, + 81, 125, 82, 312, 428, 313, 427, 425, 83, 92, + 423, 421, 93, 94, 417, 413, 95, 96, 411, 97, - 145, 226, 146, 159, 159, 159, 159, 68, 68, 68, - 69, 69, 69, 69, 69, 391, 390, 70, 379, 261, - 275, 70, 157, 157, 157, 157, 397, 397, 397, 397, - 159, 159, 159, 159, 273, 380, 276, 389, 388, 387, - 386, 385, 384, 383, 274, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 60, 382, 60, 60, 60, 60, - 60, 60, 60, 63, 381, 63, 63, 63, 63, 63, - 63, 63, 64, 64, 64, 64, 64, 64, 65, 378, - 65, 65, 65, 65, 65, 65, 65, 74, 74, 74, - 74, 158, 377, 376, 375, 158, 158, 160, 160, 160, + 75, 408, 75, 98, 314, 99, 406, 397, 100, 101, + 102, 103, 104, 296, 105, 389, 75, 106, 115, 385, + 75, 75, 369, 360, 75, 75, 75, 107, 60, 75, + 116, 75, 108, 60, 75, 75, 73, 75, 75, 75, + 117, 72, 118, 75, 119, 75, 60, 121, 120, 122, + 75, 75, 450, 450, 123, 75, 450, 75, 126, 75, + 124, 75, 75, 75, 450, 450, 450, 75, 75, 75, + 450, 75, 161, 127, 75, 450, 75, 162, 315, 75, + 316, 128, 75, 129, 130, 75, 75, 131, 75, 450, + 75, 132, 450, 450, 133, 75, 450, 75, 450, 317, - 160, 160, 160, 160, 161, 161, 374, 161, 161, 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, 341, 340, 339, 338, 261, 337, 336, 335, 334, - 333, 300, 332, 329, 328, 327, 326, 325, 324, 323, - 322, 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, 290, 289, 288, 287, 286, 285, 284, 283, + 134, 75, 135, 157, 75, 450, 75, 136, 137, 450, + 318, 75, 319, 450, 138, 139, 321, 75, 322, 450, + 158, 159, 450, 450, 450, 140, 141, 142, 143, 144, + 450, 320, 75, 145, 450, 450, 75, 323, 450, 75, + 166, 450, 75, 146, 147, 450, 75, 148, 75, 450, + 149, 150, 450, 450, 151, 450, 450, 75, 152, 450, + 450, 153, 154, 163, 75, 155, 75, 156, 450, 450, + 164, 75, 450, 450, 75, 450, 160, 75, 75, 450, + 165, 450, 450, 450, 450, 450, 75, 167, 167, 167, + 167, 167, 167, 167, 167, 167, 75, 75, 75, 75, - 282, 281, 280, 279, 278, 277, 272, 271, 270, 269, - 268, 267, 266, 265, 264, 263, 262, 259, 258, 257, - 256, 255, 254, 253, 252, 251, 250, 249, 248, 247, - 246, 245, 244, 243, 242, 241, 240, 239, 238, 237, - 236, 235, 234, 233, 232, 231, 228, 227, 224, 223, - 222, 221, 220, 219, 213, 212, 211, 210, 209, 208, - 207, 206, 203, 202, 201, 200, 199, 198, 197, 194, - 193, 192, 191, 190, 189, 188, 185, 184, 181, 178, - 177, 176, 175, 172, 169, 168, 167, 166, 163, 162, - 59, 59, 156, 150, 136, 135, 125, 124, 114, 73, + 450, 450, 450, 75, 75, 450, 168, 168, 168, 75, + 75, 168, 168, 168, 450, 450, 450, 168, 450, 168, + 450, 450, 450, 168, 168, 168, 450, 168, 168, 75, + 75, 75, 75, 75, 450, 75, 75, 75, 450, 172, + 75, 450, 75, 75, 450, 75, 75, 75, 450, 450, + 450, 450, 173, 75, 450, 174, 175, 450, 75, 450, + 75, 450, 75, 176, 75, 177, 75, 450, 450, 75, + 75, 75, 75, 75, 450, 75, 450, 75, 75, 450, + 75, 178, 75, 75, 75, 450, 450, 75, 75, 75, + 75, 75, 75, 75, 75, 75, 75, 450, 450, 75, - 72, 59, 397, 7, 397, 397, 397, 397, 397, 397, - 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, - 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, - 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, - 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, - 397, 397, 397, 397, 397, 397, 397, 397, 397, 397 + 450, 75, 75, 450, 179, 75, 450, 450, 180, 75, + 181, 75, 182, 75, 450, 75, 75, 75, 450, 75, + 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, + 75, 183, 75, 184, 75, 450, 450, 75, 75, 185, + 186, 75, 450, 75, 450, 75, 450, 450, 75, 187, + 75, 75, 75, 75, 75, 450, 450, 75, 188, 75, + 75, 75, 75, 75, 75, 450, 75, 75, 75, 450, + 75, 189, 75, 75, 450, 75, 75, 450, 75, 450, + 75, 75, 450, 75, 75, 450, 450, 75, 191, 75, + 75, 75, 75, 450, 75, 75, 192, 75, 190, 194, + + 75, 450, 75, 193, 75, 75, 75, 75, 450, 450, + 196, 75, 450, 75, 195, 450, 450, 75, 197, 75, + 450, 75, 75, 450, 75, 450, 198, 450, 450, 200, + 450, 450, 75, 199, 450, 75, 201, 75, 75, 75, + 75, 75, 450, 75, 75, 75, 450, 450, 75, 450, + 75, 75, 450, 75, 75, 75, 75, 202, 75, 450, + 75, 450, 450, 75, 450, 75, 75, 75, 450, 204, + 450, 203, 75, 75, 75, 75, 75, 75, 75, 75, + 75, 75, 450, 205, 75, 450, 75, 75, 450, 75, + 75, 75, 206, 207, 450, 450, 75, 75, 75, 75, + + 75, 75, 75, 75, 75, 75, 208, 450, 75, 450, + 75, 75, 209, 75, 75, 75, 210, 211, 450, 450, + 75, 75, 216, 75, 214, 75, 75, 75, 75, 450, + 450, 212, 75, 213, 75, 75, 450, 215, 75, 75, + 450, 75, 75, 75, 450, 75, 75, 218, 75, 450, + 75, 75, 75, 75, 450, 75, 75, 75, 75, 450, + 219, 217, 75, 75, 75, 75, 450, 450, 75, 450, + 75, 75, 450, 75, 450, 450, 75, 450, 75, 220, + 75, 222, 75, 221, 75, 450, 450, 75, 223, 75, + 75, 75, 75, 75, 450, 450, 75, 224, 75, 450, + + 75, 450, 75, 75, 450, 225, 75, 450, 75, 226, + 75, 75, 75, 227, 75, 450, 450, 75, 75, 75, + 450, 75, 241, 75, 75, 75, 75, 450, 75, 75, + 242, 75, 240, 244, 450, 450, 450, 243, 75, 75, + 75, 246, 75, 247, 75, 75, 450, 248, 245, 75, + 450, 75, 249, 450, 75, 75, 75, 252, 75, 450, + 75, 250, 75, 450, 75, 75, 450, 75, 251, 75, + 75, 75, 75, 450, 75, 75, 75, 75, 450, 450, + 253, 75, 450, 254, 255, 450, 75, 75, 75, 450, + 75, 450, 75, 257, 75, 450, 75, 75, 256, 75, + + 258, 262, 75, 75, 75, 259, 450, 75, 450, 75, + 75, 450, 75, 260, 75, 75, 75, 75, 450, 450, + 450, 75, 264, 261, 75, 263, 450, 75, 450, 75, + 450, 265, 450, 266, 75, 75, 75, 75, 75, 75, + 75, 75, 450, 450, 75, 75, 450, 75, 450, 450, + 75, 75, 450, 75, 267, 75, 450, 450, 450, 268, + 75, 450, 270, 75, 450, 75, 75, 450, 450, 269, + 75, 75, 75, 75, 75, 272, 75, 450, 75, 75, + 75, 75, 75, 75, 75, 75, 450, 273, 75, 271, + 75, 450, 75, 75, 75, 450, 450, 75, 75, 75, + + 75, 75, 450, 75, 450, 75, 75, 75, 450, 75, + 450, 75, 75, 450, 75, 274, 75, 450, 75, 450, + 75, 450, 450, 75, 275, 75, 450, 75, 450, 75, + 450, 450, 75, 75, 276, 75, 450, 75, 75, 75, + 75, 75, 450, 75, 75, 75, 75, 75, 75, 450, + 75, 450, 75, 450, 75, 277, 450, 75, 75, 75, + 450, 450, 278, 450, 75, 75, 450, 75, 279, 75, + 75, 75, 75, 75, 450, 75, 75, 450, 75, 450, + 75, 75, 75, 75, 281, 75, 75, 75, 75, 450, + 450, 280, 75, 75, 75, 75, 450, 75, 75, 75, + + 75, 75, 450, 75, 75, 75, 75, 75, 75, 450, + 75, 282, 75, 450, 75, 283, 450, 75, 75, 75, + 75, 75, 75, 75, 75, 450, 450, 75, 75, 75, + 75, 75, 450, 75, 75, 450, 75, 284, 75, 75, + 75, 75, 75, 450, 450, 75, 75, 75, 75, 75, + 75, 75, 75, 450, 75, 75, 75, 75, 75, 75, + 75, 75, 286, 75, 75, 75, 75, 75, 75, 75, + 75, 450, 75, 75, 285, 287, 450, 75, 75, 75, + 450, 450, 75, 75, 450, 75, 450, 75, 75, 75, + 75, 75, 450, 75, 75, 450, 75, 288, 75, 75, + + 75, 75, 450, 75, 289, 75, 75, 75, 450, 75, + 75, 75, 75, 75, 75, 450, 75, 290, 75, 75, + 75, 75, 291, 75, 75, 75, 75, 75, 450, 293, + 75, 450, 75, 450, 75, 450, 75, 450, 450, 450, + 75, 75, 292, 75, 294, 75, 450, 75, 75, 75, + 450, 75, 75, 450, 75, 450, 75, 75, 75, 75, + 298, 450, 75, 297, 75, 75, 450, 75, 299, 75, + 75, 300, 75, 75, 450, 75, 75, 75, 75, 75, + 75, 75, 75, 75, 75, 75, 75, 75, 75, 450, + 75, 450, 75, 302, 75, 75, 303, 75, 75, 75, + + 301, 75, 75, 75, 450, 75, 75, 75, 75, 75, + 75, 304, 75, 450, 75, 450, 75, 305, 450, 75, + 75, 75, 75, 75, 75, 75, 75, 450, 450, 75, + 75, 75, 75, 75, 450, 75, 75, 450, 75, 75, + 75, 324, 75, 75, 75, 75, 75, 75, 450, 450, + 326, 450, 75, 325, 450, 75, 75, 75, 450, 75, + 327, 75, 75, 75, 450, 75, 75, 75, 75, 75, + 75, 450, 75, 328, 75, 75, 75, 75, 450, 75, + 75, 75, 75, 75, 450, 75, 75, 450, 75, 329, + 75, 75, 75, 75, 331, 75, 75, 75, 75, 450, + + 330, 450, 75, 75, 75, 75, 450, 75, 75, 75, + 75, 75, 332, 75, 75, 75, 75, 75, 75, 75, + 75, 75, 75, 450, 75, 333, 75, 450, 75, 334, + 450, 336, 75, 75, 75, 450, 75, 335, 75, 450, + 450, 75, 450, 75, 75, 75, 337, 75, 450, 450, + 75, 75, 338, 75, 450, 75, 75, 75, 75, 450, + 450, 450, 75, 450, 75, 450, 339, 75, 75, 75, + 75, 450, 75, 340, 75, 450, 450, 75, 450, 75, + 75, 75, 450, 75, 450, 450, 75, 75, 341, 75, + 450, 75, 75, 75, 75, 75, 450, 75, 75, 75, + + 75, 75, 75, 450, 75, 450, 75, 342, 75, 75, + 450, 75, 75, 343, 450, 450, 75, 344, 345, 75, + 450, 75, 75, 75, 450, 75, 75, 75, 450, 75, + 346, 450, 75, 450, 75, 75, 75, 75, 450, 75, + 75, 75, 75, 75, 347, 75, 75, 450, 75, 450, + 75, 450, 75, 348, 450, 450, 75, 75, 450, 75, + 350, 450, 349, 351, 75, 75, 75, 75, 75, 450, + 75, 352, 75, 75, 75, 75, 75, 75, 75, 75, + 450, 75, 75, 354, 75, 450, 75, 75, 75, 450, + 450, 75, 353, 75, 75, 75, 75, 75, 450, 450, + + 75, 75, 75, 358, 75, 450, 75, 75, 450, 75, + 450, 356, 75, 450, 75, 75, 450, 450, 355, 75, + 75, 359, 75, 75, 75, 75, 75, 75, 75, 450, + 450, 75, 450, 75, 75, 450, 75, 75, 75, 75, + 450, 75, 357, 75, 450, 450, 75, 361, 75, 75, + 75, 75, 75, 75, 450, 75, 450, 450, 362, 450, + 363, 75, 75, 75, 75, 75, 450, 75, 450, 450, + 75, 450, 75, 75, 75, 365, 75, 450, 450, 75, + 75, 364, 75, 450, 75, 75, 75, 75, 75, 450, + 75, 75, 75, 75, 75, 75, 450, 75, 450, 75, + + 75, 75, 75, 366, 450, 75, 450, 75, 367, 75, + 450, 75, 75, 75, 75, 450, 75, 368, 450, 75, + 450, 450, 75, 370, 75, 75, 75, 75, 75, 75, + 75, 75, 450, 450, 75, 75, 75, 75, 75, 450, + 75, 75, 450, 372, 450, 75, 371, 75, 450, 75, + 450, 450, 75, 75, 373, 75, 450, 75, 75, 75, + 75, 75, 450, 75, 75, 450, 75, 450, 75, 75, + 374, 75, 375, 75, 75, 75, 75, 450, 450, 450, + 75, 450, 75, 450, 377, 75, 75, 75, 75, 450, + 75, 376, 75, 450, 378, 75, 450, 75, 75, 75, + + 379, 75, 450, 450, 75, 75, 450, 75, 380, 75, + 75, 75, 75, 75, 450, 75, 75, 75, 75, 75, + 75, 75, 75, 75, 75, 75, 75, 75, 75, 381, + 75, 450, 75, 75, 75, 75, 382, 75, 75, 75, + 75, 450, 450, 450, 75, 75, 75, 75, 383, 450, + 75, 450, 75, 75, 384, 75, 450, 75, 75, 75, + 75, 75, 353, 75, 75, 450, 75, 386, 75, 75, + 75, 75, 450, 450, 75, 450, 75, 75, 388, 75, + 387, 75, 75, 75, 75, 450, 450, 450, 75, 75, + 75, 75, 394, 450, 75, 390, 75, 75, 391, 75, + + 393, 75, 75, 75, 75, 75, 450, 75, 75, 392, + 75, 450, 75, 75, 75, 75, 450, 75, 75, 75, + 75, 75, 450, 395, 75, 75, 75, 75, 75, 450, + 75, 450, 75, 75, 75, 75, 398, 75, 75, 75, + 75, 450, 450, 396, 75, 75, 75, 75, 401, 75, + 75, 75, 75, 450, 450, 399, 75, 75, 75, 75, + 450, 450, 75, 450, 75, 450, 450, 400, 450, 75, + 75, 75, 75, 402, 75, 450, 75, 450, 450, 75, + 450, 75, 75, 75, 75, 75, 75, 450, 75, 450, + 403, 75, 450, 75, 75, 75, 75, 75, 75, 450, + + 75, 450, 450, 75, 450, 75, 75, 75, 75, 75, + 75, 450, 75, 450, 450, 75, 450, 450, 75, 450, + 75, 75, 75, 75, 404, 75, 405, 75, 450, 450, + 75, 450, 75, 75, 75, 75, 75, 75, 450, 75, + 450, 450, 75, 450, 450, 75, 407, 75, 75, 75, + 75, 75, 75, 75, 75, 450, 450, 75, 75, 450, + 75, 450, 450, 75, 75, 75, 450, 75, 450, 75, + 409, 75, 75, 75, 410, 75, 75, 450, 75, 415, + 75, 75, 75, 75, 412, 75, 75, 75, 75, 450, + 450, 450, 75, 450, 75, 450, 414, 75, 75, 75, + + 75, 450, 75, 450, 75, 450, 450, 75, 450, 75, + 75, 75, 450, 75, 416, 418, 75, 75, 75, 75, + 75, 419, 75, 450, 75, 75, 75, 450, 75, 450, + 75, 75, 450, 75, 450, 450, 450, 420, 75, 75, + 75, 422, 75, 450, 75, 75, 450, 450, 450, 75, + 75, 75, 75, 450, 75, 75, 75, 75, 75, 424, + 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, + 426, 75, 450, 75, 75, 75, 75, 450, 429, 75, + 75, 75, 75, 450, 75, 75, 75, 75, 75, 75, + 75, 75, 75, 75, 430, 75, 450, 75, 75, 75, + + 75, 450, 75, 75, 75, 75, 450, 434, 437, 75, + 75, 75, 75, 450, 450, 75, 450, 75, 450, 75, + 438, 75, 443, 75, 450, 450, 75, 75, 75, 75, + 75, 450, 75, 450, 75, 75, 450, 450, 450, 450, + 75, 75, 55, 55, 55, 55, 55, 55, 55, 55, + 61, 450, 61, 61, 61, 61, 61, 61, 64, 450, + 64, 64, 64, 64, 64, 64, 65, 65, 65, 65, + 65, 66, 450, 66, 66, 66, 66, 66, 66, 69, + 450, 450, 450, 450, 69, 74, 74, 74, 74, 74, + 74, 75, 75, 75, 75, 75, 75, 170, 170, 170, + + 170, 170, 170, 171, 171, 450, 171, 168, 168, 168, + 7, 450, 450, 450, 450, 450, 450, 450, 450, 450, + 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, + 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, + 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, + 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, + 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, + 450 } ; -static yyconst short int yy_chk[561] = +static yyconst short int yy_chk[2372] = { 0, 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, 1, 1, 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, 30, 50, 393, 3, - 30, 4, 50, 5, 3, 6, 4, 35, 5, 391, - 6, 35, 30, 16, 35, 60, 12, 23, 23, 23, - 23, 24, 24, 24, 24, 31, 43, 23, 101, 31, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 3, 3, 4, 4, 5, 5, 6, 6, 12, 16, + 23, 23, 460, 3, 61, 4, 138, 5, 138, 6, + 66, 457, 36, 3, 446, 4, 36, 5, 216, 6, + 36, 16, 36, 36, 12, 444, 442, 138, 36, 139, - 36, 24, 32, 31, 43, 31, 101, 60, 36, 32, - 48, 31, 297, 32, 51, 36, 32, 32, 297, 32, - 32, 51, 116, 65, 23, 32, 33, 48, 48, 33, - 33, 51, 389, 33, 33, 116, 33, 40, 388, 40, - 33, 65, 33, 38, 40, 33, 34, 34, 34, 34, - 40, 34, 125, 38, 34, 38, 88, 38, 88, 44, - 44, 38, 103, 44, 34, 80, 80, 44, 106, 34, - 44, 56, 56, 56, 56, 106, 44, 103, 44, 47, - 93, 93, 47, 387, 135, 47, 47, 125, 135, 47, - 147, 144, 136, 47, 136, 204, 47, 47, 136, 147, + 61, 139, 66, 441, 23, 31, 31, 31, 31, 31, + 31, 31, 31, 31, 33, 228, 216, 228, 31, 31, + 139, 33, 31, 69, 69, 33, 440, 425, 33, 33, + 31, 33, 33, 439, 31, 435, 228, 33, 137, 137, + 137, 137, 137, 137, 425, 433, 31, 32, 32, 32, + 32, 32, 32, 32, 32, 32, 229, 69, 229, 37, + 32, 32, 432, 37, 32, 431, 428, 37, 42, 427, + 42, 37, 32, 37, 37, 42, 32, 229, 423, 37, + 32, 42, 32, 230, 417, 230, 415, 411, 32, 34, + 408, 406, 34, 34, 401, 397, 34, 34, 394, 34, - 47, 144, 47, 58, 58, 58, 58, 68, 68, 68, - 68, 69, 69, 69, 69, 386, 384, 68, 372, 204, - 220, 69, 157, 157, 157, 157, 158, 158, 158, 158, - 159, 159, 159, 159, 218, 372, 220, 382, 380, 379, - 378, 377, 376, 375, 218, 398, 398, 398, 398, 398, - 398, 398, 398, 398, 399, 374, 399, 399, 399, 399, - 399, 399, 399, 400, 373, 400, 400, 400, 400, 400, - 400, 400, 401, 401, 401, 401, 401, 401, 402, 370, - 402, 402, 402, 402, 402, 402, 402, 403, 403, 403, - 403, 404, 369, 367, 364, 404, 404, 405, 405, 405, + 34, 389, 34, 34, 230, 34, 385, 369, 34, 35, + 35, 35, 35, 360, 35, 358, 35, 35, 38, 351, + 35, 38, 328, 295, 35, 38, 35, 35, 60, 38, + 39, 38, 35, 56, 39, 40, 27, 38, 39, 40, + 39, 26, 39, 40, 39, 40, 9, 41, 39, 41, + 39, 40, 7, 0, 41, 43, 0, 43, 43, 41, + 41, 41, 43, 41, 0, 0, 0, 41, 43, 44, + 0, 44, 51, 44, 51, 0, 44, 51, 231, 51, + 231, 44, 44, 45, 45, 51, 45, 45, 46, 0, + 46, 45, 0, 0, 45, 46, 0, 45, 0, 231, - 405, 405, 405, 405, 406, 406, 362, 406, 406, 359, - 358, 357, 355, 354, 353, 352, 351, 349, 348, 347, - 346, 345, 344, 343, 341, 340, 339, 336, 334, 332, - 331, 328, 324, 323, 322, 321, 320, 317, 316, 315, - 314, 311, 310, 309, 308, 307, 306, 305, 303, 302, - 301, 299, 298, 295, 293, 290, 289, 288, 287, 286, - 285, 283, 282, 280, 279, 276, 275, 273, 272, 269, - 268, 267, 266, 265, 264, 260, 259, 258, 257, 256, - 255, 252, 251, 249, 248, 246, 245, 244, 243, 242, - 240, 239, 238, 237, 236, 234, 233, 231, 230, 228, + 45, 46, 45, 49, 49, 0, 49, 46, 47, 0, + 232, 49, 232, 0, 47, 47, 233, 49, 233, 0, + 49, 49, 0, 0, 0, 47, 47, 47, 47, 47, + 0, 232, 53, 47, 0, 0, 53, 233, 0, 47, + 53, 0, 53, 47, 48, 0, 48, 48, 53, 0, + 48, 48, 0, 0, 48, 0, 0, 48, 48, 0, + 0, 48, 48, 52, 50, 48, 50, 48, 0, 0, + 52, 50, 0, 0, 52, 0, 50, 50, 52, 0, + 52, 0, 0, 0, 0, 0, 52, 57, 57, 57, + 57, 57, 57, 57, 57, 57, 75, 76, 75, 76, - 227, 226, 225, 223, 222, 221, 217, 216, 215, 214, - 213, 212, 211, 209, 208, 207, 205, 203, 202, 201, - 199, 196, 195, 193, 192, 189, 188, 184, 177, 176, - 174, 173, 172, 171, 168, 167, 166, 163, 155, 154, - 153, 152, 151, 150, 149, 148, 146, 145, 143, 141, - 140, 139, 138, 137, 134, 133, 132, 131, 130, 129, - 128, 126, 124, 123, 122, 121, 120, 119, 118, 115, - 114, 112, 111, 109, 108, 107, 105, 104, 102, 100, - 98, 96, 95, 91, 87, 86, 83, 81, 79, 76, - 59, 55, 52, 49, 46, 45, 42, 41, 37, 27, + 0, 0, 0, 75, 76, 0, 57, 57, 57, 75, + 76, 57, 57, 57, 0, 0, 0, 57, 0, 57, + 0, 0, 0, 57, 57, 57, 0, 57, 57, 77, + 78, 77, 78, 79, 0, 79, 77, 78, 0, 77, + 79, 0, 77, 78, 0, 80, 79, 80, 0, 0, + 0, 0, 80, 81, 0, 81, 81, 0, 80, 0, + 81, 0, 82, 81, 82, 82, 81, 0, 0, 82, + 83, 84, 83, 84, 0, 82, 0, 83, 84, 0, + 85, 84, 85, 83, 84, 0, 0, 85, 86, 88, + 86, 88, 87, 85, 87, 86, 88, 0, 0, 87, - 26, 9, 7, 397, 397, 397, 397, 397, 397, 397, - 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, - 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, - 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, - 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, - 397, 397, 397, 397, 397, 397, 397, 397, 397, 397 + 0, 86, 88, 0, 87, 87, 0, 0, 88, 89, + 89, 89, 89, 90, 0, 90, 89, 91, 0, 91, + 90, 92, 89, 92, 91, 93, 90, 93, 92, 94, + 91, 92, 93, 94, 92, 0, 0, 94, 93, 94, + 94, 95, 0, 95, 0, 94, 0, 0, 95, 96, + 96, 97, 96, 97, 95, 0, 0, 96, 97, 98, + 99, 98, 99, 96, 97, 0, 98, 99, 100, 0, + 100, 99, 98, 99, 0, 100, 101, 0, 101, 0, + 102, 100, 0, 101, 102, 0, 0, 103, 102, 101, + 102, 103, 104, 0, 104, 103, 102, 103, 101, 104, + + 105, 0, 105, 103, 106, 104, 106, 105, 0, 0, + 105, 106, 0, 105, 104, 0, 0, 106, 106, 107, + 0, 107, 108, 0, 108, 0, 107, 0, 0, 108, + 0, 0, 107, 107, 0, 108, 109, 109, 110, 109, + 110, 111, 0, 111, 109, 110, 0, 0, 111, 0, + 109, 110, 0, 112, 111, 112, 113, 110, 113, 0, + 112, 0, 0, 113, 0, 114, 112, 114, 0, 113, + 0, 112, 114, 115, 116, 115, 116, 118, 114, 118, + 115, 116, 0, 115, 118, 0, 115, 116, 0, 117, + 118, 117, 116, 117, 0, 0, 117, 119, 120, 119, + + 120, 121, 117, 121, 119, 120, 117, 0, 121, 0, + 119, 120, 119, 122, 121, 122, 120, 121, 0, 0, + 122, 123, 126, 123, 124, 124, 122, 124, 123, 0, + 0, 122, 124, 123, 123, 125, 0, 125, 124, 126, + 0, 126, 125, 127, 0, 127, 126, 127, 125, 0, + 127, 128, 126, 128, 0, 129, 127, 129, 128, 0, + 129, 126, 129, 130, 128, 130, 0, 0, 129, 0, + 130, 131, 0, 131, 0, 0, 130, 0, 131, 130, + 132, 132, 132, 131, 131, 0, 0, 132, 133, 133, + 134, 133, 134, 132, 0, 0, 133, 134, 135, 0, + + 135, 0, 133, 134, 0, 135, 136, 0, 136, 136, + 140, 135, 140, 136, 141, 0, 0, 140, 141, 136, + 0, 142, 141, 140, 141, 142, 143, 0, 143, 142, + 141, 142, 140, 143, 0, 0, 0, 142, 145, 143, + 145, 144, 144, 144, 144, 145, 0, 144, 143, 144, + 0, 145, 145, 0, 146, 144, 146, 147, 147, 0, + 147, 146, 148, 0, 148, 147, 0, 146, 146, 148, + 149, 147, 149, 0, 150, 148, 150, 149, 0, 0, + 148, 150, 0, 149, 150, 0, 151, 150, 151, 0, + 152, 0, 152, 151, 155, 0, 155, 152, 150, 151, + + 152, 155, 153, 152, 153, 153, 0, 155, 0, 153, + 154, 0, 154, 154, 156, 153, 156, 154, 0, 0, + 0, 156, 157, 154, 157, 156, 0, 156, 0, 157, + 0, 157, 0, 158, 158, 157, 158, 159, 160, 159, + 160, 158, 0, 0, 159, 160, 0, 158, 0, 0, + 159, 160, 0, 161, 159, 161, 0, 0, 0, 160, + 161, 0, 162, 162, 0, 162, 161, 0, 0, 161, + 162, 163, 164, 163, 164, 164, 162, 0, 163, 164, + 165, 166, 165, 166, 163, 164, 0, 165, 166, 163, + 172, 0, 172, 165, 166, 0, 0, 172, 173, 174, + + 173, 174, 0, 172, 0, 173, 174, 175, 0, 175, + 0, 173, 174, 0, 175, 173, 176, 0, 176, 0, + 175, 0, 0, 176, 177, 177, 0, 177, 0, 176, + 0, 0, 177, 178, 178, 178, 0, 179, 177, 179, + 178, 180, 0, 180, 179, 181, 178, 181, 180, 0, + 179, 0, 181, 0, 180, 179, 0, 182, 181, 182, + 0, 0, 182, 0, 182, 183, 0, 183, 183, 184, + 182, 184, 183, 185, 0, 185, 184, 0, 183, 0, + 185, 187, 184, 187, 186, 186, 185, 186, 187, 0, + 0, 185, 186, 188, 187, 188, 0, 190, 186, 190, + + 188, 189, 0, 189, 190, 191, 188, 191, 189, 0, + 190, 188, 191, 0, 189, 189, 0, 192, 191, 192, + 193, 194, 193, 194, 192, 0, 0, 193, 194, 195, + 192, 195, 0, 193, 194, 0, 195, 196, 196, 197, + 196, 197, 195, 0, 0, 196, 197, 198, 199, 198, + 199, 196, 197, 0, 198, 199, 200, 201, 200, 201, + 198, 199, 201, 200, 201, 202, 203, 202, 203, 200, + 201, 0, 202, 203, 200, 204, 0, 204, 202, 203, + 0, 0, 204, 205, 0, 205, 0, 206, 204, 206, + 205, 207, 0, 207, 206, 0, 205, 205, 207, 208, + + 206, 208, 0, 209, 207, 209, 208, 210, 0, 210, + 209, 212, 208, 212, 210, 0, 209, 208, 212, 211, + 210, 211, 211, 213, 212, 213, 211, 214, 0, 214, + 213, 0, 211, 0, 214, 0, 213, 0, 0, 0, + 214, 215, 213, 215, 215, 217, 0, 217, 215, 218, + 0, 218, 217, 0, 215, 0, 218, 219, 217, 219, + 219, 0, 218, 217, 219, 220, 0, 220, 220, 221, + 219, 221, 220, 222, 0, 222, 221, 223, 220, 223, + 222, 224, 221, 224, 223, 225, 222, 225, 224, 0, + 223, 0, 225, 224, 224, 226, 225, 226, 225, 227, + + 223, 227, 226, 240, 0, 240, 227, 241, 226, 241, + 240, 226, 227, 0, 241, 0, 240, 227, 0, 242, + 241, 242, 243, 244, 243, 244, 242, 0, 0, 243, + 244, 245, 242, 245, 0, 243, 244, 0, 245, 246, + 247, 246, 247, 248, 245, 248, 246, 247, 0, 0, + 248, 0, 246, 247, 0, 249, 248, 249, 0, 250, + 248, 250, 249, 251, 0, 251, 250, 252, 249, 252, + 251, 0, 250, 253, 252, 253, 251, 253, 0, 254, + 252, 254, 253, 255, 0, 255, 254, 0, 253, 253, + 255, 256, 254, 256, 256, 257, 255, 257, 256, 0, + + 254, 0, 257, 258, 256, 258, 0, 259, 257, 259, + 258, 260, 257, 260, 259, 261, 258, 261, 260, 262, + 259, 262, 261, 0, 260, 260, 262, 0, 261, 261, + 0, 263, 262, 263, 264, 0, 264, 262, 263, 0, + 0, 264, 0, 265, 263, 265, 265, 264, 0, 0, + 265, 266, 266, 266, 0, 267, 265, 267, 266, 0, + 0, 0, 267, 0, 266, 0, 268, 268, 267, 268, + 269, 0, 269, 269, 268, 0, 0, 269, 0, 270, + 268, 270, 0, 269, 0, 0, 270, 271, 271, 271, + 0, 272, 270, 272, 271, 273, 0, 273, 272, 274, + + 271, 274, 273, 0, 272, 0, 274, 272, 273, 275, + 0, 275, 274, 273, 0, 0, 275, 274, 275, 276, + 0, 276, 275, 277, 0, 277, 276, 278, 0, 278, + 277, 0, 276, 0, 278, 279, 277, 279, 0, 280, + 278, 280, 279, 281, 278, 281, 280, 0, 279, 0, + 281, 0, 280, 279, 0, 0, 281, 282, 0, 282, + 281, 0, 280, 283, 282, 283, 284, 283, 284, 0, + 282, 284, 283, 284, 285, 286, 285, 286, 283, 284, + 0, 285, 286, 287, 287, 0, 287, 285, 286, 0, + 0, 287, 286, 288, 289, 288, 289, 287, 0, 0, + + 288, 289, 290, 293, 290, 0, 288, 289, 0, 290, + 0, 291, 291, 0, 291, 290, 0, 0, 290, 291, + 292, 294, 292, 294, 293, 291, 293, 292, 294, 0, + 0, 293, 0, 292, 294, 0, 297, 293, 297, 298, + 0, 298, 292, 297, 0, 0, 298, 299, 299, 297, + 299, 300, 298, 300, 0, 299, 0, 0, 300, 0, + 301, 299, 301, 302, 300, 302, 0, 301, 0, 0, + 302, 0, 303, 301, 303, 303, 302, 0, 0, 303, + 304, 302, 304, 0, 305, 303, 305, 304, 324, 0, + 324, 305, 325, 304, 325, 324, 0, 305, 0, 325, + + 326, 324, 326, 304, 0, 325, 0, 326, 325, 327, + 0, 327, 329, 326, 329, 0, 327, 326, 0, 329, + 0, 0, 327, 329, 330, 329, 330, 331, 332, 331, + 332, 330, 0, 0, 331, 332, 333, 330, 333, 0, + 331, 332, 0, 333, 0, 334, 332, 334, 0, 333, + 0, 0, 334, 335, 335, 335, 0, 336, 334, 336, + 335, 337, 0, 337, 336, 0, 335, 0, 337, 338, + 336, 338, 338, 339, 337, 339, 338, 0, 0, 0, + 339, 0, 338, 0, 340, 340, 339, 340, 341, 0, + 341, 339, 340, 0, 341, 341, 0, 342, 340, 342, + + 342, 341, 0, 0, 342, 343, 0, 343, 343, 344, + 342, 344, 343, 345, 0, 345, 344, 346, 343, 346, + 345, 347, 344, 347, 346, 349, 345, 349, 347, 346, + 346, 0, 349, 348, 347, 348, 348, 350, 349, 350, + 348, 0, 0, 0, 350, 352, 348, 352, 350, 0, + 350, 0, 352, 353, 350, 353, 0, 354, 352, 354, + 353, 355, 352, 355, 354, 0, 353, 354, 355, 356, + 354, 356, 0, 0, 355, 0, 356, 357, 356, 357, + 355, 359, 356, 359, 357, 0, 0, 0, 359, 361, + 357, 361, 364, 0, 359, 359, 361, 362, 361, 362, + + 363, 363, 361, 363, 362, 365, 0, 365, 363, 362, + 362, 0, 365, 364, 363, 364, 0, 366, 365, 366, + 364, 367, 0, 367, 366, 368, 364, 368, 367, 0, + 366, 0, 368, 370, 367, 370, 370, 371, 368, 371, + 370, 0, 0, 368, 371, 372, 370, 372, 375, 373, + 371, 373, 372, 0, 0, 373, 373, 374, 372, 374, + 0, 0, 373, 0, 374, 0, 0, 374, 0, 375, + 374, 375, 376, 376, 376, 0, 375, 0, 0, 376, + 0, 377, 375, 377, 378, 376, 378, 0, 377, 0, + 377, 378, 0, 379, 377, 379, 380, 378, 380, 0, + + 379, 0, 0, 380, 0, 381, 379, 381, 382, 380, + 382, 0, 381, 0, 0, 382, 0, 0, 381, 0, + 383, 382, 383, 384, 381, 384, 384, 383, 0, 0, + 384, 0, 386, 383, 386, 387, 384, 387, 0, 386, + 0, 0, 387, 0, 0, 386, 387, 388, 387, 388, + 390, 391, 390, 391, 388, 0, 0, 390, 391, 0, + 388, 0, 0, 390, 391, 392, 0, 392, 0, 395, + 392, 395, 392, 393, 393, 393, 395, 0, 392, 399, + 393, 396, 395, 396, 396, 398, 393, 398, 396, 0, + 0, 0, 398, 0, 396, 0, 398, 400, 398, 400, + + 399, 0, 399, 0, 400, 0, 0, 399, 0, 402, + 400, 402, 0, 399, 400, 402, 402, 403, 404, 403, + 404, 404, 402, 0, 403, 404, 405, 0, 405, 0, + 403, 404, 0, 405, 0, 0, 0, 405, 407, 405, + 407, 407, 409, 0, 409, 407, 0, 0, 0, 409, + 410, 407, 410, 0, 412, 409, 412, 410, 414, 410, + 414, 412, 416, 410, 416, 414, 418, 412, 418, 416, + 412, 414, 0, 418, 419, 416, 419, 0, 420, 418, + 420, 419, 422, 0, 422, 420, 424, 419, 424, 422, + 426, 420, 426, 424, 422, 422, 0, 426, 429, 424, + + 429, 0, 430, 426, 430, 429, 0, 426, 429, 430, + 434, 429, 434, 0, 0, 430, 0, 434, 0, 437, + 430, 437, 437, 434, 0, 0, 437, 438, 443, 438, + 443, 0, 437, 0, 438, 443, 0, 0, 0, 0, + 438, 443, 451, 451, 451, 451, 451, 451, 451, 451, + 452, 0, 452, 452, 452, 452, 452, 452, 453, 0, + 453, 453, 453, 453, 453, 453, 454, 454, 454, 454, + 454, 455, 0, 455, 455, 455, 455, 455, 455, 456, + 0, 0, 0, 0, 456, 458, 458, 458, 458, 458, + 458, 459, 459, 459, 459, 459, 459, 461, 461, 461, + + 461, 461, 461, 462, 462, 0, 462, 463, 463, 463, + 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, + 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, + 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, + 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, + 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, + 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, + 450 } ; static yy_state_type yy_last_accepting_state; @@ -638,7 +1055,7 @@ char *yytext; #define INITIAL 0 #line 2 "lexer.l" ///////////////////////////////////////////////////////////////////////// -// $Id: lexer.c,v 1.15 2006-02-11 21:19:22 sshwarts Exp $ +// $Id: lexer.c,v 1.16 2006-02-13 18:28:13 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// #include @@ -648,13 +1065,33 @@ char *yytext; #include "parser.h" - int bx_yyinput(char *buf, int max_size); #undef YY_INPUT #define YY_INPUT(buf, ret, max_size) (ret = bx_yyinput(buf, max_size)) static char *lex_input_ptr = NULL; static unsigned lex_input_size = 0; + +#if BX_SUPPORT_X86_64 + #define LONG_MODE_8BL_REG(reg) \ + { bxlval.uval = reg; return(BX_TOKEN_8BL_REG); } + #define LONG_MODE_16B_REG(reg) \ + { bxlval.uval = reg; return(BX_TOKEN_16B_REG); } + #define LONG_MODE_32B_REG(reg) \ + { bxlval.uval = reg; return(BX_TOKEN_32B_REG); } + #define LONG_MODE_64B_REG(reg) \ + { bxlval.uval = reg; return(BX_TOKEN_64B_REG); } +#else + #define LONG_MODE_8BL_REG(reg) \ + { bxlval.sval = strdup(bxtext); return(BX_TOKEN_GENERERIC); } + #define LONG_MODE_16B_REG(reg) \ + { bxlval.sval = strdup(bxtext); return(BX_TOKEN_GENERERIC); } + #define LONG_MODE_32B_REG(reg) \ + { bxlval.sval = strdup(bxtext); return(BX_TOKEN_GENERERIC); } + #define LONG_MODE_64B_REG(reg) \ + { bxlval.sval = strdup(bxtext); return(BX_TOKEN_GENERERIC); } +#endif + #define EXAMINE 1 #define DISASM 2 @@ -820,7 +1257,7 @@ YY_DECL register char *yy_cp, *yy_bp; register int yy_act; -#line 25 "lexer.l" +#line 45 "lexer.l" if ( yy_init ) @@ -872,13 +1309,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 >= 398 ) + if ( yy_current_state >= 451 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++yy_cp; } - while ( yy_base[yy_current_state] != 504 ); + while ( yy_base[yy_current_state] != 2311 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -906,717 +1343,938 @@ do_action: /* This label is used only to access EOF actions. */ case 1: YY_RULE_SETUP -#line 26 "lexer.l" +#line 46 "lexer.l" ; // eat up whitespace YY_BREAK case 2: YY_RULE_SETUP -#line 27 "lexer.l" +#line 47 "lexer.l" { bxlval.sval = strdup(bxtext); return(BX_TOKEN_SET); } YY_BREAK case 3: YY_RULE_SETUP -#line 28 "lexer.l" +#line 48 "lexer.l" { bxlval.bval = 1; return(BX_TOKEN_ON); } YY_BREAK case 4: YY_RULE_SETUP -#line 29 "lexer.l" +#line 49 "lexer.l" { bxlval.bval = 0; return(BX_TOKEN_OFF); } YY_BREAK case 5: YY_RULE_SETUP -#line 30 "lexer.l" +#line 50 "lexer.l" { bxlval.sval = strdup(bxtext); return(BX_TOKEN_CRC); } YY_BREAK case 6: -#line 32 "lexer.l" +#line 52 "lexer.l" case 7: -#line 33 "lexer.l" +#line 53 "lexer.l" case 8: YY_RULE_SETUP -#line 33 "lexer.l" +#line 53 "lexer.l" { bxlval.sval = strdup(bxtext); return(BX_TOKEN_CONTINUE); } YY_BREAK case 9: -#line 35 "lexer.l" +#line 55 "lexer.l" case 10: -#line 36 "lexer.l" +#line 56 "lexer.l" case 11: YY_RULE_SETUP -#line 36 "lexer.l" +#line 56 "lexer.l" { bxlval.sval = strdup(bxtext); return(BX_TOKEN_STEPN); } YY_BREAK case 12: -#line 38 "lexer.l" +#line 58 "lexer.l" case 13: -#line 39 "lexer.l" +#line 59 "lexer.l" case 14: YY_RULE_SETUP -#line 39 "lexer.l" +#line 59 "lexer.l" { bxlval.sval = strdup(bxtext); return(BX_TOKEN_STEP_OVER); } YY_BREAK case 15: YY_RULE_SETUP -#line 40 "lexer.l" +#line 60 "lexer.l" { bxlval.sval = strdup(bxtext); return(BX_TOKEN_LIST_BREAK); } YY_BREAK case 16: -#line 42 "lexer.l" -case 17: YY_RULE_SETUP -#line 42 "lexer.l" +#line 61 "lexer.l" { bxlval.sval = strdup(bxtext); return(BX_TOKEN_VBREAKPOINT); } YY_BREAK -case 18: -#line 44 "lexer.l" -case 19: +case 17: YY_RULE_SETUP -#line 44 "lexer.l" +#line 62 "lexer.l" { bxlval.sval = strdup(bxtext); return(BX_TOKEN_LBREAKPOINT); } YY_BREAK +case 18: +#line 64 "lexer.l" +case 19: +#line 65 "lexer.l" case 20: -#line 46 "lexer.l" +#line 66 "lexer.l" case 21: -#line 47 "lexer.l" -case 22: -#line 48 "lexer.l" -case 23: YY_RULE_SETUP -#line 48 "lexer.l" +#line 66 "lexer.l" { bxlval.sval = strdup(bxtext); return(BX_TOKEN_PBREAKPOINT); } YY_BREAK -case 24: +case 22: YY_RULE_SETUP -#line 49 "lexer.l" +#line 67 "lexer.l" { bxlval.sval = strdup(bxtext); return(BX_TOKEN_INFO); } YY_BREAK +case 23: +#line 69 "lexer.l" +case 24: +#line 70 "lexer.l" case 25: -#line 51 "lexer.l" -case 26: -#line 52 "lexer.l" -case 27: YY_RULE_SETUP -#line 52 "lexer.l" +#line 70 "lexer.l" { bxlval.sval = strdup(bxtext); return(BX_TOKEN_CONTROL_REGS); } YY_BREAK +case 26: +#line 72 "lexer.l" +case 27: +#line 73 "lexer.l" case 28: -#line 54 "lexer.l" +#line 74 "lexer.l" case 29: -#line 55 "lexer.l" +YY_RULE_SETUP +#line 74 "lexer.l" +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_REGISTERS); } + YY_BREAK case 30: -#line 56 "lexer.l" +YY_RULE_SETUP +#line 75 "lexer.l" +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_FPU); } + YY_BREAK case 31: YY_RULE_SETUP -#line 56 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_REGISTERS); } +#line 76 "lexer.l" +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_SSE); } YY_BREAK case 32: YY_RULE_SETUP -#line 57 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_FPU); } +#line 77 "lexer.l" +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_CPU); } YY_BREAK case 33: YY_RULE_SETUP -#line 58 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_SSE); } +#line 78 "lexer.l" +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_ALL); } YY_BREAK case 34: YY_RULE_SETUP -#line 59 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_CPU); } +#line 79 "lexer.l" +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_IDT); } YY_BREAK case 35: YY_RULE_SETUP -#line 60 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_ALL); } +#line 80 "lexer.l" +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_IVT); } YY_BREAK case 36: YY_RULE_SETUP -#line 61 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_IDT); } +#line 81 "lexer.l" +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_GDT); } YY_BREAK case 37: YY_RULE_SETUP -#line 62 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_IVT); } +#line 82 "lexer.l" +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_LDT); } YY_BREAK case 38: YY_RULE_SETUP -#line 63 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_GDT); } +#line 83 "lexer.l" +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_TSS); } YY_BREAK case 39: YY_RULE_SETUP -#line 64 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_LDT); } +#line 84 "lexer.l" +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_TAB); } YY_BREAK case 40: YY_RULE_SETUP -#line 65 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_TSS); } +#line 85 "lexer.l" +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_DIRTY); } YY_BREAK case 41: YY_RULE_SETUP -#line 66 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_TAB); } +#line 86 "lexer.l" +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_LINUX); } YY_BREAK case 42: YY_RULE_SETUP -#line 67 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_DIRTY); } - YY_BREAK -case 43: -YY_RULE_SETUP -#line 68 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_LINUX); } - YY_BREAK -case 44: -YY_RULE_SETUP -#line 69 "lexer.l" +#line 87 "lexer.l" { bxlval.sval = strdup(bxtext); return(BX_TOKEN_DUMP_CPU); } YY_BREAK +case 43: +#line 89 "lexer.l" +case 44: +#line 90 "lexer.l" case 45: -#line 71 "lexer.l" -case 46: -#line 72 "lexer.l" -case 47: YY_RULE_SETUP -#line 72 "lexer.l" +#line 90 "lexer.l" { bxlval.sval = strdup(bxtext); return(BX_TOKEN_DEL_BREAKPOINT); } YY_BREAK -case 48: +case 46: YY_RULE_SETUP -#line 73 "lexer.l" +#line 91 "lexer.l" { bxlval.sval = strdup(bxtext); return(BX_TOKEN_ENABLE_BREAKPOINT); } YY_BREAK -case 49: +case 47: YY_RULE_SETUP -#line 74 "lexer.l" +#line 92 "lexer.l" { bxlval.sval = strdup(bxtext); return(BX_TOKEN_DISABLE_BREAKPOINT); } YY_BREAK +case 48: +#line 94 "lexer.l" +case 49: +#line 95 "lexer.l" case 50: -#line 76 "lexer.l" -case 51: -#line 77 "lexer.l" -case 52: YY_RULE_SETUP -#line 77 "lexer.l" +#line 95 "lexer.l" { bxlval.sval = strdup(bxtext); return(BX_TOKEN_QUIT); } YY_BREAK +case 51: +#line 97 "lexer.l" +case 52: +YY_RULE_SETUP +#line 97 "lexer.l" +{ BEGIN(EXAMINE); bxlval.sval = strdup(bxtext); return(BX_TOKEN_EXAMINE); } + YY_BREAK case 53: -#line 79 "lexer.l" +YY_RULE_SETUP +#line 98 "lexer.l" +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_SETPMEM); } + YY_BREAK case 54: YY_RULE_SETUP -#line 79 "lexer.l" -{ BEGIN(EXAMINE); bxlval.sval = strdup(bxtext); return(BX_TOKEN_EXAMINE); } +#line 99 "lexer.l" +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_QUERY); } YY_BREAK case 55: YY_RULE_SETUP -#line 80 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_SETPMEM); } +#line 100 "lexer.l" +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_PENDING); } YY_BREAK case 56: YY_RULE_SETUP -#line 81 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_QUERY); } +#line 101 "lexer.l" +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_TAKE); } YY_BREAK case 57: YY_RULE_SETUP -#line 82 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_PENDING); } +#line 102 "lexer.l" +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_DMA); } YY_BREAK case 58: YY_RULE_SETUP -#line 83 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_TAKE); } +#line 103 "lexer.l" +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_IRQ); } YY_BREAK case 59: YY_RULE_SETUP -#line 84 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_DMA); } +#line 104 "lexer.l" +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_PIC); } YY_BREAK case 60: YY_RULE_SETUP -#line 85 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_IRQ); } - YY_BREAK -case 61: -YY_RULE_SETUP -#line 86 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_PIC); } - YY_BREAK -case 62: -YY_RULE_SETUP -#line 87 "lexer.l" +#line 105 "lexer.l" { bxlval.sval = strdup(bxtext); return(BX_TOKEN_SET_CPU); } YY_BREAK +case 61: +#line 107 "lexer.l" +case 62: +#line 108 "lexer.l" case 63: -#line 89 "lexer.l" +YY_RULE_SETUP +#line 108 "lexer.l" +{ BEGIN(DISASM); bxlval.sval = strdup(bxtext); return(BX_TOKEN_DISASSEMBLE); } + YY_BREAK case 64: -#line 90 "lexer.l" +YY_RULE_SETUP +#line 109 "lexer.l" +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_INSTRUMENT); } + YY_BREAK case 65: YY_RULE_SETUP -#line 90 "lexer.l" -{ BEGIN(DISASM); bxlval.sval = strdup(bxtext); return(BX_TOKEN_DISASSEMBLE); } +#line 110 "lexer.l" +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_STOP); } YY_BREAK case 66: YY_RULE_SETUP -#line 91 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_INSTRUMENT); } +#line 111 "lexer.l" +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_DOIT); } YY_BREAK case 67: YY_RULE_SETUP -#line 92 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_STOP); } +#line 112 "lexer.l" +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_TRACE); } YY_BREAK case 68: YY_RULE_SETUP -#line 93 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_DOIT); } +#line 113 "lexer.l" +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_TRACEREG); } YY_BREAK case 69: YY_RULE_SETUP -#line 94 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_TRACE); } +#line 114 "lexer.l" +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_SWITCH_MODE); } YY_BREAK case 70: YY_RULE_SETUP -#line 95 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_TRACEREG); } +#line 115 "lexer.l" +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_SIZE); } YY_BREAK case 71: YY_RULE_SETUP -#line 96 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_SWITCH_MODE); } +#line 116 "lexer.l" +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_PTIME); } YY_BREAK case 72: YY_RULE_SETUP -#line 97 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_SIZE); } +#line 117 "lexer.l" +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_TIMEBP); } YY_BREAK case 73: YY_RULE_SETUP -#line 98 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_PTIME); } +#line 118 "lexer.l" +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_TIMEBP_ABSOLUTE); } YY_BREAK case 74: YY_RULE_SETUP -#line 99 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_TIMEBP); } +#line 119 "lexer.l" +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_RECORD); } YY_BREAK case 75: YY_RULE_SETUP -#line 100 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_TIMEBP_ABSOLUTE); } +#line 120 "lexer.l" +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_PLAYBACK); } YY_BREAK case 76: YY_RULE_SETUP -#line 101 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_RECORD); } +#line 121 "lexer.l" +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_MODEBP); } YY_BREAK case 77: YY_RULE_SETUP -#line 102 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_PLAYBACK); } +#line 122 "lexer.l" +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_PRINT_STACK); } YY_BREAK case 78: YY_RULE_SETUP -#line 103 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_MODEBP); } +#line 123 "lexer.l" +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_WATCH); } YY_BREAK case 79: YY_RULE_SETUP -#line 104 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_PRINT_STACK); } +#line 124 "lexer.l" +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_UNWATCH); } YY_BREAK case 80: YY_RULE_SETUP -#line 105 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_WATCH); } +#line 125 "lexer.l" +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_READ); } YY_BREAK case 81: YY_RULE_SETUP -#line 106 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_UNWATCH); } +#line 126 "lexer.l" +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_WRITE); } YY_BREAK case 82: YY_RULE_SETUP -#line 107 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_READ); } +#line 127 "lexer.l" +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_SHOW); } YY_BREAK case 83: YY_RULE_SETUP -#line 108 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_WRITE); } +#line 128 "lexer.l" +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_LOAD_SYMBOLS); } YY_BREAK case 84: YY_RULE_SETUP -#line 109 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_SHOW); } +#line 129 "lexer.l" +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_SYMBOLS); } YY_BREAK case 85: YY_RULE_SETUP -#line 110 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_LOAD_SYMBOLS); } +#line 130 "lexer.l" +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_LIST_SYMBOLS); } YY_BREAK case 86: YY_RULE_SETUP -#line 111 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_SYMBOLS); } +#line 131 "lexer.l" +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_GLOBAL); } YY_BREAK case 87: YY_RULE_SETUP -#line 112 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_LIST_SYMBOLS); } +#line 132 "lexer.l" +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_WHERE); } YY_BREAK case 88: YY_RULE_SETUP -#line 113 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_GLOBAL); } +#line 133 "lexer.l" +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_PRINT_STRING); } YY_BREAK case 89: YY_RULE_SETUP -#line 114 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_WHERE); } +#line 134 "lexer.l" +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_NE2000); } YY_BREAK case 90: YY_RULE_SETUP -#line 115 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_PRINT_STRING); } +#line 135 "lexer.l" +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_PAGE); } YY_BREAK case 91: YY_RULE_SETUP -#line 116 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_NE2000); } +#line 136 "lexer.l" +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_VGA); } YY_BREAK case 92: YY_RULE_SETUP -#line 117 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_PAGE); } +#line 137 "lexer.l" +{ bxlval.uval = BX_DBG_REG8L_AL; return(BX_TOKEN_8BL_REG);} YY_BREAK case 93: YY_RULE_SETUP -#line 118 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_VGA); } +#line 138 "lexer.l" +{ bxlval.uval = BX_DBG_REG8L_BL; return(BX_TOKEN_8BL_REG);} YY_BREAK case 94: YY_RULE_SETUP -#line 119 "lexer.l" -{ bxlval.uval = BX_DBG_REG8L_AL; return(BX_TOKEN_REG_AL);} +#line 139 "lexer.l" +{ bxlval.uval = BX_DBG_REG8L_CL; return(BX_TOKEN_8BL_REG);} YY_BREAK case 95: YY_RULE_SETUP -#line 120 "lexer.l" -{ bxlval.uval = BX_DBG_REG8L_BL; return(BX_TOKEN_REG_BL);} +#line 140 "lexer.l" +{ bxlval.uval = BX_DBG_REG8L_DL; return(BX_TOKEN_8BL_REG);} YY_BREAK case 96: YY_RULE_SETUP -#line 121 "lexer.l" -{ bxlval.uval = BX_DBG_REG8L_CL; return(BX_TOKEN_REG_CL);} +#line 141 "lexer.l" +{ LONG_MODE_8BL_REG(BX_DBG_REG8L_SIL); } YY_BREAK case 97: YY_RULE_SETUP -#line 122 "lexer.l" -{ bxlval.uval = BX_DBG_REG8L_DL; return(BX_TOKEN_REG_DL);} +#line 142 "lexer.l" +{ LONG_MODE_8BL_REG(BX_DBG_REG8L_DIL); } YY_BREAK case 98: YY_RULE_SETUP -#line 123 "lexer.l" -{ bxlval.uval = BX_DBG_REG8H_AH; return(BX_TOKEN_REG_AH);} +#line 143 "lexer.l" +{ LONG_MODE_8BL_REG(BX_DBG_REG8L_SPL); } YY_BREAK case 99: YY_RULE_SETUP -#line 124 "lexer.l" -{ bxlval.uval = BX_DBG_REG8H_BH; return(BX_TOKEN_REG_BH);} +#line 144 "lexer.l" +{ LONG_MODE_8BL_REG(BX_DBG_REG8L_BPL); } YY_BREAK case 100: YY_RULE_SETUP -#line 125 "lexer.l" -{ bxlval.uval = BX_DBG_REG8H_CH; return(BX_TOKEN_REG_CH);} +#line 145 "lexer.l" +{ LONG_MODE_8BL_REG(BX_DBG_REG8L_R8); } YY_BREAK case 101: YY_RULE_SETUP -#line 126 "lexer.l" -{ bxlval.uval = BX_DBG_REG8H_DH; return(BX_TOKEN_REG_DH);} +#line 146 "lexer.l" +{ LONG_MODE_8BL_REG(BX_DBG_REG8L_R9); } YY_BREAK case 102: YY_RULE_SETUP -#line 127 "lexer.l" -{ bxlval.uval = BX_DBG_REG16_AX; return(BX_TOKEN_REG_AX);} +#line 147 "lexer.l" +{ LONG_MODE_8BL_REG(BX_DBG_REG8L_R10); } YY_BREAK case 103: YY_RULE_SETUP -#line 128 "lexer.l" -{ bxlval.uval = BX_DBG_REG16_BX; return(BX_TOKEN_REG_BX);} +#line 148 "lexer.l" +{ LONG_MODE_8BL_REG(BX_DBG_REG8L_R11); } YY_BREAK case 104: YY_RULE_SETUP -#line 129 "lexer.l" -{ bxlval.uval = BX_DBG_REG16_CX; return(BX_TOKEN_REG_CX);} +#line 149 "lexer.l" +{ LONG_MODE_8BL_REG(BX_DBG_REG8L_R12); } YY_BREAK case 105: YY_RULE_SETUP -#line 130 "lexer.l" -{ bxlval.uval = BX_DBG_REG16_DX; return(BX_TOKEN_REG_DX);} +#line 150 "lexer.l" +{ LONG_MODE_8BL_REG(BX_DBG_REG8L_R13); } YY_BREAK case 106: YY_RULE_SETUP -#line 131 "lexer.l" -{ bxlval.uval = BX_DBG_REG16_SI; return(BX_TOKEN_REG_SI);} +#line 151 "lexer.l" +{ LONG_MODE_8BL_REG(BX_DBG_REG8L_R14); } YY_BREAK case 107: YY_RULE_SETUP -#line 132 "lexer.l" -{ bxlval.uval = BX_DBG_REG16_DI; return(BX_TOKEN_REG_DI);} +#line 152 "lexer.l" +{ LONG_MODE_8BL_REG(BX_DBG_REG8L_R15); } YY_BREAK case 108: YY_RULE_SETUP -#line 133 "lexer.l" -{ bxlval.uval = BX_DBG_REG16_BP; return(BX_TOKEN_REG_BP);} +#line 153 "lexer.l" +{ bxlval.uval = BX_DBG_REG8H_AH; return(BX_TOKEN_8BH_REG);} YY_BREAK case 109: YY_RULE_SETUP -#line 134 "lexer.l" -{ bxlval.uval = BX_DBG_REG16_SP; return(BX_TOKEN_REG_SP);} +#line 154 "lexer.l" +{ bxlval.uval = BX_DBG_REG8H_BH; return(BX_TOKEN_8BH_REG);} YY_BREAK case 110: YY_RULE_SETUP -#line 135 "lexer.l" -{ bxlval.uval = BX_DBG_GEN_REGISTERS; return(BX_TOKEN_REG_IP);} +#line 155 "lexer.l" +{ bxlval.uval = BX_DBG_REG8H_CH; return(BX_TOKEN_8BH_REG);} YY_BREAK case 111: YY_RULE_SETUP -#line 136 "lexer.l" -{ bxlval.uval = BX_DBG_REG32_EAX; return(BX_TOKEN_REG_EAX);} +#line 156 "lexer.l" +{ bxlval.uval = BX_DBG_REG8H_DH; return(BX_TOKEN_8BH_REG);} YY_BREAK case 112: YY_RULE_SETUP -#line 137 "lexer.l" -{ bxlval.uval = BX_DBG_REG32_EBX; return(BX_TOKEN_REG_EBX);} +#line 157 "lexer.l" +{ bxlval.uval = BX_DBG_REG16_AX; return(BX_TOKEN_16B_REG);} YY_BREAK case 113: YY_RULE_SETUP -#line 138 "lexer.l" -{ bxlval.uval = BX_DBG_REG32_ECX; return(BX_TOKEN_REG_ECX);} +#line 158 "lexer.l" +{ bxlval.uval = BX_DBG_REG16_BX; return(BX_TOKEN_16B_REG);} YY_BREAK case 114: YY_RULE_SETUP -#line 139 "lexer.l" -{ bxlval.uval = BX_DBG_REG32_EDX; return(BX_TOKEN_REG_EDX);} +#line 159 "lexer.l" +{ bxlval.uval = BX_DBG_REG16_CX; return(BX_TOKEN_16B_REG);} YY_BREAK case 115: YY_RULE_SETUP -#line 140 "lexer.l" -{ bxlval.uval = BX_DBG_REG32_ESI; return(BX_TOKEN_REG_ESI);} +#line 160 "lexer.l" +{ bxlval.uval = BX_DBG_REG16_DX; return(BX_TOKEN_16B_REG);} YY_BREAK case 116: YY_RULE_SETUP -#line 141 "lexer.l" -{ bxlval.uval = BX_DBG_REG32_ESI; return(BX_TOKEN_REG_EDI);} +#line 161 "lexer.l" +{ bxlval.uval = BX_DBG_REG16_SI; return(BX_TOKEN_16B_REG);} YY_BREAK case 117: YY_RULE_SETUP -#line 142 "lexer.l" -{ bxlval.uval = BX_DBG_REG32_EBP; return(BX_TOKEN_REG_EBP);} +#line 162 "lexer.l" +{ bxlval.uval = BX_DBG_REG16_DI; return(BX_TOKEN_16B_REG);} YY_BREAK case 118: YY_RULE_SETUP -#line 143 "lexer.l" -{ bxlval.uval = BX_DBG_REG32_ESP; return(BX_TOKEN_REG_ESP);} +#line 163 "lexer.l" +{ bxlval.uval = BX_DBG_REG16_BP; return(BX_TOKEN_16B_REG);} YY_BREAK case 119: YY_RULE_SETUP -#line 144 "lexer.l" -{ bxlval.uval = BX_DBG_GEN_REGISTERS; return(BX_TOKEN_REG_EIP);} +#line 164 "lexer.l" +{ bxlval.uval = BX_DBG_REG16_SP; return(BX_TOKEN_16B_REG);} YY_BREAK case 120: YY_RULE_SETUP -#line 145 "lexer.l" -{ bxlval.uval = BX_DBG_SREG_CS; return(BX_TOKEN_CS); } +#line 165 "lexer.l" +{ LONG_MODE_16B_REG(BX_DBG_REG16_R8); } YY_BREAK case 121: YY_RULE_SETUP -#line 146 "lexer.l" -{ bxlval.uval = BX_DBG_SREG_ES; return(BX_TOKEN_ES); } +#line 166 "lexer.l" +{ LONG_MODE_16B_REG(BX_DBG_REG16_R9); } YY_BREAK case 122: YY_RULE_SETUP -#line 147 "lexer.l" -{ bxlval.uval = BX_DBG_SREG_SS; return(BX_TOKEN_SS); } +#line 167 "lexer.l" +{ LONG_MODE_16B_REG(BX_DBG_REG16_R10); } YY_BREAK case 123: YY_RULE_SETUP -#line 148 "lexer.l" -{ bxlval.uval = BX_DBG_SREG_DS; return(BX_TOKEN_DS); } +#line 168 "lexer.l" +{ LONG_MODE_16B_REG(BX_DBG_REG16_R11); } YY_BREAK case 124: YY_RULE_SETUP -#line 149 "lexer.l" -{ bxlval.uval = BX_DBG_SREG_FS; return(BX_TOKEN_FS); } +#line 169 "lexer.l" +{ LONG_MODE_16B_REG(BX_DBG_REG16_R12); } YY_BREAK case 125: YY_RULE_SETUP -#line 150 "lexer.l" -{ bxlval.uval = BX_DBG_SREG_GS; return(BX_TOKEN_GS); } +#line 170 "lexer.l" +{ LONG_MODE_16B_REG(BX_DBG_REG16_R13); } YY_BREAK case 126: YY_RULE_SETUP -#line 151 "lexer.l" -{ bxlval.uval = 0; return (BX_TOKEN_FLAGS); } +#line 171 "lexer.l" +{ LONG_MODE_16B_REG(BX_DBG_REG16_R14); } YY_BREAK case 127: YY_RULE_SETUP -#line 152 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_HELP); } +#line 172 "lexer.l" +{ LONG_MODE_16B_REG(BX_DBG_REG16_R15); } YY_BREAK case 128: -#line 154 "lexer.l" +YY_RULE_SETUP +#line 173 "lexer.l" +{ bxlval.uval = BX_DBG_REG32_EAX; return(BX_TOKEN_32B_REG);} + YY_BREAK case 129: YY_RULE_SETUP -#line 154 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_CALC); } +#line 174 "lexer.l" +{ bxlval.uval = BX_DBG_REG32_EBX; return(BX_TOKEN_32B_REG);} YY_BREAK case 130: YY_RULE_SETUP -#line 155 "lexer.l" -{ BEGIN(INITIAL); bxlval.sval = strdup(bxtext); return(BX_TOKEN_XFORMAT); } +#line 175 "lexer.l" +{ bxlval.uval = BX_DBG_REG32_ECX; return(BX_TOKEN_32B_REG);} YY_BREAK case 131: YY_RULE_SETUP -#line 156 "lexer.l" -{ BEGIN(INITIAL); bxlval.sval = strdup(bxtext); return(BX_TOKEN_XFORMAT); } +#line 176 "lexer.l" +{ bxlval.uval = BX_DBG_REG32_EDX; return(BX_TOKEN_32B_REG);} YY_BREAK case 132: YY_RULE_SETUP -#line 157 "lexer.l" -{ BEGIN(INITIAL); bxlval.sval = strdup(bxtext); return(BX_TOKEN_DISFORMAT); } +#line 177 "lexer.l" +{ bxlval.uval = BX_DBG_REG32_ESI; return(BX_TOKEN_32B_REG);} YY_BREAK case 133: YY_RULE_SETUP -#line 158 "lexer.l" -{ return ('+'); } +#line 178 "lexer.l" +{ bxlval.uval = BX_DBG_REG32_ESI; return(BX_TOKEN_32B_REG);} YY_BREAK case 134: YY_RULE_SETUP -#line 159 "lexer.l" -{ return ('-'); } +#line 179 "lexer.l" +{ bxlval.uval = BX_DBG_REG32_EBP; return(BX_TOKEN_32B_REG);} YY_BREAK case 135: YY_RULE_SETUP -#line 160 "lexer.l" -{ return ('*'); } +#line 180 "lexer.l" +{ bxlval.uval = BX_DBG_REG32_ESP; return(BX_TOKEN_32B_REG);} YY_BREAK case 136: YY_RULE_SETUP -#line 161 "lexer.l" -{ return ('/'); } +#line 181 "lexer.l" +{ LONG_MODE_32B_REG(BX_DBG_REG32_R8); } YY_BREAK case 137: YY_RULE_SETUP -#line 162 "lexer.l" -{ return (BX_TOKEN_RSHIFT); } +#line 182 "lexer.l" +{ LONG_MODE_32B_REG(BX_DBG_REG32_R9); } YY_BREAK case 138: YY_RULE_SETUP -#line 163 "lexer.l" -{ return (BX_TOKEN_LSHIFT); } +#line 183 "lexer.l" +{ LONG_MODE_32B_REG(BX_DBG_REG32_R10); } YY_BREAK case 139: YY_RULE_SETUP -#line 164 "lexer.l" -{ return ('&'); } +#line 184 "lexer.l" +{ LONG_MODE_32B_REG(BX_DBG_REG32_R11); } YY_BREAK case 140: YY_RULE_SETUP -#line 165 "lexer.l" -{ return ('|'); } +#line 185 "lexer.l" +{ LONG_MODE_32B_REG(BX_DBG_REG32_R12); } YY_BREAK case 141: YY_RULE_SETUP -#line 166 "lexer.l" -{ return ('^'); } +#line 186 "lexer.l" +{ LONG_MODE_32B_REG(BX_DBG_REG32_R13); } YY_BREAK case 142: YY_RULE_SETUP -#line 167 "lexer.l" -{ return ('!'); } +#line 187 "lexer.l" +{ LONG_MODE_32B_REG(BX_DBG_REG32_R14); } YY_BREAK case 143: YY_RULE_SETUP -#line 168 "lexer.l" -{ return ('('); } +#line 188 "lexer.l" +{ LONG_MODE_32B_REG(BX_DBG_REG32_R15); } YY_BREAK case 144: YY_RULE_SETUP -#line 169 "lexer.l" -{ return (')'); } +#line 189 "lexer.l" +{ LONG_MODE_64B_REG(BX_DBG_REG64_RAX); } YY_BREAK case 145: -#line 171 "lexer.l" +YY_RULE_SETUP +#line 190 "lexer.l" +{ LONG_MODE_64B_REG(BX_DBG_REG64_RBX); } + YY_BREAK case 146: YY_RULE_SETUP -#line 171 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_STRING); } +#line 191 "lexer.l" +{ LONG_MODE_64B_REG(BX_DBG_REG64_RCX); } YY_BREAK case 147: YY_RULE_SETUP -#line 172 "lexer.l" -{ bxlval.uval = strtoul(bxtext+2, NULL, 16); return(BX_TOKEN_NUMERIC); } +#line 192 "lexer.l" +{ LONG_MODE_64B_REG(BX_DBG_REG64_RDX); } YY_BREAK case 148: YY_RULE_SETUP -#line 173 "lexer.l" -{ bxlval.uval = strtoul(bxtext+1, NULL, 8); return(BX_TOKEN_NUMERIC); } +#line 193 "lexer.l" +{ LONG_MODE_64B_REG(BX_DBG_REG64_RSI); } YY_BREAK case 149: YY_RULE_SETUP -#line 174 "lexer.l" -{ bxlval.ulval = strtoull(bxtext, NULL, 10); return(BX_TOKEN_LONG_NUMERIC); } +#line 194 "lexer.l" +{ LONG_MODE_64B_REG(BX_DBG_REG64_RDI); } YY_BREAK case 150: YY_RULE_SETUP -#line 175 "lexer.l" -{ bxlval.uval = strtoul(bxtext, NULL, 10); return(BX_TOKEN_NUMERIC); } +#line 195 "lexer.l" +{ LONG_MODE_64B_REG(BX_DBG_REG64_RSP); } YY_BREAK case 151: YY_RULE_SETUP -#line 176 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_COMMAND); } +#line 196 "lexer.l" +{ LONG_MODE_64B_REG(BX_DBG_REG64_RBP); } YY_BREAK case 152: YY_RULE_SETUP -#line 177 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_SYMBOLNAME); } +#line 197 "lexer.l" +{ LONG_MODE_64B_REG(BX_DBG_REG64_R8); } YY_BREAK case 153: YY_RULE_SETUP -#line 178 "lexer.l" -{ return ('\n'); } +#line 198 "lexer.l" +{ LONG_MODE_64B_REG(BX_DBG_REG64_R9); } YY_BREAK case 154: YY_RULE_SETUP -#line 179 "lexer.l" -{ return ('\n'); } +#line 199 "lexer.l" +{ LONG_MODE_64B_REG(BX_DBG_REG64_R10); } YY_BREAK case 155: YY_RULE_SETUP -#line 180 "lexer.l" -; // eat up comments '//' +#line 200 "lexer.l" +{ LONG_MODE_64B_REG(BX_DBG_REG64_R11); } YY_BREAK case 156: YY_RULE_SETUP -#line 181 "lexer.l" -{ return(bxtext[0]); } +#line 201 "lexer.l" +{ LONG_MODE_64B_REG(BX_DBG_REG64_R12); } YY_BREAK case 157: YY_RULE_SETUP -#line 182 "lexer.l" -{ BEGIN(INITIAL); unput(*bxtext); } +#line 202 "lexer.l" +{ LONG_MODE_64B_REG(BX_DBG_REG64_R13); } YY_BREAK case 158: YY_RULE_SETUP -#line 183 "lexer.l" +#line 203 "lexer.l" +{ LONG_MODE_64B_REG(BX_DBG_REG64_R14); } + YY_BREAK +case 159: +YY_RULE_SETUP +#line 204 "lexer.l" +{ LONG_MODE_64B_REG(BX_DBG_REG64_R15); } + YY_BREAK +case 160: +YY_RULE_SETUP +#line 205 "lexer.l" +{ return(BX_TOKEN_REG_IP); } + YY_BREAK +case 161: +YY_RULE_SETUP +#line 206 "lexer.l" +{ return(BX_TOKEN_REG_EIP);} + YY_BREAK +case 162: +YY_RULE_SETUP +#line 207 "lexer.l" +{ return(BX_TOKEN_REG_RIP);} + YY_BREAK +case 163: +YY_RULE_SETUP +#line 208 "lexer.l" +{ bxlval.uval = BX_DBG_SREG_CS; return(BX_TOKEN_CS); } + YY_BREAK +case 164: +YY_RULE_SETUP +#line 209 "lexer.l" +{ bxlval.uval = BX_DBG_SREG_ES; return(BX_TOKEN_ES); } + YY_BREAK +case 165: +YY_RULE_SETUP +#line 210 "lexer.l" +{ bxlval.uval = BX_DBG_SREG_SS; return(BX_TOKEN_SS); } + YY_BREAK +case 166: +YY_RULE_SETUP +#line 211 "lexer.l" +{ bxlval.uval = BX_DBG_SREG_DS; return(BX_TOKEN_DS); } + YY_BREAK +case 167: +YY_RULE_SETUP +#line 212 "lexer.l" +{ bxlval.uval = BX_DBG_SREG_FS; return(BX_TOKEN_FS); } + YY_BREAK +case 168: +YY_RULE_SETUP +#line 213 "lexer.l" +{ bxlval.uval = BX_DBG_SREG_GS; return(BX_TOKEN_GS); } + YY_BREAK +case 169: +YY_RULE_SETUP +#line 214 "lexer.l" +{ bxlval.uval = 0; return (BX_TOKEN_FLAGS); } + YY_BREAK +case 170: +YY_RULE_SETUP +#line 215 "lexer.l" +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_HELP); } + YY_BREAK +case 171: +#line 217 "lexer.l" +case 172: +YY_RULE_SETUP +#line 217 "lexer.l" +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_CALC); } + YY_BREAK +case 173: +YY_RULE_SETUP +#line 218 "lexer.l" +{ BEGIN(INITIAL); bxlval.sval = strdup(bxtext); return(BX_TOKEN_XFORMAT); } + YY_BREAK +case 174: +YY_RULE_SETUP +#line 219 "lexer.l" +{ BEGIN(INITIAL); bxlval.sval = strdup(bxtext); return(BX_TOKEN_XFORMAT); } + YY_BREAK +case 175: +YY_RULE_SETUP +#line 220 "lexer.l" +{ BEGIN(INITIAL); bxlval.sval = strdup(bxtext); return(BX_TOKEN_DISFORMAT); } + YY_BREAK +case 176: +YY_RULE_SETUP +#line 221 "lexer.l" +{ return ('+'); } + YY_BREAK +case 177: +YY_RULE_SETUP +#line 222 "lexer.l" +{ return ('-'); } + YY_BREAK +case 178: +YY_RULE_SETUP +#line 223 "lexer.l" +{ return ('*'); } + YY_BREAK +case 179: +YY_RULE_SETUP +#line 224 "lexer.l" +{ return ('/'); } + YY_BREAK +case 180: +YY_RULE_SETUP +#line 225 "lexer.l" +{ return (BX_TOKEN_RSHIFT); } + YY_BREAK +case 181: +YY_RULE_SETUP +#line 226 "lexer.l" +{ return (BX_TOKEN_LSHIFT); } + YY_BREAK +case 182: +YY_RULE_SETUP +#line 227 "lexer.l" +{ return ('&'); } + YY_BREAK +case 183: +YY_RULE_SETUP +#line 228 "lexer.l" +{ return ('|'); } + YY_BREAK +case 184: +YY_RULE_SETUP +#line 229 "lexer.l" +{ return ('^'); } + YY_BREAK +case 185: +YY_RULE_SETUP +#line 230 "lexer.l" +{ return ('!'); } + YY_BREAK +case 186: +YY_RULE_SETUP +#line 231 "lexer.l" +{ return ('('); } + YY_BREAK +case 187: +YY_RULE_SETUP +#line 232 "lexer.l" +{ return (')'); } + YY_BREAK +case 188: +#line 234 "lexer.l" +case 189: +YY_RULE_SETUP +#line 234 "lexer.l" +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_STRING); } + YY_BREAK +case 190: +YY_RULE_SETUP +#line 235 "lexer.l" +{ bxlval.uval = strtoul(bxtext+2, NULL, 16); return(BX_TOKEN_NUMERIC); } + YY_BREAK +case 191: +YY_RULE_SETUP +#line 236 "lexer.l" +{ bxlval.uval = strtoul(bxtext+1, NULL, 8); return(BX_TOKEN_NUMERIC); } + YY_BREAK +case 192: +YY_RULE_SETUP +#line 237 "lexer.l" +{ bxlval.uval = strtoul(bxtext, NULL, 10); return(BX_TOKEN_NUMERIC); } + YY_BREAK +case 193: +YY_RULE_SETUP +#line 238 "lexer.l" +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_COMMAND); } + YY_BREAK +case 194: +YY_RULE_SETUP +#line 239 "lexer.l" +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_SYMBOLNAME); } + YY_BREAK +case 195: +YY_RULE_SETUP +#line 240 "lexer.l" +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_GENERIC); } + YY_BREAK +case 196: +YY_RULE_SETUP +#line 241 "lexer.l" +{ return ('\n'); } + YY_BREAK +case 197: +YY_RULE_SETUP +#line 242 "lexer.l" +{ return ('\n'); } + YY_BREAK +case 198: +YY_RULE_SETUP +#line 243 "lexer.l" +; // eat up comments '//' + YY_BREAK +case 199: +YY_RULE_SETUP +#line 244 "lexer.l" +{ return(bxtext[0]); } + YY_BREAK +case 200: +YY_RULE_SETUP +#line 245 "lexer.l" +{ BEGIN(INITIAL); unput(*bxtext); } + YY_BREAK +case 201: +YY_RULE_SETUP +#line 246 "lexer.l" ECHO; YY_BREAK case YY_STATE_EOF(INITIAL): @@ -1912,7 +2570,7 @@ static yy_state_type yy_get_previous_state() 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 >= 398 ) + if ( yy_current_state >= 451 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -1947,11 +2605,11 @@ yy_state_type yy_current_state; 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 >= 398 ) + if ( yy_current_state >= 451 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - yy_is_jam = (yy_current_state == 397); + yy_is_jam = (yy_current_state == 450); return yy_is_jam ? 0 : yy_current_state; } @@ -2510,11 +3168,9 @@ int main() return 0; } #endif -#line 183 "lexer.l" +#line 246 "lexer.l" -// [A-Za-z_][A-Za-z0-9_]* { bxlval.sval = strdup(bxtext); return(BX_TOKEN_GENERIC); } - int bx_yyinput(char *buf, int max_size) { diff --git a/bochs/bx_debug/lexer.l b/bochs/bx_debug/lexer.l index b6a5e1560..10474b674 100644 --- a/bochs/bx_debug/lexer.l +++ b/bochs/bx_debug/lexer.l @@ -1,6 +1,6 @@ %{ ///////////////////////////////////////////////////////////////////////// -// $Id: lexer.l,v 1.14 2006-02-11 21:19:22 sshwarts Exp $ +// $Id: lexer.l,v 1.15 2006-02-13 18:28:14 sshwarts Exp $ ///////////////////////////////////////////////////////////////////////// #include @@ -10,13 +10,33 @@ #include "parser.h" - int bx_yyinput(char *buf, int max_size); #undef YY_INPUT #define YY_INPUT(buf, ret, max_size) (ret = bx_yyinput(buf, max_size)) static char *lex_input_ptr = NULL; static unsigned lex_input_size = 0; + +#if BX_SUPPORT_X86_64 + #define LONG_MODE_8BL_REG(reg) \ + { bxlval.uval = reg; return(BX_TOKEN_8BL_REG); } + #define LONG_MODE_16B_REG(reg) \ + { bxlval.uval = reg; return(BX_TOKEN_16B_REG); } + #define LONG_MODE_32B_REG(reg) \ + { bxlval.uval = reg; return(BX_TOKEN_32B_REG); } + #define LONG_MODE_64B_REG(reg) \ + { bxlval.uval = reg; return(BX_TOKEN_64B_REG); } +#else + #define LONG_MODE_8BL_REG(reg) \ + { bxlval.sval = strdup(bxtext); return(BX_TOKEN_GENERERIC); } + #define LONG_MODE_16B_REG(reg) \ + { bxlval.sval = strdup(bxtext); return(BX_TOKEN_GENERERIC); } + #define LONG_MODE_32B_REG(reg) \ + { bxlval.sval = strdup(bxtext); return(BX_TOKEN_GENERERIC); } + #define LONG_MODE_64B_REG(reg) \ + { bxlval.sval = strdup(bxtext); return(BX_TOKEN_GENERERIC); } +#endif + %} %x EXAMINE @@ -38,10 +58,8 @@ next | n | p { bxlval.sval = strdup(bxtext); return(BX_TOKEN_STEP_OVER); } blist { bxlval.sval = strdup(bxtext); return(BX_TOKEN_LIST_BREAK); } -vb | -vbreak { bxlval.sval = strdup(bxtext); return(BX_TOKEN_VBREAKPOINT); } -lb | -lbreak { bxlval.sval = strdup(bxtext); return(BX_TOKEN_LBREAKPOINT); } +vb|vbreak { bxlval.sval = strdup(bxtext); return(BX_TOKEN_VBREAKPOINT); } +lb|lbreak { bxlval.sval = strdup(bxtext); return(BX_TOKEN_LBREAKPOINT); } break | b | pb | @@ -116,32 +134,77 @@ print-string { bxlval.sval = strdup(bxtext); return(BX_TOKEN_PRINT_STRING); } ne2k|ne2000 { bxlval.sval = strdup(bxtext); return(BX_TOKEN_NE2000); } page { bxlval.sval = strdup(bxtext); return(BX_TOKEN_PAGE); } vga { bxlval.sval = strdup(bxtext); return(BX_TOKEN_VGA); } -al { bxlval.uval = BX_DBG_REG8L_AL; return(BX_TOKEN_REG_AL);} -bl { bxlval.uval = BX_DBG_REG8L_BL; return(BX_TOKEN_REG_BL);} -cl { bxlval.uval = BX_DBG_REG8L_CL; return(BX_TOKEN_REG_CL);} -dl { bxlval.uval = BX_DBG_REG8L_DL; return(BX_TOKEN_REG_DL);} -ah { bxlval.uval = BX_DBG_REG8H_AH; return(BX_TOKEN_REG_AH);} -bh { bxlval.uval = BX_DBG_REG8H_BH; return(BX_TOKEN_REG_BH);} -ch { bxlval.uval = BX_DBG_REG8H_CH; return(BX_TOKEN_REG_CH);} -dh { bxlval.uval = BX_DBG_REG8H_DH; return(BX_TOKEN_REG_DH);} -ax { bxlval.uval = BX_DBG_REG16_AX; return(BX_TOKEN_REG_AX);} -bx { bxlval.uval = BX_DBG_REG16_BX; return(BX_TOKEN_REG_BX);} -cx { bxlval.uval = BX_DBG_REG16_CX; return(BX_TOKEN_REG_CX);} -dx { bxlval.uval = BX_DBG_REG16_DX; return(BX_TOKEN_REG_DX);} -si { bxlval.uval = BX_DBG_REG16_SI; return(BX_TOKEN_REG_SI);} -di { bxlval.uval = BX_DBG_REG16_DI; return(BX_TOKEN_REG_DI);} -bp { bxlval.uval = BX_DBG_REG16_BP; return(BX_TOKEN_REG_BP);} -sp { bxlval.uval = BX_DBG_REG16_SP; return(BX_TOKEN_REG_SP);} -ip { bxlval.uval = BX_DBG_GEN_REGISTERS; return(BX_TOKEN_REG_IP);} -eax { bxlval.uval = BX_DBG_REG32_EAX; return(BX_TOKEN_REG_EAX);} -ebx { bxlval.uval = BX_DBG_REG32_EBX; return(BX_TOKEN_REG_EBX);} -ecx { bxlval.uval = BX_DBG_REG32_ECX; return(BX_TOKEN_REG_ECX);} -edx { bxlval.uval = BX_DBG_REG32_EDX; return(BX_TOKEN_REG_EDX);} -esi { bxlval.uval = BX_DBG_REG32_ESI; return(BX_TOKEN_REG_ESI);} -edi { bxlval.uval = BX_DBG_REG32_ESI; return(BX_TOKEN_REG_EDI);} -ebp { bxlval.uval = BX_DBG_REG32_EBP; return(BX_TOKEN_REG_EBP);} -esp { bxlval.uval = BX_DBG_REG32_ESP; return(BX_TOKEN_REG_ESP);} -eip { bxlval.uval = BX_DBG_GEN_REGISTERS; return(BX_TOKEN_REG_EIP);} +al { bxlval.uval = BX_DBG_REG8L_AL; return(BX_TOKEN_8BL_REG);} +bl { bxlval.uval = BX_DBG_REG8L_BL; return(BX_TOKEN_8BL_REG);} +cl { bxlval.uval = BX_DBG_REG8L_CL; return(BX_TOKEN_8BL_REG);} +dl { bxlval.uval = BX_DBG_REG8L_DL; return(BX_TOKEN_8BL_REG);} +sil { LONG_MODE_8BL_REG(BX_DBG_REG8L_SIL); } +dil { LONG_MODE_8BL_REG(BX_DBG_REG8L_DIL); } +spl { LONG_MODE_8BL_REG(BX_DBG_REG8L_SPL); } +bpl { LONG_MODE_8BL_REG(BX_DBG_REG8L_BPL); } +r8b { LONG_MODE_8BL_REG(BX_DBG_REG8L_R8); } +r9b { LONG_MODE_8BL_REG(BX_DBG_REG8L_R9); } +r10b { LONG_MODE_8BL_REG(BX_DBG_REG8L_R10); } +r11b { LONG_MODE_8BL_REG(BX_DBG_REG8L_R11); } +r12b { LONG_MODE_8BL_REG(BX_DBG_REG8L_R12); } +r13b { LONG_MODE_8BL_REG(BX_DBG_REG8L_R13); } +r14b { LONG_MODE_8BL_REG(BX_DBG_REG8L_R14); } +r15b { LONG_MODE_8BL_REG(BX_DBG_REG8L_R15); } +ah { bxlval.uval = BX_DBG_REG8H_AH; return(BX_TOKEN_8BH_REG);} +bh { bxlval.uval = BX_DBG_REG8H_BH; return(BX_TOKEN_8BH_REG);} +ch { bxlval.uval = BX_DBG_REG8H_CH; return(BX_TOKEN_8BH_REG);} +dh { bxlval.uval = BX_DBG_REG8H_DH; return(BX_TOKEN_8BH_REG);} +ax { bxlval.uval = BX_DBG_REG16_AX; return(BX_TOKEN_16B_REG);} +bx { bxlval.uval = BX_DBG_REG16_BX; return(BX_TOKEN_16B_REG);} +cx { bxlval.uval = BX_DBG_REG16_CX; return(BX_TOKEN_16B_REG);} +dx { bxlval.uval = BX_DBG_REG16_DX; return(BX_TOKEN_16B_REG);} +si { bxlval.uval = BX_DBG_REG16_SI; return(BX_TOKEN_16B_REG);} +di { bxlval.uval = BX_DBG_REG16_DI; return(BX_TOKEN_16B_REG);} +bp { bxlval.uval = BX_DBG_REG16_BP; return(BX_TOKEN_16B_REG);} +sp { bxlval.uval = BX_DBG_REG16_SP; return(BX_TOKEN_16B_REG);} +r8w { LONG_MODE_16B_REG(BX_DBG_REG16_R8); } +r9w { LONG_MODE_16B_REG(BX_DBG_REG16_R9); } +r10w { LONG_MODE_16B_REG(BX_DBG_REG16_R10); } +r11w { LONG_MODE_16B_REG(BX_DBG_REG16_R11); } +r12w { LONG_MODE_16B_REG(BX_DBG_REG16_R12); } +r13w { LONG_MODE_16B_REG(BX_DBG_REG16_R13); } +r14w { LONG_MODE_16B_REG(BX_DBG_REG16_R14); } +r15w { LONG_MODE_16B_REG(BX_DBG_REG16_R15); } +eax { bxlval.uval = BX_DBG_REG32_EAX; return(BX_TOKEN_32B_REG);} +ebx { bxlval.uval = BX_DBG_REG32_EBX; return(BX_TOKEN_32B_REG);} +ecx { bxlval.uval = BX_DBG_REG32_ECX; return(BX_TOKEN_32B_REG);} +edx { bxlval.uval = BX_DBG_REG32_EDX; return(BX_TOKEN_32B_REG);} +esi { bxlval.uval = BX_DBG_REG32_ESI; return(BX_TOKEN_32B_REG);} +edi { bxlval.uval = BX_DBG_REG32_ESI; return(BX_TOKEN_32B_REG);} +ebp { bxlval.uval = BX_DBG_REG32_EBP; return(BX_TOKEN_32B_REG);} +esp { bxlval.uval = BX_DBG_REG32_ESP; return(BX_TOKEN_32B_REG);} +r8d { LONG_MODE_32B_REG(BX_DBG_REG32_R8); } +r9d { LONG_MODE_32B_REG(BX_DBG_REG32_R9); } +r10d { LONG_MODE_32B_REG(BX_DBG_REG32_R10); } +r11d { LONG_MODE_32B_REG(BX_DBG_REG32_R11); } +r12d { LONG_MODE_32B_REG(BX_DBG_REG32_R12); } +r13d { LONG_MODE_32B_REG(BX_DBG_REG32_R13); } +r14d { LONG_MODE_32B_REG(BX_DBG_REG32_R14); } +r15d { LONG_MODE_32B_REG(BX_DBG_REG32_R15); } +rax { LONG_MODE_64B_REG(BX_DBG_REG64_RAX); } +rbx { LONG_MODE_64B_REG(BX_DBG_REG64_RBX); } +rcx { LONG_MODE_64B_REG(BX_DBG_REG64_RCX); } +rdx { LONG_MODE_64B_REG(BX_DBG_REG64_RDX); } +rsi { LONG_MODE_64B_REG(BX_DBG_REG64_RSI); } +rdi { LONG_MODE_64B_REG(BX_DBG_REG64_RDI); } +rsp { LONG_MODE_64B_REG(BX_DBG_REG64_RSP); } +rbp { LONG_MODE_64B_REG(BX_DBG_REG64_RBP); } +r8 { LONG_MODE_64B_REG(BX_DBG_REG64_R8); } +r9 { LONG_MODE_64B_REG(BX_DBG_REG64_R9); } +r10 { LONG_MODE_64B_REG(BX_DBG_REG64_R10); } +r11 { LONG_MODE_64B_REG(BX_DBG_REG64_R11); } +r12 { LONG_MODE_64B_REG(BX_DBG_REG64_R12); } +r13 { LONG_MODE_64B_REG(BX_DBG_REG64_R13); } +r14 { LONG_MODE_64B_REG(BX_DBG_REG64_R14); } +r15 { LONG_MODE_64B_REG(BX_DBG_REG64_R15); } +ip { return(BX_TOKEN_REG_IP); } +eip { return(BX_TOKEN_REG_EIP);} +rip { return(BX_TOKEN_REG_RIP);} cs { bxlval.uval = BX_DBG_SREG_CS; return(BX_TOKEN_CS); } es { bxlval.uval = BX_DBG_SREG_ES; return(BX_TOKEN_ES); } ss { bxlval.uval = BX_DBG_SREG_SS; return(BX_TOKEN_SS); } @@ -171,10 +234,10 @@ calc { bxlval.sval = strdup(bxtext); return(BX_TOKEN_CALC); } \"([^\\\"\n]|(\\.))*\" { bxlval.sval = strdup(bxtext); return(BX_TOKEN_STRING); } 0x[0-9a-fA-F]+ { bxlval.uval = strtoul(bxtext+2, NULL, 16); return(BX_TOKEN_NUMERIC); } 0[0-7]+ { bxlval.uval = strtoul(bxtext+1, NULL, 8); return(BX_TOKEN_NUMERIC); } -[0-9]+L { bxlval.ulval = strtoull(bxtext, NULL, 10); return(BX_TOKEN_LONG_NUMERIC); } [0-9]+ { bxlval.uval = strtoul(bxtext, NULL, 10); return(BX_TOKEN_NUMERIC); } [a-z]+ { bxlval.sval = strdup(bxtext); return(BX_TOKEN_COMMAND); } $[a-zA-Z_][a-zA-Z0-9_]* { bxlval.sval = strdup(bxtext); return(BX_TOKEN_SYMBOLNAME); } +[A-Za-z_][A-Za-z0-9_]* { bxlval.sval = strdup(bxtext); return(BX_TOKEN_GENERIC); } <*>";" { return ('\n'); } <*>\n { return ('\n'); } [#][^\n]* ; // eat up comments '//' @@ -182,8 +245,6 @@ $[a-zA-Z_][a-zA-Z0-9_]* { bxlval.sval = strdup(bxtext); return(BX_TOKEN_SYMBOLNA . { BEGIN(INITIAL); unput(*bxtext); } %% -// [A-Za-z_][A-Za-z0-9_]* { bxlval.sval = strdup(bxtext); return(BX_TOKEN_GENERIC); } - int bx_yyinput(char *buf, int max_size) { diff --git a/bochs/bx_debug/parser.c b/bochs/bx_debug/parser.c index 24f7e616a..d24c9e228 100644 --- a/bochs/bx_debug/parser.c +++ b/bochs/bx_debug/parser.c @@ -62,242 +62,206 @@ /* Put the tokens into the symbol table, so that GDB and other debuggers know about them. */ enum yytokentype { - BX_TOKEN_REG_AL = 258, - BX_TOKEN_REG_BL = 259, - BX_TOKEN_REG_CL = 260, - BX_TOKEN_REG_DL = 261, - BX_TOKEN_REG_AH = 262, - BX_TOKEN_REG_BH = 263, - BX_TOKEN_REG_CH = 264, - BX_TOKEN_REG_DH = 265, - BX_TOKEN_REG_AX = 266, - BX_TOKEN_REG_BX = 267, - BX_TOKEN_REG_CX = 268, - BX_TOKEN_REG_DX = 269, - BX_TOKEN_REG_EAX = 270, - BX_TOKEN_REG_EBX = 271, - BX_TOKEN_REG_ECX = 272, - BX_TOKEN_REG_EDX = 273, - BX_TOKEN_REG_SI = 274, - BX_TOKEN_REG_DI = 275, - BX_TOKEN_REG_BP = 276, - BX_TOKEN_REG_SP = 277, - BX_TOKEN_REG_IP = 278, - BX_TOKEN_REG_ESI = 279, - BX_TOKEN_REG_EDI = 280, - BX_TOKEN_REG_EBP = 281, - BX_TOKEN_REG_ESP = 282, - BX_TOKEN_REG_EIP = 283, - BX_TOKEN_CS = 284, - BX_TOKEN_ES = 285, - BX_TOKEN_SS = 286, - BX_TOKEN_DS = 287, - BX_TOKEN_FS = 288, - BX_TOKEN_GS = 289, - BX_TOKEN_FLAGS = 290, - BX_TOKEN_ON = 291, - BX_TOKEN_OFF = 292, - BX_TOKEN_CONTINUE = 293, - BX_TOKEN_STEPN = 294, - BX_TOKEN_STEP_OVER = 295, - BX_TOKEN_NEXT_STEP = 296, - BX_TOKEN_SET = 297, - BX_TOKEN_DEBUGGER = 298, - BX_TOKEN_LIST_BREAK = 299, - BX_TOKEN_VBREAKPOINT = 300, - BX_TOKEN_LBREAKPOINT = 301, - BX_TOKEN_PBREAKPOINT = 302, - BX_TOKEN_DEL_BREAKPOINT = 303, - BX_TOKEN_ENABLE_BREAKPOINT = 304, - BX_TOKEN_DISABLE_BREAKPOINT = 305, - BX_TOKEN_INFO = 306, - BX_TOKEN_QUIT = 307, - BX_TOKEN_REGISTERS = 308, - BX_TOKEN_CPU = 309, - BX_TOKEN_FPU = 310, - BX_TOKEN_SSE = 311, - BX_TOKEN_ALL = 312, - BX_TOKEN_IDT = 313, - BX_TOKEN_IVT = 314, - BX_TOKEN_GDT = 315, - BX_TOKEN_LDT = 316, - BX_TOKEN_TSS = 317, - BX_TOKEN_TAB = 318, - BX_TOKEN_DIRTY = 319, - BX_TOKEN_LINUX = 320, - BX_TOKEN_CONTROL_REGS = 321, - BX_TOKEN_EXAMINE = 322, - BX_TOKEN_XFORMAT = 323, - BX_TOKEN_DISFORMAT = 324, - BX_TOKEN_SETPMEM = 325, - BX_TOKEN_SYMBOLNAME = 326, - BX_TOKEN_QUERY = 327, - BX_TOKEN_PENDING = 328, - BX_TOKEN_TAKE = 329, - BX_TOKEN_DMA = 330, - BX_TOKEN_IRQ = 331, - BX_TOKEN_DUMP_CPU = 332, - BX_TOKEN_SET_CPU = 333, - BX_TOKEN_DISASSEMBLE = 334, - BX_TOKEN_INSTRUMENT = 335, - BX_TOKEN_STRING = 336, - BX_TOKEN_STOP = 337, - BX_TOKEN_DOIT = 338, - BX_TOKEN_CRC = 339, - BX_TOKEN_TRACE = 340, - BX_TOKEN_TRACEREG = 341, - BX_TOKEN_SWITCH_MODE = 342, - BX_TOKEN_SIZE = 343, - BX_TOKEN_PTIME = 344, - BX_TOKEN_TIMEBP_ABSOLUTE = 345, - BX_TOKEN_TIMEBP = 346, - BX_TOKEN_RECORD = 347, - BX_TOKEN_PLAYBACK = 348, - BX_TOKEN_MODEBP = 349, - BX_TOKEN_PRINT_STACK = 350, - BX_TOKEN_WATCH = 351, - BX_TOKEN_UNWATCH = 352, - BX_TOKEN_READ = 353, - BX_TOKEN_WRITE = 354, - BX_TOKEN_SHOW = 355, - BX_TOKEN_LOAD_SYMBOLS = 356, - BX_TOKEN_SYMBOLS = 357, - BX_TOKEN_LIST_SYMBOLS = 358, - BX_TOKEN_GLOBAL = 359, - BX_TOKEN_WHERE = 360, - BX_TOKEN_PRINT_STRING = 361, - BX_TOKEN_NUMERIC = 362, - BX_TOKEN_LONG_NUMERIC = 363, - BX_TOKEN_NE2000 = 364, - BX_TOKEN_PIC = 365, - BX_TOKEN_PAGE = 366, - BX_TOKEN_HELP = 367, - BX_TOKEN_CALC = 368, - BX_TOKEN_VGA = 369, - BX_TOKEN_COMMAND = 370, - BX_TOKEN_RSHIFT = 371, - BX_TOKEN_LSHIFT = 372, - NEG = 373, - NOT = 374 + BX_TOKEN_8BH_REG = 258, + BX_TOKEN_8BL_REG = 259, + BX_TOKEN_16B_REG = 260, + BX_TOKEN_32B_REG = 261, + BX_TOKEN_64B_REG = 262, + BX_TOKEN_CS = 263, + BX_TOKEN_ES = 264, + BX_TOKEN_SS = 265, + BX_TOKEN_DS = 266, + BX_TOKEN_FS = 267, + BX_TOKEN_GS = 268, + BX_TOKEN_FLAGS = 269, + BX_TOKEN_ON = 270, + BX_TOKEN_OFF = 271, + BX_TOKEN_CONTINUE = 272, + BX_TOKEN_STEPN = 273, + BX_TOKEN_STEP_OVER = 274, + BX_TOKEN_NEXT_STEP = 275, + BX_TOKEN_SET = 276, + BX_TOKEN_DEBUGGER = 277, + BX_TOKEN_LIST_BREAK = 278, + BX_TOKEN_VBREAKPOINT = 279, + BX_TOKEN_LBREAKPOINT = 280, + BX_TOKEN_PBREAKPOINT = 281, + BX_TOKEN_DEL_BREAKPOINT = 282, + BX_TOKEN_ENABLE_BREAKPOINT = 283, + BX_TOKEN_DISABLE_BREAKPOINT = 284, + BX_TOKEN_INFO = 285, + BX_TOKEN_QUIT = 286, + BX_TOKEN_REGISTERS = 287, + BX_TOKEN_CPU = 288, + BX_TOKEN_FPU = 289, + BX_TOKEN_SSE = 290, + BX_TOKEN_ALL = 291, + BX_TOKEN_IDT = 292, + BX_TOKEN_IVT = 293, + BX_TOKEN_GDT = 294, + BX_TOKEN_LDT = 295, + BX_TOKEN_TSS = 296, + BX_TOKEN_TAB = 297, + BX_TOKEN_DIRTY = 298, + BX_TOKEN_LINUX = 299, + BX_TOKEN_CONTROL_REGS = 300, + BX_TOKEN_EXAMINE = 301, + BX_TOKEN_XFORMAT = 302, + BX_TOKEN_DISFORMAT = 303, + BX_TOKEN_SETPMEM = 304, + BX_TOKEN_SYMBOLNAME = 305, + BX_TOKEN_QUERY = 306, + BX_TOKEN_PENDING = 307, + BX_TOKEN_TAKE = 308, + BX_TOKEN_DMA = 309, + BX_TOKEN_IRQ = 310, + BX_TOKEN_DUMP_CPU = 311, + BX_TOKEN_SET_CPU = 312, + BX_TOKEN_DISASSEMBLE = 313, + BX_TOKEN_INSTRUMENT = 314, + BX_TOKEN_STRING = 315, + BX_TOKEN_STOP = 316, + BX_TOKEN_DOIT = 317, + BX_TOKEN_CRC = 318, + BX_TOKEN_TRACE = 319, + BX_TOKEN_TRACEREG = 320, + BX_TOKEN_SWITCH_MODE = 321, + BX_TOKEN_SIZE = 322, + BX_TOKEN_PTIME = 323, + BX_TOKEN_TIMEBP_ABSOLUTE = 324, + BX_TOKEN_TIMEBP = 325, + BX_TOKEN_RECORD = 326, + BX_TOKEN_PLAYBACK = 327, + BX_TOKEN_MODEBP = 328, + BX_TOKEN_PRINT_STACK = 329, + BX_TOKEN_WATCH = 330, + BX_TOKEN_UNWATCH = 331, + BX_TOKEN_READ = 332, + BX_TOKEN_WRITE = 333, + BX_TOKEN_SHOW = 334, + BX_TOKEN_LOAD_SYMBOLS = 335, + BX_TOKEN_SYMBOLS = 336, + BX_TOKEN_LIST_SYMBOLS = 337, + BX_TOKEN_GLOBAL = 338, + BX_TOKEN_WHERE = 339, + BX_TOKEN_PRINT_STRING = 340, + BX_TOKEN_NUMERIC = 341, + BX_TOKEN_NE2000 = 342, + BX_TOKEN_PIC = 343, + BX_TOKEN_PAGE = 344, + BX_TOKEN_HELP = 345, + BX_TOKEN_CALC = 346, + BX_TOKEN_VGA = 347, + BX_TOKEN_COMMAND = 348, + BX_TOKEN_GENERIC = 349, + BX_TOKEN_RSHIFT = 350, + BX_TOKEN_LSHIFT = 351, + BX_TOKEN_REG_IP = 352, + BX_TOKEN_REG_EIP = 353, + BX_TOKEN_REG_RIP = 354, + NEG = 355, + NOT = 356 }; #endif -#define BX_TOKEN_REG_AL 258 -#define BX_TOKEN_REG_BL 259 -#define BX_TOKEN_REG_CL 260 -#define BX_TOKEN_REG_DL 261 -#define BX_TOKEN_REG_AH 262 -#define BX_TOKEN_REG_BH 263 -#define BX_TOKEN_REG_CH 264 -#define BX_TOKEN_REG_DH 265 -#define BX_TOKEN_REG_AX 266 -#define BX_TOKEN_REG_BX 267 -#define BX_TOKEN_REG_CX 268 -#define BX_TOKEN_REG_DX 269 -#define BX_TOKEN_REG_EAX 270 -#define BX_TOKEN_REG_EBX 271 -#define BX_TOKEN_REG_ECX 272 -#define BX_TOKEN_REG_EDX 273 -#define BX_TOKEN_REG_SI 274 -#define BX_TOKEN_REG_DI 275 -#define BX_TOKEN_REG_BP 276 -#define BX_TOKEN_REG_SP 277 -#define BX_TOKEN_REG_IP 278 -#define BX_TOKEN_REG_ESI 279 -#define BX_TOKEN_REG_EDI 280 -#define BX_TOKEN_REG_EBP 281 -#define BX_TOKEN_REG_ESP 282 -#define BX_TOKEN_REG_EIP 283 -#define BX_TOKEN_CS 284 -#define BX_TOKEN_ES 285 -#define BX_TOKEN_SS 286 -#define BX_TOKEN_DS 287 -#define BX_TOKEN_FS 288 -#define BX_TOKEN_GS 289 -#define BX_TOKEN_FLAGS 290 -#define BX_TOKEN_ON 291 -#define BX_TOKEN_OFF 292 -#define BX_TOKEN_CONTINUE 293 -#define BX_TOKEN_STEPN 294 -#define BX_TOKEN_STEP_OVER 295 -#define BX_TOKEN_NEXT_STEP 296 -#define BX_TOKEN_SET 297 -#define BX_TOKEN_DEBUGGER 298 -#define BX_TOKEN_LIST_BREAK 299 -#define BX_TOKEN_VBREAKPOINT 300 -#define BX_TOKEN_LBREAKPOINT 301 -#define BX_TOKEN_PBREAKPOINT 302 -#define BX_TOKEN_DEL_BREAKPOINT 303 -#define BX_TOKEN_ENABLE_BREAKPOINT 304 -#define BX_TOKEN_DISABLE_BREAKPOINT 305 -#define BX_TOKEN_INFO 306 -#define BX_TOKEN_QUIT 307 -#define BX_TOKEN_REGISTERS 308 -#define BX_TOKEN_CPU 309 -#define BX_TOKEN_FPU 310 -#define BX_TOKEN_SSE 311 -#define BX_TOKEN_ALL 312 -#define BX_TOKEN_IDT 313 -#define BX_TOKEN_IVT 314 -#define BX_TOKEN_GDT 315 -#define BX_TOKEN_LDT 316 -#define BX_TOKEN_TSS 317 -#define BX_TOKEN_TAB 318 -#define BX_TOKEN_DIRTY 319 -#define BX_TOKEN_LINUX 320 -#define BX_TOKEN_CONTROL_REGS 321 -#define BX_TOKEN_EXAMINE 322 -#define BX_TOKEN_XFORMAT 323 -#define BX_TOKEN_DISFORMAT 324 -#define BX_TOKEN_SETPMEM 325 -#define BX_TOKEN_SYMBOLNAME 326 -#define BX_TOKEN_QUERY 327 -#define BX_TOKEN_PENDING 328 -#define BX_TOKEN_TAKE 329 -#define BX_TOKEN_DMA 330 -#define BX_TOKEN_IRQ 331 -#define BX_TOKEN_DUMP_CPU 332 -#define BX_TOKEN_SET_CPU 333 -#define BX_TOKEN_DISASSEMBLE 334 -#define BX_TOKEN_INSTRUMENT 335 -#define BX_TOKEN_STRING 336 -#define BX_TOKEN_STOP 337 -#define BX_TOKEN_DOIT 338 -#define BX_TOKEN_CRC 339 -#define BX_TOKEN_TRACE 340 -#define BX_TOKEN_TRACEREG 341 -#define BX_TOKEN_SWITCH_MODE 342 -#define BX_TOKEN_SIZE 343 -#define BX_TOKEN_PTIME 344 -#define BX_TOKEN_TIMEBP_ABSOLUTE 345 -#define BX_TOKEN_TIMEBP 346 -#define BX_TOKEN_RECORD 347 -#define BX_TOKEN_PLAYBACK 348 -#define BX_TOKEN_MODEBP 349 -#define BX_TOKEN_PRINT_STACK 350 -#define BX_TOKEN_WATCH 351 -#define BX_TOKEN_UNWATCH 352 -#define BX_TOKEN_READ 353 -#define BX_TOKEN_WRITE 354 -#define BX_TOKEN_SHOW 355 -#define BX_TOKEN_LOAD_SYMBOLS 356 -#define BX_TOKEN_SYMBOLS 357 -#define BX_TOKEN_LIST_SYMBOLS 358 -#define BX_TOKEN_GLOBAL 359 -#define BX_TOKEN_WHERE 360 -#define BX_TOKEN_PRINT_STRING 361 -#define BX_TOKEN_NUMERIC 362 -#define BX_TOKEN_LONG_NUMERIC 363 -#define BX_TOKEN_NE2000 364 -#define BX_TOKEN_PIC 365 -#define BX_TOKEN_PAGE 366 -#define BX_TOKEN_HELP 367 -#define BX_TOKEN_CALC 368 -#define BX_TOKEN_VGA 369 -#define BX_TOKEN_COMMAND 370 -#define BX_TOKEN_RSHIFT 371 -#define BX_TOKEN_LSHIFT 372 -#define NEG 373 -#define NOT 374 +#define BX_TOKEN_8BH_REG 258 +#define BX_TOKEN_8BL_REG 259 +#define BX_TOKEN_16B_REG 260 +#define BX_TOKEN_32B_REG 261 +#define BX_TOKEN_64B_REG 262 +#define BX_TOKEN_CS 263 +#define BX_TOKEN_ES 264 +#define BX_TOKEN_SS 265 +#define BX_TOKEN_DS 266 +#define BX_TOKEN_FS 267 +#define BX_TOKEN_GS 268 +#define BX_TOKEN_FLAGS 269 +#define BX_TOKEN_ON 270 +#define BX_TOKEN_OFF 271 +#define BX_TOKEN_CONTINUE 272 +#define BX_TOKEN_STEPN 273 +#define BX_TOKEN_STEP_OVER 274 +#define BX_TOKEN_NEXT_STEP 275 +#define BX_TOKEN_SET 276 +#define BX_TOKEN_DEBUGGER 277 +#define BX_TOKEN_LIST_BREAK 278 +#define BX_TOKEN_VBREAKPOINT 279 +#define BX_TOKEN_LBREAKPOINT 280 +#define BX_TOKEN_PBREAKPOINT 281 +#define BX_TOKEN_DEL_BREAKPOINT 282 +#define BX_TOKEN_ENABLE_BREAKPOINT 283 +#define BX_TOKEN_DISABLE_BREAKPOINT 284 +#define BX_TOKEN_INFO 285 +#define BX_TOKEN_QUIT 286 +#define BX_TOKEN_REGISTERS 287 +#define BX_TOKEN_CPU 288 +#define BX_TOKEN_FPU 289 +#define BX_TOKEN_SSE 290 +#define BX_TOKEN_ALL 291 +#define BX_TOKEN_IDT 292 +#define BX_TOKEN_IVT 293 +#define BX_TOKEN_GDT 294 +#define BX_TOKEN_LDT 295 +#define BX_TOKEN_TSS 296 +#define BX_TOKEN_TAB 297 +#define BX_TOKEN_DIRTY 298 +#define BX_TOKEN_LINUX 299 +#define BX_TOKEN_CONTROL_REGS 300 +#define BX_TOKEN_EXAMINE 301 +#define BX_TOKEN_XFORMAT 302 +#define BX_TOKEN_DISFORMAT 303 +#define BX_TOKEN_SETPMEM 304 +#define BX_TOKEN_SYMBOLNAME 305 +#define BX_TOKEN_QUERY 306 +#define BX_TOKEN_PENDING 307 +#define BX_TOKEN_TAKE 308 +#define BX_TOKEN_DMA 309 +#define BX_TOKEN_IRQ 310 +#define BX_TOKEN_DUMP_CPU 311 +#define BX_TOKEN_SET_CPU 312 +#define BX_TOKEN_DISASSEMBLE 313 +#define BX_TOKEN_INSTRUMENT 314 +#define BX_TOKEN_STRING 315 +#define BX_TOKEN_STOP 316 +#define BX_TOKEN_DOIT 317 +#define BX_TOKEN_CRC 318 +#define BX_TOKEN_TRACE 319 +#define BX_TOKEN_TRACEREG 320 +#define BX_TOKEN_SWITCH_MODE 321 +#define BX_TOKEN_SIZE 322 +#define BX_TOKEN_PTIME 323 +#define BX_TOKEN_TIMEBP_ABSOLUTE 324 +#define BX_TOKEN_TIMEBP 325 +#define BX_TOKEN_RECORD 326 +#define BX_TOKEN_PLAYBACK 327 +#define BX_TOKEN_MODEBP 328 +#define BX_TOKEN_PRINT_STACK 329 +#define BX_TOKEN_WATCH 330 +#define BX_TOKEN_UNWATCH 331 +#define BX_TOKEN_READ 332 +#define BX_TOKEN_WRITE 333 +#define BX_TOKEN_SHOW 334 +#define BX_TOKEN_LOAD_SYMBOLS 335 +#define BX_TOKEN_SYMBOLS 336 +#define BX_TOKEN_LIST_SYMBOLS 337 +#define BX_TOKEN_GLOBAL 338 +#define BX_TOKEN_WHERE 339 +#define BX_TOKEN_PRINT_STRING 340 +#define BX_TOKEN_NUMERIC 341 +#define BX_TOKEN_NE2000 342 +#define BX_TOKEN_PIC 343 +#define BX_TOKEN_PAGE 344 +#define BX_TOKEN_HELP 345 +#define BX_TOKEN_CALC 346 +#define BX_TOKEN_VGA 347 +#define BX_TOKEN_COMMAND 348 +#define BX_TOKEN_GENERIC 349 +#define BX_TOKEN_RSHIFT 350 +#define BX_TOKEN_LSHIFT 351 +#define BX_TOKEN_REG_IP 352 +#define BX_TOKEN_REG_EIP 353 +#define BX_TOKEN_REG_RIP 354 +#define NEG 355 +#define NOT 356 @@ -334,13 +298,12 @@ #line 19 "parser.y" typedef union YYSTYPE { char *sval; - Bit32u uval; - Bit64u ulval; + Bit64u uval; bx_bool bval; bx_num_range uval_range; } YYSTYPE; /* Line 191 of yacc.c. */ -#line 344 "y.tab.c" +#line 307 "y.tab.c" # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 # define YYSTYPE_IS_TRIVIAL 1 @@ -352,7 +315,7 @@ typedef union YYSTYPE { /* Line 214 of yacc.c. */ -#line 356 "y.tab.c" +#line 319 "y.tab.c" #if ! defined (yyoverflow) || YYERROR_VERBOSE @@ -449,22 +412,22 @@ union yyalloc #endif /* YYFINAL -- State number of the termination state. */ -#define YYFINAL 267 +#define YYFINAL 246 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 1245 +#define YYLAST 932 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 133 +#define YYNTOKENS 115 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 51 +#define YYNNTS 47 /* YYNRULES -- Number of rules. */ -#define YYNRULES 253 +#define YYNRULES 232 /* YYNRULES -- Number of states. */ -#define YYNSTATES 466 +#define YYNSTATES 448 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 374 +#define YYMAXUTOK 356 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -473,18 +436,18 @@ union yyalloc static const unsigned char yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 127, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 109, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 130, 2, 2, 2, 2, 124, 2, - 131, 132, 122, 118, 2, 119, 2, 123, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 129, 2, - 2, 128, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 112, 2, 2, 2, 2, 106, 2, + 113, 114, 104, 100, 2, 101, 2, 105, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 111, 2, + 2, 110, 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, 121, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 103, 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, 120, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 102, 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, @@ -507,9 +470,7 @@ static const unsigned char yytranslate[] = 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 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, 111, 112, 113, 114, - 115, 116, 117, 125, 126 + 95, 96, 97, 98, 99, 107, 108 }; #if YYDEBUG @@ -525,144 +486,136 @@ static const unsigned short yyprhs[] = 99, 101, 103, 107, 111, 115, 119, 122, 126, 129, 132, 136, 140, 143, 147, 151, 155, 158, 161, 166, 171, 176, 181, 185, 190, 196, 199, 203, 206, 209, - 213, 216, 221, 227, 233, 239, 245, 251, 254, 260, - 263, 267, 271, 274, 278, 283, 286, 289, 293, 297, - 301, 305, 309, 313, 317, 321, 326, 331, 336, 341, - 346, 350, 354, 358, 362, 367, 371, 375, 381, 389, - 393, 397, 398, 400, 402, 405, 408, 411, 415, 419, - 423, 426, 431, 435, 439, 442, 448, 452, 456, 461, - 465, 468, 472, 477, 481, 487, 491, 495, 500, 504, - 508, 512, 516, 520, 524, 528, 532, 536, 540, 544, - 548, 552, 556, 560, 564, 568, 572, 576, 580, 584, - 588, 592, 596, 600, 604, 608, 612, 616, 620, 624, - 628, 632, 636, 640, 644, 647, 651, 653, 655, 657, - 659, 661, 663, 665, 667, 669, 671, 673, 675, 677, - 679, 681, 683, 685, 687, 689, 691, 693, 695, 697, - 699, 701, 703, 705, 707, 709, 711, 713, 715, 717, - 721, 725, 729, 733, 737, 741, 745, 749, 753, 756, - 759, 763, 765, 767, 769, 771, 773, 775, 777, 779, - 781, 783, 787, 791, 795, 799, 803, 807, 811, 815, - 819, 823, 826, 829 + 213, 216, 221, 227, 233, 239, 245, 251, 257, 260, + 266, 269, 273, 277, 280, 284, 289, 292, 295, 299, + 303, 307, 311, 315, 319, 323, 327, 332, 337, 342, + 347, 352, 356, 360, 364, 368, 373, 377, 381, 387, + 395, 399, 403, 404, 406, 408, 411, 414, 417, 421, + 425, 429, 432, 437, 441, 445, 448, 454, 458, 462, + 467, 471, 474, 478, 483, 487, 493, 497, 501, 506, + 510, 514, 518, 522, 526, 530, 534, 538, 542, 546, + 550, 554, 558, 562, 566, 570, 574, 578, 582, 586, + 590, 594, 598, 602, 606, 610, 614, 618, 622, 626, + 630, 634, 638, 642, 646, 650, 653, 657, 659, 661, + 663, 665, 667, 669, 671, 673, 675, 677, 681, 685, + 689, 693, 697, 701, 705, 709, 713, 716, 719, 723, + 725, 727, 729, 731, 733, 735, 737, 739, 741, 743, + 745, 749, 753, 757, 761, 765, 769, 773, 777, 781, + 785, 788, 791 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const short yyrhs[] = { - 134, 0, -1, 134, 135, -1, 135, -1, 151, -1, - 152, -1, 153, -1, 154, -1, 155, -1, 158, -1, - 161, -1, 156, -1, 157, -1, 162, -1, 163, -1, - 164, -1, 165, -1, 166, -1, 167, -1, 168, -1, - 169, -1, 170, -1, 171, -1, 172, -1, 173, -1, - 174, -1, 175, -1, 144, -1, 145, -1, 143, -1, - 138, -1, 139, -1, 140, -1, 141, -1, 146, -1, - 147, -1, 142, -1, 148, -1, 149, -1, 150, -1, - 176, -1, 177, -1, -1, 127, -1, 36, -1, 37, - -1, 29, -1, 30, -1, 31, -1, 32, -1, 33, - -1, 34, -1, 91, 108, 127, -1, 90, 108, 127, - -1, 92, 81, 127, -1, 93, 81, 127, -1, 94, - 127, -1, 100, 115, 127, -1, 100, 127, -1, 89, - 127, -1, 85, 136, 127, -1, 86, 136, 127, -1, - 95, 127, -1, 95, 107, 127, -1, 96, 82, 127, - -1, 96, 38, 127, -1, 96, 127, -1, 97, 127, - -1, 96, 98, 107, 127, -1, 97, 98, 107, 127, - -1, 96, 99, 107, 127, -1, 97, 99, 107, 127, - -1, 101, 81, 127, -1, 101, 81, 107, 127, -1, - 101, 104, 81, 107, 127, -1, 105, 127, -1, 106, - 107, 127, -1, 38, 127, -1, 39, 127, -1, 39, - 107, 127, -1, 40, 127, -1, 42, 79, 136, 127, - -1, 42, 71, 128, 107, 127, -1, 42, 179, 128, - 183, 127, -1, 42, 178, 128, 183, 127, -1, 42, - 180, 128, 183, 127, -1, 42, 181, 128, 183, 127, - -1, 45, 127, -1, 45, 182, 129, 183, 127, -1, - 46, 127, -1, 46, 183, 127, -1, 46, 81, 127, - -1, 47, 127, -1, 47, 183, 127, -1, 47, 122, - 183, 127, -1, 44, 127, -1, 103, 127, -1, 103, - 81, 127, -1, 51, 47, 127, -1, 51, 54, 127, - -1, 51, 53, 127, -1, 51, 55, 127, -1, 51, - 56, 127, -1, 51, 57, 127, -1, 51, 64, 127, - -1, 51, 58, 159, 127, -1, 51, 59, 159, 127, - -1, 51, 60, 159, 127, -1, 51, 61, 159, 127, - -1, 51, 62, 159, 127, -1, 51, 63, 127, -1, - 51, 35, 127, -1, 51, 65, 127, -1, 51, 102, - 127, -1, 51, 102, 81, 127, -1, 51, 66, 127, - -1, 51, 109, 127, -1, 51, 109, 111, 107, 127, - -1, 51, 109, 111, 107, 53, 107, 127, -1, 51, - 110, 127, -1, 51, 114, 127, -1, -1, 160, -1, - 183, -1, 183, 183, -1, 53, 127, -1, 77, 127, - -1, 48, 107, 127, -1, 49, 107, 127, -1, 50, - 107, 127, -1, 52, 127, -1, 67, 68, 183, 127, - -1, 67, 68, 127, -1, 67, 183, 127, -1, 67, - 127, -1, 70, 107, 107, 107, 127, -1, 72, 73, - 127, -1, 74, 75, 127, -1, 74, 75, 107, 127, - -1, 74, 76, 127, -1, 78, 127, -1, 79, 159, - 127, -1, 79, 69, 159, 127, -1, 79, 87, 127, - -1, 79, 88, 128, 107, 127, -1, 80, 115, 127, - -1, 83, 107, 127, -1, 84, 107, 107, 127, -1, - 112, 52, 127, -1, 112, 38, 127, -1, 112, 39, - 127, -1, 112, 40, 127, -1, 112, 45, 127, -1, - 112, 46, 127, -1, 112, 48, 127, -1, 112, 49, - 127, -1, 112, 50, 127, -1, 112, 44, 127, -1, - 112, 94, 127, -1, 112, 84, 127, -1, 112, 85, - 127, -1, 112, 86, 127, -1, 112, 77, 127, -1, - 112, 78, 127, -1, 112, 89, 127, -1, 112, 91, - 127, -1, 112, 90, 127, -1, 112, 95, 127, -1, - 112, 92, 127, -1, 112, 93, 127, -1, 112, 101, - 127, -1, 112, 103, 127, -1, 112, 53, 127, -1, - 112, 70, 127, -1, 112, 79, 127, -1, 112, 96, - 127, -1, 112, 97, 127, -1, 112, 67, 127, -1, - 112, 80, 127, -1, 112, 42, 127, -1, 112, 51, - 127, -1, 112, 100, 127, -1, 112, 113, 127, -1, - 112, 112, 127, -1, 112, 127, -1, 113, 183, 127, - -1, 7, -1, 8, -1, 9, -1, 10, -1, 3, - -1, 4, -1, 5, -1, 6, -1, 11, -1, 12, - -1, 13, -1, 14, -1, 19, -1, 20, -1, 21, - -1, 22, -1, 15, -1, 16, -1, 17, -1, 18, - -1, 24, -1, 25, -1, 26, -1, 27, -1, 107, - -1, 108, -1, 179, -1, 178, -1, 180, -1, 181, - -1, 137, -1, 23, -1, 28, -1, 182, 118, 182, - -1, 182, 119, 182, -1, 182, 122, 182, -1, 182, - 123, 182, -1, 182, 116, 182, -1, 182, 117, 182, - -1, 182, 120, 182, -1, 182, 121, 182, -1, 182, - 124, 182, -1, 130, 182, -1, 119, 182, -1, 131, - 182, 132, -1, 107, -1, 108, -1, 81, -1, 179, - -1, 178, -1, 180, -1, 181, -1, 137, -1, 23, - -1, 28, -1, 183, 129, 183, -1, 183, 118, 183, - -1, 183, 119, 183, -1, 183, 122, 183, -1, 183, - 123, 183, -1, 183, 116, 183, -1, 183, 117, 183, - -1, 183, 120, 183, -1, 183, 121, 183, -1, 183, - 124, 183, -1, 130, 183, -1, 119, 183, -1, 131, - 183, 132, -1 + 116, 0, -1, 116, 117, -1, 117, -1, 133, -1, + 134, -1, 135, -1, 136, -1, 137, -1, 140, -1, + 143, -1, 138, -1, 139, -1, 144, -1, 145, -1, + 146, -1, 147, -1, 148, -1, 149, -1, 150, -1, + 151, -1, 152, -1, 153, -1, 154, -1, 155, -1, + 156, -1, 157, -1, 126, -1, 127, -1, 125, -1, + 120, -1, 121, -1, 122, -1, 123, -1, 128, -1, + 129, -1, 124, -1, 130, -1, 131, -1, 132, -1, + 158, -1, 159, -1, -1, 109, -1, 15, -1, 16, + -1, 8, -1, 9, -1, 10, -1, 11, -1, 12, + -1, 13, -1, 70, 86, 109, -1, 69, 86, 109, + -1, 71, 60, 109, -1, 72, 60, 109, -1, 73, + 109, -1, 79, 93, 109, -1, 79, 109, -1, 68, + 109, -1, 64, 118, 109, -1, 65, 118, 109, -1, + 74, 109, -1, 74, 86, 109, -1, 75, 61, 109, + -1, 75, 17, 109, -1, 75, 109, -1, 76, 109, + -1, 75, 77, 86, 109, -1, 76, 77, 86, 109, + -1, 75, 78, 86, 109, -1, 76, 78, 86, 109, + -1, 80, 60, 109, -1, 80, 60, 86, 109, -1, + 80, 83, 60, 86, 109, -1, 84, 109, -1, 85, + 86, 109, -1, 17, 109, -1, 18, 109, -1, 18, + 86, 109, -1, 19, 109, -1, 21, 58, 118, 109, + -1, 21, 50, 110, 86, 109, -1, 21, 4, 110, + 161, 109, -1, 21, 3, 110, 161, 109, -1, 21, + 5, 110, 161, 109, -1, 21, 6, 110, 161, 109, + -1, 21, 7, 110, 161, 109, -1, 24, 109, -1, + 24, 160, 111, 161, 109, -1, 25, 109, -1, 25, + 161, 109, -1, 25, 60, 109, -1, 26, 109, -1, + 26, 161, 109, -1, 26, 104, 161, 109, -1, 23, + 109, -1, 82, 109, -1, 82, 60, 109, -1, 30, + 26, 109, -1, 30, 33, 109, -1, 30, 32, 109, + -1, 30, 34, 109, -1, 30, 35, 109, -1, 30, + 36, 109, -1, 30, 43, 109, -1, 30, 37, 141, + 109, -1, 30, 38, 141, 109, -1, 30, 39, 141, + 109, -1, 30, 40, 141, 109, -1, 30, 41, 141, + 109, -1, 30, 42, 109, -1, 30, 14, 109, -1, + 30, 44, 109, -1, 30, 81, 109, -1, 30, 81, + 60, 109, -1, 30, 45, 109, -1, 30, 87, 109, + -1, 30, 87, 89, 86, 109, -1, 30, 87, 89, + 86, 32, 86, 109, -1, 30, 88, 109, -1, 30, + 92, 109, -1, -1, 142, -1, 161, -1, 161, 161, + -1, 32, 109, -1, 56, 109, -1, 27, 86, 109, + -1, 28, 86, 109, -1, 29, 86, 109, -1, 31, + 109, -1, 46, 47, 161, 109, -1, 46, 47, 109, + -1, 46, 161, 109, -1, 46, 109, -1, 49, 86, + 86, 86, 109, -1, 51, 52, 109, -1, 53, 54, + 109, -1, 53, 54, 86, 109, -1, 53, 55, 109, + -1, 57, 109, -1, 58, 141, 109, -1, 58, 48, + 141, 109, -1, 58, 66, 109, -1, 58, 67, 110, + 86, 109, -1, 59, 93, 109, -1, 62, 86, 109, + -1, 63, 86, 86, 109, -1, 90, 31, 109, -1, + 90, 17, 109, -1, 90, 18, 109, -1, 90, 19, + 109, -1, 90, 24, 109, -1, 90, 25, 109, -1, + 90, 27, 109, -1, 90, 28, 109, -1, 90, 29, + 109, -1, 90, 23, 109, -1, 90, 73, 109, -1, + 90, 63, 109, -1, 90, 64, 109, -1, 90, 65, + 109, -1, 90, 56, 109, -1, 90, 57, 109, -1, + 90, 68, 109, -1, 90, 70, 109, -1, 90, 69, + 109, -1, 90, 74, 109, -1, 90, 71, 109, -1, + 90, 72, 109, -1, 90, 80, 109, -1, 90, 82, + 109, -1, 90, 32, 109, -1, 90, 49, 109, -1, + 90, 58, 109, -1, 90, 75, 109, -1, 90, 76, + 109, -1, 90, 46, 109, -1, 90, 59, 109, -1, + 90, 21, 109, -1, 90, 30, 109, -1, 90, 79, + 109, -1, 90, 91, 109, -1, 90, 90, 109, -1, + 90, 109, -1, 91, 161, 109, -1, 86, -1, 4, + -1, 3, -1, 5, -1, 6, -1, 7, -1, 119, + -1, 97, -1, 98, -1, 99, -1, 160, 100, 160, + -1, 160, 101, 160, -1, 160, 104, 160, -1, 160, + 105, 160, -1, 160, 95, 160, -1, 160, 96, 160, + -1, 160, 102, 160, -1, 160, 103, 160, -1, 160, + 106, 160, -1, 112, 160, -1, 101, 160, -1, 113, + 160, 114, -1, 86, -1, 60, -1, 4, -1, 3, + -1, 5, -1, 6, -1, 7, -1, 119, -1, 97, + -1, 98, -1, 99, -1, 161, 111, 161, -1, 161, + 100, 161, -1, 161, 101, 161, -1, 161, 104, 161, + -1, 161, 105, 161, -1, 161, 95, 161, -1, 161, + 96, 161, -1, 161, 102, 161, -1, 161, 103, 161, + -1, 161, 106, 161, -1, 112, 161, -1, 101, 161, + -1, 113, 161, 114, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const unsigned short yyrline[] = { - 0, 164, 164, 165, 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, - 205, 206, 207, 208, 214, 215, 220, 221, 222, 223, - 224, 225, 230, 235, 243, 251, 259, 267, 272, 280, - 288, 296, 304, 309, 317, 323, 329, 334, 339, 344, - 349, 354, 362, 367, 372, 380, 388, 396, 404, 409, - 417, 425, 430, 435, 439, 443, 447, 454, 459, 464, - 469, 474, 479, 484, 489, 497, 505, 510, 518, 523, - 528, 533, 538, 543, 548, 553, 558, 563, 568, 573, - 578, 583, 588, 593, 598, 603, 608, 613, 618, 623, - 628, 640, 641, 644, 648, 654, 662, 670, 678, 685, - 693, 701, 706, 711, 716, 724, 732, 740, 745, 750, - 758, 766, 771, 776, 781, 789, 797, 805, 813, 818, - 823, 828, 833, 838, 843, 848, 853, 858, 863, 868, - 873, 879, 885, 890, 895, 900, 905, 910, 915, 920, - 925, 930, 935, 940, 945, 954, 963, 970, 983, 991, - 1001, 1022, 1034, 1044, 1049, 1057, 1065, 1066, 1067, 1068, - 1073, 1074, 1075, 1076, 1081, 1082, 1083, 1084, 1085, 1086, - 1087, 1088, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, - 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, - 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, - 1134, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, - 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, - 1158, 1159, 1160, 1161 + 0, 141, 141, 142, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 191, 192, 197, 198, 199, 200, + 201, 202, 207, 212, 220, 228, 236, 244, 249, 257, + 265, 273, 281, 286, 294, 300, 306, 311, 316, 321, + 326, 331, 339, 344, 349, 357, 365, 373, 381, 386, + 394, 402, 407, 412, 416, 420, 424, 428, 435, 440, + 445, 450, 455, 460, 465, 470, 478, 486, 491, 499, + 504, 509, 514, 519, 524, 529, 534, 539, 544, 549, + 554, 559, 564, 569, 574, 579, 584, 589, 594, 599, + 604, 609, 621, 622, 625, 629, 635, 643, 651, 659, + 666, 674, 682, 687, 692, 697, 705, 713, 721, 726, + 731, 739, 747, 752, 757, 762, 770, 778, 786, 794, + 799, 804, 809, 814, 819, 824, 829, 834, 839, 844, + 849, 854, 860, 866, 871, 876, 881, 886, 891, 896, + 901, 906, 911, 916, 921, 926, 935, 944, 951, 964, + 972, 982, 1003, 1015, 1025, 1030, 1038, 1056, 1057, 1058, + 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, + 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1082, + 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, + 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, + 1103, 1104, 1105 }; #endif @@ -671,15 +624,8 @@ static const unsigned short yyrline[] = First, the terminals, then, starting at YYNTOKENS, nonterminals. */ static const char *const yytname[] = { - "$end", "error", "$undefined", "BX_TOKEN_REG_AL", "BX_TOKEN_REG_BL", - "BX_TOKEN_REG_CL", "BX_TOKEN_REG_DL", "BX_TOKEN_REG_AH", - "BX_TOKEN_REG_BH", "BX_TOKEN_REG_CH", "BX_TOKEN_REG_DH", - "BX_TOKEN_REG_AX", "BX_TOKEN_REG_BX", "BX_TOKEN_REG_CX", - "BX_TOKEN_REG_DX", "BX_TOKEN_REG_EAX", "BX_TOKEN_REG_EBX", - "BX_TOKEN_REG_ECX", "BX_TOKEN_REG_EDX", "BX_TOKEN_REG_SI", - "BX_TOKEN_REG_DI", "BX_TOKEN_REG_BP", "BX_TOKEN_REG_SP", - "BX_TOKEN_REG_IP", "BX_TOKEN_REG_ESI", "BX_TOKEN_REG_EDI", - "BX_TOKEN_REG_EBP", "BX_TOKEN_REG_ESP", "BX_TOKEN_REG_EIP", + "$end", "error", "$undefined", "BX_TOKEN_8BH_REG", "BX_TOKEN_8BL_REG", + "BX_TOKEN_16B_REG", "BX_TOKEN_32B_REG", "BX_TOKEN_64B_REG", "BX_TOKEN_CS", "BX_TOKEN_ES", "BX_TOKEN_SS", "BX_TOKEN_DS", "BX_TOKEN_FS", "BX_TOKEN_GS", "BX_TOKEN_FLAGS", "BX_TOKEN_ON", "BX_TOKEN_OFF", "BX_TOKEN_CONTINUE", "BX_TOKEN_STEPN", @@ -704,25 +650,25 @@ static const char *const yytname[] = "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_LONG_NUMERIC", "BX_TOKEN_NE2000", - "BX_TOKEN_PIC", "BX_TOKEN_PAGE", "BX_TOKEN_HELP", "BX_TOKEN_CALC", - "BX_TOKEN_VGA", "BX_TOKEN_COMMAND", "BX_TOKEN_RSHIFT", - "BX_TOKEN_LSHIFT", "'+'", "'-'", "'|'", "'^'", "'*'", "'/'", "'&'", - "NEG", "NOT", "'\\n'", "'='", "':'", "'!'", "'('", "')'", "$accept", - "commands", "command", "BX_TOKEN_TOGGLE_ON_OFF", "BX_TOKEN_SEGREG", - "timebp_command", "record_command", "playback_command", - "modebp_command", "show_command", "ptime_command", "trace_command", - "trace_reg_command", "print_stack_command", "watch_point_command", - "symbol_command", "where_command", "print_string_command", - "continue_command", "stepN_command", "step_over_command", "set_command", + "BX_TOKEN_NUMERIC", "BX_TOKEN_NE2000", "BX_TOKEN_PIC", "BX_TOKEN_PAGE", + "BX_TOKEN_HELP", "BX_TOKEN_CALC", "BX_TOKEN_VGA", "BX_TOKEN_COMMAND", + "BX_TOKEN_GENERIC", "BX_TOKEN_RSHIFT", "BX_TOKEN_LSHIFT", + "BX_TOKEN_REG_IP", "BX_TOKEN_REG_EIP", "BX_TOKEN_REG_RIP", "'+'", "'-'", + "'|'", "'^'", "'*'", "'/'", "'&'", "NEG", "NOT", "'\\n'", "'='", "':'", + "'!'", "'('", "')'", "$accept", "commands", "command", + "BX_TOKEN_TOGGLE_ON_OFF", "BX_TOKEN_SEGREG", "timebp_command", + "record_command", "playback_command", "modebp_command", "show_command", + "ptime_command", "trace_command", "trace_reg_command", + "print_stack_command", "watch_point_command", "symbol_command", + "where_command", "print_string_command", "continue_command", + "stepN_command", "step_over_command", "set_command", "breakpoint_command", "blist_command", "slist_command", "info_command", "optional_numeric_range", "numeric_range", "regs_command", "dump_cpu_command", "delete_command", "bpe_command", "bpd_command", "quit_command", "examine_command", "setpmem_command", "query_command", "take_command", "set_cpu_command", "disassemble_command", "instrument_command", "doit_command", "crc_command", "help_command", - "calc_command", "BX_TOKEN_8BH_REG", "BX_TOKEN_8BL_REG", - "BX_TOKEN_16B_REG", "BX_TOKEN_32B_REG", "vexpression", "expression", 0 + "calc_command", "vexpression", "expression", 0 }; #endif @@ -741,42 +687,38 @@ static const unsigned short yytoknum[] = 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 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, 366, 367, 368, 369, 370, 371, 372, 43, 45, - 124, 94, 42, 47, 38, 373, 374, 10, 61, 58, - 33, 40, 41 + 43, 45, 124, 94, 42, 47, 38, 355, 356, 10, + 61, 58, 33, 40, 41 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const unsigned char yyr1[] = { - 0, 133, 134, 134, 135, 135, 135, 135, 135, 135, - 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, - 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, - 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, - 135, 135, 135, 135, 136, 136, 137, 137, 137, 137, - 137, 137, 138, 138, 139, 140, 141, 142, 142, 143, - 144, 145, 146, 146, 147, 147, 147, 147, 147, 147, - 147, 147, 148, 148, 148, 149, 150, 151, 152, 152, - 153, 154, 154, 154, 154, 154, 154, 155, 155, 155, - 155, 155, 155, 155, 155, 156, 157, 157, 158, 158, + 0, 115, 116, 116, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 117, 118, 118, 119, 119, 119, 119, + 119, 119, 120, 120, 121, 122, 123, 124, 124, 125, + 126, 127, 128, 128, 129, 129, 129, 129, 129, 129, + 129, 129, 130, 130, 130, 131, 132, 133, 134, 134, + 135, 136, 136, 136, 136, 136, 136, 136, 137, 137, + 137, 137, 137, 137, 137, 137, 138, 139, 139, 140, + 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, + 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, + 140, 140, 141, 141, 142, 142, 143, 144, 145, 146, + 147, 148, 149, 149, 149, 149, 150, 151, 152, 152, + 152, 153, 154, 154, 154, 154, 155, 156, 157, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, - 158, 159, 159, 160, 160, 161, 162, 163, 164, 165, - 166, 167, 167, 167, 167, 168, 169, 170, 170, 170, - 171, 172, 172, 172, 172, 173, 174, 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, 176, 176, 176, 176, 176, 176, - 176, 176, 176, 176, 176, 177, 178, 178, 178, 178, - 179, 179, 179, 179, 180, 180, 180, 180, 180, 180, - 180, 180, 181, 181, 181, 181, 181, 181, 181, 181, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183 + 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, + 158, 158, 158, 158, 158, 158, 159, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, 160, 161, + 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, + 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, + 161, 161, 161 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -790,24 +732,22 @@ static const unsigned char yyr2[] = 1, 1, 3, 3, 3, 3, 2, 3, 2, 2, 3, 3, 2, 3, 3, 3, 2, 2, 4, 4, 4, 4, 3, 4, 5, 2, 3, 2, 2, 3, - 2, 4, 5, 5, 5, 5, 5, 2, 5, 2, - 3, 3, 2, 3, 4, 2, 2, 3, 3, 3, - 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, - 3, 3, 3, 3, 4, 3, 3, 5, 7, 3, - 3, 0, 1, 1, 2, 2, 2, 3, 3, 3, - 2, 4, 3, 3, 2, 5, 3, 3, 4, 3, - 2, 3, 4, 3, 5, 3, 3, 4, 3, 3, + 2, 4, 5, 5, 5, 5, 5, 5, 2, 5, + 2, 3, 3, 2, 3, 4, 2, 2, 3, 3, + 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, + 4, 3, 3, 3, 3, 4, 3, 3, 5, 7, + 3, 3, 0, 1, 1, 2, 2, 2, 3, 3, + 3, 2, 4, 3, 3, 2, 5, 3, 3, 4, + 3, 2, 3, 4, 3, 5, 3, 3, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 2, 3, 1, 1, 1, 1, + 3, 3, 3, 3, 3, 2, 3, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 2, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 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, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 2, 2, 3 + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 2, 2, 3 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -817,127 +757,121 @@ static const unsigned char yydefact[] = { 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 121, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 0, 3, 30, 31, 32, 33, 36, 29, 27, 28, 34, 35, 37, 38, 39, 4, 5, 6, 7, 8, 11, 12, 9, 10, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 40, 41, 77, 0, 78, 80, 190, 191, - 192, 193, 186, 187, 188, 189, 194, 195, 196, 197, - 202, 203, 204, 205, 198, 199, 200, 201, 206, 207, - 208, 209, 0, 0, 0, 0, 0, 0, 95, 217, - 218, 46, 47, 48, 49, 50, 51, 210, 211, 0, - 87, 0, 0, 216, 213, 212, 214, 215, 0, 239, - 240, 233, 231, 232, 0, 89, 0, 0, 238, 235, - 234, 236, 237, 0, 233, 0, 92, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 121, 121, - 121, 121, 121, 0, 0, 0, 0, 0, 0, 0, - 0, 130, 125, 0, 134, 0, 0, 0, 0, 0, - 126, 140, 121, 0, 0, 0, 122, 123, 0, 0, - 0, 44, 45, 0, 0, 59, 0, 0, 0, 0, - 56, 0, 62, 0, 0, 0, 0, 66, 0, 0, - 67, 0, 58, 0, 0, 0, 96, 75, 0, 0, + 25, 26, 40, 41, 77, 0, 78, 80, 0, 0, + 0, 0, 0, 0, 0, 96, 189, 188, 190, 191, + 192, 46, 47, 48, 49, 50, 51, 187, 194, 195, + 196, 0, 88, 0, 0, 193, 0, 212, 211, 213, + 214, 215, 210, 209, 217, 218, 219, 0, 90, 0, + 0, 216, 0, 210, 0, 93, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 122, 122, 122, + 122, 122, 0, 0, 0, 0, 0, 0, 0, 0, + 131, 126, 0, 135, 0, 0, 0, 0, 0, 127, + 141, 122, 0, 0, 0, 123, 124, 0, 0, 0, + 44, 45, 0, 0, 59, 0, 0, 0, 0, 56, + 0, 62, 0, 0, 0, 0, 66, 0, 0, 67, + 0, 58, 0, 0, 0, 97, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 184, 0, 1, 2, 79, - 0, 0, 0, 0, 0, 0, 229, 228, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 91, - 252, 251, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 90, 0, 0, 93, 127, 128, 129, 111, - 98, 100, 99, 101, 102, 103, 0, 0, 0, 0, - 0, 110, 104, 112, 115, 0, 113, 0, 116, 119, - 120, 132, 0, 133, 0, 136, 0, 137, 139, 0, - 143, 0, 141, 0, 124, 145, 146, 0, 60, 61, + 0, 0, 0, 0, 185, 0, 1, 2, 79, 0, + 0, 0, 0, 0, 0, 0, 207, 206, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, + 231, 230, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 91, 0, 0, 94, 128, 129, 130, 112, + 99, 101, 100, 102, 103, 104, 0, 0, 0, 0, + 0, 111, 105, 113, 116, 0, 114, 0, 117, 120, + 121, 133, 0, 134, 0, 137, 0, 138, 140, 0, + 144, 0, 142, 0, 125, 146, 147, 0, 60, 61, 53, 52, 54, 55, 63, 65, 64, 0, 0, 0, - 0, 57, 0, 72, 0, 97, 76, 149, 150, 151, - 179, 157, 152, 153, 154, 155, 156, 180, 148, 172, - 177, 173, 162, 163, 174, 178, 159, 160, 161, 164, - 166, 165, 168, 169, 158, 167, 175, 176, 181, 170, - 171, 183, 182, 185, 0, 81, 0, 0, 0, 0, - 230, 223, 224, 219, 220, 225, 226, 221, 222, 227, - 0, 253, 246, 247, 242, 243, 248, 249, 244, 245, - 250, 241, 94, 105, 106, 107, 108, 109, 114, 0, - 131, 0, 138, 142, 0, 243, 147, 68, 70, 69, - 71, 73, 0, 82, 84, 83, 85, 86, 88, 0, - 117, 135, 144, 74, 0, 118 + 0, 57, 0, 72, 0, 98, 76, 150, 151, 152, + 180, 158, 153, 154, 155, 156, 157, 181, 149, 173, + 178, 174, 163, 164, 175, 179, 160, 161, 162, 165, + 167, 166, 169, 170, 159, 168, 176, 177, 182, 171, + 172, 184, 183, 186, 0, 0, 0, 0, 0, 0, + 81, 208, 201, 202, 197, 198, 203, 204, 199, 200, + 205, 0, 232, 225, 226, 221, 222, 227, 228, 223, + 224, 229, 220, 95, 106, 107, 108, 109, 110, 115, + 0, 132, 0, 139, 143, 0, 222, 148, 68, 70, + 69, 71, 73, 0, 84, 83, 85, 86, 87, 82, + 89, 0, 118, 136, 145, 74, 0, 119 }; /* YYDEFGOTO[NTERM-NUM]. */ static const short yydefgoto[] = { - -1, 44, 45, 203, 148, 46, 47, 48, 49, 50, + -1, 44, 45, 182, 131, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - 61, 62, 63, 64, 65, 66, 195, 196, 67, 68, + 61, 62, 63, 64, 65, 66, 174, 175, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 149, 150, 151, 152, 138, - 197 + 79, 80, 81, 82, 83, 116, 176 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -157 +#define YYPACT_NINF -120 static const short yypact[] = { - 1038, -104, -90, -95, 585, -83, 699, 538, 377, -66, - -58, -52, 381, -71, -70, 506, -47, -15, -55, -68, - -65, 345, -54, -42, -40, -11, -11, -50, -28, -25, - -2, 1, -41, -88, -35, -89, -97, -75, -76, 6, - -22, 1118, 828, -157, 954, -157, -157, -157, -157, -157, - -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, - -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, - -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, - -157, -157, -157, -157, -157, 7, -157, -157, -157, -157, - -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, - -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, - -157, -157, 8, -11, 10, 13, 14, 15, -157, -157, - -157, -157, -157, -157, -157, -157, -157, -157, -157, 860, - -157, 860, 860, -157, -157, -157, -157, -157, 301, -157, - -157, 17, -157, -157, 828, -157, 828, 828, -157, -157, - -157, -157, -157, 131, -157, 828, -157, 153, 19, 24, - 25, 26, 28, 30, 33, 34, 35, 37, 828, 828, - 828, 828, 828, 39, 42, 43, 44, -74, -100, 45, - 47, -157, -157, 667, -157, 350, -8, 53, -79, 54, - -157, -157, 828, 55, 56, 58, -157, 98, 59, 61, - 38, -157, -157, 75, 76, -157, 77, 80, 81, 82, - -157, 83, -157, 84, 85, 66, 106, -157, 116, 117, - -157, 99, -157, -73, 73, 112, -157, -157, 113, 115, - 118, 129, 130, 132, 134, 135, 136, 137, 151, 152, - 156, 157, 158, 168, 197, 207, 208, 210, 211, 285, - 286, 288, 300, 302, 304, 321, 322, 323, 324, 327, - 328, 329, 330, 332, 333, -157, 531, -157, -157, -157, - 354, 335, 828, 828, 828, 828, -157, -157, 114, 860, - 860, 860, 860, 860, 860, 860, 860, 860, 828, -157, - 96, 96, -48, 828, 828, 828, 828, 828, 828, 828, - 828, 828, -157, 828, 618, -157, -157, -157, -157, -157, - -157, -157, -157, -157, -157, -157, 336, 338, 351, 353, - 355, -157, -157, -157, -157, 359, -157, 374, -157, -157, - -157, -157, 633, -157, 380, -157, 361, -157, -157, 362, - -157, 385, -157, 828, 853, -157, -157, 366, -157, -157, - -157, -157, -157, -157, -157, -157, -157, 367, 370, 371, - 373, -157, 375, -157, 394, -157, -157, -157, -157, -157, - -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, - -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, - -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, - -157, -157, -157, -157, 376, -157, 649, 692, 779, 794, - -157, -157, -157, -26, -26, -26, -26, -157, -157, -157, - 810, -157, 96, 96, -29, -29, -29, -29, 96, 96, - 96, 853, -157, -157, -157, -157, -157, -157, -157, -49, - -157, 378, -157, -157, 379, -29, -157, -157, -157, -157, - -157, -157, 446, -157, -157, -157, -157, -157, -157, 468, - -157, -157, -157, -157, 449, -157 + 593, -86, -76, -84, 11, -83, 81, 290, 226, -59, + -52, -22, 731, -51, -44, 245, -20, 28, -35, -39, + -27, 106, -12, 9, 10, 6, 6, -10, 14, 15, + 37, 42, -6, -50, -4, -71, -37, -21, -56, -5, + 20, 668, 401, -120, 518, -120, -120, -120, -120, -120, + -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, + -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, + -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, + -120, -120, -120, -120, -120, -2, -120, -120, 16, 35, + 36, 43, 46, 58, 6, -120, -120, -120, -120, -120, + -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, + -120, 418, -120, 418, 418, -120, 390, -120, -120, -120, + -120, -120, -1, -120, -120, -120, -120, 401, -120, 401, + 401, -120, 371, -120, 401, -120, 457, 12, 19, 21, + 39, 61, 62, 67, 68, 72, 77, 401, 401, 401, + 401, 401, 78, 80, 82, 86, -55, -34, 87, 88, + -120, -120, 356, -120, 683, 66, 89, -49, 90, -120, + -120, 401, 91, 92, 97, -120, 38, 99, 100, 102, + -120, -120, 101, 103, -120, 104, 105, 107, 108, -120, + 111, -120, 112, 113, 115, 125, -120, 129, 137, -120, + 116, -120, -46, 65, 117, -120, -120, 118, 119, 131, + 132, 138, 150, 151, 153, 154, 155, 156, 166, 178, + 179, 180, 181, 182, 195, 197, 198, 199, 200, 201, + 202, 204, 205, 206, 208, 209, 210, 211, 212, 213, + 217, 219, 220, 223, -120, 695, -120, -120, -120, 401, + 401, 401, 401, 401, 247, 225, -120, -120, 344, 418, + 418, 418, 418, 418, 418, 418, 418, 418, 401, -120, + 229, 229, 279, 401, 401, 401, 401, 401, 401, 401, + 401, 401, -120, 401, 725, -120, -120, -120, -120, -120, + -120, -120, -120, -120, -120, -120, 227, 228, 232, 236, + 238, -120, -120, -120, -120, 239, -120, 263, -120, -120, + -120, -120, 737, -120, 265, -120, 243, -120, -120, 244, + -120, 269, -120, 401, 821, -120, -120, 261, -120, -120, + -120, -120, -120, -120, -120, -120, -120, 262, 264, 268, + 277, -120, 283, -120, 270, -120, -120, -120, -120, -120, + -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, + -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, + -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, + -120, -120, -120, -120, 749, 761, 773, 785, 797, 285, + -120, -120, -120, -120, 79, 79, 79, 79, -120, -120, + -120, 809, -120, 229, 229, -28, -28, -28, -28, 229, + 229, 229, 821, -120, -120, -120, -120, -120, -120, -120, + -30, -120, 286, -120, -120, 287, -28, -120, -120, -120, + -120, -120, -120, 288, -120, -120, -120, -120, -120, -120, + -120, 292, -120, -120, -120, -120, 289, -120 }; /* YYPGOTO[NTERM-NUM]. */ static const short yypgoto[] = { - -157, -157, 91, -24, 60, -157, -157, -157, -157, -157, - -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, - -157, -157, -157, -157, -157, -157, -156, -157, -157, -157, - -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, - -157, -157, -157, -157, -157, 18, 27, 36, 46, -86, - -7 + -120, -120, 328, -23, 18, -120, -120, -120, -120, -120, + -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, + -120, -120, -120, -120, -120, -120, -119, -120, -120, -120, + -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, + -120, -120, -120, -120, -120, -102, -7 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@ -947,313 +881,249 @@ static const short yypgoto[] = #define YYTABLE_NINF -1 static const unsigned short yytable[] = { - 153, 157, 204, 213, 459, 225, 223, 325, 185, 218, - 219, 327, 316, 317, 318, 319, 320, 85, 221, 211, - 188, 189, 114, 84, 134, 201, 202, 328, 336, 224, - 222, 115, 87, 135, 362, 266, 339, 86, 220, 212, - 116, 158, 136, 276, 118, 277, 278, 214, 337, 159, - 117, 226, 137, 326, 363, 160, 181, 182, 187, 190, - 186, 198, 191, 215, 216, 199, 133, 200, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 205, 460, 208, - 206, 303, 209, 207, 421, 228, 210, 293, 294, 271, - 279, 280, 217, 299, 300, 301, 285, 286, 287, 334, - 303, 88, 89, 90, 91, 92, 93, 94, 95, 96, - 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 139, 108, 109, 110, 111, 140, 121, 122, 123, - 124, 125, 126, 227, 269, 268, 270, 290, 272, 291, - 292, 273, 274, 275, 289, 347, 306, 134, 304, 134, - 134, 307, 308, 309, 364, 310, 135, 311, 135, 135, - 312, 313, 314, 0, 315, 136, 321, 136, 136, 322, - 323, 324, 329, 357, 330, 137, 332, 137, 137, 154, - 335, 338, 340, 0, 341, 342, 345, 0, 346, 133, - 344, 133, 133, 411, 412, 413, 414, 415, 416, 417, - 418, 419, 348, 349, 350, 142, 143, 351, 352, 353, - 354, 355, 356, 358, 293, 294, 295, 343, 297, 298, - 299, 300, 301, 359, 360, 303, 361, 303, 146, 147, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 365, - 366, 0, 367, 0, 0, 368, 410, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 369, 370, 302, 371, - 303, 372, 373, 374, 375, 406, 407, 408, 409, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 376, 377, - 305, 420, 303, 378, 379, 380, 422, 423, 424, 425, - 426, 427, 428, 429, 430, 381, 431, 134, 134, 134, - 134, 134, 134, 134, 134, 134, 135, 135, 135, 135, - 135, 135, 135, 135, 135, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 382, 137, 137, 137, 137, 137, - 137, 137, 137, 137, 383, 384, 445, 385, 386, 133, - 133, 133, 133, 133, 133, 133, 133, 133, 88, 89, - 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 139, 108, - 109, 110, 111, 140, 121, 122, 123, 124, 125, 126, - 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, - 139, 108, 109, 110, 111, 140, 121, 122, 123, 124, - 125, 126, 387, 388, 192, 389, 161, 279, 280, 281, - 282, 283, 284, 285, 286, 287, 154, 390, 162, 391, - 288, 392, 193, 194, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 175, 176, 393, 394, - 395, 396, 142, 143, 397, 398, 399, 400, 154, 401, - 402, 404, 405, 433, 144, 434, 293, 294, 295, 296, - 297, 298, 299, 300, 301, 146, 147, 333, 435, 303, - 436, 439, 437, 177, 142, 143, 438, 441, 442, 443, - 178, 179, 444, 446, 447, 180, 144, 448, 449, 155, - 450, 452, 451, 453, 156, 461, 462, 146, 147, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 139, - 108, 109, 110, 111, 140, 121, 122, 123, 124, 125, - 126, 88, 89, 90, 91, 92, 93, 94, 95, 96, - 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 139, 108, 109, 110, 111, 140, 121, 122, 123, - 124, 125, 126, 463, 183, 464, 465, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 154, 88, 89, - 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 0, 108, - 109, 110, 111, 142, 143, 0, 0, 0, 0, 141, - 0, 0, 0, 0, 0, 144, 0, 0, 0, 0, - 0, 0, 0, 184, 0, 0, 146, 147, 0, 0, - 0, 0, 0, 0, 0, 142, 143, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 112, 144, 403, 0, - 303, 0, 0, 0, 113, 145, 0, 0, 146, 147, - 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, - 139, 108, 109, 110, 111, 140, 121, 122, 123, 124, - 125, 126, 88, 89, 90, 91, 92, 93, 94, 95, - 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 119, 108, 109, 110, 111, 120, 121, 122, - 123, 124, 125, 126, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 0, 0, 432, 0, 303, 154, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, - 440, 0, 303, 0, 0, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 142, 143, 454, 0, 303, 0, - 0, 0, 0, 0, 0, 0, 144, 0, 0, 0, - 0, 0, 0, 0, 331, 0, 0, 146, 147, 0, - 0, 0, 0, 0, 0, 0, 127, 128, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 0, 129, 455, - 0, 303, 0, 0, 0, 0, 130, 0, 0, 131, - 132, 88, 89, 90, 91, 92, 93, 94, 95, 96, - 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 139, 108, 109, 110, 111, 140, 121, 122, 123, - 124, 125, 126, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 119, 108, 109, 110, 111, 120, 121, - 122, 123, 124, 125, 126, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 0, 0, 456, 0, 303, 154, - 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, - 0, 457, 0, 303, 0, 0, 293, 294, 295, 296, - 297, 298, 299, 300, 301, 142, 143, 458, 0, 303, - 0, 0, 0, 0, 0, 0, 0, 144, 0, 0, - 0, 0, 0, 0, 267, 0, 0, 0, 146, 147, - 0, 0, 0, 0, 0, 0, 0, 127, 128, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 0, 129, - 0, 0, 303, 0, 0, 0, 0, 0, 0, 0, - 131, 132, 1, 2, 3, 0, 4, 0, 5, 6, - 7, 8, 9, 10, 11, 12, 13, 14, 0, 0, + 132, 136, 441, 183, 204, 305, 197, 198, 164, 256, + 85, 257, 258, 192, 88, 89, 90, 91, 92, 167, + 168, 180, 181, 84, 115, 87, 95, 137, 296, 297, + 298, 299, 300, 86, 138, 245, 190, 316, 199, 202, + 342, 117, 118, 119, 120, 121, 101, 102, 103, 104, + 105, 106, 319, 205, 306, 307, 200, 193, 160, 191, + 317, 93, 203, 343, 139, 161, 165, 273, 274, 94, + 169, 255, 201, 194, 195, 308, 279, 280, 281, 442, + 166, 177, 170, 283, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 178, 179, 187, 133, 184, + 185, 186, 188, 189, 206, 196, 207, 248, 269, 117, + 118, 119, 120, 121, 101, 102, 103, 104, 105, 106, + 270, 286, 271, 272, 123, 344, 249, 284, 287, 115, + 288, 115, 115, 273, 274, 124, 125, 126, 275, 323, + 277, 278, 279, 280, 281, 250, 251, 0, 289, 283, + 129, 130, 314, 252, 171, 312, 253, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 133, 107, 254, 324, + 290, 291, 172, 173, 259, 260, 292, 293, 108, 109, + 110, 294, 111, 265, 266, 267, 295, 301, 327, 302, + 112, 303, 123, 113, 114, 304, 309, 310, 315, 318, + 320, 337, 321, 124, 125, 126, 322, 127, 325, 326, + 328, 338, 329, 330, 331, 339, 332, 333, 129, 130, + 334, 335, 336, 340, 0, 341, 345, 346, 347, 117, + 118, 119, 120, 121, 101, 102, 103, 104, 105, 106, + 348, 349, 384, 385, 386, 387, 388, 350, 117, 118, + 119, 120, 121, 101, 102, 103, 104, 105, 106, 351, + 352, 401, 353, 354, 355, 356, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 357, 412, 115, 115, 115, + 115, 115, 115, 115, 115, 115, 133, 358, 359, 360, + 361, 362, 162, 117, 118, 119, 120, 121, 101, 102, + 103, 104, 105, 106, 363, 133, 364, 365, 366, 367, + 368, 369, 123, 370, 371, 372, 426, 373, 374, 375, + 376, 377, 378, 124, 125, 126, 379, 127, 380, 381, + 134, 123, 382, 389, 390, 135, 414, 415, 129, 130, + 283, 416, 124, 125, 126, 417, 127, 418, 419, 420, + 122, 422, 423, 424, 163, 425, 433, 129, 130, 117, + 118, 119, 120, 121, 101, 102, 103, 104, 105, 106, + 427, 428, 247, 429, 273, 274, 123, 430, 446, 275, + 276, 277, 278, 279, 280, 281, 431, 124, 125, 126, + 283, 127, 432, 402, 439, 443, 444, 445, 447, 128, + 0, 0, 129, 130, 117, 118, 119, 120, 121, 101, + 102, 103, 104, 105, 106, 0, 133, 0, 0, 0, + 0, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 0, 0, 0, 0, 0, 0, 0, 259, + 260, 0, 123, 0, 261, 262, 263, 264, 265, 266, + 267, 0, 0, 124, 125, 126, 0, 127, 391, 0, + 0, 133, 0, 0, 0, 311, 273, 274, 129, 130, + 0, 275, 276, 277, 278, 279, 280, 281, 0, 0, + 282, 0, 283, 0, 0, 259, 260, 123, 0, 0, + 261, 262, 263, 264, 265, 266, 267, 0, 124, 125, + 126, 268, 127, 0, 107, 0, 0, 0, 0, 0, + 0, 0, 0, 129, 130, 108, 109, 110, 246, 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 15, 0, 0, 16, 0, 17, 0, 18, 0, - 0, 19, 20, 21, 22, 0, 0, 23, 24, 25, - 26, 0, 0, 27, 28, 29, 30, 31, 32, 33, - 34, 35, 0, 0, 36, 37, 0, 38, 0, 39, - 40, 0, 0, 0, 0, 0, 41, 42, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 2, 3, 0, - 4, 43, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 14, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 15, 0, 0, 16, 0, - 17, 0, 18, 0, 0, 19, 20, 21, 22, 0, - 0, 23, 24, 25, 26, 0, 0, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 0, 0, 36, 37, - 0, 38, 0, 39, 40, 0, 0, 0, 0, 0, - 41, 42, 0, 0, 0, 0, 229, 230, 231, 0, - 232, 0, 233, 234, 235, 43, 236, 237, 238, 239, - 240, 241, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 242, 0, 0, 243, 0, - 0, 0, 0, 0, 0, 244, 245, 246, 247, 0, - 0, 0, 248, 249, 250, 0, 0, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 0, 0, 260, 261, - 0, 262, 0, 0, 0, 0, 0, 0, 0, 0, - 263, 264, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 265 + 113, 114, 0, 0, 0, 1, 2, 3, 0, 4, + 0, 5, 6, 7, 8, 9, 10, 11, 12, 13, + 14, 0, 273, 274, 0, 0, 0, 275, 276, 277, + 278, 279, 280, 281, 15, 0, 285, 16, 283, 17, + 0, 18, 0, 0, 19, 20, 21, 22, 0, 0, + 23, 24, 25, 26, 0, 0, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 0, 0, 36, 37, 0, + 38, 0, 39, 40, 0, 0, 0, 0, 41, 42, + 1, 2, 3, 0, 4, 0, 5, 6, 7, 8, + 9, 10, 11, 12, 13, 14, 0, 43, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, + 0, 0, 16, 0, 17, 0, 18, 0, 0, 19, + 20, 21, 22, 0, 0, 23, 24, 25, 26, 0, + 0, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 0, 0, 36, 37, 0, 38, 0, 39, 40, 0, + 0, 0, 0, 41, 42, 208, 209, 210, 0, 211, + 0, 212, 213, 214, 0, 215, 216, 217, 218, 219, + 220, 0, 43, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 221, 0, 0, 222, 0, 0, + 0, 0, 0, 0, 223, 224, 225, 226, 0, 0, + 0, 227, 228, 229, 0, 0, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 140, 0, 239, 240, 0, + 241, 0, 0, 0, 0, 0, 0, 141, 242, 243, + 0, 0, 0, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 244, 273, 274, + 0, 0, 0, 275, 276, 277, 278, 279, 280, 281, + 273, 274, 313, 0, 283, 275, 276, 277, 278, 279, + 280, 281, 0, 0, 383, 0, 283, 0, 0, 0, + 0, 0, 156, 0, 0, 0, 0, 0, 157, 158, + 273, 274, 0, 159, 0, 275, 276, 277, 278, 279, + 280, 281, 273, 274, 413, 0, 283, 275, 276, 277, + 278, 279, 280, 281, 273, 274, 421, 0, 283, 275, + 276, 277, 278, 279, 280, 281, 273, 274, 434, 0, + 283, 275, 276, 277, 278, 279, 280, 281, 273, 274, + 435, 0, 283, 275, 276, 277, 278, 279, 280, 281, + 273, 274, 436, 0, 283, 275, 276, 277, 278, 279, + 280, 281, 273, 274, 437, 0, 283, 275, 276, 277, + 278, 279, 280, 281, 273, 274, 438, 0, 283, 275, + 276, 277, 278, 279, 280, 281, 273, 274, 440, 0, + 283, 275, 276, 277, 278, 279, 280, 281, 0, 0, + 0, 0, 283 }; static const short yycheck[] = { - 7, 8, 26, 38, 53, 81, 81, 81, 15, 98, - 99, 111, 168, 169, 170, 171, 172, 107, 115, 107, - 75, 76, 4, 127, 6, 36, 37, 127, 107, 104, - 127, 4, 127, 6, 107, 42, 192, 127, 127, 127, - 4, 107, 6, 129, 127, 131, 132, 82, 127, 107, - 4, 127, 6, 127, 127, 107, 127, 127, 73, 127, - 107, 115, 127, 98, 99, 107, 6, 107, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 127, 127, 81, - 108, 129, 81, 108, 132, 107, 127, 116, 117, 113, - 116, 117, 127, 122, 123, 124, 122, 123, 124, 107, - 129, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 127, 127, 44, 128, 144, 128, 146, - 147, 128, 128, 128, 127, 107, 127, 129, 155, 131, - 132, 127, 127, 127, 81, 127, 129, 127, 131, 132, - 127, 127, 127, -1, 127, 129, 127, 131, 132, 127, - 127, 127, 127, 107, 127, 129, 183, 131, 132, 81, - 127, 127, 127, -1, 128, 127, 127, -1, 127, 129, - 197, 131, 132, 279, 280, 281, 282, 283, 284, 285, - 286, 287, 127, 127, 127, 107, 108, 127, 127, 127, - 127, 127, 127, 107, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 107, 107, 129, 127, 129, 130, 131, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 127, - 127, -1, 127, -1, -1, 127, 132, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 127, 127, 127, 127, - 129, 127, 127, 127, 127, 272, 273, 274, 275, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 127, 127, - 127, 288, 129, 127, 127, 127, 293, 294, 295, 296, - 297, 298, 299, 300, 301, 127, 303, 279, 280, 281, - 282, 283, 284, 285, 286, 287, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 279, 280, 281, 282, 283, - 284, 285, 286, 287, 127, 279, 280, 281, 282, 283, - 284, 285, 286, 287, 127, 127, 343, 127, 127, 279, - 280, 281, 282, 283, 284, 285, 286, 287, 3, 4, - 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 127, 127, 69, 127, 35, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 81, 127, 47, 127, - 129, 127, 87, 88, 53, 54, 55, 56, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 127, 127, - 127, 127, 107, 108, 127, 127, 127, 127, 81, 127, - 127, 107, 127, 127, 119, 127, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 130, 131, 127, 127, 129, - 127, 107, 127, 102, 107, 108, 127, 107, 127, 127, - 109, 110, 107, 127, 127, 114, 119, 127, 127, 122, - 127, 107, 127, 127, 127, 127, 127, 130, 131, 3, + 7, 8, 32, 26, 60, 60, 77, 78, 15, 111, + 86, 113, 114, 17, 3, 4, 5, 6, 7, 54, + 55, 15, 16, 109, 6, 109, 109, 86, 147, 148, + 149, 150, 151, 109, 86, 42, 86, 86, 109, 60, + 86, 3, 4, 5, 6, 7, 8, 9, 10, 11, + 12, 13, 171, 109, 109, 89, 93, 61, 109, 109, + 109, 50, 83, 109, 86, 109, 86, 95, 96, 58, + 109, 94, 109, 77, 78, 109, 104, 105, 106, 109, + 52, 93, 109, 111, 3, 4, 5, 6, 7, 8, + 9, 10, 11, 12, 13, 86, 86, 60, 60, 109, + 86, 86, 60, 109, 109, 109, 86, 109, 109, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, - 34, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 127, 68, 107, 127, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 81, 3, 4, - 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, -1, 24, - 25, 26, 27, 107, 108, -1, -1, -1, -1, 81, - -1, -1, -1, -1, -1, 119, -1, -1, -1, -1, - -1, -1, -1, 127, -1, -1, 130, 131, -1, -1, - -1, -1, -1, -1, -1, 107, 108, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 71, 119, 127, -1, - 129, -1, -1, -1, 79, 127, -1, -1, 130, 131, - 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 3, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 116, 117, 118, 119, 120, 121, - 122, 123, 124, -1, -1, 127, -1, 129, 81, 116, - 117, 118, 119, 120, 121, 122, 123, 124, -1, -1, - 127, -1, 129, -1, -1, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 107, 108, 127, -1, 129, -1, - -1, -1, -1, -1, -1, -1, 119, -1, -1, -1, - -1, -1, -1, -1, 127, -1, -1, 130, 131, -1, - -1, -1, -1, -1, -1, -1, 107, 108, 116, 117, - 118, 119, 120, 121, 122, 123, 124, -1, 119, 127, - -1, 129, -1, -1, -1, -1, 127, -1, -1, 130, - 131, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 3, 4, 5, 6, 7, 8, 9, - 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, - 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, - 30, 31, 32, 33, 34, 116, 117, 118, 119, 120, - 121, 122, 123, 124, -1, -1, 127, -1, 129, 81, - 116, 117, 118, 119, 120, 121, 122, 123, 124, -1, - -1, 127, -1, 129, -1, -1, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 107, 108, 127, -1, 129, - -1, -1, -1, -1, -1, -1, -1, 119, -1, -1, - -1, -1, -1, -1, 0, -1, -1, -1, 130, 131, - -1, -1, -1, -1, -1, -1, -1, 107, 108, 116, - 117, 118, 119, 120, 121, 122, 123, 124, -1, 119, - -1, -1, 129, -1, -1, -1, -1, -1, -1, -1, - 130, 131, 38, 39, 40, -1, 42, -1, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 53, -1, -1, + 127, 109, 129, 130, 86, 60, 110, 134, 109, 111, + 109, 113, 114, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 110, 110, -1, 109, 111, + 112, 113, 86, 110, 48, 162, 110, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 60, 86, 110, 176, + 109, 109, 66, 67, 95, 96, 109, 109, 97, 98, + 99, 109, 101, 104, 105, 106, 109, 109, 86, 109, + 109, 109, 86, 112, 113, 109, 109, 109, 109, 109, + 109, 86, 110, 97, 98, 99, 109, 101, 109, 109, + 109, 86, 109, 109, 109, 86, 109, 109, 112, 113, + 109, 109, 109, 86, -1, 109, 109, 109, 109, 3, + 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + 109, 109, 249, 250, 251, 252, 253, 109, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 109, + 109, 268, 109, 109, 109, 109, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 109, 283, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 60, 109, 109, 109, + 109, 109, 47, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 13, 109, 60, 109, 109, 109, 109, + 109, 109, 86, 109, 109, 109, 323, 109, 109, 109, + 109, 109, 109, 97, 98, 99, 109, 101, 109, 109, + 104, 86, 109, 86, 109, 109, 109, 109, 112, 113, + 111, 109, 97, 98, 99, 109, 101, 109, 109, 86, + 60, 86, 109, 109, 109, 86, 86, 112, 113, 3, + 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + 109, 109, 44, 109, 95, 96, 86, 109, 86, 100, + 101, 102, 103, 104, 105, 106, 109, 97, 98, 99, + 111, 101, 109, 114, 109, 109, 109, 109, 109, 109, + -1, -1, 112, 113, 3, 4, 5, 6, 7, 8, + 9, 10, 11, 12, 13, -1, 60, -1, -1, -1, + -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, + 12, 13, -1, -1, -1, -1, -1, -1, -1, 95, + 96, -1, 86, -1, 100, 101, 102, 103, 104, 105, + 106, -1, -1, 97, 98, 99, -1, 101, 114, -1, + -1, 60, -1, -1, -1, 109, 95, 96, 112, 113, + -1, 100, 101, 102, 103, 104, 105, 106, -1, -1, + 109, -1, 111, -1, -1, 95, 96, 86, -1, -1, + 100, 101, 102, 103, 104, 105, 106, -1, 97, 98, + 99, 111, 101, -1, 86, -1, -1, -1, -1, -1, + -1, -1, -1, 112, 113, 97, 98, 99, 0, 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 67, -1, -1, 70, -1, 72, -1, 74, -1, - -1, 77, 78, 79, 80, -1, -1, 83, 84, 85, - 86, -1, -1, 89, 90, 91, 92, 93, 94, 95, - 96, 97, -1, -1, 100, 101, -1, 103, -1, 105, - 106, -1, -1, -1, -1, -1, 112, 113, -1, -1, - -1, -1, -1, -1, -1, -1, 38, 39, 40, -1, - 42, 127, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 67, -1, -1, 70, -1, - 72, -1, 74, -1, -1, 77, 78, 79, 80, -1, - -1, 83, 84, 85, 86, -1, -1, 89, 90, 91, - 92, 93, 94, 95, 96, 97, -1, -1, 100, 101, - -1, 103, -1, 105, 106, -1, -1, -1, -1, -1, - 112, 113, -1, -1, -1, -1, 38, 39, 40, -1, - 42, -1, 44, 45, 46, 127, 48, 49, 50, 51, - 52, 53, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 67, -1, -1, 70, -1, - -1, -1, -1, -1, -1, 77, 78, 79, 80, -1, - -1, -1, 84, 85, 86, -1, -1, 89, 90, 91, - 92, 93, 94, 95, 96, 97, -1, -1, 100, 101, - -1, 103, -1, -1, -1, -1, -1, -1, -1, -1, - 112, 113, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 127 + 112, 113, -1, -1, -1, 17, 18, 19, -1, 21, + -1, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, -1, 95, 96, -1, -1, -1, 100, 101, 102, + 103, 104, 105, 106, 46, -1, 109, 49, 111, 51, + -1, 53, -1, -1, 56, 57, 58, 59, -1, -1, + 62, 63, 64, 65, -1, -1, 68, 69, 70, 71, + 72, 73, 74, 75, 76, -1, -1, 79, 80, -1, + 82, -1, 84, 85, -1, -1, -1, -1, 90, 91, + 17, 18, 19, -1, 21, -1, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, -1, 109, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 46, + -1, -1, 49, -1, 51, -1, 53, -1, -1, 56, + 57, 58, 59, -1, -1, 62, 63, 64, 65, -1, + -1, 68, 69, 70, 71, 72, 73, 74, 75, 76, + -1, -1, 79, 80, -1, 82, -1, 84, 85, -1, + -1, -1, -1, 90, 91, 17, 18, 19, -1, 21, + -1, 23, 24, 25, -1, 27, 28, 29, 30, 31, + 32, -1, 109, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 46, -1, -1, 49, -1, -1, + -1, -1, -1, -1, 56, 57, 58, 59, -1, -1, + -1, 63, 64, 65, -1, -1, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 14, -1, 79, 80, -1, + 82, -1, -1, -1, -1, -1, -1, 26, 90, 91, + -1, -1, -1, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 109, 95, 96, + -1, -1, -1, 100, 101, 102, 103, 104, 105, 106, + 95, 96, 109, -1, 111, 100, 101, 102, 103, 104, + 105, 106, -1, -1, 109, -1, 111, -1, -1, -1, + -1, -1, 81, -1, -1, -1, -1, -1, 87, 88, + 95, 96, -1, 92, -1, 100, 101, 102, 103, 104, + 105, 106, 95, 96, 109, -1, 111, 100, 101, 102, + 103, 104, 105, 106, 95, 96, 109, -1, 111, 100, + 101, 102, 103, 104, 105, 106, 95, 96, 109, -1, + 111, 100, 101, 102, 103, 104, 105, 106, 95, 96, + 109, -1, 111, 100, 101, 102, 103, 104, 105, 106, + 95, 96, 109, -1, 111, 100, 101, 102, 103, 104, + 105, 106, 95, 96, 109, -1, 111, 100, 101, 102, + 103, 104, 105, 106, 95, 96, 109, -1, 111, 100, + 101, 102, 103, 104, 105, 106, 95, 96, 109, -1, + 111, 100, 101, 102, 103, 104, 105, 106, -1, -1, + -1, -1, 111 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const unsigned char yystos[] = { - 0, 38, 39, 40, 42, 44, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 67, 70, 72, 74, 77, - 78, 79, 80, 83, 84, 85, 86, 89, 90, 91, - 92, 93, 94, 95, 96, 97, 100, 101, 103, 105, - 106, 112, 113, 127, 134, 135, 138, 139, 140, 141, - 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, 158, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, - 174, 175, 176, 177, 127, 107, 127, 127, 3, 4, - 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 24, 25, - 26, 27, 71, 79, 178, 179, 180, 181, 127, 23, - 28, 29, 30, 31, 32, 33, 34, 107, 108, 119, - 127, 130, 131, 137, 178, 179, 180, 181, 182, 23, - 28, 81, 107, 108, 119, 127, 130, 131, 137, 178, - 179, 180, 181, 183, 81, 122, 127, 183, 107, 107, - 107, 35, 47, 53, 54, 55, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 102, 109, 110, - 114, 127, 127, 68, 127, 183, 107, 73, 75, 76, - 127, 127, 69, 87, 88, 159, 160, 183, 115, 107, - 107, 36, 37, 136, 136, 127, 108, 108, 81, 81, - 127, 107, 127, 38, 82, 98, 99, 127, 98, 99, - 127, 115, 127, 81, 104, 81, 127, 127, 107, 38, - 39, 40, 42, 44, 45, 46, 48, 49, 50, 51, - 52, 53, 67, 70, 77, 78, 79, 80, 84, 85, - 86, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 100, 101, 103, 112, 113, 127, 183, 0, 135, 127, - 128, 136, 128, 128, 128, 128, 182, 182, 182, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 129, 127, - 183, 183, 183, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 127, 129, 183, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 159, 159, 159, 159, - 159, 127, 127, 127, 127, 81, 127, 111, 127, 127, - 127, 127, 183, 127, 107, 127, 107, 127, 127, 159, - 127, 128, 127, 119, 183, 127, 127, 107, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 107, 107, 107, - 107, 127, 107, 127, 81, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 107, 127, 183, 183, 183, 183, - 132, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 183, 132, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 127, 127, 127, 127, 127, 127, 127, 107, - 127, 107, 127, 127, 107, 183, 127, 127, 127, 127, - 127, 127, 107, 127, 127, 127, 127, 127, 127, 53, - 127, 127, 127, 127, 107, 127 + 0, 17, 18, 19, 21, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 46, 49, 51, 53, 56, + 57, 58, 59, 62, 63, 64, 65, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 79, 80, 82, 84, + 85, 90, 91, 109, 116, 117, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 109, 86, 109, 109, 3, 4, + 5, 6, 7, 50, 58, 109, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 13, 86, 97, 98, + 99, 101, 109, 112, 113, 119, 160, 3, 4, 5, + 6, 7, 60, 86, 97, 98, 99, 101, 109, 112, + 113, 119, 161, 60, 104, 109, 161, 86, 86, 86, + 14, 26, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 81, 87, 88, 92, + 109, 109, 47, 109, 161, 86, 52, 54, 55, 109, + 109, 48, 66, 67, 141, 142, 161, 93, 86, 86, + 15, 16, 118, 118, 109, 86, 86, 60, 60, 109, + 86, 109, 17, 61, 77, 78, 109, 77, 78, 109, + 93, 109, 60, 83, 60, 109, 109, 86, 17, 18, + 19, 21, 23, 24, 25, 27, 28, 29, 30, 31, + 32, 46, 49, 56, 57, 58, 59, 63, 64, 65, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 79, + 80, 82, 90, 91, 109, 161, 0, 117, 109, 110, + 110, 110, 110, 110, 110, 118, 160, 160, 160, 95, + 96, 100, 101, 102, 103, 104, 105, 106, 111, 109, + 161, 161, 161, 95, 96, 100, 101, 102, 103, 104, + 105, 106, 109, 111, 161, 109, 109, 109, 109, 109, + 109, 109, 109, 109, 109, 109, 141, 141, 141, 141, + 141, 109, 109, 109, 109, 60, 109, 89, 109, 109, + 109, 109, 161, 109, 86, 109, 86, 109, 109, 141, + 109, 110, 109, 101, 161, 109, 109, 86, 109, 109, + 109, 109, 109, 109, 109, 109, 109, 86, 86, 86, + 86, 109, 86, 109, 60, 109, 109, 109, 109, 109, + 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, + 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, + 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, + 109, 109, 109, 109, 161, 161, 161, 161, 161, 86, + 109, 114, 160, 160, 160, 160, 160, 160, 160, 160, + 160, 161, 114, 161, 161, 161, 161, 161, 161, 161, + 161, 161, 161, 109, 109, 109, 109, 109, 109, 109, + 86, 109, 86, 109, 109, 86, 161, 109, 109, 109, + 109, 109, 109, 86, 109, 109, 109, 109, 109, 109, + 109, 32, 109, 109, 109, 109, 86, 109 }; #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__) @@ -1864,39 +1734,39 @@ yyreduce: switch (yyn) { case 43: -#line 209 "parser.y" +#line 186 "parser.y" { } break; case 45: -#line 216 "parser.y" +#line 193 "parser.y" { yyval.bval=yyvsp[0].bval; } break; case 51: -#line 226 "parser.y" +#line 203 "parser.y" { yyval.uval=yyvsp[0].uval; } break; case 52: -#line 231 "parser.y" +#line 208 "parser.y" { - bx_dbg_timebp_command(0, yyvsp[-1].ulval); + bx_dbg_timebp_command(0, yyvsp[-1].uval); free(yyvsp[-2].sval); } break; case 53: -#line 236 "parser.y" +#line 213 "parser.y" { - bx_dbg_timebp_command(1, yyvsp[-1].ulval); + bx_dbg_timebp_command(1, yyvsp[-1].uval); free(yyvsp[-2].sval); } break; case 54: -#line 244 "parser.y" +#line 221 "parser.y" { bx_dbg_record_command(yyvsp[-1].sval); free(yyvsp[-2].sval); free(yyvsp[-1].sval); @@ -1904,7 +1774,7 @@ yyreduce: break; case 55: -#line 252 "parser.y" +#line 229 "parser.y" { bx_dbg_playback_command(yyvsp[-1].sval); free(yyvsp[-2].sval); free(yyvsp[-1].sval); @@ -1912,7 +1782,7 @@ yyreduce: break; case 56: -#line 260 "parser.y" +#line 237 "parser.y" { bx_dbg_modebp_command(); free(yyvsp[-1].sval); @@ -1920,7 +1790,7 @@ yyreduce: break; case 57: -#line 268 "parser.y" +#line 245 "parser.y" { bx_dbg_show_command(yyvsp[-1].sval); free(yyvsp[-2].sval); free(yyvsp[-1].sval); @@ -1928,7 +1798,7 @@ yyreduce: break; case 58: -#line 273 "parser.y" +#line 250 "parser.y" { bx_dbg_show_command(0); free(yyvsp[-1].sval); @@ -1936,7 +1806,7 @@ yyreduce: break; case 59: -#line 281 "parser.y" +#line 258 "parser.y" { bx_dbg_ptime_command(); free(yyvsp[-1].sval); @@ -1944,7 +1814,7 @@ yyreduce: break; case 60: -#line 289 "parser.y" +#line 266 "parser.y" { bx_dbg_trace_command(yyvsp[-1].bval); free(yyvsp[-2].sval); @@ -1952,7 +1822,7 @@ yyreduce: break; case 61: -#line 297 "parser.y" +#line 274 "parser.y" { bx_dbg_trace_reg_command(yyvsp[-1].bval); free(yyvsp[-2].sval); @@ -1960,7 +1830,7 @@ yyreduce: break; case 62: -#line 305 "parser.y" +#line 282 "parser.y" { bx_dbg_print_stack_command(16); free(yyvsp[-1].sval); @@ -1968,7 +1838,7 @@ yyreduce: break; case 63: -#line 310 "parser.y" +#line 287 "parser.y" { bx_dbg_print_stack_command(yyvsp[-1].uval); free(yyvsp[-2].sval); @@ -1976,7 +1846,7 @@ yyreduce: break; case 64: -#line 318 "parser.y" +#line 295 "parser.y" { watchpoint_continue = 0; dbg_printf("Will stop on watch points\n"); @@ -1985,7 +1855,7 @@ yyreduce: break; case 65: -#line 324 "parser.y" +#line 301 "parser.y" { watchpoint_continue = 1; dbg_printf("Will not stop on watch points (they will still be logged)\n"); @@ -1994,7 +1864,7 @@ yyreduce: break; case 66: -#line 330 "parser.y" +#line 307 "parser.y" { bx_dbg_watch(-1, 0); free(yyvsp[-1].sval); @@ -2002,7 +1872,7 @@ yyreduce: break; case 67: -#line 335 "parser.y" +#line 312 "parser.y" { bx_dbg_unwatch(-1, 0); free(yyvsp[-1].sval); @@ -2010,7 +1880,7 @@ yyreduce: break; case 68: -#line 340 "parser.y" +#line 317 "parser.y" { bx_dbg_watch(1, yyvsp[-1].uval); free(yyvsp[-3].sval); free(yyvsp[-2].sval); @@ -2018,7 +1888,7 @@ yyreduce: break; case 69: -#line 345 "parser.y" +#line 322 "parser.y" { bx_dbg_unwatch(1, yyvsp[-1].uval); free(yyvsp[-3].sval); free(yyvsp[-2].sval); @@ -2026,7 +1896,7 @@ yyreduce: break; case 70: -#line 350 "parser.y" +#line 327 "parser.y" { bx_dbg_watch(0, yyvsp[-1].uval); free(yyvsp[-3].sval); free(yyvsp[-2].sval); @@ -2034,7 +1904,7 @@ yyreduce: break; case 71: -#line 355 "parser.y" +#line 332 "parser.y" { bx_dbg_unwatch(0, yyvsp[-1].uval); free(yyvsp[-3].sval); free(yyvsp[-2].sval); @@ -2042,7 +1912,7 @@ yyreduce: break; case 72: -#line 363 "parser.y" +#line 340 "parser.y" { bx_dbg_symbol_command(yyvsp[-1].sval, 0, 0); free(yyvsp[-2].sval); free(yyvsp[-1].sval); @@ -2050,7 +1920,7 @@ yyreduce: break; case 73: -#line 368 "parser.y" +#line 345 "parser.y" { bx_dbg_symbol_command(yyvsp[-2].sval, 0, yyvsp[-1].uval); free(yyvsp[-3].sval); free(yyvsp[-2].sval); @@ -2058,7 +1928,7 @@ yyreduce: break; case 74: -#line 373 "parser.y" +#line 350 "parser.y" { bx_dbg_symbol_command(yyvsp[-2].sval, 1, yyvsp[-1].uval); free(yyvsp[-4].sval); free(yyvsp[-3].sval); free(yyvsp[-2].sval); @@ -2066,7 +1936,7 @@ yyreduce: break; case 75: -#line 381 "parser.y" +#line 358 "parser.y" { bx_dbg_where_command(); free(yyvsp[-1].sval); @@ -2074,7 +1944,7 @@ yyreduce: break; case 76: -#line 389 "parser.y" +#line 366 "parser.y" { bx_dbg_print_string_command(yyvsp[-1].uval); free(yyvsp[-2].sval); @@ -2082,7 +1952,7 @@ yyreduce: break; case 77: -#line 397 "parser.y" +#line 374 "parser.y" { bx_dbg_continue_command(); free(yyvsp[-1].sval); @@ -2090,7 +1960,7 @@ yyreduce: break; case 78: -#line 405 "parser.y" +#line 382 "parser.y" { bx_dbg_stepN_command(1); free(yyvsp[-1].sval); @@ -2098,7 +1968,7 @@ yyreduce: break; case 79: -#line 410 "parser.y" +#line 387 "parser.y" { bx_dbg_stepN_command(yyvsp[-1].uval); free(yyvsp[-2].sval); @@ -2106,7 +1976,7 @@ yyreduce: break; case 80: -#line 418 "parser.y" +#line 395 "parser.y" { bx_dbg_step_over_command(); free(yyvsp[-1].sval); @@ -2114,7 +1984,7 @@ yyreduce: break; case 81: -#line 426 "parser.y" +#line 403 "parser.y" { bx_dbg_set_auto_disassemble(yyvsp[-1].bval); free(yyvsp[-3].sval); free(yyvsp[-2].sval); @@ -2122,7 +1992,7 @@ yyreduce: break; case 82: -#line 431 "parser.y" +#line 408 "parser.y" { bx_dbg_set_symbol_command(yyvsp[-3].sval, yyvsp[-1].uval); free(yyvsp[-4].sval); free(yyvsp[-3].sval); @@ -2130,606 +2000,613 @@ yyreduce: break; case 83: -#line 436 "parser.y" +#line 413 "parser.y" { - bx_dbg_set_reg8l_value(yyvsp[-3].uval, yyvsp[-1].ulval); + bx_dbg_set_reg8l_value(yyvsp[-3].uval, yyvsp[-1].uval); } break; case 84: -#line 440 "parser.y" +#line 417 "parser.y" { - bx_dbg_set_reg8h_value(yyvsp[-3].uval, yyvsp[-1].ulval); + bx_dbg_set_reg8h_value(yyvsp[-3].uval, yyvsp[-1].uval); } break; case 85: -#line 444 "parser.y" +#line 421 "parser.y" { - bx_dbg_set_reg16_value(yyvsp[-3].uval, yyvsp[-1].ulval); + bx_dbg_set_reg16_value(yyvsp[-3].uval, yyvsp[-1].uval); } break; case 86: -#line 448 "parser.y" +#line 425 "parser.y" { - bx_dbg_set_reg32_value(yyvsp[-3].uval, yyvsp[-1].ulval); + bx_dbg_set_reg32_value(yyvsp[-3].uval, yyvsp[-1].uval); } break; case 87: -#line 455 "parser.y" +#line 429 "parser.y" + { + bx_dbg_set_reg64_value(yyvsp[-3].uval, yyvsp[-1].uval); + } + break; + + case 88: +#line 436 "parser.y" { bx_dbg_vbreakpoint_command(bkAtIP, 0, 0); free(yyvsp[-1].sval); } break; - case 88: -#line 460 "parser.y" + case 89: +#line 441 "parser.y" { - bx_dbg_vbreakpoint_command(bkRegular, yyvsp[-3].ulval, yyvsp[-1].ulval); + bx_dbg_vbreakpoint_command(bkRegular, yyvsp[-3].uval, yyvsp[-1].uval); free(yyvsp[-4].sval); } break; - case 89: -#line 465 "parser.y" + case 90: +#line 446 "parser.y" { bx_dbg_lbreakpoint_command(bkAtIP, 0); free(yyvsp[-1].sval); } break; - case 90: -#line 470 "parser.y" + case 91: +#line 451 "parser.y" { - bx_dbg_lbreakpoint_command(bkRegular, yyvsp[-1].ulval); + bx_dbg_lbreakpoint_command(bkRegular, yyvsp[-1].uval); free(yyvsp[-2].sval); } break; - case 91: -#line 475 "parser.y" + case 92: +#line 456 "parser.y" { bx_dbg_lbreakpoint_symbol_command(yyvsp[-1].sval); free(yyvsp[-2].sval);free(yyvsp[-1].sval); } break; - case 92: -#line 480 "parser.y" + case 93: +#line 461 "parser.y" { bx_dbg_pbreakpoint_command(bkAtIP, 0); free(yyvsp[-1].sval); } break; - case 93: -#line 485 "parser.y" + case 94: +#line 466 "parser.y" { - bx_dbg_pbreakpoint_command(bkRegular, yyvsp[-1].ulval); + bx_dbg_pbreakpoint_command(bkRegular, yyvsp[-1].uval); free(yyvsp[-2].sval); } break; - case 94: -#line 490 "parser.y" + case 95: +#line 471 "parser.y" { - bx_dbg_pbreakpoint_command(bkRegular, yyvsp[-1].ulval); + bx_dbg_pbreakpoint_command(bkRegular, yyvsp[-1].uval); free(yyvsp[-3].sval); } break; - case 95: -#line 498 "parser.y" + case 96: +#line 479 "parser.y" { bx_dbg_info_bpoints_command(); free(yyvsp[-1].sval); } break; - case 96: -#line 506 "parser.y" + case 97: +#line 487 "parser.y" { bx_dbg_info_symbols_command(0); free(yyvsp[-1].sval); } break; - case 97: -#line 511 "parser.y" + case 98: +#line 492 "parser.y" { bx_dbg_info_symbols_command(yyvsp[-1].sval); free(yyvsp[-2].sval);free(yyvsp[-1].sval); } break; - case 98: -#line 519 "parser.y" + case 99: +#line 500 "parser.y" { bx_dbg_info_bpoints_command(); free(yyvsp[-2].sval); free(yyvsp[-1].sval); } break; - case 99: -#line 524 "parser.y" + case 100: +#line 505 "parser.y" { bx_dbg_dump_cpu_command(); free(yyvsp[-2].sval); free(yyvsp[-1].sval); } break; - case 100: -#line 529 "parser.y" + case 101: +#line 510 "parser.y" { bx_dbg_info_registers_command(BX_INFO_CPU_REGS); free(yyvsp[-2].sval); free(yyvsp[-1].sval); } break; - case 101: -#line 534 "parser.y" + case 102: +#line 515 "parser.y" { bx_dbg_info_registers_command(BX_INFO_FPU_REGS); free(yyvsp[-2].sval); free(yyvsp[-1].sval); } break; - case 102: -#line 539 "parser.y" + case 103: +#line 520 "parser.y" { bx_dbg_info_registers_command(BX_INFO_SSE_REGS); free(yyvsp[-2].sval); free(yyvsp[-1].sval); } break; - case 103: -#line 544 "parser.y" + case 104: +#line 525 "parser.y" { bx_dbg_info_registers_command(BX_INFO_CPU_REGS | BX_INFO_FPU_REGS | BX_INFO_SSE_REGS); free(yyvsp[-2].sval); free(yyvsp[-1].sval); } break; - case 104: -#line 549 "parser.y" + case 105: +#line 530 "parser.y" { bx_dbg_info_dirty_command(); free(yyvsp[-2].sval); free(yyvsp[-1].sval); } break; - case 105: -#line 554 "parser.y" + case 106: +#line 535 "parser.y" { bx_dbg_info_idt_command(yyvsp[-1].uval_range); free(yyvsp[-3].sval); free(yyvsp[-2].sval); } break; - case 106: -#line 559 "parser.y" + case 107: +#line 540 "parser.y" { bx_dbg_info_ivt_command(yyvsp[-1].uval_range); free(yyvsp[-3].sval); free(yyvsp[-2].sval); } break; - case 107: -#line 564 "parser.y" + case 108: +#line 545 "parser.y" { bx_dbg_info_gdt_command(yyvsp[-1].uval_range); free(yyvsp[-3].sval); free(yyvsp[-2].sval); } break; - case 108: -#line 569 "parser.y" + case 109: +#line 550 "parser.y" { bx_dbg_info_ldt_command(yyvsp[-1].uval_range); free(yyvsp[-3].sval); free(yyvsp[-2].sval); } break; - case 109: -#line 574 "parser.y" + case 110: +#line 555 "parser.y" { bx_dbg_info_tss_command(yyvsp[-1].uval_range); free(yyvsp[-3].sval); free(yyvsp[-2].sval); } break; - case 110: -#line 579 "parser.y" + case 111: +#line 560 "parser.y" { bx_dbg_dump_table(); free(yyvsp[-2].sval); free(yyvsp[-1].sval); } break; - case 111: -#line 584 "parser.y" + case 112: +#line 565 "parser.y" { bx_dbg_info_flags(); free(yyvsp[-2].sval); } break; - case 112: -#line 589 "parser.y" + case 113: +#line 570 "parser.y" { bx_dbg_info_linux_command(); free(yyvsp[-2].sval); free(yyvsp[-1].sval); } break; - case 113: -#line 594 "parser.y" + case 114: +#line 575 "parser.y" { bx_dbg_info_symbols_command(0); free(yyvsp[-2].sval); free(yyvsp[-1].sval); } break; - case 114: -#line 599 "parser.y" + case 115: +#line 580 "parser.y" { bx_dbg_info_symbols_command(yyvsp[-1].sval); free(yyvsp[-3].sval); free(yyvsp[-2].sval); free(yyvsp[-1].sval); } break; - case 115: -#line 604 "parser.y" + case 116: +#line 585 "parser.y" { bx_dbg_info_control_regs_command(); free(yyvsp[-2].sval); free(yyvsp[-1].sval); } break; - case 116: -#line 609 "parser.y" + case 117: +#line 590 "parser.y" { bx_dbg_info_ne2k(-1, -1); free(yyvsp[-2].sval); free(yyvsp[-1].sval); } break; - case 117: -#line 614 "parser.y" + case 118: +#line 595 "parser.y" { free(yyvsp[-4].sval); free(yyvsp[-3].sval); free(yyvsp[-2].sval); bx_dbg_info_ne2k(yyvsp[-1].uval, -1); } break; - case 118: -#line 619 "parser.y" + case 119: +#line 600 "parser.y" { free(yyvsp[-6].sval); free(yyvsp[-5].sval); free(yyvsp[-4].sval); free(yyvsp[-2].sval); bx_dbg_info_ne2k(yyvsp[-3].uval, yyvsp[-1].uval); } break; - case 119: -#line 624 "parser.y" + case 120: +#line 605 "parser.y" { bx_dbg_info_pic(); free(yyvsp[-2].sval); free(yyvsp[-1].sval); } break; - case 120: -#line 629 "parser.y" + case 121: +#line 610 "parser.y" { bx_dbg_info_vga(); free(yyvsp[-2].sval); free(yyvsp[-1].sval); } break; - case 121: -#line 640 "parser.y" + case 122: +#line 621 "parser.y" { yyval.uval_range = make_num_range (EMPTY_ARG, EMPTY_ARG); } break; - case 123: -#line 645 "parser.y" - { - yyval.uval_range = make_num_range (yyvsp[0].ulval, yyvsp[0].ulval); - } - break; - case 124: -#line 649 "parser.y" +#line 626 "parser.y" { - yyval.uval_range = make_num_range (yyvsp[-1].ulval, yyvsp[0].ulval); + yyval.uval_range = make_num_range (yyvsp[0].uval, yyvsp[0].uval); } break; case 125: -#line 655 "parser.y" +#line 630 "parser.y" + { + yyval.uval_range = make_num_range (yyvsp[-1].uval, yyvsp[0].uval); + } + break; + + case 126: +#line 636 "parser.y" { bx_dbg_info_registers_command(BX_INFO_CPU_REGS); free(yyvsp[-1].sval); } break; - case 126: -#line 663 "parser.y" + case 127: +#line 644 "parser.y" { bx_dbg_dump_cpu_command(); free(yyvsp[-1].sval); } break; - case 127: -#line 671 "parser.y" + case 128: +#line 652 "parser.y" { bx_dbg_del_breakpoint_command(yyvsp[-1].uval); free(yyvsp[-2].sval); } break; - case 128: -#line 679 "parser.y" + case 129: +#line 660 "parser.y" { bx_dbg_en_dis_breakpoint_command(yyvsp[-1].uval, 1); free(yyvsp[-2].sval); } break; - case 129: -#line 686 "parser.y" + case 130: +#line 667 "parser.y" { bx_dbg_en_dis_breakpoint_command(yyvsp[-1].uval, 0); free(yyvsp[-2].sval); } break; - case 130: -#line 694 "parser.y" + case 131: +#line 675 "parser.y" { bx_dbg_quit_command(); free(yyvsp[-1].sval); } break; - case 131: -#line 702 "parser.y" + case 132: +#line 683 "parser.y" { - bx_dbg_examine_command(yyvsp[-3].sval, yyvsp[-2].sval,1, yyvsp[-1].ulval, 1); + bx_dbg_examine_command(yyvsp[-3].sval, yyvsp[-2].sval,1, yyvsp[-1].uval, 1); free(yyvsp[-3].sval); free(yyvsp[-2].sval); } break; - case 132: -#line 707 "parser.y" + case 133: +#line 688 "parser.y" { bx_dbg_examine_command(yyvsp[-2].sval, yyvsp[-1].sval,1, 0, 0); free(yyvsp[-2].sval); free(yyvsp[-1].sval); } break; - case 133: -#line 712 "parser.y" + case 134: +#line 693 "parser.y" { - bx_dbg_examine_command(yyvsp[-2].sval, NULL,0, yyvsp[-1].ulval, 1); + bx_dbg_examine_command(yyvsp[-2].sval, NULL,0, yyvsp[-1].uval, 1); free(yyvsp[-2].sval); } break; - case 134: -#line 717 "parser.y" + case 135: +#line 698 "parser.y" { bx_dbg_examine_command(yyvsp[-1].sval, NULL,0, 0, 0); free(yyvsp[-1].sval); } break; - case 135: -#line 725 "parser.y" + case 136: +#line 706 "parser.y" { bx_dbg_setpmem_command(yyvsp[-3].uval, yyvsp[-2].uval, yyvsp[-1].uval); free(yyvsp[-4].sval); } break; - case 136: -#line 733 "parser.y" + case 137: +#line 714 "parser.y" { bx_dbg_query_command(yyvsp[-1].sval); free(yyvsp[-2].sval); free(yyvsp[-1].sval); } break; - case 137: -#line 741 "parser.y" + case 138: +#line 722 "parser.y" { bx_dbg_take_command(yyvsp[-1].sval, 1); free(yyvsp[-2].sval); free(yyvsp[-1].sval); } break; - case 138: -#line 746 "parser.y" + case 139: +#line 727 "parser.y" { bx_dbg_take_command(yyvsp[-2].sval, yyvsp[-1].uval); free(yyvsp[-3].sval); free(yyvsp[-2].sval); } break; - case 139: -#line 751 "parser.y" + case 140: +#line 732 "parser.y" { bx_dbg_take_command(yyvsp[-1].sval, 1); free(yyvsp[-2].sval); free(yyvsp[-1].sval); } break; - case 140: -#line 759 "parser.y" + case 141: +#line 740 "parser.y" { bx_dbg_set_cpu_command(); free(yyvsp[-1].sval); } break; - case 141: -#line 767 "parser.y" + case 142: +#line 748 "parser.y" { bx_dbg_disassemble_command(NULL, yyvsp[-1].uval_range); free(yyvsp[-2].sval); } break; - case 142: -#line 772 "parser.y" + case 143: +#line 753 "parser.y" { bx_dbg_disassemble_command(yyvsp[-2].sval, yyvsp[-1].uval_range); free(yyvsp[-3].sval); free(yyvsp[-2].sval); } break; - case 143: -#line 777 "parser.y" + case 144: +#line 758 "parser.y" { bx_dbg_disassemble_switch_mode(); free(yyvsp[-2].sval); free(yyvsp[-1].sval); } break; - case 144: -#line 782 "parser.y" + case 145: +#line 763 "parser.y" { bx_dbg_set_disassemble_size(yyvsp[-1].uval); free(yyvsp[-4].sval); free(yyvsp[-3].sval); } break; - case 145: -#line 790 "parser.y" + case 146: +#line 771 "parser.y" { bx_dbg_instrument_command(yyvsp[-1].sval); free(yyvsp[-2].sval); free(yyvsp[-1].sval); } break; - case 146: -#line 798 "parser.y" + case 147: +#line 779 "parser.y" { bx_dbg_doit_command(yyvsp[-1].uval); free(yyvsp[-2].sval); } break; - case 147: -#line 806 "parser.y" + case 148: +#line 787 "parser.y" { bx_dbg_crc_command(yyvsp[-2].uval, yyvsp[-1].uval); free(yyvsp[-3].sval); } break; - case 148: -#line 814 "parser.y" + case 149: +#line 795 "parser.y" { dbg_printf("q|quit|exit - quit debugger and emulator execution\n"); free(yyvsp[-2].sval);free(yyvsp[-1].sval); } break; - case 149: -#line 819 "parser.y" + case 150: +#line 800 "parser.y" { dbg_printf("c|cont|continue - continue executing\n"); free(yyvsp[-2].sval);free(yyvsp[-1].sval); } break; - case 150: -#line 824 "parser.y" + case 151: +#line 805 "parser.y" { dbg_printf("s|step|stepi [count] - execute #count instructions (default is one instruction)\n"); free(yyvsp[-2].sval);free(yyvsp[-1].sval); } break; - case 151: -#line 829 "parser.y" + case 152: +#line 810 "parser.y" { dbg_printf("n|next|p - execute instruction stepping over subroutines\n"); free(yyvsp[-2].sval);free(yyvsp[-1].sval); } break; - case 152: -#line 834 "parser.y" + case 153: +#line 815 "parser.y" { dbg_printf("vb|vbreak - set a virtual address instruction breakpoint\n"); free(yyvsp[-2].sval);free(yyvsp[-1].sval); } break; - case 153: -#line 839 "parser.y" + case 154: +#line 820 "parser.y" { dbg_printf("p|pb|break|pbreak - set a physical address instruction breakpoint\n"); free(yyvsp[-2].sval);free(yyvsp[-1].sval); } break; - case 154: -#line 844 "parser.y" + case 155: +#line 825 "parser.y" { dbg_printf("d|del|delete - delete a breakpoint\n"); free(yyvsp[-2].sval);free(yyvsp[-1].sval); } break; - case 155: -#line 849 "parser.y" + case 156: +#line 830 "parser.y" { dbg_printf("bpe - enable a breakpoint\n"); free(yyvsp[-2].sval);free(yyvsp[-1].sval); } break; - case 156: -#line 854 "parser.y" + case 157: +#line 835 "parser.y" { dbg_printf("bpd - disable a breakpoint\n"); free(yyvsp[-2].sval);free(yyvsp[-1].sval); } break; - case 157: -#line 859 "parser.y" + case 158: +#line 840 "parser.y" { dbg_printf("blist - list all breakpoints (same as 'info break')\n"); free(yyvsp[-2].sval);free(yyvsp[-1].sval); } break; - case 158: -#line 864 "parser.y" + case 159: +#line 845 "parser.y" { dbg_printf("modebp - toggles mode switch breakpoint\n"); free(yyvsp[-2].sval);free(yyvsp[-1].sval); } break; - case 159: -#line 869 "parser.y" + case 160: +#line 850 "parser.y" { dbg_printf("crc - show CRC32 for physical memory range addr1..addr2\n"); free(yyvsp[-2].sval);free(yyvsp[-1].sval); } break; - case 160: -#line 874 "parser.y" + case 161: +#line 855 "parser.y" { dbg_printf("trace on - print disassembly for every executed instruction\n"); dbg_printf("trace off - disable instruction tracing\n"); @@ -2737,8 +2614,8 @@ yyreduce: } break; - case 161: -#line 880 "parser.y" + case 162: +#line 861 "parser.y" { dbg_printf("trace-reg on - print all registers before every executed instruction\n"); dbg_printf("trace-reg off - disable registers state tracing\n"); @@ -2746,104 +2623,104 @@ yyreduce: } break; - case 162: -#line 886 "parser.y" + case 163: +#line 867 "parser.y" { dbg_printf("dump_cpu - dump complete cpu state\n"); free(yyvsp[-2].sval);free(yyvsp[-1].sval); } break; - case 163: -#line 891 "parser.y" + case 164: +#line 872 "parser.y" { dbg_printf("set_cpu - set complete cpu state\n"); free(yyvsp[-2].sval);free(yyvsp[-1].sval); } break; - case 164: -#line 896 "parser.y" + case 165: +#line 877 "parser.y" { dbg_printf("ptime - print current time (number of ticks since start of simulation)\n"); free(yyvsp[-2].sval);free(yyvsp[-1].sval); } break; - case 165: -#line 901 "parser.y" + case 166: +#line 882 "parser.y" { dbg_printf("sb - insert a time breakpoint delta instructions into the future\n"); free(yyvsp[-2].sval);free(yyvsp[-1].sval); } break; - case 166: -#line 906 "parser.y" + case 167: +#line 887 "parser.y" { dbg_printf("sba