GeneralConditionSwitch.xtend 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  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. class GeneralConditionSwitch extends SemanticAdaptationSwitch<ReturnInformation> {
  11. override ReturnInformation caseParamDeclarations(ParamDeclarations object) {
  12. for (SingleParamDeclaration declaration : object.declarations) {
  13. doSwitch(declaration);
  14. }
  15. return new ReturnInformation();
  16. }
  17. override ReturnInformation caseRealLiteral(RealLiteral object) {
  18. var retInfo = new ReturnInformation();
  19. retInfo.type = SVType.Real;
  20. retInfo.value = Conversions.convertTypeToObject(retInfo.type, object);
  21. retInfo.code = '''«object.value»''';
  22. return retInfo;
  23. }
  24. override ReturnInformation caseBoolLiteral(BoolLiteral object) {
  25. var retInfo = new ReturnInformation();
  26. retInfo.type = SVType.Boolean;
  27. retInfo.value = Conversions.convertTypeToObject(retInfo.type, object);
  28. retInfo.code = '''«object.value»''';
  29. return retInfo;
  30. }
  31. override ReturnInformation defaultCase(EObject object) {
  32. var retVal = new ReturnInformation();
  33. retVal.code = '''[«object.class»]''';
  34. System.out.println('''[«object.class»]''');
  35. return retVal;
  36. // return '''[«object.class»]''';
  37. }
  38. }