|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.antlr.runtime.debug.BlankDebugEventListener
org.antlr.runtime.debug.Profiler
public class Profiler
Using the debug event interface, track what is happening in the parser and record statistics about the runtime.
| Nested Class Summary | |
|---|---|
static class |
Profiler.DecisionDescriptor
|
static class |
Profiler.DecisionEvent
|
static class |
Profiler.ProfileStats
|
| Field Summary | |
|---|---|
protected int |
backtrackDepth
|
protected Stack<String> |
currentGrammarFileName
|
protected Stack<Integer> |
currentLine
|
protected Stack<Integer> |
currentPos
|
protected Stack<String> |
currentRuleName
|
static String |
DATA_SEP
|
protected List<Profiler.DecisionEvent> |
decisionEvents
|
protected DoubleKeyMap<String,Integer,Profiler.DecisionDescriptor> |
decisions
|
protected Stack<Profiler.DecisionEvent> |
decisionStack
|
protected Token |
lastRealTokenTouchedInDecision
|
static String |
newline
|
DebugParser |
parser
Ack, should not store parser; can't do remote stuff. |
protected int |
ruleLevel
|
static String |
RUNTIME_STATS_FILENAME
|
protected Set<String> |
uniqueRules
|
static String |
Version
Because I may change the stats, I need to track that for later computations to be consistent. |
| Fields inherited from interface org.antlr.runtime.debug.DebugEventListener |
|---|
FALSE, PROTOCOL_VERSION, TRUE |
| Constructor Summary | |
|---|---|
Profiler()
|
|
Profiler(DebugParser parser)
|
|
| Method Summary | |
|---|---|
void |
beginBacktrack(int level)
Track backtracking decisions. |
void |
consumeHiddenToken(Token token)
An off-channel input token was consumed. |
void |
consumeToken(Token token)
An input token was consumed; matched by any kind of element. |
protected Profiler.DecisionEvent |
currentDecision()
|
void |
endBacktrack(int level,
boolean successful)
Successful or not, track how much lookahead synpreds use |
void |
enterDecision(int decisionNumber,
boolean couldBacktrack)
Every decision, fixed k or arbitrary, has an enter/exit event so that a GUI can easily track what LT/consume events are associated with prediction. |
void |
enterRule(String grammarFileName,
String ruleName)
The parser has just entered a rule. |
void |
examineRuleMemoization(IntStream input,
int ruleIndex,
int stopIndex,
String ruleName)
Track memoization; this is not part of standard debug interface but is triggered by profiling. |
void |
exitDecision(int decisionNumber)
|
void |
exitRule(String grammarFileName,
String ruleName)
This is the last thing executed before leaving a rule. |
List |
getDecisionEvents()
|
DoubleKeyMap |
getDecisionStats()
|
String |
getDecisionStatsDump()
|
int |
getNumberOfHiddenTokens(int i,
int j)
Get num hidden tokens between i..j inclusive |
Profiler.ProfileStats |
getReport()
|
boolean |
inDecision()
The parser is in a decision if the decision depth > 0. |
void |
location(int line,
int pos)
To watch a parser move through the grammar, the parser needs to inform the debugger what line/charPos it is passing in the grammar. |
protected String |
locationDescription()
|
protected String |
locationDescription(String file,
String rule,
int line,
int pos)
|
void |
LT(int i,
Token t)
Track refs to lookahead if in a fixed/nonfixed decision. |
void |
mark(int i)
The parser is going to look arbitrarily ahead; mark this location, the token stream's marker is sent in case you need it. |
void |
memoize(IntStream input,
int ruleIndex,
int ruleStartIndex,
String ruleName)
Warning: doesn't track success/failure, just unique recording event |
void |
recognitionException(RecognitionException e)
A recognition exception occurred such as NoViableAltException. |
void |
rewind()
Rewind to the input position of the last marker. |
void |
rewind(int i)
After an arbitrairly long lookahead as with a cyclic DFA (or with any backtrack), this informs the debugger that stream should be rewound to the position associated with marker. |
void |
semanticPredicate(boolean result,
String predicate)
A semantic predicate was evaluate with this result and action text |
void |
setParser(DebugParser parser)
|
void |
terminate()
Parsing is over; successfully or not. |
protected int[] |
toArray(List a)
|
String |
toNotifyString()
|
String |
toString()
|
static String |
toString(Profiler.ProfileStats stats)
|
protected int[] |
trim(int[] X,
int n)
|
| Methods inherited from class org.antlr.runtime.debug.BlankDebugEventListener |
|---|
addChild, becomeRoot, beginResync, commence, consumeNode, createNode, createNode, endResync, enterAlt, enterSubRule, errorNode, exitSubRule, LT, nilNode, setTokenBoundaries |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
|---|
public static final String DATA_SEP
public static final String newline
public static final String Version
public static final String RUNTIME_STATS_FILENAME
public DebugParser parser
protected int ruleLevel
protected Token lastRealTokenTouchedInDecision
protected Set<String> uniqueRules
protected Stack<String> currentGrammarFileName
protected Stack<String> currentRuleName
protected Stack<Integer> currentLine
protected Stack<Integer> currentPos
protected DoubleKeyMap<String,Integer,Profiler.DecisionDescriptor> decisions
protected List<Profiler.DecisionEvent> decisionEvents
protected Stack<Profiler.DecisionEvent> decisionStack
protected int backtrackDepth
| Constructor Detail |
|---|
public Profiler()
public Profiler(DebugParser parser)
| Method Detail |
|---|
public void enterRule(String grammarFileName,
String ruleName)
DebugEventListener
enterRule in interface DebugEventListenerenterRule in class BlankDebugEventListener
public void exitRule(String grammarFileName,
String ruleName)
DebugEventListener
exitRule in interface DebugEventListenerexitRule in class BlankDebugEventListener
public void examineRuleMemoization(IntStream input,
int ruleIndex,
int stopIndex,
String ruleName)
public void memoize(IntStream input,
int ruleIndex,
int ruleStartIndex,
String ruleName)
public void location(int line,
int pos)
DebugEventListener
location in interface DebugEventListenerlocation in class BlankDebugEventListener
public void enterDecision(int decisionNumber,
boolean couldBacktrack)
DebugEventListener
enterDecision in interface DebugEventListenerenterDecision in class BlankDebugEventListenerpublic void exitDecision(int decisionNumber)
exitDecision in interface DebugEventListenerexitDecision in class BlankDebugEventListenerpublic void consumeToken(Token token)
DebugEventListener
consumeToken in interface DebugEventListenerconsumeToken in class BlankDebugEventListenerpublic boolean inDecision()
public void consumeHiddenToken(Token token)
DebugEventListener
consumeHiddenToken in interface DebugEventListenerconsumeHiddenToken in class BlankDebugEventListener
public void LT(int i,
Token t)
LT in interface DebugEventListenerLT in class BlankDebugEventListenerpublic void beginBacktrack(int level)
beginBacktrack in interface DebugEventListenerbeginBacktrack in class BlankDebugEventListener
public void endBacktrack(int level,
boolean successful)
endBacktrack in interface DebugEventListenerendBacktrack in class BlankDebugEventListenerpublic void mark(int i)
DebugEventListener
mark in interface DebugEventListenermark in class BlankDebugEventListenerpublic void rewind(int i)
DebugEventListener
rewind in interface DebugEventListenerrewind in class BlankDebugEventListenerpublic void rewind()
DebugEventListener
rewind in interface DebugEventListenerrewind in class BlankDebugEventListenerprotected Profiler.DecisionEvent currentDecision()
public void recognitionException(RecognitionException e)
DebugEventListener
recognitionException in interface DebugEventListenerrecognitionException in class BlankDebugEventListener
public void semanticPredicate(boolean result,
String predicate)
DebugEventListener
semanticPredicate in interface DebugEventListenersemanticPredicate in class BlankDebugEventListenerpublic void terminate()
DebugEventListener
terminate in interface DebugEventListenerterminate in class BlankDebugEventListenerpublic void setParser(DebugParser parser)
public String toNotifyString()
public String toString()
toString in class Objectpublic Profiler.ProfileStats getReport()
public DoubleKeyMap getDecisionStats()
public List getDecisionEvents()
public static String toString(Profiler.ProfileStats stats)
public String getDecisionStatsDump()
protected int[] trim(int[] X,
int n)
protected int[] toArray(List a)
public int getNumberOfHiddenTokens(int i,
int j)
protected String locationDescription()
protected String locationDescription(String file,
String rule,
int line,
int pos)
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||