From 3bd36d72204fe6cab89e87f4f8db7902881cd300 Mon Sep 17 00:00:00 2001 From: instinc Date: Wed, 28 Nov 2001 18:40:02 +0000 Subject: [PATCH] added the trace-reg-on and trace-reg-off commands --- bochs/debug/lexer.c | 480 ++++---- bochs/debug/parser.c | 2772 +++++++++++++++++++++++++----------------- bochs/debug/parser.h | 178 +-- bochs/debug/parser.y | 22 +- 4 files changed, 2002 insertions(+), 1450 deletions(-) diff --git a/bochs/debug/lexer.c b/bochs/debug/lexer.c index 086f71b0f..6b02e34d7 100644 --- a/bochs/debug/lexer.c +++ b/bochs/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/debug/lexer.c,v 1.8 2001-10-03 13:10:37 bdenney Exp $ + * $Header: /home/volker/Archiv/bochs-cvs-rsync-20110222/bochs/debug/lexer.c,v 1.9 2001-11-28 18:40:02 instinc Exp $ */ #define FLEX_SCANNER @@ -300,50 +300,50 @@ static void yy_fatal_error YY_PROTO(( yyconst char msg[] )); *yy_cp = '\0'; \ yy_c_buf_p = yy_cp; -#define YY_NUM_RULES 113 -#define YY_END_OF_BUFFER 114 -static yyconst short int yy_accept[363] = +#define YY_NUM_RULES 115 +#define YY_END_OF_BUFFER 116 +static yyconst short int yy_accept[371] = { 0, - 0, 0, 114, 112, 1, 110, 112, 111, 112, 112, - 108, 108, 112, 20, 7, 39, 112, 112, 112, 112, - 112, 112, 112, 112, 112, 41, 25, 11, 112, 112, - 112, 112, 42, 1, 0, 101, 111, 109, 104, 103, - 106, 108, 107, 0, 0, 0, 0, 0, 22, 93, - 0, 0, 0, 0, 96, 0, 94, 0, 0, 0, - 97, 0, 0, 98, 0, 0, 0, 14, 0, 0, + 0, 0, 116, 114, 1, 112, 114, 113, 114, 114, + 110, 110, 114, 20, 7, 39, 114, 114, 114, 114, + 114, 114, 114, 114, 114, 41, 25, 11, 114, 114, + 114, 114, 42, 1, 0, 103, 113, 111, 106, 105, + 108, 110, 109, 0, 0, 0, 0, 0, 22, 95, + 0, 0, 0, 0, 98, 0, 96, 0, 0, 0, + 99, 0, 0, 100, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 16, 0, - 0, 0, 0, 0, 0, 0, 68, 0, 0, 10, - 95, 0, 0, 0, 0, 0, 0, 0, 0, 12, + 0, 0, 0, 0, 0, 0, 70, 0, 0, 10, + 97, 0, 0, 0, 0, 0, 0, 0, 0, 12, - 0, 0, 0, 43, 109, 102, 105, 54, 29, 0, + 0, 0, 0, 43, 111, 104, 107, 54, 29, 0, 0, 6, 0, 38, 0, 0, 3, 57, 48, 0, 0, 0, 0, 28, 31, 0, 30, 0, 0, 49, 0, 32, 0, 0, 0, 0, 56, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 26, 0, 69, 2, 0, 0, 0, 0, 55, - 0, 0, 0, 33, 0, 100, 0, 0, 0, 0, + 0, 26, 0, 71, 2, 0, 0, 0, 0, 55, + 0, 0, 0, 33, 0, 102, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 64, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, - 0, 90, 92, 0, 0, 0, 0, 0, 0, 0, + 0, 92, 94, 0, 0, 0, 0, 0, 0, 0, - 0, 40, 76, 0, 0, 0, 0, 0, 79, 0, + 0, 40, 78, 0, 0, 0, 0, 0, 81, 0, 9, 60, 0, 47, 0, 0, 0, 0, 0, 0, 0, 19, 0, 24, 0, 0, 34, 51, 0, 0, 0, 0, 0, 0, 35, 0, 0, 53, 0, 0, - 0, 0, 0, 0, 62, 0, 67, 45, 0, 0, - 61, 0, 0, 59, 8, 0, 0, 0, 0, 74, - 82, 77, 0, 0, 37, 0, 0, 0, 0, 0, - 81, 0, 15, 0, 63, 72, 91, 17, 0, 0, - 0, 0, 0, 70, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 62, 0, 69, 45, 0, 0, + 61, 0, 0, 59, 8, 0, 0, 0, 0, 76, + 84, 79, 0, 0, 37, 0, 0, 0, 0, 0, + 83, 0, 15, 0, 63, 74, 93, 17, 0, 0, + 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 46, 88, 0, 0, 21, 0, 50, 44, 0, - 0, 0, 75, 0, 78, 0, 0, 36, 0, 0, - 0, 0, 71, 0, 0, 86, 0, 0, 65, 89, - 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, - 66, 0, 0, 0, 0, 58, 0, 0, 0, 0, - 84, 52, 0, 99, 0, 73, 0, 85, 87, 80, - 83, 0 + 0, 46, 90, 0, 0, 21, 0, 50, 44, 0, + 0, 0, 0, 77, 0, 80, 0, 0, 36, 0, + 0, 0, 0, 73, 0, 0, 88, 0, 0, 65, + 0, 91, 0, 0, 0, 0, 0, 0, 0, 0, + 27, 0, 66, 0, 0, 0, 0, 0, 58, 0, + 0, 0, 0, 0, 86, 52, 0, 101, 0, 75, + 0, 87, 0, 89, 82, 85, 0, 67, 68, 0 } ; static yyconst int yy_ec[256] = @@ -386,200 +386,204 @@ static yyconst int yy_meta[41] = 5, 5, 5, 7, 7, 7, 5, 7, 7, 5 } ; -static yyconst short int yy_base[370] = +static yyconst short int yy_base[378] = { 0, - 0, 0, 417, 418, 414, 418, 411, 0, 0, 32, - 36, 43, 29, 381, 27, 38, 379, 47, 42, 50, - 62, 54, 391, 64, 77, 375, 389, 95, 72, 380, - 85, 85, 377, 405, 402, 418, 0, 0, 112, 0, - 127, 134, 418, 0, 385, 377, 382, 373, 46, 418, - 374, 118, 383, 374, 418, 370, 418, 363, 363, 359, - 418, 359, 363, 418, 357, 51, 359, 357, 354, 359, - 370, 351, 365, 357, 372, 360, 418, 358, 347, 350, - 338, 360, 102, 351, 86, 131, 358, 339, 343, 418, - 418, 136, 354, 342, 344, 352, 334, 329, 339, 332, + 0, 0, 425, 426, 422, 426, 419, 0, 0, 32, + 36, 43, 29, 389, 27, 38, 387, 47, 42, 50, + 62, 54, 399, 64, 77, 383, 397, 95, 72, 388, + 85, 85, 385, 413, 410, 426, 0, 0, 112, 0, + 127, 134, 426, 0, 393, 385, 390, 381, 46, 426, + 382, 118, 391, 382, 426, 378, 426, 371, 371, 367, + 426, 367, 371, 426, 365, 51, 367, 365, 362, 367, + 378, 359, 373, 365, 380, 368, 426, 366, 355, 358, + 346, 368, 102, 359, 86, 131, 366, 347, 351, 426, + 426, 136, 362, 350, 352, 360, 342, 337, 347, 340, - 329, 342, 337, 418, 0, 418, 0, 328, 418, 343, - 324, 418, 335, 336, 334, 320, 337, 418, 418, 318, - 321, 316, 331, 418, 418, 331, 418, 318, 312, 418, - 325, 418, 309, 324, 319, 321, 418, 82, 418, 320, - 319, 319, 327, 297, 307, 312, 306, 300, 297, 311, - 300, 304, 307, 418, 83, 289, 293, 294, 293, 418, - 304, 301, 302, 418, 303, 418, 298, 299, 284, 281, - 308, 288, 288, 278, 276, 303, 269, 274, 418, 291, - 299, 284, 287, 418, 270, 285, 262, 126, 266, 281, - 289, 418, 418, 280, 271, 268, 276, 258, 259, 270, + 337, 350, 345, 426, 0, 426, 0, 336, 426, 351, + 332, 426, 343, 344, 342, 328, 345, 426, 426, 326, + 329, 324, 339, 426, 426, 339, 426, 326, 320, 426, + 333, 426, 317, 332, 327, 329, 426, 82, 426, 328, + 327, 327, 335, 305, 315, 320, 314, 308, 305, 319, + 308, 312, 315, 426, 83, 297, 301, 302, 301, 426, + 312, 309, 310, 426, 311, 426, 306, 307, 292, 289, + 316, 296, 296, 286, 284, 311, 277, 282, 426, 299, + 307, 292, 295, 426, 278, 293, 270, 126, 274, 289, + 297, 426, 426, 288, 279, 276, 284, 266, 267, 278, - 250, 418, 418, 256, 254, 252, 267, 257, 418, 249, - 258, 418, 275, 418, 260, 245, 262, 254, 256, 255, - 250, 418, 245, 418, 252, 244, 418, 237, 251, 247, - 261, 240, 230, 239, 418, 230, 230, 418, 231, 252, - 234, 230, 228, 240, 249, 238, 418, 418, 234, 218, - 418, 221, 230, 418, 418, 69, 243, 230, 222, 418, - 418, 418, 218, 210, 418, 224, 223, 212, 212, 222, - 418, 212, 418, 199, 418, 418, 418, 418, 215, 214, - 217, 201, 206, 418, 212, 196, 203, 199, 208, 198, - 203, 418, 204, 204, 196, 195, 186, 188, 196, 198, + 258, 426, 426, 264, 262, 260, 275, 265, 426, 257, + 266, 426, 283, 426, 268, 253, 270, 262, 264, 263, + 258, 426, 253, 426, 260, 252, 426, 245, 259, 255, + 269, 248, 238, 247, 426, 238, 238, 426, 239, 260, + 242, 238, 236, 248, 257, 246, 426, 426, 242, 226, + 426, 229, 238, 426, 426, 69, 251, 238, 230, 426, + 426, 426, 226, 218, 426, 232, 231, 220, 220, 230, + 426, 220, 426, 207, 426, 426, 426, 426, 223, 222, + 225, 209, 214, 426, 220, 204, 211, 207, 216, 95, + 212, 426, 213, 213, 205, 204, 195, 197, 205, 207, - 190, 418, 418, 191, 181, 418, 182, 418, 418, 178, - 185, 112, 418, 182, 418, 181, 192, 418, 171, 187, - 178, 187, 418, 139, 159, 418, 162, 159, 418, 418, - 141, 144, 153, 150, 133, 137, 145, 138, 418, 129, - 418, 121, 139, 126, 132, 418, 101, 100, 96, 77, - 418, 418, 95, 418, 66, 418, 27, 418, 418, 418, - 418, 418, 172, 179, 183, 188, 193, 195, 200 + 199, 426, 426, 200, 190, 426, 191, 426, 426, 187, + 194, 112, 200, 426, 190, 426, 189, 200, 426, 179, + 195, 186, 196, 426, 139, 179, 426, 182, 189, 426, + 187, 426, 176, 181, 190, 186, 158, 162, 162, 149, + 426, 138, 426, 163, 129, 147, 131, 137, 426, 135, + 135, 130, 118, 96, 426, 426, 97, 426, 81, 426, + 77, 426, 138, 426, 426, 426, 28, 426, 426, 426, + 172, 179, 183, 188, 193, 195, 200 } ; -static yyconst short int yy_def[370] = +static yyconst short int yy_def[378] = { 0, - 362, 1, 362, 362, 362, 362, 363, 364, 365, 366, - 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, - 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, - 362, 362, 362, 362, 363, 362, 364, 367, 366, 368, - 362, 362, 362, 369, 362, 362, 362, 362, 362, 362, - 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, - 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, - 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, - 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, - 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, + 370, 1, 370, 370, 370, 370, 371, 372, 373, 374, + 370, 370, 370, 370, 370, 370, 370, 370, 370, 370, + 370, 370, 370, 370, 370, 370, 370, 370, 370, 370, + 370, 370, 370, 370, 371, 370, 372, 375, 374, 376, + 370, 370, 370, 377, 370, 370, 370, 370, 370, 370, + 370, 370, 370, 370, 370, 370, 370, 370, 370, 370, + 370, 370, 370, 370, 370, 370, 370, 370, 370, 370, + 370, 370, 370, 370, 370, 370, 370, 370, 370, 370, + 370, 370, 370, 370, 370, 370, 370, 370, 370, 370, + 370, 370, 370, 370, 370, 370, 370, 370, 370, 370, - 362, 362, 362, 362, 367, 362, 369, 362, 362, 362, - 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, - 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, - 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, - 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, - 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, - 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, - 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, - 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, - 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, + 370, 370, 370, 370, 375, 370, 377, 370, 370, 370, + 370, 370, 370, 370, 370, 370, 370, 370, 370, 370, + 370, 370, 370, 370, 370, 370, 370, 370, 370, 370, + 370, 370, 370, 370, 370, 370, 370, 370, 370, 370, + 370, 370, 370, 370, 370, 370, 370, 370, 370, 370, + 370, 370, 370, 370, 370, 370, 370, 370, 370, 370, + 370, 370, 370, 370, 370, 370, 370, 370, 370, 370, + 370, 370, 370, 370, 370, 370, 370, 370, 370, 370, + 370, 370, 370, 370, 370, 370, 370, 370, 370, 370, + 370, 370, 370, 370, 370, 370, 370, 370, 370, 370, - 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, - 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, - 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, - 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, - 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, - 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, - 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, - 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, - 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, - 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, + 370, 370, 370, 370, 370, 370, 370, 370, 370, 370, + 370, 370, 370, 370, 370, 370, 370, 370, 370, 370, + 370, 370, 370, 370, 370, 370, 370, 370, 370, 370, + 370, 370, 370, 370, 370, 370, 370, 370, 370, 370, + 370, 370, 370, 370, 370, 370, 370, 370, 370, 370, + 370, 370, 370, 370, 370, 370, 370, 370, 370, 370, + 370, 370, 370, 370, 370, 370, 370, 370, 370, 370, + 370, 370, 370, 370, 370, 370, 370, 370, 370, 370, + 370, 370, 370, 370, 370, 370, 370, 370, 370, 370, + 370, 370, 370, 370, 370, 370, 370, 370, 370, 370, - 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, - 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, - 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, - 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, - 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, - 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, - 362, 0, 362, 362, 362, 362, 362, 362, 362 + 370, 370, 370, 370, 370, 370, 370, 370, 370, 370, + 370, 370, 370, 370, 370, 370, 370, 370, 370, 370, + 370, 370, 370, 370, 370, 370, 370, 370, 370, 370, + 370, 370, 370, 370, 370, 370, 370, 370, 370, 370, + 370, 370, 370, 370, 370, 370, 370, 370, 370, 370, + 370, 370, 370, 370, 370, 370, 370, 370, 370, 370, + 370, 370, 370, 370, 370, 370, 370, 370, 370, 0, + 370, 370, 370, 370, 370, 370, 370 } ; -static yyconst short int yy_nxt[459] = +static yyconst short int yy_nxt[467] = { 0, 4, 5, 6, 7, 8, 9, 4, 10, 11, 12, 12, 12, 4, 4, 4, 4, 13, 14, 15, 16, 17, 18, 19, 4, 20, 4, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 4, - 39, 39, 39, 39, 41, 41, 41, 42, 45, 361, + 39, 39, 39, 39, 41, 41, 41, 42, 45, 369, 43, 42, 42, 42, 42, 46, 48, 43, 51, 49, 50, 62, 52, 58, 112, 53, 113, 54, 63, 65, 72, 55, 128, 56, 44, 64, 59, 60, 66, 68, 61, 69, 67, 73, 129, 76, 70, 288, 95, 74, - 191, 71, 77, 78, 79, 99, 289, 80, 207, 360, + 191, 71, 77, 78, 79, 99, 289, 80, 207, 366, 81, 101, 100, 82, 96, 97, 148, 192, 102, 83, - 149, 84, 87, 208, 359, 88, 358, 103, 89, 90, - 39, 39, 39, 39, 357, 356, 145, 355, 91, 92, - 93, 146, 236, 328, 94, 41, 41, 41, 42, 115, - 329, 43, 42, 42, 42, 42, 237, 150, 43, 151, - 116, 117, 157, 152, 118, 337, 158, 354, 353, 352, - 351, 350, 349, 348, 153, 159, 347, 346, 345, 344, - 343, 338, 35, 342, 35, 35, 35, 35, 35, 37, - 341, 37, 37, 37, 37, 37, 38, 38, 38, 38, - 40, 340, 339, 40, 40, 105, 105, 105, 105, 105, + 149, 84, 87, 208, 365, 88, 364, 103, 89, 90, + 39, 39, 39, 39, 312, 363, 145, 313, 91, 92, + 93, 146, 236, 329, 94, 41, 41, 41, 42, 115, + 330, 43, 42, 42, 42, 42, 237, 150, 43, 151, + 116, 117, 157, 152, 118, 339, 158, 362, 361, 367, + 360, 359, 358, 357, 153, 159, 368, 356, 355, 354, + 353, 340, 35, 352, 35, 35, 35, 35, 35, 37, + 351, 37, 37, 37, 37, 37, 38, 38, 38, 38, + 40, 350, 349, 40, 40, 105, 105, 105, 105, 105, - 106, 106, 107, 107, 336, 107, 335, 334, 333, 332, - 331, 330, 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, - 287, 286, 285, 284, 283, 282, 281, 280, 279, 278, - 277, 276, 275, 274, 273, 272, 271, 270, 269, 268, - 267, 266, 265, 264, 263, 262, 261, 260, 259, 258, - 257, 256, 255, 254, 253, 252, 251, 250, 249, 248, - 247, 246, 245, 244, 243, 242, 241, 240, 239, 238, + 106, 106, 107, 107, 348, 107, 347, 346, 345, 344, + 343, 342, 341, 338, 337, 336, 335, 334, 333, 332, + 331, 328, 327, 326, 325, 324, 323, 322, 321, 320, + 319, 318, 317, 316, 315, 314, 311, 310, 309, 308, + 307, 306, 305, 304, 303, 302, 301, 300, 299, 298, + 297, 296, 295, 294, 293, 292, 291, 290, 287, 286, + 285, 284, 283, 282, 281, 280, 279, 278, 277, 276, + 275, 274, 273, 272, 271, 270, 269, 268, 267, 266, + 265, 264, 263, 262, 261, 260, 259, 258, 257, 256, + 255, 254, 253, 252, 251, 250, 249, 248, 247, 246, - 235, 234, 233, 232, 231, 230, 229, 228, 227, 226, - 225, 224, 223, 222, 221, 220, 219, 218, 217, 216, - 215, 214, 213, 212, 211, 210, 209, 206, 205, 204, - 203, 202, 201, 200, 199, 198, 197, 196, 195, 194, - 193, 190, 189, 188, 187, 186, 185, 184, 183, 182, - 181, 180, 179, 178, 177, 176, 175, 174, 173, 172, - 171, 170, 169, 168, 167, 166, 165, 164, 163, 162, - 161, 160, 156, 155, 154, 147, 144, 143, 142, 141, - 140, 139, 138, 137, 136, 135, 134, 133, 132, 131, - 130, 127, 126, 125, 124, 123, 122, 121, 120, 119, + 245, 244, 243, 242, 241, 240, 239, 238, 235, 234, + 233, 232, 231, 230, 229, 228, 227, 226, 225, 224, + 223, 222, 221, 220, 219, 218, 217, 216, 215, 214, + 213, 212, 211, 210, 209, 206, 205, 204, 203, 202, + 201, 200, 199, 198, 197, 196, 195, 194, 193, 190, + 189, 188, 187, 186, 185, 184, 183, 182, 181, 180, + 179, 178, 177, 176, 175, 174, 173, 172, 171, 170, + 169, 168, 167, 166, 165, 164, 163, 162, 161, 160, + 156, 155, 154, 147, 144, 143, 142, 141, 140, 139, + 138, 137, 136, 135, 134, 133, 132, 131, 130, 127, - 114, 111, 110, 109, 108, 36, 34, 104, 98, 86, - 85, 75, 57, 47, 36, 34, 362, 3, 362, 362, - 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, - 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, - 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, - 362, 362, 362, 362, 362, 362, 362, 362 + 126, 125, 124, 123, 122, 121, 120, 119, 114, 111, + 110, 109, 108, 36, 34, 104, 98, 86, 85, 75, + 57, 47, 36, 34, 370, 3, 370, 370, 370, 370, + 370, 370, 370, 370, 370, 370, 370, 370, 370, 370, + 370, 370, 370, 370, 370, 370, 370, 370, 370, 370, + 370, 370, 370, 370, 370, 370, 370, 370, 370, 370, + 370, 370, 370, 370, 370, 370 } ; -static yyconst short int yy_chk[459] = +static yyconst short int yy_chk[467] = { 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, - 10, 10, 10, 10, 11, 11, 11, 11, 13, 357, + 10, 10, 10, 10, 11, 11, 11, 11, 13, 367, 11, 12, 12, 12, 12, 13, 15, 12, 16, 15, 15, 19, 16, 18, 49, 16, 49, 16, 19, 20, 22, 16, 66, 16, 11, 19, 18, 18, 20, 21, 18, 21, 20, 22, 66, 24, 21, 256, 29, 22, - 138, 21, 24, 25, 25, 31, 256, 25, 155, 355, + 138, 21, 24, 25, 25, 31, 256, 25, 155, 361, 25, 32, 31, 25, 29, 29, 85, 138, 32, 25, - 85, 25, 28, 155, 353, 28, 350, 32, 28, 28, - 39, 39, 39, 39, 349, 348, 83, 347, 28, 28, + 85, 25, 28, 155, 359, 28, 357, 32, 28, 28, + 39, 39, 39, 39, 290, 354, 83, 290, 28, 28, 28, 83, 188, 312, 28, 41, 41, 41, 41, 52, 312, 41, 42, 42, 42, 42, 188, 86, 42, 86, - 52, 52, 92, 86, 52, 324, 92, 345, 344, 343, - 342, 340, 338, 337, 86, 92, 336, 335, 334, 333, - 332, 324, 363, 331, 363, 363, 363, 363, 363, 364, - 328, 364, 364, 364, 364, 364, 365, 365, 365, 365, - 366, 327, 325, 366, 366, 367, 367, 367, 367, 367, + 52, 52, 92, 86, 52, 325, 92, 353, 352, 363, + 351, 350, 348, 347, 86, 92, 363, 346, 345, 344, + 342, 325, 371, 340, 371, 371, 371, 371, 371, 372, + 339, 372, 372, 372, 372, 372, 373, 373, 373, 373, + 374, 338, 337, 374, 374, 375, 375, 375, 375, 375, - 368, 368, 369, 369, 322, 369, 321, 320, 319, 317, - 316, 314, 311, 310, 307, 305, 304, 301, 300, 299, - 298, 297, 296, 295, 294, 293, 291, 290, 289, 288, - 287, 286, 285, 283, 282, 281, 280, 279, 274, 272, - 270, 269, 268, 267, 266, 264, 263, 259, 258, 257, - 253, 252, 250, 249, 246, 245, 244, 243, 242, 241, - 240, 239, 237, 236, 234, 233, 232, 231, 230, 229, - 228, 226, 225, 223, 221, 220, 219, 218, 217, 216, - 215, 213, 211, 210, 208, 207, 206, 205, 204, 201, - 200, 199, 198, 197, 196, 195, 194, 191, 190, 189, + 376, 376, 377, 377, 336, 377, 335, 334, 333, 331, + 329, 328, 326, 323, 322, 321, 320, 318, 317, 315, + 313, 311, 310, 307, 305, 304, 301, 300, 299, 298, + 297, 296, 295, 294, 293, 291, 289, 288, 287, 286, + 285, 283, 282, 281, 280, 279, 274, 272, 270, 269, + 268, 267, 266, 264, 263, 259, 258, 257, 253, 252, + 250, 249, 246, 245, 244, 243, 242, 241, 240, 239, + 237, 236, 234, 233, 232, 231, 230, 229, 228, 226, + 225, 223, 221, 220, 219, 218, 217, 216, 215, 213, + 211, 210, 208, 207, 206, 205, 204, 201, 200, 199, - 187, 186, 185, 183, 182, 181, 180, 178, 177, 176, - 175, 174, 173, 172, 171, 170, 169, 168, 167, 165, - 163, 162, 161, 159, 158, 157, 156, 153, 152, 151, - 150, 149, 148, 147, 146, 145, 144, 143, 142, 141, - 140, 136, 135, 134, 133, 131, 129, 128, 126, 123, - 122, 121, 120, 117, 116, 115, 114, 113, 111, 110, - 108, 103, 102, 101, 100, 99, 98, 97, 96, 95, - 94, 93, 89, 88, 87, 84, 82, 81, 80, 79, - 78, 76, 75, 74, 73, 72, 71, 70, 69, 68, - 67, 65, 63, 62, 60, 59, 58, 56, 54, 53, + 198, 197, 196, 195, 194, 191, 190, 189, 187, 186, + 185, 183, 182, 181, 180, 178, 177, 176, 175, 174, + 173, 172, 171, 170, 169, 168, 167, 165, 163, 162, + 161, 159, 158, 157, 156, 153, 152, 151, 150, 149, + 148, 147, 146, 145, 144, 143, 142, 141, 140, 136, + 135, 134, 133, 131, 129, 128, 126, 123, 122, 121, + 120, 117, 116, 115, 114, 113, 111, 110, 108, 103, + 102, 101, 100, 99, 98, 97, 96, 95, 94, 93, + 89, 88, 87, 84, 82, 81, 80, 79, 78, 76, + 75, 74, 73, 72, 71, 70, 69, 68, 67, 65, - 51, 48, 47, 46, 45, 35, 34, 33, 30, 27, - 26, 23, 17, 14, 7, 5, 3, 362, 362, 362, - 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, - 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, - 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, - 362, 362, 362, 362, 362, 362, 362, 362 + 63, 62, 60, 59, 58, 56, 54, 53, 51, 48, + 47, 46, 45, 35, 34, 33, 30, 27, 26, 23, + 17, 14, 7, 5, 3, 370, 370, 370, 370, 370, + 370, 370, 370, 370, 370, 370, 370, 370, 370, 370, + 370, 370, 370, 370, 370, 370, 370, 370, 370, 370, + 370, 370, 370, 370, 370, 370, 370, 370, 370, 370, + 370, 370, 370, 370, 370, 370 } ; static yy_state_type yy_last_accepting_state; @@ -597,7 +601,7 @@ char *yytext; #define INITIAL 0 #line 2 "lexer.l" ///////////////////////////////////////////////////////////////////////// -// $Id: lexer.c,v 1.8 2001-10-03 13:10:37 bdenney Exp $ +// $Id: lexer.c,v 1.9 2001-11-28 18:40:02 instinc Exp $ ///////////////////////////////////////////////////////////////////////// #include @@ -758,7 +762,7 @@ YY_MALLOC_DECL YY_DECL { register yy_state_type yy_current_state; - register char *yy_cp = NULL, *yy_bp = NULL; + register char *yy_cp, *yy_bp; register int yy_act; #line 20 "lexer.l" @@ -813,13 +817,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 >= 363 ) + if ( yy_current_state >= 371 ) 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] != 418 ); + while ( yy_base[yy_current_state] != 426 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -1154,187 +1158,187 @@ YY_RULE_SETUP case 67: YY_RULE_SETUP #line 87 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_PTIME); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_TRACEREGON); } YY_BREAK case 68: YY_RULE_SETUP #line 88 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_TIMEBP); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_TRACEREGOFF); } YY_BREAK case 69: YY_RULE_SETUP #line 89 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_TIMEBP_ABSOLUTE); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_PTIME); } YY_BREAK case 70: YY_RULE_SETUP #line 90 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_RECORD); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_TIMEBP); } YY_BREAK case 71: YY_RULE_SETUP #line 91 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_PLAYBACK); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_TIMEBP_ABSOLUTE); } YY_BREAK case 72: YY_RULE_SETUP #line 92 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_MODEBP); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_RECORD); } YY_BREAK case 73: YY_RULE_SETUP #line 93 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_PRINT_STACK); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_PLAYBACK); } YY_BREAK case 74: YY_RULE_SETUP #line 94 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_WATCH); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_MODEBP); } YY_BREAK case 75: YY_RULE_SETUP #line 95 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_UNWATCH); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_PRINT_STACK); } YY_BREAK case 76: YY_RULE_SETUP #line 96 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_READ); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_WATCH); } YY_BREAK case 77: YY_RULE_SETUP #line 97 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_WRITE); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_UNWATCH); } YY_BREAK case 78: YY_RULE_SETUP #line 98 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_CONTINUE); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_READ); } YY_BREAK case 79: YY_RULE_SETUP #line 99 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_SHOW); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_WRITE); } YY_BREAK case 80: YY_RULE_SETUP #line 100 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_SYMBOL); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_CONTINUE); } YY_BREAK case 81: YY_RULE_SETUP #line 101 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_GLOBAL); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_SHOW); } YY_BREAK case 82: YY_RULE_SETUP #line 102 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_WHERE); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_SYMBOL); } YY_BREAK case 83: YY_RULE_SETUP #line 103 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_PRINT_STRING); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_GLOBAL); } YY_BREAK case 84: YY_RULE_SETUP #line 104 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_DIFF_MEMORY); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_WHERE); } YY_BREAK case 85: YY_RULE_SETUP #line 105 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_SYNC_MEMORY); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_PRINT_STRING); } YY_BREAK case 86: YY_RULE_SETUP #line 106 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_SYNC_CPU); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_DIFF_MEMORY); } YY_BREAK case 87: YY_RULE_SETUP #line 107 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_FAST_FORWARD); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_SYNC_MEMORY); } YY_BREAK case 88: YY_RULE_SETUP #line 108 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_PHY_2_LOG); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_SYNC_CPU); } YY_BREAK case 89: YY_RULE_SETUP #line 109 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_INFO_ADDRESS); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_FAST_FORWARD); } YY_BREAK case 90: YY_RULE_SETUP #line 110 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_NE2000); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_PHY_2_LOG); } YY_BREAK case 91: YY_RULE_SETUP #line 111 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_NE2000); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_INFO_ADDRESS); } YY_BREAK case 92: YY_RULE_SETUP #line 112 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_PAGE); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_NE2000); } YY_BREAK case 93: YY_RULE_SETUP #line 113 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_CS); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_NE2000); } YY_BREAK case 94: YY_RULE_SETUP #line 114 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_ES); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_PAGE); } YY_BREAK case 95: YY_RULE_SETUP #line 115 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_SS); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_CS); } YY_BREAK case 96: YY_RULE_SETUP #line 116 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_DS); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_ES); } YY_BREAK case 97: YY_RULE_SETUP #line 117 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_FS); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_SS); } YY_BREAK case 98: YY_RULE_SETUP #line 118 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_GS); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_DS); } YY_BREAK case 99: YY_RULE_SETUP #line 119 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_ALWAYS_CHECK); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_FS); } YY_BREAK case 100: YY_RULE_SETUP #line 120 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_V2L); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_GS); } YY_BREAK case 101: YY_RULE_SETUP #line 121 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_STRING); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_ALWAYS_CHECK); } YY_BREAK case 102: YY_RULE_SETUP #line 122 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_XFORMAT); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_V2L); } YY_BREAK case 103: YY_RULE_SETUP #line 123 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_XFORMAT); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_STRING); } YY_BREAK case 104: YY_RULE_SETUP @@ -1344,46 +1348,56 @@ YY_RULE_SETUP case 105: YY_RULE_SETUP #line 125 "lexer.l" -{ bxlval.uval = strtoul(bxtext+2, NULL, 16); return(BX_TOKEN_NUMERIC); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_XFORMAT); } YY_BREAK case 106: YY_RULE_SETUP #line 126 "lexer.l" -{ bxlval.uval = strtoul(bxtext+1, NULL, 8); return(BX_TOKEN_NUMERIC); } +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_XFORMAT); } YY_BREAK case 107: YY_RULE_SETUP #line 127 "lexer.l" -{ bxlval.ulval = strtoull(bxtext, NULL, 10); return(BX_TOKEN_LONG_NUMERIC); } +{ bxlval.uval = strtoul(bxtext+2, NULL, 16); return(BX_TOKEN_NUMERIC); } YY_BREAK case 108: YY_RULE_SETUP #line 128 "lexer.l" -{ bxlval.uval = strtoul(bxtext, NULL, 10); return(BX_TOKEN_NUMERIC); } +{ bxlval.uval = strtoul(bxtext+1, NULL, 8); return(BX_TOKEN_NUMERIC); } YY_BREAK case 109: YY_RULE_SETUP #line 129 "lexer.l" -{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_SYMBOLNAME); } +{ bxlval.ulval = strtoull(bxtext, NULL, 10); return(BX_TOKEN_LONG_NUMERIC); } YY_BREAK case 110: YY_RULE_SETUP #line 130 "lexer.l" -{ return('\n'); } +{ bxlval.uval = strtoul(bxtext, NULL, 10); return(BX_TOKEN_NUMERIC); } YY_BREAK case 111: YY_RULE_SETUP #line 131 "lexer.l" -; // eat up comments '//' +{ bxlval.sval = strdup(bxtext); return(BX_TOKEN_SYMBOLNAME); } YY_BREAK case 112: YY_RULE_SETUP #line 132 "lexer.l" -{ return(bxtext[0]); } +{ return('\n'); } YY_BREAK case 113: YY_RULE_SETUP #line 133 "lexer.l" +; // eat up comments '//' + YY_BREAK +case 114: +YY_RULE_SETUP +#line 134 "lexer.l" +{ return(bxtext[0]); } + YY_BREAK +case 115: +YY_RULE_SETUP +#line 135 "lexer.l" ECHO; YY_BREAK case YY_STATE_EOF(INITIAL): @@ -1677,7 +1691,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 >= 363 ) + if ( yy_current_state >= 371 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -1712,11 +1726,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 >= 363 ) + if ( yy_current_state >= 371 ) 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 == 362); + yy_is_jam = (yy_current_state == 370); return yy_is_jam ? 0 : yy_current_state; } @@ -2271,7 +2285,7 @@ int main() return 0; } #endif -#line 133 "lexer.l" +#line 135 "lexer.l" // [A-Za-z_][A-Za-z0-9_]* { bxlval.sval = strdup(bxtext); return(BX_TOKEN_GENERIC); } diff --git a/bochs/debug/parser.c b/bochs/debug/parser.c index 8a4182464..47eb36428 100644 --- a/bochs/debug/parser.c +++ b/bochs/debug/parser.c @@ -1,45 +1,116 @@ -#ifndef lint -static char yysccsid[] = "@(#)yaccpar 1.9 (Berkeley) 02/21/93"; -#endif -#define YYBYACC 1 -#define YYMAJOR 1 -#define YYMINOR 9 -#define yyclearin (yychar=(-1)) -#define yyerrok (yyerrflag=0) -#define YYRECOVERING (yyerrflag!=0) + +/* A Bison parser, made from parser.y + by GNU Bison version 1.28 */ + +#define YYBISON 1 /* Identify Bison output. */ + #define yyparse bxparse #define yylex bxlex #define yyerror bxerror -#define yychar bxchar -#define yyval bxval #define yylval bxlval +#define yychar bxchar #define yydebug bxdebug #define yynerrs bxnerrs -#define yyerrflag bxerrflag -#define yyss bxss -#define yyssp bxssp -#define yyvs bxvs -#define yyvsp bxvsp -#define yylhs bxlhs -#define yylen bxlen -#define yydefred bxdefred -#define yydgoto bxdgoto -#define yysindex bxsindex -#define yyrindex bxrindex -#define yygindex bxgindex -#define yytable bxtable -#define yycheck bxcheck -#define yyname bxname -#define yyrule bxrule -#define YYPREFIX "bx" -#line 6 "parser.y" +#define BX_TOKEN_CONTINUE 257 +#define BX_TOKEN_STEPN 258 +#define BX_TOKEN_NEXT_STEP 259 +#define BX_TOKEN_SET 260 +#define BX_TOKEN_DEBUGGER 261 +#define BX_TOKEN_VBREAKPOINT 262 +#define BX_TOKEN_LBREAKPOINT 263 +#define BX_TOKEN_PBREAKPOINT 264 +#define BX_TOKEN_DEL_BREAKPOINT 265 +#define BX_TOKEN_INFO 266 +#define BX_TOKEN_QUIT 267 +#define BX_TOKEN_PROGRAM 268 +#define BX_TOKEN_REGISTERS 269 +#define BX_TOKEN_FPU 270 +#define BX_TOKEN_ALL 271 +#define BX_TOKEN_IDT 272 +#define BX_TOKEN_GDT 273 +#define BX_TOKEN_LDT 274 +#define BX_TOKEN_TSS 275 +#define BX_TOKEN_DIRTY 276 +#define BX_TOKEN_LINUX 277 +#define BX_TOKEN_CONTROL_REGS 278 +#define BX_TOKEN_EXAMINE 279 +#define BX_TOKEN_XFORMAT 280 +#define BX_TOKEN_SETPMEM 281 +#define BX_TOKEN_SYMBOLNAME 282 +#define BX_TOKEN_QUERY 283 +#define BX_TOKEN_PENDING 284 +#define BX_TOKEN_TAKE 285 +#define BX_TOKEN_DMA 286 +#define BX_TOKEN_IRQ 287 +#define BX_TOKEN_DUMP_CPU 288 +#define BX_TOKEN_SET_CPU 289 +#define BX_TOKEN_DIS 290 +#define BX_TOKEN_ON 291 +#define BX_TOKEN_OFF 292 +#define BX_TOKEN_DISASSEMBLE 293 +#define BX_TOKEN_INSTRUMENT 294 +#define BX_TOKEN_START 295 +#define BX_TOKEN_STOP 296 +#define BX_TOKEN_RESET 297 +#define BX_TOKEN_PRINT 298 +#define BX_TOKEN_LOADER 299 +#define BX_TOKEN_STRING 300 +#define BX_TOKEN_DOIT 301 +#define BX_TOKEN_CRC 302 +#define BX_TOKEN_TRACEON 303 +#define BX_TOKEN_TRACEOFF 304 +#define BX_TOKEN_PTIME 305 +#define BX_TOKEN_TIMEBP_ABSOLUTE 306 +#define BX_TOKEN_TIMEBP 307 +#define BX_TOKEN_RECORD 308 +#define BX_TOKEN_PLAYBACK 309 +#define BX_TOKEN_MODEBP 310 +#define BX_TOKEN_PRINT_STACK 311 +#define BX_TOKEN_WATCH 312 +#define BX_TOKEN_UNWATCH 313 +#define BX_TOKEN_READ 314 +#define BX_TOKEN_WRITE 315 +#define BX_TOKEN_SHOW 316 +#define BX_TOKEN_SYMBOL 317 +#define BX_TOKEN_GLOBAL 318 +#define BX_TOKEN_WHERE 319 +#define BX_TOKEN_PRINT_STRING 320 +#define BX_TOKEN_DIFF_MEMORY 321 +#define BX_TOKEN_SYNC_MEMORY 322 +#define BX_TOKEN_SYNC_CPU 323 +#define BX_TOKEN_FAST_FORWARD 324 +#define BX_TOKEN_PHY_2_LOG 325 +#define BX_TOKEN_NUMERIC 326 +#define BX_TOKEN_LONG_NUMERIC 327 +#define BX_TOKEN_INFO_ADDRESS 328 +#define BX_TOKEN_NE2000 329 +#define BX_TOKEN_PAGE 330 +#define BX_TOKEN_CS 331 +#define BX_TOKEN_ES 332 +#define BX_TOKEN_SS 333 +#define BX_TOKEN_DS 334 +#define BX_TOKEN_FS 335 +#define BX_TOKEN_GS 336 +#define BX_TOKEN_ALWAYS_CHECK 337 +#define BX_TOKEN_MATHS 338 +#define BX_TOKEN_ADD 339 +#define BX_TOKEN_SUB 340 +#define BX_TOKEN_MUL 341 +#define BX_TOKEN_DIV 342 +#define BX_TOKEN_V2L 343 +#define BX_TOKEN_TRACEREGON 344 +#define BX_TOKEN_TRACEREGOFF 345 + +#line 5 "parser.y" + #include #include #include "debug.h" -/* %left '-' '+'*/ -/* %left '*' '/'*/ -/* %right*/ -/* %nonassoc UMINUS*/ +// %left '-' '+' +// %left '*' '/' +// %right +// %nonassoc UMINUS + #line 16 "parser.y" typedef union { char *sval; @@ -47,1413 +118,1856 @@ typedef union { Bit64u ulval; bx_num_range uval_range; } YYSTYPE; -#line 51 "y.tab.c" -#define BX_TOKEN_CONTINUE 257 -#define BX_TOKEN_STEPN 258 -#define BX_TOKEN_NEXT_STEP 259 -#define BX_TOKEN_SET 260 -#define BX_TOKEN_DEBUGGER 261 -#define BX_TOKEN_VBREAKPOINT 262 -#define BX_TOKEN_LBREAKPOINT 263 -#define BX_TOKEN_PBREAKPOINT 264 -#define BX_TOKEN_DEL_BREAKPOINT 265 -#define BX_TOKEN_INFO 266 -#define BX_TOKEN_QUIT 267 -#define BX_TOKEN_PROGRAM 268 -#define BX_TOKEN_REGISTERS 269 -#define BX_TOKEN_FPU 270 -#define BX_TOKEN_ALL 271 -#define BX_TOKEN_IDT 272 -#define BX_TOKEN_GDT 273 -#define BX_TOKEN_LDT 274 -#define BX_TOKEN_TSS 275 -#define BX_TOKEN_DIRTY 276 -#define BX_TOKEN_LINUX 277 -#define BX_TOKEN_CONTROL_REGS 278 -#define BX_TOKEN_EXAMINE 279 -#define BX_TOKEN_XFORMAT 280 -#define BX_TOKEN_SETPMEM 281 -#define BX_TOKEN_SYMBOLNAME 282 -#define BX_TOKEN_QUERY 283 -#define BX_TOKEN_PENDING 284 -#define BX_TOKEN_TAKE 285 -#define BX_TOKEN_DMA 286 -#define BX_TOKEN_IRQ 287 -#define BX_TOKEN_DUMP_CPU 288 -#define BX_TOKEN_SET_CPU 289 -#define BX_TOKEN_DIS 290 -#define BX_TOKEN_ON 291 -#define BX_TOKEN_OFF 292 -#define BX_TOKEN_DISASSEMBLE 293 -#define BX_TOKEN_INSTRUMENT 294 -#define BX_TOKEN_START 295 -#define BX_TOKEN_STOP 296 -#define BX_TOKEN_RESET 297 -#define BX_TOKEN_PRINT 298 -#define BX_TOKEN_LOADER 299 -#define BX_TOKEN_STRING 300 -#define BX_TOKEN_DOIT 301 -#define BX_TOKEN_CRC 302 -#define BX_TOKEN_TRACEON 303 -#define BX_TOKEN_TRACEOFF 304 -#define BX_TOKEN_PTIME 305 -#define BX_TOKEN_TIMEBP_ABSOLUTE 306 -#define BX_TOKEN_TIMEBP 307 -#define BX_TOKEN_RECORD 308 -#define BX_TOKEN_PLAYBACK 309 -#define BX_TOKEN_MODEBP 310 -#define BX_TOKEN_PRINT_STACK 311 -#define BX_TOKEN_WATCH 312 -#define BX_TOKEN_UNWATCH 313 -#define BX_TOKEN_READ 314 -#define BX_TOKEN_WRITE 315 -#define BX_TOKEN_SHOW 316 -#define BX_TOKEN_SYMBOL 317 -#define BX_TOKEN_GLOBAL 318 -#define BX_TOKEN_WHERE 319 -#define BX_TOKEN_PRINT_STRING 320 -#define BX_TOKEN_DIFF_MEMORY 321 -#define BX_TOKEN_SYNC_MEMORY 322 -#define BX_TOKEN_SYNC_CPU 323 -#define BX_TOKEN_FAST_FORWARD 324 -#define BX_TOKEN_PHY_2_LOG 325 -#define BX_TOKEN_NUMERIC 326 -#define BX_TOKEN_LONG_NUMERIC 327 -#define BX_TOKEN_INFO_ADDRESS 328 -#define BX_TOKEN_NE2000 329 -#define BX_TOKEN_PAGE 330 -#define BX_TOKEN_CS 331 -#define BX_TOKEN_ES 332 -#define BX_TOKEN_SS 333 -#define BX_TOKEN_DS 334 -#define BX_TOKEN_FS 335 -#define BX_TOKEN_GS 336 -#define BX_TOKEN_ALWAYS_CHECK 337 -#define BX_TOKEN_MATHS 338 -#define BX_TOKEN_ADD 339 -#define BX_TOKEN_SUB 340 -#define BX_TOKEN_MUL 341 -#define BX_TOKEN_DIV 342 -#define BX_TOKEN_V2L 343 -#define YYERRCODE 256 -short bxlhs[] = { -1, - 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, 37, 37, 37, 37, - 37, 37, 37, 37, 37, 37, 1, 1, 1, 1, - 1, 1, 27, 27, 28, 29, 30, 30, 33, 33, - 26, 24, 25, 31, 31, 32, 32, 32, 32, 32, - 32, 32, 32, 34, 34, 34, 35, 36, 5, 6, - 6, 7, 7, 7, 8, 8, 8, 8, 8, 8, - 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 2, 2, 4, 4, - 3, 3, 3, 10, 11, 12, 13, 13, 13, 13, - 14, 15, 16, 16, 16, 17, 18, 19, 19, 19, - 19, 20, 21, 22, 23, 23, 23, 23, 23, 38, -}; -short bxlen[] = { 2, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 0, 1, 2, 3, 3, 3, - 3, 3, 3, 5, 4, 4, 1, 1, 1, 1, - 1, 1, 3, 3, 3, 3, 3, 2, 3, 2, - 2, 2, 2, 2, 3, 3, 3, 2, 2, 4, - 4, 4, 4, 3, 4, 5, 2, 3, 2, 2, - 3, 4, 4, 5, 2, 5, 2, 3, 2, 3, - 4, 3, 3, 3, 3, 3, 3, 4, 4, 4, - 4, 3, 3, 3, 5, 7, 0, 1, 0, 1, - 1, 2, 3, 2, 3, 2, 4, 3, 3, 2, - 5, 3, 3, 4, 3, 2, 3, 3, 3, 3, - 3, 3, 3, 4, 5, 5, 5, 5, 3, 5, -}; -short bxdefred[] = { 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 36, 0, 1, 2, 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, - 79, 0, 80, 0, 0, 0, 85, 0, 87, 0, - 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 116, 0, 0, 120, - 0, 0, 0, 0, 114, 126, 0, 110, 0, 0, - 0, 0, 0, 0, 0, 0, 62, 63, 61, 0, - 0, 0, 0, 0, 58, 0, 64, 0, 0, 0, - 0, 68, 0, 0, 69, 0, 60, 0, 0, 77, - 0, 37, 0, 0, 0, 0, 0, 0, 47, 48, - 49, 50, 51, 52, 0, 0, 0, 0, 0, 0, - 0, 0, 81, 0, 0, 0, 0, 88, 90, 0, - 115, 92, 93, 94, 95, 96, 0, 0, 0, 0, - 97, 102, 103, 0, 104, 0, 118, 119, 0, 122, - 0, 123, 125, 112, 0, 127, 128, 129, 130, 131, - 132, 133, 0, 54, 53, 55, 56, 57, 65, 67, - 66, 0, 0, 0, 0, 59, 0, 74, 0, 78, - 38, 39, 40, 41, 42, 43, 0, 0, 0, 139, - 0, 0, 0, 0, 0, 0, 82, 83, 0, 91, - 98, 99, 100, 101, 0, 117, 0, 124, 113, 134, - 70, 72, 71, 73, 75, 0, 0, 45, 46, 0, - 0, 0, 0, 0, 84, 86, 0, 105, 121, 76, - 44, 135, 136, 137, 138, 140, 0, 106, -}; -short bxdgoto[] = { 46, - 165, 0, 118, 119, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 80, -}; -short bxsindex[] = { -10, - 9, -4, -270, -3, -2, -7, -298, -231, 21, -6, - -292, -248, -225, 38, 59, -256, -242, -229, -254, -253, - 64, 65, 66, -250, -249, -221, -220, 8, -1, 20, - 22, 17, -289, 71, -244, 73, -275, -228, -241, -240, - -310, -239, -290, -310, 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, 74, 0, 27, -226, 31, 0, 80, 0, 81, - 0, -234, 83, 84, 85, 86, 87, 89, -256, -256, - -256, -256, 90, 91, 92, -9, 0, 3, 93, 0, - -222, 95, 4, 96, 0, 0, -56, 0, 97, 98, - 99, 100, 101, 102, 103, -212, 0, 0, 0, 105, - 106, 107, 108, 109, 0, 110, 0, 111, 112, -203, - -202, 0, -201, -200, 0, 117, 0, 5, -172, 0, - 119, 0, 120, 121, 122, 123, 124, 125, 0, 0, - 0, 0, 0, 0, 78, -224, 127, -188, -187, -186, - -185, 88, 0, -184, 133, 134, -181, 0, 0, 137, - 0, 0, 0, 0, 0, 0, 138, 139, 140, 141, - 0, 0, 0, -174, 0, 143, 0, 0, -171, 0, - 144, 0, 0, 0, -170, 0, 0, 0, 0, 0, - 0, 0, 147, 0, 0, 0, 0, 0, 0, 0, - 0, 148, 149, 150, 151, 0, 152, 0, -163, 0, - 0, 0, 0, 0, 0, 0, -162, 155, 156, 0, - -159, -158, -157, -156, -155, 162, 0, 0, 163, 0, - 0, 0, 0, 0, -5, 0, 164, 0, 0, 0, - 0, 0, 0, 0, 0, 165, 166, 0, 0, 167, - 168, 169, 170, 171, 0, 0, -144, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 173, 0, -}; -short bxrindex[] = { 184, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 175, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 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, 175, 175, - 175, 175, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 176, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 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, -}; -short bxgindex[] = { 0, - 145, 0, 0, -42, 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, -}; -#define YYTABLESIZE 337 -short bxtable[] = { 45, - 195, 205, 91, 110, 278, 83, 87, 89, 137, 167, - 148, 84, 197, 202, 228, 153, 154, 135, 81, 85, - 159, 160, 161, 162, 163, 164, 147, 93, 149, 142, - 107, 145, 94, 111, 92, 112, 95, 96, 97, 98, - 99, 100, 101, 102, 103, 104, 105, 115, 168, 169, - 170, 171, 120, 121, 122, 123, 187, 188, 189, 190, - 113, 114, 155, 156, 175, 176, 238, 239, 116, 117, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 150, 151, 152, 173, 157, 158, 166, 174, 177, 178, - 179, 180, 181, 182, 183, 184, 185, 106, 186, 191, - 192, 193, 198, 199, 200, 203, 206, 207, 208, 209, - 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, - 220, 221, 222, 223, 224, 225, 226, 229, 230, 231, - 232, 233, 234, 235, 236, 237, 240, 241, 242, 243, - 244, 246, 247, 248, 249, 245, 250, 251, 252, 253, - 254, 255, 256, 258, 257, 259, 260, 261, 262, 263, - 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 279, 280, 281, 282, 283, 284, 285, - 286, 287, 288, 35, 109, 111, 0, 0, 172, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 2, 0, 3, - 0, 4, 5, 6, 7, 8, 9, 0, 0, 0, - 0, 0, 0, 277, 0, 0, 0, 0, 10, 204, - 11, 0, 12, 108, 13, 0, 138, 14, 15, 0, - 0, 0, 16, 17, 0, 0, 0, 0, 18, 0, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 0, 0, 32, 33, 134, 34, 35, - 36, 37, 38, 39, 40, 139, 146, 41, 90, 109, - 194, 82, 86, 88, 136, 0, 42, 43, 196, 201, - 227, 0, 44, 140, 141, 143, 144, -}; -short bxcheck[] = { 10, - 10, 58, 10, 10, 10, 10, 10, 10, 10, 300, - 300, 282, 10, 10, 10, 291, 292, 10, 10, 290, - 331, 332, 333, 334, 335, 336, 10, 326, 318, 10, - 10, 10, 264, 326, 42, 284, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 278, 10, 339, 340, - 341, 342, 295, 296, 297, 298, 99, 100, 101, 102, - 286, 287, 291, 292, 291, 292, 291, 292, 10, 326, - 300, 326, 326, 10, 10, 10, 327, 327, 300, 300, - 10, 326, 10, 10, 326, 326, 326, 61, 58, 10, - 10, 326, 10, 10, 10, 10, 10, 329, 10, 10, - 10, 10, 10, 326, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 326, 10, 10, 10, 10, 10, 10, - 10, 10, 326, 326, 326, 326, 10, 300, 10, 10, - 10, 10, 10, 10, 10, 58, 10, 326, 326, 326, - 326, 326, 10, 10, 326, 58, 10, 10, 10, 10, - 10, 326, 10, 10, 326, 326, 10, 10, 10, 10, - 10, 10, 326, 326, 10, 10, 326, 326, 326, 326, - 326, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 326, 10, 0, 10, 10, -1, -1, 44, -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, -1, 257, 258, -1, 260, - -1, 262, 263, 264, 265, 266, 267, -1, -1, -1, - -1, -1, -1, 269, -1, -1, -1, -1, 279, 326, - 281, -1, 283, 280, 285, -1, 257, 288, 289, -1, - -1, -1, 293, 294, -1, -1, -1, -1, 299, -1, - 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, - 311, 312, 313, -1, -1, 316, 317, 300, 319, 320, - 321, 322, 323, 324, 325, 296, 300, 328, 326, 326, - 330, 326, 326, 326, 326, -1, 337, 338, 326, 326, - 326, -1, 343, 314, 315, 314, 315, -}; -#define YYFINAL 46 -#ifndef YYDEBUG -#define YYDEBUG 0 +#include + +#ifndef __cplusplus +#ifndef __STDC__ +#define const #endif -#define YYMAXTOKEN 343 -#if YYDEBUG -char *bxname[] = { -"end-of-file",0,0,0,0,0,0,0,0,0,"'\\n'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,"'*'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"':'",0,0,"'='",0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -"BX_TOKEN_CONTINUE","BX_TOKEN_STEPN","BX_TOKEN_NEXT_STEP","BX_TOKEN_SET", -"BX_TOKEN_DEBUGGER","BX_TOKEN_VBREAKPOINT","BX_TOKEN_LBREAKPOINT", -"BX_TOKEN_PBREAKPOINT","BX_TOKEN_DEL_BREAKPOINT","BX_TOKEN_INFO", -"BX_TOKEN_QUIT","BX_TOKEN_PROGRAM","BX_TOKEN_REGISTERS","BX_TOKEN_FPU", -"BX_TOKEN_ALL","BX_TOKEN_IDT","BX_TOKEN_GDT","BX_TOKEN_LDT","BX_TOKEN_TSS", -"BX_TOKEN_DIRTY","BX_TOKEN_LINUX","BX_TOKEN_CONTROL_REGS","BX_TOKEN_EXAMINE", -"BX_TOKEN_XFORMAT","BX_TOKEN_SETPMEM","BX_TOKEN_SYMBOLNAME","BX_TOKEN_QUERY", -"BX_TOKEN_PENDING","BX_TOKEN_TAKE","BX_TOKEN_DMA","BX_TOKEN_IRQ", -"BX_TOKEN_DUMP_CPU","BX_TOKEN_SET_CPU","BX_TOKEN_DIS","BX_TOKEN_ON", -"BX_TOKEN_OFF","BX_TOKEN_DISASSEMBLE","BX_TOKEN_INSTRUMENT","BX_TOKEN_START", -"BX_TOKEN_STOP","BX_TOKEN_RESET","BX_TOKEN_PRINT","BX_TOKEN_LOADER", -"BX_TOKEN_STRING","BX_TOKEN_DOIT","BX_TOKEN_CRC","BX_TOKEN_TRACEON", -"BX_TOKEN_TRACEOFF","BX_TOKEN_PTIME","BX_TOKEN_TIMEBP_ABSOLUTE", -"BX_TOKEN_TIMEBP","BX_TOKEN_RECORD","BX_TOKEN_PLAYBACK","BX_TOKEN_MODEBP", -"BX_TOKEN_PRINT_STACK","BX_TOKEN_WATCH","BX_TOKEN_UNWATCH","BX_TOKEN_READ", -"BX_TOKEN_WRITE","BX_TOKEN_SHOW","BX_TOKEN_SYMBOL","BX_TOKEN_GLOBAL", -"BX_TOKEN_WHERE","BX_TOKEN_PRINT_STRING","BX_TOKEN_DIFF_MEMORY", -"BX_TOKEN_SYNC_MEMORY","BX_TOKEN_SYNC_CPU","BX_TOKEN_FAST_FORWARD", -"BX_TOKEN_PHY_2_LOG","BX_TOKEN_NUMERIC","BX_TOKEN_LONG_NUMERIC", -"BX_TOKEN_INFO_ADDRESS","BX_TOKEN_NE2000","BX_TOKEN_PAGE","BX_TOKEN_CS", -"BX_TOKEN_ES","BX_TOKEN_SS","BX_TOKEN_DS","BX_TOKEN_FS","BX_TOKEN_GS", -"BX_TOKEN_ALWAYS_CHECK","BX_TOKEN_MATHS","BX_TOKEN_ADD","BX_TOKEN_SUB", -"BX_TOKEN_MUL","BX_TOKEN_DIV","BX_TOKEN_V2L", +#endif + + + +#define YYFINAL 296 +#define YYFLAG -32768 +#define YYNTBASE 96 + +#define YYTRANSLATE(x) ((unsigned)(x) <= 345 ? yytranslate[x] : 136) + +static const char yytranslate[] = { 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 92, + 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, 95, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 93, 2, 2, + 94, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 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, 1, 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, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 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 }; -char *bxrule[] = { -"$accept : command", -"command : continue_command", -"command : stepN_command", -"command : set_command", -"command : breakpoint_command", -"command : info_command", -"command : dump_cpu_command", -"command : delete_command", -"command : quit_command", -"command : examine_command", -"command : setpmem_command", -"command : query_command", -"command : take_command", -"command : set_cpu_command", -"command : disassemble_command", -"command : instrument_command", -"command : loader_command", -"command : doit_command", -"command : crc_command", -"command : maths_command", -"command : trace_on_command", -"command : trace_off_command", -"command : ptime_command", -"command : timebp_command", -"command : record_command", -"command : playback_command", -"command : modebp_command", -"command : print_stack_command", -"command : watch_point_command", -"command : show_command", -"command : symbol_command", -"command : where_command", -"command : print_string_command", -"command : cosim_commands", -"command : v2l_command", -"command :", -"command : '\\n'", -"cosim_commands : BX_TOKEN_DIFF_MEMORY '\\n'", -"cosim_commands : BX_TOKEN_SYNC_MEMORY BX_TOKEN_ON '\\n'", -"cosim_commands : BX_TOKEN_SYNC_MEMORY BX_TOKEN_OFF '\\n'", -"cosim_commands : BX_TOKEN_SYNC_CPU BX_TOKEN_ON '\\n'", -"cosim_commands : BX_TOKEN_SYNC_CPU BX_TOKEN_OFF '\\n'", -"cosim_commands : BX_TOKEN_FAST_FORWARD BX_TOKEN_NUMERIC '\\n'", -"cosim_commands : BX_TOKEN_PHY_2_LOG BX_TOKEN_NUMERIC '\\n'", -"cosim_commands : BX_TOKEN_INFO_ADDRESS segment_register ':' BX_TOKEN_NUMERIC '\\n'", -"cosim_commands : BX_TOKEN_ALWAYS_CHECK BX_TOKEN_NUMERIC BX_TOKEN_ON '\\n'", -"cosim_commands : BX_TOKEN_ALWAYS_CHECK BX_TOKEN_NUMERIC BX_TOKEN_OFF '\\n'", -"segment_register : BX_TOKEN_CS", -"segment_register : BX_TOKEN_ES", -"segment_register : BX_TOKEN_SS", -"segment_register : BX_TOKEN_DS", -"segment_register : BX_TOKEN_FS", -"segment_register : BX_TOKEN_GS", -"timebp_command : BX_TOKEN_TIMEBP BX_TOKEN_LONG_NUMERIC '\\n'", -"timebp_command : BX_TOKEN_TIMEBP_ABSOLUTE BX_TOKEN_LONG_NUMERIC '\\n'", -"record_command : BX_TOKEN_RECORD BX_TOKEN_STRING '\\n'", -"playback_command : BX_TOKEN_PLAYBACK BX_TOKEN_STRING '\\n'", -"modebp_command : BX_TOKEN_MODEBP BX_TOKEN_STRING '\\n'", -"modebp_command : BX_TOKEN_MODEBP '\\n'", -"show_command : BX_TOKEN_SHOW BX_TOKEN_STRING '\\n'", -"show_command : BX_TOKEN_SHOW '\\n'", -"ptime_command : BX_TOKEN_PTIME '\\n'", -"trace_on_command : BX_TOKEN_TRACEON '\\n'", -"trace_off_command : BX_TOKEN_TRACEOFF '\\n'", -"print_stack_command : BX_TOKEN_PRINT_STACK '\\n'", -"print_stack_command : BX_TOKEN_PRINT_STACK BX_TOKEN_NUMERIC '\\n'", -"watch_point_command : BX_TOKEN_WATCH BX_TOKEN_STOP '\\n'", -"watch_point_command : BX_TOKEN_WATCH BX_TOKEN_CONTINUE '\\n'", -"watch_point_command : BX_TOKEN_WATCH '\\n'", -"watch_point_command : BX_TOKEN_UNWATCH '\\n'", -"watch_point_command : BX_TOKEN_WATCH BX_TOKEN_READ BX_TOKEN_NUMERIC '\\n'", -"watch_point_command : BX_TOKEN_UNWATCH BX_TOKEN_READ BX_TOKEN_NUMERIC '\\n'", -"watch_point_command : BX_TOKEN_WATCH BX_TOKEN_WRITE BX_TOKEN_NUMERIC '\\n'", -"watch_point_command : BX_TOKEN_UNWATCH BX_TOKEN_WRITE BX_TOKEN_NUMERIC '\\n'", -"symbol_command : BX_TOKEN_SYMBOL BX_TOKEN_STRING '\\n'", -"symbol_command : BX_TOKEN_SYMBOL BX_TOKEN_STRING BX_TOKEN_NUMERIC '\\n'", -"symbol_command : BX_TOKEN_SYMBOL BX_TOKEN_GLOBAL BX_TOKEN_STRING BX_TOKEN_NUMERIC '\\n'", -"where_command : BX_TOKEN_WHERE '\\n'", -"print_string_command : BX_TOKEN_PRINT_STRING BX_TOKEN_NUMERIC '\\n'", -"continue_command : BX_TOKEN_CONTINUE '\\n'", -"stepN_command : BX_TOKEN_STEPN '\\n'", -"stepN_command : BX_TOKEN_STEPN BX_TOKEN_NUMERIC '\\n'", -"set_command : BX_TOKEN_SET BX_TOKEN_DIS BX_TOKEN_ON '\\n'", -"set_command : BX_TOKEN_SET BX_TOKEN_DIS BX_TOKEN_OFF '\\n'", -"set_command : BX_TOKEN_SET BX_TOKEN_SYMBOLNAME '=' BX_TOKEN_NUMERIC '\\n'", -"breakpoint_command : BX_TOKEN_VBREAKPOINT '\\n'", -"breakpoint_command : BX_TOKEN_VBREAKPOINT BX_TOKEN_NUMERIC ':' BX_TOKEN_NUMERIC '\\n'", -"breakpoint_command : BX_TOKEN_LBREAKPOINT '\\n'", -"breakpoint_command : BX_TOKEN_LBREAKPOINT BX_TOKEN_NUMERIC '\\n'", -"breakpoint_command : BX_TOKEN_PBREAKPOINT '\\n'", -"breakpoint_command : BX_TOKEN_PBREAKPOINT BX_TOKEN_NUMERIC '\\n'", -"breakpoint_command : BX_TOKEN_PBREAKPOINT '*' BX_TOKEN_NUMERIC '\\n'", -"info_command : BX_TOKEN_INFO BX_TOKEN_PBREAKPOINT '\\n'", -"info_command : BX_TOKEN_INFO BX_TOKEN_PROGRAM '\\n'", -"info_command : BX_TOKEN_INFO BX_TOKEN_REGISTERS '\\n'", -"info_command : BX_TOKEN_INFO BX_TOKEN_FPU '\\n'", -"info_command : BX_TOKEN_INFO BX_TOKEN_ALL '\\n'", -"info_command : BX_TOKEN_INFO BX_TOKEN_DIRTY '\\n'", -"info_command : BX_TOKEN_INFO BX_TOKEN_IDT optional_numeric_range '\\n'", -"info_command : BX_TOKEN_INFO BX_TOKEN_GDT optional_numeric_range '\\n'", -"info_command : BX_TOKEN_INFO BX_TOKEN_LDT optional_numeric_range '\\n'", -"info_command : BX_TOKEN_INFO BX_TOKEN_TSS optional_numeric_range '\\n'", -"info_command : BX_TOKEN_INFO BX_TOKEN_LINUX '\\n'", -"info_command : BX_TOKEN_INFO BX_TOKEN_CONTROL_REGS '\\n'", -"info_command : BX_TOKEN_INFO BX_TOKEN_NE2000 '\\n'", -"info_command : BX_TOKEN_INFO BX_TOKEN_NE2000 BX_TOKEN_PAGE BX_TOKEN_NUMERIC '\\n'", -"info_command : BX_TOKEN_INFO BX_TOKEN_NE2000 BX_TOKEN_PAGE BX_TOKEN_NUMERIC BX_TOKEN_REGISTERS BX_TOKEN_NUMERIC '\\n'", -"optional_numeric :", -"optional_numeric : BX_TOKEN_NUMERIC", -"optional_numeric_range :", -"optional_numeric_range : numeric_range", -"numeric_range : BX_TOKEN_NUMERIC", -"numeric_range : BX_TOKEN_NUMERIC BX_TOKEN_NUMERIC", -"numeric_range : BX_TOKEN_NUMERIC ':' BX_TOKEN_NUMERIC", -"dump_cpu_command : BX_TOKEN_DUMP_CPU '\\n'", -"delete_command : BX_TOKEN_DEL_BREAKPOINT BX_TOKEN_NUMERIC '\\n'", -"quit_command : BX_TOKEN_QUIT '\\n'", -"examine_command : BX_TOKEN_EXAMINE BX_TOKEN_XFORMAT BX_TOKEN_NUMERIC '\\n'", -"examine_command : BX_TOKEN_EXAMINE BX_TOKEN_XFORMAT '\\n'", -"examine_command : BX_TOKEN_EXAMINE BX_TOKEN_NUMERIC '\\n'", -"examine_command : BX_TOKEN_EXAMINE '\\n'", -"setpmem_command : BX_TOKEN_SETPMEM BX_TOKEN_NUMERIC BX_TOKEN_NUMERIC BX_TOKEN_NUMERIC '\\n'", -"query_command : BX_TOKEN_QUERY BX_TOKEN_PENDING '\\n'", -"take_command : BX_TOKEN_TAKE BX_TOKEN_DMA '\\n'", -"take_command : BX_TOKEN_TAKE BX_TOKEN_DMA BX_TOKEN_NUMERIC '\\n'", -"take_command : BX_TOKEN_TAKE BX_TOKEN_IRQ '\\n'", -"set_cpu_command : BX_TOKEN_SET_CPU '\\n'", -"disassemble_command : BX_TOKEN_DISASSEMBLE optional_numeric_range '\\n'", -"instrument_command : BX_TOKEN_INSTRUMENT BX_TOKEN_START '\\n'", -"instrument_command : BX_TOKEN_INSTRUMENT BX_TOKEN_STOP '\\n'", -"instrument_command : BX_TOKEN_INSTRUMENT BX_TOKEN_RESET '\\n'", -"instrument_command : BX_TOKEN_INSTRUMENT BX_TOKEN_PRINT '\\n'", -"loader_command : BX_TOKEN_LOADER BX_TOKEN_STRING '\\n'", -"doit_command : BX_TOKEN_DOIT BX_TOKEN_NUMERIC '\\n'", -"crc_command : BX_TOKEN_CRC BX_TOKEN_NUMERIC BX_TOKEN_NUMERIC '\\n'", -"maths_command : BX_TOKEN_MATHS BX_TOKEN_ADD BX_TOKEN_NUMERIC BX_TOKEN_NUMERIC '\\n'", -"maths_command : BX_TOKEN_MATHS BX_TOKEN_SUB BX_TOKEN_NUMERIC BX_TOKEN_NUMERIC '\\n'", -"maths_command : BX_TOKEN_MATHS BX_TOKEN_MUL BX_TOKEN_NUMERIC BX_TOKEN_NUMERIC '\\n'", -"maths_command : BX_TOKEN_MATHS BX_TOKEN_DIV BX_TOKEN_NUMERIC BX_TOKEN_NUMERIC '\\n'", -"maths_command : BX_TOKEN_MATHS BX_TOKEN_STRING '\\n'", -"v2l_command : BX_TOKEN_V2L segment_register ':' BX_TOKEN_NUMERIC '\\n'", + +#if YYDEBUG != 0 +static const short yyprhs[] = { 0, + 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, + 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, + 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, + 60, 62, 64, 66, 68, 70, 72, 73, 75, 78, + 82, 86, 90, 94, 98, 102, 108, 113, 118, 120, + 122, 124, 126, 128, 130, 134, 138, 142, 146, 150, + 153, 157, 160, 163, 166, 169, 172, 176, 180, 184, + 187, 190, 195, 200, 205, 210, 214, 219, 225, 228, + 232, 235, 238, 242, 247, 252, 258, 261, 267, 270, + 274, 277, 281, 286, 290, 294, 298, 302, 306, 310, + 315, 320, 325, 330, 334, 338, 342, 348, 356, 357, + 359, 360, 362, 364, 367, 371, 374, 378, 381, 386, + 390, 394, 397, 403, 407, 411, 416, 420, 423, 427, + 431, 435, 439, 443, 447, 451, 456, 462, 468, 474, + 480, 484, 490, 493 +}; + +static const short yyrhs[] = { 112, + 0, 113, 0, 114, 0, 115, 0, 116, 0, 119, + 0, 120, 0, 121, 0, 122, 0, 123, 0, 124, + 0, 125, 0, 126, 0, 127, 0, 128, 0, 129, + 0, 130, 0, 131, 0, 132, 0, 105, 0, 106, + 0, 104, 0, 99, 0, 100, 0, 101, 0, 102, + 0, 107, 0, 108, 0, 103, 0, 109, 0, 110, + 0, 111, 0, 97, 0, 133, 0, 134, 0, 135, + 0, 0, 92, 0, 67, 92, 0, 68, 37, 92, + 0, 68, 38, 92, 0, 69, 37, 92, 0, 69, + 38, 92, 0, 70, 72, 92, 0, 71, 72, 92, + 0, 74, 98, 93, 72, 92, 0, 83, 72, 37, + 92, 0, 83, 72, 38, 92, 0, 77, 0, 78, + 0, 79, 0, 80, 0, 81, 0, 82, 0, 53, + 73, 92, 0, 52, 73, 92, 0, 54, 46, 92, + 0, 55, 46, 92, 0, 56, 46, 92, 0, 56, + 92, 0, 62, 46, 92, 0, 62, 92, 0, 51, + 92, 0, 49, 92, 0, 50, 92, 0, 57, 92, + 0, 57, 72, 92, 0, 58, 42, 92, 0, 58, + 3, 92, 0, 58, 92, 0, 59, 92, 0, 58, + 60, 72, 92, 0, 59, 60, 72, 92, 0, 58, + 61, 72, 92, 0, 59, 61, 72, 92, 0, 63, + 46, 92, 0, 63, 46, 72, 92, 0, 63, 64, + 46, 72, 92, 0, 65, 92, 0, 66, 72, 92, + 0, 3, 92, 0, 4, 92, 0, 4, 72, 92, + 0, 6, 36, 37, 92, 0, 6, 36, 38, 92, + 0, 6, 28, 94, 72, 92, 0, 8, 92, 0, + 8, 72, 93, 72, 92, 0, 9, 92, 0, 9, + 72, 92, 0, 10, 92, 0, 10, 72, 92, 0, + 10, 95, 72, 92, 0, 12, 10, 92, 0, 12, + 14, 92, 0, 12, 15, 92, 0, 12, 16, 92, + 0, 12, 17, 92, 0, 12, 22, 92, 0, 12, + 18, 117, 92, 0, 12, 19, 117, 92, 0, 12, + 20, 117, 92, 0, 12, 21, 117, 92, 0, 12, + 23, 92, 0, 12, 24, 92, 0, 12, 75, 92, + 0, 12, 75, 76, 72, 92, 0, 12, 75, 76, + 72, 15, 72, 92, 0, 0, 72, 0, 0, 118, + 0, 72, 0, 72, 72, 0, 72, 93, 72, 0, + 34, 92, 0, 11, 72, 92, 0, 13, 92, 0, + 25, 26, 72, 92, 0, 25, 26, 92, 0, 25, + 72, 92, 0, 25, 92, 0, 27, 72, 72, 72, + 92, 0, 29, 30, 92, 0, 31, 32, 92, 0, + 31, 32, 72, 92, 0, 31, 33, 92, 0, 35, + 92, 0, 39, 117, 92, 0, 40, 41, 92, 0, + 40, 42, 92, 0, 40, 43, 92, 0, 40, 44, + 92, 0, 45, 46, 92, 0, 47, 72, 92, 0, + 48, 72, 72, 92, 0, 84, 85, 72, 72, 92, + 0, 84, 86, 72, 72, 92, 0, 84, 87, 72, + 72, 92, 0, 84, 88, 72, 72, 92, 0, 84, + 46, 92, 0, 89, 98, 93, 72, 92, 0, 90, + 92, 0, 91, 92, 0 +}; + +#endif + +#if YYDEBUG != 0 +static const short yyrline[] = { 0, + 119, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 162, 168, + 173, 178, 183, 188, 193, 196, 201, 204, 209, 211, + 212, 213, 214, 215, 218, 224, 231, 239, 247, 253, + 260, 266, 273, 281, 289, 297, 303, 310, 317, 323, + 328, 333, 338, 343, 348, 355, 361, 366, 373, 381, + 389, 397, 403, 410, 416, 421, 428, 434, 439, 444, + 449, 454, 459, 466, 472, 477, 482, 487, 492, 497, + 502, 507, 512, 517, 522, 527, 532, 537, 544, 546, + 548, 550, 552, 557, 562, 569, 577, 585, 594, 603, + 611, 624, 639, 647, 655, 661, 666, 673, 681, 689, + 695, 700, 705, 712, 720, 728, 736, 742, 747, 752, + 757, 763, 771, 779 }; #endif -#ifdef YYSTACKSIZE + + +#if YYDEBUG != 0 || defined (YYERROR_VERBOSE) + +static const char * const yytname[] = { "$","error","$undefined.","BX_TOKEN_CONTINUE", +"BX_TOKEN_STEPN","BX_TOKEN_NEXT_STEP","BX_TOKEN_SET","BX_TOKEN_DEBUGGER","BX_TOKEN_VBREAKPOINT", +"BX_TOKEN_LBREAKPOINT","BX_TOKEN_PBREAKPOINT","BX_TOKEN_DEL_BREAKPOINT","BX_TOKEN_INFO", +"BX_TOKEN_QUIT","BX_TOKEN_PROGRAM","BX_TOKEN_REGISTERS","BX_TOKEN_FPU","BX_TOKEN_ALL", +"BX_TOKEN_IDT","BX_TOKEN_GDT","BX_TOKEN_LDT","BX_TOKEN_TSS","BX_TOKEN_DIRTY", +"BX_TOKEN_LINUX","BX_TOKEN_CONTROL_REGS","BX_TOKEN_EXAMINE","BX_TOKEN_XFORMAT", +"BX_TOKEN_SETPMEM","BX_TOKEN_SYMBOLNAME","BX_TOKEN_QUERY","BX_TOKEN_PENDING", +"BX_TOKEN_TAKE","BX_TOKEN_DMA","BX_TOKEN_IRQ","BX_TOKEN_DUMP_CPU","BX_TOKEN_SET_CPU", +"BX_TOKEN_DIS","BX_TOKEN_ON","BX_TOKEN_OFF","BX_TOKEN_DISASSEMBLE","BX_TOKEN_INSTRUMENT", +"BX_TOKEN_START","BX_TOKEN_STOP","BX_TOKEN_RESET","BX_TOKEN_PRINT","BX_TOKEN_LOADER", +"BX_TOKEN_STRING","BX_TOKEN_DOIT","BX_TOKEN_CRC","BX_TOKEN_TRACEON","BX_TOKEN_TRACEOFF", +"BX_TOKEN_PTIME","BX_TOKEN_TIMEBP_ABSOLUTE","BX_TOKEN_TIMEBP","BX_TOKEN_RECORD", +"BX_TOKEN_PLAYBACK","BX_TOKEN_MODEBP","BX_TOKEN_PRINT_STACK","BX_TOKEN_WATCH", +"BX_TOKEN_UNWATCH","BX_TOKEN_READ","BX_TOKEN_WRITE","BX_TOKEN_SHOW","BX_TOKEN_SYMBOL", +"BX_TOKEN_GLOBAL","BX_TOKEN_WHERE","BX_TOKEN_PRINT_STRING","BX_TOKEN_DIFF_MEMORY", +"BX_TOKEN_SYNC_MEMORY","BX_TOKEN_SYNC_CPU","BX_TOKEN_FAST_FORWARD","BX_TOKEN_PHY_2_LOG", +"BX_TOKEN_NUMERIC","BX_TOKEN_LONG_NUMERIC","BX_TOKEN_INFO_ADDRESS","BX_TOKEN_NE2000", +"BX_TOKEN_PAGE","BX_TOKEN_CS","BX_TOKEN_ES","BX_TOKEN_SS","BX_TOKEN_DS","BX_TOKEN_FS", +"BX_TOKEN_GS","BX_TOKEN_ALWAYS_CHECK","BX_TOKEN_MATHS","BX_TOKEN_ADD","BX_TOKEN_SUB", +"BX_TOKEN_MUL","BX_TOKEN_DIV","BX_TOKEN_V2L","BX_TOKEN_TRACEREGON","BX_TOKEN_TRACEREGOFF", +"'\\n'","':'","'='","'*'","command","cosim_commands","segment_register","timebp_command", +"record_command","playback_command","modebp_command","show_command","ptime_command", +"trace_on_command","trace_off_command","print_stack_command","watch_point_command", +"symbol_command","where_command","print_string_command","continue_command","stepN_command", +"set_command","breakpoint_command","info_command","optional_numeric_range","numeric_range", +"dump_cpu_command","delete_command","quit_command","examine_command","setpmem_command", +"query_command","take_command","set_cpu_command","disassemble_command","instrument_command", +"loader_command","doit_command","crc_command","maths_command","v2l_command", +"trace_reg_on_command","trace_reg_off_command", NULL +}; +#endif + +static const short yyr1[] = { 0, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 97, 97, + 97, 97, 97, 97, 97, 97, 97, 97, 98, 98, + 98, 98, 98, 98, 99, 99, 100, 101, 102, 102, + 103, 103, 104, 105, 106, 107, 107, 108, 108, 108, + 108, 108, 108, 108, 108, 109, 109, 109, 110, 111, + 112, 113, 113, 114, 114, 114, 115, 115, 115, 115, + 115, 115, 115, 116, 116, 116, 116, 116, 116, 116, + 116, 116, 116, 116, 116, 116, 116, 116, -1, -1, + 117, 117, 118, 118, 118, 119, 120, 121, 122, 122, + 122, 122, 123, 124, 125, 125, 125, 126, 127, 128, + 128, 128, 128, 129, 130, 131, 132, 132, 132, 132, + 132, 133, 134, 135 +}; + +static const short yyr2[] = { 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, 0, 1, 2, 3, + 3, 3, 3, 3, 3, 5, 4, 4, 1, 1, + 1, 1, 1, 1, 3, 3, 3, 3, 3, 2, + 3, 2, 2, 2, 2, 2, 3, 3, 3, 2, + 2, 4, 4, 4, 4, 3, 4, 5, 2, 3, + 2, 2, 3, 4, 4, 5, 2, 5, 2, 3, + 2, 3, 4, 3, 3, 3, 3, 3, 3, 4, + 4, 4, 4, 3, 3, 3, 5, 7, 0, 1, + 0, 1, 1, 2, 3, 2, 3, 2, 4, 3, + 3, 2, 5, 3, 3, 4, 3, 2, 3, 3, + 3, 3, 3, 3, 3, 4, 5, 5, 5, 5, + 3, 5, 2, 2 +}; + +static const short yydefact[] = { 37, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 111, 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, 38, 33, 23, 24, + 25, 26, 29, 22, 20, 21, 27, 28, 30, 31, + 32, 1, 2, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + 34, 35, 36, 81, 0, 82, 0, 0, 0, 87, + 0, 89, 0, 91, 0, 0, 0, 0, 0, 0, + 0, 111, 111, 111, 111, 0, 0, 0, 0, 118, + 0, 0, 122, 0, 0, 0, 0, 116, 128, 113, + 0, 112, 0, 0, 0, 0, 0, 0, 0, 64, + 65, 63, 0, 0, 0, 0, 0, 60, 0, 66, + 0, 0, 0, 0, 70, 0, 0, 71, 0, 62, + 0, 0, 79, 0, 39, 0, 0, 0, 0, 0, + 0, 49, 50, 51, 52, 53, 54, 0, 0, 0, + 0, 0, 0, 0, 0, 143, 144, 83, 0, 0, + 0, 0, 90, 92, 0, 117, 94, 95, 96, 97, + 98, 0, 0, 0, 0, 99, 104, 105, 0, 106, + 0, 120, 121, 0, 124, 0, 125, 127, 114, 0, + 129, 130, 131, 132, 133, 134, 135, 0, 56, 55, + 57, 58, 59, 67, 69, 68, 0, 0, 0, 0, + 61, 0, 76, 0, 80, 40, 41, 42, 43, 44, + 45, 0, 0, 0, 141, 0, 0, 0, 0, 0, + 0, 84, 85, 0, 93, 100, 101, 102, 103, 0, + 119, 0, 126, 115, 136, 72, 74, 73, 75, 77, + 0, 0, 47, 48, 0, 0, 0, 0, 0, 86, + 88, 0, 107, 123, 78, 46, 137, 138, 139, 140, + 142, 0, 108, 0, 0, 0 +}; + +static const short yydefgoto[] = { 294, + 48, 168, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 121, 122, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83 +}; + +static const short yypact[] = { -3, + -57, -59, 2, -58, -53, 13, 5, 80, -18, -14, + 12, 91, -16, 43, 44, 65, 81, 92, 67, 68, + 49, 50, 51, 71, 72, 100, 101, -31, 1, 15, + -20, -23, -35, 56, 77, 58, -17, 45, 79, 82, + 38, 84, 24, 38, 60, 61,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768, 66,-32768, 63, 54, 69,-32768, + 73,-32768, 74,-32768, 87, 75, 76, 78, 83, 85, + 86, 65, 65, 65, 65, 88, 89, 90, -49,-32768, + 34, 93,-32768, 97, 95, 41, 96,-32768,-32768, -68, + 98,-32768, 99, 102, 103, 104, 105, 106, 107,-32768, +-32768,-32768, 108, 109, 110, 111, 112,-32768, 113,-32768, + 114, 115, 117, 120,-32768, 121, 127,-32768, 116,-32768, + 42, 118,-32768, 119,-32768, 122, 123, 124, 125, 126, + 128,-32768,-32768,-32768,-32768,-32768,-32768, 70, 94, 129, + 137, 138, 140, 141, 130,-32768,-32768,-32768, 147, 132, + 133, 150,-32768,-32768, 134,-32768,-32768,-32768,-32768,-32768, +-32768, 135, 136, 139, 142,-32768,-32768,-32768, 157,-32768, + 143,-32768,-32768, 158,-32768, 144,-32768,-32768,-32768, 160, +-32768,-32768,-32768,-32768,-32768,-32768,-32768, 145,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768, 146, 148, 149, 151, +-32768, 152,-32768, 161,-32768,-32768,-32768,-32768,-32768,-32768, +-32768, 167, 153, 154,-32768, 170, 175, 176, 177, 178, + 159,-32768,-32768, 162,-32768,-32768,-32768,-32768,-32768, -13, +-32768, 163,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, + 164, 165,-32768,-32768, 166, 168, 169, 171, 172,-32768, +-32768, 180,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768, 173,-32768, 174, 183,-32768 +}; + +static const short yypgoto[] = {-32768, +-32768, 209,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, + 25,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768 +}; + + +#define YYLAST 265 + + +static const short yytable[] = { 1, + 2, 282, 3, 209, 4, 5, 6, 7, 8, 9, + 151, 111, 85, 89, 137, 116, 117, 141, 91, 156, + 157, 10, 149, 11, 210, 12, 199, 13, 152, 87, + 14, 15, 86, 90, 84, 16, 17, 88, 92, 146, + 147, 18, 200, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 142, 112, 32, 33, + 138, 34, 35, 36, 37, 38, 39, 40, 150, 170, + 41, 148, 139, 110, 143, 144, 96, 113, 283, 42, + 43, 158, 159, 114, 93, 44, 45, 46, 47, 97, + 180, 181, 140, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 94, 201, 145, 95, 171, 172, + 173, 174, 206, 232, 162, 163, 164, 165, 166, 167, + 115, 123, 124, 125, 126, 202, 192, 193, 194, 195, + 243, 244, 207, 233, 118, 119, 120, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 153, 154, 155, + 160, 176, 177, 161, 109, 169, 179, 178, 185, 0, + 0, 182, 242, 234, 183, 184, 186, 187, 204, 188, + 0, 0, 0, 295, 189, 0, 190, 191, 218, 196, + 197, 198, 296, 0, 203, 0, 205, 208, 227, 211, + 212, 228, 229, 213, 214, 215, 216, 217, 230, 219, + 220, 221, 222, 223, 224, 225, 226, 231, 246, 247, + 235, 248, 249, 236, 237, 238, 239, 240, 251, 241, + 245, 254, 250, 252, 253, 255, 256, 257, 260, 262, + 258, 264, 271, 259, 261, 263, 265, 266, 272, 267, + 268, 275, 269, 270, 273, 274, 276, 277, 278, 279, + 280, 292, 175, 281, 284, 285, 286, 287, 0, 288, + 289, 0, 290, 291, 293 +}; + +static const short yycheck[] = { 3, + 4, 15, 6, 72, 8, 9, 10, 11, 12, 13, + 46, 26, 72, 72, 46, 32, 33, 3, 72, 37, + 38, 25, 46, 27, 93, 29, 76, 31, 64, 28, + 34, 35, 92, 92, 92, 39, 40, 36, 92, 60, + 61, 45, 92, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 42, 72, 62, 63, + 92, 65, 66, 67, 68, 69, 70, 71, 92, 46, + 74, 92, 72, 92, 60, 61, 72, 92, 92, 83, + 84, 37, 38, 72, 72, 89, 90, 91, 92, 10, + 37, 38, 92, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 92, 72, 92, 95, 85, 86, + 87, 88, 72, 72, 77, 78, 79, 80, 81, 82, + 30, 41, 42, 43, 44, 92, 102, 103, 104, 105, + 37, 38, 92, 92, 92, 92, 72, 46, 72, 72, + 92, 92, 92, 73, 73, 46, 46, 92, 72, 92, + 72, 92, 92, 72, 75, 72, 94, 92, 72, -1, + -1, 93, 93, 46, 92, 92, 92, 92, 72, 92, + -1, -1, -1, 0, 92, -1, 92, 92, 72, 92, + 92, 92, 0, -1, 92, -1, 92, 92, 72, 92, + 92, 72, 72, 92, 92, 92, 92, 92, 72, 92, + 92, 92, 92, 92, 92, 92, 92, 92, 72, 72, + 92, 72, 72, 92, 92, 92, 92, 92, 72, 92, + 92, 72, 93, 92, 92, 92, 92, 92, 72, 72, + 92, 72, 72, 92, 92, 92, 92, 92, 72, 92, + 92, 72, 92, 92, 92, 92, 72, 72, 72, 72, + 92, 72, 44, 92, 92, 92, 92, 92, -1, 92, + 92, -1, 92, 92, 92 +}; +/* -*-C-*- Note some compilers choke on comments on `#line' lines. */ +#line 3 "/usr/share/bison/bison.simple" +/* This file comes from bison-1.28. */ + +/* Skeleton output parser for bison, + Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +/* As a special exception, when this file is copied by Bison into a + Bison output file, you may use that output file without restriction. + This special exception was added by the Free Software Foundation + in version 1.24 of Bison. */ + +/* This is the parser code that is written into each bison parser + when the %semantic_parser declaration is not specified in the grammar. + It was written by Richard Stallman by simplifying the hairy parser + used when %semantic_parser is specified. */ + +#ifndef YYSTACK_USE_ALLOCA +#ifdef alloca +#define YYSTACK_USE_ALLOCA +#else /* alloca not defined */ +#ifdef __GNUC__ +#define YYSTACK_USE_ALLOCA +#define alloca __builtin_alloca +#else /* not GNU C. */ +#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386)) +#define YYSTACK_USE_ALLOCA +#include +#else /* not sparc */ +/* We think this test detects Watcom and Microsoft C. */ +/* This used to test MSDOS, but that is a bad idea + since that symbol is in the user namespace. */ +#if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__) +#if 0 /* No need for malloc.h, which pollutes the namespace; + instead, just don't use alloca. */ +#include +#endif +#else /* not MSDOS, or __TURBOC__ */ +#if defined(_AIX) +/* I don't know what this was needed for, but it pollutes the namespace. + So I turned it off. rms, 2 May 1997. */ +/* #include */ + #pragma alloca +#define YYSTACK_USE_ALLOCA +#else /* not MSDOS, or __TURBOC__, or _AIX */ +#if 0 +#ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up, + and on HPUX 10. Eventually we can turn this on. */ +#define YYSTACK_USE_ALLOCA +#define alloca __builtin_alloca +#endif /* __hpux */ +#endif +#endif /* not _AIX */ +#endif /* not MSDOS, or __TURBOC__ */ +#endif /* not sparc */ +#endif /* not GNU C */ +#endif /* alloca not defined */ +#endif /* YYSTACK_USE_ALLOCA not defined */ + +#ifdef YYSTACK_USE_ALLOCA +#define YYSTACK_ALLOC alloca +#else +#define YYSTACK_ALLOC malloc +#endif + +/* Note: there must be only one dollar sign in this file. + It is replaced by the list of actions, each action + as one case of the switch. */ + +#define yyerrok (yyerrstatus = 0) +#define yyclearin (yychar = YYEMPTY) +#define YYEMPTY -2 +#define YYEOF 0 +#define YYACCEPT goto yyacceptlab +#define YYABORT goto yyabortlab +#define YYERROR goto yyerrlab1 +/* Like YYERROR except do call yyerror. + This remains here temporarily to ease the + transition to the new meaning of YYERROR, for GCC. + Once GCC version 2 has supplanted version 1, this can go. */ +#define YYFAIL goto yyerrlab +#define YYRECOVERING() (!!yyerrstatus) +#define YYBACKUP(token, value) \ +do \ + if (yychar == YYEMPTY && yylen == 1) \ + { yychar = (token), yylval = (value); \ + yychar1 = YYTRANSLATE (yychar); \ + YYPOPSTACK; \ + goto yybackup; \ + } \ + else \ + { yyerror ("syntax error: cannot back up"); YYERROR; } \ +while (0) + +#define YYTERROR 1 +#define YYERRCODE 256 + +#ifndef YYPURE +#define YYLEX yylex() +#endif + +#ifdef YYPURE +#ifdef YYLSP_NEEDED +#ifdef YYLEX_PARAM +#define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM) +#else +#define YYLEX yylex(&yylval, &yylloc) +#endif +#else /* not YYLSP_NEEDED */ +#ifdef YYLEX_PARAM +#define YYLEX yylex(&yylval, YYLEX_PARAM) +#else +#define YYLEX yylex(&yylval) +#endif +#endif /* not YYLSP_NEEDED */ +#endif + +/* If nonreentrant, generate the variables here */ + +#ifndef YYPURE + +int yychar; /* the lookahead symbol */ +YYSTYPE yylval; /* the semantic value of the */ + /* lookahead symbol */ + +#ifdef YYLSP_NEEDED +YYLTYPE yylloc; /* location data for the lookahead */ + /* symbol */ +#endif + +int yynerrs; /* number of parse errors so far */ +#endif /* not YYPURE */ + +#if YYDEBUG != 0 +int yydebug; /* nonzero means print parse trace */ +/* Since this is uninitialized, it does not stop multiple parsers + from coexisting. */ +#endif + +/* YYINITDEPTH indicates the initial size of the parser's stacks */ + +#ifndef YYINITDEPTH +#define YYINITDEPTH 200 +#endif + +/* YYMAXDEPTH is the maximum size the stacks can grow to + (effective only if the built-in stack extension method is used). */ + +#if YYMAXDEPTH == 0 #undef YYMAXDEPTH -#define YYMAXDEPTH YYSTACKSIZE -#else -#ifdef YYMAXDEPTH -#define YYSTACKSIZE YYMAXDEPTH -#else -#define YYSTACKSIZE 500 -#define YYMAXDEPTH 500 +#endif + +#ifndef YYMAXDEPTH +#define YYMAXDEPTH 10000 +#endif + +/* Define __yy_memcpy. Note that the size argument + should be passed with type unsigned int, because that is what the non-GCC + definitions require. With GCC, __builtin_memcpy takes an arg + of type size_t, but it can handle unsigned int. */ + +#if __GNUC__ > 1 /* GNU C and GNU C++ define this. */ +#define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT) +#else /* not GNU C or C++ */ +#ifndef __cplusplus + +/* This is the most reliable way to avoid incompatibilities + in available built-in functions on various systems. */ +static void +__yy_memcpy (to, from, count) + char *to; + char *from; + unsigned int count; +{ + register char *f = from; + register char *t = to; + register int i = count; + + while (i-- > 0) + *t++ = *f++; +} + +#else /* __cplusplus */ + +/* This is the most reliable way to avoid incompatibilities + in available built-in functions on various systems. */ +static void +__yy_memcpy (char *to, char *from, unsigned int count) +{ + register char *t = to; + register char *f = from; + register int i = count; + + while (i-- > 0) + *t++ = *f++; +} + #endif #endif -int yydebug; -int yynerrs; -int yyerrflag; -int yychar; -short *yyssp; -YYSTYPE *yyvsp; -YYSTYPE yyval; -YYSTYPE yylval; -short yyss[YYSTACKSIZE]; -YYSTYPE yyvs[YYSTACKSIZE]; -#define yystacksize YYSTACKSIZE -#define YYABORT goto yyabort -#define YYREJECT goto yyabort -#define YYACCEPT goto yyaccept -#define YYERROR goto yyerrlab + +#line 217 "/usr/share/bison/bison.simple" + +/* The user can define YYPARSE_PARAM as the name of an argument to be passed + into yyparse. The argument should have type void *. + It should actually point to an object. + Grammar actions can access the variable by casting it + to the proper pointer type. */ + +#ifdef YYPARSE_PARAM +#ifdef __cplusplus +#define YYPARSE_PARAM_ARG void *YYPARSE_PARAM +#define YYPARSE_PARAM_DECL +#else /* not __cplusplus */ +#define YYPARSE_PARAM_ARG YYPARSE_PARAM +#define YYPARSE_PARAM_DECL void *YYPARSE_PARAM; +#endif /* not __cplusplus */ +#else /* not YYPARSE_PARAM */ +#define YYPARSE_PARAM_ARG +#define YYPARSE_PARAM_DECL +#endif /* not YYPARSE_PARAM */ + +/* Prevent warning if -Wstrict-prototypes. */ +#ifdef __GNUC__ +#ifdef YYPARSE_PARAM +int yyparse (void *); +#else +int yyparse (void); +#endif +#endif + int -yyparse() +yyparse(YYPARSE_PARAM_ARG) + YYPARSE_PARAM_DECL { - register int yym, yyn, yystate; -#if YYDEBUG - register char *yys; - extern char *getenv(); + register int yystate; + register int yyn; + register short *yyssp; + register YYSTYPE *yyvsp; + int yyerrstatus; /* number of tokens to shift before error messages enabled */ + int yychar1 = 0; /* lookahead token as an internal (translated) token number */ - if (yys = getenv("YYDEBUG")) - { - yyn = *yys; - if (yyn >= '0' && yyn <= '9') - yydebug = yyn - '0'; - } + short yyssa[YYINITDEPTH]; /* the state stack */ + YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */ + + short *yyss = yyssa; /* refer to the stacks thru separate pointers */ + YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */ + +#ifdef YYLSP_NEEDED + YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */ + YYLTYPE *yyls = yylsa; + YYLTYPE *yylsp; + +#define YYPOPSTACK (yyvsp--, yyssp--, yylsp--) +#else +#define YYPOPSTACK (yyvsp--, yyssp--) #endif - yynerrs = 0; - yyerrflag = 0; - yychar = (-1); + int yystacksize = YYINITDEPTH; + int yyfree_stacks = 0; - yyssp = yyss; - yyvsp = yyvs; - *yyssp = yystate = 0; +#ifdef YYPURE + int yychar; + YYSTYPE yylval; + int yynerrs; +#ifdef YYLSP_NEEDED + YYLTYPE yylloc; +#endif +#endif -yyloop: - if (yyn = yydefred[yystate]) goto yyreduce; - if (yychar < 0) + YYSTYPE yyval; /* the variable used to return */ + /* semantic values from the action */ + /* routines */ + + int yylen; + +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Starting parse\n"); +#endif + + yystate = 0; + yyerrstatus = 0; + yynerrs = 0; + yychar = YYEMPTY; /* Cause a token to be read. */ + + /* Initialize stack pointers. + Waste one element of value and location stack + so that they stay on the same level as the state stack. + The wasted elements are never initialized. */ + + yyssp = yyss - 1; + yyvsp = yyvs; +#ifdef YYLSP_NEEDED + yylsp = yyls; +#endif + +/* Push a new state, which is found in yystate . */ +/* In all cases, when you get here, the value and location stacks + have just been pushed. so pushing a state here evens the stacks. */ +yynewstate: + + *++yyssp = yystate; + + if (yyssp >= yyss + yystacksize - 1) { - if ((yychar = yylex()) < 0) yychar = 0; -#if YYDEBUG - if (yydebug) - { - yys = 0; - if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; - if (!yys) yys = "illegal-symbol"; - printf("%sdebug: state %d, reading %d (%s)\n", - YYPREFIX, yystate, yychar, yys); - } + /* Give user a chance to reallocate the stack */ + /* Use copies of these so that the &'s don't force the real ones into memory. */ + YYSTYPE *yyvs1 = yyvs; + short *yyss1 = yyss; +#ifdef YYLSP_NEEDED + YYLTYPE *yyls1 = yyls; +#endif + + /* Get the current used size of the three stacks, in elements. */ + int size = yyssp - yyss + 1; + +#ifdef yyoverflow + /* Each stack pointer address is followed by the size of + the data in use in that stack, in bytes. */ +#ifdef YYLSP_NEEDED + /* This used to be a conditional around just the two extra args, + but that might be undefined if yyoverflow is a macro. */ + yyoverflow("parser stack overflow", + &yyss1, size * sizeof (*yyssp), + &yyvs1, size * sizeof (*yyvsp), + &yyls1, size * sizeof (*yylsp), + &yystacksize); +#else + yyoverflow("parser stack overflow", + &yyss1, size * sizeof (*yyssp), + &yyvs1, size * sizeof (*yyvsp), + &yystacksize); +#endif + + yyss = yyss1; yyvs = yyvs1; +#ifdef YYLSP_NEEDED + yyls = yyls1; +#endif +#else /* no yyoverflow */ + /* Extend the stack our own way. */ + if (yystacksize >= YYMAXDEPTH) + { + yyerror("parser stack overflow"); + if (yyfree_stacks) + { + free (yyss); + free (yyvs); +#ifdef YYLSP_NEEDED + free (yyls); +#endif + } + return 2; + } + yystacksize *= 2; + if (yystacksize > YYMAXDEPTH) + yystacksize = YYMAXDEPTH; +#ifndef YYSTACK_USE_ALLOCA + yyfree_stacks = 1; +#endif + yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp)); + __yy_memcpy ((char *)yyss, (char *)yyss1, + size * (unsigned int) sizeof (*yyssp)); + yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp)); + __yy_memcpy ((char *)yyvs, (char *)yyvs1, + size * (unsigned int) sizeof (*yyvsp)); +#ifdef YYLSP_NEEDED + yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp)); + __yy_memcpy ((char *)yyls, (char *)yyls1, + size * (unsigned int) sizeof (*yylsp)); +#endif +#endif /* no yyoverflow */ + + yyssp = yyss + size - 1; + yyvsp = yyvs + size - 1; +#ifdef YYLSP_NEEDED + yylsp = yyls + size - 1; +#endif + +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Stack size increased to %d\n", yystacksize); +#endif + + if (yyssp >= yyss + yystacksize - 1) + YYABORT; + } + +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Entering state %d\n", yystate); +#endif + + goto yybackup; + yybackup: + +/* Do appropriate processing given the current state. */ +/* Read a lookahead token if we need one and don't already have one. */ +/* yyresume: */ + + /* First try to decide what to do without reference to lookahead token. */ + + yyn = yypact[yystate]; + if (yyn == YYFLAG) + goto yydefault; + + /* Not known => get a lookahead token if don't already have one. */ + + /* yychar is either YYEMPTY or YYEOF + or a valid token in external form. */ + + if (yychar == YYEMPTY) + { +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Reading a token: "); +#endif + yychar = YYLEX; + } + + /* Convert token to internal form (in yychar1) for indexing tables with */ + + if (yychar <= 0) /* This means end of input. */ + { + yychar1 = 0; + yychar = YYEOF; /* Don't call YYLEX any more */ + +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Now at end of input.\n"); #endif } - if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 && - yyn <= YYTABLESIZE && yycheck[yyn] == yychar) + else { -#if YYDEBUG - if (yydebug) - printf("%sdebug: state %d, shifting to state %d\n", - YYPREFIX, yystate, yytable[yyn]); + yychar1 = YYTRANSLATE(yychar); + +#if YYDEBUG != 0 + if (yydebug) + { + fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]); + /* Give the individual parser a way to print the precise meaning + of a token, for further debugging info. */ +#ifdef YYPRINT + YYPRINT (stderr, yychar, yylval); +#endif + fprintf (stderr, ")\n"); + } #endif - if (yyssp >= yyss + yystacksize - 1) - { - goto yyoverflow; - } - *++yyssp = yystate = yytable[yyn]; - *++yyvsp = yylval; - yychar = (-1); - if (yyerrflag > 0) --yyerrflag; - goto yyloop; } - if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 && - yyn <= YYTABLESIZE && yycheck[yyn] == yychar) + + yyn += yychar1; + if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1) + goto yydefault; + + yyn = yytable[yyn]; + + /* yyn is what to do for this token type in this state. + Negative => reduce, -yyn is rule number. + Positive => shift, yyn is new state. + New state is final state => don't bother to shift, + just return success. + 0, or most negative number => error. */ + + if (yyn < 0) { - yyn = yytable[yyn]; - goto yyreduce; + if (yyn == YYFLAG) + goto yyerrlab; + yyn = -yyn; + goto yyreduce; } - if (yyerrflag) goto yyinrecovery; -#ifdef lint - goto yynewerror; -#endif -yynewerror: - yyerror("syntax error"); -#ifdef lint + else if (yyn == 0) goto yyerrlab; + + if (yyn == YYFINAL) + YYACCEPT; + + /* Shift the lookahead token. */ + +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]); #endif -yyerrlab: - ++yynerrs; -yyinrecovery: - if (yyerrflag < 3) - { - yyerrflag = 3; - for (;;) - { - if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 && - yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE) - { -#if YYDEBUG - if (yydebug) - printf("%sdebug: state %d, error recovery shifting\ - to state %d\n", YYPREFIX, *yyssp, yytable[yyn]); + + /* Discard the token being shifted unless it is eof. */ + if (yychar != YYEOF) + yychar = YYEMPTY; + + *++yyvsp = yylval; +#ifdef YYLSP_NEEDED + *++yylsp = yylloc; #endif - if (yyssp >= yyss + yystacksize - 1) - { - goto yyoverflow; - } - *++yyssp = yystate = yytable[yyn]; - *++yyvsp = yylval; - goto yyloop; - } - else - { -#if YYDEBUG - if (yydebug) - printf("%sdebug: error recovery discarding state %d\n", - YYPREFIX, *yyssp); -#endif - if (yyssp <= yyss) goto yyabort; - --yyssp; - --yyvsp; - } - } - } - else - { - if (yychar == 0) goto yyabort; -#if YYDEBUG - if (yydebug) - { - yys = 0; - if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; - if (!yys) yys = "illegal-symbol"; - printf("%sdebug: state %d, error recovery discards token %d (%s)\n", - YYPREFIX, yystate, yychar, yys); - } -#endif - yychar = (-1); - goto yyloop; - } + + /* count tokens shifted since error; after three, turn off error status. */ + if (yyerrstatus) yyerrstatus--; + + yystate = yyn; + goto yynewstate; + +/* Do the default action for the current state. */ +yydefault: + + yyn = yydefact[yystate]; + if (yyn == 0) + goto yyerrlab; + +/* Do a reduction. yyn is the number of a rule to reduce with. */ yyreduce: -#if YYDEBUG - if (yydebug) - printf("%sdebug: state %d, reducing by rule %d (%s)\n", - YYPREFIX, yystate, yyn, yyrule[yyn]); -#endif - yym = yylen[yyn]; - yyval = yyvsp[1-yym]; - switch (yyn) + yylen = yyr2[yyn]; + if (yylen > 0) + yyval = yyvsp[1-yylen]; /* implement default value of the action */ + +#if YYDEBUG != 0 + if (yydebug) { -case 36: -#line 154 "parser.y" + int i; + + fprintf (stderr, "Reducing via rule %d (line %d), ", + yyn, yyrline[yyn]); + + /* Print the symbols being reduced, and their result. */ + for (i = yyprhs[yyn]; yyrhs[i] > 0; i++) + fprintf (stderr, "%s ", yytname[yyrhs[i]]); + fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]); + } +#endif + + + switch (yyn) { + +case 38: +#line 158 "parser.y" { - } -break; -case 37: -#line 160 "parser.y" + ; + break;} +case 39: +#line 164 "parser.y" { bx_dbg_diff_memory(); free(yyvsp[-1].sval); - } -break; -case 38: -#line 165 "parser.y" + ; + break;} +case 40: +#line 169 "parser.y" { bx_dbg_sync_memory(1); free(yyvsp[-2].sval); free(yyvsp[-1].sval); - } -break; -case 39: -#line 170 "parser.y" + ; + break;} +case 41: +#line 174 "parser.y" { bx_dbg_sync_memory(0); free(yyvsp[-2].sval); free(yyvsp[-1].sval); - } -break; -case 40: -#line 175 "parser.y" + ; + break;} +case 42: +#line 179 "parser.y" { bx_dbg_sync_cpu(1); free(yyvsp[-2].sval); free(yyvsp[-1].sval); - } -break; -case 41: -#line 180 "parser.y" + ; + break;} +case 43: +#line 184 "parser.y" { bx_dbg_sync_cpu(0); free(yyvsp[-2].sval); free(yyvsp[-1].sval); - } -break; -case 42: -#line 185 "parser.y" + ; + break;} +case 44: +#line 189 "parser.y" { free(yyvsp[-2].sval); bx_dbg_fast_forward(yyvsp[-1].uval); - } -break; -case 43: -#line 190 "parser.y" + ; + break;} +case 45: +#line 194 "parser.y" { - } -break; -case 44: -#line 193 "parser.y" + ; + break;} +case 46: +#line 197 "parser.y" { free(yyvsp[-4].sval); bx_dbg_info_address(yyvsp[-3].uval, yyvsp[-1].uval); - } -break; -case 45: -#line 198 "parser.y" -{ - } -break; -case 46: -#line 201 "parser.y" -{ - } -break; + ; + break;} case 47: -#line 206 "parser.y" -{ yyval.uval = 1; } -break; +#line 202 "parser.y" +{ + ; + break;} case 48: -#line 207 "parser.y" -{ yyval.uval = 0; } -break; +#line 205 "parser.y" +{ + ; + break;} case 49: -#line 208 "parser.y" -{ yyval.uval = 2; } -break; -case 50: -#line 209 "parser.y" -{ yyval.uval = 3; } -break; -case 51: #line 210 "parser.y" -{ yyval.uval = 4; } -break; -case 52: +{ yyval.uval = 1; ; + break;} +case 50: #line 211 "parser.y" -{ yyval.uval = 5; } -break; +{ yyval.uval = 0; ; + break;} +case 51: +#line 212 "parser.y" +{ yyval.uval = 2; ; + break;} +case 52: +#line 213 "parser.y" +{ yyval.uval = 3; ; + break;} case 53: -#line 216 "parser.y" +#line 214 "parser.y" +{ yyval.uval = 4; ; + break;} +case 54: +#line 215 "parser.y" +{ yyval.uval = 5; ; + break;} +case 55: +#line 220 "parser.y" { bx_dbg_timebp_command(0, yyvsp[-1].ulval); free(yyvsp[-2].sval); - } -break; -case 54: -#line 221 "parser.y" + ; + break;} +case 56: +#line 225 "parser.y" { bx_dbg_timebp_command(1, yyvsp[-1].ulval); free(yyvsp[-2].sval); - } -break; -case 55: -#line 229 "parser.y" + ; + break;} +case 57: +#line 233 "parser.y" { bx_dbg_record_command(yyvsp[-1].sval); free(yyvsp[-2].sval); free(yyvsp[-1].sval); - } -break; -case 56: -#line 237 "parser.y" + ; + break;} +case 58: +#line 241 "parser.y" { bx_dbg_playback_command(yyvsp[-1].sval); free(yyvsp[-2].sval); free(yyvsp[-1].sval); - } -break; -case 57: -#line 245 "parser.y" + ; + break;} +case 59: +#line 249 "parser.y" { bx_dbg_modebp_command(yyvsp[-1].sval); free(yyvsp[-2].sval); free(yyvsp[-1].sval); - } -break; -case 58: -#line 250 "parser.y" + ; + break;} +case 60: +#line 254 "parser.y" { bx_dbg_modebp_command(0); free(yyvsp[-1].sval); - } -break; -case 59: -#line 258 "parser.y" + ; + break;} +case 61: +#line 262 "parser.y" { bx_dbg_show_command(yyvsp[-1].sval); free(yyvsp[-2].sval); free(yyvsp[-1].sval); - } -break; -case 60: -#line 263 "parser.y" + ; + break;} +case 62: +#line 267 "parser.y" { bx_dbg_show_command(0); free(yyvsp[-1].sval); - } -break; -case 61: -#line 271 "parser.y" + ; + break;} +case 63: +#line 275 "parser.y" { bx_dbg_ptime_command(); free(yyvsp[-1].sval); - } -break; -case 62: -#line 279 "parser.y" + ; + break;} +case 64: +#line 283 "parser.y" { bx_dbg_trace_on_command(); free(yyvsp[-1].sval); - } -break; -case 63: -#line 287 "parser.y" + ; + break;} +case 65: +#line 291 "parser.y" { bx_dbg_trace_off_command(); free(yyvsp[-1].sval); - } -break; -case 64: -#line 295 "parser.y" + ; + break;} +case 66: +#line 299 "parser.y" { bx_dbg_print_stack_command(16); free(yyvsp[-1].sval); - } -break; -case 65: -#line 300 "parser.y" + ; + break;} +case 67: +#line 304 "parser.y" { bx_dbg_print_stack_command(yyvsp[-1].uval); free(yyvsp[-2].sval); - } -break; -case 66: -#line 308 "parser.y" + ; + break;} +case 68: +#line 312 "parser.y" { watchpoint_continue = 0; fprintf(stderr, "Will stop on watch points\n"); free(yyvsp[-2].sval); free(yyvsp[-1].sval); - } -break; -case 67: -#line 314 "parser.y" + ; + break;} +case 69: +#line 318 "parser.y" { watchpoint_continue = 1; fprintf(stderr, "Will not stop on watch points (they will still be logged)\n"); free(yyvsp[-2].sval); free(yyvsp[-1].sval); - } -break; -case 68: -#line 320 "parser.y" + ; + break;} +case 70: +#line 324 "parser.y" { bx_dbg_watch(-1, 0); free(yyvsp[-1].sval); - } -break; -case 69: -#line 325 "parser.y" + ; + break;} +case 71: +#line 329 "parser.y" { bx_dbg_unwatch(-1, 0); free(yyvsp[-1].sval); - } -break; -case 70: -#line 330 "parser.y" + ; + break;} +case 72: +#line 334 "parser.y" { bx_dbg_watch(1, yyvsp[-1].uval); free(yyvsp[-3].sval); free(yyvsp[-2].sval); - } -break; -case 71: -#line 335 "parser.y" + ; + break;} +case 73: +#line 339 "parser.y" { bx_dbg_unwatch(1, yyvsp[-1].uval); free(yyvsp[-3].sval); free(yyvsp[-2].sval); - } -break; -case 72: -#line 340 "parser.y" + ; + break;} +case 74: +#line 344 "parser.y" { bx_dbg_watch(0, yyvsp[-1].uval); free(yyvsp[-3].sval); free(yyvsp[-2].sval); - } -break; -case 73: -#line 345 "parser.y" + ; + break;} +case 75: +#line 349 "parser.y" { bx_dbg_unwatch(0, yyvsp[-1].uval); free(yyvsp[-3].sval); free(yyvsp[-2].sval); - } -break; -case 74: -#line 353 "parser.y" + ; + break;} +case 76: +#line 357 "parser.y" { bx_dbg_symbol_command(yyvsp[-1].sval, 0, 0); free(yyvsp[-2].sval); free(yyvsp[-1].sval); - } -break; -case 75: -#line 358 "parser.y" + ; + break;} +case 77: +#line 362 "parser.y" { bx_dbg_symbol_command(yyvsp[-2].sval, 0, yyvsp[-1].uval); free(yyvsp[-3].sval); free(yyvsp[-2].sval); - } -break; -case 76: -#line 363 "parser.y" + ; + break;} +case 78: +#line 367 "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); - } -break; -case 77: -#line 371 "parser.y" + ; + break;} +case 79: +#line 375 "parser.y" { bx_dbg_where_command(); free(yyvsp[-1].sval); - } -break; -case 78: -#line 379 "parser.y" + ; + break;} +case 80: +#line 383 "parser.y" { bx_dbg_print_string_command(yyvsp[-1].uval); free(yyvsp[-2].sval); - } -break; -case 79: -#line 387 "parser.y" + ; + break;} +case 81: +#line 391 "parser.y" { bx_dbg_continue_command(); free(yyvsp[-1].sval); - } -break; -case 80: -#line 395 "parser.y" + ; + break;} +case 82: +#line 399 "parser.y" { bx_dbg_stepN_command(1); free(yyvsp[-1].sval); - } -break; -case 81: -#line 400 "parser.y" + ; + break;} +case 83: +#line 404 "parser.y" { bx_dbg_stepN_command(yyvsp[-1].uval); free(yyvsp[-2].sval); - } -break; -case 82: -#line 408 "parser.y" -{ - bx_dbg_set_command(yyvsp[-3].sval, yyvsp[-2].sval, yyvsp[-1].sval); - free(yyvsp[-3].sval); free(yyvsp[-2].sval); free(yyvsp[-1].sval); - } -break; -case 83: -#line 413 "parser.y" -{ - bx_dbg_set_command(yyvsp[-3].sval, yyvsp[-2].sval, yyvsp[-1].sval); - free(yyvsp[-3].sval); free(yyvsp[-2].sval); free(yyvsp[-1].sval); - } -break; + ; + break;} case 84: -#line 418 "parser.y" +#line 412 "parser.y" +{ + bx_dbg_set_command(yyvsp[-3].sval, yyvsp[-2].sval, yyvsp[-1].sval); + free(yyvsp[-3].sval); free(yyvsp[-2].sval); free(yyvsp[-1].sval); + ; + break;} +case 85: +#line 417 "parser.y" +{ + bx_dbg_set_command(yyvsp[-3].sval, yyvsp[-2].sval, yyvsp[-1].sval); + free(yyvsp[-3].sval); free(yyvsp[-2].sval); free(yyvsp[-1].sval); + ; + break;} +case 86: +#line 422 "parser.y" { bx_dbg_set_symbol_command(yyvsp[-3].sval, yyvsp[-1].uval); free(yyvsp[-4].sval); free(yyvsp[-3].sval); - } -break; -case 85: -#line 426 "parser.y" + ; + break;} +case 87: +#line 430 "parser.y" { bx_dbg_vbreakpoint_command(0, 0, 0); free(yyvsp[-1].sval); - } -break; -case 86: -#line 431 "parser.y" + ; + break;} +case 88: +#line 435 "parser.y" { bx_dbg_vbreakpoint_command(1, yyvsp[-3].uval, yyvsp[-1].uval); free(yyvsp[-4].sval); - } -break; -case 87: -#line 436 "parser.y" + ; + break;} +case 89: +#line 440 "parser.y" { bx_dbg_lbreakpoint_command(0, 0); free(yyvsp[-1].sval); - } -break; -case 88: -#line 441 "parser.y" + ; + break;} +case 90: +#line 445 "parser.y" { bx_dbg_lbreakpoint_command(1, yyvsp[-1].uval); free(yyvsp[-2].sval); - } -break; -case 89: -#line 446 "parser.y" + ; + break;} +case 91: +#line 450 "parser.y" { bx_dbg_pbreakpoint_command(0, 0); free(yyvsp[-1].sval); - } -break; -case 90: -#line 451 "parser.y" + ; + break;} +case 92: +#line 455 "parser.y" { bx_dbg_pbreakpoint_command(1, yyvsp[-1].uval); free(yyvsp[-2].sval); - } -break; -case 91: -#line 456 "parser.y" + ; + break;} +case 93: +#line 460 "parser.y" { bx_dbg_pbreakpoint_command(1, yyvsp[-1].uval); free(yyvsp[-3].sval); - } -break; -case 92: -#line 464 "parser.y" + ; + break;} +case 94: +#line 468 "parser.y" { bx_dbg_info_bpoints_command(); free(yyvsp[-2].sval); free(yyvsp[-1].sval); - } -break; -case 93: -#line 469 "parser.y" + ; + break;} +case 95: +#line 473 "parser.y" { bx_dbg_info_program_command(); free(yyvsp[-2].sval); free(yyvsp[-1].sval); - } -break; -case 94: -#line 474 "parser.y" + ; + break;} +case 96: +#line 478 "parser.y" { bx_dbg_info_registers_command(BX_INFO_CPU_REGS); free(yyvsp[-2].sval); free(yyvsp[-1].sval); - } -break; -case 95: -#line 479 "parser.y" + ; + break;} +case 97: +#line 483 "parser.y" { bx_dbg_info_registers_command(BX_INFO_FPU_REGS); free(yyvsp[-2].sval); free(yyvsp[-1].sval); - } -break; -case 96: -#line 484 "parser.y" + ; + break;} +case 98: +#line 488 "parser.y" { bx_dbg_info_registers_command(BX_INFO_CPU_REGS | BX_INFO_FPU_REGS); free(yyvsp[-2].sval); free(yyvsp[-1].sval); - } -break; -case 97: -#line 489 "parser.y" + ; + break;} +case 99: +#line 493 "parser.y" { bx_dbg_info_dirty_command(); free(yyvsp[-2].sval); free(yyvsp[-1].sval); - } -break; -case 98: -#line 494 "parser.y" + ; + break;} +case 100: +#line 498 "parser.y" { bx_dbg_info_idt_command(yyvsp[-1].uval_range); free(yyvsp[-3].sval); free(yyvsp[-2].sval); - } -break; -case 99: -#line 499 "parser.y" + ; + break;} +case 101: +#line 503 "parser.y" { bx_dbg_info_gdt_command(yyvsp[-1].uval_range); free(yyvsp[-3].sval); free(yyvsp[-2].sval); - } -break; -case 100: -#line 504 "parser.y" + ; + break;} +case 102: +#line 508 "parser.y" { bx_dbg_info_ldt_command(yyvsp[-1].uval_range); free(yyvsp[-3].sval); free(yyvsp[-2].sval); - } -break; -case 101: -#line 509 "parser.y" + ; + break;} +case 103: +#line 513 "parser.y" { bx_dbg_info_tss_command(yyvsp[-1].uval_range); free(yyvsp[-3].sval); free(yyvsp[-2].sval); - } -break; -case 102: -#line 514 "parser.y" + ; + break;} +case 104: +#line 518 "parser.y" { bx_dbg_info_linux_command(); free(yyvsp[-2].sval); free(yyvsp[-1].sval); - } -break; -case 103: -#line 519 "parser.y" + ; + break;} +case 105: +#line 523 "parser.y" { bx_dbg_info_control_regs_command(); free(yyvsp[-2].sval); free(yyvsp[-1].sval); - } -break; -case 104: -#line 524 "parser.y" + ; + break;} +case 106: +#line 528 "parser.y" { bx_dbg_info_ne2k(-1, -1); free(yyvsp[-2].sval); free(yyvsp[-1].sval); - } -break; -case 105: -#line 529 "parser.y" + ; + break;} +case 107: +#line 533 "parser.y" { free(yyvsp[-4].sval); free(yyvsp[-3].sval); free(yyvsp[-2].sval); bx_dbg_info_ne2k(yyvsp[-1].uval, -1); - } -break; -case 106: -#line 534 "parser.y" + ; + break;} +case 108: +#line 538 "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 107: -#line 541 "parser.y" -{ yyval.uval = EMPTY_ARG; } -break; + ; + break;} case 109: #line 545 "parser.y" -{ yyval.uval_range = make_num_range (EMPTY_ARG, EMPTY_ARG); } -break; +{ yyval.uval = EMPTY_ARG; ; + break;} case 111: -#line 550 "parser.y" +#line 549 "parser.y" +{ yyval.uval_range = make_num_range (EMPTY_ARG, EMPTY_ARG); ; + break;} +case 113: +#line 554 "parser.y" { yyval.uval_range = make_num_range (yyvsp[0].uval, yyvsp[0].uval); - } -break; -case 112: -#line 555 "parser.y" + ; + break;} +case 114: +#line 559 "parser.y" { yyval.uval_range = make_num_range (yyvsp[-1].uval, yyvsp[0].uval); - } -break; -case 113: -#line 560 "parser.y" + ; + break;} +case 115: +#line 564 "parser.y" { yyval.uval_range = make_num_range (yyvsp[-2].uval, yyvsp[0].uval); - } -break; -case 114: -#line 567 "parser.y" + ; + break;} +case 116: +#line 571 "parser.y" { bx_dbg_dump_cpu_command(); free(yyvsp[-1].sval); - } -break; -case 115: -#line 575 "parser.y" + ; + break;} +case 117: +#line 579 "parser.y" { bx_dbg_del_breakpoint_command(yyvsp[-1].uval); free(yyvsp[-2].sval); - } -break; -case 116: -#line 583 "parser.y" + ; + break;} +case 118: +#line 587 "parser.y" { bx_dbg_quit_command(); free(yyvsp[-1].sval); - } -break; -case 117: -#line 592 "parser.y" + ; + break;} +case 119: +#line 596 "parser.y" { bx_dbg_examine_command(yyvsp[-3].sval, yyvsp[-2].sval,1, yyvsp[-1].uval,1, 0); #if BX_NUM_SIMULATORS >= 2 bx_dbg_examine_command(yyvsp[-3].sval, yyvsp[-2].sval,1, yyvsp[-1].uval,1, 1); #endif free(yyvsp[-3].sval); free(yyvsp[-2].sval); - } -break; -case 118: -#line 600 "parser.y" + ; + break;} +case 120: +#line 604 "parser.y" { bx_dbg_examine_command(yyvsp[-2].sval, yyvsp[-1].sval,1, 0,0, 0); #if BX_NUM_SIMULATORS >= 2 bx_dbg_examine_command(yyvsp[-2].sval, yyvsp[-1].sval,1, 0,0, 1); #endif free(yyvsp[-2].sval); free(yyvsp[-1].sval); - } -break; -case 119: -#line 608 "parser.y" + ; + break;} +case 121: +#line 612 "parser.y" { - /*FIXME HanishKVC This method of hunting thro all the */ - /* simulators may be better than using 2 calls if */ - /* BX_NUM_SIMULATORS greater than or equal to 2 as */ - /* done for other cases of BX_TOKEN_EXAMINE*/ + //FIXME HanishKVC This method of hunting thro all the + // simulators may be better than using 2 calls if + // BX_NUM_SIMULATORS greater than or equal to 2 as + // done for other cases of BX_TOKEN_EXAMINE int iCurSim; for(iCurSim = 0; iCurSim < BX_NUM_SIMULATORS; iCurSim++) { bx_dbg_examine_command(yyvsp[-2].sval, NULL,0, yyvsp[-1].uval,1, iCurSim); } free(yyvsp[-2].sval); - } -break; -case 120: -#line 621 "parser.y" + ; + break;} +case 122: +#line 625 "parser.y" { - /*FIXME HanishKVC This method of hunting thro all the */ - /* simulators may be better than using 2 calls if */ - /* BX_NUM_SIMULATORS greater than or equal to 2 as */ - /* done for other cases of BX_TOKEN_EXAMINE*/ + //FIXME HanishKVC This method of hunting thro all the + // simulators may be better than using 2 calls if + // BX_NUM_SIMULATORS greater than or equal to 2 as + // done for other cases of BX_TOKEN_EXAMINE int iCurSim; for(iCurSim = 0; iCurSim < BX_NUM_SIMULATORS; iCurSim++) { bx_dbg_examine_command(yyvsp[-1].sval, NULL,0, 0,0, iCurSim); } free(yyvsp[-1].sval); - } -break; -case 121: -#line 637 "parser.y" + ; + break;} +case 123: +#line 641 "parser.y" { bx_dbg_setpmem_command(yyvsp[-3].uval, yyvsp[-2].uval, yyvsp[-1].uval); free(yyvsp[-4].sval); - } -break; -case 122: -#line 645 "parser.y" + ; + break;} +case 124: +#line 649 "parser.y" { bx_dbg_query_command(yyvsp[-1].sval); free(yyvsp[-2].sval); free(yyvsp[-1].sval); - } -break; -case 123: -#line 653 "parser.y" + ; + break;} +case 125: +#line 657 "parser.y" { bx_dbg_take_command(yyvsp[-1].sval, 1); free(yyvsp[-2].sval); free(yyvsp[-1].sval); - } -break; -case 124: -#line 658 "parser.y" + ; + break;} +case 126: +#line 662 "parser.y" { bx_dbg_take_command(yyvsp[-2].sval, yyvsp[-1].uval); free(yyvsp[-3].sval); free(yyvsp[-2].sval); - } -break; -case 125: -#line 663 "parser.y" + ; + break;} +case 127: +#line 667 "parser.y" { bx_dbg_take_command(yyvsp[-1].sval, 1); free(yyvsp[-2].sval); free(yyvsp[-1].sval); - } -break; -case 126: -#line 671 "parser.y" + ; + break;} +case 128: +#line 675 "parser.y" { bx_dbg_set_cpu_command(); free(yyvsp[-1].sval); - } -break; -case 127: -#line 679 "parser.y" + ; + break;} +case 129: +#line 683 "parser.y" { bx_dbg_disassemble_command(yyvsp[-1].uval_range); free(yyvsp[-2].sval); - } -break; -case 128: -#line 687 "parser.y" -{ - bx_dbg_instrument_command(yyvsp[-1].sval); - free(yyvsp[-2].sval); free(yyvsp[-1].sval); - } -break; -case 129: -#line 692 "parser.y" -{ - bx_dbg_instrument_command(yyvsp[-1].sval); - free(yyvsp[-2].sval); free(yyvsp[-1].sval); - } -break; + ; + break;} case 130: -#line 697 "parser.y" +#line 691 "parser.y" { bx_dbg_instrument_command(yyvsp[-1].sval); free(yyvsp[-2].sval); free(yyvsp[-1].sval); - } -break; + ; + break;} case 131: -#line 702 "parser.y" +#line 696 "parser.y" { bx_dbg_instrument_command(yyvsp[-1].sval); free(yyvsp[-2].sval); free(yyvsp[-1].sval); - } -break; + ; + break;} case 132: -#line 710 "parser.y" +#line 701 "parser.y" +{ + bx_dbg_instrument_command(yyvsp[-1].sval); + free(yyvsp[-2].sval); free(yyvsp[-1].sval); + ; + break;} +case 133: +#line 706 "parser.y" +{ + bx_dbg_instrument_command(yyvsp[-1].sval); + free(yyvsp[-2].sval); free(yyvsp[-1].sval); + ; + break;} +case 134: +#line 714 "parser.y" { bx_dbg_loader_command(yyvsp[-1].sval); free(yyvsp[-2].sval); free(yyvsp[-1].sval); - } -break; -case 133: -#line 718 "parser.y" + ; + break;} +case 135: +#line 722 "parser.y" { bx_dbg_doit_command(yyvsp[-1].uval); free(yyvsp[-2].sval); - } -break; -case 134: -#line 726 "parser.y" + ; + break;} +case 136: +#line 730 "parser.y" { bx_dbg_crc_command(yyvsp[-2].uval, yyvsp[-1].uval); free(yyvsp[-3].sval); - } -break; -case 135: -#line 734 "parser.y" -{ - bx_dbg_maths_command(yyvsp[-3].sval, yyvsp[-2].uval, yyvsp[-1].uval); - free(yyvsp[-4].sval); free(yyvsp[-3].sval); - } -break; -case 136: -#line 739 "parser.y" -{ - bx_dbg_maths_command(yyvsp[-3].sval, yyvsp[-2].uval, yyvsp[-1].uval); - free(yyvsp[-4].sval); free(yyvsp[-3].sval); - } -break; + ; + break;} case 137: -#line 744 "parser.y" +#line 738 "parser.y" { bx_dbg_maths_command(yyvsp[-3].sval, yyvsp[-2].uval, yyvsp[-1].uval); free(yyvsp[-4].sval); free(yyvsp[-3].sval); - } -break; + ; + break;} case 138: -#line 749 "parser.y" +#line 743 "parser.y" { bx_dbg_maths_command(yyvsp[-3].sval, yyvsp[-2].uval, yyvsp[-1].uval); free(yyvsp[-4].sval); free(yyvsp[-3].sval); - } -break; + ; + break;} case 139: -#line 754 "parser.y" +#line 748 "parser.y" +{ + bx_dbg_maths_command(yyvsp[-3].sval, yyvsp[-2].uval, yyvsp[-1].uval); + free(yyvsp[-4].sval); free(yyvsp[-3].sval); + ; + break;} +case 140: +#line 753 "parser.y" +{ + bx_dbg_maths_command(yyvsp[-3].sval, yyvsp[-2].uval, yyvsp[-1].uval); + free(yyvsp[-4].sval); free(yyvsp[-3].sval); + ; + break;} +case 141: +#line 758 "parser.y" { bx_dbg_maths_expression_command(yyvsp[-1].sval); free(yyvsp[-2].sval); free(yyvsp[-1].sval); - } -break; -case 140: -#line 761 "parser.y" + ; + break;} +case 142: +#line 765 "parser.y" { bx_dbg_v2l_command(yyvsp[-3].uval, yyvsp[-1].uval); free(yyvsp[-4].sval); - } -break; -#line 1404 "y.tab.c" - } - yyssp -= yym; - yystate = *yyssp; - yyvsp -= yym; - yym = yylhs[yyn]; - if (yystate == 0 && yym == 0) - { -#if YYDEBUG - if (yydebug) - printf("%sdebug: after reduction, shifting from state 0 to\ - state %d\n", YYPREFIX, YYFINAL); -#endif - yystate = YYFINAL; - *++yyssp = YYFINAL; - *++yyvsp = yyval; - if (yychar < 0) - { - if ((yychar = yylex()) < 0) yychar = 0; -#if YYDEBUG - if (yydebug) - { - yys = 0; - if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; - if (!yys) yys = "illegal-symbol"; - printf("%sdebug: state %d, reading %d (%s)\n", - YYPREFIX, YYFINAL, yychar, yys); - } -#endif - } - if (yychar == 0) goto yyaccept; - goto yyloop; - } - if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 && - yyn <= YYTABLESIZE && yycheck[yyn] == yystate) - yystate = yytable[yyn]; - else - yystate = yydgoto[yym]; -#if YYDEBUG - if (yydebug) - printf("%sdebug: after reduction, shifting from state %d \ -to state %d\n", YYPREFIX, *yyssp, yystate); -#endif - if (yyssp >= yyss + yystacksize - 1) - { - goto yyoverflow; - } - *++yyssp = yystate; - *++yyvsp = yyval; - goto yyloop; -yyoverflow: - yyerror("yacc stack overflow"); -yyabort: - return (1); -yyaccept: - return (0); + ; + break;} +case 143: +#line 773 "parser.y" +{ + bx_dbg_trace_reg_on_command(); + free(yyvsp[-1].sval); + ; + break;} +case 144: +#line 781 "parser.y" +{ + bx_dbg_trace_reg_off_command(); + free(yyvsp[-1].sval); + ; + break;} } + /* the action file gets copied in in place of this dollarsign */ +#line 543 "/usr/share/bison/bison.simple" + + yyvsp -= yylen; + yyssp -= yylen; +#ifdef YYLSP_NEEDED + yylsp -= yylen; +#endif + +#if YYDEBUG != 0 + if (yydebug) + { + short *ssp1 = yyss - 1; + fprintf (stderr, "state stack now"); + while (ssp1 != yyssp) + fprintf (stderr, " %d", *++ssp1); + fprintf (stderr, "\n"); + } +#endif + + *++yyvsp = yyval; + +#ifdef YYLSP_NEEDED + yylsp++; + if (yylen == 0) + { + yylsp->first_line = yylloc.first_line; + yylsp->first_column = yylloc.first_column; + yylsp->last_line = (yylsp-1)->last_line; + yylsp->last_column = (yylsp-1)->last_column; + yylsp->text = 0; + } + else + { + yylsp->last_line = (yylsp+yylen-1)->last_line; + yylsp->last_column = (yylsp+yylen-1)->last_column; + } +#endif + + /* Now "shift" the result of the reduction. + Determine what state that goes to, + based on the state we popped back to + and the rule number reduced by. */ + + yyn = yyr1[yyn]; + + yystate = yypgoto[yyn - YYNTBASE] + *yyssp; + if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp) + yystate = yytable[yystate]; + else + yystate = yydefgoto[yyn - YYNTBASE]; + + goto yynewstate; + +yyerrlab: /* here on detecting error */ + + if (! yyerrstatus) + /* If not already recovering from an error, report this error. */ + { + ++yynerrs; + +#ifdef YYERROR_VERBOSE + yyn = yypact[yystate]; + + if (yyn > YYFLAG && yyn < YYLAST) + { + int size = 0; + char *msg; + int x, count; + + count = 0; + /* Start X at -yyn if nec to avoid negative indexes in yycheck. */ + for (x = (yyn < 0 ? -yyn : 0); + x < (sizeof(yytname) / sizeof(char *)); x++) + if (yycheck[x + yyn] == x) + size += strlen(yytname[x]) + 15, count++; + msg = (char *) malloc(size + 15); + if (msg != 0) + { + strcpy(msg, "parse error"); + + if (count < 5) + { + count = 0; + for (x = (yyn < 0 ? -yyn : 0); + x < (sizeof(yytname) / sizeof(char *)); x++) + if (yycheck[x + yyn] == x) + { + strcat(msg, count == 0 ? ", expecting `" : " or `"); + strcat(msg, yytname[x]); + strcat(msg, "'"); + count++; + } + } + yyerror(msg); + free(msg); + } + else + yyerror ("parse error; also virtual memory exceeded"); + } + else +#endif /* YYERROR_VERBOSE */ + yyerror("parse error"); + } + + goto yyerrlab1; +yyerrlab1: /* here on error raised explicitly by an action */ + + if (yyerrstatus == 3) + { + /* if just tried and failed to reuse lookahead token after an error, discard it. */ + + /* return failure if at end of input */ + if (yychar == YYEOF) + YYABORT; + +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]); +#endif + + yychar = YYEMPTY; + } + + /* Else will try to reuse lookahead token + after shifting the error token. */ + + yyerrstatus = 3; /* Each real token shifted decrements this */ + + goto yyerrhandle; + +yyerrdefault: /* current state does not do anything special for the error token. */ + +#if 0 + /* This is wrong; only states that explicitly want error tokens + should shift them. */ + yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/ + if (yyn) goto yydefault; +#endif + +yyerrpop: /* pop the current state because it cannot handle the error token */ + + if (yyssp == yyss) YYABORT; + yyvsp--; + yystate = *--yyssp; +#ifdef YYLSP_NEEDED + yylsp--; +#endif + +#if YYDEBUG != 0 + if (yydebug) + { + short *ssp1 = yyss - 1; + fprintf (stderr, "Error: state stack now"); + while (ssp1 != yyssp) + fprintf (stderr, " %d", *++ssp1); + fprintf (stderr, "\n"); + } +#endif + +yyerrhandle: + + yyn = yypact[yystate]; + if (yyn == YYFLAG) + goto yyerrdefault; + + yyn += YYTERROR; + if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR) + goto yyerrdefault; + + yyn = yytable[yyn]; + if (yyn < 0) + { + if (yyn == YYFLAG) + goto yyerrpop; + yyn = -yyn; + goto yyreduce; + } + else if (yyn == 0) + goto yyerrpop; + + if (yyn == YYFINAL) + YYACCEPT; + +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Shifting error token, "); +#endif + + *++yyvsp = yylval; +#ifdef YYLSP_NEEDED + *++yylsp = yylloc; +#endif + + yystate = yyn; + goto yynewstate; + + yyacceptlab: + /* YYACCEPT comes here. */ + if (yyfree_stacks) + { + free (yyss); + free (yyvs); +#ifdef YYLSP_NEEDED + free (yyls); +#endif + } + return 0; + + yyabortlab: + /* YYABORT comes here. */ + if (yyfree_stacks) + { + free (yyss); + free (yyvs); +#ifdef YYLSP_NEEDED + free (yyls); +#endif + } + return 1; +} +#line 787 "parser.y" + diff --git a/bochs/debug/parser.h b/bochs/debug/parser.h index d56a43a9b..b58e90b28 100644 --- a/bochs/debug/parser.h +++ b/bochs/debug/parser.h @@ -1,94 +1,98 @@ -#define BX_TOKEN_CONTINUE 257 -#define BX_TOKEN_STEPN 258 -#define BX_TOKEN_NEXT_STEP 259 -#define BX_TOKEN_SET 260 -#define BX_TOKEN_DEBUGGER 261 -#define BX_TOKEN_VBREAKPOINT 262 -#define BX_TOKEN_LBREAKPOINT 263 -#define BX_TOKEN_PBREAKPOINT 264 -#define BX_TOKEN_DEL_BREAKPOINT 265 -#define BX_TOKEN_INFO 266 -#define BX_TOKEN_QUIT 267 -#define BX_TOKEN_PROGRAM 268 -#define BX_TOKEN_REGISTERS 269 -#define BX_TOKEN_FPU 270 -#define BX_TOKEN_ALL 271 -#define BX_TOKEN_IDT 272 -#define BX_TOKEN_GDT 273 -#define BX_TOKEN_LDT 274 -#define BX_TOKEN_TSS 275 -#define BX_TOKEN_DIRTY 276 -#define BX_TOKEN_LINUX 277 -#define BX_TOKEN_CONTROL_REGS 278 -#define BX_TOKEN_EXAMINE 279 -#define BX_TOKEN_XFORMAT 280 -#define BX_TOKEN_SETPMEM 281 -#define BX_TOKEN_SYMBOLNAME 282 -#define BX_TOKEN_QUERY 283 -#define BX_TOKEN_PENDING 284 -#define BX_TOKEN_TAKE 285 -#define BX_TOKEN_DMA 286 -#define BX_TOKEN_IRQ 287 -#define BX_TOKEN_DUMP_CPU 288 -#define BX_TOKEN_SET_CPU 289 -#define BX_TOKEN_DIS 290 -#define BX_TOKEN_ON 291 -#define BX_TOKEN_OFF 292 -#define BX_TOKEN_DISASSEMBLE 293 -#define BX_TOKEN_INSTRUMENT 294 -#define BX_TOKEN_START 295 -#define BX_TOKEN_STOP 296 -#define BX_TOKEN_RESET 297 -#define BX_TOKEN_PRINT 298 -#define BX_TOKEN_LOADER 299 -#define BX_TOKEN_STRING 300 -#define BX_TOKEN_DOIT 301 -#define BX_TOKEN_CRC 302 -#define BX_TOKEN_TRACEON 303 -#define BX_TOKEN_TRACEOFF 304 -#define BX_TOKEN_PTIME 305 -#define BX_TOKEN_TIMEBP_ABSOLUTE 306 -#define BX_TOKEN_TIMEBP 307 -#define BX_TOKEN_RECORD 308 -#define BX_TOKEN_PLAYBACK 309 -#define BX_TOKEN_MODEBP 310 -#define BX_TOKEN_PRINT_STACK 311 -#define BX_TOKEN_WATCH 312 -#define BX_TOKEN_UNWATCH 313 -#define BX_TOKEN_READ 314 -#define BX_TOKEN_WRITE 315 -#define BX_TOKEN_SHOW 316 -#define BX_TOKEN_SYMBOL 317 -#define BX_TOKEN_GLOBAL 318 -#define BX_TOKEN_WHERE 319 -#define BX_TOKEN_PRINT_STRING 320 -#define BX_TOKEN_DIFF_MEMORY 321 -#define BX_TOKEN_SYNC_MEMORY 322 -#define BX_TOKEN_SYNC_CPU 323 -#define BX_TOKEN_FAST_FORWARD 324 -#define BX_TOKEN_PHY_2_LOG 325 -#define BX_TOKEN_NUMERIC 326 -#define BX_TOKEN_LONG_NUMERIC 327 -#define BX_TOKEN_INFO_ADDRESS 328 -#define BX_TOKEN_NE2000 329 -#define BX_TOKEN_PAGE 330 -#define BX_TOKEN_CS 331 -#define BX_TOKEN_ES 332 -#define BX_TOKEN_SS 333 -#define BX_TOKEN_DS 334 -#define BX_TOKEN_FS 335 -#define BX_TOKEN_GS 336 -#define BX_TOKEN_ALWAYS_CHECK 337 -#define BX_TOKEN_MATHS 338 -#define BX_TOKEN_ADD 339 -#define BX_TOKEN_SUB 340 -#define BX_TOKEN_MUL 341 -#define BX_TOKEN_DIV 342 -#define BX_TOKEN_V2L 343 typedef union { char *sval; Bit32u uval; Bit64u ulval; bx_num_range uval_range; } YYSTYPE; +#define BX_TOKEN_CONTINUE 257 +#define BX_TOKEN_STEPN 258 +#define BX_TOKEN_NEXT_STEP 259 +#define BX_TOKEN_SET 260 +#define BX_TOKEN_DEBUGGER 261 +#define BX_TOKEN_VBREAKPOINT 262 +#define BX_TOKEN_LBREAKPOINT 263 +#define BX_TOKEN_PBREAKPOINT 264 +#define BX_TOKEN_DEL_BREAKPOINT 265 +#define BX_TOKEN_INFO 266 +#define BX_TOKEN_QUIT 267 +#define BX_TOKEN_PROGRAM 268 +#define BX_TOKEN_REGISTERS 269 +#define BX_TOKEN_FPU 270 +#define BX_TOKEN_ALL 271 +#define BX_TOKEN_IDT 272 +#define BX_TOKEN_GDT 273 +#define BX_TOKEN_LDT 274 +#define BX_TOKEN_TSS 275 +#define BX_TOKEN_DIRTY 276 +#define BX_TOKEN_LINUX 277 +#define BX_TOKEN_CONTROL_REGS 278 +#define BX_TOKEN_EXAMINE 279 +#define BX_TOKEN_XFORMAT 280 +#define BX_TOKEN_SETPMEM 281 +#define BX_TOKEN_SYMBOLNAME 282 +#define BX_TOKEN_QUERY 283 +#define BX_TOKEN_PENDING 284 +#define BX_TOKEN_TAKE 285 +#define BX_TOKEN_DMA 286 +#define BX_TOKEN_IRQ 287 +#define BX_TOKEN_DUMP_CPU 288 +#define BX_TOKEN_SET_CPU 289 +#define BX_TOKEN_DIS 290 +#define BX_TOKEN_ON 291 +#define BX_TOKEN_OFF 292 +#define BX_TOKEN_DISASSEMBLE 293 +#define BX_TOKEN_INSTRUMENT 294 +#define BX_TOKEN_START 295 +#define BX_TOKEN_STOP 296 +#define BX_TOKEN_RESET 297 +#define BX_TOKEN_PRINT 298 +#define BX_TOKEN_LOADER 299 +#define BX_TOKEN_STRING 300 +#define BX_TOKEN_DOIT 301 +#define BX_TOKEN_CRC 302 +#define BX_TOKEN_TRACEON 303 +#define BX_TOKEN_TRACEOFF 304 +#define BX_TOKEN_PTIME 305 +#define BX_TOKEN_TIMEBP_ABSOLUTE 306 +#define BX_TOKEN_TIMEBP 307 +#define BX_TOKEN_RECORD 308 +#define BX_TOKEN_PLAYBACK 309 +#define BX_TOKEN_MODEBP 310 +#define BX_TOKEN_PRINT_STACK 311 +#define BX_TOKEN_WATCH 312 +#define BX_TOKEN_UNWATCH 313 +#define BX_TOKEN_READ 314 +#define BX_TOKEN_WRITE 315 +#define BX_TOKEN_SHOW 316 +#define BX_TOKEN_SYMBOL 317 +#define BX_TOKEN_GLOBAL 318 +#define BX_TOKEN_WHERE 319 +#define BX_TOKEN_PRINT_STRING 320 +#define BX_TOKEN_DIFF_MEMORY 321 +#define BX_TOKEN_SYNC_MEMORY 322 +#define BX_TOKEN_SYNC_CPU 323 +#define BX_TOKEN_FAST_FORWARD 324 +#define BX_TOKEN_PHY_2_LOG 325 +#define BX_TOKEN_NUMERIC 326 +#define BX_TOKEN_LONG_NUMERIC 327 +#define BX_TOKEN_INFO_ADDRESS 328 +#define BX_TOKEN_NE2000 329 +#define BX_TOKEN_PAGE 330 +#define BX_TOKEN_CS 331 +#define BX_TOKEN_ES 332 +#define BX_TOKEN_SS 333 +#define BX_TOKEN_DS 334 +#define BX_TOKEN_FS 335 +#define BX_TOKEN_GS 336 +#define BX_TOKEN_ALWAYS_CHECK 337 +#define BX_TOKEN_MATHS 338 +#define BX_TOKEN_ADD 339 +#define BX_TOKEN_SUB 340 +#define BX_TOKEN_MUL 341 +#define BX_TOKEN_DIV 342 +#define BX_TOKEN_V2L 343 +#define BX_TOKEN_TRACEREGON 344 +#define BX_TOKEN_TRACEREGOFF 345 + + extern YYSTYPE bxlval; diff --git a/bochs/debug/parser.y b/bochs/debug/parser.y index 2e9e9084a..16cbebb66 100644 --- a/bochs/debug/parser.y +++ b/bochs/debug/parser.y @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: parser.y,v 1.5 2001-10-03 13:10:37 bdenney Exp $ +// $Id: parser.y,v 1.6 2001-11-28 18:35:21 instinc Exp $ ///////////////////////////////////////////////////////////////////////// %{ @@ -107,6 +107,8 @@ %token BX_TOKEN_MUL %token BX_TOKEN_DIV %token BX_TOKEN_V2L +%token BX_TOKEN_TRACEREGON +%token BX_TOKEN_TRACEREGOFF %type segment_register %type optional_numeric %type numeric_range optional_numeric_range @@ -149,6 +151,8 @@ command: | print_string_command | cosim_commands | v2l_command + | trace_reg_on_command + | trace_reg_off_command | | '\n' { @@ -764,4 +768,20 @@ v2l_command: } ; +trace_reg_on_command: + BX_TOKEN_TRACEREGON '\n' + { + bx_dbg_trace_reg_on_command(); + free($1); + } + ; + +trace_reg_off_command: + BX_TOKEN_TRACEREGOFF '\n' + { + bx_dbg_trace_reg_off_command(); + free($1); + } + ; + %%