codesimian
Class Compile.CompilerPipeline
java.lang.Object
codesimian.CS
codesimian.DefaultCS
codesimian.Compile
codesimian.Compile.CompilerPipeline
- All Implemented Interfaces:
- CodeSimian, java.io.Serializable
- Enclosing class:
- Compile
public static class Compile.CompilerPipeline
- extends Compile
A pipeline/sequence of COMPILERs.
A compiler's param1 is the input, and its param0 is the output.
My compilers are stored in param2 and higher.
Param2 is first. paramEND is the last compiler.
My param0 and param1 act as the 2 params of a normal compiler,
representing the sequence/pipeline of compilers contained in param2 and above.
Should reverse the order of the compilers index 2 and above.
Instead of (example size 5) 2, 3, then 4, it should be 4, 3, then 2,
because thats the natural direction of a compilerPipeline.
Put the code in index 1, execute, then get the code from index 0. It decreases.
Since its recursive (could have compilerPipelines inside compilerPipelines),
the current order is confusing.
- See Also:
- Serialized Form
| Nested classes/interfaces inherited from class codesimian.Compile |
Compile.CompilerPipeline, Compile.LParenSymbol, Compile.MyFuelSymbol, Compile.NameSymbol, Compile.ParseObjects, Compile.ParseObjectsByPriority, Compile.RParenSymbol, Compile.SimpleCompiler, Compile.SmallSymbol, Compile.Symbol, Compile.TokenizeCode, Compile.TokensToObjects, Compile.WhitespaceSymbol |
| Fields inherited from class codesimian.CS |
DESCRIPTION, END, EXECPROXY, FUEL, HEAP, JAVACODE, NEWINSTANCE, NULL, PARENT, PARSEPRIORITY, PREV, TESTER |
|
Method Summary |
double |
DForProxy()
D() and DForProxy() are the 2 most important functions in CS. |
java.lang.String |
keyword()
For the CodeSimian language as a String.
CodeSimian language keyword, like "+" "*" "max" ">" etc.
Override this function if you want to specify a keyword
other than how I derive them from the class name, like + for Add.
Some CSs might never be intended to be used in the language by their keyword.
The best example (4/05) is Num, because it is used in the language like "3.4" instead of "num()". |
int |
maxP()
1000000 |
int |
minP()
returns 4. |
| Methods inherited from class codesimian.DefaultCS |
B, C, countP, decrementMyFuel, deleteP, description, F, fuel, getExec, getObject, heap, I, indexP, indexPName, insertB, insertC, insertD, insertF, insertI, insertJ, insertL, insertL, insertL1, insertP, insertS, insertZ, J, javaCode, LForProxy, LForProxy, myFuel, name, newInstance, objectToCS, objectToCSArray, objectToCSArray, P, prevD, prevL, PType, S, setB, setC, setCountP, setD, setD, setExec, setF, setFuel, setI, setJ, setL, setL, setL, setL1, setMyFuel, setName, setObject, setP, setPrevExec, setS, setZ, start, toString, V, Z |
| Methods inherited from class codesimian.CS |
addP, addP, addP, addP, addP, BForProxy, CForProxy, clone, D, deleteP, FForProxy, IForProxy, isIllusion, javaCode, JForProxy, L, L, L, L, L, maxD, minD, overwrites, parent, parsePriority, PB, PC, PD, PF, PI, PJ, PL, prevB, prevC, prevF, prevI, prevJ, prevS, prevZ, proxyOf, PS, PZ, reflect, reflect, setB, setC, setCost, setDescription, setF, setHeap, setI, setJ, setL, setL, setParent, setParsePriority, setProxyOf, setPType, setS, setTester, setZ, SForProxy, tester, VForProxy, voidReflect, ZForProxy |
| Methods inherited from class java.lang.Object |
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Compile.CompilerPipeline
public Compile.CompilerPipeline()
DForProxy
public double DForProxy()
- Description copied from class:
CS
- D() and DForProxy() are the 2 most important functions in CS.
They execute this CS. All other execute functions, by default,
use DForProxy instead of reinventing-the-wheel for their own type.
For example, J() calls JForProxy() which calls DForProxy(). D() calls DForProxy() directly.
Execute this CS and cast to double.
D() is the main EXECUTE function. D() uses DForProxy().
DForProxy() is the main action of every CS, the most important function.
By default, all other primitive EXECUTE functions defer to D.
Functions that EXECUTE this CS: L(Class) L(int,Class,int) Z() B() C() S() I() J() F() D() V()
- Specified by:
DForProxy in class DefaultCS
minP
public int minP()
- returns 4. Compilers go in param2 and above (needs at least 2 inner compilers)
- Overrides:
minP in class Compile
maxP
public int maxP()
- 1000000
- Overrides:
maxP in class CS
keyword
public java.lang.String keyword()
- Description copied from class:
DefaultCS
- For the CodeSimian language as a String.
CodeSimian language keyword, like "+" "*" "max" ">" etc.
Override this function if you want to specify a keyword
other than how I derive them from the class name, like + for Add.
Some CSs might never be intended to be used in the language by their keyword.
The best example (4/05) is Num, because it is used in the language like "3.4" instead of "num()".
Default: Returns class name, minus package name (and its dots), and change the first letter to lowercase.
For example, CS.MaxParams does not override keyword(), which returns "maxP".
- Overrides:
keyword in class DefaultCS
- See Also:
CS.parent(),
CS.newInstance(),
CS.name()