public class Grammar
extends java.lang.Object
| Modifier and Type | Field and Description |
|---|---|
java.lang.String |
className |
java.lang.String |
packageName |
java.util.Set<Symbol> |
syms |
static boolean |
VERBOSE |
| Constructor and Description |
|---|
Grammar(java.util.List<Rule> originalRules,
java.util.List<Rule> rules,
Symbol goalSym,
Rule goalRule,
java.util.Set<Symbol> syms,
java.util.BitSet nullable,
java.util.Map<Symbol,java.util.Set<Symbol>> first,
java.util.Map<Symbol,java.util.Set<Symbol>> follow,
java.util.Map<Symbol,java.util.Set<Item>> extension,
ExtensionBuilderLr1 extensionBuilder,
java.lang.String embed,
java.lang.String header,
java.lang.String className,
java.lang.String packageName,
java.util.Set<java.lang.String> left,
java.util.Set<java.lang.String> right,
java.util.Set<java.lang.String> nonassoc,
java.util.Map<java.lang.String,java.lang.Integer> precedence) |
| Modifier and Type | Method and Description |
|---|---|
static Grammar |
build(org.extendj.Trace trace,
java.util.List<Rule> rules,
java.util.Set<Symbol> extraTerminals,
Symbol goalSym,
java.lang.String embed,
java.lang.String header,
java.lang.String className,
java.lang.String packageName,
java.util.Set<java.lang.String> left,
java.util.Set<java.lang.String> right,
java.util.Set<java.lang.String> nonassoc,
java.util.Map<java.lang.String,java.lang.Integer> precedence) |
MyParser |
buildParser(org.extendj.Trace trace) |
static java.util.Collection<Rule> |
canonicalRules(java.util.Collection<Rule> rules)
Transform grammar rules to canonical form.
|
void |
checkProblems() |
java.util.Collection<Item> |
extension(Symbol sym) |
java.util.Collection<? extends Item> |
extension(Symbol a,
Symbol b) |
java.util.Collection<? extends Symbol> |
first(Symbol sym) |
java.util.Collection<Symbol> |
follow(Symbol lhs) |
boolean |
left(java.lang.String token) |
boolean |
nonassoc(java.lang.String token) |
boolean |
nullable(Symbol sym) |
int |
precedence(java.lang.String token) |
void |
printBeaverParser(java.io.PrintStream out,
MyParser parser) |
void |
printBeaverSpec(java.io.PrintStream out,
MyParser parser) |
void |
printBeaverTestSpec(java.io.PrintStream out,
MyParser parser) |
void |
printParser(java.io.PrintStream out,
MyParser parser,
boolean debug)
Generate a non-Beaver parser.
|
void |
printTables(MyParser parser) |
boolean |
right(java.lang.String token) |
public static final boolean VERBOSE
public final java.util.Set<Symbol> syms
public final java.lang.String className
public final java.lang.String packageName
public Grammar(java.util.List<Rule> originalRules, java.util.List<Rule> rules, Symbol goalSym, Rule goalRule, java.util.Set<Symbol> syms, java.util.BitSet nullable, java.util.Map<Symbol,java.util.Set<Symbol>> first, java.util.Map<Symbol,java.util.Set<Symbol>> follow, java.util.Map<Symbol,java.util.Set<Item>> extension, ExtensionBuilderLr1 extensionBuilder, java.lang.String embed, java.lang.String header, java.lang.String className, java.lang.String packageName, java.util.Set<java.lang.String> left, java.util.Set<java.lang.String> right, java.util.Set<java.lang.String> nonassoc, java.util.Map<java.lang.String,java.lang.Integer> precedence)
public static Grammar build(org.extendj.Trace trace, java.util.List<Rule> rules, java.util.Set<Symbol> extraTerminals, Symbol goalSym, java.lang.String embed, java.lang.String header, java.lang.String className, java.lang.String packageName, java.util.Set<java.lang.String> left, java.util.Set<java.lang.String> right, java.util.Set<java.lang.String> nonassoc, java.util.Map<java.lang.String,java.lang.Integer> precedence)
public static java.util.Collection<Rule> canonicalRules(java.util.Collection<Rule> rules)
public MyParser buildParser(org.extendj.Trace trace)
public int precedence(java.lang.String token)
public boolean left(java.lang.String token)
true if the token is left-associativepublic boolean right(java.lang.String token)
true if the token is right-associativepublic boolean nonassoc(java.lang.String token)
true if the token is non-associativepublic boolean nullable(Symbol sym)
public void printTables(MyParser parser)
public void printBeaverSpec(java.io.PrintStream out,
MyParser parser)
throws java.io.IOException
java.io.IOExceptionpublic void printBeaverTestSpec(java.io.PrintStream out,
MyParser parser)
throws java.io.IOException
java.io.IOExceptionpublic void printParser(java.io.PrintStream out,
MyParser parser,
boolean debug)
public void printBeaverParser(java.io.PrintStream out,
MyParser parser)
throws java.io.IOException
java.io.IOExceptionpublic void checkProblems()