diff --git a/afl/docs.scrbl b/afl/docs.scrbl new file mode 100644 index 0000000..59136ca --- /dev/null +++ b/afl/docs.scrbl @@ -0,0 +1,39 @@ +#lang scribble/manual + +@(require (for-label (except-in racket/base + read read-syntax) + (except-in afl/reader + read read-syntax))) + +@title{afl} + +@section{#lang afl} + +@defmodulelang[afl]{ +The @racketmodname[afl] language is a meta-language like @racketmodname[at-exp] +that adds @racketmodname[rackjure]-like anonymous function literals to a language. +@margin-note{see @secref["func-lit" #:doc '(lib "rackjure/rackjure.scrbl")]} + +For example, @racket[@#,hash-lang[] @#,racketmodname[afl] @#,racketmodname[racket/base]] +adds anonymous function literals to @racketmodname[racket/base], so that +@racketmod[afl @#,racketmodname[racket/base] +(map @#,elem{@tt{#λ}@racket[(+ % 1)]} '(1 2 3))] +produces @racket['(2 3 4)] +} + +@section{afl/reader} + +@defmodule[afl/reader] + +@deftogether[(@defproc[(afl-read [in input-port? (current-input-port)]) any]{} + @defproc[(afl-read-syntax [source-name any/c (object-name in)] [in input-port? (current-input-port)]) (or/c syntax? eof-object?)]{})]{ +These procedures implement the @racketmodname[afl] reader. They do so by +constructing a readtable based on the current one, and using that +for reading. + +@racketmodname[afl/reader] also exports these functions under the names @racket[read] and @racket[read-syntax]. +} + +@defproc[(make-afl-readtable [orig-readtable readtable? (current-readtable)]) readtable?]{ +makes an @racketmodname[afl] readtable based on @racket[orig-readtable]. +} diff --git a/afl/info.rkt b/afl/info.rkt new file mode 100644 index 0000000..de335f9 --- /dev/null +++ b/afl/info.rkt @@ -0,0 +1,3 @@ +#lang info + +(define scribblings '(["docs.scrbl" ()])) \ No newline at end of file diff --git a/info.rkt b/info.rkt index 13f9b34..f20bdef 100644 --- a/info.rkt +++ b/info.rkt @@ -2,4 +2,5 @@ (define collection 'multi) -(define deps '("at-exp-lib" "rackjure")) \ No newline at end of file +(define deps '("at-exp-lib" "rackjure")) +