codesimian
Class Loop.StaticLoop.StaticRepeatLoop

java.lang.Object
  extended by codesimian.CS<CSGeneric>
      extended by codesimian.DefaultCS
          extended by codesimian.Loop
              extended by codesimian.Loop.StaticLoop
                  extended by codesimian.Loop.StaticLoop.StaticRepeatLoop
All Implemented Interfaces:
CodeSimian
Enclosing class:
Loop.StaticLoop

public static class Loop.StaticLoop.StaticRepeatLoop
extends Loop.StaticLoop

LOOP with no iteration var.
DForProxy(){
double end = param0;
for (double i = 0; i < end; i++) param1;
return last value of param1;
}
param0: max value of iteration var.
param1: loop body.
Check value of param0 once, and repeat execution of param1 that many times.
If value of param0 changes during that loop, it is not noticed. The loop still iterates as many times as param0's value when the loop started.
Returns the value of the last execution of the loop body, param1.
param0: number of iterations, checked once.
param1: loop body.


Nested Class Summary
 
Nested classes/interfaces inherited from class codesimian.Loop.StaticLoop
Loop.StaticLoop.StaticForLoop, Loop.StaticLoop.StaticRepeatLoop
 
Nested classes/interfaces inherited from class codesimian.Loop
Loop.DynamicLoop, Loop.ForEach, Loop.StaticLoop
 
Field Summary
 
Fields inherited from class codesimian.Loop
defaultMaxLoops, UNLIMITED_LOOPS
 
Fields inherited from class codesimian.CS
DESCRIPTION, END, EXECPROXY, HEAP, JAVACODE, MYFUEL, NAME, NEWINSTANCE, NULL, PARENT, PARSEPRIORITY, PREV, TESTER, THIS
 
Constructor Summary
Loop.StaticLoop.StaticRepeatLoop()
           
 
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()
          Execute this CS and cast to double.
 boolean hasCountingIterationVar()
          false.
 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 minP()
          For DForProxy().
Minimum number of parameters in param[] needed to call DForProxy().
Defines which indexs of param[] DForProxy() can use.
Functions with a different number of parameters must override this.
OVERRIDE THIS FUNCTION IF EXEC USES A DIFFERENT NUMBER OF PARAMETERS.
Default is 1.
 CS simplify()
          If this is: Repeat(Repeat()) --> Repeat(), one loop the size of: both their sizes multiplied.
 boolean sizeKnownWhenLoopStarts()
          true
 
Methods inherited from class codesimian.Loop.StaticLoop
getMaxLoops, setMaxLoops
 
Methods inherited from class codesimian.Loop
internalCost, paramOrderMatters
 
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, setPType, setS, setZ, start, toString, V, Z
 
Methods inherited from class codesimian.CS
addB, addC, addD, addF, addI, addJ, addL, addP, addP, addP, addP, addP, addS, addZ, BForProxy, CForProxy, clone, cost, D, deleteP, FForProxy, GETB, GETC, GETD, GETF, GETI, GETJ, GETL, GETS, GETZ, IForProxy, isIllusion, 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, reflect6, setB, SETB, setC, SETC, setCost, SETD, setDescription, setF, SETF, setHeap, setI, SETI, setJ, SETJ, SETL, setL, setL, setParent, setParsePriority, setProxyOf, setS, SETS, setTester, setZ, SETZ, SForProxy, tester, toJavaCode, VForProxy, voidReflect, ZForProxy
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

Loop.StaticLoop.StaticRepeatLoop

public Loop.StaticLoop.StaticRepeatLoop()
Method Detail

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

DForProxy

public double DForProxy()
Description copied from class: CS
Execute this CS and cast to double.

D() and DForProxy() are the 2 most important functions in CS. They execute this CS. All other execute functions, by default, return DForProxy cast to their own type.

For example, J() calls the proxy which calls JForProxy() which calls DForProxy(). D() calls the proxy which calls DForProxy().

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()
Description copied from class: DefaultCS
For DForProxy().
Minimum number of parameters in param[] needed to call DForProxy().
Defines which indexs of param[] DForProxy() can use.
Functions with a different number of parameters must override this.
OVERRIDE THIS FUNCTION IF EXEC USES A DIFFERENT NUMBER OF PARAMETERS.
Default is 1.

Overrides:
minP in class Loop

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 Loop
See Also:
CS.parent(), CS.newInstance(), CS.name()

hasCountingIterationVar

public boolean hasCountingIterationVar()
false. It does count, but its a local java var in DForProxy(), not a CS set at some double address.

Specified by:
hasCountingIterationVar in class Loop

sizeKnownWhenLoopStarts

public boolean sizeKnownWhenLoopStarts()
true

Specified by:
sizeKnownWhenLoopStarts in class Loop

simplify

public CS simplify()
If this is: Repeat(Repeat()) --> Repeat(), one loop the size of: both their sizes multiplied. The 2 factors in the number of iterations, are put into a Multiply.