Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

Brainfuck DSL for Scheme

Name: Anonymous 2013-02-11 3:06

To unshit the board a bit, here is a macro.

(define-syntax %%bf
  (syntax-rules ( > < + - |.| |,| >>>>> >>>> >>> >> <<<<< <<<< <<< << +++++ ++++ +++ ++ ----- ---- --- -- )
    ((%%bf ptr arr (gen ...) >>>>> bfcode ...) (%%bf ptr arr (gen ...) > > > > > bfcode ...))
    ((%%bf ptr arr (gen ...) >>>> bfcode ...) (%%bf ptr arr (gen ...) > > > > bfcode ...))
    ((%%bf ptr arr (gen ...) >>> bfcode ...) (%%bf ptr arr (gen ...) > > > bfcode ...))
    ((%%bf ptr arr (gen ...) >> bfcode ...) (%%bf ptr arr (gen ...) > > bfcode ...))
   
    ((%%bf ptr arr (gen ...) <<<<< bfcode ...) (%%bf ptr arr (gen ...) < < < < < bfcode ...))
    ((%%bf ptr arr (gen ...) <<<< bfcode ...) (%%bf ptr arr (gen ...) < < < < bfcode ...))
    ((%%bf ptr arr (gen ...) <<< bfcode ...) (%%bf ptr arr (gen ...) < < < bfcode ...))
    ((%%bf ptr arr (gen ...) << bfcode ...) (%%bf ptr arr (gen ...) < < bfcode ...))
   
    ((%%bf ptr arr (gen ...) +++++ bfcode ...) (%%bf ptr arr (gen ...) + + + + + bfcode ...))
    ((%%bf ptr arr (gen ...) ++++ bfcode ...) (%%bf ptr arr (gen ...) + + + + bfcode ...))
    ((%%bf ptr arr (gen ...) +++ bfcode ...) (%%bf ptr arr (gen ...) + + + bfcode ...))
    ((%%bf ptr arr (gen ...) ++ bfcode ...) (%%bf ptr arr (gen ...) + + bfcode ...))
   
    ((%%bf ptr arr (gen ...) ----- bfcode ...) (%%bf ptr arr (gen ...) - - - - - bfcode ...))
    ((%%bf ptr arr (gen ...) ---- bfcode ...) (%%bf ptr arr (gen ...) - - - - bfcode ...))
    ((%%bf ptr arr (gen ...) --- bfcode ...) (%%bf ptr arr (gen ...) - - - bfcode ...))
    ((%%bf ptr arr (gen ...) -- bfcode ...) (%%bf ptr arr (gen ...) - - bfcode ...))
   
    ((%%bf ptr arr (gen ...) > bfcode ...)
     (%%bf ptr arr (gen ... (set! ptr (+ ptr 1)) (if (> ptr 255) (set! ptr 0) #f)) bfcode ...))
    ((%%bf ptr arr (gen ...) < bfcode ...)
     (%%bf ptr arr (gen ... (set! ptr (- ptr 1)) (if (< ptr 0) (set! ptr 255) #f)) bfcode ...))
    ((%%bf ptr arr (gen ...) + bfcode ...)
     (%%bf ptr arr (gen ... (vector-set! arr ptr (+ (vector-ref arr ptr) 1))) bfcode ...))
    ((%%bf ptr arr (gen ...) - bfcode ...)
     (%%bf ptr arr (gen ... (vector-set! arr ptr (- (vector-ref arr ptr) 1))) bfcode ...))
    ((%%bf ptr arr (gen ...) |.| bfcode ...)
     (%%bf ptr arr (gen ... (display (integer->char (vector-ref arr ptr)))) bfcode ...))
    ((%%bf ptr arr (gen ...) (inner ...) bfcode ...)
     (%%bf ptr arr (gen ... (let lp () (if (> (vector-ref arr ptr) 0) (begin (%%bf ptr arr (begin) inner ...) (lp)) #f))) bfcode ...))
    ((%%bf ptr arr (gen ...) comments bfcode ...)
     (%%bf ptr arr (gen ...) bfcode ...))
   
    ((%%bf ptr arr (gen ...))
     (gen ...))))

(define-syntax bf
  (syntax-rules ()
    ((bf bfcode ...)
     (let ((ptr 0)
           (arr (make-vector 10)))
       (%%bf ptr arr (begin) bfcode ...)
       arr))))

Name: Anonymous 2013-02-11 6:53

>>14
Not yourself? Do you enjoy wallowing in your own vomit? Spreading it around your folds? Masturbating as you rub the contents of your stomach over your nipples?

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List