Skip to content

Commit 0a05cd1

Browse files
author
mgeipel
committed
fixed #58
1 parent 15ab34a commit 0a05cd1

File tree

10 files changed

+3770
-3312
lines changed

10 files changed

+3770
-3312
lines changed

examples/misc/multiple-flows/data.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
A
2+
B
3+
C
4+
D
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
default data = FLUX_DIR + "data.txt";
2+
default temp_file = "data.tmp";
3+
4+
//first flow
5+
data|
6+
open-file|
7+
as-lines|
8+
write(temp_file);
9+
10+
//second flow
11+
temp_file|
12+
open-file|
13+
as-lines|
14+
write("stdout");
15+

examples/morph/morph-marc21.flux

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,3 @@ decode-marc21|
77
morph(FLUX_DIR + "morph-marc21.xml")|
88
encode("literals")|
99
write("stdout");
10-
//write("file://???");

src/main/antlr3/org/culturegraph/mf/flux/parser/FlowBuilder.g

Lines changed: 79 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -34,87 +34,93 @@ import org.culturegraph.mf.exceptions.FluxParseException;
3434
}
3535

3636
@members {
37-
Flow flow = new Flow();
38-
Map<String, String> vars = new HashMap<String, String>();
37+
private Flow flow;
38+
private Map<String, String> vars = new HashMap<String, String>();
3939

4040
public final void addVaribleAssignements(final Map<String, String> vars) {
4141
this.vars.putAll(vars);
4242
}
4343
}
4444

45-
flux returns [Flow flow]
45+
flux returns [List<Flow> flows = new ArrayList<Flow>()]
4646
:
47-
varDefs mainflow
48-
{
49-
$flow = this.flow;
50-
}
47+
varDefs
48+
(
49+
flow
50+
{
51+
$flows.add(this.flow);
52+
}
53+
)*
54+
;
55+
56+
flow
57+
@init {
58+
this.flow = new Flow();
59+
}
60+
:
61+
(
62+
StdIn
63+
{
64+
flow.setStdInStart();
65+
}
66+
| e=exp
67+
{
68+
flow.setStringStart($e.value);
69+
}
70+
)
71+
flowtail
5172
;
5273

5374
varDefs
5475
:
5576
varDef*
56-
{
57-
58-
}
77+
{
78+
79+
}
5980
;
6081

6182
varDef
6283
:
6384
^(ASSIGN name=Identifier e=exp?)
6485

65-
{
66-
vars.put($name.text, $e.value);
67-
}
86+
{
87+
vars.put($name.text, $e.value);
88+
}
6889
|
6990
^(DEFAULT name=Identifier e=exp?)
7091

71-
{
72-
if (!vars.containsKey($name.text)) {
73-
vars.put($name.text, $e.value);
74-
}
92+
{
93+
if (!vars.containsKey($name.text)) {
94+
vars.put($name.text, $e.value);
7595
}
76-
;
77-
78-
mainflow
79-
:
80-
(
81-
StdIn
82-
{
83-
flow.setStdInStart();
84-
}
85-
| e=exp
86-
{
87-
flow.setStringStart($e.value);
88-
}
89-
)
90-
flow
96+
}
9197
;
9298

9399
tee
94100
:
95101
^(
96102
TEE
97-
{
98-
flow.startTee();
99-
//System.out.println("start tee");
100-
}
101-
(
102-
^(SUBFLOW flow)
103-
104103
{
105-
flow.endSubFlow();
106-
// System.out.println("end subflow");
104+
flow.startTee();
105+
//System.out.println("start tee");
107106
}
107+
(
108+
^(SUBFLOW flowtail)
109+
110+
{
111+
flow.endSubFlow();
112+
// System.out.println("end subflow");
113+
}
108114
)+
109115
)
110116

111-
{
112-
flow.endTee();
113-
//System.out.println("end tee");
114-
}
117+
{
118+
flow.endTee();
119+
//System.out.println("end tee");
120+
}
115121
;
116122

117-
flow
123+
flowtail
118124
:
119125
(
120126
pipe
@@ -125,22 +131,22 @@ flow
125131
exp returns [String value]
126132
:
127133
s=StringLiteral
128-
{
129-
$value = $s.text;
130-
}
134+
{
135+
$value = $s.text;
136+
}
131137
| id=Identifier
132-
{
133-
$value = vars.get($id.text);
134-
if ($value == null) {
135-
throw new FluxParseException("Variable " + $id.text + " not assigned.");
136-
}
138+
{
139+
$value = vars.get($id.text);
140+
if ($value == null) {
141+
throw new FluxParseException("Variable " + $id.text + " not assigned.");
137142
}
143+
}
138144
|
139145
^('+' e1=exp e2=exp)
140146

141-
{
142-
$value = $e1.value + $e2.value;
143-
}
147+
{
148+
$value = $e1.value + $e2.value;
149+
}
144150
;
145151

146152
pipe
@@ -153,35 +159,35 @@ final List<Object> cArgs = new ArrayList<Object>();
153159
name=QualifiedName
154160
(
155161
e=exp
156-
{
157-
cArgs.add($e.value);
158-
}
162+
{
163+
cArgs.add($e.value);
164+
}
159165
)?
160166
(
161167
VarRef
162-
{
163-
cArgs.add(Collections.unmodifiableMap(vars));
164-
}
168+
{
169+
cArgs.add(Collections.unmodifiableMap(vars));
170+
}
165171
)?
166172
(
167173
a=arg
168-
{
169-
namedArgs.put($a.key, $a.value);
170-
}
174+
{
175+
namedArgs.put($a.key, $a.value);
176+
}
171177
)*
172178
)
173179

174-
{
175-
flow.addElement(flow.createElement($name.text, namedArgs, cArgs));
176-
}
180+
{
181+
flow.addElement(flow.createElement($name.text, namedArgs, cArgs));
182+
}
177183
;
178184

179185
arg returns [String key, String value]
180186
:
181187
^(ARG k=Identifier e=exp)
182188

183-
{
184-
$key = $k.text;
185-
$value = $e.value;
186-
}
189+
{
190+
$key = $k.text;
191+
$value = $e.value;
192+
}
187193
;

0 commit comments

Comments
 (0)