JavaTarget.cp 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. (* ============================================================ *)
  2. (* Target is the module which selects the target ClassMaker. *)
  3. (* Copyright (c) John Gough 1999, 2017. *)
  4. (* ============================================================ *)
  5. MODULE JavaTarget; (* JavaTargetForJVM.cp *)
  6. IMPORT
  7. RTS,
  8. GPCPcopyright,
  9. CompState,
  10. AsmUtil,
  11. JavaUtil,
  12. ClassUtil;
  13. (* ============================================================ *)
  14. PROCEDURE NewJavaEmitter*(IN fileName : ARRAY OF CHAR) : JavaUtil.JavaFile;
  15. BEGIN
  16. IF CompState.doAsm5 THEN
  17. IF CompState.verbose THEN CompState.Message("Using ASM emitter") END;
  18. RETURN AsmUtil.newAsmEmitter(fileName);
  19. ELSIF CompState.doDWC THEN
  20. IF CompState.verbose THEN CompState.Message("Using DWC emitter") END;
  21. RETURN ClassUtil.newClassFile(fileName);
  22. ELSE
  23. THROW( "no jvm emitter chosen" );
  24. END;
  25. END NewJavaEmitter;
  26. (* ============================================================ *)
  27. BEGIN
  28. IF RTS.defaultTarget # "jvm" THEN
  29. CompState.Abort("Wrong JavaTarget implementation: Use JavaTargetForCLR.cp");
  30. END;
  31. END JavaTarget.
  32. (* ============================================================ *)