View Javadoc

1   /*
2    * Copyright (c) 2001, Zoltan Farkas All Rights Reserved.
3    *
4    * This library is free software; you can redistribute it and/or
5    * modify it under the terms of the GNU Lesser General Public
6    * License as published by the Free Software Foundation; either
7    * version 2.1 of the License, or (at your option) any later version.
8    *
9    * This library is distributed in the hope that it will be useful,
10   * but WITHOUT ANY WARRANTY; without even the implied warranty of
11   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12   * GNU General Public License for more details.
13   *
14   * You should have received a copy of the GNU Lesser General Public
15   * License along with this program; if not, write to the Free Software
16   * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
17   */
18  
19  package net.sf.zel.vm;
20  
21  import net.sf.zel.math.ExtendedMathContext;
22  
23  public interface ParsingContext
24  {
25  
26      /**
27       * generate instruction code with argument
28       *
29       * @param instr Instruction
30       * @param arg Object
31       */
32      void generateCode(Object... args);
33  
34      /**
35       * generate code at address
36       * @param address
37       * @param args
38       */
39      void generateCodeAt(int address, Object... args);
40  
41      /**
42       * Add code to this context
43       * @param code Object[]
44       */
45      void generateCodeAll(ParsingContext parsingContext);
46  
47      /**
48       * return the current code address
49       * @return
50       */
51      int getAddress();
52  
53      /**
54       * send a object for processing
55       * @param obj Object
56       */
57      void process(Object obj);
58  
59      /**
60       * get the code generated in this context
61       * @return Object[]
62       */
63      ProgramBuilder getProgramBuilder();
64  
65      /**
66       * clone this context
67       * @return
68       */
69      ParsingContext createSubContext();
70  
71  
72  
73      ExtendedMathContext getMathContext();
74              
75  }