1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.jexl3.parser;
18
19 import org.apache.commons.jexl3.internal.LexicalScope;
20
21
22
23
24
25 public abstract class JexlLexicalNode extends JexlNode implements JexlParser.LexicalUnit {
26 private static final long serialVersionUID = 1L;
27
28 private LexicalScope lexicalScope = null;
29
30 public JexlLexicalNode(final int id) {
31 super(id);
32 }
33
34 public JexlLexicalNode(final Parser p, final int id) {
35 super(p, id);
36 }
37
38 @Override
39 public boolean declareSymbol(final int symbol) {
40 if (lexicalScope == null) {
41 lexicalScope = new LexicalScope();
42 }
43 return lexicalScope.addSymbol(symbol);
44 }
45
46 @Override
47 public boolean isConstant(final int symbol) {
48 return lexicalScope != null && lexicalScope.isConstant(symbol);
49 }
50
51 @Override
52 public void setConstant(final int symbol) {
53 lexicalScope.addConstant(symbol);
54 }
55
56 @Override
57 public int getSymbolCount() {
58 return lexicalScope == null? 0 : lexicalScope.getSymbolCount();
59 }
60
61 @Override
62 public boolean hasSymbol(final int symbol) {
63 return lexicalScope != null && lexicalScope.hasSymbol(symbol);
64 }
65
66 @Override
67 public LexicalScope getLexicalScope() {
68 return lexicalScope;
69 }
70
71 @Override
72 public void jjtClose() {
73
74 }
75 }