treecalc.vm.asm
Class TciAssembler

java.lang.Object
  extended by treecalc.vm.asm.TciAssembler

public class TciAssembler
extends java.lang.Object

Author:
Stefan

Nested Class Summary
static class TciAssembler.Asm
           
static class TciAssembler.Calc
           
static class TciAssembler.Func
           
static class TciAssembler.Input
           
static class TciAssembler.Instruction
           
static class TciAssembler.Node
           
static class TciAssembler.NodeCalc
           
static class TciAssembler.Table
           
static class TciAssembler.TableColumn
           
 
Field Summary
static TciAssembler.Instruction[] instructions
           
static int OPTYPE_BYTE
           
static int OPTYPE_CONST
           
static int OPTYPE_INT
           
static int OPTYPE_LABEL
           
static int OPTYPE_NONE
           
static int OPTYPE_SHORT
           
 
Constructor Summary
TciAssembler()
           
 
Method Summary
 void addCalc(org.antlr.runtime.Token tokenCalc, org.antlr.runtime.Token tokenName, org.antlr.runtime.Token tokenNargs)
           
 void addEdge(org.antlr.runtime.Token tokenInd, org.antlr.runtime.Token tokenFrom, org.antlr.runtime.Token tokenTo, org.antlr.runtime.Token tokenWhat)
           
 void addFunc(org.antlr.runtime.Token tokenFunc, org.antlr.runtime.Token tokenName, org.antlr.runtime.Token tokenNargs, org.antlr.runtime.Token tokenFormula)
           
 void addInput(org.antlr.runtime.Token tokenInput, org.antlr.runtime.Token tokenName, org.antlr.runtime.Token tokenAutocounters, org.antlr.runtime.Token tokenChoiceable)
           
 void addInputAutocounter(org.antlr.runtime.Token tokenInput, org.antlr.runtime.Token tokenInd, org.antlr.runtime.Token tokenCounterid)
           
 void addInputcalc(org.antlr.runtime.Token tokenInput, org.antlr.runtime.Token tokenInputcalc, org.antlr.runtime.Token tokenFormula)
           
 void addInputcalcid(org.antlr.runtime.Token tokenInputcalc, org.antlr.runtime.Token tokenName)
           
 void addNode(org.antlr.runtime.Token tokenNode, org.antlr.runtime.Token tokenId, org.antlr.runtime.Token tokenName)
           
 void addNodeCalc(org.antlr.runtime.Token tokenNode, org.antlr.runtime.Token tokenCalc, org.antlr.runtime.Token tokenFormula)
           
 void addNodeCalcdef(org.antlr.runtime.Token tokenNode, org.antlr.runtime.Token tokenCalc)
           
 void addNodeCalcdef(org.antlr.runtime.Token tokenNode, org.antlr.runtime.Token tokenCalcfrom, org.antlr.runtime.Token tokenCalcto)
           
 void addNodeCalctotal(org.antlr.runtime.Token tokenNode, org.antlr.runtime.Token tokenCalc)
           
 void addNodeCalctotal(org.antlr.runtime.Token tokenNode, org.antlr.runtime.Token tokenCalcfrom, org.antlr.runtime.Token tokenCalcto)
           
 void addNodeFormula(org.antlr.runtime.Token tokenNode, org.antlr.runtime.Token tokenInclusion, org.antlr.runtime.Token tokenTimes, org.antlr.runtime.Token tokenTimesid)
           
 void addTable(org.antlr.runtime.Token tokenTable, org.antlr.runtime.Token tokenName, org.antlr.runtime.Token tokenRows, org.antlr.runtime.Token tokenCols, org.antlr.runtime.Token tokenShuffled, org.antlr.runtime.Token tokenDirectaccess, org.antlr.runtime.Token tokenDirectaccessoffset)
           
 void addTableColumn(org.antlr.runtime.Token tokenTable, org.antlr.runtime.Token tokenColind, org.antlr.runtime.Token tokenName, org.antlr.runtime.Token tokenNumeric, org.antlr.runtime.Token tokenNumericsuper, org.antlr.runtime.Token tokenNumericunique)
           
 void addTableRowInfo(org.antlr.runtime.Token tokenTable, org.antlr.runtime.Token tokenRowind, org.antlr.runtime.Token tokenOo)
           
 void addTableValue(org.antlr.runtime.Token tokenTable, org.antlr.runtime.Token tokenInd, org.antlr.runtime.Token tokenRow, org.antlr.runtime.Token tokenCol, org.antlr.runtime.Token tokenValue)
           
 void backpatchLabels()
          Backpatch labels for a formula ... lives by calls to previous getLabel(..) throughout the parsing.
 void defineFormula(org.antlr.runtime.Token tokenFormulaid, org.antlr.runtime.Token tokenSimple)
           
 void defineLabel(org.antlr.runtime.Token tokenLabel)
          Define a unique label within a formula.
 void done()
          parsing of all formulas has finished
 void finishFormula(org.antlr.runtime.Token tokenFormulaid)
           
 void gen(org.antlr.runtime.Token op)
           
 void gen(org.antlr.runtime.Token op, org.antlr.runtime.Token operand1)
           
 void gen(org.antlr.runtime.Token op, org.antlr.runtime.Token operand1, org.antlr.runtime.Token operand2)
           
 void gen(org.antlr.runtime.Token op, org.antlr.runtime.Token operand1, org.antlr.runtime.Token operand2, org.antlr.runtime.Token operand3)
           
 void gen(org.antlr.runtime.Token op, org.antlr.runtime.Token operand1, org.antlr.runtime.Token operand2, org.antlr.runtime.Token operand3, org.antlr.runtime.Token operand4)
           
 TciAssembler.Asm getAsm()
           
static TciAssembler.Instruction getInstructionById(int instrid)
           
 int getLabel(java.lang.String label)
          Resolve reference to label or register for backpatching
 void setCalcMainAccess(org.antlr.runtime.Token tokenCalc, org.antlr.runtime.Token tokenNode, boolean sum)
           
 void setCalcMainSingle(org.antlr.runtime.Token tokenCalc, org.antlr.runtime.Token tokenNode)
           
 void setCalcMainSum(org.antlr.runtime.Token tokenCalc, org.antlr.runtime.Token tokenNode)
           
 void setCalcsize(org.antlr.runtime.Token tokenSize)
           
 void setEdgesize(org.antlr.runtime.Token tokenEdge, org.antlr.runtime.Token tokenSize)
           
 void setFormulasize(org.antlr.runtime.Token tokenSize)
           
 void setFuncsize(org.antlr.runtime.Token tokenSize)
           
 void setInputcalcidSize(org.antlr.runtime.Token tokenSize)
           
 void setInputsize(org.antlr.runtime.Token tokenSize)
           
 void setNodesize(org.antlr.runtime.Token tokenSize)
           
 void setTablesize(org.antlr.runtime.Token tokenSize)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

OPTYPE_NONE

public static final int OPTYPE_NONE
See Also:
Constant Field Values

OPTYPE_LABEL

public static final int OPTYPE_LABEL
See Also:
Constant Field Values

OPTYPE_BYTE

public static final int OPTYPE_BYTE
See Also:
Constant Field Values

OPTYPE_SHORT

public static final int OPTYPE_SHORT
See Also:
Constant Field Values

OPTYPE_INT

public static final int OPTYPE_INT
See Also:
Constant Field Values

OPTYPE_CONST

public static final int OPTYPE_CONST
See Also:
Constant Field Values

instructions

public static final TciAssembler.Instruction[] instructions
Constructor Detail

TciAssembler

public TciAssembler()
Method Detail

getInstructionById

public static TciAssembler.Instruction getInstructionById(int instrid)

gen

public void gen(org.antlr.runtime.Token op)

gen

public void gen(org.antlr.runtime.Token op,
                org.antlr.runtime.Token operand1)

gen

public void gen(org.antlr.runtime.Token op,
                org.antlr.runtime.Token operand1,
                org.antlr.runtime.Token operand2)

gen

public void gen(org.antlr.runtime.Token op,
                org.antlr.runtime.Token operand1,
                org.antlr.runtime.Token operand2,
                org.antlr.runtime.Token operand3)

gen

public void gen(org.antlr.runtime.Token op,
                org.antlr.runtime.Token operand1,
                org.antlr.runtime.Token operand2,
                org.antlr.runtime.Token operand3,
                org.antlr.runtime.Token operand4)

defineFormula

public void defineFormula(org.antlr.runtime.Token tokenFormulaid,
                          org.antlr.runtime.Token tokenSimple)

finishFormula

public void finishFormula(org.antlr.runtime.Token tokenFormulaid)

defineLabel

public void defineLabel(org.antlr.runtime.Token tokenLabel)
Define a unique label within a formula. The absolute bytecode offset is put into Map labels for later usage.

Parameters:
tokenLabel - Label name (unique in formula)

getLabel

public int getLabel(java.lang.String label)
Resolve reference to label or register for backpatching

Parameters:
label -
Returns:
offset if label was defined already, 0 if need to be backpatches -> use backpatchLabels() for that

backpatchLabels

public void backpatchLabels()
Backpatch labels for a formula ... lives by calls to previous getLabel(..) throughout the parsing. Make sure to call resetLabels at the start/end of a formula


done

public void done()
parsing of all formulas has finished


setCalcsize

public void setCalcsize(org.antlr.runtime.Token tokenSize)

addCalc

public void addCalc(org.antlr.runtime.Token tokenCalc,
                    org.antlr.runtime.Token tokenName,
                    org.antlr.runtime.Token tokenNargs)

setCalcMainAccess

public void setCalcMainAccess(org.antlr.runtime.Token tokenCalc,
                              org.antlr.runtime.Token tokenNode,
                              boolean sum)

setCalcMainSingle

public void setCalcMainSingle(org.antlr.runtime.Token tokenCalc,
                              org.antlr.runtime.Token tokenNode)

setCalcMainSum

public void setCalcMainSum(org.antlr.runtime.Token tokenCalc,
                           org.antlr.runtime.Token tokenNode)

setNodesize

public void setNodesize(org.antlr.runtime.Token tokenSize)

setEdgesize

public void setEdgesize(org.antlr.runtime.Token tokenEdge,
                        org.antlr.runtime.Token tokenSize)

addEdge

public void addEdge(org.antlr.runtime.Token tokenInd,
                    org.antlr.runtime.Token tokenFrom,
                    org.antlr.runtime.Token tokenTo,
                    org.antlr.runtime.Token tokenWhat)

addNode

public void addNode(org.antlr.runtime.Token tokenNode,
                    org.antlr.runtime.Token tokenId,
                    org.antlr.runtime.Token tokenName)

addNodeFormula

public void addNodeFormula(org.antlr.runtime.Token tokenNode,
                           org.antlr.runtime.Token tokenInclusion,
                           org.antlr.runtime.Token tokenTimes,
                           org.antlr.runtime.Token tokenTimesid)

addNodeCalc

public void addNodeCalc(org.antlr.runtime.Token tokenNode,
                        org.antlr.runtime.Token tokenCalc,
                        org.antlr.runtime.Token tokenFormula)

addNodeCalcdef

public void addNodeCalcdef(org.antlr.runtime.Token tokenNode,
                           org.antlr.runtime.Token tokenCalc)

addNodeCalcdef

public void addNodeCalcdef(org.antlr.runtime.Token tokenNode,
                           org.antlr.runtime.Token tokenCalcfrom,
                           org.antlr.runtime.Token tokenCalcto)

addNodeCalctotal

public void addNodeCalctotal(org.antlr.runtime.Token tokenNode,
                             org.antlr.runtime.Token tokenCalc)

addNodeCalctotal

public void addNodeCalctotal(org.antlr.runtime.Token tokenNode,
                             org.antlr.runtime.Token tokenCalcfrom,
                             org.antlr.runtime.Token tokenCalcto)

setTablesize

public void setTablesize(org.antlr.runtime.Token tokenSize)

addTable

public void addTable(org.antlr.runtime.Token tokenTable,
                     org.antlr.runtime.Token tokenName,
                     org.antlr.runtime.Token tokenRows,
                     org.antlr.runtime.Token tokenCols,
                     org.antlr.runtime.Token tokenShuffled,
                     org.antlr.runtime.Token tokenDirectaccess,
                     org.antlr.runtime.Token tokenDirectaccessoffset)

addTableColumn

public void addTableColumn(org.antlr.runtime.Token tokenTable,
                           org.antlr.runtime.Token tokenColind,
                           org.antlr.runtime.Token tokenName,
                           org.antlr.runtime.Token tokenNumeric,
                           org.antlr.runtime.Token tokenNumericsuper,
                           org.antlr.runtime.Token tokenNumericunique)

addTableValue

public void addTableValue(org.antlr.runtime.Token tokenTable,
                          org.antlr.runtime.Token tokenInd,
                          org.antlr.runtime.Token tokenRow,
                          org.antlr.runtime.Token tokenCol,
                          org.antlr.runtime.Token tokenValue)

addTableRowInfo

public void addTableRowInfo(org.antlr.runtime.Token tokenTable,
                            org.antlr.runtime.Token tokenRowind,
                            org.antlr.runtime.Token tokenOo)

setFuncsize

public void setFuncsize(org.antlr.runtime.Token tokenSize)

addFunc

public void addFunc(org.antlr.runtime.Token tokenFunc,
                    org.antlr.runtime.Token tokenName,
                    org.antlr.runtime.Token tokenNargs,
                    org.antlr.runtime.Token tokenFormula)

setInputcalcidSize

public void setInputcalcidSize(org.antlr.runtime.Token tokenSize)

addInputcalcid

public void addInputcalcid(org.antlr.runtime.Token tokenInputcalc,
                           org.antlr.runtime.Token tokenName)

setInputsize

public void setInputsize(org.antlr.runtime.Token tokenSize)

addInput

public void addInput(org.antlr.runtime.Token tokenInput,
                     org.antlr.runtime.Token tokenName,
                     org.antlr.runtime.Token tokenAutocounters,
                     org.antlr.runtime.Token tokenChoiceable)

addInputAutocounter

public void addInputAutocounter(org.antlr.runtime.Token tokenInput,
                                org.antlr.runtime.Token tokenInd,
                                org.antlr.runtime.Token tokenCounterid)

addInputcalc

public void addInputcalc(org.antlr.runtime.Token tokenInput,
                         org.antlr.runtime.Token tokenInputcalc,
                         org.antlr.runtime.Token tokenFormula)

setFormulasize

public void setFormulasize(org.antlr.runtime.Token tokenSize)

getAsm

public TciAssembler.Asm getAsm()


Copyright © 2013. All Rights Reserved.