push / pop operation
Syntax
[ operations ]
Parameters
 operations
A sequence of shape operations to execute.
Description
The [ operation pushes the current shape onto the top of the shape stack. It must be matched by a succeeding ] operation, which pops the shape on top of the shape stack and deletes the shape.
Related
Examples
Rotation Example

Lot >
extrude(15)
r(scopeCenter, 0, 22.5, 0) X.
r(scopeCenter, 0, 22.5, 0) X.
r(scopeCenter, 0, 22.5, 0) X.
In this example, the extruded shape is rotated three times and assigned to a new shape (X). The rotations build on each other. 

Lot >
extrude(15)
[ r(scopeCenter, 0, 22.5, 0) X. ]
[ r(scopeCenter, 0, 22.5, 0) X. ]
[ r(scopeCenter, 0, 22.5, 0) X. ]
Encapsulating the rotations and create shape operations with a push/pop pair makes all shapes X coincide. The rotations are independent of each other. 
House Example

House >
extrude(10)
comp(f) { top : roofHip(45) Roof.  all = House.}
House >
[ t(0,10,0) roofHip(45) Roof. ]
extrude(10)
comp(f) { top : NIL  all = House. }
Both rules generate the same result. In the second rule, the roof is generated first using push/pop operations. 
Translation Example

House>
Cylinder
[ t( 0, 0, ' 1) Cylinder ]
[ t( 0, 0, '1) Cylinder ]
[ t(' 1, 0, 0) Cylinder ]
[ t('1, 0, 0) Cylinder ]
Cylinder >
primitiveCylinder(16, 1, 2)
Cylinder assets are inserted five times. Each scope is translated based on the scope of the initial shape. 
Condition Example

Lot >
s(1,1,1)
[ case scope.sx == 1 : primitiveCube() Cube.
else : primitiveCylinder() Cylinder. ]
Conditional and stochastic statements must not have preceding operations. Use push and pop to encapsulate a case switch. 