GeneralConditionSwitch.xtend 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. package be.uantwerpen.ansymo.semanticadaptation.cg.cpp.generation
  2. import be.uantwerpen.ansymo.semanticadaptation.cg.cpp.data.ReturnInformation
  3. import be.uantwerpen.ansymo.semanticadaptation.cg.cpp.data.SVType
  4. import be.uantwerpen.ansymo.semanticadaptation.semanticAdaptation.BoolLiteral
  5. import be.uantwerpen.ansymo.semanticadaptation.semanticAdaptation.ParamDeclarations
  6. import be.uantwerpen.ansymo.semanticadaptation.semanticAdaptation.RealLiteral
  7. import be.uantwerpen.ansymo.semanticadaptation.semanticAdaptation.SingleParamDeclaration
  8. import be.uantwerpen.ansymo.semanticadaptation.semanticAdaptation.util.SemanticAdaptationSwitch
  9. import org.eclipse.emf.ecore.EObject
  10. import be.uantwerpen.ansymo.semanticadaptation.semanticAdaptation.IntLiteral
  11. class GeneralConditionSwitch extends SemanticAdaptationSwitch<ReturnInformation> {
  12. override ReturnInformation caseParamDeclarations(ParamDeclarations object) {
  13. for (SingleParamDeclaration declaration : object.declarations) {
  14. doSwitch(declaration);
  15. }
  16. return new ReturnInformation();
  17. }
  18. override ReturnInformation caseIntLiteral(IntLiteral object){
  19. var retInfo = new ReturnInformation();
  20. retInfo.type = SVType.Integer;
  21. retInfo.value = Conversions.convertTypeToObject(retInfo.type, object);
  22. retInfo.code = '''«object.value»''';
  23. return retInfo;
  24. }
  25. override ReturnInformation caseRealLiteral(RealLiteral object) {
  26. var retInfo = new ReturnInformation();
  27. retInfo.type = SVType.Real;
  28. retInfo.value = Conversions.convertTypeToObject(retInfo.type, object);
  29. retInfo.code = '''«object.value»''';
  30. return retInfo;
  31. }
  32. override ReturnInformation caseBoolLiteral(BoolLiteral object) {
  33. var retInfo = new ReturnInformation();
  34. retInfo.type = SVType.Boolean;
  35. retInfo.value = Conversions.convertTypeToObject(retInfo.type, object);
  36. retInfo.code = '''«object.value»''';
  37. return retInfo;
  38. }
  39. override ReturnInformation defaultCase(EObject object) {
  40. var retVal = new ReturnInformation();
  41. retVal.code = '''[«object.class»]''';
  42. System.out.println('''[«object.class»]''');
  43. return retVal;
  44. // return '''[«object.class»]''';
  45. }
  46. }