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 @ 44533

History | View | Annotate | Download (2.39 KB)

1
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
        public boolean isReservedWord(String s);
34

    
35
    }
36

    
37
    public interface Rule {
38

    
39
        public void parse(StatementContext context);
40
    }
41

    
42
    public interface CompoundRule extends Rule {
43

    
44
        public CompoundRule addRule(Rule rule);
45
    }
46

    
47
    public interface ConditionalRule extends Rule {
48

    
49
        public ConditionalRule addRuleOnTrue(Rule rule);
50

    
51
        public ConditionalRule addRuleOnFalse(Rule rule);
52
    }
53

    
54
    public interface ArgsBuilder {
55

    
56
        public Codes build(StatementContext context);
57
    }
58

    
59
    public interface StatementBuilder {
60
        
61
        public String getCodeID();
62
        
63
        public ArgsBuilder getArgsBuilder();
64
        
65
        public Code build(StatementContext context);
66

    
67
    }
68

    
69
    public String getName();
70

    
71
    public Statement addRule(Rule rule);
72

    
73
    public Rule require_any_token(String... token);
74

    
75
    public CompoundRule repeat_until_any_tokens(String... token);
76

    
77
    public Rule require_identifier(String id);
78

    
79
    public Rule require_literal_string(String id);
80

    
81
    public Rule set_expression(String id, Object value);
82

    
83
    public Rule require_expression(String id);
84

    
85
    public Rule require_expressions(String id, String separator);
86

    
87
    public ConditionalRule optional_any_token(String... id);
88

    
89
    public ConditionalRule optional_identifiers(String id, String separator);
90
    
91
    public ConditionalRule optional_literal_string(String id);
92
        
93
    public ArgsBuilder args_names(String... args);
94
    
95
    public ArgsBuilder args_expand(String... args);
96
    
97
    public void code(String id, ArgsBuilder argsBuilder);
98

    
99
    public void builder(StatementBuilder stmtBuilder);
100

    
101
    public Code parse(StatementContext context);
102

    
103
    public boolean isApplicable(StatementContext context);
104

    
105

    
106
}