expr: 48.1%

#lang racket
(provide (struct-out jump-pos)
         jump-add!
         jump-pop!)
(require "log.rkt")

;;; Jump stack management
(struct jump-pos (tab pos) #:transparent)

(define (jump-add! tab pos)
  (log:info "jump add pos: ~a:~a" (send (send tab get-defs) get-filename) pos)
  (set! jump-stack (cons (jump-pos tab pos) jump-stack)))
(define (jump-pop!)
  (if (empty? jump-stack)
      #f
      (match-let ([(cons p rest) jump-stack])
        (set! jump-stack rest)
        p)))

(define jump-stack '())