coins.backend.tools
Class Tmd2Java.RuleSet

java.lang.Object
  extended bycoins.backend.tools.Tmd2Java.RuleSet
Enclosing class:
Tmd2Java

static class Tmd2Java.RuleSet
extends java.lang.Object

Set of rules (defrule or defrewrite/defpattern)


Field Summary
(package private) static int INIT_CHUNK
           
(package private)  BiList nonterms
           
(package private)  BiList patterns
           
(package private)  BiList productions
           
(package private) static int TOO_MANY_RULES_THRESH
           
 
Constructor Summary
(package private) Tmd2Java.RuleSet(java.lang.String mode)
           
 
Method Summary
(package private)  Tmd2Java.Prod addProd(java.lang.String kind, java.lang.String lhs, java.lang.Object rhs, ImList tail)
          Add new production rule.
(package private)  Tmd2Java.Prod addProd(Tmd2Java.OpPattern rhs)
          Add new production rule.
(package private)  void checkGrammar()
          Check grammar
(package private)  void genChainRuleAction(java.io.PrintWriter out, java.lang.String indent)
           
(package private)  boolean genForPattern(Tmd2Java.Prod rule, java.lang.String indent)
           
(package private)  void genParameters(java.io.PrintWriter out, java.lang.String indent)
          Generate parameters.
(package private)  void genRuleAction(java.io.PrintWriter out, java.lang.String indent, int pass)
           
(package private)  void genRuleTable(java.io.PrintWriter out, java.lang.String indent, int pass)
           
(package private)  Tmd2Java.OpPattern internOpPattern(Tmd2Java.OpPattern pat)
          Intern OpPattern instance in this ruleset.
(package private)  int nnonterms()
          Return number of nonterminals plus 1.
(package private)  Tmd2Java.Nonterm nonterm(java.lang.String name)
          Intern Nonterm instance in this ruleset.
(package private)  Tmd2Java.Pattern parsePattern(java.lang.Object obj)
          Parse Right Hand Side of the production.
(package private)  Tmd2Java.OpPattern pattern(int op, int type, java.lang.Object value)
          Intern OpPattern instance in this ruleset.
(package private)  Tmd2Java.OpPattern pattern(int op, int type, Tmd2Java.Nonterm[] kids)
          Intern OpPattern instance in this ruleset.
(package private)  void prepare()
          Prepare for generation.
(package private)  void printProductions(java.io.PrintWriter out)
          Print productions
(package private)  void setStartSym(java.lang.String sym)
          Set start symbol.
(package private)  Tmd2Java.Nonterm startSym()
          Return start symbol.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

nonterms

BiList nonterms

patterns

BiList patterns

productions

BiList productions

INIT_CHUNK

static final int INIT_CHUNK
See Also:
Constant Field Values

TOO_MANY_RULES_THRESH

static final int TOO_MANY_RULES_THRESH
See Also:
Constant Field Values
Constructor Detail

Tmd2Java.RuleSet

Tmd2Java.RuleSet(java.lang.String mode)
Method Detail

nnonterms

int nnonterms()
Return number of nonterminals plus 1.


startSym

Tmd2Java.Nonterm startSym()
Return start symbol.


setStartSym

void setStartSym(java.lang.String sym)
Set start symbol.


nonterm

Tmd2Java.Nonterm nonterm(java.lang.String name)
Intern Nonterm instance in this ruleset.


pattern

Tmd2Java.OpPattern pattern(int op,
                           int type,
                           Tmd2Java.Nonterm[] kids)
Intern OpPattern instance in this ruleset.


pattern

Tmd2Java.OpPattern pattern(int op,
                           int type,
                           java.lang.Object value)
Intern OpPattern instance in this ruleset.


internOpPattern

Tmd2Java.OpPattern internOpPattern(Tmd2Java.OpPattern pat)
Intern OpPattern instance in this ruleset.


addProd

Tmd2Java.Prod addProd(Tmd2Java.OpPattern rhs)
Add new production rule.

Parameters:
rhs - rule's right hand side pattern.
Returns:
instance of Prod just created.

addProd

Tmd2Java.Prod addProd(java.lang.String kind,
                      java.lang.String lhs,
                      java.lang.Object rhs,
                      ImList tail)
                throws SyntaxError
Add new production rule.

Parameters:
kind - one of "rule", "rewrite" or "pattern"
lhs - rule's left hand side.
rhs - rule's right hand side.
tail - rule's attributes.
Returns:
instance of Prod just created.
Throws:
SyntaxError

parsePattern

Tmd2Java.Pattern parsePattern(java.lang.Object obj)
                        throws SyntaxError
Parse Right Hand Side of the production.

Throws:
SyntaxError

checkGrammar

void checkGrammar()
Check grammar


prepare

void prepare()
Prepare for generation.


printProductions

void printProductions(java.io.PrintWriter out)
Print productions


genParameters

void genParameters(java.io.PrintWriter out,
                   java.lang.String indent)
Generate parameters.


genRuleTable

void genRuleTable(java.io.PrintWriter out,
                  java.lang.String indent,
                  int pass)

genChainRuleAction

void genChainRuleAction(java.io.PrintWriter out,
                        java.lang.String indent)
                  throws SyntaxError
Throws:
SyntaxError

genRuleAction

void genRuleAction(java.io.PrintWriter out,
                   java.lang.String indent,
                   int pass)
             throws SyntaxError
Throws:
SyntaxError

genForPattern

boolean genForPattern(Tmd2Java.Prod rule,
                      java.lang.String indent)
                throws SyntaxError
Throws:
SyntaxError