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
26 public abstract class JexlLexicalNode extends JexlNode implements JexlParser.LexicalUnit {
27 private static final long serialVersionUID = 1L;
28
29
30 private LexicalScope lexicalScope;
31
32 public JexlLexicalNode(final int id) {
33 super(id);
34 }
35
36 @Override
37 public boolean declareSymbol(final int symbol) {
38 if (lexicalScope == null) {
39 lexicalScope = new LexicalScope();
40 }
41 return lexicalScope.addSymbol(symbol);
42 }
43
44 @Override
45 public LexicalScope getLexicalScope() {
46 return lexicalScope;
47 }
48
49 @Override
50 public int getSymbolCount() {
51 return lexicalScope == null ? 0 : lexicalScope.getSymbolCount();
52 }
53
54 @Override
55 public boolean hasSymbol(final int symbol) {
56 return lexicalScope != null && lexicalScope.hasSymbol(symbol);
57 }
58
59 @Override
60 public boolean isConstant(final int symbol) {
61 return lexicalScope != null && lexicalScope.isConstant(symbol);
62 }
63
64 @Override
65 public void jjtClose() {
66
67 }
68
69 @Override
70 public void setConstant(final int symbol) {
71 lexicalScope.addConstant(symbol);
72 }
73 }