coins.backend.tools
Class Tmd2Java

java.lang.Object
  extended bycoins.backend.tools.Tmd2Java

class Tmd2Java
extends java.lang.Object


Nested Class Summary
(package private) static class Tmd2Java.JavaMacro
           
(package private) static class Tmd2Java.Nonterm
          Nonterminal Symbol
(package private) static class Tmd2Java.OpPattern
          Production's right hand side pattern.
(package private) static class Tmd2Java.Pattern
          Grammar's right side hand pattern.
(package private) static class Tmd2Java.Prod
          Production lhs <- rhs
(package private) static class Tmd2Java.RuleSet
          Set of rules (defrule or defrewrite/defpattern)
 
Field Summary
(package private) static int ANYTYPE
           
(package private) static java.lang.String CODEGENERATOR
           
(package private) static java.lang.String DEFBUILD
           
(package private) static java.lang.String DEFEMIT
           
(package private) static boolean defFileOnly
           
(package private) static java.util.Map definitions
           
(package private) static int emCounter
           
(package private) static java.lang.String IMPORT
           
(package private) static Tmd2Java.RuleSet instSel
          RuleSet for instruction selection.
(package private) static BiList javaMacros
           
(package private) static java.util.Map macros
           
(package private) static java.io.PrintWriter out
           
(package private) static boolean printExpanded
           
(package private) static java.io.BufferedReader proto
           
(package private) static java.lang.String PROTOFILE
           
(package private) static RegisterDescription2Java regDesc
           
(package private) static Tmd2Java.RuleSet rewriting
          RuleSet for rewriting.
(package private) static java.lang.String STATE
           
(package private) static java.lang.String targetName
           
(package private) static BiList typeRegsetList
           
(package private) static java.lang.String usage
           
 
Method Summary
(package private) static ImList desugar(ImList list)
          Expand syntax sugar (foreach).
(package private) static void doDef(ImList form)
           
(package private) static void doDefPattern(ImList form)
          Parse defpattern.
(package private) static void doDefRegset(ImList form)
           
(package private) static void doDefRegsetPair(ImList pair)
           
(package private) static void doDefRegsetVar(ImList form)
           
(package private) static void doDefRegsetVarPair(ImList pair)
           
(package private) static void doDefRewrite(ImList form)
          Parse defrewrite.
(package private) static void doDefRule(ImList form)
          Parse defrule.
(package private) static void doDefStart(ImList form)
           
(package private) static boolean evalCond(java.lang.Object x)
          Evaluate condition part of @if
(package private) static ImList expandDefined(ImList form)
           
(package private) static java.lang.String expandDefMacro(java.lang.String kind, java.io.PushbackReader rdr)
          expand %defemit(name args...) or %defbuild(name args...)
(package private) static ImList expandEq(ImList form)
           
(package private) static ImList expandForeach(ImList sexp)
          Expand foreach macro.
(package private) static ImList expandIf(ImList form)
          Expand if
(package private) static ImList expandInclude(ImList form, ImList tail)
          Expand include file
(package private) static ImList expandMacro(ImList form)
          Expand macro
(package private) static ImList expandNe(ImList form)
           
(package private) static ImList expandNot(ImList form)
           
(package private) static boolean isMacro(java.lang.Object name)
           
(package private) static boolean isNumber(java.lang.String s)
          Return true if s is a number string.
(package private) static boolean isVarOp(int op)
           
(package private) static java.lang.String listString(java.lang.Object obj)
           
(package private) static void listString1(java.lang.StringBuffer buf, java.lang.Object obj)
           
static void main(java.lang.String[] argv)
           
(package private) static int parseDollar(java.lang.String x)
          parse $1, $2, ...
(package private) static void parseTmd(java.io.PushbackReader rdr)
          Convert TMD to Java.
(package private) static void printBeautifully(ImList list)
          Print expanded input.
(package private) static java.lang.String quote(java.lang.String x)
           
(package private) static java.lang.String readLine(java.io.PushbackReader rdr)
          Read line from pushback reader.
(package private) static ImList readSexpList(java.io.PushbackReader rdr, ImList tail)
          Read entire file as a list.
(package private) static java.lang.String readToken(java.io.PushbackReader rdr)
          Read token from pushback reader.
(package private) static java.lang.String readWhites(java.io.PushbackReader rdr)
          Read whitespaces from pushback reader.
(package private) static void registerMacroDef(ImList form)
          Register macro definition
(package private) static java.lang.String replaceDollars(java.lang.String str)
           
(package private) static ImList replaceList(ImList body, java.lang.Object fv, java.lang.Object val, ImList tail)
           
(package private) static ImList replaceListAux(ImList body, ImList fpl, ImList apl, ImList tail)
           
(package private) static ImList replaceLoop(ImList body, java.lang.Object cv, ImList vals)
           
(package private) static java.lang.Object replaceSubstr(java.lang.Object x, java.lang.String fv, java.lang.Object val)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

PROTOFILE

static final java.lang.String PROTOFILE
See Also:
Constant Field Values

ANYTYPE

static final int ANYTYPE
See Also:
Constant Field Values

targetName

static java.lang.String targetName

out

static java.io.PrintWriter out

proto

static java.io.BufferedReader proto

defFileOnly

static boolean defFileOnly

printExpanded

static boolean printExpanded

regDesc

static RegisterDescription2Java regDesc

definitions

static java.util.Map definitions

macros

static java.util.Map macros

rewriting

static Tmd2Java.RuleSet rewriting
RuleSet for rewriting.


instSel

static Tmd2Java.RuleSet instSel
RuleSet for instruction selection.


javaMacros

static BiList javaMacros

emCounter

static int emCounter

typeRegsetList

static BiList typeRegsetList

STATE

static final java.lang.String STATE
See Also:
Constant Field Values

CODEGENERATOR

static final java.lang.String CODEGENERATOR
See Also:
Constant Field Values

DEFEMIT

static final java.lang.String DEFEMIT
See Also:
Constant Field Values

DEFBUILD

static final java.lang.String DEFBUILD
See Also:
Constant Field Values

IMPORT

static final java.lang.String IMPORT
See Also:
Constant Field Values

usage

static java.lang.String usage
Method Detail

printBeautifully

static void printBeautifully(ImList list)
Print expanded input.


isNumber

static boolean isNumber(java.lang.String s)
Return true if s is a number string.


doDefRule

static void doDefRule(ImList form)
               throws SyntaxError
Parse defrule.

Throws:
SyntaxError

doDefRewrite

static void doDefRewrite(ImList form)
                  throws SyntaxError
Parse defrewrite.

Throws:
SyntaxError

doDefPattern

static void doDefPattern(ImList form)
                  throws SyntaxError
Parse defpattern.

Throws:
SyntaxError

expandDefMacro

static java.lang.String expandDefMacro(java.lang.String kind,
                                       java.io.PushbackReader rdr)
                                throws SyntaxError,
                                       java.io.IOException
expand %defemit(name args...) or %defbuild(name args...)

Throws:
SyntaxError
java.io.IOException

readSexpList

static ImList readSexpList(java.io.PushbackReader rdr,
                           ImList tail)
                    throws java.io.IOException,
                           SyntaxError
Read entire file as a list.

Throws:
java.io.IOException
SyntaxError

replaceSubstr

static java.lang.Object replaceSubstr(java.lang.Object x,
                                      java.lang.String fv,
                                      java.lang.Object val)
                               throws SyntaxError
Throws:
SyntaxError

replaceList

static ImList replaceList(ImList body,
                          java.lang.Object fv,
                          java.lang.Object val,
                          ImList tail)
                   throws SyntaxError
Throws:
SyntaxError

replaceListAux

static ImList replaceListAux(ImList body,
                             ImList fpl,
                             ImList apl,
                             ImList tail)
                      throws SyntaxError
Throws:
SyntaxError

replaceLoop

static ImList replaceLoop(ImList body,
                          java.lang.Object cv,
                          ImList vals)
                   throws SyntaxError
Throws:
SyntaxError

expandForeach

static ImList expandForeach(ImList sexp)
                     throws SyntaxError
Expand foreach macro.

Throws:
SyntaxError

expandMacro

static ImList expandMacro(ImList form)
                   throws SyntaxError
Expand macro

Throws:
SyntaxError

expandIf

static ImList expandIf(ImList form)
                throws SyntaxError
Expand if

Throws:
SyntaxError

evalCond

static boolean evalCond(java.lang.Object x)
                 throws SyntaxError
Evaluate condition part of @if

Throws:
SyntaxError

expandEq

static ImList expandEq(ImList form)
                throws SyntaxError
Throws:
SyntaxError

expandNe

static ImList expandNe(ImList form)
                throws SyntaxError
Throws:
SyntaxError

expandDefined

static ImList expandDefined(ImList form)
                     throws SyntaxError
Throws:
SyntaxError

expandNot

static ImList expandNot(ImList form)
                 throws SyntaxError
Throws:
SyntaxError

isMacro

static boolean isMacro(java.lang.Object name)

registerMacroDef

static void registerMacroDef(ImList form)
                      throws SyntaxError
Register macro definition

Throws:
SyntaxError

expandInclude

static ImList expandInclude(ImList form,
                            ImList tail)
                     throws SyntaxError
Expand include file

Throws:
SyntaxError

desugar

static ImList desugar(ImList list)
               throws SyntaxError
Expand syntax sugar (foreach).

Throws:
SyntaxError

doDef

static void doDef(ImList form)
           throws SyntaxError
Throws:
SyntaxError

doDefStart

static void doDefStart(ImList form)
                throws SyntaxError
Throws:
SyntaxError

doDefRegset

static void doDefRegset(ImList form)
                 throws SyntaxError
Throws:
SyntaxError

doDefRegsetPair

static void doDefRegsetPair(ImList pair)
                     throws SyntaxError
Throws:
SyntaxError

doDefRegsetVar

static void doDefRegsetVar(ImList form)
                    throws SyntaxError
Throws:
SyntaxError

doDefRegsetVarPair

static void doDefRegsetVarPair(ImList pair)
                        throws SyntaxError
Throws:
SyntaxError

isVarOp

static boolean isVarOp(int op)

readLine

static java.lang.String readLine(java.io.PushbackReader rdr)
                          throws java.io.IOException
Read line from pushback reader.

Throws:
java.io.IOException

readWhites

static java.lang.String readWhites(java.io.PushbackReader rdr)
                            throws java.io.IOException
Read whitespaces from pushback reader.

Throws:
java.io.IOException

readToken

static java.lang.String readToken(java.io.PushbackReader rdr)
                           throws java.io.IOException
Read token from pushback reader.

Throws:
java.io.IOException

parseTmd

static void parseTmd(java.io.PushbackReader rdr)
              throws SyntaxError,
                     java.io.IOException
Convert TMD to Java.

Throws:
SyntaxError
java.io.IOException

quote

static java.lang.String quote(java.lang.String x)

parseDollar

static int parseDollar(java.lang.String x)
                throws SyntaxError
parse $1, $2, ...

Throws:
SyntaxError

listString1

static void listString1(java.lang.StringBuffer buf,
                        java.lang.Object obj)

listString

static java.lang.String listString(java.lang.Object obj)

replaceDollars

static java.lang.String replaceDollars(java.lang.String str)

main

public static void main(java.lang.String[] argv)