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

History | View | Annotate | Download (3.08 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 save_state();
36
        
37
        public void restore_state();
38
        
39
        public void drop_state();
40
        
41

    
42
        public void trace(String msg);
43
    }
44

    
45
    public interface Rule {
46

    
47
        public void parse(StatementContext context);
48
        
49
        public Rule capture_as(String...ids);
50
    }
51

    
52
    public interface CompoundRule extends Rule {
53

    
54
        public CompoundRule addRule(Rule rule);
55
    }
56
    
57

    
58
    public interface ConditionalRule extends Rule {
59

    
60
        @Override
61
        public ConditionalRule capture_as(String...ids);
62

    
63
        public ConditionalRule addRuleOnTrue(Rule rule);
64

    
65
        public ConditionalRule addRuleOnFalse(Rule rule);
66
    }
67
    
68
    public interface SwichTokenRule extends Rule {
69
        public SwichTokenRule addCase(String token, Rule... rules);
70
        public SwichTokenRule addDefault(Rule... rules);
71
    }   
72

    
73
    public interface ArgsBuilder {
74

    
75
        public Codes build(StatementContext context);
76
    }
77

    
78
    public interface StatementBuilder {
79
        
80
        public String getCodeID();
81
        
82
        public ArgsBuilder getArgsBuilder();
83
        
84
        public Code build(StatementContext context);
85

    
86
    }
87

    
88
    public String getName();
89

    
90
    public Statement addRule(Rule rule);
91

    
92
    public Rule require_any_token(String... token);
93

    
94
    public CompoundRule repeat_until_any_tokens(String... token);
95

    
96
    public CompoundRule repeat();
97

    
98
    public Rule require_identifier();
99
    
100
    public Rule require_identifiers(String sep);
101

    
102
    public Rule require_literal_string();
103

    
104
    public Rule set_expression(String id, Object value);
105

    
106
    public Rule require_expression();
107

    
108
    public Rule require_expressions(String separator);
109

    
110
    public Rule break_loop();
111
    
112
    public Rule fail();
113
    
114
    public SwichTokenRule switch_token();
115

    
116
    public ConditionalRule optional_any_token(String... id);
117

    
118
    public ConditionalRule optional_identifiers(String separator);
119
    
120
    public ConditionalRule optional_literal_string();
121
        
122
    public ArgsBuilder args_names(String... args);
123
    
124
    public ArgsBuilder fixed_args_names(String... args);
125
    
126
    public ArgsBuilder args_expand(String... args);
127
    
128
    public void code(String id, ArgsBuilder argsBuilder);
129

    
130
    public void builder(StatementBuilder stmtBuilder);
131

    
132
    public Code parse(StatementContext context);
133

    
134
    public boolean isApplicable(StatementContext context);
135

    
136

    
137
}