treecalc.vm.asm
Class TciAssembler
java.lang.Object
treecalc.vm.asm.TciAssembler
public class TciAssembler
- extends java.lang.Object
- Author:
- Stefan
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 |
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
TciAssembler
public TciAssembler()
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.