branch: externals/beardbolt commit 1f50b7bb7f06e705fa32676b2d5accec9178f209 Author: Jay Kamat <jaygka...@gmail.com> Commit: Jay Kamat <jaygka...@gmail.com>
Add java framework --- rmsbolt.el | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/rmsbolt.el b/rmsbolt.el index 8cf4b02276..b6a2910019 100644 --- a/rmsbolt.el +++ b/rmsbolt.el @@ -364,6 +364,25 @@ Outputs assembly file if ASM." "-o" (rmsbolt-output-filename src-buffer)) " "))) cmd)) +(cl-defun rmsbolt--java-compile-cmd (&key src-buffer) + "Process a compile command for ocaml. + + Needed as ocaml cannot output asm to a non-hardcoded file" + (let* ((output-filename (rmsbolt-output-filename src-buffer)) + (class-filename (concat (file-name-sans-extension (buffer-file-name)) ".class")) + (cmd (buffer-local-value 'rmsbolt-command src-buffer)) + (cmd (mapconcat 'identity + (list cmd + "-g" + (buffer-file-name) + "&&" + "javap" + "-c" "-l" + class-filename + ">" + output-filename) + " "))) + cmd)) (defvar rmsbolt--hidden-func-c (rx bol (or (and "__" (0+ any)) @@ -458,6 +477,15 @@ Outputs assembly file if ASM." :starter-file-name "rmsbolt.hs" :compile-cmd-function #'rmsbolt--hs-compile-cmd :disass-hidden-funcs nil)) + (java-mode + . ,(make-rmsbolt-lang :mode 'java-mode + :compile-cmd "javac" + :supports-asm t + :supports-disass nil + :objdumper 'cat + :starter-file-name "rmsbolt.java" + :compile-cmd-function #'rmsbolt--java-compile-cmd + :disass-hidden-funcs nil)) )) ;;;; Macros