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

History | View | Annotate | Download (3.33 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 setOtherValues(Object otherValues);
20
        
21
        public void setCodeClassifier(String classifier);
22

    
23
        public Object getOtherValues();
24
        
25
        public String getCodeClassifier();
26

    
27
        public CodeBuilder getCodeBuilder();
28

    
29
        public LexicalAnalyzer.Token look_token();
30

    
31
        public LexicalAnalyzer.Token next_token();
32

    
33
        public Code parse_expression(boolean allow_assignement);
34

    
35
        public Codes parse_expressions(String separator);
36
        
37
        public boolean isReservedWord(String s);
38
        
39
        public void save_state();
40
        
41
        public void restore_state();
42
        
43
        public void drop_state();
44
        
45

    
46
        public void trace(String msg);
47
    }
48

    
49
    public interface Rule {
50

    
51
        public void parse(StatementContext context);
52
        
53
        public Rule capture_as(String...ids);
54
    }
55

    
56
    public interface CompoundRule extends Rule {
57

    
58
        public CompoundRule addRule(Rule rule);
59
    }
60
    
61

    
62
    public interface ConditionalRule extends Rule {
63

    
64
        @Override
65
        public ConditionalRule capture_as(String...ids);
66

    
67
        public ConditionalRule addRuleOnTrue(Rule rule);
68

    
69
        public ConditionalRule addRuleOnFalse(Rule rule);
70
    }
71
    
72
    public interface SwichTokenRule extends Rule {
73
        public SwichTokenRule addCase(String token, Rule... rules);
74
        public SwichTokenRule addDefault(Rule... rules);
75
    }   
76

    
77
    public interface ArgsBuilder {
78

    
79
        public Codes build(StatementContext context);
80
    }
81

    
82
    public interface StatementBuilder {
83
        
84
        public String getCodeID();
85
        
86
        public ArgsBuilder getArgsBuilder();
87
        
88
        public Code build(StatementContext context);
89

    
90
    }
91

    
92
    public String getName();
93

    
94
    public Statement addRule(Rule rule);
95

    
96
    public Rule require_any_token(String... token);
97

    
98
    public CompoundRule repeat_until_any_tokens(String... token);
99

    
100
    public CompoundRule repeat();
101

    
102
    public Rule require_tokens(String... token);
103

    
104
    public Rule require_identifier();
105
    
106
    public Rule require_identifiers(String sep);
107

    
108
    public Rule require_literal_string();
109

    
110
    public Rule set_expression(String id, Object value);
111

    
112
    public Rule require_expression();
113

    
114
    public Rule require_expression(boolean allow_assignement);
115

    
116
    public Rule require_expressions(String separator);
117

    
118
    public Rule break_loop();
119
    
120
    public Rule fail();
121
    
122
    public SwichTokenRule switch_token();
123

    
124
    public ConditionalRule optional_any_token(String... id);
125

    
126
    public ConditionalRule optional_identifiers(String separator);
127
    
128
    public ConditionalRule optional_literal_string();
129
        
130
    public ArgsBuilder args_names(String... args);
131
    
132
    public ArgsBuilder fixed_args_names(String... args);
133
    
134
    public ArgsBuilder args_expand(String... args);
135
    
136
    public void code(String id, ArgsBuilder argsBuilder);
137

    
138
    public void builder(StatementBuilder stmtBuilder);
139

    
140
    public Code parse(StatementContext context);
141

    
142
    public boolean isApplicable(StatementContext context);
143

    
144

    
145
}