|
||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object dk.brics.grammar.ambiguity.AmbiguityAnalyzer
public class AmbiguityAnalyzer
Grammar ambiguity checker.
Based on "Analyzing Ambiguity of Context-Free Grammars", by Claus Brabrand, Robert Giegerich, and Anders Møller.
Constructor Summary | |
---|---|
AmbiguityAnalyzer(List<ApproximationStrategy> approx,
PrintWriter out)
Constructs a new grammar analyzer with the given list of approximation strategies. |
|
AmbiguityAnalyzer(PrintWriter out,
boolean verbose)
Constructs a new grammar analyzer with default approximation strategies. |
Method Summary | |
---|---|
boolean |
analyze(Grammar g)
Analyzes the given grammar. |
long |
getMaxMemory()
Returns maximal memory usage during last analysis. |
int |
getNumberOfCertainHorizontalAmbiguities()
Returns the number of certain horizontal ambiguities from last analysis. |
int |
getNumberOfCertainVerticalAmbiguities()
Returns the number of certain vertical ambiguities from last analysis. |
int |
getNumberOfOutOfMemoryErrors()
Returns the number ambiguity checks that resulted in OutOfMemoryError . |
int |
getNumberOfPotentialHorizontalAmbiguities()
Returns the number of potential horizontal ambiguities from last analysis. |
int |
getNumberOfPotentialVerticalAmbiguities()
Returns the number of potential vertical ambiguities from last analysis. |
void |
printStatistics(PrintWriter out)
Prints statistics for the approximation strategies from the last analysis. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public AmbiguityAnalyzer(List<ApproximationStrategy> approx, PrintWriter out)
approx
- approximation strategiesout
- print writer for messagespublic AmbiguityAnalyzer(PrintWriter out, boolean verbose) throws InstantiationException, IllegalAccessException, ClassNotFoundException
terminal
,
regular2
,
regular
.
This default behavior can be changed by setting the system property
dk.brics.grammar.ambiguity.strategies
to the list of classes implementing the strategies.
out
- print writer for messagesverbose
- if enabled, verbose output is generated
ClassNotFoundException
- if an approximation strategy class was not found
IllegalAccessException
- if an approximation strategy class or its nullary constructor is not accessible
InstantiationException
- if an approximation strategy class cannot be instantiatedMethod Detail |
---|
public boolean analyze(Grammar g)
g
- grammar
public long getMaxMemory()
public int getNumberOfCertainHorizontalAmbiguities()
public int getNumberOfCertainVerticalAmbiguities()
public int getNumberOfOutOfMemoryErrors()
OutOfMemoryError
.
public int getNumberOfPotentialHorizontalAmbiguities()
public int getNumberOfPotentialVerticalAmbiguities()
public void printStatistics(PrintWriter out)
out
- print writer for output
|
||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |