Skip to content

Commit b710650

Browse files
committed
guard.add を linkedlist の linkedlist 用に変更
1 parent d362eb8 commit b710650

File tree

1 file changed

+35
-7
lines changed

1 file changed

+35
-7
lines changed

src/compile/parser/SrcRule.java

Lines changed: 35 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,10 @@ public SrcRule(
9999
}
100100
LinkedList head3 = this.head;
101101
LinkedList body2 = this.body;
102-
addTypeConstraint(head3);
102+
/* I から始まるアトムを int 型として扱う旧時代の機能
103+
* なぜか simpagation にだけ残っていたのでコメントアウト
104+
* addTypeConstraint(head3);
105+
*/
103106
addHyperLinkConstraint(head3, this.guard, body2);
104107
}
105108

@@ -133,7 +136,12 @@ private LinkedList addHyperLinkConstraintSub(
133136
}
134137
headhl.add(name.toString());
135138
SrcAtom newg = new SrcAtom("hlink", newl);
136-
guard.add(newg);
139+
// or の受理のため,linkedlist の linkedlist になっているはずなので変更 imagawa
140+
for (Object i : guard) {
141+
LinkedList tmp = (LinkedList) i;
142+
tmp.add(newg);
143+
}
144+
137145
} else if (o instanceof SrcAtom) {
138146
SrcAtom sa = (SrcAtom) o;
139147
headhl = addHyperLinkConstraintSub(sa.process, guard, null, headhl);
@@ -158,7 +166,11 @@ private LinkedList addHyperLinkConstraintSub(
158166
}
159167
headhl.add(name.toString());
160168
SrcAtom newg = new SrcAtom("new", newl);
161-
guard.add(newg);
169+
// or の受理のため,linkedlist の linkedlist になっているはずなので変更 imagawa
170+
for (Object i : guard) {
171+
LinkedList tmp = (LinkedList) i;
172+
tmp.add(newg);
173+
}
162174
}
163175
} else if (o instanceof SrcAtom) {
164176
SrcAtom sa = (SrcAtom) o;
@@ -188,22 +200,38 @@ public void addTypeConstraint(LinkedList l) {
188200
LinkedList newl = new LinkedList();
189201
newl.add(new SrcLink(sl.name));
190202
SrcAtom newg = new SrcAtom("int", newl);
191-
guard.add(newg);
203+
// or の受理のため,linkedlist の linkedlist になっているはずなので変更 imagawa
204+
for (Object i : guard) {
205+
LinkedList tmp = (LinkedList) i;
206+
tmp.add(newg);
207+
}
192208
} else if (sl.name.matches("^_G.*")) { // ground
193209
LinkedList newl = new LinkedList();
194210
newl.add(new SrcLink(sl.name));
195211
SrcAtom newg = new SrcAtom("ground", newl);
196-
guard.add(newg);
212+
// or の受理のため,linkedlist の linkedlist になっているはずなので変更 imagawa
213+
for (Object i : guard) {
214+
LinkedList tmp = (LinkedList) i;
215+
tmp.add(newg);
216+
}
197217
} else if (sl.name.matches("^_S.*")) { // string
198218
LinkedList newl = new LinkedList();
199219
newl.add(new SrcLink(sl.name));
200220
SrcAtom newg = new SrcAtom("string", newl);
201-
guard.add(newg);
221+
// or の受理のため,linkedlist の linkedlist になっているはずなので変更 imagawa
222+
for (Object i : guard) {
223+
LinkedList tmp = (LinkedList) i;
224+
tmp.add(newg);
225+
}
202226
} else if (sl.name.matches("^_U.*")) { // unary
203227
LinkedList newl = new LinkedList();
204228
newl.add(new SrcLink(sl.name));
205229
SrcAtom newg = new SrcAtom("unary", newl);
206-
guard.add(newg);
230+
// or の受理のため,linkedlist の linkedlist になっているはずなので変更 imagawa
231+
for (Object i : guard) {
232+
LinkedList tmp = (LinkedList) i;
233+
tmp.add(newg);
234+
}
207235
}
208236
} else if (o instanceof SrcAtom) {
209237
SrcAtom sa = (SrcAtom) o;

0 commit comments

Comments
 (0)