Skip to content

Instantly share code, notes, and snippets.

@okuoku
Created June 11, 2017 08:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save okuoku/f796f9133fd9c571a4eb6c56bd0fc7a9 to your computer and use it in GitHub Desktop.
Save okuoku/f796f9133fd9c571a4eb6c56bd0fc7a9 to your computer and use it in GitHub Desktop.
Unsuccessfull make-coreops-fake on Gauche
(define (make-coreops-fake)
(define-syntax define-query0
(syntax-rules ()
((_ q (sym0 sym1) ...)
(define (q symbol)
(case symbol
((sym0) sym1)
...
(else
(error "Unknown symbol" symbol)))))))
(define-syntax define-query1
(syntax-rules ()
((_ q (cur ...) (s1 s2 s3 ...))
(define-query1 q (cur ... (s1 s2)) (s3 ...)))
((_ q (cur ...) ())
(define-query0 q cur ...))))
(define-syntax define-query
(syntax-rules ()
((_ q . rest)
(define-query1 q () rest))))
(define-query query
null fake-null
null? fake-null?
eof-object fake-eof-object
eof-object? fake-eof-object?
true fake-true
false fake-false
boolean? fake-boolean?
boolean=?/2 fake-boolean=?/2
true? fake-true?
false? fake-false?
char? fake-char?
char=?/2 fake-char=?/2
integer->char fake-integer->char
char->integer fake-char->integer
string? fake-string?
string-length fake-string-length
string-ref fake-string-ref
string-set! fake-string-set!
make-string0 fake-make-string0
bytevector? fake-bytevector?
bytevector-length fake-bytevector-length
bytevector-u8-ref fake-bytevector-u8-ref
bytevector-u8-set! fake-bytevector-u8-set!
make-bytevector0 fake-make-bytevector0
symbol? fake-symbol?
symbol=?/2 fake-symbol=?/2
string->symbol fake-string->symbol
symbol->string fake-symbol->string
pair? fake-pair?
cons fake-cons
car fake-car
cdr fake-cdr
set-car! fake-set-car!
set-cdr! fake-set-cdr!
vector? fake-vector?
vector-length fake-vector-length
vector-ref fake-vector-ref
vector-set! fake-vector-set!
make-vector0 fake-make-vector0
undefined fake-undefined
unspecified fake-unspecified
simple-struct? fake-simple-struct?
make-simple-struct fake-make-simple-struct
simple-struct-ref fake-simple-struct-ref
simple-struct-set! fake-simple-struct-set!)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment