Revision 9
Added by Willibald K. over 8 years ago
OoaPrologType.java | ||
---|---|---|
29 | 29 |
|
30 | 30 |
import org.momut.ooas.ast.identifiers.EnumIdentifier; |
31 | 31 |
import org.momut.ooas.ast.identifiers.Identifier; |
32 |
import org.momut.ooas.ast.identifiers.LandmarkIdentifier; |
|
33 | 32 |
import org.momut.ooas.ast.types.BoolType; |
34 | 33 |
import org.momut.ooas.ast.types.CharType; |
35 | 34 |
import org.momut.ooas.ast.types.EnumType; |
... | ... | |
41 | 40 |
import org.momut.ooas.ast.types.OoActionSystemInstance; |
42 | 41 |
import org.momut.ooas.ast.types.OoActionSystemType; |
43 | 42 |
import org.momut.ooas.ast.types.OpaqueType; |
44 |
import org.momut.ooas.ast.types.QrType; |
|
45 | 43 |
import org.momut.ooas.ast.types.TupleType; |
46 |
import org.momut.ooas.ast.types.UlyssesType;
|
|
44 |
import org.momut.ooas.ast.types.Type; |
|
47 | 45 |
import org.momut.ooas.ast.types.ValuedEnumType; |
48 | 46 |
import org.momut.ooas.codegen.OoasCodeEmitter; |
49 | 47 |
import org.momut.ooas.utils.exceptions.NotImplementedException; |
... | ... | |
58 | 56 |
|
59 | 57 |
protected final Scratchbook m_scratchbook; |
60 | 58 |
|
61 |
public static void EmitType(UlyssesType aType, OoaPrologIdentifier.Factory idFactory, Scratchbook scratchbook)
|
|
59 |
public static void EmitType(Type aType, OoaPrologIdentifier.Factory idFactory, Scratchbook scratchbook) |
|
62 | 60 |
{ |
63 | 61 |
final OoaPrologType ptype = new OoaPrologType(idFactory, scratchbook); |
64 | 62 |
final OoasCodeEmitter m_emitter = new OoasCodeEmitter(); |
... | ... | |
176 | 174 |
m_emitter.Append("["); |
177 | 175 |
first = true; |
178 | 176 |
|
179 |
for (final UlyssesType type: tupleType.innerTypes())
|
|
177 |
for (final Type type: tupleType.innerTypes()) |
|
180 | 178 |
{ |
181 | 179 |
final OoaPrologType iType = new OoaPrologType(idFactory, scratchbook); |
182 | 180 |
type.Accept(iType); |
... | ... | |
191 | 189 |
m_emitter.AppendLine("])."); |
192 | 190 |
break; |
193 | 191 |
|
194 |
case QrType: |
|
195 |
aType.Accept(ptype); |
|
196 |
final QrType qrtype = (QrType)aType; |
|
197 |
|
|
198 |
final StringBuilder landmarks = new StringBuilder(); |
|
199 |
int cntr = 0; |
|
200 |
for (final LandmarkIdentifier s: qrtype.landmarks()) |
|
201 |
{ |
|
202 |
if (cntr != 0) |
|
203 |
landmarks.append(", "); |
|
204 |
else |
|
205 |
cntr++; |
|
206 |
|
|
207 |
final OoaPrologIdentifier identifierVisitor = idFactory.create(); |
|
208 |
s.Accept(identifierVisitor); |
|
209 |
landmarks.append(identifierVisitor.toString()); |
|
210 |
} |
|
211 |
m_emitter.AppendLine(String.format("qspace( %s, [%s] ).", ptype.toString(), landmarks.toString())); |
|
212 |
break; |
|
213 | 192 |
default: |
214 | 193 |
throw new NotImplementedException(); |
215 | 194 |
} |
... | ... | |
220 | 199 |
private final OoasCodeEmitter m_emitter = new OoasCodeEmitter(); |
221 | 200 |
private final OoaPrologIdentifier.Factory m_idFactory; |
222 | 201 |
|
223 |
public /*override*/ @Override
|
|
224 |
void visit(CharType charType) |
|
202 |
@Override |
|
203 |
public void visit(CharType charType)
|
|
225 | 204 |
{ |
226 | 205 |
m_emitter.Append("char"); |
227 | 206 |
} |
228 | 207 |
|
229 |
public /*override*/ @Override
|
|
230 |
void visit(IntType intType) |
|
208 |
@Override |
|
209 |
public void visit(IntType intType)
|
|
231 | 210 |
{ |
232 | 211 |
final OoaPrologIdentifier id = m_idFactory.create(); |
233 | 212 |
intType.identifier().Accept(id); |
... | ... | |
235 | 214 |
m_emitter.Append(id.toString()); |
236 | 215 |
} |
237 | 216 |
|
238 |
public /*override*/ @Override
|
|
239 |
void visit(BoolType boolType) |
|
217 |
@Override |
|
218 |
public void visit(BoolType boolType)
|
|
240 | 219 |
{ |
241 | 220 |
m_emitter.Append("bool"); |
242 | 221 |
} |
243 | 222 |
|
244 |
public /*override*/ @Override
|
|
245 |
void visit(FloatType floatType) |
|
223 |
@Override |
|
224 |
public void visit(FloatType floatType)
|
|
246 | 225 |
{ |
247 | 226 |
throw new NotImplementedException(); |
248 | 227 |
} |
249 | 228 |
|
250 |
public /*override*/ @Override
|
|
251 |
void visit(EnumType enumType) |
|
229 |
@Override |
|
230 |
public void visit(EnumType enumType)
|
|
252 | 231 |
{ |
253 | 232 |
final OoaPrologIdentifier id = m_idFactory.create(); |
254 | 233 |
enumType.identifier().Accept(id); |
... | ... | |
256 | 235 |
m_emitter.Append(id.toString()); |
257 | 236 |
} |
258 | 237 |
|
259 |
public /*override*/ @Override
|
|
260 |
void visit(ListType listType) |
|
238 |
@Override |
|
239 |
public void visit(ListType listType)
|
|
261 | 240 |
{ |
262 | 241 |
final OoaPrologIdentifier id = m_idFactory.create(); |
263 | 242 |
listType.identifier().Accept(id); |
... | ... | |
266 | 245 |
|
267 | 246 |
} |
268 | 247 |
|
269 |
public /*override*/ @Override
|
|
270 |
void visit(MapType mapType) |
|
248 |
@Override |
|
249 |
public void visit(MapType mapType)
|
|
271 | 250 |
{ |
272 | 251 |
throw new NotImplementedException(); |
273 | 252 |
} |
274 | 253 |
|
275 |
public /*override*/ @Override |
|
276 |
void visit(QrType qrType) |
|
277 |
{ |
|
278 |
final OoaPrologIdentifier id = m_idFactory.create(); |
|
279 |
qrType.identifier().Accept(id); |
|
280 |
m_emitter.Append(id.toString()); |
|
281 |
// m_emitter.Append(qrType.identifier.tokenText.ToLower()); |
|
282 |
} |
|
283 | 254 |
|
284 |
public /*override*/ @Override
|
|
285 |
void visit(TupleType tupleType) |
|
255 |
@Override |
|
256 |
public void visit(TupleType tupleType)
|
|
286 | 257 |
{ |
287 | 258 |
final OoaPrologIdentifier id = m_idFactory.create(); |
288 | 259 |
tupleType.identifier().Accept(id); |
... | ... | |
290 | 261 |
m_emitter.Append(id.toString()); |
291 | 262 |
} |
292 | 263 |
|
293 |
public /*override*/ @Override
|
|
294 |
void visit(FunctionType functionType) |
|
264 |
@Override |
|
265 |
public void visit(FunctionType functionType)
|
|
295 | 266 |
{ |
296 | 267 |
throw new NotImplementedException(); |
297 | 268 |
} |
298 | 269 |
|
299 |
public /*override*/ @Override
|
|
300 |
void visit(OoActionSystemType ooActionSystemType) |
|
270 |
@Override |
|
271 |
public void visit(OoActionSystemType ooActionSystemType)
|
|
301 | 272 |
{ |
302 | 273 |
final OoaPrologIdentifier id = m_idFactory.create(); |
303 | 274 |
ooActionSystemType.identifier().Accept(id); |
304 | 275 |
m_emitter.Append(id.toString()); |
305 | 276 |
} |
306 | 277 |
|
307 |
public /*override*/ @Override
|
|
308 |
void visit(OpaqueType opaqueType) |
|
278 |
@Override |
|
279 |
public void visit(OpaqueType opaqueType)
|
|
309 | 280 |
{ |
310 | 281 |
throw new NotImplementedException(); |
311 | 282 |
} |
312 | 283 |
|
313 | 284 |
|
314 | 285 |
@Override |
315 |
public /*override*/ String toString()
|
|
286 |
public String toString() |
|
316 | 287 |
{ |
317 | 288 |
return m_emitter.toString(); |
318 | 289 |
} |
Also available in: Unified diff
remove support for Qualitative Action Systems, rename UlyssesType to Type