Revision: 18734
http://vice-emu.svn.sourceforge.net/vice-emu/?rev=18734&view=rev
Author: strik
Date: 2008-04-20 02:59:22 -0700 (Sun, 20 Apr 2008)
Log Message:
-----------
2008-04-20 Thomas Giesel <sk...@di...>
* init.c, monitor.h, monitor/monitor.c, translate.txt, translate.c: New
command line switch "-moncommands <name>" to execute monitor
commands
* monitor/mon_lex.l, monitor/mon_parse.y, monitor/montypes.h,: Implemented debug
command for monitor grammar; Monitor accepts labels created by
the Acme assembler now; Minor clean up of monitor interpreter
code.
* monitor/mon_command.c: Re-arranged monitor help output.
Modified Paths:
--------------
branches/contributions/thomas.giesel-1.22.10-monexec-label/vice/src/ChangeLog
branches/contributions/thomas.giesel-1.22.10-monexec-label/vice/src/init.c
branches/contributions/thomas.giesel-1.22.10-monexec-label/vice/src/monitor/mon_command.c
branches/contributions/thomas.giesel-1.22.10-monexec-label/vice/src/monitor/mon_lex.c
branches/contributions/thomas.giesel-1.22.10-monexec-label/vice/src/monitor/mon_lex.l
branches/contributions/thomas.giesel-1.22.10-monexec-label/vice/src/monitor/mon_parse.c
branches/contributions/thomas.giesel-1.22.10-monexec-label/vice/src/monitor/mon_parse.h
branches/contributions/thomas.giesel-1.22.10-monexec-label/vice/src/monitor/mon_parse.y
branches/contributions/thomas.giesel-1.22.10-monexec-label/vice/src/monitor/monitor.c
branches/contributions/thomas.giesel-1.22.10-monexec-label/vice/src/monitor/montypes.h
branches/contributions/thomas.giesel-1.22.10-monexec-label/vice/src/monitor.h
branches/contributions/thomas.giesel-1.22.10-monexec-label/vice/src/translate.c
branches/contributions/thomas.giesel-1.22.10-monexec-label/vice/src/translate.txt
Modified: branches/contributions/thomas.giesel-1.22.10-monexec-label/vice/src/ChangeLog
===================================================================
--- branches/contributions/thomas.giesel-1.22.10-monexec-label/vice/src/ChangeLog 2008-04-20 09:37:13 UTC (rev 18733)
+++ branches/contributions/thomas.giesel-1.22.10-monexec-label/vice/src/ChangeLog 2008-04-20 09:59:22 UTC (rev 18734)
@@ -1,3 +1,16 @@
+2008-04-20 Thomas Giesel <sk...@di...>
+
+ * init.c, monitor.h, monitor/monitor.c, translate.txt, translate.c: New
+ command line switch "-moncommands <name>" to execute monitor
+ commands
+
+ * monitor/mon_lex.l, monitor/mon_parse.y, monitor/montypes.h,: Implemented debug
+ command for monitor grammar; Monitor accepts labels created by
+ the Acme assembler now; Minor clean up of monitor interpreter
+ code.
+
+ * monitor/mon_command.c: Re-arranged monitor help output.
+
2008-04-19 Greg King <gre...@ve...>
* src/c64/cart/ide64.c: adds a working RTC to the emulation of
Modified: branches/contributions/thomas.giesel-1.22.10-monexec-label/vice/src/init.c
===================================================================
--- branches/contributions/thomas.giesel-1.22.10-monexec-label/vice/src/init.c 2008-04-20 09:37:13 UTC (rev 18733)
+++ branches/contributions/thomas.giesel-1.22.10-monexec-label/vice/src/init.c 2008-04-20 09:59:22 UTC (rev 18734)
@@ -47,6 +47,7 @@
#include "log.h"
#include "machine-bus.h"
#include "machine.h"
+#include "monitor.h"
#include "maincpu.h"
#include "network.h"
#include "palette.h"
@@ -181,6 +182,10 @@
init_cmdline_options_fail("event");
return -1;
}
+ if (monitor_cmdline_options_init() < 0) {
+ init_cmdline_options_fail("monitor");
+ return -1;
+ }
#ifdef DEBUG
if (debug_cmdline_options_init() < 0) {
init_cmdline_options_fail("debug");
Modified: branches/contributions/thomas.giesel-1.22.10-monexec-label/vice/src/monitor/mon_command.c
===================================================================
--- branches/contributions/thomas.giesel-1.22.10-monexec-label/vice/src/monitor/mon_command.c 2008-04-20 09:37:13 UTC (rev 18733)
+++ branches/contributions/thomas.giesel-1.22.10-monexec-label/vice/src/monitor/mon_command.c 2008-04-20 09:59:22 UTC (rev 18734)
@@ -47,31 +47,75 @@
} mon_cmds_t;
static const mon_cmds_t mon_cmd_array[] = {
- { "~", "",
- "<number>",
- "Display the specified number in decimal, hex, octal and binary." },
+ { "", "", "", "Available commands are:" },
- { ">", "",
- "[<address>] <data_list>",
- "Write the specified data at `address'." },
+ { "", "", "", "Machine state commands:" },
- { "@", "",
- "<disk command>",
- "Perform a disk command on the currently attached disk image on drive 8.\n"
- "The specified disk command is sent to the drive's channel #15." },
+ { "bank", "",
+ "[<memspace>] [bankname]",
+ "If bankname is not given, print the possible banks for the memspace.\n"
+ "If bankname is given set the current bank in the memspace to the given\n"
+ "bank." },
+ { "cpu", "",
+ "<type>",
+ "Specify the type of CPU currently used (6502/z80)." },
+
+ { "dump", "",
+ "\"<filename>\"",
+ "Write a snapshot of the machine into the file specified.\n"
+ "This snapshot is compatible with a snapshot written out by the UI.\n"
+ "Note: No ROM images are included into the dump." },
+
/*
- { "]", "",
+ { "down", "",
NULL,
"*** unimplemented ***" },
*/
- { "a", "",
- "<address> [ <instruction> [: <instruction>]* ]",
- "Assemble instructions to the specified address. If only one\n"
- "instruction is specified, enter assembly mode (enter an empty line to\n"
- "exit assembly mode)." },
+ { "goto", "g",
+ "<address>",
+ "Change the PC to ADDRESS and continue execution" },
+ { "io", "",
+ NULL,
+ "Print out the I/O area of the emulated machine." },
+
+ { "next", "n",
+ NULL,
+ "Advance to the next instruction. Subroutines are treated as\n"
+ "a single instruction." },
+
+ { "registers", "r",
+ "[<reg_name> = <number> [, <reg_name> = <number>]*]",
+ "Assign respective registers. With no parameters, display register\n"
+ "values." },
+
+ { "return", "ret",
+ NULL,
+ "Continues execution and returns to the monitor just before the next\n"
+ "RTS or RTI is executed." },
+
+ { "screen", "sc",
+ NULL,
+ "Displays the contents of the screen." },
+
+ { "step", "z",
+ "[<count>]",
+ "Single-step through instructions. COUNT allows stepping\n"
+ "more than a single instruction at a time." },
+
+ { "undump", "",
+ "\"<filename>\"",
+ "Read a snapshot of the machine from the file specified." },
+
+/*
+ { "up", "",
+ NULL,
+ "*** unimplemented ***" },
+*/
+ { "", "", "", "Symbol table commands:" },
+
{ "add_label", "al",
"[<memspace>] <address> <label>",
"<memspace> is one of: C: 8: 9: 10: 11:\n"
@@ -81,81 +125,51 @@
"assembly code and is shown during disassembly. Additionally, it can\n"
"be used whenever an address must be specified." },
- { "bank", "",
- "[<memspace>] [bankname]",
- "If bankname is not given, print the possible banks for the memspace.\n"
- "If bankname is given set the current bank in the memspace to the given\n"
- "bank." },
+ { "delete_label", "dl",
+ "[<memspace>] <label>",
+ "<memspace> is one of: C: 8: 9: 10: 11:\n"
+ "<label> is the name of the label; it must start with a dot (\".\").\n\n"
+ "Delete a previously defined label." },
- { "bload", "bl",
- "\"<filename>\" <device> <address>",
- "Load the specified file into memory at the specified address.\n"
- "If device is 0, the file is read from the file system." },
+ { "load_labels", "ll",
+ "[<memspace>] \"<filename>\"",
+ "Load a file containing a mapping of labels to addresses. If no memory\n"
+ "space is specified, the default readspace is used.\n\n"
+ "The format of the file is the one written out by the `save_labels' command;\n"
+ "it consists of some `add_label' commands, written one after the other." },
- { "block_read", "br",
- "<track> <sector> [<address>]",
- "Read the block at the specified track and sector. If an address is\n"
- "specified, the data is loaded into memory. If no address is given, the\n"
- "data is displayed using the default datatype." },
+ { "save_labels", "sl",
+ "[<memspace>] \"<filename>\"",
+ "Save labels to a file. If no memory space is specified, all of the\n"
+ "labels are saved." },
- { "break", "",
- "[<address> [if <cond_expr>] ]",
- "If no address is given, the currently valid watchpoints are printed.\n"
- "If an address is given, a breakpoint is set for that address and the\n"
- "breakpoint number is printed. A conditional expression can also be\n"
- "specified for the breakpoint. For more information on conditions, see\n"
- "the CONDITION command." },
+ { "show_labels", "shl",
+ "[<memspace>]",
+ "Display current label mappings. If no memory space is specified, show\n"
+ "all labels." },
-/*
- { "brmon", "",
- NULL,
- "*** unimplemented ***" },
-*/
+ { "", "", "", "Assembler and memory commands:" },
- { "bsave", "bs",
- "\"<filename>\" <device> <address1> <address2>",
- "Save the memory from address1 to address2 to the specified file.\n"
- "If device is 0, the file is written to the file system." },
+ { ">", "",
+ "[<address>] <data_list>",
+ "Write the specified data at `address'." },
- { "block_write", "bw",
- "<track> <sector> <address>",
- "Write a block of data at `address' on the specified track and sector\n"
- "of disk in drive 8." },
+ { "a", "",
+ "<address> [ <instruction> [: <instruction>]* ]",
+ "Assemble instructions to the specified address. If only one\n"
+ "instruction is specified, enter assembly mode (enter an empty line to\n"
+ "exit assembly mode)." },
- { "cd", "",
- "<directory>",
- "Change the working directory." },
-
- { "command", "",
- "<checknum> \"<command>\"",
- "Specify `command' as the command to execute when checkpoint `checknum'\n"
- "is hit. Note that the `x' command is not yet supported as a\n"
- "command argument." },
-
-
{ "compare", "c",
"<address_range> <address>",
"Compare memory from the source specified by the address range to the\n"
"destination specified by the address. The regions may overlap. Any\n"
"values that miscompare are displayed using the default displaytype." },
- { "condition", "cond",
- "<checknum> if <cond_expr>",
- "Each time the specified checkpoint is examined, the condition is\n"
- "evaluated. If it evalutes to true, the checkpoint is activated.\n"
- "Otherwise, it is ignored. If registers are specified in the expression,\n"
- "the values used are those at the time the checkpoint is examined, not\n"
- "when the condition is set.\n"
- "The condition can make use of registers (.A, .X, .Y, .PC, .SP) and\n"
- "compare them (==, !=, <, >, <=, >=) again other registers or constants.\n"
- "Registers can be the registers of other devices; this is denoted by\n"
- "a memspace prefix (i.e., c:, 8:, 9:, 10:, 11:\n"
- "Examples: .A == 0, .X == .Y, 8:.X == .X\n" },
+ { "delete", "del",
+ "<checknum>",
+ "Delete checkpoint `checknum'." },
- { "cpu", "",
- "<type>",
- "Specify the type of CPU currently used (6502/z80)." },
-
{ "disass", "d",
"[<address> [<address>]]",
"Disassemble instructions. If two addresses are specified, they are\n"
@@ -164,60 +178,12 @@
"disassembled. If no addresses are specified, a default number of\n"
"instructions are disassembled from the dot address." },
- { "delete", "del",
- "<checknum>",
- "Delete checkpoint `checknum'." },
-
- { "delete_label", "dl",
- "[<memspace>] <label>",
- "<memspace> is one of: C: 8: 9: 10: 11:\n"
- "<label> is the name of the label; it must start with a dot (\".\").\n\n"
- "Delete a previously defined label." },
-
- { "device", "dev",
- "[c:|8:|9:|10:|11:]",
- "Set the default memory device to either the computer `c:' or the\n"
- "specified disk drive (`8:', `9:')." },
-
- { "disable", "",
- "<checknum>",
- "Disable checkpoint `checknum'." },
-
-/*
- { "down", "",
- NULL,
- "*** unimplemented ***" },
-*/
-
- { "dump", "",
- "\"<filename>\"",
- "Write a snapshot of the machine into the file specified.\n"
- "This snapshot is compatible with a snapshot written out by the UI.\n"
- "Note: No ROM images are included into the dump." },
-
- { "enable", "",
- "<checknum>",
- "Enable checkpoint `checknum'." },
-
- { "exit", "x",
- NULL,
- "Leave the monitor and return to execution." },
-
{ "fill", "f",
"<address_range> <data_list>",
"Fill memory in the specified address range with the data in\n"
"<data_list>. If the size of the address range is greater than the size\n"
"of the data_list, the data_list is repeated." },
- { "goto", "g",
- "<address>",
- "Change the PC to ADDRESS and continue execution" },
-
- { "help", "?",
- "[<command>]",
- "If no argument is given, prints out a list of all available commands\n"
- "If an argument is given, prints out specific help for that command." },
-
{ "hunt", "h",
"<address_range> <data_list>",
"Hunt memory in the specified address range for the data in\n"
@@ -232,34 +198,6 @@
"<address_opt_range>",
"Display memory contents as screen code text." },
- { "ignore", "",
- "<checknum> [<count>]",
- "Ignore a checkpoint a given number of crossings. If no count is given,\n"
- "the default value is 1." },
-
- { "io", "",
- NULL,
- "Print out the I/O area of the emulated machine." },
-
- { "keybuf", "",
- "\"<string>\"",
- "Put the specified string into the keyboard buffer." },
-
- { "load", "l",
- "\"<filename>\" <device> [<address>]",
- "Load the specified file into memory at the specified address. Set BASIC\n"
- "pointers appropriately if loaded into computer memory (not all emulators).\n"
- "Use (otherwise ignored) two-byte load address from file if no address\n"
- "specified.\n"
- "If device is 0, the file is read from the file system." },
-
- { "load_labels", "ll",
- "[<memspace>] \"<filename>\"",
- "Load a file containing a mapping of labels to addresses. If no memory\n"
- "space is specified, the default readspace is used.\n\n"
- "The format of the file is the one written out by the `save_labels' command;\n"
- "it consists of some `add_label' commands, written one after the other." },
-
{ "mem", "m",
"[<data_type>] [<address_opt_range>]",
"Display the contents of memory. If no datatype is given, the default\n"
@@ -273,31 +211,92 @@
"is specified, only one character is displayed. If no addresses are\n"
"given, the ``dot'' address is used." },
- { "move", "t",
- "<address_range> <address>",
- "Move memory from the source specified by the address range to\n"
- "the destination specified by the address. The regions may overlap." },
-
{ "memsprite", "ms",
"[<data_type>] [<address_opt_range>]",
"Display the contents of memory as sprite data. If only one address is\n"
"specified, only one sprite is displayed. If no addresses are given,\n"
"the ``dot'' address is used." },
- { "next", "n",
- NULL,
- "Advance to the next instruction. Subroutines are treated as\n"
- "a single instruction." },
+ { "move", "t",
+ "<address_range> <address>",
+ "Move memory from the source specified by the address range to\n"
+ "the destination specified by the address. The regions may overlap." },
- { "playback", "pb",
- "\"<filename>\"",
- "Monitor commands from the specified file are read and executed. This\n"
- "command stops at the end of file or when a STOP command is read." },
+ { "", "", "", "Checkpoint commands:" },
- { "print", "p",
- "<expression>",
- "Evaluate the specified expression and output the result." },
+ { "break", "",
+ "[<address> [if <cond_expr>] ]",
+ "If no address is given, the currently valid watchpoints are printed.\n"
+ "If an address is given, a breakpoint is set for that address and the\n"
+ "breakpoint number is printed. A conditional expression can also be\n"
+ "specified for the breakpoint. For more information on conditions, see\n"
+ "the CONDITION command." },
+ { "command", "",
+ "<checknum> \"<command>\"",
+ "Specify `command' as the command to execute when checkpoint `checknum'\n"
+ "is hit. Note that the `x' command is not yet supported as a\n"
+ "command argument." },
+
+ { "condition", "cond",
+ "<checknum> if <cond_expr>",
+ "Each time the specified checkpoint is examined, the condition is\n"
+ "evaluated. If it evalutes to true, the checkpoint is activated.\n"
+ "Otherwise, it is ignored. If registers are specified in the expression,\n"
+ "the values used are those at the time the checkpoint is examined, not\n"
+ "when the condition is set.\n"
+ "The condition can make use of registers (.A, .X, .Y, .PC, .SP) and\n"
+ "compare them (==, !=, <, >, <=, >=) again other registers or constants.\n"
+ "Registers can be the registers of other devices; this is denoted by\n"
+ "a memspace prefix (i.e., c:, 8:, 9:, 10:, 11:\n"
+ "Examples: .A == 0, .X == .Y, 8:.X == .X\n" },
+
+ { "disable", "",
+ "<checknum>",
+ "Disable checkpoint `checknum'." },
+
+ { "enable", "",
+ "<checknum>",
+ "Enable checkpoint `checknum'." },
+
+ { "ignore", "",
+ "<checknum> [<count>]",
+ "Ignore a checkpoint a given number of crossings. If no count is given,\n"
+ "the default value is 1." },
+
+ { "until", "un",
+ "[<address>]",
+ "If no address is given, the currently valid breakpoints are printed.\n"
+ "If an address is given, a temporary breakpoint is set for that address\n"
+ "and the breakpoint number is printed. Control is returned to the\n"
+ "emulator by this command. The breakpoint is deleted once it is hit." },
+
+ { "watch", "w",
+ "[loadstore] [address [address]]",
+ "Set a watchpoint. If a single address is specified, set a watchpoint\n"
+ "for that address. If two addresses are specified, set a watchpoint\n"
+ "for the memory locations between the two addresses.\n"
+ "`loadstore' is either `load' or `store' to specify on which operation\n"
+ "the monitor breaks. If not specified, the monitor breaks on both\n"
+ "operations." },
+
+ { "trace", "tr",
+ "[address [address]]",
+ "Set a tracepoint. If a single address is specified, set a tracepoint\n"
+ "for that address. If two addresses are specified, set a tracepoint\n"
+ "for the memory locations between the two addresses." },
+
+ { "", "", "", "Monitor state commands:" },
+
+ { "device", "dev",
+ "[c:|8:|9:|10:|11:]",
+ "Set the default memory device to either the computer `c:' or the\n"
+ "specified disk drive (`8:', `9:')." },
+
+ { "exit", "x",
+ NULL,
+ "Leave the monitor and return to execution." },
+
{ "quit", "",
NULL,
#ifdef OS2
@@ -311,83 +310,107 @@
"Set the default radix to hex, decimal, octal, or binary. With no\n"
"argument, the current radix is printed." },
- { "record", "rec",
- "\"<filename>\"",
- "After this command, all commands entered are written to the specified\n"
- "file until the STOP command is entered." },
+ { "sidefx", "sfx",
+ "[on|off|toggle]",
+ "Control how monitor generated reads affect memory locations that have\n"
+ "read side-effects. If the argument is 'on' then reads may cause\n"
+ "side-effects. If the argument is 'off' then reads don't cause\n"
+ "side-effects. If the argument is 'toggle' then the current mode is\n"
+ "switched. No argument displays the current state." },
- { "registers", "r",
- "[<reg_name> = <number> [, <reg_name> = <number>]*]",
- "Assign respective registers. With no parameters, display register\n"
- "values." },
+ { "", "", "", "Disk commands:" },
- { "return", "ret",
- NULL,
- "Continues execution and returns to the monitor just before the next\n"
- "RTS or RTI is executed." },
+ { "@", "",
+ "<disk command>",
+ "Perform a disk command on the currently attached disk image on drive 8.\n"
+ "The specified disk command is sent to the drive's channel #15." },
+ { "bload", "bl",
+ "\"<filename>\" <device> <address>",
+ "Load the specified file into memory at the specified address.\n"
+ "If device is 0, the file is read from the file system." },
+
+ { "block_read", "br",
+ "<track> <sector> [<address>]",
+ "Read the block at the specified track and sector. If an address is\n"
+ "specified, the data is loaded into memory. If no address is given, the\n"
+ "data is displayed using the default datatype." },
+
+ { "bsave", "bs",
+ "\"<filename>\" <device> <address1> <address2>",
+ "Save the memory from address1 to address2 to the specified file.\n"
+ "If device is 0, the file is written to the file system." },
+
+ { "block_write", "bw",
+ "<track> <sector> <address>",
+ "Write a block of data at `address' on the specified track and sector\n"
+ "of disk in drive 8." },
+
+ { "cd", "",
+ "<directory>",
+ "Change the working directory." },
+
+ { "load", "l",
+ "\"<filename>\" <device> [<address>]",
+ "Load the specified file into memory at the specified address. Set BASIC\n"
+ "pointers appropriately if loaded into computer memory (not all emulators).\n"
+ "Use (otherwise ignored) two-byte load address from file if no address\n"
+ "specified.\n"
+ "If device is 0, the file is read from the file system." },
+
{ "save", "s",
"\"<filename>\" <device> <address1> <address2>",
"Save the memory from address1 to address2 to the specified file.\n"
"Write two-byte load address.\n"
"If device is 0, the file is written to the file system." },
- { "save_labels", "sl",
- "[<memspace>] \"<filename>\"",
- "Save labels to a file. If no memory space is specified, all of the\n"
- "labels are saved." },
+ { "", "", "", "Other commands:" },
- { "screen", "sc",
- NULL,
- "Displays the contents of the screen." },
+ { "~", "",
+ "<number>",
+ "Display the specified number in decimal, hex, octal and binary." },
- { "show_labels", "shl",
- "[<memspace>]",
- "Display current label mappings. If no memory space is specified, show\n"
- "all labels." },
+ { "help", "?",
+ "[<command>]",
+ "If no argument is given, prints out a list of all available commands\n"
+ "If an argument is given, prints out specific help for that command." },
- { "sidefx", "sfx",
- "[on|off|toggle]",
- "Control how monitor generated reads affect memory locations that have\n"
- "read side-effects. If the argument is 'on' then reads may cause\n"
- "side-effects. If the argument is 'off' then reads don't cause\n"
- "side-effects. If the argument is 'toggle' then the current mode is\n"
- "switched. No argument displays the current state." },
+ { "keybuf", "",
+ "\"<string>\"",
+ "Put the specified string into the keyboard buffer." },
- { "step", "z",
- "[<count>]",
- "Single-step through instructions. COUNT allows stepping\n"
- "more than a single instruction at a time." },
+ { "playback", "pb",
+ "\"<filename>\"",
+ "Monitor commands from the specified file are read and executed. This\n"
+ "command stops at the end of file or when a STOP command is read." },
+ { "print", "p",
+ "<expression>",
+ "Evaluate the specified expression and output the result." },
+
+ { "record", "rec",
+ "\"<filename>\"",
+ "After this command, all commands entered are written to the specified\n"
+ "file until the STOP command is entered." },
+
{ "stop", "",
NULL,
"Stop recording commands. See `record'." },
/*
- { "system", "sys",
+ { "]", "",
NULL,
"*** unimplemented ***" },
*/
- { "trace", "tr",
- "[address [address]]",
- "Set a tracepoint. If a single address is specified, set a tracepoint\n"
- "for that address. If two addresses are specified, set a tracepoint\n"
- "for the memory locations between the two addresses." },
+/*
+ { "brmon", "",
+ NULL,
+ "*** unimplemented ***" },
+*/
- { "until", "un",
- "[<address>]",
- "If no address is given, the currently valid breakpoints are printed.\n"
- "If an address is given, a temporary breakpoint is set for that address\n"
- "and the breakpoint number is printed. Control is returned to the\n"
- "emulator by this command. The breakpoint is deleted once it is hit." },
-
- { "undump", "",
- "\"<filename>\"",
- "Read a snapshot of the machine from the file specified." },
-
/*
- { "up", "",
+ { "system", "sys",
NULL,
"*** unimplemented ***" },
*/
@@ -398,15 +421,6 @@
"*** unimplemented ***" },
*/
- { "watch", "w",
- "[loadstore] [address [address]]",
- "Set a watchpoint. If a single address is specified, set a watchpoint\n"
- "for that address. If two addresses are specified, set a watchpoint\n"
- "for the memory locations between the two addresses.\n"
- "`loadstore' is either `load' or `store' to specify on which operation\n"
- "the monitor breaks. If not specified, the monitor breaks on both\n"
- "operations." },
-
{ NULL }
};
@@ -431,18 +445,39 @@
void mon_command_print_help(const char *cmd)
{
+ const mon_cmds_t *c;
+ int column;
+ int len;
+ int longest;
+ int max_col;
+
if (cmd == NULL) {
- const mon_cmds_t *c;
- int column = 0;
+ longest = 0;
+ for (c = mon_cmd_array; c->str != NULL; c++) {
+ len = strlen(c->str);
+ if (!util_check_null_string(c->abbrev))
+ len += 3 + strlen(c->abbrev); /* 3 => " ()" */
- /* Print on two columns. This could be a lot nicer, but I am lazy. */
- mon_out("\nAvailable commands are:\n\n");
+ if (len > longest)
+ longest = len;
+ }
+ longest += 2; /* some space */
+ max_col = 80 / longest - 1;
+
+ column = 0;
for (c = mon_cmd_array; c->str != NULL; c++) {
- int tot = 0;
+ int tot = strlen(c->str);
- tot += strlen(c->str);
- if (tot == 0) /* "Empty" command? */
+ /* "Empty" command, that's a head line */
+ if (tot == 0) {
+ if (column != 0) {
+ mon_out("\n");
+ column = 0;
+ }
+ mon_out("\n%s\n", c->description);
continue;
+ }
+
mon_out("%s", c->str);
if (!util_check_null_string(c->abbrev)) {
@@ -450,13 +485,13 @@
tot += 3 + strlen(c->abbrev);
}
- if (tot > 40 || column == 1) {
+ if (column >= max_col) {
mon_out("\n");
column = 0;
} else {
- for (; tot < 40; tot++)
+ for (; tot < longest; tot++)
mon_out(" ");
- column = 1;
+ column++;
}
if (mon_stop_output != 0) break;
}
Modified: branches/contributions/thomas.giesel-1.22.10-monexec-label/vice/src/monitor/mon_lex.c
===================================================================
--- branches/contributions/thomas.giesel-1.22.10-monexec-label/vice/src/monitor/mon_lex.c 2008-04-20 09:37:13 UTC (rev 18733)
+++ branches/contributions/thomas.giesel-1.22.10-monexec-label/vice/src/monitor/mon_lex.c 2008-04-20 09:59:22 UTC (rev 18734)
@@ -363,8 +363,8 @@
*yy_cp = '\0'; \
(yy_c_buf_p) = yy_cp;
-#define YY_NUM_RULES 155
-#define YY_END_OF_BUFFER 156
+#define YY_NUM_RULES 157
+#define YY_END_OF_BUFFER 158
/* This struct is not used in this scanner,
but its presence is necessary. */
struct yy_trans_info
@@ -372,131 +372,164 @@
flex_int32_t yy_verify;
flex_int32_t yy_nxt;
};
-static yyconst flex_int16_t yy_acclist[595] =
+static yyconst flex_int16_t yy_acclist[873] =
{ 0,
- 83, 148, 83, 148, 83, 83, 83, 83, 68, 83,
- 68, 83, 83, 83, 83, 148, 83, 148, 83, 148,
- 83, 148, 83, 83, 83, 86, 83, 86, 82, 83,
- 82, 83, 156, 154, 155, 83, 155, 84, 154, 155,
- 66, 154, 155, 154, 155, 154, 155, 154, 155, 154,
- 155, 153, 154, 155, 154, 155, 148, 150, 152, 154,
- 155, 145, 148, 150, 152, 154, 155, 150, 152, 154,
- 155, 150, 152, 154, 155, 59, 154, 155, 152, 154,
- 155, 75, 152, 154, 155, 152, 154, 155, 73, 152,
- 154, 155, 74, 154, 155, 76, 154, 155, 154, 155,
+ 85, 148, 85, 148, 85, 85, 85, 85, 70, 85,
+ 70, 85, 85, 85, 85, 148, 85, 148, 85, 148,
+ 85, 148, 85, 148, 85, 148, 85, 148, 85, 148,
+ 85, 88, 85, 88, 84, 85, 84, 85, 158, 156,
+ 157, 85, 157, 86, 156, 157, 68, 156, 157, 156,
+ 157, 156, 157, 156, 157, 156, 157, 154, 156, 157,
+ 156, 157, 148, 150, 152, 156, 157, 145, 148, 150,
+ 152, 156, 157, 150, 152, 156, 157, 150, 152, 156,
+ 157, 61, 156, 157, 153, 156, 157, 152, 156, 157,
+ 77, 152, 156, 157, 152, 156, 157, 75, 152, 156,
- 154, 155, 76, 154, 155, 154, 155, 154, 155, 154,
- 155, 2, 154, 155, 27, 154, 155, 3, 154, 155,
- 4, 154, 155, 154, 155, 14, 154, 155, 17, 154,
- 155, 154, 155, 25, 154, 155, 26, 154, 155, 28,
- 154, 155, 29, 154, 155, 154, 155, 34, 154, 155,
- 36, 154, 155, 40, 154, 155, 42, 154, 155, 154,
- 155, 46, 154, 155, 48, 154, 155, 38, 154, 155,
- 154, 155, 58, 154, 155, 24, 154, 155, 53, 154,
- 155, 1, 154, 155, 68, 154, 155, 68, 83, 155,
- 67, 154, 155, 68, 153, 154, 155, 87, 154, 155,
+ 157, 76, 156, 157, 78, 156, 157, 156, 157, 156,
+ 157, 78, 156, 157, 156, 157, 156, 157, 156, 157,
+ 2, 156, 157, 27, 156, 157, 3, 156, 157, 60,
+ 156, 157, 4, 60, 156, 157, 60, 156, 157, 14,
+ 60, 156, 157, 17, 60, 156, 157, 60, 156, 157,
+ 25, 60, 156, 157, 26, 60, 156, 157, 28, 60,
+ 156, 157, 29, 60, 156, 157, 60, 156, 157, 34,
+ 60, 156, 157, 36, 60, 156, 157, 40, 60, 156,
+ 157, 42, 60, 156, 157, 60, 156, 157, 46, 60,
+ 156, 157, 48, 60, 156, 157, 38, 60, 156, 157,
- 87, 153, 154, 155, 142, 154, 155, 140, 154, 155,
- 141, 154, 155, 154, 155, 145, 148, 150, 152, 154,
- 155, 150, 152, 154, 155, 143, 154, 155, 152, 154,
- 155,16515, 132, 152, 154, 155, 133, 152, 154, 155,
- 134, 152, 154, 155, 135, 152, 154, 155, 152, 154,
- 155, 154, 155, 136, 154, 155, 154, 155, 137, 154,
- 155, 138, 154, 155, 139, 154, 155, 152, 154, 155,
- 16515, 132, 152, 154, 155, 134, 152, 154, 155, 136,
- 154, 155, 154, 155, 154, 155, 154, 155, 108, 154,
- 155, 109, 154, 155, 107, 153, 154, 155, 154, 155,
+ 60, 156, 157, 58, 60, 156, 157, 24, 60, 156,
+ 157, 60, 156, 157, 53, 60, 156, 157, 1, 156,
+ 157, 70, 156, 157, 70, 85, 157, 69, 156, 157,
+ 70, 154, 156, 157, 70, 153, 156, 157, 89, 156,
+ 157, 89, 154, 156, 157, 89, 153, 156, 157, 142,
+ 156, 157, 140, 156, 157, 141, 156, 157, 156, 157,
+ 145, 148, 150, 152, 156, 157, 150, 152, 156, 157,
+ 143, 156, 157, 152, 156, 157,16515, 132, 152, 156,
+ 157, 133, 152, 156, 157, 134, 152, 156, 157, 135,
+ 152, 156, 157, 152, 156, 157, 156, 157, 136, 156,
- 97, 154, 155, 154, 155, 98, 154, 155, 154, 155,
- 93, 154, 155, 88, 154, 155, 154, 155, 154, 155,
- 89, 154, 155, 90, 154, 155, 86, 154, 155, 86,
- 154, 155, 86, 154, 155, 86, 154, 155, 86, 154,
- 155, 82, 154, 155, 83, 151, 146, 147, 149, 69,
- 71, 72, 70, 130, 129, 130, 148, 150, 152, 150,
- 152, 152, 145, 148, 150, 152, 145, 148, 150, 152,
- 78, 79, 77, 65, 60, 5, 7, 8, 10, 11,
- 12, 19, 30, 32, 35, 37, 39, 41, 50, 49,
- 55, 56, 68, 68, 83, 87, 145, 148, 150, 152,
+ 157, 156, 157, 137, 156, 157, 138, 156, 157, 139,
+ 156, 157, 152, 156, 157,16515, 132, 152, 156, 157,
+ 134, 152, 156, 157, 136, 156, 157, 156, 157, 156,
+ 157, 156, 157, 108, 156, 157, 109, 156, 157, 156,
+ 157, 98, 156, 157, 153, 156, 157, 99, 156, 157,
+ 156, 157, 90, 152, 156, 157, 156, 157, 156, 157,
+ 91, 156, 157, 92, 156, 157, 156, 157, 88, 156,
+ 157, 88, 156, 157, 88, 156, 157, 88, 156, 157,
+ 88, 156, 157, 84, 156, 157, 85, 151, 146, 147,
+ 149, 71, 73, 74, 72, 130, 129, 130, 148, 150,
- 8323, 128, 152, 118, 128, 152, 128, 119, 128, 152,
- 120, 128, 152, 121, 128, 122, 128, 125, 128, 122,
- 128, 125, 128, 95, 100, 102, 103, 104, 96, 94,
- 99, 101, 91, 92, 86, 86, 86, 82, 130, 129,
- 130, 148, 150, 152, 150, 152, 152, 145, 148, 150,
- 152, 80, 81, 61, 85, 16, 18, 20, 36, 44,
- 45, 47, 52, 51, 128, 152, 128, 123, 128, 124,
- 128, 126, 128, 127, 128, 105, 106, 148, 150, 152,
- 150, 152, 152, 145, 148, 150, 152, 63, 6, 15,
- 22, 24, 25, 26, 27, 28, 34, 38, 40, 43,
+ 152, 150, 152, 152, 145, 148, 150, 152, 145, 148,
+ 150, 152, 80, 81, 79, 67, 62, 60, 60, 5,
+ 60, 60, 7, 60, 8, 60, 10, 60, 11, 60,
+ 12, 60, 60, 60, 60, 60, 19, 60, 60, 60,
+ 60, 60, 60, 60, 60, 60, 30, 60, 32, 60,
+ 60, 35, 60, 60, 37, 60, 60, 60, 39, 60,
+ 60, 41, 60, 60, 60, 60, 60, 60, 60, 50,
+ 60, 60, 60, 60, 49, 60, 60, 55, 60, 56,
+ 60, 60, 60, 70, 70, 85, 89, 145, 148, 150,
+ 152, 8323, 128, 152, 118, 128, 152, 128, 119, 128,
- 48, 53, 54, 128, 152, 128, 148, 150, 152, 150,
- 152, 152, 145, 148, 150, 152, 64, 7, 9, 10,
- 42, 44, 55, 56, 58, 114, 148, 150, 152, 150,
- 152, 152, 145, 148, 150, 152, 62, 18, 20, 17,
- 23, 31, 33, 45, 47, 50, 57, 110, 117, 115,
- 148, 150, 152, 150, 152, 152, 145, 148, 150, 152,
- 13, 14, 21, 116, 144, 148, 150, 152, 144, 150,
- 152, 144, 152, 144, 145, 148, 150, 152, 113, 148,
- 150, 152, 150, 152, 152, 145, 148, 150, 152, 15,
- 46, 112, 111, 8
+ 152, 120, 128, 152, 121, 128, 122, 128, 125, 128,
+ 122, 128, 125, 128, 96, 101, 103, 104, 105, 97,
+ 95, 100, 102, 93, 94, 155, 88, 88, 88, 84,
+ 130, 129, 130, 148, 150, 152, 150, 152, 152, 145,
+ 148, 150, 152, 82, 83, 63, 87, 60, 60, 60,
+ 60, 60, 60, 60, 16, 60, 18, 60, 20, 60,
+ 60, 60, 60, 60, 60, 60, 60, 60, 60, 60,
+ 60, 36, 60, 60, 60, 60, 60, 60, 44, 60,
+ 45, 60, 60, 47, 60, 60, 60, 52, 60, 51,
+ 60, 60, 60, 60, 60, 60, 60, 60, 60, 60,
+ 128, 152, 128, 123, 128, 124, 128, 126, 128, 127,
+ 128, 106, 107, 148, 150, 152, 150, 152, 152, 145,
+ 148, 150, 152, 65, 60, 6, 60, 60, 60, 60,
+ 60, 60, 60, 15, 60, 60, 60, 60, 22, 60,
+ 60, 24, 60, 25, 60, 26, 60, 27, 60, 28,
+ 60, 60, 60, 34, 60, 60, 60, 38, 60, 40,
+ 60, 60, 60, 43, 60, 60, 60, 60, 60, 48,
+ 60, 60, 60, 60, 53, 60, 54, 60, 60, 60,
+ 60, 60, 60, 128, 152, 128, 148, 150, 152, 150,
+ 152, 152, 145, 148, 150, 152, 66, 60, 7, 60,
+
+ 60, 9, 60, 10, 60, 60, 60, 60, 60, 60,
+ 60, 60, 60, 60, 60, 60, 60, 60, 60, 42,
+ 60, 44, 60, 60, 60, 60, 60, 60, 60, 60,
+ 55, 60, 60, 56, 60, 58, 60, 60, 114, 148,
+ 150, 152, 150, 152, 152, 145, 148, 150, 152, 64,
+ 60, 60, 60, 60, 60, 18, 60, 20, 60, 60,
+ 17, 60, 23, 60, 31, 60, 33, 60, 60, 60,
+ 60, 60, 45, 60, 60, 47, 60, 60, 50, 60,
+ 60, 57, 60, 60, 110, 117, 115, 148, 150, 152,
+ 150, 152, 152, 145, 148, 150, 152, 60, 60, 60,
+
+ 13, 60, 14, 60, 60, 60, 21, 60, 60, 60,
+ 60, 60, 60, 60, 59, 60, 116, 144, 148, 150,
+ 152, 144, 150, 152, 144, 152, 144, 145, 148, 150,
+ 152, 60, 60, 60, 60, 60, 60, 60, 60, 60,
+ 60, 113, 148, 150, 152, 150, 152, 152, 145, 148,
+ 150, 152, 60, 60, 15, 60, 60, 60, 46, 60,
+ 60, 60, 112, 111, 8, 60, 60, 60, 60, 60,
+ 60, 60
} ;
-static yyconst flex_int16_t yy_accept[490] =
+static yyconst flex_int16_t yy_accept[504] =
{ 0,
1, 3, 5, 6, 7, 8, 9, 11, 13, 14,
- 15, 17, 19, 21, 23, 24, 25, 27, 29, 31,
- 33, 34, 36, 38, 41, 44, 46, 48, 50, 52,
- 55, 57, 62, 68, 72, 76, 79, 82, 86, 89,
- 93, 96, 99, 101, 103, 106, 108, 110, 112, 115,
- 118, 121, 124, 126, 129, 132, 134, 137, 140, 143,
- 146, 148, 151, 154, 157, 160, 162, 165, 168, 171,
- 173, 176, 179, 182, 185, 188, 191, 194, 198, 201,
- 205, 208, 211, 214, 216, 222, 226, 229, 233, 237,
- 241, 245, 249, 252, 254, 257, 259, 262, 265, 268,
+ 15, 17, 19, 21, 23, 25, 27, 29, 31, 33,
+ 35, 37, 39, 40, 42, 44, 47, 50, 52, 54,
+ 56, 58, 61, 63, 68, 74, 78, 82, 85, 88,
+ 91, 95, 98, 102, 105, 108, 110, 112, 115, 117,
+ 119, 121, 124, 127, 130, 133, 137, 140, 144, 148,
+ 151, 155, 159, 163, 167, 170, 174, 178, 182, 186,
+ 189, 193, 197, 201, 204, 208, 212, 215, 219, 222,
+ 225, 228, 231, 235, 239, 242, 246, 250, 253, 256,
+ 259, 261, 267, 271, 274, 278, 282, 286, 290, 294,
- 272, 276, 280, 283, 285, 287, 289, 292, 295, 299,
- 301, 304, 306, 309, 311, 314, 317, 319, 321, 324,
- 327, 330, 333, 336, 339, 342, 345, 346, 347, 348,
- 349, 350, 351, 352, 353, 354, 355, 357, 360, 362,
- 363, 367, 371, 372, 373, 374, 375, 375, 375, 376,
- 376, 376, 376, 376, 377, 377, 378, 379, 380, 381,
- 382, 382, 382, 382, 382, 383, 383, 383, 383, 383,
- 383, 383, 383, 383, 384, 385, 385, 386, 386, 387,
- 387, 387, 388, 388, 389, 389, 389, 389, 389, 389,
- 389, 390, 390, 390, 390, 391, 391, 392, 393, 393,
+ 297, 299, 302, 304, 307, 310, 313, 317, 321, 325,
+ 328, 330, 332, 334, 337, 340, 342, 345, 348, 351,
+ 353, 357, 359, 361, 364, 367, 369, 372, 375, 378,
+ 381, 384, 387, 388, 389, 390, 391, 392, 393, 394,
+ 395, 396, 397, 399, 402, 404, 405, 409, 413, 414,
+ 415, 416, 417, 417, 417, 418, 418, 418, 418, 419,
+ 420, 422, 423, 425, 427, 429, 431, 433, 434, 435,
+ 436, 437, 439, 440, 441, 442, 443, 444, 445, 446,
+ 447, 449, 451, 452, 454, 455, 457, 458, 459, 461,
+ 462, 464, 465, 466, 467, 468, 469, 470, 472, 473,
- 394, 396, 397, 401, 401, 402, 404, 407, 408, 411,
- 414, 416, 418, 420, 422, 424, 425, 426, 427, 427,
- 427, 428, 429, 430, 431, 432, 433, 434, 435, 436,
- 437, 438, 439, 440, 442, 445, 447, 448, 452, 453,
- 454, 454, 455, 455, 455, 456, 456, 456, 456, 456,
- 456, 456, 456, 457, 458, 459, 459, 459, 459, 459,
- 459, 459, 459, 459, 459, 459, 459, 460, 460, 460,
- 460, 460, 460, 461, 462, 462, 463, 463, 463, 464,
- 465, 465, 465, 465, 465, 465, 465, 465, 465, 465,
- 467, 468, 470, 472, 474, 476, 477, 478, 481, 483,
+ 474, 475, 477, 478, 480, 482, 483, 484, 485, 487,
+ 488, 492, 492, 493, 495, 498, 499, 502, 505, 507,
+ 509, 511, 513, 515, 516, 517, 518, 518, 518, 519,
+ 520, 521, 522, 523, 524, 525, 526, 527, 528, 529,
+ 530, 531, 532, 534, 537, 539, 540, 544, 545, 546,
+ 546, 547, 547, 547, 548, 549, 550, 551, 552, 553,
+ 554, 555, 557, 559, 561, 562, 563, 564, 565, 566,
+ 567, 568, 569, 570, 571, 572, 574, 575, 576, 577,
+ 578, 579, 581, 583, 584, 586, 587, 588, 590, 592,
+ 593, 594, 595, 596, 597, 598, 599, 600, 601, 601,
- 484, 488, 489, 489, 489, 489, 490, 490, 490, 490,
- 490, 490, 490, 491, 491, 491, 491, 492, 492, 493,
- 494, 495, 496, 497, 497, 497, 498, 498, 498, 499,
- 500, 500, 500, 501, 501, 501, 501, 501, 502, 502,
- 502, 502, 503, 504, 504, 504, 504, 504, 504, 504,
- 504, 506, 507, 510, 512, 513, 517, 518, 518, 518,
- 519, 519, 520, 521, 521, 521, 521, 521, 521, 521,
- 521, 521, 521, 521, 521, 521, 521, 521, 522, 523,
- 523, 523, 523, 523, 523, 523, 523, 524, 524, 525,
- 526, 526, 527, 527, 527, 527, 530, 532, 533, 537,
+ 603, 604, 606, 608, 610, 612, 613, 614, 617, 619,
+ 620, 624, 625, 625, 625, 626, 628, 629, 630, 631,
+ 632, 633, 634, 636, 637, 638, 639, 641, 642, 644,
+ 646, 648, 650, 652, 653, 654, 656, 657, 658, 660,
+ 662, 663, 664, 666, 667, 668, 669, 670, 672, 673,
+ 674, 675, 677, 679, 680, 681, 682, 683, 684, 684,
+ 684, 684, 686, 687, 690, 692, 693, 697, 698, 698,
+ 699, 701, 702, 704, 706, 707, 708, 709, 710, 711,
+ 712, 713, 714, 715, 716, 717, 718, 719, 720, 722,
+ 724, 725, 726, 727, 728, 729, 730, 731, 733, 734,
- 538, 538, 538, 538, 538, 538, 539, 540, 540, 541,
- 542, 543, 544, 544, 544, 544, 544, 545, 545, 546,
- 546, 547, 547, 548, 548, 548, 549, 550, 551, 551,
- 554, 556, 557, 561, 561, 561, 561, 562, 563, 563,
- 563, 564, 564, 564, 564, 564, 564, 564, 564, 564,
- 565, 569, 572, 574, 579, 579, 579, 579, 579, 579,
- 579, 579, 579, 579, 579, 580, 580, 583, 585, 586,
- 590, 590, 590, 591, 591, 591, 592, 592, 592, 593,
- 594, 595, 595, 595, 595, 595, 595, 595, 595
+ 736, 738, 739, 739, 740, 740, 740, 740, 743, 745,
+ 746, 750, 751, 752, 753, 754, 755, 756, 758, 760,
+ 761, 763, 765, 767, 769, 770, 771, 772, 773, 775,
+ 776, 778, 779, 781, 782, 784, 785, 785, 785, 786,
+ 787, 788, 788, 791, 793, 794, 798, 799, 800, 801,
+ 803, 805, 806, 807, 809, 810, 811, 812, 813, 814,
+ 815, 817, 817, 817, 818, 822, 825, 827, 832, 833,
+ 834, 835, 836, 837, 838, 839, 840, 841, 842, 843,
+ 843, 846, 848, 849, 853, 854, 855, 857, 858, 859,
+ 861, 862, 863, 864, 865, 867, 868, 869, 870, 871,
+
+ 872, 873, 873
} ;
static yyconst flex_int32_t yy_ec[256] =
@@ -542,274 +575,288 @@
11, 11, 11, 11, 11, 11, 11, 11, 1, 1
} ;
-static yyconst flex_int16_t yy_base[521] =
+static yyconst flex_int16_t yy_base[537] =
{ 0,
- 0, 0, 65, 0, 122, 0, 127, 132, 87, 104,
- 192, 0, 258, 0, 322, 384, 451, 0, 521, 591,
- 1215, 1216, 75, 1216, 1216, 0, 88, 107, 134, 1216,
- 308, 139, 144, 258, 1193, 1216, 0, 0, 1192, 0,
- 1216, 1216, 1163, 1154, 43, 1148, 1152, 0, 1216, 1216,
- 1216, 85, 234, 243, 250, 20, 1156, 1150, 223, 273,
- 1158, 83, 276, 1157, 287, 1141, 263, 305, 1143, 1146,
- 1157, 1216, 1216, 1216, 0, 140, 1216, 0, 0, 0,
- 1216, 1216, 1216, 360, 104, 1179, 1216, 660, 372, 394,
- 397, 535, 548, 0, 1162, 224, 0, 0, 0, 39,
+ 0, 0, 65, 0, 127, 0, 196, 201, 209, 214,
+ 238, 0, 304, 0, 369, 0, 417, 463, 530, 0,
+ 600, 670, 1304, 1305, 75, 1305, 1305, 0, 72, 74,
+ 88, 1305, 393, 304, 327, 213, 1282, 1305, 1305, 0,
+ 0, 1281, 0, 1305, 1305, 1252, 1243, 69, 1237, 1241,
+ 0, 1305, 1305, 1305, 0, 154, 310, 179, 305, 20,
+ 1245, 1239, 158, 261, 1247, 45, 321, 1246, 280, 1230,
+ 76, 372, 1232, 1235, 1246, 0, 1222, 0, 1305, 0,
+ 119, 1305, 0, 0, 0, 0, 0, 1305, 1305, 1305,
+ 439, 314, 1267, 1305, 739, 460, 465, 468, 492, 614,
- 605, 619, 1144, 218, 1173, 326, 1216, 1216, 1216, 392,
- 1172, 1171, 1170, 1124, 1216, 1216, 262, 287, 1216, 1216,
- 0, 322, 1171, 1170, 1169, 0, 141, 0, 336, 361,
- 419, 1216, 1216, 1216, 1216, 0, 383, 541, 546, 0,
- 554, 1168, 1216, 1216, 1216, 1216, 1144, 1138, 1216, 1129,
- 1135, 1178, 1136, 1216, 1126, 1124, 1132, 1135, 1216, 1216,
- 316, 1115, 125, 1116, 1216, 1121, 1131, 1122, 1119, 1110,
- 1117, 1114, 1113, 1216, 1216, 1101, 1216, 1123, 1216, 1111,
- 1101, 1216, 1098, 1216, 1119, 1110, 1109, 1113, 345, 1095,
- 1098, 1091, 301, 1109, 1216, 249, 1111, 359, 1092, 0,
+ 0, 1250, 295, 0, 0, 0, 186, 684, 698, 1232,
+ 296, 1261, 415, 1305, 1305, 401, 1260, 1259, 1258, 1212,
+ 0, 302, 302, 1305, 1305, 0, 0, 360, 1259, 1258,
+ 1257, 0, 220, 0, 374, 437, 492, 1305, 1305, 1305,
+ 1305, 0, 453, 498, 612, 0, 620, 1256, 1305, 1305,
+ 1305, 1305, 1232, 1226, 1305, 1217, 1223, 1266, 0, 1224,
+ 0, 1214, 1212, 1220, 1223, 0, 0, 340, 1203, 353,
+ 1204, 0, 1209, 1219, 1210, 1207, 1198, 1205, 1202, 1201,
+ 0, 0, 1189, 0, 1211, 0, 1199, 1189, 0, 1186,
+ 0, 1207, 1198, 1197, 1201, 593, 1183, 1186, 1179, 419,
- 380, 0, 1132, 625, 1216, 725, 771, 569, 0, 0,
- 615, 637, 730, 760, 777, 1216, 1216, 1216, 1122, 1112,
- 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216, 0, 1129,
- 1128, 0, 0, 390, 560, 666, 0, 430, 1216, 1216,
- 1101, 1216, 1087, 1096, 1139, 1101, 1090, 348, 1098, 1077,
- 364, 1093, 1216, 1091, 1086, 1093, 1078, 1090, 1072, 1079,
- 1075, 1073, 1068, 1072, 1083, 1080, 494, 1078, 1063, 1057,
- 1067, 1060, 1069, 1063, 1067, 1055, 1069, 1068, 1216, 1216,
- 1050, 1066, 1055, 1054, 1065, 1047, 1057, 1062, 1096, 828,
- 805, 822, 833, 850, 867, 1216, 1216, 719, 743, 0,
+ 1197, 0, 380, 1199, 325, 1180, 1194, 0, 348, 0,
+ 1219, 642, 1305, 804, 850, 648, 0, 0, 694, 716,
+ 809, 839, 856, 1305, 1305, 1305, 1209, 1199, 1305, 1305,
+ 1305, 1305, 1305, 1305, 1305, 1305, 0, 0, 1216, 1215,
+ 0, 0, 461, 640, 705, 0, 510, 1305, 1305, 1188,
+ 1305, 1174, 1183, 1226, 1188, 1177, 339, 1185, 1164, 464,
+ 1180, 0, 1178, 1173, 1180, 1165, 1177, 1159, 1166, 1162,
+ 1160, 1155, 1159, 1170, 1167, 431, 1165, 1150, 1144, 1154,
+ 1147, 1156, 1150, 1154, 1142, 1156, 1155, 0, 0, 1137,
+ 1153, 1142, 1141, 1152, 1134, 1144, 1149, 1146, 1182, 907,
- 566, 1216, 1058, 1051, 1050, 1216, 1056, 1049, 1048, 1052,
- 1055, 1054, 1045, 1034, 1049, 575, 1216, 1040, 1216, 1216,
- 1216, 1216, 1216, 1030, 1022, 1037, 1023, 1015, 1216, 1216,
- 1027, 1005, 1216, 997, 1002, 996, 993, 1008, 1002, 1006,
- 999, 1216, 1216, 996, 988, 988, 988, 0, 1021, 626,
- 1029, 1028, 766, 862, 0, 631, 1216, 983, 986, 1216,
- 984, 1216, 1216, 956, 947, 931, 935, 933, 915, 905,
- 912, 911, 909, 901, 821, 795, 799, 1216, 1216, 789,
- 768, 773, 773, 757, 758, 744, 1216, 750, 1216, 1216,
- 0, 787, 778, 754, 0, 872, 877, 0, 652, 1216,
+ 745, 884, 901, 912, 929, 1305, 1305, 798, 822, 0,
+ 632, 1305, 1144, 1137, 1136, 0, 1142, 1135, 1131, 1131,
+ 1130, 1124, 1115, 1104, 1115, 645, 0, 1103, 0, 0,
+ 0, 0, 0, 1096, 1088, 1104, 1094, 1086, 0, 0,
+ 1098, 1080, 0, 1072, 1077, 1075, 1073, 1086, 1079, 1083,
+ 1076, 0, 0, 1076, 1066, 1052, 1050, 1044, 0, 1061,
+ 691, 1061, 1059, 845, 941, 0, 710, 1305, 1010, 1002,
+ 0, 1000, 0, 0, 981, 976, 973, 984, 902, 890,
+ 873, 874, 867, 860, 854, 862, 832, 847, 0, 0,
+ 842, 825, 821, 817, 791, 791, 765, 0, 772, 0,
- 721, 126, 705, 703, 688, 690, 1216, 655, 1216, 1216,
- 1216, 1216, 643, 615, 621, 625, 1216, 618, 1216, 621,
- 1216, 615, 1216, 646, 0, 1216, 1216, 1216, 636, 882,
- 887, 0, 714, 597, 591, 577, 1216, 1216, 573, 571,
- 1216, 579, 549, 557, 514, 522, 509, 539, 0, 1216,
- 892, 897, 0, 789, 495, 497, 397, 388, 399, 393,
- 392, 353, 365, 355, 0, 373, 817, 0, 0, 846,
- 318, 298, 1216, 303, 286, 1216, 277, 260, 1216, 1216,
- 1216, 243, 229, 206, 104, 54, 48, 1216, 917, 929,
- 941, 946, 952, 957, 967, 979, 991, 994, 998, 1003,
+ 0, 756, 0, 801, 768, 752, 0, 946, 951, 0,
+ 793, 1305, 709, 149, 705, 702, 696, 704, 0, 697,
+ 0, 0, 0, 0, 700, 678, 685, 683, 0, 670,
+ 0, 672, 0, 671, 0, 654, 691, 0, 1305, 1305,
+ 1305, 685, 956, 961, 0, 868, 641, 614, 601, 0,
+ 0, 597, 599, 0, 606, 580, 587, 574, 588, 575,
+ 0, 605, 0, 1305, 966, 971, 0, 896, 469, 476,
+ 454, 443, 453, 403, 402, 385, 396, 374, 0, 400,
+ 925, 0, 0, 976, 358, 342, 0, 355, 344, 0,
+ 284, 263, 1305, 1305, 0, 264, 184, 166, 54, 40,
- 1008, 1013, 1018, 1026, 1030, 1035, 1044, 1048, 1049, 1054,
- 1058, 1059, 1065, 1067, 1071, 1072, 1076, 1077, 1081, 1082
+ 18, 1305, 994, 1006, 1018, 1023, 1029, 1034, 1044, 1049,
+ 1061, 1073, 1076, 1087, 1092, 1097, 1102, 1107, 1112, 1120,
+ 1124, 1129, 1138, 1142, 1143, 1148, 1152, 1153, 1159, 1161,
+ 1165, 1166, 1170, 1171, 1175, 1176
} ;
-static yyconst flex_int16_t yy_def[521] =
+static yyconst flex_int16_t yy_def[537] =
{ 0,
- 488, 1, 1, 3, 3, 5, 489, 489, 490, 490,
- 488, 11, 1, 13, 3, 3, 488, 17, 491, 491,
- 488, 488, 488, 488, 488, 492, 488, 488, 488, 488,
- 493, 494, 494, 33, 34, 488, 494, 494, 494, 494,
- 488, 488, 488, 488, 488, 488, 488, 495, 488, 488,
- 488, 488, 488, 488, 488, 488, 488, 488, 488, 488,
- 488, 488, 488, 488, 488, 488, 488, 488, 488, 488,
- 488, 488, 488, 488, 496, 496, 488, 496, 497, 497,
- 488, 488, 488, 493, 33, 34, 488, 488, 88, 88,
- 88, 88, 88, 498, 498, 498, 498, 498, 498, 88,
+ 502, 1, 1, 3, 502, 5, 503, 503, 504, 504,
+ 502, 11, 1, 13, 13, 15, 15, 15, 502, 19,
+ 505, 505, 502, 502, 502, 502, 502, 506, 502, 502,
+ 502, 502, 507, 508, 508, 35, 36, 502, 502, 508,
+ 508, 508, 508, 502, 502, 502, 502, 502, 502, 502,
+ 509, 502, 502, 502, 510, 510, 510, 510, 510, 510,
+ 510, 510, 510, 510, 510, 510, 510, 510, 510, 510,
+ 510, 510, 510, 510, 510, 510, 510, 510, 502, 511,
+ 511, 502, 511, 511, 512, 512, 512, 502, 502, 502,
+ 507, 35, 36, 502, 502, 95, 95, 95, 95, 95,
- 88, 88, 498, 498, 488, 488, 488, 488, 488, 488,
- 488, 488, 488, 488, 488, 488, 488, 488, 488, 488,
- 499, 499, 499, 499, 499, 500, 488, 492, 488, 488,
- 488, 488, 488, 488, 488, 501, 502, 503, 503, 503,
- 139, 141, 488, 488, 488, 488, 488, 488, 488, 488,
- 488, 495, 488, 488, 488, 488, 488, 488, 488, 488,
- 488, 488, 488, 488, 488, 488, 488, 488, 488, 488,
- 488, 488, 488, 488, 488, 488, 488, 488, 488, 488,
- 488, 488, 488, 488, 488, 488, 488, 488, 488, 488,
- 488, 488, 488, 488, 488, 488, 488, 488, 488, 496,
+ 513, 513, 513, 513, 513, 513, 95, 95, 95, 513,
+ 513, 502, 502, 502, 502, 502, 502, 502, 502, 502,
+ 508, 502, 502, 502, 502, 514, 515, 515, 515, 515,
+ 515, 516, 502, 506, 502, 502, 502, 502, 502, 502,
+ 502, 517, 518, 519, 519, 519, 145, 147, 502, 502,
+ 502, 502, 502, 502, 502, 502, 502, 509, 510, 510,
+ 510, 510, 510, 510, 510, 510, 510, 510, 510, 510,
+ 510, 510, 510, 510, 510, 510, 510, 510, 510, 510,
+ 510, 510, 510, 510, 510, 510, 510, 510, 510, 510,
+ 510, 510, 510, 510, 510, 510, 510, 510, 510, 510,
- 496, 497, 141, 488, 488, 504, 504, 504, 207, 207,
- 504, 504, 504, 504, 504, 488, 488, 488, 488, 488,
- 488, 488, 488, 488, 488, 488, 488, 488, 499, 499,
- 499, 500, 501, 502, 505, 505, 505, 236, 488, 488,
- 488, 488, 488, 488, 495, 488, 488, 488, 488, 488,
- 488, 488, 488, 488, 488, 488, 488, 488, 488, 488,
- 488, 488, 488, 488, 488, 488, 488, 488, 488, 488,
- 488, 488, 488, 488, 488, 488, 488, 488, 488, 488,
- 488, 488, 488, 488, 488, 488, 488, 488, 506, 507,
- 507, 507, 507, 507, 507, 488, 488, 508, 508, 508,
+ 510, 510, 510, 510, 510, 510, 510, 511, 511, 512,
+ 147, 502, 502, 520, 520, 520, 215, 215, 520, 520,
+ 520, 520, 520, 502, 502, 502, 502, 502, 502, 502,
+ 502, 502, 502, 502, 502, 502, 514, 515, 515, 515,
+ 516, 517, 518, 521, 521, 521, 245, 502, 502, 502,
+ 502, 502, 502, 509, 510, 510, 510, 510, 510, 510,
+ 510, 510, 510, 510, 510, 510, 510, 510, 510, 510,
+ 510, 510, 510, 510, 510, 510, 510, 510, 510, 510,
+ 510, 510, 510, 510, 510, 510, 510, 510, 510, 510,
+ 510, 510, 510, 510, 510, 510, 510, 510, 522, 523,
- 299, 488, 488, 488, 488, 488, 488, 488, 488, 488,
- 488, 488, 488, 488, 488, 488, 488, 488, 488, 488,
- 488, 488, 488, 488, 488, 488, 488, 488, 488, 488,
- 488, 488, 488, 488, 488, 488, 488, 488, 488, 488,
- 488, 488, 488, 488, 488, 488, 488, 509, 510, 488,
- 508, 488, 511, 511, 511, 354, 488, 488, 488, 488,
- 488, 488, 488, 488, 488, 488, 488, 488, 488, 488,
- 488, 488, 488, 488, 488, 488, 488, 488, 488, 488,
- 488, 488, 488, 488, 488, 488, 488, 488, 488, 488,
- 512, 513, 488, 488, 514, 515, 515, 515, 397, 488,
+ 523, 523, 523, 523, 523, 502, 502, 524, 524, 524,
+ 309, 502, 502, 502, 510, 510, 510, 510, 510, 510,
+ 510, 510, 510, 510, 510, 510, 510, 510, 510, 510,
+ 510, 510, 510, 510, 510, 510, 510, 510, 510, 510,
+ 510, 510, 510, 510, 510, 510, 510, 510, 510, 510,
+ 510, 510, 510, 510, 510, 510, 510, 510, 525, 526,
+ 502, 524, 502, 527, 527, 527, 365, 502, 502, 510,
+ 510, 510, 510, 510, 510, 510, 510, 510, 510, 510,
+ 510, 510, 510, 510, 510, 510, 510, 510, 510, 510,
+ 510, 510, 510, 510, 510, 510, 510, 510, 510, 510,
- 488, 488, 488, 488, 488, 488, 488, 488, 488, 488,
- 488, 488, 488, 488, 488, 488, 488, 488, 488, 488,
- 488, 488, 488, 488, 516, 488, 488, 488, 488, 517,
- 517, 517, 431, 488, 488, 488, 488, 488, 488, 488,
- 488, 488, 488, 488, 488, 488, 488, 488, 518, 488,
- 519, 519, 519, 452, 488, 488, 488, 488, 488, 488,
- 488, 488, 488, 488, 520, 488, 452, 452, 519, 452,
- 488, 488, 488, 488, 488, 488, 488, 488, 488, 488,
- 488, 488, 488, 488, 488, 488, 488, 0, 488, 488,
- 488, 488, 488, 488, 488, 488, 488, 488, 488, 488,
+ 510, 510, 528, 529, 502, 502, 530, 531, 531, 531,
+ 409, 502, 510, 510, 510, 510, 510, 510, 510, 510,
+ 510, 510, 510, 510, 510, 510, 510, 510, 510, 510,
+ 510, 510, 510, 510, 510, 510, 502, 532, 502, 502,
+ 502, 502, 533, 533, 533, 444, 510, 510, 510, 510,
+ 510, 510, 510, 510, 510, 510, 510, 510, 510, 510,
+ 510, 502, 534, 502, 535, 535, 535, 466, 510, 510,
+ 510, 510, 510, 510, 510, 510, 510, 510, 536, 502,
+ 466, 466, 535, 466, 510, 510, 510, 510, 510, 510,
+ 510, 510, 502, 502, 510, 510, 510, 510, 510, 510,
- 488, 488, 488, 488, 488, 488, 488, 488, 488, 488,
- 488, 488, 488, 488, 488, 488, 488, 488, 488, 488
+ 510, 0, 502, 502, 502, 502, 502, 502, 502, 502,
+ 502, 502, 502, 502, 502, 502, 502, 502, 502, 502,
+ 502, 502, 502, 502, 502, 502, 502, 502, 502, 502,
+ 502, 502, 502, 502, 502, 502
} ;
-static yyconst flex_int16_t yy_nxt[1287] =
+static yyconst flex_int16_t yy_nxt[1376] =
{ 0,
- 22, 23, 24, 23, 22, 25, 22, 26, 27, 28,
- 22, 22, 29, 30, 31, 32, 33, 32, 34, 35,
- 22, ...
[truncated message content] |