2
; Copyright (C) 2014 Kookamara LLC
7
; 11410 Windermere Meadows
8
; Austin, TX 78759, USA
9
; http://www.kookamara.com/
11
; License: (An MIT/X11-style license)
13
; Permission is hereby granted, free of charge, to any person obtaining a
14
; copy of this software and associated documentation files (the "Software"),
15
; to deal in the Software without restriction, including without limitation
16
; the rights to use, copy, modify, merge, publish, distribute, sublicense,
17
; and/or sell copies of the Software, and to permit persons to whom the
18
; Software is furnished to do so, subject to the following conditions:
20
; The above copyright notice and this permission notice shall be included in
21
; all copies or substantial portions of the Software.
23
; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
24
; IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
25
; FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
26
; AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
27
; LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
28
; FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
29
; DEALINGS IN THE SOFTWARE.
31
; Original author: Jared Davis <jared@kookamara.com>
33
(in-package "SIDEKICK")
38
(define disassemble-to-string ((fn symbolp) state)
39
(declare (ignorable fn))
40
(b* ((- (er hard? 'disassemble-to-string "Raw Lisp definition not installed?"))
41
((mv err val state) (read-acl2-oracle state))
47
; (depends-on "disassemble-raw.lsp")
48
(include-raw "disassemble-raw.lsp")
50
(define sk-get-disassembly ((name stringp) state)
51
:returns (mv json-props state)
53
(b* (((mv errmsg objs state) (acl2::read-string name))
55
(mv (sk-json-error "Error in disassemble: parsing failed: ~a: ~a~%" name errmsg)
57
((unless (and (equal (len objs) 1)
58
(symbolp (car objs))))
59
(mv (sk-json-error "Error in disassemble: not a symbol: ~a~%" name)
61
((mv disassembly state) (disassemble-to-string (car objs) state)))
62
(mv (bridge::json-encode (list (cons :error nil)
63
(cons :val disassembly)))