toadstool

API Reference

toadstool

Pattern matcher

TOADSTOOL-UTILS

  • Macro WITH-GENSYMS ((&rest syms) &body body)
  • Macro REC (name (&rest vars) &body body)
  • Function MAPPEND (fn list &rest more-lists)
  • Function FMT (control &rest stuff)
  • Function MKLIST (x)
  • Function PARTITION (fn list &key (key #'identity))
  • Function REMOVE-FROM-PLIST (plist to-remove)
  • Macro THUNK (form)
  • Macro DEFCOMPONENT (name supers &body options)
  • Function GENSYM? (x)
  • Function EXTRACT-PREFIX (sym suffix)
  • Macro IF-MATCHES (test k)

TOADSTOOL-SYSTEM

  • Variable *USED-COMPONENTS*
  • Variable *TOPLEVEL-SYMS*
  • Variable *USING-K-ONCE?*
  • Class COMPONENT
    No slots.
  • Class FORM  (COMPONENT)
    Superclass of all components being a part of a pattern.
    FORM   Reader: FORM-OF
    INNER-FORMS   Reader: INNER-FORMS-OF
    OUTER-FORM   Reader: OUTER-FORM-OF
  • Class OPERATOR  (FORM)
    No slots.
  • Class COMPONENT-MIXIN
    No slots.
  • Class MACRO-MIXIN
    EXPANSION
  • Class SEQUENCE-MIXIN
    No slots.
  • Macro K (&body body)
  • Macro K-ONCE (k &body body)
  • Macro WITH-END-NESTING (((if-expr else-expr k) &body nesting-body) &body body)
  • Class NESTING  (COMPONENT)
    IF-EXPR   Reader: IF-EXPR-OF
    ELSE-EXPR   Reader: ELSE-EXPR-OF
  • Generic-Function EXPAND-NESTING (obj k)
  • Macro DEFINIT (class dlist &body body)
  • Generic-Function NAME-OF (component)
  • Method NAME-OF ((c operator))
  • Method NAME-OF ((c operator))
  • Method NAME-OF ((c operator))
  • Generic-Function MATCHES? (component datum)
    Decide whether component can operate on given value
  • Method MATCHES? ((o operator) datum)
  • Method MATCHES? ((o operator) datum)
  • Method MATCHES? ((o operator) datum)
  • Method MATCHES? ((c component) datum)
  • Method MATCHES? ((c component) datum)
  • Method MATCHES? ((c component) datum)
  • Generic-Function EXPAND-FORM (form expression k)
    Generate an expansion of a pattern element
  • Method EXPAND-FORM ((f form) expression k)
  • Method EXPAND-FORM ((f form) expression k)
  • Method EXPAND-FORM ((f form) expression k)
  • Function MKFORM (datum)
    Instantiate a form basing on DATUM with component subtype TYPE.
  • Function FIND-FORM-EXPR (form)
  • Function FIND-SEQUENCE-FORM (f)
  • Function TOPLEVEL-EXPANSION (block-name patterns exprs guard if-expr else-expr)
  • Macro EQUALITY (x y)
  • Function EFFECTIVE-INNER-FORMS-OF (c)
  • Method EXPAND-FORM ((c macro-mixin) expr k)
  • Macro DEFEXPAND (name dlist &body body)
  • Function MAPC/FORMS (fn)
  • Class DESTRUCTURING-MIXIN  (SEQUENCE-MIXIN)
    No slots.
  • Method SEQUENCE-INITIAL-STATE ((f destructuring-mixin) expr)
  • Method SEQUENCE-CDR-STATE ((f destructuring-mixin) state)
  • Method SEQUENCE-ENDP ((f destructuring-mixin) state)
  • Method SEQUENCE-ITEM ((f destructuring-mixin) state)
  • Method SEQUENCE-ITEM ((f destructuring-mixin) state)
  • Method SEQUENCE-SET-STATE ((f destructuring-mixin) state)
  • Method SEQUENCE-GET-STATE ((f destructuring-mixin))
  • Variable *DEFAULT-COMPONENTS*
    '(toadstool-impl:satisfies-form toadstool-impl:typep-form
      toadstool-impl:variable-form toadstool-impl:not-form
      toadstool-impl:quote-form toadstool-impl:list*-form
      toadstool-impl:literal-form toadstool-impl:+-form toadstool-impl:t-form
      toadstool-impl:and-form toadstool-impl:list-form toadstool-impl:*-form
      toadstool-impl:cons-form toadstool-impl:or-form
      toadstool-impl:variable-nesting toadstool-impl:vector-form
      toadstool-impl:vector-rest-form toadstool-impl:push-form
      toadstool-impl:push-nesting toadstool-impl:with-accessors-form
      toadstool-impl:>-form toadstool-impl:>=-form toadstool-impl:<-form
      toadstool-impl:<=-form toadstool-impl:class-form toadstool-impl:eql-form
      toadstool-impl:equal-form toadstool-impl:assoc-form toadstool-impl:char-form
      toadstool-impl:string-form)
  • Method MATCHES? ((c literal-form) datum)
  • Method EXPAND-FORM ((c literal-form) expr k)
  • Method EXPAND-FORM ((c typep-form) expr k)
  • Method EXPAND-FORM ((c satisfies-form) expr k)
  • Method EXPAND-FORM ((c not-form) expr k)
  • Method EXPAND-FORM ((c and-form) expr k)
  • Method EXPAND-FORM ((c or-form) expr k)
  • Method EXPAND-FORM ((c quote-form) expr k)
  • Method EXPAND-FORM ((c cons-form) expr k)
  • Method SEQUENCE-CDR-STATE ((f cons-form) state)
  • Method SEQUENCE-ENDP ((f cons-form) state)
  • Method SEQUENCE-ITEM ((f cons-form) state)
  • Method SEQUENCE-SET-STATE ((f cons-form) state)
  • Method SEQUENCE-GET-STATE ((f cons-form))
  • Method EXPAND-FORM ((c *-form) expr2 k)
  • Method MATCHES? ((c t-form) datum)
  • Method EXPAND-FORM ((c t-form) expr k)
  • Method EXPAND-FORM ((c +-form) expr2 k)
  • Method EXPAND-FORM ((c vector-rest-form) expr k)
  • Method EXPAND-FORM ((c vector-form) expr k)
  • Method SEQUENCE-INITIAL-STATE ((f vector-rest-form) expr)
  • Method SEQUENCE-CDR-STATE ((f vector-rest-form) state)
  • Method SEQUENCE-ENDP ((f vector-rest-form) state)
  • Method SEQUENCE-ITEM ((f vector-rest-form) state)
  • Method SEQUENCE-SET-STATE ((f vector-rest-form) state)
  • Method SEQUENCE-GET-STATE ((f vector-rest-form))
  • Method EXPAND-FORM ((c with-accessors-form) expr k)
  • Method EXPAND-FORM ((c comparison-operator) expr k)
  • Method EXPAND-FORM ((c eql-form) expr k)
  • Method EXPAND-FORM ((c assoc-form) expr k)
  • Class DEBUG-MIXIN  (COMPONENT-MIXIN)
    No slots.
  • Method EXPAND-FORM ((c debug-mixin) expr k)
  • Method EXPAND-FORM ((c char-form) expr2 k)
  • Method MATCHES? ((c variable-form) datum)
  • Method EXPAND-FORM ((c variable-form) expr k)
  • Method EXPAND-NESTING ((c variable-nesting) k)
  • Method EXPAND-NESTING ((c push-nesting) k)
  • Method EXPAND-FORM ((c push-form) expr k)
  • Method EXPAND-FORM ((c macrolet-form) expr k)

Also exports

  • TOADSTOOL-UTILS:DEFCOMPONENT
  • TOADSTOOL-UTILS:IF-MATCHES

TOADSTOOL-IMPL

  • Class LITERAL-FORM  (FORM)
    DATUM   Reader: DATUM-OF
  • Class TYPEP-FORM  (OPERATOR)
    TYPE   Reader: TYPE-OF*
  • Class TYPEP-FORM  (OPERATOR)
    TYPE   Reader: TYPE-OF*
  • Class SATISFIES-FORM  (OPERATOR)
    FUNCTION-EXPR   Reader: FUNCTION-EXPR-OF
  • Class NOT-FORM  (OPERATOR)
    DATUM   Reader: DATUM-OF
  • Class AND-FORM  (OPERATOR)
    FORMS   Reader: FORMS-OF
  • Class OR-FORM  (OPERATOR)
    FORMS   Reader: FORMS-OF
  • Class QUOTE-FORM  (OPERATOR)
    DATUM   Reader: DATUM-OF
  • Class CONS-FORM  (OPERATOR, SEQUENCE-MIXIN)
    CAR   Reader: CAR-OF
    CDR   Reader: CDR-OF
    CDR-STATE   Reader: CDR-STATE-OF
  • Class LIST*-FORM  (OPERATOR, MACRO-MIXIN)
    No slots.
  • Class LIST-FORM  (OPERATOR, MACRO-MIXIN)
    No slots.
  • Class *-FORM  (OPERATOR, DESTRUCTURING-MIXIN)
    FORMS   Reader: FORMS-OF
    GREEDY?   Reader: GREEDY-OF
  • Class T-FORM  (FORM)
    No slots.
  • Class +-FORM  (OPERATOR, DESTRUCTURING-MIXIN)
    FORMS   Reader: FORMS-OF
    GREEDY?   Reader: GREEDY-OF
  • Class VECTOR-REST-FORM  (OPERATOR, SEQUENCE-MIXIN)
    ELT   Reader: ELT-OF
    INDEX-SYM   Reader: INDEX-SYM-OF
    LEN-NAME   Reader: LEN-NAME-OF
    VEC-NAME   Reader: VEC-NAME-OF
    REST   Reader: REST-OF
    INDEX-SYM2   Reader: INDEX-SYM2-OF
    DESTRUCTURING   Reader: DESTRUCTURING-OF
  • Class VECTOR-FORM  (OPERATOR)
    ELT   Reader: ELT-OF
    INDEX-SYM   Reader: INDEX-SYM-OF
    LEN-NAME   Reader: LEN-NAME-OF
    VEC-NAME   Reader: VEC-NAME-OF
    DESTRUCTURING   Reader: DESTRUCTURING-OF
    ELT-COUNT   Reader: ELT-COUNT-OF
  • Class WITH-ACCESSORS-FORM  (OPERATOR)
    FUNCTIONS   Reader: FUNCTIONS-OF
    FORMS   Reader: FORMS-OF
  • Class >-FORM  (COMPARISON-OPERATOR)
    No slots.
  • Class >=-FORM  (COMPARISON-OPERATOR)
    No slots.
  • Class <-FORM  (COMPARISON-OPERATOR)
    No slots.
  • Class <=-FORM  (COMPARISON-OPERATOR)
    No slots.
  • Class CLASS-FORM  (OPERATOR, MACRO-MIXIN)
    No slots.
  • Class EQL-FORM  (OPERATOR)
    LISP-EXPR   Reader: LISP-EXPR-OF
  • Class EQUAL-FORM  (EQL-FORM)
    No slots.
  • Class ASSOC-FORM  (OPERATOR)
    CASES   Reader: CASES-OF
    FORMS   Reader: FORMS-OF
  • Method ASSOC-VALUE ((c assoc-form))
  • Method ASSOC-TEST ((c assoc-form))
  • Class CHAR-FORM  (OPERATOR, DESTRUCTURING-MIXIN)
    FORMS   Reader: FORMS-OF
  • Class STRING-FORM  (OPERATOR, MACRO-MIXIN)
    No slots.
  • Class VARIABLE-FORM  (FORM)
    NAME   Reader: NAME-OF
    USING-K-ONCE   Accessor: USING-K-ONCE-OF
    PREVIOUS   Accessor: PREVIOUS-OF
  • Class VARIABLE-NESTING  (NESTING)
    No slots.
  • Class PUSH-FORM  (OPERATOR)
    VAR   Reader: VAR-OF
  • Class PUSH-NESTING  (NESTING)
    No slots.

Also exports

  • TOADSTOOL-SYSTEM:*DEFAULT-COMPONENTS*

TOADSTOOL

  • Condition PARTIAL-PATTERN-ERROR  (ERROR)
  • Macro TOAD-CASE (exprs &body cases)
  • Macro TOAD-ECASE (exprs &body cases)
  • Macro TOAD-CCASE (exprs &body cases)
  • Macro TOAD-MACROLET (&environment env bindings &body body)
  • Macro TOAD-CASE1 (expr &body cases)
  • Macro TOAD-ECASE1 (expr &body cases)
  • Macro TOAD-CCASE1 (expr &body cases)