[Mono-list] Trying to build debugger out of CVS
Martin Baulig
martin@gnome.org
01 Mar 2003 11:35:57 +0100
--=-=-=
"Elan Feingold" <efeingold@mn.rr.com> writes:
> make[2]: Entering directory `/home/elan/Incoming/Mono/debugger/lib'
>
> /usr/local/bin/mcs -o Interpreter.exe -r Mono.GetOptions -r Mono.CSharp.Debugger -r Mono.Debugger.dll -r
> Mono.Debugger.Backend.dll ../frontends/command-line/*.cs ../frontends/scripting/*.cs
>
> ../frontends/scripting/Tokenizer.cs(11) error CS0246: Cannot find type `yyParser.yyInput'
Hi,
that's declard in frontends/scripting/Parser.cs - a file which is generated from Parser.jay.
Make sure you have jay (from mcs/jay) installed and that it's actually generating that file.
Here's the latest version:
--=-=-=
Content-Type: application/octet-stream
Content-Disposition: attachment; filename=Parser.cs
// created by jay 0.7 (c) 1998 Axel.Schreiner@informatik.uni-osnabrueck.de
#line 2 "Parser.jay"
using System.Text;
using System.IO;
using System.Collections;
using System;
namespace Mono.Debugger.Frontends.CommandLine
{
public class Parser
{
string name;
ScriptingContext current_context;
MyTextReader reader;
bool do_quit = false;
protected bool yacc_verbose_flag = false;
public bool yacc_verbose {
set {
yacc_verbose_flag = value;
}
get {
return yacc_verbose_flag;
}
}
public bool Quit {
get {
return do_quit;
}
}
Tokenizer lexer;
public Tokenizer Lexer {
get {
return lexer;
}
}
#line default
/** simplified error message.
@see <a href="#yyerror(java.lang.String, java.lang.String[])">yyerror</a>
*/
public void yyerror (string message) {
yyerror(message, null);
}
/** (syntax) error message.
Can be overwritten to control message format.
@param message text to be displayed.
@param expected vector of acceptable tokens, if available.
*/
public void yyerror (string message, string[] expected) {
if ((expected != null) && (expected.Length > 0)) {
System.Console.Write (message+", expecting");
for (int n = 0; n < expected.Length; ++ n)
System.Console.Write (" "+expected[n]);
System.Console.WriteLine ();
} else
System.Console.WriteLine (message);
}
/** debugging support, requires the package jay.yydebug.
Set to null to suppress debugging messages.
*/
protected yydebug.yyDebug debug;
protected static int yyFinal = 2;
public static string [] yyRule = {
"$accept : command_loop",
"command_loop :",
"command_loop : command_loop command EOL",
"command_loop : command_loop EOL",
"command_loop : command_loop EOF",
"command_loop : QUIT EOL",
"command : CONTINUE opt_process",
"command : STEP opt_process",
"command : NEXT opt_process",
"command : STEPI opt_process",
"command : NEXTI opt_process",
"command : FINISH opt_process",
"command : BACKTRACE opt_process",
"command : UP opt_process",
"command : DOWN opt_process",
"command : KILL opt_process",
"command : SHOW PROCESSES",
"command : SHOW REGISTERS opt_process opt_frame_number",
"command : SHOW PARAMETERS opt_process opt_frame_number",
"command : SHOW LOCALS opt_process opt_frame_number",
"command : SHOW MODULES",
"command : SHOW SOURCES opt_number_list",
"command : SHOW METHODS opt_number_list",
"command : SHOW BREAKPOINTS",
"command : SHOW THREADGROUPS",
"command : SHOW TYPE variable_expression",
"command : BREAK opt_thread_group source_expression",
"command : BREAKPOINT INTEGER ENABLE",
"command : BREAKPOINT INTEGER DISABLE",
"command : BREAKPOINT INTEGER DELETE",
"command : PRINT expression",
"command : FRAME opt_process opt_frame_number",
"command : DISASSEMBLE opt_process opt_frame_number",
"command : DISASSEMBLE METHOD opt_process opt_frame_number",
"command : START INTEGER program_arguments",
"command : START program_arguments",
"command : PROCESS opt_process",
"command : BACKGROUND opt_process",
"command : STOP opt_process",
"command : SET BANG IDENTIFIER ASSIGN variable_expression",
"command : MODULE number_list module_operations",
"command : MODULE ALL module_operations",
"command : assert_command",
"command : SAVE STRING",
"command : THREADGROUP CREATE STRING opt_number_list",
"command : THREADGROUP ADD STRING opt_number_list",
"command : THREADGROUP REMOVE STRING opt_number_list",
"command : HELP SHOW",
"command : HELP",
"command : LIST source_expression",
"command : LIST CONTINUE",
"kind : UNKNOWN",
"kind : FUNDAMENTAL",
"kind : ARRAY",
"kind : STRUCT",
"kind : CLASS",
"kind : POINTER",
"assert_command : ASSERT KIND kind variable_expression",
"assert_command : ASSERT ACCESSIBLE variable_expression",
"assert_command : ASSERT NOT ACCESSIBLE variable_expression",
"assert_command : ASSERT TYPE STRING variable_expression",
"assert_command : ASSERT CONTENTS STRING variable_expression",
"assert_command : ASSERT LINE INTEGER",
"expression : opt_process opt_frame_number PERCENT IDENTIFIER",
"expression : LENGTH OPEN_PARENS variable_expression CLOSE_PARENS",
"expression : LOWER OPEN_PARENS variable_expression CLOSE_PARENS",
"expression : UPPER OPEN_PARENS variable_expression CLOSE_PARENS",
"expression : NUMBER",
"expression : INTEGER",
"expression : expression binary_operator expression",
"expression : OPEN_PARENS expression CLOSE_PARENS",
"expression : variable_expression",
"variable_expression : STAR variable_expression",
"variable_expression : BANG IDENTIFIER",
"variable_expression : opt_process opt_frame_number DOLLAR IDENTIFIER",
"variable_expression : variable_expression DOT IDENTIFIER",
"variable_expression : variable_expression OPEN_BRACKET expression CLOSE_BRACKET",
"variable_expression : PARENT OPEN_PARENS variable_expression CLOSE_PARENS",
"program_arguments : program_arglist",
"program_arglist : STRING",
"program_arglist : program_arglist STRING",
"opt_thread_group :",
"opt_thread_group : OP_LT IDENTIFIER OP_GT",
"opt_thread_group : OP_LT GLOBAL OP_GT",
"opt_process :",
"opt_process : AT INTEGER",
"opt_frame_number :",
"opt_frame_number : HASH INTEGER",
"opt_line :",
"opt_line : COLON INTEGER",
"source_expression : opt_process opt_frame_number",
"source_expression : opt_process opt_frame_number IDENTIFIER opt_line",
"source_expression : opt_process opt_frame_number INTEGER",
"source_expression : STRING",
"source_expression : STRING COLON INTEGER",
"source_expression : BANG INTEGER",
"opt_number_list :",
"opt_number_list : number_list",
"number_list : INTEGER",
"number_list : number_list COMMA INTEGER",
"module_operation : IGNORE",
"module_operation : UNIGNORE",
"module_operation : BANG IGNORE",
"module_operation : STEP",
"module_operation : BANG STEP",
"module_operation : SHOW BREAKPOINTS",
"module_operations : module_operation",
"module_operations : module_operations module_operation",
"binary_operator : STAR",
"binary_operator : PLUS",
"binary_operator : MINUS",
"binary_operator : DIV",
};
protected static string [] yyName = {
"end-of-file",null,null,null,null,null,null,null,null,null,null,null,
null,null,null,null,null,null,null,null,null,null,null,null,null,null,
null,null,null,null,null,null,null,null,null,null,null,null,null,null,
null,null,null,null,null,null,null,null,null,null,null,null,null,null,
null,null,null,null,null,null,null,null,null,null,null,null,null,null,
null,null,null,null,null,null,null,null,null,null,null,null,null,null,
null,null,null,null,null,null,null,null,null,null,null,null,null,null,
null,null,null,null,null,null,null,null,null,null,null,null,null,null,
null,null,null,null,null,null,null,null,null,null,null,null,null,null,
null,null,null,null,null,null,null,null,null,null,null,null,null,null,
null,null,null,null,null,null,null,null,null,null,null,null,null,null,
null,null,null,null,null,null,null,null,null,null,null,null,null,null,
null,null,null,null,null,null,null,null,null,null,null,null,null,null,
null,null,null,null,null,null,null,null,null,null,null,null,null,null,
null,null,null,null,null,null,null,null,null,null,null,null,null,null,
null,null,null,null,null,null,null,null,null,null,null,null,null,null,
null,null,null,null,null,null,null,null,null,null,null,null,null,null,
null,null,null,null,null,null,null,null,null,null,null,null,null,null,
null,null,null,null,null,null,null,"QUIT","EOL","EOF","NONE","ERROR",
"IDENTIFIER","INTEGER","NUMBER","STRING","HASH","AT","PERCENT",
"DOLLAR","DOT","BANG","COMMA","ASSIGN","STAR","PLUS","MINUS","DIV",
"OPEN_PARENS","CLOSE_PARENS","OPEN_BRACKET","CLOSE_BRACKET","OP_LT",
"OP_GT","COLON","PROCESSES","REGISTERS","PARAMETERS","LOCALS","TYPE",
"METHOD","PARENT","LENGTH","LOWER","UPPER","KIND","ACCESSIBLE",
"CONTENTS","LINE","NOT","UNKNOWN","FUNDAMENTAL","ARRAY","STRUCT",
"CLASS","POINTER","MODULES","SOURCES","METHODS","BREAKPOINTS",
"THREADGROUPS","GLOBAL","FRAME","START","SHOW","PROCESS","CONTINUE",
"BACKTRACE","UP","DOWN","STEP","NEXT","STEPI","NEXTI","FINISH",
"BREAK","PRINT","DISASSEMBLE","SET","ASSERT","BREAKPOINT","SAVE",
"KILL","THREADGROUP","SEARCH","LIST","SELECT","BACKGROUND","STOP",
"MODULE","IGNORE","UNIGNORE","ALL","ENABLE","DISABLE","DELETE",
"CREATE","ADD","REMOVE","HELP",
};
/** index-checked interface to yyName[].
@param token single character or %token value.
@return token name or [illegal] or [unknown].
*/
public static string yyname (int token) {
if ((token < 0) || (token > yyName.Length)) return "[illegal]";
string name;
if ((name = yyName[token]) != null) return name;
return "[unknown]";
}
/** computes list of expected tokens on error by tracing the tables.
@param state for which to compute the list.
@return list of token names.
*/
protected string[] yyExpecting (int state) {
int token, n, len = 0;
bool[] ok = new bool[yyName.Length];
if ((n = yySindex[state]) != 0)
for (token = n < 0 ? -n : 0;
(token < yyName.Length) && (n+token < yyTable.Length); ++ token)
if (yyCheck[n+token] == token && !ok[token] && yyName[token] != null) {
++ len;
ok[token] = true;
}
if ((n = yyRindex[state]) != 0)
for (token = n < 0 ? -n : 0;
(token < yyName.Length) && (n+token < yyTable.Length); ++ token)
if (yyCheck[n+token] == token && !ok[token] && yyName[token] != null) {
++ len;
ok[token] = true;
}
string [] result = new string[len];
for (n = token = 0; n < len; ++ token)
if (ok[token]) result[n++] = yyName[token];
return result;
}
/** the generated parser, with debugging messages.
Maintains a state and a value stack, currently with fixed maximum size.
@param yyLex scanner.
@param yydebug debug message writer implementing yyDebug, or null.
@return result of the last reduction, if any.
@throws yyException on irrecoverable parse error.
*/
public Object yyparse (yyParser.yyInput yyLex, Object yyd)
{
this.debug = (yydebug.yyDebug)yyd;
return yyparse(yyLex);
}
/** initial size and increment of the state/value stack [default 256].
This is not final so that it can be overwritten outside of invocations
of yyparse().
*/
protected int yyMax;
/** executed at the beginning of a reduce action.
Used as $$ = yyDefault($1), prior to the user-specified action, if any.
Can be overwritten to provide deep copy, etc.
@param first value for $1, or null.
@return first.
*/
protected Object yyDefault (Object first) {
return first;
}
/** the generated parser.
Maintains a state and a value stack, currently with fixed maximum size.
@param yyLex scanner.
@return result of the last reduction, if any.
@throws yyException on irrecoverable parse error.
*/
public Object yyparse (yyParser.yyInput yyLex)
{
if (yyMax <= 0) yyMax = 256; // initial size
int yyState = 0; // state stack ptr
int [] yyStates = new int[yyMax]; // state stack
Object yyVal = null; // value stack ptr
Object [] yyVals = new Object[yyMax]; // value stack
int yyToken = -1; // current input
int yyErrorFlag = 0; // #tks to shift
int yyTop = 0;
goto skip;
yyLoop:
yyTop++;
skip:
for (;; ++ yyTop) {
if (yyTop >= yyStates.Length) { // dynamically increase
int[] i = new int[yyStates.Length+yyMax];
yyStates.CopyTo (i, 0);
yyStates = i;
Object[] o = new Object[yyVals.Length+yyMax];
yyVals.CopyTo (o, 0);
yyVals = o;
}
yyStates[yyTop] = yyState;
yyVals[yyTop] = yyVal;
if (debug != null) debug.push(yyState, yyVal);
yyDiscarded: for (;;) { // discarding a token does not change stack
int yyN;
if ((yyN = yyDefRed[yyState]) == 0) { // else [default] reduce (yyN)
if (yyToken < 0) {
yyToken = yyLex.advance() ? yyLex.token() : 0;
if (debug != null)
debug.lex(yyState, yyToken, yyname(yyToken), yyLex.value());
}
if ((yyN = yySindex[yyState]) != 0 && ((yyN += yyToken) >= 0)
&& (yyN < yyTable.Length) && (yyCheck[yyN] == yyToken)) {
if (debug != null)
debug.shift(yyState, yyTable[yyN], yyErrorFlag-1);
yyState = yyTable[yyN]; // shift to yyN
yyVal = yyLex.value();
yyToken = -1;
if (yyErrorFlag > 0) -- yyErrorFlag;
goto yyLoop;
}
if ((yyN = yyRindex[yyState]) != 0 && (yyN += yyToken) >= 0
&& yyN < yyTable.Length && yyCheck[yyN] == yyToken)
yyN = yyTable[yyN]; // reduce (yyN)
else
switch (yyErrorFlag) {
case 0:
yyerror("syntax error", yyExpecting(yyState));
if (debug != null) debug.error("syntax error");
goto case 1;
case 1: case 2:
yyErrorFlag = 3;
do {
if ((yyN = yySindex[yyStates[yyTop]]) != 0
&& (yyN += Token.yyErrorCode) >= 0 && yyN < yyTable.Length
&& yyCheck[yyN] == Token.yyErrorCode) {
if (debug != null)
debug.shift(yyStates[yyTop], yyTable[yyN], 3);
yyState = yyTable[yyN];
yyVal = yyLex.value();
goto yyLoop;
}
if (debug != null) debug.pop(yyStates[yyTop]);
} while (-- yyTop >= 0);
if (debug != null) debug.reject();
throw new yyParser.yyException("irrecoverable syntax error");
case 3:
if (yyToken == 0) {
if (debug != null) debug.reject();
throw new yyParser.yyException("irrecoverable syntax error at end-of-file");
}
if (debug != null)
debug.discard(yyState, yyToken, yyname(yyToken),
yyLex.value());
yyToken = -1;
goto yyDiscarded; // leave stack alone
}
}
int yyV = yyTop + 1-yyLen[yyN];
if (debug != null)
debug.reduce(yyState, yyStates[yyV-1], yyN, yyRule[yyN], yyLen[yyN]);
yyVal = yyDefault(yyV > yyTop ? null : yyVals[yyV]);
switch (yyN) {
case 2:
#line 152 "Parser.jay"
{
((Command) yyVals[-1+yyTop]).Execute (current_context);
}
break;
case 5:
#line 158 "Parser.jay"
{
do_quit = true;
reader.Close ();
}
break;
case 6:
#line 166 "Parser.jay"
{
yyVal = new StepCommand ((ProcessExpression) yyVals[0+yyTop], WhichStepCommand.Continue);
}
break;
case 7:
#line 170 "Parser.jay"
{
yyVal = new StepCommand ((ProcessExpression) yyVals[0+yyTop], WhichStepCommand.Step);
}
break;
case 8:
#line 174 "Parser.jay"
{
yyVal = new StepCommand ((ProcessExpression) yyVals[0+yyTop], WhichStepCommand.Next);
}
break;
case 9:
#line 178 "Parser.jay"
{
yyVal = new StepCommand ((ProcessExpression) yyVals[0+yyTop], WhichStepCommand.StepInstruction);
}
break;
case 10:
#line 182 "Parser.jay"
{
yyVal = new StepCommand ((ProcessExpression) yyVals[0+yyTop], WhichStepCommand.NextInstruction);
}
break;
case 11:
#line 186 "Parser.jay"
{
yyVal = new StepCommand ((ProcessExpression) yyVals[0+yyTop], WhichStepCommand.Finish);
}
break;
case 12:
#line 190 "Parser.jay"
{
yyVal = new BacktraceCommand ((ProcessExpression) yyVals[0+yyTop]);
}
break;
case 13:
#line 194 "Parser.jay"
{
yyVal = new UpCommand ((ProcessExpression) yyVals[0+yyTop]);
}
break;
case 14:
#line 198 "Parser.jay"
{
yyVal = new DownCommand ((ProcessExpression) yyVals[0+yyTop]);
}
break;
case 15:
#line 202 "Parser.jay"
{
yyVal = new KillProcessCommand ((ProcessExpression) yyVals[0+yyTop]);
}
break;
case 16:
#line 206 "Parser.jay"
{
yyVal = new ShowProcessesCommand ();
}
break;
case 17:
#line 210 "Parser.jay"
{
yyVal = new ShowRegistersCommand ((ProcessExpression) yyVals[-1+yyTop], (int) yyVals[0+yyTop]);
}
break;
case 18:
#line 214 "Parser.jay"
{
yyVal = new ShowParametersCommand ((ProcessExpression) yyVals[-1+yyTop], (int) yyVals[0+yyTop]);
}
break;
case 19:
#line 218 "Parser.jay"
{
yyVal = new ShowLocalsCommand ((ProcessExpression) yyVals[-1+yyTop], (int) yyVals[0+yyTop]);
}
break;
case 20:
#line 222 "Parser.jay"
{
yyVal = new ShowModulesCommand ();
}
break;
case 21:
#line 226 "Parser.jay"
{
int[] modules = new int [((ArrayList) yyVals[0+yyTop]).Count];
((ArrayList) yyVals[0+yyTop]).CopyTo (modules, 0);
yyVal = new ShowSourcesCommand (modules);
}
break;
case 22:
#line 233 "Parser.jay"
{
int[] sources = new int [((ArrayList) yyVals[0+yyTop]).Count];
((ArrayList) yyVals[0+yyTop]).CopyTo (sources, 0);
yyVal = new ShowMethodsCommand (sources);
}
break;
case 23:
#line 240 "Parser.jay"
{
yyVal = new ShowBreakpointsCommand ();
}
break;
case 24:
#line 244 "Parser.jay"
{
yyVal = new ShowThreadGroupsCommand ();
}
break;
case 25:
#line 248 "Parser.jay"
{
yyVal = new ShowVariableTypeCommand ((VariableExpression) yyVals[0+yyTop]);
}
break;
case 26:
#line 252 "Parser.jay"
{
yyVal = new BreakCommand ((ThreadGroupExpression) yyVals[-1+yyTop], (SourceExpression) yyVals[0+yyTop]);
}
break;
case 27:
#line 256 "Parser.jay"
{
yyVal = new BreakpointEnableCommand ((int) yyVals[-1+yyTop]);
}
break;
case 28:
#line 260 "Parser.jay"
{
yyVal = new BreakpointDisableCommand ((int) yyVals[-1+yyTop]);
}
break;
case 29:
#line 264 "Parser.jay"
{
yyVal = new BreakpointDeleteCommand ((int) yyVals[-1+yyTop]);
}
break;
case 30:
#line 268 "Parser.jay"
{
yyVal = new PrintCommand ((Expression) yyVals[0+yyTop]);
}
break;
case 31:
#line 272 "Parser.jay"
{
yyVal = new FrameCommand ((ProcessExpression) yyVals[-1+yyTop], (int) yyVals[0+yyTop]);
}
break;
case 32:
#line 276 "Parser.jay"
{
yyVal = new DisassembleCommand ((ProcessExpression) yyVals[-1+yyTop], (int) yyVals[0+yyTop]);
}
break;
case 33:
#line 280 "Parser.jay"
{
yyVal = new DisassembleMethodCommand ((ProcessExpression) yyVals[-1+yyTop], (int) yyVals[0+yyTop]);
}
break;
case 34:
#line 284 "Parser.jay"
{
yyVal = new StartCommand ((string []) yyVals[0+yyTop], (int) yyVals[-1+yyTop]);
}
break;
case 35:
#line 288 "Parser.jay"
{
yyVal = new StartCommand ((string []) yyVals[0+yyTop]);
}
break;
case 36:
#line 292 "Parser.jay"
{
yyVal = new SelectProcessCommand ((ProcessExpression) yyVals[0+yyTop]);
}
break;
case 37:
#line 296 "Parser.jay"
{
yyVal = new BackgroundProcessCommand ((ProcessExpression) yyVals[0+yyTop]);
}
break;
case 38:
#line 300 "Parser.jay"
{
yyVal = new StopProcessCommand ((ProcessExpression) yyVals[0+yyTop]);
}
break;
case 39:
#line 304 "Parser.jay"
{
yyVal = new ScriptingVariableAssignCommand ((string) yyVals[-2+yyTop], (VariableExpression) yyVals[0+yyTop]);
}
break;
case 40:
#line 308 "Parser.jay"
{
int[] modules = new int [((ArrayList) yyVals[-1+yyTop]).Count];
((ArrayList) yyVals[-1+yyTop]).CopyTo (modules, 0);
ModuleOperation[] operations = new ModuleOperation [((ArrayList) yyVals[0+yyTop]).Count];
((ArrayList) yyVals[0+yyTop]).CopyTo (operations, 0);
yyVal = new ModuleOperationCommand (modules, operations);
}
break;
case 41:
#line 316 "Parser.jay"
{
ModuleOperation[] operations = new ModuleOperation [((ArrayList) yyVals[-1+yyTop]).Count];
((ArrayList) yyVals[-1+yyTop]).CopyTo (operations, 0);
yyVal = new ModuleOperationCommand (operations);
}
break;
case 42:
#line 322 "Parser.jay"
{
yyVal = yyVals[0+yyTop];
}
break;
case 43:
#line 326 "Parser.jay"
{
yyVal = new SaveCommand ((string) yyVals[0+yyTop]);
}
break;
case 44:
#line 330 "Parser.jay"
{
int[] threads = new int [((ArrayList) yyVals[0+yyTop]).Count];
((ArrayList) yyVals[0+yyTop]).CopyTo (threads, 0);
yyVal = new ThreadGroupCreateCommand ((string) yyVals[-1+yyTop], threads);
}
break;
case 45:
#line 337 "Parser.jay"
{
int[] threads = new int [((ArrayList) yyVals[0+yyTop]).Count];
((ArrayList) yyVals[0+yyTop]).CopyTo (threads, 0);
yyVal = new ThreadGroupAddCommand ((string) yyVals[-1+yyTop], threads);
}
break;
case 46:
#line 344 "Parser.jay"
{
int[] threads = new int [((ArrayList) yyVals[0+yyTop]).Count];
((ArrayList) yyVals[0+yyTop]).CopyTo (threads, 0);
yyVal = new ThreadGroupRemoveCommand ((string) yyVals[-1+yyTop], threads);
}
break;
case 47:
#line 351 "Parser.jay"
{
yyVal = new HelpCommand ("show");
}
break;
case 48:
#line 355 "Parser.jay"
{
yyVal = new HelpCommand ("");
}
break;
case 49:
#line 359 "Parser.jay"
{
yyVal = new ListCommand ((SourceExpression) yyVals[0+yyTop]);
}
break;
case 50:
#line 363 "Parser.jay"
{
yyVal = new ListCommand (null);
}
break;
case 51:
#line 370 "Parser.jay"
{
yyVal = TargetObjectKind.Unknown;
}
break;
case 52:
#line 374 "Parser.jay"
{
yyVal = TargetObjectKind.Fundamental;
}
break;
case 53:
#line 378 "Parser.jay"
{
yyVal = TargetObjectKind.Array;
}
break;
case 54:
#line 382 "Parser.jay"
{
yyVal = TargetObjectKind.Struct;
}
break;
case 55:
#line 386 "Parser.jay"
{
yyVal = TargetObjectKind.Class;
}
break;
case 56:
#line 390 "Parser.jay"
{
yyVal = TargetObjectKind.Pointer;
}
break;
case 57:
#line 397 "Parser.jay"
{
yyVal = new AssertKindCommand ((TargetObjectKind) yyVals[-1+yyTop], (VariableExpression) yyVals[0+yyTop]);
}
break;
case 58:
#line 401 "Parser.jay"
{
yyVal = new AssertAccessibleCommand ((VariableExpression) yyVals[0+yyTop], true);
}
break;
case 59:
#line 405 "Parser.jay"
{
yyVal = new AssertAccessibleCommand ((VariableExpression) yyVals[0+yyTop], false);
}
break;
case 60:
#line 409 "Parser.jay"
{
yyVal = new AssertTypeCommand ((string) yyVals[-1+yyTop], (VariableExpression) yyVals[0+yyTop]);
}
break;
case 61:
#line 413 "Parser.jay"
{
yyVal = new AssertContentsCommand ((string) yyVals[-1+yyTop], (VariableExpression) yyVals[0+yyTop]);
}
break;
case 62:
#line 417 "Parser.jay"
{
yyVal = new AssertLineCommand ((int) yyVals[0+yyTop]);
}
break;
case 63:
#line 424 "Parser.jay"
{
yyVal = new RegisterExpression ((ProcessExpression) yyVals[-3+yyTop], (int) yyVals[-2+yyTop], (string) yyVals[0+yyTop]);
}
break;
case 64:
#line 428 "Parser.jay"
{
yyVal = new ArrayLengthExpression ((VariableExpression) yyVals[-1+yyTop]);
}
break;
case 65:
#line 432 "Parser.jay"
{
yyVal = new ArrayLowerBoundExpression ((VariableExpression) yyVals[-1+yyTop]);
}
break;
case 66:
#line 436 "Parser.jay"
{
yyVal = new ArrayUpperBoundExpression ((VariableExpression) yyVals[-1+yyTop]);
}
break;
case 67:
#line 440 "Parser.jay"
{
yyVal = new NumberExpression ((int) yyVals[0+yyTop]);
}
break;
case 68:
#line 444 "Parser.jay"
{
yyVal = new NumberExpression ((int) yyVals[0+yyTop]);
}
break;
case 69:
#line 448 "Parser.jay"
{
yyVal = new BinaryOperator ((BinaryOperator.Kind) yyVals[-1+yyTop], (Expression) yyVals[-2+yyTop], (Expression) yyVals[0+yyTop]);
}
break;
case 70:
#line 452 "Parser.jay"
{
yyVal = new ExpressionGroup ((Expression) yyVals[-1+yyTop]);
}
break;
case 71:
#line 456 "Parser.jay"
{
yyVal = yyVals[0+yyTop];
}
break;
case 72:
#line 463 "Parser.jay"
{
yyVal = new VariableDereferenceExpression ((VariableExpression) yyVals[0+yyTop]);
}
break;
case 73:
#line 467 "Parser.jay"
{
yyVal = new ScriptingVariableReference ((string) yyVals[0+yyTop]);
}
break;
case 74:
#line 471 "Parser.jay"
{
yyVal = new VariableReferenceExpression ((ProcessExpression) yyVals[-3+yyTop], (int) yyVals[-2+yyTop], (string) yyVals[0+yyTop]);
}
break;
case 75:
#line 475 "Parser.jay"
{
yyVal = new StructAccessExpression ((VariableExpression) yyVals[-2+yyTop], (string) yyVals[0+yyTop]);
}
break;
case 76:
#line 479 "Parser.jay"
{
yyVal = new ArrayAccessExpression ((VariableExpression) yyVals[-3+yyTop], (Expression) yyVals[-1+yyTop]);
}
break;
case 77:
#line 483 "Parser.jay"
{
yyVal = new ParentClassExpression ((VariableExpression) yyVals[-1+yyTop]);
}
break;
case 78:
#line 490 "Parser.jay"
{
ArrayList args = (ArrayList) yyVals[0+yyTop];
string[] retval = new string [args.Count];
args.CopyTo (retval, 0);
yyVal = retval;
}
break;
case 79:
#line 500 "Parser.jay"
{
ArrayList args = new ArrayList ();
args.Add (yyVals[0+yyTop]);
yyVal = args;
}
break;
case 80:
#line 507 "Parser.jay"
{
ArrayList args = (ArrayList) yyVals[-1+yyTop];
args.Add (yyVals[0+yyTop]);
yyVal = args;
}
break;
case 81:
#line 517 "Parser.jay"
{
yyVal = new ThreadGroupExpression ("main");
}
break;
case 82:
#line 521 "Parser.jay"
{
yyVal = new ThreadGroupExpression ((string) yyVals[0+yyTop]);
}
break;
case 83:
#line 525 "Parser.jay"
{
yyVal = new ThreadGroupExpression ("global");
}
break;
case 84:
#line 532 "Parser.jay"
{
yyVal = new ProcessExpression (-1);
}
break;
case 85:
#line 536 "Parser.jay"
{
yyVal = new ProcessExpression ((int) yyVals[0+yyTop]);
}
break;
case 86:
#line 543 "Parser.jay"
{
yyVal = -1;
}
break;
case 87:
#line 547 "Parser.jay"
{
yyVal = yyVals[0+yyTop];
}
break;
case 88:
#line 554 "Parser.jay"
{
yyVal = -1;
}
break;
case 89:
#line 558 "Parser.jay"
{
yyVal = yyVals[0+yyTop];
}
break;
case 90:
#line 565 "Parser.jay"
{
yyVal = new SourceExpression ((ProcessExpression) yyVals[-1+yyTop], (int) yyVals[0+yyTop], null, -1);
}
break;
case 91:
#line 569 "Parser.jay"
{
yyVal = new SourceExpression ((ProcessExpression) yyVals[-3+yyTop], (int) yyVals[-2+yyTop], (string) yyVals[-1+yyTop], (int) yyVals[0+yyTop]);
}
break;
case 92:
#line 573 "Parser.jay"
{
yyVal = new SourceExpression ((ProcessExpression) yyVals[-2+yyTop], (int) yyVals[-1+yyTop], (int) yyVals[0+yyTop]);
}
break;
case 93:
#line 577 "Parser.jay"
{
yyVal = new SourceExpression ((string) yyVals[0+yyTop]);
}
break;
case 94:
#line 581 "Parser.jay"
{
yyVal = new SourceExpression ((string) yyVals[-2+yyTop], (int) yyVals[0+yyTop]);
}
break;
case 95:
#line 585 "Parser.jay"
{
yyVal = new SourceExpression ((int) yyVals[0+yyTop]);
}
break;
case 96:
#line 592 "Parser.jay"
{
yyVal = new ArrayList ();
}
break;
case 98:
#line 600 "Parser.jay"
{
ArrayList args = new ArrayList ();
args.Add (yyVals[0+yyTop]);
yyVal = args;
}
break;
case 99:
#line 607 "Parser.jay"
{
ArrayList args = (ArrayList) yyVals[-2+yyTop];
args.Add (yyVals[0+yyTop]);
yyVal = args;
}
break;
case 100:
#line 617 "Parser.jay"
{
yyVal = ModuleOperation.Ignore;
}
break;
case 101:
#line 621 "Parser.jay"
{
yyVal = ModuleOperation.UnIgnore;
}
break;
case 102:
#line 625 "Parser.jay"
{
yyVal = ModuleOperation.UnIgnore;
}
break;
case 103:
#line 629 "Parser.jay"
{
yyVal = ModuleOperation.Step;
}
break;
case 104:
#line 633 "Parser.jay"
{
yyVal = ModuleOperation.DontStep;
}
break;
case 105:
#line 637 "Parser.jay"
{
yyVal = ModuleOperation.ShowBreakpoints;
}
break;
case 106:
#line 644 "Parser.jay"
{
ArrayList args = new ArrayList ();
args.Add (yyVals[0+yyTop]);
yyVal = args;
}
break;
case 107:
#line 651 "Parser.jay"
{
ArrayList args = (ArrayList) yyVals[-1+yyTop];
args.Add (yyVals[0+yyTop]);
yyVal = args;
}
break;
case 108:
#line 661 "Parser.jay"
{
yyVal = BinaryOperator.Kind.Mult;
}
break;
case 109:
#line 665 "Parser.jay"
{
yyVal = BinaryOperator.Kind.Plus;
}
break;
case 110:
#line 669 "Parser.jay"
{
yyVal = BinaryOperator.Kind.Minus;
}
break;
case 111:
#line 673 "Parser.jay"
{
yyVal = BinaryOperator.Kind.Div;
}
break;
#line default
}
yyTop -= yyLen[yyN];
yyState = yyStates[yyTop];
int yyM = yyLhs[yyN];
if (yyState == 0 && yyM == 0) {
if (debug != null) debug.shift(0, yyFinal);
yyState = yyFinal;
if (yyToken < 0) {
yyToken = yyLex.advance() ? yyLex.token() : 0;
if (debug != null)
debug.lex(yyState, yyToken,yyname(yyToken), yyLex.value());
}
if (yyToken == 0) {
if (debug != null) debug.accept(yyVal);
return yyVal;
}
goto yyLoop;
}
if (((yyN = yyGindex[yyM]) != 0) && ((yyN += yyState) >= 0)
&& (yyN < yyTable.Length) && (yyCheck[yyN] == yyState))
yyState = yyTable[yyN];
else
yyState = yyDgoto[yyM];
if (debug != null) debug.shift(yyStates[yyTop], yyState);
goto yyLoop;
}
}
}
static short [] yyLhs = { -1,
0, 0, 0, 0, 0, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
13, 13, 13, 13, 13, 13, 12, 12, 12, 12,
12, 12, 8, 8, 8, 8, 8, 8, 8, 8,
8, 5, 5, 5, 5, 5, 5, 9, 15, 15,
6, 6, 6, 2, 2, 3, 3, 16, 16, 7,
7, 7, 7, 7, 7, 4, 4, 10, 10, 17,
17, 17, 17, 17, 17, 11, 11, 14, 14, 14,
14,
};
static short [] yyLen = { 2,
0, 3, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 4, 4, 4, 2,
3, 3, 2, 2, 3, 3, 3, 3, 3, 2,
3, 3, 4, 3, 2, 2, 2, 2, 5, 3,
3, 1, 2, 4, 4, 4, 2, 1, 2, 2,
1, 1, 1, 1, 1, 1, 4, 3, 4, 4,
4, 3, 4, 4, 4, 4, 1, 1, 3, 3,
1, 2, 2, 4, 3, 4, 4, 1, 1, 2,
0, 3, 3, 0, 2, 0, 2, 0, 2, 2,
4, 3, 1, 3, 2, 0, 1, 1, 3, 1,
1, 2, 1, 2, 2, 1, 2, 1, 1, 1,
1,
};
static short [] yyDefRed = { 0,
0, 0, 5, 3, 4, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 42, 0, 0, 0, 79, 35, 0,
16, 0, 0, 0, 0, 20, 0, 0, 23, 24,
36, 6, 12, 13, 14, 7, 8, 9, 10, 11,
0, 0, 68, 67, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 43, 15, 0, 0, 0, 0,
0, 50, 0, 49, 37, 38, 98, 0, 0, 47,
2, 85, 0, 31, 34, 80, 0, 0, 0, 0,
0, 21, 0, 22, 0, 0, 26, 73, 0, 0,
0, 0, 0, 0, 0, 0, 0, 108, 109, 110,
111, 0, 0, 32, 0, 0, 51, 52, 53, 54,
55, 56, 0, 0, 0, 62, 0, 27, 28, 29,
0, 0, 0, 0, 95, 0, 0, 0, 103, 100,
101, 0, 106, 0, 0, 87, 17, 18, 19, 0,
82, 83, 70, 0, 0, 0, 0, 0, 0, 75,
0, 0, 33, 0, 0, 0, 0, 0, 44, 45,
46, 94, 0, 92, 104, 102, 105, 107, 99, 77,
64, 65, 66, 63, 74, 76, 0, 0, 91, 89,
};
protected static short [] yyDgoto = { 2,
33, 110, 104, 112, 73, 62, 94, 74, 39, 113,
162, 34, 143, 132, 40, 209, 163,
};
protected static short [] yySindex = { -198,
-189, -172, 0, 0, 0, -239, -221, -175, -239, -239,
-239, -239, -239, -239, -239, -239, -239, -239, -192, -88,
-230, -152, -82, -166, -135, -239, -210, -235, -239, -239,
-260, -127, -96, 0, -67, -54, -39, 0, 0, -26,
0, -239, -239, -239, -240, 0, -65, -65, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-244, -47, 0, 0, -43, -240, -88, -57, -38, -35,
-34, -54, -227, -66, -239, -54, -17, -19, -73, -240,
-18, -15, -42, -163, 0, 0, -16, -14, -13, -31,
-8, 0, -54, 0, 0, 0, 0, -248, -252, 0,
0, 0, -7, 0, 0, 0, -54, -54, -54, -54,
-227, 0, -22, 0, -25, -20, 0, 0, -227, -41,
-240, -240, -240, -240, -99, -5, -88, 0, 0, 0,
0, -88, -54, 0, -12, -240, 0, 0, 0, 0,
0, 0, -240, -227, -240, 0, -240, 0, 0, 0,
-65, -65, -65, -1, 0, -68, -279, -40, 0, 0,
0, -248, 0, 2, -248, 0, 0, 0, 0, -3,
0, 0, 0, -215, -196, -185, -174, 5, 6, 0,
-103, -66, 0, -240, -227, -227, -227, -227, 0, 0,
0, 0, -11, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, -227, 7, 0, 0,
};
protected static short [] yyRindex = { 1,
0, 0, 0, 0, 0, -209, 0, 0, 13, 13,
13, 13, 13, 13, 13, 13, 13, 13, -74, -165,
-209, 0, 0, 0, 0, 13, 0, -137, 13, 13,
0, 14, 0, 0, 0, 16, 0, 0, 0, 17,
0, -209, -209, -209, -142, 0, 18, 18, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, -137, 0, 0, 0, -142, -165, 0, 0, 0,
0, -46, -229, 19, -209, 16, 0, 0, 0, -142,
0, 0, 0, 0, 0, 0, 0, 0, 0, 20,
0, 0, -21, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 16, 16, 16, 10,
22, 0, 23, 0, 0, 0, 0, 0, -159, 0,
-142, -142, -142, -142, 0, 0, -165, 0, 0, 0,
0, -165, 16, 0, 0, -142, 0, 0, 0, 0,
0, 0, -142, 24, -142, 0, -142, 0, 0, 0,
18, 18, 18, 0, 0, 25, 0, 0, 0, 0,
0, 26, 0, 0, 27, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, -225, 0, -142, 28, 29, 30, 31, 0, 0,
0, 0, 32, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 33, 0, 0, 0,
};
protected static short [] yyGindex = { 0,
0, -4, 92, -44, -45, 0, 202, -52, 255, 262,
195, 0, 0, 0, 0, 0, -92,
};
protected static short [] yyTable = { 111,
1, 36, 97, 114, 51, 52, 53, 54, 55, 56,
57, 58, 59, 60, 120, 72, 76, 115, 157, 164,
119, 86, 157, 93, 95, 96, 35, 35, 71, 90,
65, 35, 69, 66, 144, 91, 35, 107, 108, 109,
195, 37, 126, 38, 71, 71, 71, 71, 84, 71,
68, 71, 127, 69, 126, 69, 84, 93, 1, 75,
196, 158, 72, 200, 127, 158, 116, 159, 3, 198,
133, 159, 198, 126, 181, 174, 175, 176, 177, 182,
92, 98, 201, 127, 126, 4, 5, 160, 161, 61,
185, 160, 161, 202, 127, 126, 84, 186, 72, 187,
84, 188, 84, 84, 203, 127, 189, 190, 191, 41,
42, 43, 44, 45, 72, 72, 72, 72, 77, 72,
84, 72, 72, 84, 84, 84, 84, 72, 84, 85,
46, 47, 48, 49, 50, 87, 88, 89, 207, 6,
7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
27, 101, 28, 125, 29, 30, 31, 134, 178, 179,
128, 129, 130, 131, 63, 64, 32, 206, 35, 148,
149, 150, 65, 81, 156, 66, 100, 81, 81, 67,
81, 81, 81, 193, 194, 102, 81, 97, 167, 168,
169, 170, 68, 69, 70, 71, 78, 128, 129, 130,
131, 103, 79, 80, 81, 82, 83, 90, 118, 35,
121, 86, 86, 91, 183, 38, 137, 138, 139, 140,
141, 142, 128, 129, 130, 131, 86, 173, 106, 122,
86, 86, 123, 124, 135, 136, 145, 146, 151, 164,
152, 153, 154, 147, 155, 166, 180, 171, 1, 1,
184, 192, 172, 117, 199, 179, 204, 205, 197, 210,
84, 48, 208, 86, 78, 96, 30, 93, 86, 25,
97, 58, 90, 41, 40, 60, 57, 61, 59, 88,
39, 105, 99, 165, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 0, 1, 0, 1, 1, 1,
0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
};
protected static short [] yyCheck = { 45,
0, 6, 263, 48, 9, 10, 11, 12, 13, 14,
15, 16, 17, 18, 67, 20, 21, 262, 271, 272,
66, 26, 271, 28, 29, 30, 267, 267, 258, 265,
271, 267, 258, 274, 80, 271, 267, 42, 43, 44,
320, 263, 270, 265, 274, 275, 276, 277, 258, 279,
291, 281, 280, 279, 270, 281, 266, 62, 257, 290,
340, 314, 67, 279, 280, 314, 311, 320, 258, 162,
75, 320, 165, 270, 127, 121, 122, 123, 124, 132,
316, 342, 279, 280, 270, 258, 259, 340, 341, 282,
136, 340, 341, 279, 280, 270, 263, 143, 258, 145,
266, 147, 268, 269, 279, 280, 151, 152, 153, 285,
286, 287, 288, 289, 274, 275, 276, 277, 271, 279,
258, 281, 127, 266, 262, 263, 269, 132, 266, 265,
306, 307, 308, 309, 310, 346, 347, 348, 184, 312,
313, 314, 315, 316, 317, 318, 319, 320, 321, 322,
323, 324, 325, 326, 327, 328, 329, 330, 331, 332,
333, 258, 335, 72, 337, 338, 339, 76, 268, 269,
274, 275, 276, 277, 263, 264, 349, 281, 267, 343,
344, 345, 271, 258, 93, 274, 314, 262, 263, 278,
265, 266, 267, 262, 263, 263, 271, 263, 107, 108,
109, 110, 291, 292, 293, 294, 289, 274, 275, 276,
277, 266, 295, 296, 297, 298, 299, 265, 262, 267,
278, 268, 269, 271, 133, 265, 300, 301, 302, 303,
304, 305, 274, 275, 276, 277, 258, 279, 265, 278,
262, 263, 278, 278, 262, 265, 265, 263, 265, 272,
265, 265, 284, 296, 263, 263, 262, 283, 258, 259,
273, 263, 283, 62, 263, 269, 262, 262, 309, 263,
258, 258, 284, 258, 258, 258, 258, 258, 269, 258,
258, 258, 258, 258, 258, 258, 258, 258, 258, 258,
258, 37, 31, 99, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 312, 313, 314, 315, 316, 317, 318, 319,
320, 321, 322, 323, 324, 325, 326, 327, 328, 329,
330, 331, 332, 333, -1, 335, -1, 337, 338, 339,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 349,
};
#line 678 "Parser.jay"
public Parser (ScriptingContext context, string name)
{
this.name = name;
this.reader = new MyTextReader ();
this.current_context = context;
lexer = new Tokenizer (context, reader, name);
}
public bool Parse (string text)
{
try {
reader.Text = text;
lexer.restart ();
if (yacc_verbose_flag)
yyparse (lexer, new yydebug.yyDebugSimple ());
else
yyparse (lexer);
return true;
} catch (Exception e){
// Please do not remove this, it is used during debugging
// of the grammar
//
current_context.Error (lexer.location + " : Parsing error ");
current_context.Error (e.ToString ());
return false;
}
}
/* end end end */
}
#line default
namespace yydebug {
using System;
public interface yyDebug {
void push (int state, Object value);
void lex (int state, int token, string name, Object value);
void shift (int from, int to, int errorFlag);
void pop (int state);
void discard (int state, int token, string name, Object value);
void reduce (int from, int to, int rule, string text, int len);
void shift (int from, int to);
void accept (Object value);
void error (string message);
void reject ();
}
class yyDebugSimple : yyDebug {
void println (string s){
Console.WriteLine (s);
}
public void push (int state, Object value) {
println ("push\tstate "+state+"\tvalue "+value);
}
public void lex (int state, int token, string name, Object value) {
println("lex\tstate "+state+"\treading "+name+"\tvalue "+value);
}
public void shift (int from, int to, int errorFlag) {
switch (errorFlag) {
default: // normally
println("shift\tfrom state "+from+" to "+to);
break;
case 0: case 1: case 2: // in error recovery
println("shift\tfrom state "+from+" to "+to
+"\t"+errorFlag+" left to recover");
break;
case 3: // normally
println("shift\tfrom state "+from+" to "+to+"\ton error");
break;
}
}
public void pop (int state) {
println("pop\tstate "+state+"\ton error");
}
public void discard (int state, int token, string name, Object value) {
println("discard\tstate "+state+"\ttoken "+name+"\tvalue "+value);
}
public void reduce (int from, int to, int rule, string text, int len) {
println("reduce\tstate "+from+"\tuncover "+to
+"\trule ("+rule+") "+text);
}
public void shift (int from, int to) {
println("goto\tfrom state "+from+" to "+to);
}
public void accept (Object value) {
println("accept\tvalue "+value);
}
public void error (string message) {
println("error\t"+message);
}
public void reject () {
println("reject");
}
}
}
// %token constants
class Token {
public const int QUIT = 257;
public const int EOL = 258;
public const int EOF = 259;
public const int NONE = 260;
public const int ERROR = 261;
public const int IDENTIFIER = 262;
public const int INTEGER = 263;
public const int NUMBER = 264;
public const int STRING = 265;
public const int HASH = 266;
public const int AT = 267;
public const int PERCENT = 268;
public const int DOLLAR = 269;
public const int DOT = 270;
public const int BANG = 271;
public const int COMMA = 272;
public const int ASSIGN = 273;
public const int STAR = 274;
public const int PLUS = 275;
public const int MINUS = 276;
public const int DIV = 277;
public const int OPEN_PARENS = 278;
public const int CLOSE_PARENS = 279;
public const int OPEN_BRACKET = 280;
public const int CLOSE_BRACKET = 281;
public const int OP_LT = 282;
public const int OP_GT = 283;
public const int COLON = 284;
public const int PROCESSES = 285;
public const int REGISTERS = 286;
public const int PARAMETERS = 287;
public const int LOCALS = 288;
public const int TYPE = 289;
public const int METHOD = 290;
public const int PARENT = 291;
public const int LENGTH = 292;
public const int LOWER = 293;
public const int UPPER = 294;
public const int KIND = 295;
public const int ACCESSIBLE = 296;
public const int CONTENTS = 297;
public const int LINE = 298;
public const int NOT = 299;
public const int UNKNOWN = 300;
public const int FUNDAMENTAL = 301;
public const int ARRAY = 302;
public const int STRUCT = 303;
public const int CLASS = 304;
public const int POINTER = 305;
public const int MODULES = 306;
public const int SOURCES = 307;
public const int METHODS = 308;
public const int BREAKPOINTS = 309;
public const int THREADGROUPS = 310;
public const int GLOBAL = 311;
public const int FRAME = 312;
public const int START = 313;
public const int SHOW = 314;
public const int PROCESS = 315;
public const int CONTINUE = 316;
public const int BACKTRACE = 317;
public const int UP = 318;
public const int DOWN = 319;
public const int STEP = 320;
public const int NEXT = 321;
public const int STEPI = 322;
public const int NEXTI = 323;
public const int FINISH = 324;
public const int BREAK = 325;
public const int PRINT = 326;
public const int DISASSEMBLE = 327;
public const int SET = 328;
public const int ASSERT = 329;
public const int BREAKPOINT = 330;
public const int SAVE = 331;
public const int KILL = 332;
public const int THREADGROUP = 333;
public const int SEARCH = 334;
public const int LIST = 335;
public const int SELECT = 336;
public const int BACKGROUND = 337;
public const int STOP = 338;
public const int MODULE = 339;
public const int IGNORE = 340;
public const int UNIGNORE = 341;
public const int ALL = 342;
public const int ENABLE = 343;
public const int DISABLE = 344;
public const int DELETE = 345;
public const int CREATE = 346;
public const int ADD = 347;
public const int REMOVE = 348;
public const int HELP = 349;
public const int yyErrorCode = 256;
}
namespace yyParser {
using System;
/** thrown for irrecoverable syntax errors and stack overflow.
*/
public class yyException : System.Exception {
public yyException (string message) : base (message) {
}
}
/** must be implemented by a scanner object to supply input to the parser.
*/
public interface yyInput {
/** move on to next token.
@return false if positioned beyond tokens.
@throws IOException on input error.
*/
bool advance (); // throws java.io.IOException;
/** classifies current token.
Should not be called if advance() returned false.
@return current %token or single character.
*/
int token ();
/** associated with current token.
Should not be called if advance() returned false.
@return value for token().
*/
Object value ();
}
}
} // close outermost namespace, that MUST HAVE BEEN opened in the prolog
--=-=-=
--
Martin Baulig
martin@gnome.org
martin@ximian.com
--=-=-=--