public class CSGrammar extends java.lang.Object implements Grammar
Modifier and Type | Field and Description |
---|---|
private java.lang.String |
axiom |
(package private) static boolean |
init |
private java.text.StringCharacterIterator |
lIterator |
private processing.core.PApplet |
parent |
private java.lang.String |
production |
private CSList |
rules |
Constructor and Description |
---|
CSGrammar(processing.core.PApplet parent,
java.lang.String axiom)
Preferred constructor for processing
|
CSGrammar(java.lang.String axiom)
Default constructor for testing
|
Modifier and Type | Method and Description |
---|---|
void |
addRule(char premise,
java.lang.String rule)
Add non context sensitive rule
|
void |
addRule(char premise,
java.lang.String rule,
float weight)
Add stochastic rule (not supported here)
|
void |
addRule(java.lang.String premise,
java.lang.String rule)
Add context sensitive rule
|
void |
dispose()
Dispose is called on exit clear collections
|
void |
generateGrammar()
Useful for testing no generations
|
void |
generateGrammar(int repeats)
Creates production from axiom, rules and no of
generations
|
java.text.CharacterIterator |
getIterator()
Makes the CharacterIterator available internally/externally
Create a new instance if none exists otherwise re-use existing instance
|
private java.text.CharacterIterator |
getIterator(java.lang.String production) |
java.lang.String |
getRule(char premise)
Use "StringBuilder getRule(char premise, String production, int count)"
|
java.lang.StringBuilder |
getRule(char premise,
java.lang.String production,
int count)
This is the method that returns the appropriate rule according to context
|
boolean |
hasKey(char premise)
Using hasKey (to access CSList hasRule)
|
private java.lang.String |
parseRules(java.lang.String production)
Private parseRules helper function
|
private void |
setActive() |
void |
setIgnoreList(char[] str)
Set the character ignore list
|
void |
setIgnoreList(java.lang.String str)
Set the character ignore list
|
java.lang.String |
target()
return the target processing version of the library.
|
java.lang.String |
toString()
Return the Grammar as a formatted string Format = Axiom: / Ignored: /
Rules:
|
java.lang.String |
version()
Return the version of the library.
|
private processing.core.PApplet parent
private java.lang.String axiom
private java.lang.String production
private final CSList rules
private java.text.StringCharacterIterator lIterator
static boolean init
public CSGrammar(processing.core.PApplet parent, java.lang.String axiom)
parent
- axiom
- public CSGrammar(java.lang.String axiom)
axiom
- public void addRule(char premise, java.lang.String rule)
public void addRule(java.lang.String premise, java.lang.String rule)
premise
- Stringrule
- Stringpublic void addRule(char premise, java.lang.String rule, float weight)
public java.lang.StringBuilder getRule(char premise, java.lang.String production, int count)
premise
- charproduction
- Stringcount
- intpublic boolean hasKey(char premise)
public void setIgnoreList(java.lang.String str)
str
- ignore list as a Stringpublic void setIgnoreList(char[] str)
str
- ignore list as a char[]private java.lang.String parseRules(java.lang.String production)
public void generateGrammar(int repeats)
Grammar
generateGrammar
in interface Grammar
public void generateGrammar()
Grammar
generateGrammar
in interface Grammar
public java.text.CharacterIterator getIterator()
Grammar
getIterator
in interface Grammar
private java.text.CharacterIterator getIterator(java.lang.String production)
public void dispose()
public java.lang.String toString()
toString
in class java.lang.Object
public final java.lang.String version()
public java.lang.String getRule(char premise)
public final java.lang.String target()
private void setActive()