private void push ( final int type ) { // creates and/or resizes the output stack array if necessary if ( outputStack == null ) { outputStack = new int [ 10 ] ; } int n = outputStack . length ; if ( outputStackTop >= n ) { int [ ] t = new int [ Math . max ( outputStackTop + 1 , 2 * n ) ] ; System . arraycopy ( outputStack , 0 , t , 0 , n ) ; outputStack = t ; } // pushes the type on the output stack outputStack [ outputStackTop ++ ] = type ; // updates the maximun height reached by the output stack, if needed int top = owner . inputStackTop + outputStackTop ; if ( top > owner . outputStackMax ) { owner . outputStackMax = top ; } }
Pushes a new type onto the output frame stack .