GeneralConditionSwitch.xtend 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  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 caseIntLiteral(IntLiteral object){
  13. var retInfo = new ReturnInformation();
  14. retInfo.type = SVType.Integer;
  15. retInfo.value = Conversions.convertTypeToObject(retInfo.type, object);
  16. retInfo.code = '''«object.value»''';
  17. return retInfo;
  18. }
  19. override ReturnInformation caseRealLiteral(RealLiteral object) {
  20. var retInfo = new ReturnInformation();
  21. retInfo.type = SVType.Real;
  22. retInfo.value = Conversions.convertTypeToObject(retInfo.type, object);
  23. retInfo.code = '''«object.value»''';
  24. return retInfo;
  25. }
  26. override ReturnInformation caseBoolLiteral(BoolLiteral object) {
  27. var retInfo = new ReturnInformation();
  28. retInfo.type = SVType.Boolean;
  29. retInfo.value = Conversions.convertTypeToObject(retInfo.type, object);
  30. retInfo.code = '''«object.value»''';
  31. return retInfo;
  32. }
  33. override ReturnInformation defaultCase(EObject object) {
  34. var retVal = new ReturnInformation();
  35. retVal.code = '''[«object.class»]''';
  36. System.out.println('''[«object.class»]''');
  37. return retVal;
  38. // return '''[«object.class»]''';
  39. }
  40. }