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

History | View | Annotate | Download (3.28 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 46050 omartinez
        public void setOtherValues(Object otherValues);
20
21 44139 jjdelcerro
        public void setCodeClassifier(String classifier);
22
23 46050 omartinez
        public Object getOtherValues();
24
25 44139 jjdelcerro
        public String getCodeClassifier();
26
27
        public CodeBuilder getCodeBuilder();
28
29
        public LexicalAnalyzer.Token look_token();
30
31
        public LexicalAnalyzer.Token next_token();
32
33 45153 jjdelcerro
        public Code parse_expression(boolean allow_assignement);
34 44139 jjdelcerro
35
        public Codes parse_expressions(String separator);
36 44384 jjdelcerro
37
        public boolean isReservedWord(String s);
38 44750 jjdelcerro
39
        public void save_state();
40
41
        public void restore_state();
42
43
        public void drop_state();
44
45 44384 jjdelcerro
46 44738 jjdelcerro
        public void trace(String msg);
47 44139 jjdelcerro
    }
48
49
    public interface Rule {
50
51
        public void parse(StatementContext context);
52 44750 jjdelcerro
53
        public Rule capture_as(String...ids);
54 44139 jjdelcerro
    }
55
56
    public interface CompoundRule extends Rule {
57
58
        public CompoundRule addRule(Rule rule);
59
    }
60 44750 jjdelcerro
61 44139 jjdelcerro
62
    public interface ConditionalRule extends Rule {
63
64 44750 jjdelcerro
        @Override
65
        public ConditionalRule capture_as(String...ids);
66
67 44139 jjdelcerro
        public ConditionalRule addRuleOnTrue(Rule rule);
68
69
        public ConditionalRule addRuleOnFalse(Rule rule);
70
    }
71 44738 jjdelcerro
72
    public interface SwichTokenRule extends Rule {
73
        public SwichTokenRule addCase(String token, Rule... rules);
74
        public SwichTokenRule addDefault(Rule... rules);
75
    }
76 44139 jjdelcerro
77
    public interface ArgsBuilder {
78
79
        public Codes build(StatementContext context);
80
    }
81
82 44384 jjdelcerro
    public interface StatementBuilder {
83
84
        public String getCodeID();
85
86
        public ArgsBuilder getArgsBuilder();
87
88
        public Code build(StatementContext context);
89 44139 jjdelcerro
90 44384 jjdelcerro
    }
91
92 44139 jjdelcerro
    public String getName();
93
94
    public Statement addRule(Rule rule);
95
96 44147 jjdelcerro
    public Rule require_any_token(String... token);
97 44139 jjdelcerro
98 44147 jjdelcerro
    public CompoundRule repeat_until_any_tokens(String... token);
99 44139 jjdelcerro
100 44738 jjdelcerro
    public CompoundRule repeat();
101
102 44750 jjdelcerro
    public Rule require_identifier();
103 44740 jjdelcerro
104 44750 jjdelcerro
    public Rule require_identifiers(String sep);
105 44139 jjdelcerro
106 44750 jjdelcerro
    public Rule require_literal_string();
107 44533 jjdelcerro
108 44379 jjdelcerro
    public Rule set_expression(String id, Object value);
109
110 44750 jjdelcerro
    public Rule require_expression();
111 44139 jjdelcerro
112 45153 jjdelcerro
    public Rule require_expression(boolean allow_assignement);
113
114 44750 jjdelcerro
    public Rule require_expressions(String separator);
115 44139 jjdelcerro
116 44738 jjdelcerro
    public Rule break_loop();
117
118 44750 jjdelcerro
    public Rule fail();
119
120 44738 jjdelcerro
    public SwichTokenRule switch_token();
121
122 44147 jjdelcerro
    public ConditionalRule optional_any_token(String... id);
123 44139 jjdelcerro
124 44750 jjdelcerro
    public ConditionalRule optional_identifiers(String separator);
125 44533 jjdelcerro
126 44750 jjdelcerro
    public ConditionalRule optional_literal_string();
127 44533 jjdelcerro
128 44139 jjdelcerro
    public ArgsBuilder args_names(String... args);
129
130 44750 jjdelcerro
    public ArgsBuilder fixed_args_names(String... args);
131
132 44139 jjdelcerro
    public ArgsBuilder args_expand(String... args);
133
134
    public void code(String id, ArgsBuilder argsBuilder);
135
136 44384 jjdelcerro
    public void builder(StatementBuilder stmtBuilder);
137
138 44139 jjdelcerro
    public Code parse(StatementContext context);
139
140
    public boolean isApplicable(StatementContext context);
141
142
143
}