View Javadoc

1   ////////////////////////////////////////////////////////////////////////////////
2   // MillScript: an Open Spice interpreter and batch website creation tool
3   // Copyright (C) 2004-2005 Kevin Rogers
4   //
5   // This file is part of MillScript.
6   //
7   // MillScript is free software; you can redistribute it and/or modify it under
8   // the terms of the GNU General Public License as published by the Free
9   // Software Foundation; either version 2 of the License, or (at your option)
10  // any later version.
11  //
12  // MillScript is distributed in the hope that it will be useful, but WITHOUT
13  // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14  // FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
15  // more details.
16  //
17  // You should have received a copy of the GNU General Public License along with
18  // MillScript; if not, write to the Free Software Foundation, Inc., 59 Temple
19  // Place, Suite 330, Boston, MA  02111-1307  USA
20  ////////////////////////////////////////////////////////////////////////////////
21  package org.millscript.millscript.syntax;
22  
23  import org.millscript.millscript.expr.Expr;
24  import org.millscript.millscript.expr.NameExpr;
25  
26  import java.util.regex.Pattern;
27  
28  /**
29   * This class provides a parser for use when parsing a Spice class.
30   */
31  public final class SpiceClassParserDelegate implements Parser {
32  
33      /**
34       * The name of the class this parser will be used to parse, for any
35       * references to the "this" parameter.
36       */
37      private final NameExpr enclosingSpiceClassNameExpr;
38  
39      /**
40       * The parser this delegate parser will actually use.
41       */
42      private final Parser parser;
43  
44      /**
45       * Constructs a new SpiceClassParserDelegate to parse a class with the
46       * specified name, using the specified parser.
47       *
48       * @param p the parser to delegate
49       * @param name  the name of the class we are parsing
50       */
51      public SpiceClassParserDelegate( final Parser p, final NameExpr name ) {
52          this.enclosingSpiceClassNameExpr = name;
53          this.parser = p;
54      }
55  
56      /**
57       * @see Tokenizer#checkWhere(char)
58       */
59      public boolean checkWhere( final char ch ) {
60          return parser.checkWhere( ch );
61      }
62  
63      /**
64       * @see Tokenizer#dropToken()
65       */
66      public void dropToken() {
67          parser.dropToken();
68      }
69  
70      /**
71       * @see java.lang.Object#equals(java.lang.Object)
72       */
73      @Override
74      public boolean equals( final Object obj ) {
75          return parser.equals( obj );
76      }
77  
78      /**
79       * @see org.millscript.millscript.syntax.Tokenizer#getAttributeName()
80       */
81      public String getAttributeName() {
82          return parser.getAttributeName();
83      }
84  
85      /**
86       * @see org.millscript.millscript.syntax.Parser#getEnclosingClass()
87       */
88      public NameExpr getEnclosingClass() {
89          return this.enclosingSpiceClassNameExpr;
90      }
91  
92      /**
93       * @see Tokenizer#getErrorString()
94       */
95      public String getErrorString() {
96          return parser.getErrorString();
97      }
98  
99      /**
100      * @see Tokenizer#getInt()
101      */
102     public int getInt() {
103         return parser.getInt();
104     }
105 
106     /**
107      * @see Tokenizer#getLineNumber()
108      */
109     public int getLineNumber() {
110         return parser.getLineNumber();
111     }
112 
113     /**
114      * @see Tokenizer#getName()
115      */
116     public String getName() {
117         return parser.getName();
118     }
119 
120     /**
121      * @see Tokenizer#getOrigin()
122      */
123     public String getOrigin() {
124         return parser.getOrigin();
125     }
126 
127     /**
128      * @see Tokenizer#getQuoteChar()
129      */
130     public char getQuoteChar() {
131         return parser.getQuoteChar();
132     }
133 
134     /**
135      * @see Tokenizer#getString()
136      */
137     public String getString() {
138         return parser.getString();
139     }
140 
141     /**
142      * @see Tokenizer#getStringNoQuotes()
143      */
144     public String getStringNoQuotes() {
145         return parser.getStringNoQuotes();
146     }
147 
148     /**
149      * @see Tokenizer#getStringNoQuotes(int, int)
150      */
151     public String getStringNoQuotes( final int a, final int b ) {
152         return parser.getStringNoQuotes( a, b );
153     }
154 
155     /**
156      * @see Tokenizer#getTagName()
157      */
158     public String getTagName() {
159         return parser.getTagName();
160     }
161 
162     /**
163      * @see java.lang.Object#hashCode()
164      */
165     @Override
166     public int hashCode() {
167         return parser.hashCode();
168     }
169 
170     /**
171      * @see Parser#makeInterpolatedExpr()
172      */
173     public Expr makeInterpolatedExpr() {
174         return parser.makeInterpolatedExpr();
175     }
176 
177     /**
178      * @see Tokenizer#makePattern()
179      */
180     public Pattern makePattern() {
181         return parser.makePattern();
182     }
183 
184     /**
185      * @see Tokenizer#markReader()
186      */
187     public void markReader() {
188         parser.markReader();
189     }
190 
191     /**
192      * @see Tokenizer#mustRead(String)
193      */
194     public void mustRead( final String sym ) {
195         parser.mustRead( sym );
196     }
197 
198     /**
199      * @see Tokenizer#nextToken()
200      */
201     public TokenType nextToken() {
202         return parser.nextToken();
203     }
204 
205     /**
206      * @see Tokenizer#peekRead(String)
207      */
208     public boolean peekRead( final String sym ) {
209         return parser.peekRead( sym );
210     }
211 
212     /**
213      * @see Tokenizer#peekToken()
214      */
215     public TokenType peekToken() {
216         return parser.peekToken();
217     }
218 
219     /**
220      * @see org.millscript.millscript.syntax.Parser#readAttributeName()
221      */
222     public String readAttributeName() {
223         return parser.readAttributeName();
224     }
225 
226     /**
227      * @see Parser#readBlock()
228      */
229     public Expr readBlock() {
230         return parser.readBlock();
231     }
232 
233     /**
234      * @see Parser#readBlockTo(String)
235      */
236     public Expr readBlockTo( final String sym ) {
237         return parser.readBlockTo( sym );
238     }
239 
240     /**
241      * @see Parser#readExpr()
242      */
243     public Expr readExpr() {
244         return parser.readExpr();
245     }
246 
247     /**
248      * @see Parser#readExprComma()
249      */
250     public Expr readExprComma() {
251         return parser.readExprComma();
252     }
253 
254     /**
255      * @see Parser#readExprPrec(int)
256      */
257     public Expr readExprPrec( final int prec ) {
258         return parser.readExprPrec( prec );
259     }
260 
261     /**
262      * @see Parser#readExprTo(String)
263      */
264     public Expr readExprTo( final String sym ) {
265         return parser.readExprTo( sym );
266     }
267 
268     /**
269      * @see Parser#readName()
270      */
271     public NameExpr readName() {
272         return parser.readName();
273     }
274 
275     /**
276      * @see Parser#readOptExpr()
277      */
278     public Expr readOptExpr() {
279         return parser.readOptExpr();
280     }
281 
282     /**
283      * @see Parser#readOptExprPrec(int)
284      */
285     public Expr readOptExprPrec( final int prec ) {
286         return parser.readOptExprPrec( prec );
287     }
288 
289     /**
290      * @see Parser#readOptPrimary()
291      */
292     public Expr readOptPrimary() {
293         return parser.readOptPrimary();
294     }
295 
296     /**
297      * @see Parser#readPrimary()
298      */
299     public Expr readPrimary() {
300         return parser.readPrimary();
301     }
302 
303     /**
304      * @see Parser#readStmnts()
305      */
306     public Expr readStmnts() {
307         return parser.readStmnts();
308     }
309 
310     /**
311      * @see Parser#readStmntsTo(String)
312      */
313     public Expr readStmntsTo( final String sym ) {
314         return parser.readStmntsTo( sym );
315     }
316 
317     /**
318      * @see Parser#readSymbol()
319      */
320     public String readSymbol() {
321         return parser.readSymbol();
322     }
323 
324     /**
325      * @see Parser#readTagName()
326      */
327     public String readTagName() {
328         return parser.readTagName();
329     }
330 
331     /**
332      * @see Tokenizer#resetReader()
333      */
334     public void resetReader() {
335         parser.resetReader();
336     }
337 
338     /**
339      * @see org.millscript.commons.alert.AlertOrigin#setContext(java.lang.String, int)
340      */
341     public void setContext( final String s, final int n ) {
342         parser.setContext( s, n );
343     }
344 
345     /**
346      * @see org.millscript.commons.alert.AlertOrigin#setLineNumber(int)
347      */
348     public void setLineNumber( final int n ) {
349         parser.setLineNumber( n );
350     }
351 
352     /**
353      * @see org.millscript.commons.alert.AlertOrigin#setOrigin(java.lang.String)
354      */
355     public void setOrigin( final String o ) {
356         parser.setOrigin( o );
357     }
358 
359     /**
360      * @see Tokenizer#setWhere(char)
361      */
362     public void setWhere( final char ch ) {
363         parser.setWhere( ch );
364     }
365 
366     /**
367      * @see java.lang.Object#toString()
368      */
369     @Override
370     public String toString() {
371         return parser.toString();
372     }
373 
374     /**
375      * @see Tokenizer#tryRead(String)
376      */
377     public boolean tryRead( final String sym ) {
378         return parser.tryRead( sym );
379     }
380 
381 }