File: external-interface-example.rkt

package info (click to toggle)
racket 7.2%2Bdfsg1-2
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 125,432 kB
  • sloc: ansic: 258,980; pascal: 59,975; sh: 33,650; asm: 13,558; lisp: 7,124; makefile: 3,329; cpp: 2,889; exp: 499; python: 274; xml: 11
file content (31 lines) | stat: -rw-r--r-- 904 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#lang racket

(require stepper/external-interface
         stepper/private/marks
         racket/runtime-path)

;; this handler just prints out some information about 
;; the topmost mark in the list.
(define (handler mark-list kind value-list)
  (printf "handling a break\n")
  (printf "break kind: ~s\n" kind)
  (when mark-list
    (printf "~a" (display-mark (first mark-list)))
    (define source (mark-source (first mark-list)))
    (printf "top-mark line: ~s\n" (syntax-line source))
    (printf "top-mark column: ~s\n" (syntax-column source)))
  (when value-list
    (printf "values in value-list:\n")
    (for ([v value-list])
      (printf "~s\n" v)))
  (newline))

;; the string interface:
(step-program-string "globby"
                     "#lang racket 
(+ 3 4)"
                     handler)

;; the file interface:
(define-runtime-path bobby "./bobby.rkt")
(step-program-file bobby handler)