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

History | View | Annotate | Download (2.72 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
        public void trace(String msg);
36
    }
37

    
38
    public interface Rule {
39

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

    
43
    public interface CompoundRule extends Rule {
44

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

    
48
    public interface ConditionalRule extends Rule {
49

    
50
        public ConditionalRule addRuleOnTrue(Rule rule);
51

    
52
        public ConditionalRule addRuleOnFalse(Rule rule);
53
    }
54
    
55
    public interface SwichTokenRule extends Rule {
56
        public SwichTokenRule addCase(String token, Rule... rules);
57
        public SwichTokenRule addDefault(Rule... rules);
58
    }   
59

    
60
    public interface ArgsBuilder {
61

    
62
        public Codes build(StatementContext context);
63
    }
64

    
65
    public interface StatementBuilder {
66
        
67
        public String getCodeID();
68
        
69
        public ArgsBuilder getArgsBuilder();
70
        
71
        public Code build(StatementContext context);
72

    
73
    }
74

    
75
    public String getName();
76

    
77
    public Statement addRule(Rule rule);
78

    
79
    public Rule require_any_token(String... token);
80

    
81
    public CompoundRule repeat_until_any_tokens(String... token);
82

    
83
    public CompoundRule repeat();
84

    
85
    public Rule require_identifier(String id);
86

    
87
    public Rule require_literal_string(String id);
88

    
89
    public Rule set_expression(String id, Object value);
90

    
91
    public Rule require_expression(String id);
92

    
93
    public Rule require_expressions(String id, String separator);
94

    
95
    public Rule break_loop();
96
    
97
    public SwichTokenRule switch_token();
98

    
99
    public ConditionalRule optional_any_token(String... id);
100

    
101
    public ConditionalRule optional_identifiers(String id, String separator);
102
    
103
    public ConditionalRule optional_literal_string(String id);
104
        
105
    public ArgsBuilder args_names(String... args);
106
    
107
    public ArgsBuilder args_expand(String... args);
108
    
109
    public void code(String id, ArgsBuilder argsBuilder);
110

    
111
    public void builder(StatementBuilder stmtBuilder);
112

    
113
    public Code parse(StatementContext context);
114

    
115
    public boolean isApplicable(StatementContext context);
116

    
117

    
118
}