Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.library / org.gvsig.expressionevaluator / org.gvsig.expressionevaluator.lib / org.gvsig.expressionevaluator.lib.api / src / main / java / org / gvsig / expressionevaluator / Statement.java @ 44147

History | View | Annotate | Download (1.88 KB)

1 44139 jjdelcerro
package org.gvsig.expressionevaluator;
2
3
/**
4
 *
5
 * @author jjdelcerro
6
 */
7
public interface Statement {
8
9
    public interface StatementContext {
10
11
        public Compiler getCompiler();
12
13
        public LexicalAnalyzer getLexicalAnalyzer();
14
15
        public void setCode(String id, Code code);
16
17
        public Code getCode(String id);
18
19
        public void setCodeClassifier(String classifier);
20
21
        public String getCodeClassifier();
22
23
        public CodeBuilder getCodeBuilder();
24
25
        public LexicalAnalyzer.Token look_token();
26
27
        public LexicalAnalyzer.Token next_token();
28
29
        public Code parse_expression();
30
31
        public Codes parse_expressions(String separator);
32
    }
33
34
    public interface Rule {
35
36
        public void parse(StatementContext context);
37
    }
38
39
    public interface CompoundRule extends Rule {
40
41
        public CompoundRule addRule(Rule rule);
42
    }
43
44
    public interface ConditionalRule extends Rule {
45
46
        public ConditionalRule addRuleOnTrue(Rule rule);
47
48
        public ConditionalRule addRuleOnFalse(Rule rule);
49
    }
50
51
    public interface ArgsBuilder {
52
53
        public Codes build(StatementContext context);
54
    }
55
56
57
    public String getName();
58
59
    public Statement addRule(Rule rule);
60
61 44147 jjdelcerro
    public Rule require_any_token(String... token);
62 44139 jjdelcerro
63 44147 jjdelcerro
    public CompoundRule repeat_until_any_tokens(String... token);
64 44139 jjdelcerro
65
    public Rule require_identifier(String id);
66
67
    public Rule require_expression(String id);
68
69
    public Rule require_expressions(String id, String separator);
70
71 44147 jjdelcerro
    public ConditionalRule optional_any_token(String... id);
72 44139 jjdelcerro
73
    public Rule optional_identifiers(String id, String separator);
74
75
    public ArgsBuilder args_names(String... args);
76
77
    public ArgsBuilder args_expand(String... args);
78
79
    public void code(String id, ArgsBuilder argsBuilder);
80
81
    public Code parse(StatementContext context);
82
83
    public boolean isApplicable(StatementContext context);
84
85
86
}