codesimian
Class Compile.ParseObjects

java.lang.Object
  extended by codesimian.CS
      extended by codesimian.DefaultCS
          extended by codesimian.Compile
              extended by codesimian.Compile.ParseObjects
All Implemented Interfaces:
CodeSimian, java.io.Serializable
Enclosing class:
Compile

public static class Compile.ParseObjects
extends Compile

Converts a sequence
(that often has duplicate objects)
of CS objects
(that probably do not have enough params)
to a tree or graph-shape of CS objects,
where each CS object has a valid quantity of params,
assuming your parenthesis (example: Compile.LPAREN) allow that.

(my param1).P(0) must be the root code-object of the compiled output.

Assumes the CS objects already have their attributes (like CS.setMyFuel(int)) set. This is the last of 3 steps in the standard CodeSimian compiler.

HOW TO USE ParseObjects: Put a CS in my param1 whose params are the CS objects I should parse. Exec() uses those objects as input and outputs (to my param0) a single CS, the root of that tree/graph of code, the compiled output.

See Also:
Serialized Form

Nested Class Summary
 
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
 
Field Summary
 
Fields inherited from class codesimian.Compile
LPAREN, MYFUEL, NAME, RPAREN, TEMPORARY_PARAM, WHITESPACE
 
Fields inherited from class codesimian.CS
DESCRIPTION, END, EXECPROXY, FUEL, HEAP, JAVACODE, NEWINSTANCE, NULL, PARENT, PARSEPRIORITY, PREV, TESTER
 
Constructor Summary
Compile.ParseObjects()
           
 
Method Summary
 java.lang.String description()
          a short description of this CS, shorter than the javadoc, but long enough to tell what the params are for.
 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()".
static int sameCSConsecutively(CS list, int startIndex)
          sameCSConsecutively(list(3 4 5#x x x 89 x x) 2) returns 3 because its 3 consecutive x's.
sameCSConsecutively(list(3 4 5#x x x 89 x x) 6) returns 2 because its 2 consecutive x's.
sameCSConsecutively(list(3 4 5#x x x 89 x x) 1) returns 1 because its 1 consecutive 4.
Always returns at least 1.
 
Methods inherited from class codesimian.Compile
cost, javaCompile, javaCompile, minP
 
Methods inherited from class codesimian.DefaultCS
B, C, countP, decrementMyFuel, deleteP, 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, maxP, 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
 

Constructor Detail

Compile.ParseObjects

public Compile.ParseObjects()
Method Detail

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

sameCSConsecutively

public static int sameCSConsecutively(CS list,
                                      int startIndex)
sameCSConsecutively(list(3 4 5#x x x 89 x x) 2) returns 3 because its 3 consecutive x's.
sameCSConsecutively(list(3 4 5#x x x 89 x x) 6) returns 2 because its 2 consecutive x's.
sameCSConsecutively(list(3 4 5#x x x 89 x x) 1) returns 1 because its 1 consecutive 4.
Always returns at least 1.


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()

description

public java.lang.String description()
Description copied from class: CS
a short description of this CS, shorter than the javadoc, but long enough to tell what the params are for. Example use: in automatically generated webpages for CodeSimian. Example: "returns sum of all params" for Add.

Overrides:
description in class DefaultCS