You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
|
namespace Antlr.Runtime.Debug
|
|
|
|
|
{
|
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using System.Text;
|
|
|
|
|
|
|
|
|
|
using IOException = System.IO.IOException;
|
|
|
|
|
using Antlr.Runtime.Tree;
|
|
|
|
|
|
|
|
|
|
public class ParserDebugger
|
|
|
|
|
{
|
|
|
|
|
IDebugEventListener dbg;
|
|
|
|
|
|
|
|
|
|
public ParserDebugger( Parser parser )
|
|
|
|
|
: this( parser, DebugEventSocketProxy.DEFAULT_DEBUGGER_PORT )
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
public ParserDebugger( Parser parser, int port )
|
|
|
|
|
{
|
|
|
|
|
DebugEventSocketProxy proxy = new DebugEventSocketProxy( parser, port, null );
|
|
|
|
|
DebugListener = proxy;
|
|
|
|
|
parser.TokenStream = new DebugTokenStream( parser.TokenStream, proxy );
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
proxy.handshake();
|
|
|
|
|
}
|
|
|
|
|
catch ( IOException e )
|
|
|
|
|
{
|
|
|
|
|
reportError( ioe );
|
|
|
|
|
}
|
|
|
|
|
ITreeAdaptor adap = new CommonTreeAdaptor();
|
|
|
|
|
TreeAdaptor = adap;
|
|
|
|
|
proxy.TreeAdaptor = adap;
|
|
|
|
|
}
|
|
|
|
|
public ParserDebugger( Parser parser, IDebugEventListener dbg )
|
|
|
|
|
{
|
|
|
|
|
ITreeAdaptor adap = new CommonTreeAdaptor();
|
|
|
|
|
TreeAdaptor = adap;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected virtual bool EvalPredicate( bool result, string predicate )
|
|
|
|
|
{
|
|
|
|
|
dbg.SemanticPredicate( result, predicate );
|
|
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|