www

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

main.scrbl (1153B)


      1 #lang scribble/manual
      2 
      3 @(require "private/doc-util.rkt")
      4 
      5 @title{Generic Syntax Expanders}
      6 @defmodule[generic-syntax-expanders]
      7 @author[@author+email["Jack Firth" "jackhfirth@gmail.com"]]
      8 
      9 This library provides forms to define @italic{generic syntax
     10 expanders}. These are essentially macros that have no meaning
     11 on their own, but other macros can be told to expand all
     12 generic syntax expanders of some type in some portion of
     13 their body before themselves expanding. This is similar to
     14 how Racket's built in @racket[match] form has @italic{match
     15 expanders}, which allows the grammar of the @racket[match]
     16 form to be extended with custom match expanders using
     17 @racket[define-match-expander]. This library generalizes
     18 the concept, making complex macros more composable and
     19 extensible.
     20 
     21 @source-code{https://github.com/jackfirth/generic-syntax-expanders}
     22 
     23 @include-section["private/expanders.scrbl"]
     24 @include-section["private/expander-types.scrbl"]
     25 @include-section["private/define-expanders.scrbl"]
     26 @include-section["private/scoped-transformers.scrbl"]
     27 @include-section["private/define-scoped-transformers.scrbl"]
     28 @include-section["private/reqprov.scrbl"]