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 | } |