Remove parenthesis around 'show command' arguments

Fixed in lexer and parser
This commit is contained in:
Stanislav Shwartsman 2006-02-11 21:19:22 +00:00
parent e8ec9e854b
commit bc30171d4a
7 changed files with 1504 additions and 1569 deletions

View File

@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////
// $Id: dbg_main.cc,v 1.52 2006-02-11 20:47:22 sshwarts Exp $
// $Id: dbg_main.cc,v 1.53 2006-02-11 21:19:22 sshwarts Exp $
/////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2001 MandrakeSoft S.A.
@ -849,20 +849,20 @@ unsigned int dbg_show_mask = 0;
// 0x8 iret
// 0x10 interrupts (includes iret)
void bx_dbg_show_command(char* arg)
void bx_dbg_show_command(const char* arg)
{
if(arg) {
if (!strcmp(arg,"\"mode\"")){
if (!strcmp(arg,"mode")){
dbg_show_mask = 0x80;
} else if (!strcmp(arg,"\"int\"")){
} else if (!strcmp(arg,"int")){
dbg_show_mask = 0xc0;
} else if(!strcmp(arg,"\"call\"")){
} else if(!strcmp(arg,"call")){
dbg_show_mask = 0xe0;
} else if(!strcmp(arg,"\"ret\"")){
} else if(!strcmp(arg,"ret")){
dbg_show_mask = 0xe0;
} else if(!strcmp(arg,"\"off\"")){
} else if(!strcmp(arg,"off")){
dbg_show_mask = 0x0;
} else if(!strcmp(arg,"\"dbg-all\"")){
} else if(!strcmp(arg,"dbg-all")){
bx_dbg.floppy = 1;
bx_dbg.keyboard = 1;
bx_dbg.video = 1;
@ -890,7 +890,7 @@ void bx_dbg_show_command(char* arg)
/* bx_dbg.record_io = 1; this is a pointer .. somewhere */
printf("Turned on all bx_dbg flags\n");
return;
} else if(!strcmp(arg,"\"none\"")){
} else if(!strcmp(arg,"dbg-none")){
bx_dbg.floppy = 0;
bx_dbg.keyboard = 0;
bx_dbg.video = 0;
@ -918,11 +918,11 @@ void bx_dbg_show_command(char* arg)
/* bx_dbg.record_io = 0; this is a pointer .. somewhere */
printf("Turned off all bx_dbg flags\n");
return;
} else if(!strcmp(arg,"\"vga\"")){
} else if(!strcmp(arg,"vga")){
DEV_vga_refresh();
return;
} else {
printf("Unrecognized arg: %s (\"mode\" \"int\" \"call\" \"ret\" \"off\" \"dbg-all\" \"none\" are valid)\n",arg);
printf("Unrecognized arg: %s (mode, int, call, ret, off, dbg-all and dbg-none are valid)\n",arg);
return;
}
} else {
@ -1649,7 +1649,7 @@ void bx_dbg_disassemble_switch_mode()
bx_disassemble.toggle_syntax_mode();
}
void bx_dbg_take_command(char *what, unsigned n)
void bx_dbg_take_command(const char *what, unsigned n)
{
if ( !strcmp(what, "dma") ) {
if (n == 0) {
@ -2207,7 +2207,7 @@ void bx_dbg_set_symbol_command(char *symbol, Bit32u val)
}
}
void bx_dbg_query_command(char *what)
void bx_dbg_query_command(const char *what)
{
unsigned pending;
@ -2500,7 +2500,7 @@ void bx_dbg_instrument_command(const char *comm)
BX_INSTR_PRINT();
}
else {
dbg_printf("Error: command 'instrument %s' not implemented.\n", comm);
dbg_printf("Error: command 'instrument %s' not recognized\n", comm);
bx_dbg_exit(1);
}
#else

View File

@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////
// $Id: debug.h,v 1.18 2006-02-11 20:47:22 sshwarts Exp $
// $Id: debug.h,v 1.19 2006-02-11 21:19:22 sshwarts Exp $
/////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2001 MandrakeSoft S.A.
@ -223,10 +223,6 @@ void bx_dbg_set_reg32_value(unsigned reg, Bit32u value);
Bit32u bx_dbg_get_laddr(Bit16u sel, Bit32u ofs);
void bx_dbg_step_over_command(void);
bx_num_range make_num_range (Bit64s from, Bit64s to);
char* bx_dbg_symbolic_address(Bit32u context, Bit32u eip, Bit32u base);
char* bx_dbg_disasm_symbolic_address(Bit32u eip, Bit32u base);
Bit32u bx_dbg_get_symbol_value(char *Symbol);
void bx_dbg_symbol_command(char* filename, bx_bool global, Bit32u offset);
void bx_dbg_trace_command(bx_bool enable);
void bx_dbg_trace_reg_command(bx_bool enable);
void bx_dbg_ptime_command(void);
@ -240,7 +236,7 @@ void bx_dbg_playback_command(char*);
void bx_dbg_modebp_command(void);
void bx_dbg_where_command(void);
void bx_dbg_print_string_command(bx_address addr);
void bx_dbg_show_command(char*);
void bx_dbg_show_command(const char*);
void bx_dbg_print_stack_command(unsigned nwords);
void bx_dbg_watch(int read, Bit32u address);
void bx_dbg_unwatch(int read, Bit32u address);
@ -259,7 +255,6 @@ bx_bool bx_dbg_del_lbreak (unsigned handle);
bx_bool bx_dbg_del_vbreak (unsigned handle);
int bx_dbg_vbreakpoint_command(BreakpointKind bk, Bit32u cs, bx_address eip);
int bx_dbg_lbreakpoint_command(BreakpointKind bk, bx_address laddress);
int bx_dbg_lbreakpoint_symbol_command(char *Symbol);
int bx_dbg_pbreakpoint_command(BreakpointKind bk, Bit32u paddress);
void bx_dbg_info_bpoints_command(void);
void bx_dbg_quit_command(void);
@ -275,13 +270,11 @@ void bx_dbg_info_tss_command(bx_num_range);
void bx_dbg_info_control_regs_command(void);
void bx_dbg_info_flags(void);
void bx_dbg_info_linux_command(void);
void bx_dbg_info_symbols_command(char *Symbol);
void bx_dbg_examine_command(char *command, char *format, bx_bool format_passed,
Bit32u addr, bx_bool addr_passed);
void bx_dbg_setpmem_command(Bit32u addr, unsigned len, Bit32u val);
void bx_dbg_set_symbol_command(char *symbol, Bit32u val);
void bx_dbg_query_command(char *);
void bx_dbg_take_command(char *, unsigned n);
void bx_dbg_query_command(const char *);
void bx_dbg_take_command(const char *, unsigned n);
void bx_dbg_dump_cpu_command(void);
void bx_dbg_set_cpu_command(void);
void bx_dbg_disassemble_command(const char *,bx_num_range);
@ -297,6 +290,16 @@ void bx_dbg_print_help(void);
void bx_dbg_calc_command(Bit64u value);
void bx_dbg_info_ivt_command(bx_num_range);
void bx_dbg_dump_table(void);
int bx_dbg_symbolic_output(void); /* BW */
void bx_dbg_set_symbol_command(char *symbol, Bit32u val);
char* bx_dbg_symbolic_address(Bit32u context, Bit32u eip, Bit32u base);
char* bx_dbg_symbolic_address_16bit(Bit32u eip, Bit32u cs);
void bx_dbg_symbol_command(char* filename, bx_bool global, Bit32u offset);
void bx_dbg_info_symbols_command(char *Symbol);
int bx_dbg_lbreakpoint_symbol_command(char *Symbol);
Bit32u bx_dbg_get_symbol_value(char *Symbol);
char* bx_dbg_disasm_symbolic_address(Bit32u eip, Bit32u base);
#ifdef __cplusplus
}
#endif
@ -498,18 +501,8 @@ void bx_dbg_iac_report(unsigned vector, unsigned irq);
void bx_dbg_a20_report(unsigned val);
void bx_dbg_io_report(Bit32u addr, unsigned size, unsigned op, Bit32u val);
void bx_dbg_ucmem_report(Bit32u addr, unsigned size, unsigned op, Bit32u val);
void bx_dbg_disassemble_current(int which_cpu, int print_time);
int bx_dbg_symbolic_output(void); /* BW */
char* bx_dbg_symbolic_address(Bit32u context, Bit32u eip, Bit32u base);
char* bx_dbg_symbolic_address_16bit(Bit32u eip, Bit32u cs);
void bx_dbg_symbol_command(char* filename, bx_bool global, Bit32u offset);
void bx_dbg_info_symbols_command(char *Symbol);
int bx_dbg_lbreakpoint_symbol_command(char *Symbol);
Bit32u bx_dbg_get_symbol_value(char *Symbol);
char* bx_dbg_disasm_symbolic_address(Bit32u eip, Bit32u base);
#endif // #ifdef __cplusplus
#endif // #if BX_DEBUGGER

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
%{
/////////////////////////////////////////////////////////////////////////
// $Id: lexer.l,v 1.13 2006-02-11 20:47:22 sshwarts Exp $
// $Id: lexer.l,v 1.14 2006-02-11 21:19:22 sshwarts Exp $
/////////////////////////////////////////////////////////////////////////
#include <stdlib.h>
@ -89,10 +89,7 @@ u |
disasm |
disassemble { BEGIN(DISASM); bxlval.sval = strdup(bxtext); return(BX_TOKEN_DISASSEMBLE); }
instrument { bxlval.sval = strdup(bxtext); return(BX_TOKEN_INSTRUMENT); }
start { bxlval.sval = strdup(bxtext); return(BX_TOKEN_START); }
stop { bxlval.sval = strdup(bxtext); return(BX_TOKEN_STOP); }
reset { bxlval.sval = strdup(bxtext); return(BX_TOKEN_RESET); }
print { bxlval.sval = strdup(bxtext); return(BX_TOKEN_PRINT); }
doit { bxlval.sval = strdup(bxtext); return(BX_TOKEN_DOIT); }
trace { bxlval.sval = strdup(bxtext); return(BX_TOKEN_TRACE); }
trace-reg { bxlval.sval = strdup(bxtext); return(BX_TOKEN_TRACEREG); }
@ -176,9 +173,10 @@ calc { bxlval.sval = strdup(bxtext); return(BX_TOKEN_CALC); }
0[0-7]+ { bxlval.uval = strtoul(bxtext+1, NULL, 8); return(BX_TOKEN_NUMERIC); }
[0-9]+L { bxlval.ulval = strtoull(bxtext, NULL, 10); return(BX_TOKEN_LONG_NUMERIC); }
[0-9]+ { bxlval.uval = strtoul(bxtext, NULL, 10); return(BX_TOKEN_NUMERIC); }
[a-z]+ { bxlval.sval = strdup(bxtext); return(BX_TOKEN_COMMAND); }
$[a-zA-Z_][a-zA-Z0-9_]* { bxlval.sval = strdup(bxtext); return(BX_TOKEN_SYMBOLNAME); }
<*>";" { return ('\n'); }
<*>\n { return('\n'); }
<*>\n { return ('\n'); }
[#][^\n]* ; // eat up comments '//'
. { return(bxtext[0]); }
<EXAMINE,DISASM>. { BEGIN(INITIAL); unput(*bxtext); }

File diff suppressed because it is too large Load Diff

View File

@ -107,47 +107,45 @@
BX_TOKEN_SET_CPU = 333,
BX_TOKEN_DISASSEMBLE = 334,
BX_TOKEN_INSTRUMENT = 335,
BX_TOKEN_START = 336,
BX_TOKEN_STRING = 336,
BX_TOKEN_STOP = 337,
BX_TOKEN_RESET = 338,
BX_TOKEN_PRINT = 339,
BX_TOKEN_STRING = 340,
BX_TOKEN_DOIT = 341,
BX_TOKEN_CRC = 342,
BX_TOKEN_TRACE = 343,
BX_TOKEN_TRACEREG = 344,
BX_TOKEN_SWITCH_MODE = 345,
BX_TOKEN_SIZE = 346,
BX_TOKEN_PTIME = 347,
BX_TOKEN_TIMEBP_ABSOLUTE = 348,
BX_TOKEN_TIMEBP = 349,
BX_TOKEN_RECORD = 350,
BX_TOKEN_PLAYBACK = 351,
BX_TOKEN_MODEBP = 352,
BX_TOKEN_PRINT_STACK = 353,
BX_TOKEN_WATCH = 354,
BX_TOKEN_UNWATCH = 355,
BX_TOKEN_READ = 356,
BX_TOKEN_WRITE = 357,
BX_TOKEN_SHOW = 358,
BX_TOKEN_LOAD_SYMBOLS = 359,
BX_TOKEN_SYMBOLS = 360,
BX_TOKEN_LIST_SYMBOLS = 361,
BX_TOKEN_GLOBAL = 362,
BX_TOKEN_WHERE = 363,
BX_TOKEN_PRINT_STRING = 364,
BX_TOKEN_NUMERIC = 365,
BX_TOKEN_LONG_NUMERIC = 366,
BX_TOKEN_NE2000 = 367,
BX_TOKEN_PIC = 368,
BX_TOKEN_PAGE = 369,
BX_TOKEN_HELP = 370,
BX_TOKEN_CALC = 371,
BX_TOKEN_VGA = 372,
BX_TOKEN_RSHIFT = 373,
BX_TOKEN_LSHIFT = 374,
NEG = 375,
NOT = 376
BX_TOKEN_DOIT = 338,
BX_TOKEN_CRC = 339,
BX_TOKEN_TRACE = 340,
BX_TOKEN_TRACEREG = 341,
BX_TOKEN_SWITCH_MODE = 342,
BX_TOKEN_SIZE = 343,
BX_TOKEN_PTIME = 344,
BX_TOKEN_TIMEBP_ABSOLUTE = 345,
BX_TOKEN_TIMEBP = 346,
BX_TOKEN_RECORD = 347,
BX_TOKEN_PLAYBACK = 348,
BX_TOKEN_MODEBP = 349,
BX_TOKEN_PRINT_STACK = 350,
BX_TOKEN_WATCH = 351,
BX_TOKEN_UNWATCH = 352,
BX_TOKEN_READ = 353,
BX_TOKEN_WRITE = 354,
BX_TOKEN_SHOW = 355,
BX_TOKEN_LOAD_SYMBOLS = 356,
BX_TOKEN_SYMBOLS = 357,
BX_TOKEN_LIST_SYMBOLS = 358,
BX_TOKEN_GLOBAL = 359,
BX_TOKEN_WHERE = 360,
BX_TOKEN_PRINT_STRING = 361,
BX_TOKEN_NUMERIC = 362,
BX_TOKEN_LONG_NUMERIC = 363,
BX_TOKEN_NE2000 = 364,
BX_TOKEN_PIC = 365,
BX_TOKEN_PAGE = 366,
BX_TOKEN_HELP = 367,
BX_TOKEN_CALC = 368,
BX_TOKEN_VGA = 369,
BX_TOKEN_COMMAND = 370,
BX_TOKEN_RSHIFT = 371,
BX_TOKEN_LSHIFT = 372,
NEG = 373,
NOT = 374
};
#endif
#define BX_TOKEN_REG_AL 258
@ -228,47 +226,45 @@
#define BX_TOKEN_SET_CPU 333
#define BX_TOKEN_DISASSEMBLE 334
#define BX_TOKEN_INSTRUMENT 335
#define BX_TOKEN_START 336
#define BX_TOKEN_STRING 336
#define BX_TOKEN_STOP 337
#define BX_TOKEN_RESET 338
#define BX_TOKEN_PRINT 339
#define BX_TOKEN_STRING 340
#define BX_TOKEN_DOIT 341
#define BX_TOKEN_CRC 342
#define BX_TOKEN_TRACE 343
#define BX_TOKEN_TRACEREG 344
#define BX_TOKEN_SWITCH_MODE 345
#define BX_TOKEN_SIZE 346
#define BX_TOKEN_PTIME 347
#define BX_TOKEN_TIMEBP_ABSOLUTE 348
#define BX_TOKEN_TIMEBP 349
#define BX_TOKEN_RECORD 350
#define BX_TOKEN_PLAYBACK 351
#define BX_TOKEN_MODEBP 352
#define BX_TOKEN_PRINT_STACK 353
#define BX_TOKEN_WATCH 354
#define BX_TOKEN_UNWATCH 355
#define BX_TOKEN_READ 356
#define BX_TOKEN_WRITE 357
#define BX_TOKEN_SHOW 358
#define BX_TOKEN_LOAD_SYMBOLS 359
#define BX_TOKEN_SYMBOLS 360
#define BX_TOKEN_LIST_SYMBOLS 361
#define BX_TOKEN_GLOBAL 362
#define BX_TOKEN_WHERE 363
#define BX_TOKEN_PRINT_STRING 364
#define BX_TOKEN_NUMERIC 365
#define BX_TOKEN_LONG_NUMERIC 366
#define BX_TOKEN_NE2000 367
#define BX_TOKEN_PIC 368
#define BX_TOKEN_PAGE 369
#define BX_TOKEN_HELP 370
#define BX_TOKEN_CALC 371
#define BX_TOKEN_VGA 372
#define BX_TOKEN_RSHIFT 373
#define BX_TOKEN_LSHIFT 374
#define NEG 375
#define NOT 376
#define BX_TOKEN_DOIT 338
#define BX_TOKEN_CRC 339
#define BX_TOKEN_TRACE 340
#define BX_TOKEN_TRACEREG 341
#define BX_TOKEN_SWITCH_MODE 342
#define BX_TOKEN_SIZE 343
#define BX_TOKEN_PTIME 344
#define BX_TOKEN_TIMEBP_ABSOLUTE 345
#define BX_TOKEN_TIMEBP 346
#define BX_TOKEN_RECORD 347
#define BX_TOKEN_PLAYBACK 348
#define BX_TOKEN_MODEBP 349
#define BX_TOKEN_PRINT_STACK 350
#define BX_TOKEN_WATCH 351
#define BX_TOKEN_UNWATCH 352
#define BX_TOKEN_READ 353
#define BX_TOKEN_WRITE 354
#define BX_TOKEN_SHOW 355
#define BX_TOKEN_LOAD_SYMBOLS 356
#define BX_TOKEN_SYMBOLS 357
#define BX_TOKEN_LIST_SYMBOLS 358
#define BX_TOKEN_GLOBAL 359
#define BX_TOKEN_WHERE 360
#define BX_TOKEN_PRINT_STRING 361
#define BX_TOKEN_NUMERIC 362
#define BX_TOKEN_LONG_NUMERIC 363
#define BX_TOKEN_NE2000 364
#define BX_TOKEN_PIC 365
#define BX_TOKEN_PAGE 366
#define BX_TOKEN_HELP 367
#define BX_TOKEN_CALC 368
#define BX_TOKEN_VGA 369
#define BX_TOKEN_COMMAND 370
#define BX_TOKEN_RSHIFT 371
#define BX_TOKEN_LSHIFT 372
#define NEG 373
#define NOT 374
@ -283,7 +279,7 @@ typedef union YYSTYPE {
bx_num_range uval_range;
} YYSTYPE;
/* Line 1252 of yacc.c. */
#line 287 "y.tab.h"
#line 283 "y.tab.h"
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
# define YYSTYPE_IS_TRIVIAL 1

View File

@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////
// $Id: parser.y,v 1.11 2006-02-11 20:47:22 sshwarts Exp $
// $Id: parser.y,v 1.12 2006-02-11 21:19:22 sshwarts Exp $
/////////////////////////////////////////////////////////////////////////
%{
@ -32,7 +32,6 @@
%type <uval> BX_TOKEN_NONSEG_REG
%type <uval> BX_TOKEN_SEGREG
%type <bval> BX_TOKEN_TOGGLE_ON_OFF
%type <sval> BX_TOKEN_INSTRUMENT_COMMAND
%token <uval> BX_TOKEN_REG_AL
%token <uval> BX_TOKEN_REG_BL
@ -112,11 +111,8 @@
%token <sval> BX_TOKEN_SET_CPU
%token <sval> BX_TOKEN_DISASSEMBLE
%token <sval> BX_TOKEN_INSTRUMENT
%token <sval> BX_TOKEN_START
%token <sval> BX_TOKEN_STOP
%token <sval> BX_TOKEN_RESET
%token <sval> BX_TOKEN_PRINT
%token <sval> BX_TOKEN_STRING
%token <sval> BX_TOKEN_STOP
%token <sval> BX_TOKEN_DOIT
%token <sval> BX_TOKEN_CRC
%token <sval> BX_TOKEN_TRACE
@ -149,6 +145,7 @@
%token <sval> BX_TOKEN_HELP
%token <sval> BX_TOKEN_CALC
%token <sval> BX_TOKEN_VGA
%token <sval> BX_TOKEN_COMMAND
%token BX_TOKEN_RSHIFT
%token BX_TOKEN_LSHIFT
%type <uval> optional_numeric
@ -219,14 +216,6 @@ BX_TOKEN_TOGGLE_ON_OFF:
{ $$=$1; }
;
BX_TOKEN_INSTRUMENT_COMMAND:
BX_TOKEN_START
| BX_TOKEN_STOP
| BX_TOKEN_RESET
| BX_TOKEN_PRINT
{ $$=$1; }
;
BX_TOKEN_SEGREG:
BX_TOKEN_CS
| BX_TOKEN_ES
@ -275,7 +264,7 @@ modebp_command:
;
show_command:
BX_TOKEN_SHOW BX_TOKEN_STRING '\n'
BX_TOKEN_SHOW BX_TOKEN_COMMAND '\n'
{
bx_dbg_show_command($2);
free($1); free($2);
@ -797,7 +786,7 @@ disassemble_command:
;
instrument_command:
BX_TOKEN_INSTRUMENT BX_TOKEN_INSTRUMENT_COMMAND '\n'
BX_TOKEN_INSTRUMENT BX_TOKEN_COMMAND '\n'
{
bx_dbg_instrument_command($2);
free($1); free($2);
@ -994,7 +983,7 @@ help_command:
| BX_TOKEN_HELP BX_TOKEN_INSTRUMENT '\n'
{
dbg_printf("instrument start - calls bx_instr_start() callback\n");
dbg_printf("instrument stop - calls bx_instr_stop() callback\n");
dbg_printf("instrument stop - calls bx_instr_stop () callback\n");
dbg_printf("instrument reset - calls bx_instr_reset() callback\n");
dbg_printf("instrument print - calls bx_instr_print() callback\n");
free($1);free($2);
@ -1032,15 +1021,15 @@ help_command:
}
| BX_TOKEN_HELP BX_TOKEN_SHOW '\n'
{
dbg_printf("show \"string\" - toggles show symbolic info (calls to begin with)\n");
dbg_printf("show <command> - toggles show symbolic info (calls to begin with)\n");
dbg_printf("show - shows current show mode\n");
dbg_printf("show \"mode\" - show, when processor switch mode\n");
dbg_printf("show \"int\" - show, when interrupt is happens\n");
dbg_printf("show \"call\" - show, when call is happens\n");
dbg_printf("show \"ret\" - show, when iret is happens\n");
dbg_printf("show \"off\" - toggles off symbolic info\n");
dbg_printf("show \"dbg-all\" - turn on all show flags\n");
dbg_printf("show \"none\" - turn off all show flags\n");
dbg_printf("show mode - show, when processor switch mode\n");
dbg_printf("show int - show, when interrupt is happens\n");
dbg_printf("show call - show, when call is happens\n");
dbg_printf("show ret - show, when iret is happens\n");
dbg_printf("show off - toggles off symbolic info\n");
dbg_printf("show dbg-all - turn on all show flags\n");
dbg_printf("show dbg-none - turn off all show flags\n");
free($1);free($2);
}
| BX_TOKEN_HELP BX_TOKEN_CALC '\n'