Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: org/jext/dawn/stack/ReverseFunction.java


1   /*
2    * ReverseFunction.java - reverse command
3    * Copyright (C) 2000 Romain Guy
4    * romain.guy@jext.org
5    * http://www.jext.org
6    *
7    * This program is free software; you can redistribute it and/or
8    * modify it under the terms of the GNU General Public License
9    * as published by the Free Software Foundation; either version 2
10   * of the License, or any later version.
11   *
12   * This program is distributed in the hope that it will be useful,
13   * but WITHOUT ANY WARRANTY; without even the implied warranty of
14   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15   * GNU General Public License for more details.
16   *
17   * You should have received a copy of the GNU General Public License
18   * along with this program; if not, write to the Free Software
19   * Foundation, Inc., 59 Temple Place - Suite 330, BoReversen, MA  02111-1307, USA.
20   */
21  
22  package org.jext.dawn.stack;
23  
24  import java.util.Stack;
25  import org.jext.dawn.*;
26  
27  /**
28   * Reverses the stack.<br>
29   * Usage:<br>
30   * <code>rev</code>
31   * @author Romain Guy
32   */
33  
34  public class ReverseFunction extends Function
35  {
36    public ReverseFunction()
37    {
38      super("rev");
39    }
40  
41    public void invoke(DawnParser parser) throws DawnRuntimeException
42    {
43      parser.checkEmpty(this);
44      Stack stack = parser.getStack();
45      Object[] datas = new Object[stack.size()];
46      for (int i = 0; i < datas.length; i++)
47        datas[i] = stack.elementAt(datas.length - 1 - i);
48      stack.removeAllElements();
49      for (int i = 0; i < datas.length; i++)
50        stack.addElement(datas[i]);
51    }
52  }
53  
54  // End of ReverseFunction.java