';;; installed-scm-file' Comment.Single '\n\n' Text ';;;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.' Comment.Single '\n' Text ';;;;' Comment.Single '\n' Text ';;;; This program is free software; you can redistribute it and/or modify' Comment.Single '\n' Text ';;;; it under the terms of the GNU General Public License as published by' Comment.Single '\n' Text ';;;; the Free Software Foundation; either version 2, or (at your option)' Comment.Single '\n' Text ';;;; any later version.' Comment.Single '\n' Text ';;;;' Comment.Single '\n' Text ';;;; This program is distributed in the hope that it will be useful,' Comment.Single '\n' Text ';;;; but WITHOUT ANY WARRANTY; without even the implied warranty of' Comment.Single '\n' Text ';;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the' Comment.Single '\n' Text ';;;; GNU General Public License for more details.' Comment.Single '\n' Text ';;;;' Comment.Single '\n' Text ';;;; You should have received a copy of the GNU General Public License' Comment.Single '\n' Text ';;;; along with this software; see the file COPYING. If not, write to' Comment.Single '\n' Text ';;;; the Free Software Foundation, Inc., 59 Temple Place, Suite 330,' Comment.Single '\n' Text ';;;; Boston, MA 02111-1307 USA' Comment.Single '\n' Text ';;;;' Comment.Single '\n' Text ';;;; As a special exception, the Free Software Foundation gives permission' Comment.Single '\n' Text ';;;; for additional uses of the text contained in its release of GUILE.' Comment.Single '\n' Text ';;;;' Comment.Single '\n' Text ';;;; The exception is that, if you link the GUILE library with other files' Comment.Single '\n' Text ';;;; to produce an executable, this does not by itself cause the' Comment.Single '\n' Text ';;;; resulting executable to be covered by the GNU General Public License.' Comment.Single '\n' Text ';;;; Your use of that executable is in no way restricted on account of' Comment.Single '\n' Text ';;;; linking the GUILE library code into it.' Comment.Single '\n' Text ';;;;' Comment.Single '\n' Text ';;;; This exception does not however invalidate any other reasons why' Comment.Single '\n' Text ';;;; the executable file might be covered by the GNU General Public License.' Comment.Single '\n' Text ';;;;' Comment.Single '\n' Text ';;;; This exception applies only to the code released by the' Comment.Single '\n' Text ';;;; Free Software Foundation under the name GUILE. If you copy' Comment.Single '\n' Text ';;;; code from other Free Software Foundation releases into a copy of' Comment.Single '\n' Text ';;;; GUILE, as the General Public License permits, the exception does' Comment.Single '\n' Text ';;;; not apply to the code that you add in this way. To avoid misleading' Comment.Single '\n' Text ';;;; anyone as to the status of such modified files, you must delete' Comment.Single '\n' Text ';;;; this exception notice from them.' Comment.Single '\n' Text ';;;;' Comment.Single '\n' Text ';;;; If you write modifications of your own for GUILE, it is your choice' Comment.Single '\n' Text ';;;; whether to permit this exception to apply to your modifications.' Comment.Single '\n' Text ';;;; If you do not wish that, delete this exception notice.' Comment.Single '\n' Text ';;;;' Comment.Single '\n\x0c\n\n' Text ';;; Commentary:' Comment.Single '\n\n' Text ';;; This file is the first thing loaded into Guile. It adds many mundane' Comment.Single '\n' Text ';;; definitions and a few that are interesting.' Comment.Single '\n' Text ';;;' Comment.Single '\n' Text ';;; The module system (hence the hierarchical namespace) are defined in this' Comment.Single '\n' Text ';;; file.' Comment.Single '\n' Text ';;;' Comment.Single '\n\n' Text ';;; Code:' Comment.Single '\n\n\x0c\n' Text ';;; {Deprecation}' Comment.Single '\n' Text ';;;' Comment.Single '\n\n' Text ";; We don't have macros here, but we do want to define" Comment.Single '\n' Text ";; `begin-deprecated' early." Comment.Single '\n\n' Text '(' Punctuation 'define ' Keyword 'begin-deprecated' Name.Variable '\n ' Text '(' Punctuation 'procedure->memoizing-macro' Name.Function '\n ' Text '(' Punctuation 'lambda ' Keyword '(' Punctuation 'exp ' Name.Builtin 'env' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'if ' Keyword '(' Punctuation 'include-deprecated-features' Name.Function ')' Punctuation '\n\t ' Text '`' Operator '(' Punctuation 'begin ' Keyword ',@' Operator '(' Punctuation 'cdr ' Name.Builtin 'exp' Name.Variable ')' Punctuation ')' Punctuation '\n\t ' Text '`' Operator '#f' Name.Constant ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n\x0c\n' Text ';;; {Features}' Comment.Single '\n' Text ';;' Comment.Single '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'provide' Name.Function ' ' Text 'sym' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'if ' Keyword '(' Punctuation 'not ' Name.Builtin '(' Punctuation 'memq ' Name.Builtin 'sym' Name.Variable ' ' Text '*features*' Name.Variable ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'set! ' Keyword '*features*' Name.Variable ' ' Text '(' Punctuation 'cons ' Name.Builtin 'sym' Name.Variable ' ' Text '*features*' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text ';;; Return #t iff FEATURE is available to this Guile interpreter.' Comment.Single '\n' Text ';;; In SLIB, provided? also checks to see if the module is available.' Comment.Single '\n' Text ";;; We should do that too, but don't." Comment.Single '\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'provided?' Name.Function ' ' Text 'feature' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'and ' Keyword '(' Punctuation 'memq ' Name.Builtin 'feature' Name.Variable ' ' Text '*features*' Name.Variable ')' Punctuation ' ' Text '#t' Name.Constant ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'begin-deprecated' Name.Function '\n ' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'feature?' Name.Function ' ' Text 'sym' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'issue-deprecation-warning' Name.Function '\n ' Text '"`feature?\' is deprecated. Use `provided?\' instead."' Literal.String ')' Punctuation '\n ' Text '(' Punctuation 'provided?' Name.Function ' ' Text 'sym' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text ';;; let format alias simple-format until the more complete version is loaded' Comment.Single '\n' Text '(' Punctuation 'define ' Keyword 'format' Name.Variable ' ' Text 'simple-format' Name.Variable ')' Punctuation '\n\n\x0c\n' Text ';;; {R4RS compliance}' Comment.Single '\n\n' Text '(' Punctuation 'primitive-load-path' Name.Function ' ' Text '"ice-9/r4rs.scm"' Literal.String ')' Punctuation '\n\n\x0c\n' Text ';;; {Simple Debugging Tools}' Comment.Single '\n' Text ';;' Comment.Single '\n\n\n' Text ';; peek takes any number of arguments, writes them to the' Comment.Single '\n' Text ';; current ouput port, and returns the last argument.' Comment.Single '\n' Text ';; It is handy to wrap around an expression to look at' Comment.Single '\n' Text ';; a value each time is evaluated, e.g.:' Comment.Single '\n' Text ';;' Comment.Single '\n' Text ';;\t(+ 10 (troublesome-fn))' Comment.Single '\n' Text ";;\t=> (+ 10 (pk 'troublesome-fn-returned (troublesome-fn)))" Comment.Single '\n' Text ';;' Comment.Single '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'peek' Name.Function ' ' Text '.' Operator ' ' Text 'stuff' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'newline' Name.Function ')' Punctuation '\n ' Text '(' Punctuation 'display ' Name.Builtin '";;; "' Literal.String ')' Punctuation '\n ' Text '(' Punctuation 'write ' Name.Builtin 'stuff' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'newline' Name.Function ')' Punctuation '\n ' Text '(' Punctuation 'car ' Name.Builtin '(' Punctuation 'last-pair' Name.Function ' ' Text 'stuff' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define ' Keyword 'pk' Name.Variable ' ' Text 'peek' Name.Variable ')' Punctuation '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'warn' Name.Function ' ' Text '.' Operator ' ' Text 'stuff' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'with-output-to-port' Name.Function ' ' Text '(' Punctuation 'current-error-port' Name.Function ')' Punctuation '\n ' Text '(' Punctuation 'lambda ' Keyword '(' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'newline' Name.Function ')' Punctuation '\n ' Text '(' Punctuation 'display ' Name.Builtin '";;; WARNING "' Literal.String ')' Punctuation '\n ' Text '(' Punctuation 'display ' Name.Builtin 'stuff' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'newline' Name.Function ')' Punctuation '\n ' Text '(' Punctuation 'car ' Name.Builtin '(' Punctuation 'last-pair' Name.Function ' ' Text 'stuff' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n\x0c\n' Text ';;; {Trivial Functions}' Comment.Single '\n' Text ';;;' Comment.Single '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'identity' Name.Function ' ' Text 'x' Name.Variable ')' Punctuation ' ' Text 'x' Name.Variable ')' Punctuation '\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation '1' Literal.Number.Integer '+' Name.Variable ' ' Text 'n' Name.Variable ')' Punctuation ' ' Text '(' Punctuation '+ ' Name.Builtin 'n' Name.Variable ' ' Text '1' Literal.Number.Integer ')' Punctuation ')' Punctuation '\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation '1' Literal.Number.Integer '-' Name.Variable ' ' Text 'n' Name.Variable ')' Punctuation ' ' Text '(' Punctuation '+ ' Name.Builtin 'n' Name.Variable ' ' Text '-1' Literal.Number.Integer ')' Punctuation ')' Punctuation '\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'and=>' Name.Function ' ' Text 'value' Name.Variable ' ' Text 'procedure' Name.Variable ')' Punctuation ' ' Text '(' Punctuation 'and ' Keyword 'value' Name.Variable ' ' Text '(' Punctuation 'procedure' Name.Function ' ' Text 'value' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'make-hash-table' Name.Function ' ' Text 'k' Name.Variable ')' Punctuation ' ' Text '(' Punctuation 'make-vector ' Name.Builtin 'k' Name.Variable ' ' Text "'" Operator '(' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'begin-deprecated' Name.Function '\n ' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'id' Name.Function ' ' Text 'x' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'issue-deprecation-warning' Name.Function ' ' Text '"`id\' is deprecated. Use `identity\' instead."' Literal.String ')' Punctuation '\n ' Text '(' Punctuation 'identity' Name.Function ' ' Text 'x' Name.Variable ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'define ' Keyword '(' Punctuation '-1' Literal.Number.Integer '+' Name.Variable ' ' Text 'n' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'issue-deprecation-warning' Name.Function ' ' Text '"`-1+\' is deprecated. Use `1-\' instead."' Literal.String ')' Punctuation '\n ' Text '(' Punctuation '1' Literal.Number.Integer '-' Name.Variable ' ' Text 'n' Name.Variable ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'return-it' Name.Function ' ' Text '.' Operator ' ' Text 'args' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'issue-deprecation-warning' Name.Function ' ' Text '"`return-it\' is deprecated. Use `noop\' instead."' Literal.String ')' Punctuation '\n ' Text '(' Punctuation 'apply ' Name.Builtin 'noop' Name.Variable ' ' Text 'args' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text ';;; apply-to-args is functionally redundant with apply and, worse,' Comment.Single '\n' Text ';;; is less general than apply since it only takes two arguments.' Comment.Single '\n' Text ';;;' Comment.Single '\n' Text ';;; On the other hand, apply-to-args is a syntacticly convenient way to' Comment.Single '\n' Text ';;; perform binding in many circumstances when the "let" family of' Comment.Single '\n' Text ";;; of forms don't cut it. E.g.:" Comment.Single '\n' Text ';;;' Comment.Single '\n' Text ';;;\t(apply-to-args (return-3d-mouse-coords)' Comment.Single '\n' Text ';;;\t (lambda (x y z)' Comment.Single '\n' Text ';;;\t\t...))' Comment.Single '\n' Text ';;;' Comment.Single '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'apply-to-args' Name.Function ' ' Text 'args' Name.Variable ' ' Text 'fn' Name.Variable ')' Punctuation ' ' Text '(' Punctuation 'apply ' Name.Builtin 'fn' Name.Variable ' ' Text 'args' Name.Variable ')' Punctuation ')' Punctuation '\n\n\x0c\n\n' Text ';;; {Integer Math}' Comment.Single '\n' Text ';;;' Comment.Single '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'ipow-by-squaring' Name.Function ' ' Text 'x' Name.Variable ' ' Text 'k' Name.Variable ' ' Text 'acc' Name.Variable ' ' Text 'proc' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'cond ' Keyword '(' Punctuation '(' Punctuation 'zero? ' Name.Builtin 'k' Name.Variable ')' Punctuation ' ' Text 'acc' Name.Variable ')' Punctuation '\n\t' Text '(' Punctuation '(' Punctuation '= ' Name.Builtin '1' Literal.Number.Integer ' ' Text 'k' Name.Variable ')' Punctuation ' ' Text '(' Punctuation 'proc' Name.Function ' ' Text 'acc' Name.Variable ' ' Text 'x' Name.Variable ')' Punctuation ')' Punctuation '\n\t' Text '(' Punctuation 'else ' Keyword '(' Punctuation 'ipow-by-squaring' Name.Function ' ' Text '(' Punctuation 'proc' Name.Function ' ' Text 'x' Name.Variable ' ' Text 'x' Name.Variable ')' Punctuation '\n\t\t\t\t' Text '(' Punctuation 'quotient ' Name.Builtin 'k' Name.Variable ' ' Text '2' Literal.Number.Integer ')' Punctuation '\n\t\t\t\t' Text '(' Punctuation 'if ' Keyword '(' Punctuation 'even? ' Name.Builtin 'k' Name.Variable ')' Punctuation ' ' Text 'acc' Name.Variable ' ' Text '(' Punctuation 'proc' Name.Function ' ' Text 'acc' Name.Variable ' ' Text 'x' Name.Variable ')' Punctuation ')' Punctuation '\n\t\t\t\t' Text 'proc' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'begin-deprecated' Name.Function '\n ' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'string-character-length' Name.Function ' ' Text 's' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'issue-deprecation-warning' Name.Function ' ' Text '"`string-character-length\' is deprecated. Use `string-length\' instead."' Literal.String ')' Punctuation '\n ' Text '(' Punctuation 'string-length ' Name.Builtin 's' Name.Variable ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'flags' Name.Function ' ' Text '.' Operator ' ' Text 'args' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'issue-deprecation-warning' Name.Function ' ' Text '"`flags\' is deprecated. Use `logior\' instead."' Literal.String ')' Punctuation '\n ' Text '(' Punctuation 'apply ' Name.Builtin 'logior' Name.Variable ' ' Text 'args' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n\n\x0c\n' Text ';;; {Symbol Properties}' Comment.Single '\n' Text ';;;' Comment.Single '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'symbol-property' Name.Function ' ' Text 'sym' Name.Variable ' ' Text 'prop' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'let ' Keyword '(' Punctuation '(' Punctuation 'pair' Name.Function ' ' Text '(' Punctuation 'assoc ' Name.Builtin 'prop' Name.Variable ' ' Text '(' Punctuation 'symbol-pref' Name.Function ' ' Text 'sym' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'and ' Keyword 'pair' Name.Variable ' ' Text '(' Punctuation 'cdr ' Name.Builtin 'pair' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'set-symbol-property!' Name.Function ' ' Text 'sym' Name.Variable ' ' Text 'prop' Name.Variable ' ' Text 'val' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'let ' Keyword '(' Punctuation '(' Punctuation 'pair' Name.Function ' ' Text '(' Punctuation 'assoc ' Name.Builtin 'prop' Name.Variable ' ' Text '(' Punctuation 'symbol-pref' Name.Function ' ' Text 'sym' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'if ' Keyword 'pair' Name.Variable '\n\t' Text '(' Punctuation 'set-cdr! ' Name.Builtin 'pair' Name.Variable ' ' Text 'val' Name.Variable ')' Punctuation '\n\t' Text '(' Punctuation 'symbol-pset!' Name.Function ' ' Text 'sym' Name.Variable ' ' Text '(' Punctuation 'acons' Name.Function ' ' Text 'prop' Name.Variable ' ' Text 'val' Name.Variable ' ' Text '(' Punctuation 'symbol-pref' Name.Function ' ' Text 'sym' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'symbol-property-remove!' Name.Function ' ' Text 'sym' Name.Variable ' ' Text 'prop' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'let ' Keyword '(' Punctuation '(' Punctuation 'pair' Name.Function ' ' Text '(' Punctuation 'assoc ' Name.Builtin 'prop' Name.Variable ' ' Text '(' Punctuation 'symbol-pref' Name.Function ' ' Text 'sym' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'if ' Keyword 'pair' Name.Variable '\n\t' Text '(' Punctuation 'symbol-pset!' Name.Function ' ' Text 'sym' Name.Variable ' ' Text '(' Punctuation 'delq!' Name.Function ' ' Text 'pair' Name.Variable ' ' Text '(' Punctuation 'symbol-pref' Name.Function ' ' Text 'sym' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text ';;; {General Properties}' Comment.Single '\n' Text ';;;' Comment.Single '\n\n' Text ';; This is a more modern interface to properties. It will replace all' Comment.Single '\n' Text ';; other property-like things eventually.' Comment.Single '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'make-object-property' Name.Function ')' Punctuation '\n ' Text '(' Punctuation 'let ' Keyword '(' Punctuation '(' Punctuation 'prop' Name.Function ' ' Text '(' Punctuation 'primitive-make-property' Name.Function ' ' Text '#f' Name.Constant ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'make-procedure-with-setter' Name.Function '\n ' Text '(' Punctuation 'lambda ' Keyword '(' Punctuation 'obj' Name.Function ')' Punctuation ' ' Text '(' Punctuation 'primitive-property-ref' Name.Function ' ' Text 'prop' Name.Variable ' ' Text 'obj' Name.Variable ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'lambda ' Keyword '(' Punctuation 'obj' Name.Function ' ' Text 'val' Name.Variable ')' Punctuation ' ' Text '(' Punctuation 'primitive-property-set!' Name.Function ' ' Text 'prop' Name.Variable ' ' Text 'obj' Name.Variable ' ' Text 'val' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n\x0c\n\n' Text ';;; {Arrays}' Comment.Single '\n' Text ';;;' Comment.Single '\n\n' Text '(' Punctuation 'if ' Keyword '(' Punctuation 'provided?' Name.Function ' ' Text "'array" Literal.String.Symbol ')' Punctuation '\n ' Text '(' Punctuation 'primitive-load-path' Name.Function ' ' Text '"ice-9/arrays.scm"' Literal.String ')' Punctuation ')' Punctuation '\n\n\x0c\n' Text ';;; {Keywords}' Comment.Single '\n' Text ';;;' Comment.Single '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'symbol->keyword' Name.Function ' ' Text 'symbol' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'make-keyword-from-dash-symbol' Name.Function ' ' Text '(' Punctuation 'symbol-append' Name.Function ' ' Text "'-" Literal.String.Symbol ' ' Text 'symbol' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'keyword->symbol' Name.Function ' ' Text 'kw' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'let ' Keyword '(' Punctuation '(' Punctuation 'sym' Name.Function ' ' Text '(' Punctuation 'symbol->string ' Name.Builtin '(' Punctuation 'keyword-dash-symbol' Name.Function ' ' Text 'kw' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'string->symbol ' Name.Builtin '(' Punctuation 'substring ' Name.Builtin 'sym' Name.Variable ' ' Text '1' Literal.Number.Integer ' ' Text '(' Punctuation 'string-length ' Name.Builtin 'sym' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'kw-arg-ref' Name.Function ' ' Text 'args' Name.Variable ' ' Text 'kw' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'let ' Keyword '(' Punctuation '(' Punctuation 'rem' Name.Function ' ' Text '(' Punctuation 'member ' Name.Builtin 'kw' Name.Variable ' ' Text 'args' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'and ' Keyword 'rem' Name.Variable ' ' Text '(' Punctuation 'pair? ' Name.Builtin '(' Punctuation 'cdr ' Name.Builtin 'rem' Name.Variable ')' Punctuation ')' Punctuation ' ' Text '(' Punctuation 'cadr ' Name.Builtin 'rem' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n\x0c\n\n' Text ';;; {Structs}' Comment.Single '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'struct-layout' Name.Function ' ' Text 's' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'struct-ref' Name.Function ' ' Text '(' Punctuation 'struct-vtable' Name.Function ' ' Text 's' Name.Variable ')' Punctuation ' ' Text 'vtable-index-layout' Name.Variable ')' Punctuation ')' Punctuation '\n\n\x0c\n\n' Text ';;; Environments' Comment.Single '\n\n' Text '(' Punctuation 'define ' Keyword 'the-environment' Name.Variable '\n ' Text '(' Punctuation 'procedure->syntax' Name.Function '\n ' Text '(' Punctuation 'lambda ' Keyword '(' Punctuation 'x' Name.Function ' ' Text 'e' Name.Variable ')' Punctuation '\n ' Text 'e' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define ' Keyword 'the-root-environment' Name.Variable ' ' Text '(' Punctuation 'the-environment' Name.Function ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'environment-module' Name.Function ' ' Text 'env' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'let ' Keyword '(' Punctuation '(' Punctuation 'closure' Name.Function ' ' Text '(' Punctuation 'and ' Keyword '(' Punctuation 'pair? ' Name.Builtin 'env' Name.Variable ')' Punctuation ' ' Text '(' Punctuation 'car ' Name.Builtin '(' Punctuation 'last-pair' Name.Function ' ' Text 'env' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'and ' Keyword 'closure' Name.Variable ' ' Text '(' Punctuation 'procedure-property' Name.Function ' ' Text 'closure' Name.Variable ' ' Text "'module" Literal.String.Symbol ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n\x0c\n' Text ';;; {Records}' Comment.Single '\n' Text ';;;' Comment.Single '\n\n' Text ';; Printing records: by default, records are printed as' Comment.Single '\n' Text ';;' Comment.Single '\n' Text ';; #' Comment.Single '\n' Text ';;' Comment.Single '\n' Text ';; You can change that by giving a custom printing function to' Comment.Single '\n' Text ';; MAKE-RECORD-TYPE (after the list of field symbols). This function' Comment.Single '\n' Text ';; will be called like' Comment.Single '\n' Text ';;' Comment.Single '\n' Text ';; ( object port)' Comment.Single '\n' Text ';;' Comment.Single '\n' Text ';; It should print OBJECT to PORT.' Comment.Single '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'inherit-print-state' Name.Function ' ' Text 'old-port' Name.Variable ' ' Text 'new-port' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'if ' Keyword '(' Punctuation 'get-print-state' Name.Function ' ' Text 'old-port' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'port-with-print-state' Name.Function ' ' Text 'new-port' Name.Variable ' ' Text '(' Punctuation 'get-print-state' Name.Function ' ' Text 'old-port' Name.Variable ')' Punctuation ')' Punctuation '\n ' Text 'new-port' Name.Variable ')' Punctuation ')' Punctuation '\n\n' Text ';; 0: type-name, 1: fields' Comment.Single '\n' Text '(' Punctuation 'define ' Keyword 'record-type-vtable' Name.Variable '\n ' Text '(' Punctuation 'make-vtable-vtable' Name.Function ' ' Text '"prpr"' Literal.String ' ' Text '0' Literal.Number.Integer '\n\t\t ' Text '(' Punctuation 'lambda ' Keyword '(' Punctuation 's' Name.Function ' ' Text 'p' Name.Variable ')' Punctuation '\n\t\t\t' Text '(' Punctuation 'cond ' Keyword '(' Punctuation '(' Punctuation 'eq? ' Name.Builtin 's' Name.Variable ' ' Text 'record-type-vtable' Name.Variable ')' Punctuation '\n\t\t\t ' Text '(' Punctuation 'display ' Name.Builtin '"#"' Literal.String ' ' Text 'p' Name.Variable ')' Punctuation ')' Punctuation '\n\t\t\t ' Text '(' Punctuation 'else' Name.Function '\n\t\t\t ' Text '(' Punctuation 'display ' Name.Builtin '"#"' Literal.String ' ' Text 'p' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'record-type?' Name.Function ' ' Text 'obj' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'and ' Keyword '(' Punctuation 'struct?' Name.Function ' ' Text 'obj' Name.Variable ')' Punctuation ' ' Text '(' Punctuation 'eq? ' Name.Builtin 'record-type-vtable' Name.Variable ' ' Text '(' Punctuation 'struct-vtable' Name.Function ' ' Text 'obj' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'make-record-type' Name.Function ' ' Text 'type-name' Name.Variable ' ' Text 'fields' Name.Variable ' ' Text '.' Operator ' ' Text 'opt' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'let ' Keyword '(' Punctuation '(' Punctuation 'printer-fn' Name.Function ' ' Text '(' Punctuation 'and ' Keyword '(' Punctuation 'pair? ' Name.Builtin 'opt' Name.Variable ')' Punctuation ' ' Text '(' Punctuation 'car ' Name.Builtin 'opt' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'let ' Keyword '(' Punctuation '(' Punctuation 'struct' Name.Function ' ' Text '(' Punctuation 'make-struct' Name.Function ' ' Text 'record-type-vtable' Name.Variable ' ' Text '0' Literal.Number.Integer '\n\t\t\t ' Text '(' Punctuation 'make-struct-layout' Name.Function '\n\t\t\t\t' Text '(' Punctuation 'apply ' Name.Builtin 'string-append' Name.Variable '\n\t\t\t\t ' Text '(' Punctuation 'map ' Name.Builtin '(' Punctuation 'lambda ' Keyword '(' Punctuation 'f' Name.Function ')' Punctuation ' ' Text '"pw"' Literal.String ')' Punctuation ' ' Text 'fields' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n\t\t\t ' Text '(' Punctuation 'or ' Keyword 'printer-fn' Name.Variable '\n\t\t\t\t ' Text '(' Punctuation 'lambda ' Keyword '(' Punctuation 's' Name.Function ' ' Text 'p' Name.Variable ')' Punctuation '\n\t\t\t\t ' Text '(' Punctuation 'display ' Name.Builtin '"#<"' Literal.String ' ' Text 'p' Name.Variable ')' Punctuation '\n\t\t\t\t ' Text '(' Punctuation 'display ' Name.Builtin 'type-name' Name.Variable ' ' Text 'p' Name.Variable ')' Punctuation '\n\t\t\t\t ' Text '(' Punctuation 'let ' Keyword 'loop' Name.Variable ' ' Text '(' Punctuation '(' Punctuation 'fields' Name.Function ' ' Text 'fields' Name.Variable ')' Punctuation '\n\t\t\t\t\t\t' Text '(' Punctuation 'off' Name.Function ' ' Text '0' Literal.Number.Integer ')' Punctuation ')' Punctuation '\n\t\t\t\t ' Text '(' Punctuation 'cond' Name.Function '\n\t\t\t\t\t' Text '(' Punctuation '(' Punctuation 'not ' Name.Builtin '(' Punctuation 'null? ' Name.Builtin 'fields' Name.Variable ')' Punctuation ')' Punctuation '\n\t\t\t\t\t ' Text '(' Punctuation 'display ' Name.Builtin '" "' Literal.String ' ' Text 'p' Name.Variable ')' Punctuation '\n\t\t\t\t\t ' Text '(' Punctuation 'display ' Name.Builtin '(' Punctuation 'car ' Name.Builtin 'fields' Name.Variable ')' Punctuation ' ' Text 'p' Name.Variable ')' Punctuation '\n\t\t\t\t\t ' Text '(' Punctuation 'display ' Name.Builtin '": "' Literal.String ' ' Text 'p' Name.Variable ')' Punctuation '\n\t\t\t\t\t ' Text '(' Punctuation 'display ' Name.Builtin '(' Punctuation 'struct-ref' Name.Function ' ' Text 's' Name.Variable ' ' Text 'off' Name.Variable ')' Punctuation ' ' Text 'p' Name.Variable ')' Punctuation '\n\t\t\t\t\t ' Text '(' Punctuation 'loop' Name.Function ' ' Text '(' Punctuation 'cdr ' Name.Builtin 'fields' Name.Variable ')' Punctuation ' ' Text '(' Punctuation '+ ' Name.Builtin '1' Literal.Number.Integer ' ' Text 'off' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\t\t\t\t ' Text '(' Punctuation 'display ' Name.Builtin '">"' Literal.String ' ' Text 'p' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n\t\t\t ' Text 'type-name' Name.Variable '\n\t\t\t ' Text '(' Punctuation 'copy-tree' Name.Function ' ' Text 'fields' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text ';; Temporary solution: Associate a name to the record type descriptor' Comment.Single '\n ' Text ';; so that the object system can create a wrapper class for it.' Comment.Single '\n ' Text '(' Punctuation 'set-struct-vtable-name!' Name.Function ' ' Text 'struct' Name.Variable ' ' Text '(' Punctuation 'if ' Keyword '(' Punctuation 'symbol? ' Name.Builtin 'type-name' Name.Variable ')' Punctuation '\n\t\t\t\t\t ' Text 'type-name' Name.Variable '\n\t\t\t\t\t ' Text '(' Punctuation 'string->symbol ' Name.Builtin 'type-name' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text 'struct' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'record-type-name' Name.Function ' ' Text 'obj' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'if ' Keyword '(' Punctuation 'record-type?' Name.Function ' ' Text 'obj' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'struct-ref' Name.Function ' ' Text 'obj' Name.Variable ' ' Text 'vtable-offset-user' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'error' Name.Function ' ' Text "'not-a-record-type" Literal.String.Symbol ' ' Text 'obj' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'record-type-fields' Name.Function ' ' Text 'obj' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'if ' Keyword '(' Punctuation 'record-type?' Name.Function ' ' Text 'obj' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'struct-ref' Name.Function ' ' Text 'obj' Name.Variable ' ' Text '(' Punctuation '+ ' Name.Builtin '1' Literal.Number.Integer ' ' Text 'vtable-offset-user' Name.Variable ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'error' Name.Function ' ' Text "'not-a-record-type" Literal.String.Symbol ' ' Text 'obj' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'record-constructor' Name.Function ' ' Text 'rtd' Name.Variable ' ' Text '.' Operator ' ' Text 'opt' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'let ' Keyword '(' Punctuation '(' Punctuation 'field-names' Name.Function ' ' Text '(' Punctuation 'if ' Keyword '(' Punctuation 'pair? ' Name.Builtin 'opt' Name.Variable ')' Punctuation ' ' Text '(' Punctuation 'car ' Name.Builtin 'opt' Name.Variable ')' Punctuation ' ' Text '(' Punctuation 'record-type-fields' Name.Function ' ' Text 'rtd' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'local-eval' Name.Function ' ' Text '`' Operator '(' Punctuation 'lambda ' Keyword ',' Operator 'field-names' Name.Variable '\n\t\t ' Text '(' Punctuation 'make-struct' Name.Function ' ' Text "',rtd" Literal.String.Symbol ' ' Text '0' Literal.Number.Integer ' ' Text ',@' Operator '(' Punctuation 'map ' Name.Builtin '(' Punctuation 'lambda ' Keyword '(' Punctuation 'f' Name.Function ')' Punctuation '\n\t\t\t\t\t\t ' Text '(' Punctuation 'if ' Keyword '(' Punctuation 'memq ' Name.Builtin 'f' Name.Variable ' ' Text 'field-names' Name.Variable ')' Punctuation '\n\t\t\t\t\t\t ' Text 'f' Name.Variable '\n\t\t\t\t\t\t ' Text '#f' Name.Constant ')' Punctuation ')' Punctuation '\n\t\t\t\t\t ' Text '(' Punctuation 'record-type-fields' Name.Function ' ' Text 'rtd' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\t\t' Text 'the-root-environment' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'record-predicate' Name.Function ' ' Text 'rtd' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'lambda ' Keyword '(' Punctuation 'obj' Name.Function ')' Punctuation ' ' Text '(' Punctuation 'and ' Keyword '(' Punctuation 'struct?' Name.Function ' ' Text 'obj' Name.Variable ')' Punctuation ' ' Text '(' Punctuation 'eq? ' Name.Builtin 'rtd' Name.Variable ' ' Text '(' Punctuation 'struct-vtable' Name.Function ' ' Text 'obj' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'record-accessor' Name.Function ' ' Text 'rtd' Name.Variable ' ' Text 'field-name' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'let* ' Keyword '(' Punctuation '(' Punctuation 'pos' Name.Function ' ' Text '(' Punctuation 'list-index' Name.Function ' ' Text '(' Punctuation 'record-type-fields' Name.Function ' ' Text 'rtd' Name.Variable ')' Punctuation ' ' Text 'field-name' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'if ' Keyword '(' Punctuation 'not ' Name.Builtin 'pos' Name.Variable ')' Punctuation '\n\t' Text '(' Punctuation 'error' Name.Function ' ' Text "'no-such-field" Literal.String.Symbol ' ' Text 'field-name' Name.Variable ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'local-eval' Name.Function ' ' Text '`' Operator '(' Punctuation 'lambda ' Keyword '(' Punctuation 'obj' Name.Function ')' Punctuation '\n\t\t ' Text '(' Punctuation 'and ' Keyword '(' Punctuation 'eq? ' Name.Builtin "',rtd" Literal.String.Symbol ' ' Text '(' Punctuation 'record-type-descriptor' Name.Function ' ' Text 'obj' Name.Variable ')' Punctuation ')' Punctuation '\n\t\t\t' Text '(' Punctuation 'struct-ref' Name.Function ' ' Text 'obj' Name.Variable ' ' Text ',' Operator 'pos' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n\t\t' Text 'the-root-environment' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'record-modifier' Name.Function ' ' Text 'rtd' Name.Variable ' ' Text 'field-name' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'let* ' Keyword '(' Punctuation '(' Punctuation 'pos' Name.Function ' ' Text '(' Punctuation 'list-index' Name.Function ' ' Text '(' Punctuation 'record-type-fields' Name.Function ' ' Text 'rtd' Name.Variable ')' Punctuation ' ' Text 'field-name' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'if ' Keyword '(' Punctuation 'not ' Name.Builtin 'pos' Name.Variable ')' Punctuation '\n\t' Text '(' Punctuation 'error' Name.Function ' ' Text "'no-such-field" Literal.String.Symbol ' ' Text 'field-name' Name.Variable ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'local-eval' Name.Function ' ' Text '`' Operator '(' Punctuation 'lambda ' Keyword '(' Punctuation 'obj' Name.Function ' ' Text 'val' Name.Variable ')' Punctuation '\n\t\t ' Text '(' Punctuation 'and ' Keyword '(' Punctuation 'eq? ' Name.Builtin "',rtd" Literal.String.Symbol ' ' Text '(' Punctuation 'record-type-descriptor' Name.Function ' ' Text 'obj' Name.Variable ')' Punctuation ')' Punctuation '\n\t\t\t' Text '(' Punctuation 'struct-set!' Name.Function ' ' Text 'obj' Name.Variable ' ' Text ',' Operator 'pos' Name.Variable ' ' Text 'val' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n\t\t' Text 'the-root-environment' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'record?' Name.Function ' ' Text 'obj' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'and ' Keyword '(' Punctuation 'struct?' Name.Function ' ' Text 'obj' Name.Variable ')' Punctuation ' ' Text '(' Punctuation 'record-type?' Name.Function ' ' Text '(' Punctuation 'struct-vtable' Name.Function ' ' Text 'obj' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'record-type-descriptor' Name.Function ' ' Text 'obj' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'if ' Keyword '(' Punctuation 'struct?' Name.Function ' ' Text 'obj' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'struct-vtable' Name.Function ' ' Text 'obj' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'error' Name.Function ' ' Text "'not-a-record" Literal.String.Symbol ' ' Text 'obj' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'provide' Name.Function ' ' Text "'record" Literal.String.Symbol ')' Punctuation '\n\n\x0c\n' Text ';;; {Booleans}' Comment.Single '\n' Text ';;;' Comment.Single '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation '->bool' Name.Function ' ' Text 'x' Name.Variable ')' Punctuation ' ' Text '(' Punctuation 'not ' Name.Builtin '(' Punctuation 'not ' Name.Builtin 'x' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n\n\x0c\n' Text ';;; {Symbols}' Comment.Single '\n' Text ';;;' Comment.Single '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'symbol-append' Name.Function ' ' Text '.' Operator ' ' Text 'args' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'string->symbol ' Name.Builtin '(' Punctuation 'apply ' Name.Builtin 'string-append' Name.Variable ' ' Text '(' Punctuation 'map ' Name.Builtin 'symbol->string' Name.Variable ' ' Text 'args' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'list->symbol' Name.Function ' ' Text '.' Operator ' ' Text 'args' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'string->symbol ' Name.Builtin '(' Punctuation 'apply ' Name.Builtin 'list->string' Name.Variable ' ' Text 'args' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'symbol' Name.Function ' ' Text '.' Operator ' ' Text 'args' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'string->symbol ' Name.Builtin '(' Punctuation 'apply ' Name.Builtin 'string' Name.Variable ' ' Text 'args' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n\n\x0c\n' Text ';;; {Lists}' Comment.Single '\n' Text ';;;' Comment.Single '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'list-index' Name.Function ' ' Text 'l' Name.Variable ' ' Text 'k' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'let ' Keyword 'loop' Name.Variable ' ' Text '(' Punctuation '(' Punctuation 'n' Name.Function ' ' Text '0' Literal.Number.Integer ')' Punctuation '\n\t ' Text '(' Punctuation 'l' Name.Function ' ' Text 'l' Name.Variable ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'and ' Keyword '(' Punctuation 'not ' Name.Builtin '(' Punctuation 'null? ' Name.Builtin 'l' Name.Variable ')' Punctuation ')' Punctuation '\n\t ' Text '(' Punctuation 'if ' Keyword '(' Punctuation 'eq? ' Name.Builtin '(' Punctuation 'car ' Name.Builtin 'l' Name.Variable ')' Punctuation ' ' Text 'k' Name.Variable ')' Punctuation '\n\t ' Text 'n' Name.Variable '\n\t ' Text '(' Punctuation 'loop' Name.Function ' ' Text '(' Punctuation '+ ' Name.Builtin 'n' Name.Variable ' ' Text '1' Literal.Number.Integer ')' Punctuation ' ' Text '(' Punctuation 'cdr ' Name.Builtin 'l' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'make-list' Name.Function ' ' Text 'n' Name.Variable ' ' Text '.' Operator ' ' Text 'init' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'if ' Keyword '(' Punctuation 'pair? ' Name.Builtin 'init' Name.Variable ')' Punctuation ' ' Text '(' Punctuation 'set! ' Keyword 'init' Name.Variable ' ' Text '(' Punctuation 'car ' Name.Builtin 'init' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'let ' Keyword 'loop' Name.Variable ' ' Text '(' Punctuation '(' Punctuation 'answer' Name.Function ' ' Text "'" Operator '(' Punctuation ')' Punctuation ')' Punctuation '\n\t ' Text '(' Punctuation 'n' Name.Function ' ' Text 'n' Name.Variable ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'if ' Keyword '(' Punctuation '<= ' Name.Builtin 'n' Name.Variable ' ' Text '0' Literal.Number.Integer ')' Punctuation '\n\t' Text 'answer' Name.Variable '\n\t' Text '(' Punctuation 'loop' Name.Function ' ' Text '(' Punctuation 'cons ' Name.Builtin 'init' Name.Variable ' ' Text 'answer' Name.Variable ')' Punctuation ' ' Text '(' Punctuation '- ' Name.Builtin 'n' Name.Variable ' ' Text '1' Literal.Number.Integer ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n\x0c\n' Text ';;; {and-map and or-map}' Comment.Single '\n' Text ';;;' Comment.Single '\n' Text ';;; (and-map fn lst) is like (and (fn (car lst)) (fn (cadr lst)) (fn...) ...)' Comment.Single '\n' Text ';;; (or-map fn lst) is like (or (fn (car lst)) (fn (cadr lst)) (fn...) ...)' Comment.Single '\n' Text ';;;' Comment.Single '\n\n' Text ';; and-map f l' Comment.Single '\n' Text ';;' Comment.Single '\n' Text ';; Apply f to successive elements of l until exhaustion or f returns #f.' Comment.Single '\n' Text ';; If returning early, return #f. Otherwise, return the last value returned' Comment.Single '\n' Text ';; by f. If f has never been called because l is empty, return #t.' Comment.Single '\n' Text ';;' Comment.Single '\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'and-map' Name.Function ' ' Text 'f' Name.Variable ' ' Text 'lst' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'let ' Keyword 'loop' Name.Variable ' ' Text '(' Punctuation '(' Punctuation 'result' Name.Function ' ' Text '#t' Name.Constant ')' Punctuation '\n\t ' Text '(' Punctuation 'l' Name.Function ' ' Text 'lst' Name.Variable ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'and ' Keyword 'result' Name.Variable '\n\t ' Text '(' Punctuation 'or ' Keyword '(' Punctuation 'and ' Keyword '(' Punctuation 'null? ' Name.Builtin 'l' Name.Variable ')' Punctuation '\n\t\t ' Text 'result' Name.Variable ')' Punctuation '\n\t ' Text '(' Punctuation 'loop' Name.Function ' ' Text '(' Punctuation 'f' Name.Function ' ' Text '(' Punctuation 'car ' Name.Builtin 'l' Name.Variable ')' Punctuation ')' Punctuation ' ' Text '(' Punctuation 'cdr ' Name.Builtin 'l' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text ';; or-map f l' Comment.Single '\n' Text ';;' Comment.Single '\n' Text ';; Apply f to successive elements of l until exhaustion or while f returns #f.' Comment.Single '\n' Text ';; If returning early, return the return value of f.' Comment.Single '\n' Text ';;' Comment.Single '\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'or-map' Name.Function ' ' Text 'f' Name.Variable ' ' Text 'lst' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'let ' Keyword 'loop' Name.Variable ' ' Text '(' Punctuation '(' Punctuation 'result' Name.Function ' ' Text '#f' Name.Constant ')' Punctuation '\n\t ' Text '(' Punctuation 'l' Name.Function ' ' Text 'lst' Name.Variable ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'or ' Keyword 'result' Name.Variable '\n\t' Text '(' Punctuation 'and ' Keyword '(' Punctuation 'not ' Name.Builtin '(' Punctuation 'null? ' Name.Builtin 'l' Name.Variable ')' Punctuation ')' Punctuation '\n\t ' Text '(' Punctuation 'loop' Name.Function ' ' Text '(' Punctuation 'f' Name.Function ' ' Text '(' Punctuation 'car ' Name.Builtin 'l' Name.Variable ')' Punctuation ')' Punctuation ' ' Text '(' Punctuation 'cdr ' Name.Builtin 'l' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n\x0c\n\n' Text '(' Punctuation 'if ' Keyword '(' Punctuation 'provided?' Name.Function ' ' Text "'posix" Literal.String.Symbol ')' Punctuation '\n ' Text '(' Punctuation 'primitive-load-path' Name.Function ' ' Text '"ice-9/posix.scm"' Literal.String ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'if ' Keyword '(' Punctuation 'provided?' Name.Function ' ' Text "'socket" Literal.String.Symbol ')' Punctuation '\n ' Text '(' Punctuation 'primitive-load-path' Name.Function ' ' Text '"ice-9/networking.scm"' Literal.String ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define ' Keyword 'file-exists?' Name.Variable '\n ' Text '(' Punctuation 'if ' Keyword '(' Punctuation 'provided?' Name.Function ' ' Text "'posix" Literal.String.Symbol ')' Punctuation '\n ' Text '(' Punctuation 'lambda ' Keyword '(' Punctuation 'str' Name.Function ')' Punctuation '\n\t' Text '(' Punctuation '->bool' Name.Function ' ' Text '(' Punctuation 'false-if-exception' Name.Function ' ' Text '(' Punctuation 'stat' Name.Function ' ' Text 'str' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'lambda ' Keyword '(' Punctuation 'str' Name.Function ')' Punctuation '\n\t' Text '(' Punctuation 'let ' Keyword '(' Punctuation '(' Punctuation 'port' Name.Function ' ' Text '(' Punctuation 'catch' Name.Function ' ' Text "'system-error" Literal.String.Symbol ' ' Text '(' Punctuation 'lambda ' Keyword '(' Punctuation ')' Punctuation ' ' Text '(' Punctuation 'open-file' Name.Function ' ' Text 'str' Name.Variable ' ' Text 'OPEN_READ' Name.Variable ')' Punctuation ')' Punctuation '\n\t\t\t ' Text '(' Punctuation 'lambda ' Keyword 'args' Name.Variable ' ' Text '#f' Name.Constant ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\t ' Text '(' Punctuation 'if ' Keyword 'port' Name.Variable ' ' Text '(' Punctuation 'begin ' Keyword '(' Punctuation 'close-port' Name.Function ' ' Text 'port' Name.Variable ')' Punctuation ' ' Text '#t' Name.Constant ')' Punctuation '\n\t ' Text '#f' Name.Constant ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define ' Keyword 'file-is-directory?' Name.Variable '\n ' Text '(' Punctuation 'if ' Keyword '(' Punctuation 'provided?' Name.Function ' ' Text "'posix" Literal.String.Symbol ')' Punctuation '\n ' Text '(' Punctuation 'lambda ' Keyword '(' Punctuation 'str' Name.Function ')' Punctuation '\n\t' Text '(' Punctuation 'eq? ' Name.Builtin '(' Punctuation 'stat:type' Name.Function ' ' Text '(' Punctuation 'stat' Name.Function ' ' Text 'str' Name.Variable ')' Punctuation ')' Punctuation ' ' Text "'directory" Literal.String.Symbol ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'lambda ' Keyword '(' Punctuation 'str' Name.Function ')' Punctuation '\n\t' Text '(' Punctuation 'let ' Keyword '(' Punctuation '(' Punctuation 'port' Name.Function ' ' Text '(' Punctuation 'catch' Name.Function ' ' Text "'system-error" Literal.String.Symbol '\n\t\t\t ' Text '(' Punctuation 'lambda ' Keyword '(' Punctuation ')' Punctuation ' ' Text '(' Punctuation 'open-file' Name.Function ' ' Text '(' Punctuation 'string-append ' Name.Builtin 'str' Name.Variable ' ' Text '"/."' Literal.String ')' Punctuation '\n\t\t\t\t\t\t ' Text 'OPEN_READ' Name.Variable ')' Punctuation ')' Punctuation '\n\t\t\t ' Text '(' Punctuation 'lambda ' Keyword 'args' Name.Variable ' ' Text '#f' Name.Constant ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\t ' Text '(' Punctuation 'if ' Keyword 'port' Name.Variable ' ' Text '(' Punctuation 'begin ' Keyword '(' Punctuation 'close-port' Name.Function ' ' Text 'port' Name.Variable ')' Punctuation ' ' Text '#t' Name.Constant ')' Punctuation '\n\t ' Text '#f' Name.Constant ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'has-suffix?' Name.Function ' ' Text 'str' Name.Variable ' ' Text 'suffix' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'let ' Keyword '(' Punctuation '(' Punctuation 'sufl' Name.Function ' ' Text '(' Punctuation 'string-length ' Name.Builtin 'suffix' Name.Variable ')' Punctuation ')' Punctuation '\n\t' Text '(' Punctuation 'sl' Name.Function ' ' Text '(' Punctuation 'string-length ' Name.Builtin 'str' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'and ' Keyword '(' Punctuation '> ' Name.Builtin 'sl' Name.Variable ' ' Text 'sufl' Name.Variable ')' Punctuation '\n\t ' Text '(' Punctuation 'string=? ' Name.Builtin '(' Punctuation 'substring ' Name.Builtin 'str' Name.Variable ' ' Text '(' Punctuation '- ' Name.Builtin 'sl' Name.Variable ' ' Text 'sufl' Name.Variable ')' Punctuation ' ' Text 'sl' Name.Variable ')' Punctuation ' ' Text 'suffix' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'system-error-errno' Name.Function ' ' Text 'args' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'if ' Keyword '(' Punctuation 'eq? ' Name.Builtin '(' Punctuation 'car ' Name.Builtin 'args' Name.Variable ')' Punctuation ' ' Text "'system-error" Literal.String.Symbol ')' Punctuation '\n ' Text '(' Punctuation 'car ' Name.Builtin '(' Punctuation 'list-ref ' Name.Builtin 'args' Name.Variable ' ' Text '4' Literal.Number.Integer ')' Punctuation ')' Punctuation '\n ' Text '#f' Name.Constant ')' Punctuation ')' Punctuation '\n\n\x0c\n' Text ';;; {Error Handling}' Comment.Single '\n' Text ';;;' Comment.Single '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'error' Name.Function ' ' Text '.' Operator ' ' Text 'args' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'save-stack' Name.Function ')' Punctuation '\n ' Text '(' Punctuation 'if ' Keyword '(' Punctuation 'null? ' Name.Builtin 'args' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'scm-error' Name.Function ' ' Text "'misc-error" Literal.String.Symbol ' ' Text '#f' Name.Constant ' ' Text '"?"' Literal.String ' ' Text '#f' Name.Constant ' ' Text '#f' Name.Constant ')' Punctuation '\n ' Text '(' Punctuation 'let ' Keyword 'loop' Name.Variable ' ' Text '(' Punctuation '(' Punctuation 'msg' Name.Function ' ' Text '"~A"' Literal.String ')' Punctuation '\n\t\t ' Text '(' Punctuation 'rest' Name.Function ' ' Text '(' Punctuation 'cdr ' Name.Builtin 'args' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n\t' Text '(' Punctuation 'if ' Keyword '(' Punctuation 'not ' Name.Builtin '(' Punctuation 'null? ' Name.Builtin 'rest' Name.Variable ')' Punctuation ')' Punctuation '\n\t ' Text '(' Punctuation 'loop' Name.Function ' ' Text '(' Punctuation 'string-append ' Name.Builtin 'msg' Name.Variable ' ' Text '" ~S"' Literal.String ')' Punctuation '\n\t\t ' Text '(' Punctuation 'cdr ' Name.Builtin 'rest' Name.Variable ')' Punctuation ')' Punctuation '\n\t ' Text '(' Punctuation 'scm-error' Name.Function ' ' Text "'misc-error" Literal.String.Symbol ' ' Text '#f' Name.Constant ' ' Text 'msg' Name.Variable ' ' Text 'args' Name.Variable ' ' Text '#f' Name.Constant ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text ';; bad-throw is the hook that is called upon a throw to a an unhandled' Comment.Single '\n' Text ';; key (unless the throw has four arguments, in which case' Comment.Single '\n' Text ";; it's usually interpreted as an error throw.)" Comment.Single '\n' Text ';; If the key has a default handler (a throw-handler-default property),' Comment.Single '\n' Text ';; it is applied to the throw.' Comment.Single '\n' Text ';;' Comment.Single '\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'bad-throw' Name.Function ' ' Text 'key' Name.Variable ' ' Text '.' Operator ' ' Text 'args' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'let ' Keyword '(' Punctuation '(' Punctuation 'default' Name.Function ' ' Text '(' Punctuation 'symbol-property' Name.Function ' ' Text 'key' Name.Variable ' ' Text "'throw-handler-default" Literal.String.Symbol ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'or ' Keyword '(' Punctuation 'and ' Keyword 'default' Name.Variable ' ' Text '(' Punctuation 'apply ' Name.Builtin 'default' Name.Variable ' ' Text 'key' Name.Variable ' ' Text 'args' Name.Variable ')' Punctuation ')' Punctuation '\n\t' Text '(' Punctuation 'apply ' Name.Builtin 'error' Name.Variable ' ' Text '"unhandled-exception:"' Literal.String ' ' Text 'key' Name.Variable ' ' Text 'args' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n\x0c\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'tm:sec' Name.Function ' ' Text 'obj' Name.Variable ')' Punctuation ' ' Text '(' Punctuation 'vector-ref ' Name.Builtin 'obj' Name.Variable ' ' Text '0' Literal.Number.Integer ')' Punctuation ')' Punctuation '\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'tm:min' Name.Function ' ' Text 'obj' Name.Variable ')' Punctuation ' ' Text '(' Punctuation 'vector-ref ' Name.Builtin 'obj' Name.Variable ' ' Text '1' Literal.Number.Integer ')' Punctuation ')' Punctuation '\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'tm:hour' Name.Function ' ' Text 'obj' Name.Variable ')' Punctuation ' ' Text '(' Punctuation 'vector-ref ' Name.Builtin 'obj' Name.Variable ' ' Text '2' Literal.Number.Integer ')' Punctuation ')' Punctuation '\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'tm:mday' Name.Function ' ' Text 'obj' Name.Variable ')' Punctuation ' ' Text '(' Punctuation 'vector-ref ' Name.Builtin 'obj' Name.Variable ' ' Text '3' Literal.Number.Integer ')' Punctuation ')' Punctuation '\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'tm:mon' Name.Function ' ' Text 'obj' Name.Variable ')' Punctuation ' ' Text '(' Punctuation 'vector-ref ' Name.Builtin 'obj' Name.Variable ' ' Text '4' Literal.Number.Integer ')' Punctuation ')' Punctuation '\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'tm:year' Name.Function ' ' Text 'obj' Name.Variable ')' Punctuation ' ' Text '(' Punctuation 'vector-ref ' Name.Builtin 'obj' Name.Variable ' ' Text '5' Literal.Number.Integer ')' Punctuation ')' Punctuation '\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'tm:wday' Name.Function ' ' Text 'obj' Name.Variable ')' Punctuation ' ' Text '(' Punctuation 'vector-ref ' Name.Builtin 'obj' Name.Variable ' ' Text '6' Literal.Number.Integer ')' Punctuation ')' Punctuation '\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'tm:yday' Name.Function ' ' Text 'obj' Name.Variable ')' Punctuation ' ' Text '(' Punctuation 'vector-ref ' Name.Builtin 'obj' Name.Variable ' ' Text '7' Literal.Number.Integer ')' Punctuation ')' Punctuation '\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'tm:isdst' Name.Function ' ' Text 'obj' Name.Variable ')' Punctuation ' ' Text '(' Punctuation 'vector-ref ' Name.Builtin 'obj' Name.Variable ' ' Text '8' Literal.Number.Integer ')' Punctuation ')' Punctuation '\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'tm:gmtoff' Name.Function ' ' Text 'obj' Name.Variable ')' Punctuation ' ' Text '(' Punctuation 'vector-ref ' Name.Builtin 'obj' Name.Variable ' ' Text '9' Literal.Number.Integer ')' Punctuation ')' Punctuation '\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'tm:zone' Name.Function ' ' Text 'obj' Name.Variable ')' Punctuation ' ' Text '(' Punctuation 'vector-ref ' Name.Builtin 'obj' Name.Variable ' ' Text '10' Literal.Number.Integer ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'set-tm:sec' Name.Function ' ' Text 'obj' Name.Variable ' ' Text 'val' Name.Variable ')' Punctuation ' ' Text '(' Punctuation 'vector-set! ' Name.Builtin 'obj' Name.Variable ' ' Text '0' Literal.Number.Integer ' ' Text 'val' Name.Variable ')' Punctuation ')' Punctuation '\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'set-tm:min' Name.Function ' ' Text 'obj' Name.Variable ' ' Text 'val' Name.Variable ')' Punctuation ' ' Text '(' Punctuation 'vector-set! ' Name.Builtin 'obj' Name.Variable ' ' Text '1' Literal.Number.Integer ' ' Text 'val' Name.Variable ')' Punctuation ')' Punctuation '\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'set-tm:hour' Name.Function ' ' Text 'obj' Name.Variable ' ' Text 'val' Name.Variable ')' Punctuation ' ' Text '(' Punctuation 'vector-set! ' Name.Builtin 'obj' Name.Variable ' ' Text '2' Literal.Number.Integer ' ' Text 'val' Name.Variable ')' Punctuation ')' Punctuation '\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'set-tm:mday' Name.Function ' ' Text 'obj' Name.Variable ' ' Text 'val' Name.Variable ')' Punctuation ' ' Text '(' Punctuation 'vector-set! ' Name.Builtin 'obj' Name.Variable ' ' Text '3' Literal.Number.Integer ' ' Text 'val' Name.Variable ')' Punctuation ')' Punctuation '\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'set-tm:mon' Name.Function ' ' Text 'obj' Name.Variable ' ' Text 'val' Name.Variable ')' Punctuation ' ' Text '(' Punctuation 'vector-set! ' Name.Builtin 'obj' Name.Variable ' ' Text '4' Literal.Number.Integer ' ' Text 'val' Name.Variable ')' Punctuation ')' Punctuation '\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'set-tm:year' Name.Function ' ' Text 'obj' Name.Variable ' ' Text 'val' Name.Variable ')' Punctuation ' ' Text '(' Punctuation 'vector-set! ' Name.Builtin 'obj' Name.Variable ' ' Text '5' Literal.Number.Integer ' ' Text 'val' Name.Variable ')' Punctuation ')' Punctuation '\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'set-tm:wday' Name.Function ' ' Text 'obj' Name.Variable ' ' Text 'val' Name.Variable ')' Punctuation ' ' Text '(' Punctuation 'vector-set! ' Name.Builtin 'obj' Name.Variable ' ' Text '6' Literal.Number.Integer ' ' Text 'val' Name.Variable ')' Punctuation ')' Punctuation '\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'set-tm:yday' Name.Function ' ' Text 'obj' Name.Variable ' ' Text 'val' Name.Variable ')' Punctuation ' ' Text '(' Punctuation 'vector-set! ' Name.Builtin 'obj' Name.Variable ' ' Text '7' Literal.Number.Integer ' ' Text 'val' Name.Variable ')' Punctuation ')' Punctuation '\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'set-tm:isdst' Name.Function ' ' Text 'obj' Name.Variable ' ' Text 'val' Name.Variable ')' Punctuation ' ' Text '(' Punctuation 'vector-set! ' Name.Builtin 'obj' Name.Variable ' ' Text '8' Literal.Number.Integer ' ' Text 'val' Name.Variable ')' Punctuation ')' Punctuation '\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'set-tm:gmtoff' Name.Function ' ' Text 'obj' Name.Variable ' ' Text 'val' Name.Variable ')' Punctuation ' ' Text '(' Punctuation 'vector-set! ' Name.Builtin 'obj' Name.Variable ' ' Text '9' Literal.Number.Integer ' ' Text 'val' Name.Variable ')' Punctuation ')' Punctuation '\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'set-tm:zone' Name.Function ' ' Text 'obj' Name.Variable ' ' Text 'val' Name.Variable ')' Punctuation ' ' Text '(' Punctuation 'vector-set! ' Name.Builtin 'obj' Name.Variable ' ' Text '10' Literal.Number.Integer ' ' Text 'val' Name.Variable ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'tms:clock' Name.Function ' ' Text 'obj' Name.Variable ')' Punctuation ' ' Text '(' Punctuation 'vector-ref ' Name.Builtin 'obj' Name.Variable ' ' Text '0' Literal.Number.Integer ')' Punctuation ')' Punctuation '\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'tms:utime' Name.Function ' ' Text 'obj' Name.Variable ')' Punctuation ' ' Text '(' Punctuation 'vector-ref ' Name.Builtin 'obj' Name.Variable ' ' Text '1' Literal.Number.Integer ')' Punctuation ')' Punctuation '\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'tms:stime' Name.Function ' ' Text 'obj' Name.Variable ')' Punctuation ' ' Text '(' Punctuation 'vector-ref ' Name.Builtin 'obj' Name.Variable ' ' Text '2' Literal.Number.Integer ')' Punctuation ')' Punctuation '\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'tms:cutime' Name.Function ' ' Text 'obj' Name.Variable ')' Punctuation ' ' Text '(' Punctuation 'vector-ref ' Name.Builtin 'obj' Name.Variable ' ' Text '3' Literal.Number.Integer ')' Punctuation ')' Punctuation '\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'tms:cstime' Name.Function ' ' Text 'obj' Name.Variable ')' Punctuation ' ' Text '(' Punctuation 'vector-ref ' Name.Builtin 'obj' Name.Variable ' ' Text '4' Literal.Number.Integer ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define ' Keyword 'file-position' Name.Variable ' ' Text 'ftell' Name.Variable ')' Punctuation '\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'file-set-position' Name.Function ' ' Text 'port' Name.Variable ' ' Text 'offset' Name.Variable ' ' Text '.' Operator ' ' Text 'whence' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'let ' Keyword '(' Punctuation '(' Punctuation 'whence' Name.Function ' ' Text '(' Punctuation 'if ' Keyword '(' Punctuation 'eq? ' Name.Builtin 'whence' Name.Variable ' ' Text "'" Operator '(' Punctuation ')' Punctuation ')' Punctuation ' ' Text 'SEEK_SET' Name.Variable ' ' Text '(' Punctuation 'car ' Name.Builtin 'whence' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'seek' Name.Function ' ' Text 'port' Name.Variable ' ' Text 'offset' Name.Variable ' ' Text 'whence' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'move->fdes' Name.Function ' ' Text 'fd/port' Name.Variable ' ' Text 'fd' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'cond ' Keyword '(' Punctuation '(' Punctuation 'integer? ' Name.Builtin 'fd/port' Name.Variable ')' Punctuation '\n\t ' Text '(' Punctuation 'dup->fdes' Name.Function ' ' Text 'fd/port' Name.Variable ' ' Text 'fd' Name.Variable ')' Punctuation '\n\t ' Text '(' Punctuation 'close' Name.Function ' ' Text 'fd/port' Name.Variable ')' Punctuation '\n\t ' Text 'fd' Name.Variable ')' Punctuation '\n\t' Text '(' Punctuation 'else' Name.Function '\n\t ' Text '(' Punctuation 'primitive-move->fdes' Name.Function ' ' Text 'fd/port' Name.Variable ' ' Text 'fd' Name.Variable ')' Punctuation '\n\t ' Text '(' Punctuation 'set-port-revealed!' Name.Function ' ' Text 'fd/port' Name.Variable ' ' Text '1' Literal.Number.Integer ')' Punctuation '\n\t ' Text 'fd/port' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'release-port-handle' Name.Function ' ' Text 'port' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'let ' Keyword '(' Punctuation '(' Punctuation 'revealed' Name.Function ' ' Text '(' Punctuation 'port-revealed' Name.Function ' ' Text 'port' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'if ' Keyword '(' Punctuation '> ' Name.Builtin 'revealed' Name.Variable ' ' Text '0' Literal.Number.Integer ')' Punctuation '\n\t' Text '(' Punctuation 'set-port-revealed!' Name.Function ' ' Text 'port' Name.Variable ' ' Text '(' Punctuation '- ' Name.Builtin 'revealed' Name.Variable ' ' Text '1' Literal.Number.Integer ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'dup->port' Name.Function ' ' Text 'port/fd' Name.Variable ' ' Text 'mode' Name.Variable ' ' Text '.' Operator ' ' Text 'maybe-fd' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'let ' Keyword '(' Punctuation '(' Punctuation 'port' Name.Function ' ' Text '(' Punctuation 'fdopen' Name.Function ' ' Text '(' Punctuation 'apply ' Name.Builtin 'dup->fdes' Name.Variable ' ' Text 'port/fd' Name.Variable ' ' Text 'maybe-fd' Name.Variable ')' Punctuation '\n\t\t ' Text 'mode' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'if ' Keyword '(' Punctuation 'pair? ' Name.Builtin 'maybe-fd' Name.Variable ')' Punctuation '\n\t' Text '(' Punctuation 'set-port-revealed!' Name.Function ' ' Text 'port' Name.Variable ' ' Text '1' Literal.Number.Integer ')' Punctuation ')' Punctuation '\n ' Text 'port' Name.Variable ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'dup->inport' Name.Function ' ' Text 'port/fd' Name.Variable ' ' Text '.' Operator ' ' Text 'maybe-fd' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'apply ' Name.Builtin 'dup->port' Name.Variable ' ' Text 'port/fd' Name.Variable ' ' Text '"r"' Literal.String ' ' Text 'maybe-fd' Name.Variable ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'dup->outport' Name.Function ' ' Text 'port/fd' Name.Variable ' ' Text '.' Operator ' ' Text 'maybe-fd' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'apply ' Name.Builtin 'dup->port' Name.Variable ' ' Text 'port/fd' Name.Variable ' ' Text '"w"' Literal.String ' ' Text 'maybe-fd' Name.Variable ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'dup' Name.Function ' ' Text 'port/fd' Name.Variable ' ' Text '.' Operator ' ' Text 'maybe-fd' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'if ' Keyword '(' Punctuation 'integer? ' Name.Builtin 'port/fd' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'apply ' Name.Builtin 'dup->fdes' Name.Variable ' ' Text 'port/fd' Name.Variable ' ' Text 'maybe-fd' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'apply ' Name.Builtin 'dup->port' Name.Variable ' ' Text 'port/fd' Name.Variable ' ' Text '(' Punctuation 'port-mode' Name.Function ' ' Text 'port/fd' Name.Variable ')' Punctuation ' ' Text 'maybe-fd' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'duplicate-port' Name.Function ' ' Text 'port' Name.Variable ' ' Text 'modes' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'dup->port' Name.Function ' ' Text 'port' Name.Variable ' ' Text 'modes' Name.Variable ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'fdes->inport' Name.Function ' ' Text 'fdes' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'let ' Keyword 'loop' Name.Variable ' ' Text '(' Punctuation '(' Punctuation 'rest-ports' Name.Function ' ' Text '(' Punctuation 'fdes->ports' Name.Function ' ' Text 'fdes' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'cond ' Keyword '(' Punctuation '(' Punctuation 'null? ' Name.Builtin 'rest-ports' Name.Variable ')' Punctuation '\n\t ' Text '(' Punctuation 'let ' Keyword '(' Punctuation '(' Punctuation 'result' Name.Function ' ' Text '(' Punctuation 'fdopen' Name.Function ' ' Text 'fdes' Name.Variable ' ' Text '"r"' Literal.String ')' Punctuation ')' Punctuation ')' Punctuation '\n\t ' Text '(' Punctuation 'set-port-revealed!' Name.Function ' ' Text 'result' Name.Variable ' ' Text '1' Literal.Number.Integer ')' Punctuation '\n\t ' Text 'result' Name.Variable ')' Punctuation ')' Punctuation '\n\t ' Text '(' Punctuation '(' Punctuation 'input-port? ' Name.Builtin '(' Punctuation 'car ' Name.Builtin 'rest-ports' Name.Variable ')' Punctuation ')' Punctuation '\n\t ' Text '(' Punctuation 'set-port-revealed!' Name.Function ' ' Text '(' Punctuation 'car ' Name.Builtin 'rest-ports' Name.Variable ')' Punctuation '\n\t\t\t ' Text '(' Punctuation '+ ' Name.Builtin '(' Punctuation 'port-revealed' Name.Function ' ' Text '(' Punctuation 'car ' Name.Builtin 'rest-ports' Name.Variable ')' Punctuation ')' Punctuation ' ' Text '1' Literal.Number.Integer ')' Punctuation ')' Punctuation '\n\t ' Text '(' Punctuation 'car ' Name.Builtin 'rest-ports' Name.Variable ')' Punctuation ')' Punctuation '\n\t ' Text '(' Punctuation 'else' Name.Function '\n\t ' Text '(' Punctuation 'loop' Name.Function ' ' Text '(' Punctuation 'cdr ' Name.Builtin 'rest-ports' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'fdes->outport' Name.Function ' ' Text 'fdes' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'let ' Keyword 'loop' Name.Variable ' ' Text '(' Punctuation '(' Punctuation 'rest-ports' Name.Function ' ' Text '(' Punctuation 'fdes->ports' Name.Function ' ' Text 'fdes' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'cond ' Keyword '(' Punctuation '(' Punctuation 'null? ' Name.Builtin 'rest-ports' Name.Variable ')' Punctuation '\n\t ' Text '(' Punctuation 'let ' Keyword '(' Punctuation '(' Punctuation 'result' Name.Function ' ' Text '(' Punctuation 'fdopen' Name.Function ' ' Text 'fdes' Name.Variable ' ' Text '"w"' Literal.String ')' Punctuation ')' Punctuation ')' Punctuation '\n\t ' Text '(' Punctuation 'set-port-revealed!' Name.Function ' ' Text 'result' Name.Variable ' ' Text '1' Literal.Number.Integer ')' Punctuation '\n\t ' Text 'result' Name.Variable ')' Punctuation ')' Punctuation '\n\t ' Text '(' Punctuation '(' Punctuation 'output-port? ' Name.Builtin '(' Punctuation 'car ' Name.Builtin 'rest-ports' Name.Variable ')' Punctuation ')' Punctuation '\n\t ' Text '(' Punctuation 'set-port-revealed!' Name.Function ' ' Text '(' Punctuation 'car ' Name.Builtin 'rest-ports' Name.Variable ')' Punctuation '\n\t\t\t ' Text '(' Punctuation '+ ' Name.Builtin '(' Punctuation 'port-revealed' Name.Function ' ' Text '(' Punctuation 'car ' Name.Builtin 'rest-ports' Name.Variable ')' Punctuation ')' Punctuation ' ' Text '1' Literal.Number.Integer ')' Punctuation ')' Punctuation '\n\t ' Text '(' Punctuation 'car ' Name.Builtin 'rest-ports' Name.Variable ')' Punctuation ')' Punctuation '\n\t ' Text '(' Punctuation 'else' Name.Function '\n\t ' Text '(' Punctuation 'loop' Name.Function ' ' Text '(' Punctuation 'cdr ' Name.Builtin 'rest-ports' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'port->fdes' Name.Function ' ' Text 'port' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'set-port-revealed!' Name.Function ' ' Text 'port' Name.Variable ' ' Text '(' Punctuation '+ ' Name.Builtin '(' Punctuation 'port-revealed' Name.Function ' ' Text 'port' Name.Variable ')' Punctuation ' ' Text '1' Literal.Number.Integer ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'fileno' Name.Function ' ' Text 'port' Name.Variable ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'setenv' Name.Function ' ' Text 'name' Name.Variable ' ' Text 'value' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'if ' Keyword 'value' Name.Variable '\n ' Text '(' Punctuation 'putenv' Name.Function ' ' Text '(' Punctuation 'string-append ' Name.Builtin 'name' Name.Variable ' ' Text '"="' Literal.String ' ' Text 'value' Name.Variable ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'putenv' Name.Function ' ' Text 'name' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n\n\x0c\n' Text ';;; {Load Paths}' Comment.Single '\n' Text ';;;' Comment.Single '\n\n' Text ';;; Here for backward compatability' Comment.Single '\n' Text ';;' Comment.Single '\n' Text '(' Punctuation 'define ' Keyword 'scheme-file-suffix' Name.Variable ' ' Text '(' Punctuation 'lambda ' Keyword '(' Punctuation ')' Punctuation ' ' Text '".scm"' Literal.String ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'in-vicinity' Name.Function ' ' Text 'vicinity' Name.Variable ' ' Text 'file' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'let ' Keyword '(' Punctuation '(' Punctuation 'tail' Name.Function ' ' Text '(' Punctuation 'let ' Keyword '(' Punctuation '(' Punctuation 'len' Name.Function ' ' Text '(' Punctuation 'string-length ' Name.Builtin 'vicinity' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n\t\t' Text '(' Punctuation 'if ' Keyword '(' Punctuation 'zero? ' Name.Builtin 'len' Name.Variable ')' Punctuation '\n\t\t ' Text '#f' Name.Constant '\n\t\t ' Text '(' Punctuation 'string-ref ' Name.Builtin 'vicinity' Name.Variable ' ' Text '(' Punctuation '- ' Name.Builtin 'len' Name.Variable ' ' Text '1' Literal.Number.Integer ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'string-append ' Name.Builtin 'vicinity' Name.Variable '\n\t\t ' Text '(' Punctuation 'if ' Keyword '(' Punctuation 'or ' Keyword '(' Punctuation 'not ' Name.Builtin 'tail' Name.Variable ')' Punctuation '\n\t\t\t ' Text '(' Punctuation 'eq? ' Name.Builtin 'tail' Name.Variable ' ' Text '#\\/' Literal.String.Char ')' Punctuation ')' Punctuation '\n\t\t ' Text '""' Literal.String '\n\t\t ' Text '"/"' Literal.String ')' Punctuation '\n\t\t ' Text 'file' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n\n\x0c\n' Text ';;; {Help for scm_shell}' Comment.Single '\n' Text ';;; The argument-processing code used by Guile-based shells generates' Comment.Single '\n' Text ';;; Scheme code based on the argument list. This page contains help' Comment.Single '\n' Text ';;; functions for the code it generates.' Comment.Single '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'command-line' Name.Function ')' Punctuation ' ' Text '(' Punctuation 'program-arguments' Name.Function ')' Punctuation ')' Punctuation '\n\n' Text ';; This is mostly for the internal use of the code generated by' Comment.Single '\n' Text ';; scm_compile_shell_switches.' Comment.Single '\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'load-user-init' Name.Function ')' Punctuation '\n ' Text '(' Punctuation 'let* ' Keyword '(' Punctuation '(' Punctuation 'home' Name.Function ' ' Text '(' Punctuation 'or ' Keyword '(' Punctuation 'getenv' Name.Function ' ' Text '"HOME"' Literal.String ')' Punctuation '\n\t\t ' Text '(' Punctuation 'false-if-exception' Name.Function ' ' Text '(' Punctuation 'passwd:dir' Name.Function ' ' Text '(' Punctuation 'getpwuid' Name.Function ' ' Text '(' Punctuation 'getuid' Name.Function ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\t\t ' Text '"/"' Literal.String ')' Punctuation ')' Punctuation ' ' Text ';; fallback for cygwin etc.' Comment.Single '\n\t ' Text '(' Punctuation 'init-file' Name.Function ' ' Text '(' Punctuation 'in-vicinity' Name.Function ' ' Text 'home' Name.Variable ' ' Text '".guile"' Literal.String ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'if ' Keyword '(' Punctuation 'file-exists?' Name.Function ' ' Text 'init-file' Name.Variable ')' Punctuation '\n\t' Text '(' Punctuation 'primitive-load' Name.Function ' ' Text 'init-file' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n\x0c\n' Text ';;; {Loading by paths}' Comment.Single '\n\n' Text ';;; Load a Scheme source file named NAME, searching for it in the' Comment.Single '\n' Text ';;; directories listed in %load-path, and applying each of the file' Comment.Single '\n' Text ';;; name extensions listed in %load-extensions.' Comment.Single '\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'load-from-path' Name.Function ' ' Text 'name' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'start-stack' Name.Function ' ' Text "'load-stack" Literal.String.Symbol '\n\t ' Text '(' Punctuation 'primitive-load-path' Name.Function ' ' Text 'name' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n\n\n\x0c\n' Text ';;; {Transcendental Functions}' Comment.Single '\n' Text ';;;' Comment.Single '\n' Text ';;; Derived from "Transcen.scm", Complex trancendental functions for SCM.' Comment.Single '\n' Text ';;; Written by Jerry D. Hedden, (C) FSF.' Comment.Single '\n' Text ";;; See the file `COPYING' for terms applying to this program." Comment.Single '\n' Text ';;;' Comment.Single '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'exp ' Name.Builtin 'z' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'if ' Keyword '(' Punctuation 'real? ' Name.Builtin 'z' Name.Variable ')' Punctuation ' ' Text '(' Punctuation '$exp' Name.Function ' ' Text 'z' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'make-polar ' Name.Builtin '(' Punctuation '$exp' Name.Function ' ' Text '(' Punctuation 'real-part ' Name.Builtin 'z' Name.Variable ')' Punctuation ')' Punctuation ' ' Text '(' Punctuation 'imag-part ' Name.Builtin 'z' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'log ' Name.Builtin 'z' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'if ' Keyword '(' Punctuation 'and ' Keyword '(' Punctuation 'real? ' Name.Builtin 'z' Name.Variable ')' Punctuation ' ' Text '(' Punctuation '>= ' Name.Builtin 'z' Name.Variable ' ' Text '0' Literal.Number.Integer ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation '$log' Name.Function ' ' Text 'z' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'make-rectangular ' Name.Builtin '(' Punctuation '$log' Name.Function ' ' Text '(' Punctuation 'magnitude ' Name.Builtin 'z' Name.Variable ')' Punctuation ')' Punctuation ' ' Text '(' Punctuation 'angle ' Name.Builtin 'z' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'sqrt ' Name.Builtin 'z' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'if ' Keyword '(' Punctuation 'real? ' Name.Builtin 'z' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'if ' Keyword '(' Punctuation 'negative? ' Name.Builtin 'z' Name.Variable ')' Punctuation ' ' Text '(' Punctuation 'make-rectangular ' Name.Builtin '0' Literal.Number.Integer ' ' Text '(' Punctuation '$sqrt' Name.Function ' ' Text '(' Punctuation '- ' Name.Builtin 'z' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n\t ' Text '(' Punctuation '$sqrt' Name.Function ' ' Text 'z' Name.Variable ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'make-polar ' Name.Builtin '(' Punctuation '$sqrt' Name.Function ' ' Text '(' Punctuation 'magnitude ' Name.Builtin 'z' Name.Variable ')' Punctuation ')' Punctuation ' ' Text '(' Punctuation '/ ' Name.Builtin '(' Punctuation 'angle ' Name.Builtin 'z' Name.Variable ')' Punctuation ' ' Text '2' Literal.Number.Integer ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define ' Keyword 'expt' Name.Variable '\n ' Text '(' Punctuation 'let ' Keyword '(' Punctuation '(' Punctuation 'integer-expt' Name.Function ' ' Text 'integer-expt' Name.Variable ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'lambda ' Keyword '(' Punctuation 'z1' Name.Function ' ' Text 'z2' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'cond ' Keyword '(' Punctuation '(' Punctuation 'integer? ' Name.Builtin 'z2' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'if ' Keyword '(' Punctuation 'negative? ' Name.Builtin 'z2' Name.Variable ')' Punctuation '\n\t\t ' Text '(' Punctuation '/ ' Name.Builtin '1' Literal.Number.Integer ' ' Text '(' Punctuation 'integer-expt' Name.Function ' ' Text 'z1' Name.Variable ' ' Text '(' Punctuation '- ' Name.Builtin 'z2' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n\t\t ' Text '(' Punctuation 'integer-expt' Name.Function ' ' Text 'z1' Name.Variable ' ' Text 'z2' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n\t ' Text '(' Punctuation '(' Punctuation 'and ' Keyword '(' Punctuation 'real? ' Name.Builtin 'z2' Name.Variable ')' Punctuation ' ' Text '(' Punctuation 'real? ' Name.Builtin 'z1' Name.Variable ')' Punctuation ' ' Text '(' Punctuation '>= ' Name.Builtin 'z1' Name.Variable ' ' Text '0' Literal.Number.Integer ')' Punctuation ')' Punctuation '\n\t ' Text '(' Punctuation '$expt' Name.Function ' ' Text 'z1' Name.Variable ' ' Text 'z2' Name.Variable ')' Punctuation ')' Punctuation '\n\t ' Text '(' Punctuation 'else' Name.Function '\n\t ' Text '(' Punctuation 'exp ' Name.Builtin '(' Punctuation '* ' Name.Builtin 'z2' Name.Variable ' ' Text '(' Punctuation 'log ' Name.Builtin 'z1' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'sinh' Name.Function ' ' Text 'z' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'if ' Keyword '(' Punctuation 'real? ' Name.Builtin 'z' Name.Variable ')' Punctuation ' ' Text '(' Punctuation '$sinh' Name.Function ' ' Text 'z' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'let ' Keyword '(' Punctuation '(' Punctuation 'x' Name.Function ' ' Text '(' Punctuation 'real-part ' Name.Builtin 'z' Name.Variable ')' Punctuation ')' Punctuation ' ' Text '(' Punctuation 'y' Name.Function ' ' Text '(' Punctuation 'imag-part ' Name.Builtin 'z' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n\t' Text '(' Punctuation 'make-rectangular ' Name.Builtin '(' Punctuation '* ' Name.Builtin '(' Punctuation '$sinh' Name.Function ' ' Text 'x' Name.Variable ')' Punctuation ' ' Text '(' Punctuation '$cos' Name.Function ' ' Text 'y' Name.Variable ')' Punctuation ')' Punctuation '\n\t\t\t ' Text '(' Punctuation '* ' Name.Builtin '(' Punctuation '$cosh' Name.Function ' ' Text 'x' Name.Variable ')' Punctuation ' ' Text '(' Punctuation '$sin' Name.Function ' ' Text 'y' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'cosh' Name.Function ' ' Text 'z' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'if ' Keyword '(' Punctuation 'real? ' Name.Builtin 'z' Name.Variable ')' Punctuation ' ' Text '(' Punctuation '$cosh' Name.Function ' ' Text 'z' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'let ' Keyword '(' Punctuation '(' Punctuation 'x' Name.Function ' ' Text '(' Punctuation 'real-part ' Name.Builtin 'z' Name.Variable ')' Punctuation ')' Punctuation ' ' Text '(' Punctuation 'y' Name.Function ' ' Text '(' Punctuation 'imag-part ' Name.Builtin 'z' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n\t' Text '(' Punctuation 'make-rectangular ' Name.Builtin '(' Punctuation '* ' Name.Builtin '(' Punctuation '$cosh' Name.Function ' ' Text 'x' Name.Variable ')' Punctuation ' ' Text '(' Punctuation '$cos' Name.Function ' ' Text 'y' Name.Variable ')' Punctuation ')' Punctuation '\n\t\t\t ' Text '(' Punctuation '* ' Name.Builtin '(' Punctuation '$sinh' Name.Function ' ' Text 'x' Name.Variable ')' Punctuation ' ' Text '(' Punctuation '$sin' Name.Function ' ' Text 'y' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'tanh' Name.Function ' ' Text 'z' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'if ' Keyword '(' Punctuation 'real? ' Name.Builtin 'z' Name.Variable ')' Punctuation ' ' Text '(' Punctuation '$tanh' Name.Function ' ' Text 'z' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'let* ' Keyword '(' Punctuation '(' Punctuation 'x' Name.Function ' ' Text '(' Punctuation '* ' Name.Builtin '2' Literal.Number.Integer ' ' Text '(' Punctuation 'real-part ' Name.Builtin 'z' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n\t ' Text '(' Punctuation 'y' Name.Function ' ' Text '(' Punctuation '* ' Name.Builtin '2' Literal.Number.Integer ' ' Text '(' Punctuation 'imag-part ' Name.Builtin 'z' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n\t ' Text '(' Punctuation 'w' Name.Function ' ' Text '(' Punctuation '+ ' Name.Builtin '(' Punctuation '$cosh' Name.Function ' ' Text 'x' Name.Variable ')' Punctuation ' ' Text '(' Punctuation '$cos' Name.Function ' ' Text 'y' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\t' Text '(' Punctuation 'make-rectangular ' Name.Builtin '(' Punctuation '/ ' Name.Builtin '(' Punctuation '$sinh' Name.Function ' ' Text 'x' Name.Variable ')' Punctuation ' ' Text 'w' Name.Variable ')' Punctuation ' ' Text '(' Punctuation '/ ' Name.Builtin '(' Punctuation '$sin' Name.Function ' ' Text 'y' Name.Variable ')' Punctuation ' ' Text 'w' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'asinh' Name.Function ' ' Text 'z' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'if ' Keyword '(' Punctuation 'real? ' Name.Builtin 'z' Name.Variable ')' Punctuation ' ' Text '(' Punctuation '$asinh' Name.Function ' ' Text 'z' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'log ' Name.Builtin '(' Punctuation '+ ' Name.Builtin 'z' Name.Variable ' ' Text '(' Punctuation 'sqrt ' Name.Builtin '(' Punctuation '+ ' Name.Builtin '(' Punctuation '* ' Name.Builtin 'z' Name.Variable ' ' Text 'z' Name.Variable ')' Punctuation ' ' Text '1' Literal.Number.Integer ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'acosh' Name.Function ' ' Text 'z' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'if ' Keyword '(' Punctuation 'and ' Keyword '(' Punctuation 'real? ' Name.Builtin 'z' Name.Variable ')' Punctuation ' ' Text '(' Punctuation '>= ' Name.Builtin 'z' Name.Variable ' ' Text '1' Literal.Number.Integer ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation '$acosh' Name.Function ' ' Text 'z' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'log ' Name.Builtin '(' Punctuation '+ ' Name.Builtin 'z' Name.Variable ' ' Text '(' Punctuation 'sqrt ' Name.Builtin '(' Punctuation '- ' Name.Builtin '(' Punctuation '* ' Name.Builtin 'z' Name.Variable ' ' Text 'z' Name.Variable ')' Punctuation ' ' Text '1' Literal.Number.Integer ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'atanh' Name.Function ' ' Text 'z' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'if ' Keyword '(' Punctuation 'and ' Keyword '(' Punctuation 'real? ' Name.Builtin 'z' Name.Variable ')' Punctuation ' ' Text '(' Punctuation '> ' Name.Builtin 'z' Name.Variable ' ' Text '-1' Literal.Number.Integer ')' Punctuation ' ' Text '(' Punctuation '< ' Name.Builtin 'z' Name.Variable ' ' Text '1' Literal.Number.Integer ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation '$atanh' Name.Function ' ' Text 'z' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation '/ ' Name.Builtin '(' Punctuation 'log ' Name.Builtin '(' Punctuation '/ ' Name.Builtin '(' Punctuation '+ ' Name.Builtin '1' Literal.Number.Integer ' ' Text 'z' Name.Variable ')' Punctuation ' ' Text '(' Punctuation '- ' Name.Builtin '1' Literal.Number.Integer ' ' Text 'z' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ' ' Text '2' Literal.Number.Integer ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'sin ' Name.Builtin 'z' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'if ' Keyword '(' Punctuation 'real? ' Name.Builtin 'z' Name.Variable ')' Punctuation ' ' Text '(' Punctuation '$sin' Name.Function ' ' Text 'z' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'let ' Keyword '(' Punctuation '(' Punctuation 'x' Name.Function ' ' Text '(' Punctuation 'real-part ' Name.Builtin 'z' Name.Variable ')' Punctuation ')' Punctuation ' ' Text '(' Punctuation 'y' Name.Function ' ' Text '(' Punctuation 'imag-part ' Name.Builtin 'z' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n\t' Text '(' Punctuation 'make-rectangular ' Name.Builtin '(' Punctuation '* ' Name.Builtin '(' Punctuation '$sin' Name.Function ' ' Text 'x' Name.Variable ')' Punctuation ' ' Text '(' Punctuation '$cosh' Name.Function ' ' Text 'y' Name.Variable ')' Punctuation ')' Punctuation '\n\t\t\t ' Text '(' Punctuation '* ' Name.Builtin '(' Punctuation '$cos' Name.Function ' ' Text 'x' Name.Variable ')' Punctuation ' ' Text '(' Punctuation '$sinh' Name.Function ' ' Text 'y' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'cos ' Name.Builtin 'z' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'if ' Keyword '(' Punctuation 'real? ' Name.Builtin 'z' Name.Variable ')' Punctuation ' ' Text '(' Punctuation '$cos' Name.Function ' ' Text 'z' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'let ' Keyword '(' Punctuation '(' Punctuation 'x' Name.Function ' ' Text '(' Punctuation 'real-part ' Name.Builtin 'z' Name.Variable ')' Punctuation ')' Punctuation ' ' Text '(' Punctuation 'y' Name.Function ' ' Text '(' Punctuation 'imag-part ' Name.Builtin 'z' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n\t' Text '(' Punctuation 'make-rectangular ' Name.Builtin '(' Punctuation '* ' Name.Builtin '(' Punctuation '$cos' Name.Function ' ' Text 'x' Name.Variable ')' Punctuation ' ' Text '(' Punctuation '$cosh' Name.Function ' ' Text 'y' Name.Variable ')' Punctuation ')' Punctuation '\n\t\t\t ' Text '(' Punctuation '- ' Name.Builtin '(' Punctuation '* ' Name.Builtin '(' Punctuation '$sin' Name.Function ' ' Text 'x' Name.Variable ')' Punctuation ' ' Text '(' Punctuation '$sinh' Name.Function ' ' Text 'y' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'tan ' Name.Builtin 'z' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'if ' Keyword '(' Punctuation 'real? ' Name.Builtin 'z' Name.Variable ')' Punctuation ' ' Text '(' Punctuation '$tan' Name.Function ' ' Text 'z' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'let* ' Keyword '(' Punctuation '(' Punctuation 'x' Name.Function ' ' Text '(' Punctuation '* ' Name.Builtin '2' Literal.Number.Integer ' ' Text '(' Punctuation 'real-part ' Name.Builtin 'z' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n\t ' Text '(' Punctuation 'y' Name.Function ' ' Text '(' Punctuation '* ' Name.Builtin '2' Literal.Number.Integer ' ' Text '(' Punctuation 'imag-part ' Name.Builtin 'z' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n\t ' Text '(' Punctuation 'w' Name.Function ' ' Text '(' Punctuation '+ ' Name.Builtin '(' Punctuation '$cos' Name.Function ' ' Text 'x' Name.Variable ')' Punctuation ' ' Text '(' Punctuation '$cosh' Name.Function ' ' Text 'y' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\t' Text '(' Punctuation 'make-rectangular ' Name.Builtin '(' Punctuation '/ ' Name.Builtin '(' Punctuation '$sin' Name.Function ' ' Text 'x' Name.Variable ')' Punctuation ' ' Text 'w' Name.Variable ')' Punctuation ' ' Text '(' Punctuation '/ ' Name.Builtin '(' Punctuation '$sinh' Name.Function ' ' Text 'y' Name.Variable ')' Punctuation ' ' Text 'w' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'asin ' Name.Builtin 'z' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'if ' Keyword '(' Punctuation 'and ' Keyword '(' Punctuation 'real? ' Name.Builtin 'z' Name.Variable ')' Punctuation ' ' Text '(' Punctuation '>= ' Name.Builtin 'z' Name.Variable ' ' Text '-1' Literal.Number.Integer ')' Punctuation ' ' Text '(' Punctuation '<= ' Name.Builtin 'z' Name.Variable ' ' Text '1' Literal.Number.Integer ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation '$asin' Name.Function ' ' Text 'z' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation '* ' Name.Builtin '-i' Name.Variable ' ' Text '(' Punctuation 'asinh' Name.Function ' ' Text '(' Punctuation '* ' Name.Builtin '+i' Name.Variable ' ' Text 'z' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'acos ' Name.Builtin 'z' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'if ' Keyword '(' Punctuation 'and ' Keyword '(' Punctuation 'real? ' Name.Builtin 'z' Name.Variable ')' Punctuation ' ' Text '(' Punctuation '>= ' Name.Builtin 'z' Name.Variable ' ' Text '-1' Literal.Number.Integer ')' Punctuation ' ' Text '(' Punctuation '<= ' Name.Builtin 'z' Name.Variable ' ' Text '1' Literal.Number.Integer ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation '$acos' Name.Function ' ' Text 'z' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation '+ ' Name.Builtin '(' Punctuation '/ ' Name.Builtin '(' Punctuation 'angle ' Name.Builtin '-1' Literal.Number.Integer ')' Punctuation ' ' Text '2' Literal.Number.Integer ')' Punctuation ' ' Text '(' Punctuation '* ' Name.Builtin '+i' Name.Variable ' ' Text '(' Punctuation 'asinh' Name.Function ' ' Text '(' Punctuation '* ' Name.Builtin '+i' Name.Variable ' ' Text 'z' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'atan ' Name.Builtin 'z' Name.Variable ' ' Text '.' Operator ' ' Text 'y' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'if ' Keyword '(' Punctuation 'null? ' Name.Builtin 'y' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'if ' Keyword '(' Punctuation 'real? ' Name.Builtin 'z' Name.Variable ')' Punctuation ' ' Text '(' Punctuation '$atan' Name.Function ' ' Text 'z' Name.Variable ')' Punctuation '\n\t ' Text '(' Punctuation '/ ' Name.Builtin '(' Punctuation 'log ' Name.Builtin '(' Punctuation '/ ' Name.Builtin '(' Punctuation '- ' Name.Builtin '+i' Name.Variable ' ' Text 'z' Name.Variable ')' Punctuation ' ' Text '(' Punctuation '+ ' Name.Builtin '+i' Name.Variable ' ' Text 'z' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ' ' Text '+2i' Name.Variable ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation '$atan2' Name.Function ' ' Text 'z' Name.Variable ' ' Text '(' Punctuation 'car ' Name.Builtin 'y' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'log10' Name.Function ' ' Text 'arg' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation '/ ' Name.Builtin '(' Punctuation 'log ' Name.Builtin 'arg' Name.Variable ')' Punctuation ' ' Text '(' Punctuation 'log ' Name.Builtin '10' Literal.Number.Integer ')' Punctuation ')' Punctuation ')' Punctuation '\n\n\x0c\n\n' Text ';;; {Reader Extensions}' Comment.Single '\n' Text ';;;' Comment.Single '\n\n' Text ';;; Reader code for various "#c" forms.' Comment.Single '\n' Text ';;;' Comment.Single '\n\n' Text '(' Punctuation 'read-hash-extend' Name.Function ' ' Text "#\\'" Literal.String.Char ' ' Text '(' Punctuation 'lambda ' Keyword '(' Punctuation 'c' Name.Function ' ' Text 'port' Name.Variable ')' Punctuation '\n\t\t\t' Text '(' Punctuation 'read ' Name.Builtin 'port' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define ' Keyword 'read-eval?' Name.Variable ' ' Text '(' Punctuation 'make-fluid' Name.Function ')' Punctuation ')' Punctuation '\n' Text '(' Punctuation 'fluid-set!' Name.Function ' ' Text 'read-eval?' Name.Variable ' ' Text '#f' Name.Constant ')' Punctuation '\n' Text '(' Punctuation 'read-hash-extend' Name.Function ' ' Text '#\\.' Literal.String.Char '\n ' Text '(' Punctuation 'lambda ' Keyword '(' Punctuation 'c' Name.Function ' ' Text 'port' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'if ' Keyword '(' Punctuation 'fluid-ref' Name.Function ' ' Text 'read-eval?' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'eval ' Name.Builtin '(' Punctuation 'read ' Name.Builtin 'port' Name.Variable ')' Punctuation ' ' Text '(' Punctuation 'interaction-environment' Name.Function ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'error' Name.Function '\n ' Text '"#. read expansion found and read-eval? is #f."' Literal.String ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n\x0c\n' Text ';;; {Command Line Options}' Comment.Single '\n' Text ';;;' Comment.Single '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'get-option' Name.Function ' ' Text 'argv' Name.Variable ' ' Text 'kw-opts' Name.Variable ' ' Text 'kw-args' Name.Variable ' ' Text 'return' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'cond' Name.Function '\n ' Text '(' Punctuation '(' Punctuation 'null? ' Name.Builtin 'argv' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'return' Name.Function ' ' Text '#f' Name.Constant ' ' Text '#f' Name.Constant ' ' Text 'argv' Name.Variable ')' Punctuation ')' Punctuation '\n\n ' Text '(' Punctuation '(' Punctuation 'or ' Keyword '(' Punctuation 'not ' Name.Builtin '(' Punctuation 'eq? ' Name.Builtin '#\\-' Literal.String.Char ' ' Text '(' Punctuation 'string-ref ' Name.Builtin '(' Punctuation 'car ' Name.Builtin 'argv' Name.Variable ')' Punctuation ' ' Text '0' Literal.Number.Integer ')' Punctuation ')' Punctuation ')' Punctuation '\n\t' Text '(' Punctuation 'eq? ' Name.Builtin '(' Punctuation 'string-length ' Name.Builtin '(' Punctuation 'car ' Name.Builtin 'argv' Name.Variable ')' Punctuation ')' Punctuation ' ' Text '1' Literal.Number.Integer ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'return' Name.Function ' ' Text "'normal-arg" Literal.String.Symbol ' ' Text '(' Punctuation 'car ' Name.Builtin 'argv' Name.Variable ')' Punctuation ' ' Text '(' Punctuation 'cdr ' Name.Builtin 'argv' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n\n ' Text '(' Punctuation '(' Punctuation 'eq? ' Name.Builtin '#\\-' Literal.String.Char ' ' Text '(' Punctuation 'string-ref ' Name.Builtin '(' Punctuation 'car ' Name.Builtin 'argv' Name.Variable ')' Punctuation ' ' Text '1' Literal.Number.Integer ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'let* ' Keyword '(' Punctuation '(' Punctuation 'kw-arg-pos' Name.Function ' ' Text '(' Punctuation 'or ' Keyword '(' Punctuation 'string-index' Name.Function ' ' Text '(' Punctuation 'car ' Name.Builtin 'argv' Name.Variable ')' Punctuation ' ' Text '#\\=' Literal.String.Char ')' Punctuation '\n\t\t\t ' Text '(' Punctuation 'string-length ' Name.Builtin '(' Punctuation 'car ' Name.Builtin 'argv' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\t ' Text '(' Punctuation 'kw' Name.Function ' ' Text '(' Punctuation 'symbol->keyword' Name.Function ' ' Text '(' Punctuation 'substring ' Name.Builtin '(' Punctuation 'car ' Name.Builtin 'argv' Name.Variable ')' Punctuation ' ' Text '2' Literal.Number.Integer ' ' Text 'kw-arg-pos' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n\t ' Text '(' Punctuation 'kw-opt?' Name.Function ' ' Text '(' Punctuation 'member ' Name.Builtin 'kw' Name.Variable ' ' Text 'kw-opts' Name.Variable ')' Punctuation ')' Punctuation '\n\t ' Text '(' Punctuation 'kw-arg?' Name.Function ' ' Text '(' Punctuation 'member ' Name.Builtin 'kw' Name.Variable ' ' Text 'kw-args' Name.Variable ')' Punctuation ')' Punctuation '\n\t ' Text '(' Punctuation 'arg' Name.Function ' ' Text '(' Punctuation 'or ' Keyword '(' Punctuation 'and ' Keyword '(' Punctuation 'not ' Name.Builtin '(' Punctuation 'eq? ' Name.Builtin 'kw-arg-pos' Name.Variable ' ' Text '(' Punctuation 'string-length ' Name.Builtin '(' Punctuation 'car ' Name.Builtin 'argv' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\t\t\t ' Text '(' Punctuation 'substring ' Name.Builtin '(' Punctuation 'car ' Name.Builtin 'argv' Name.Variable ')' Punctuation '\n\t\t\t\t ' Text '(' Punctuation '+ ' Name.Builtin 'kw-arg-pos' Name.Variable ' ' Text '1' Literal.Number.Integer ')' Punctuation '\n\t\t\t\t ' Text '(' Punctuation 'string-length ' Name.Builtin '(' Punctuation 'car ' Name.Builtin 'argv' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\t\t ' Text '(' Punctuation 'and ' Keyword 'kw-arg?' Name.Variable '\n\t\t\t ' Text '(' Punctuation 'begin ' Keyword '(' Punctuation 'set! ' Keyword 'argv' Name.Variable ' ' Text '(' Punctuation 'cdr ' Name.Builtin 'argv' Name.Variable ')' Punctuation ')' Punctuation ' ' Text '(' Punctuation 'car ' Name.Builtin 'argv' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'if ' Keyword '(' Punctuation 'or ' Keyword 'kw-opt?' Name.Variable ' ' Text 'kw-arg?' Name.Variable ')' Punctuation '\n\t ' Text '(' Punctuation 'return' Name.Function ' ' Text 'kw' Name.Variable ' ' Text 'arg' Name.Variable ' ' Text '(' Punctuation 'cdr ' Name.Builtin 'argv' Name.Variable ')' Punctuation ')' Punctuation '\n\t ' Text '(' Punctuation 'return' Name.Function ' ' Text "'usage-error" Literal.String.Symbol ' ' Text 'kw' Name.Variable ' ' Text '(' Punctuation 'cdr ' Name.Builtin 'argv' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n ' Text '(' Punctuation 'else' Name.Function '\n ' Text '(' Punctuation 'let* ' Keyword '(' Punctuation '(' Punctuation 'char' Name.Function ' ' Text '(' Punctuation 'substring ' Name.Builtin '(' Punctuation 'car ' Name.Builtin 'argv' Name.Variable ')' Punctuation ' ' Text '1' Literal.Number.Integer ' ' Text '2' Literal.Number.Integer ')' Punctuation ')' Punctuation '\n\t ' Text '(' Punctuation 'kw' Name.Function ' ' Text '(' Punctuation 'symbol->keyword' Name.Function ' ' Text 'char' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'cond' Name.Function '\n\n ' Text '(' Punctuation '(' Punctuation 'member ' Name.Builtin 'kw' Name.Variable ' ' Text 'kw-opts' Name.Variable ')' Punctuation '\n\t' Text '(' Punctuation 'let* ' Keyword '(' Punctuation '(' Punctuation 'rest-car' Name.Function ' ' Text '(' Punctuation 'substring ' Name.Builtin '(' Punctuation 'car ' Name.Builtin 'argv' Name.Variable ')' Punctuation ' ' Text '2' Literal.Number.Integer ' ' Text '(' Punctuation 'string-length ' Name.Builtin '(' Punctuation 'car ' Name.Builtin 'argv' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\t ' Text '(' Punctuation 'new-argv' Name.Function ' ' Text '(' Punctuation 'if ' Keyword '(' Punctuation '= ' Name.Builtin '0' Literal.Number.Integer ' ' Text '(' Punctuation 'string-length ' Name.Builtin 'rest-car' Name.Variable ')' Punctuation ')' Punctuation '\n\t\t\t ' Text '(' Punctuation 'cdr ' Name.Builtin 'argv' Name.Variable ')' Punctuation '\n\t\t\t ' Text '(' Punctuation 'cons ' Name.Builtin '(' Punctuation 'string-append ' Name.Builtin '"-"' Literal.String ' ' Text 'rest-car' Name.Variable ')' Punctuation ' ' Text '(' Punctuation 'cdr ' Name.Builtin 'argv' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\t ' Text '(' Punctuation 'return' Name.Function ' ' Text 'kw' Name.Variable ' ' Text '#f' Name.Constant ' ' Text 'new-argv' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n\n ' Text '(' Punctuation '(' Punctuation 'member ' Name.Builtin 'kw' Name.Variable ' ' Text 'kw-args' Name.Variable ')' Punctuation '\n\t' Text '(' Punctuation 'let* ' Keyword '(' Punctuation '(' Punctuation 'rest-car' Name.Function ' ' Text '(' Punctuation 'substring ' Name.Builtin '(' Punctuation 'car ' Name.Builtin 'argv' Name.Variable ')' Punctuation ' ' Text '2' Literal.Number.Integer ' ' Text '(' Punctuation 'string-length ' Name.Builtin '(' Punctuation 'car ' Name.Builtin 'argv' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\t ' Text '(' Punctuation 'arg' Name.Function ' ' Text '(' Punctuation 'if ' Keyword '(' Punctuation '= ' Name.Builtin '0' Literal.Number.Integer ' ' Text '(' Punctuation 'string-length ' Name.Builtin 'rest-car' Name.Variable ')' Punctuation ')' Punctuation '\n\t\t\t' Text '(' Punctuation 'cadr ' Name.Builtin 'argv' Name.Variable ')' Punctuation '\n\t\t\t' Text 'rest-car' Name.Variable ')' Punctuation ')' Punctuation '\n\t ' Text '(' Punctuation 'new-argv' Name.Function ' ' Text '(' Punctuation 'if ' Keyword '(' Punctuation '= ' Name.Builtin '0' Literal.Number.Integer ' ' Text '(' Punctuation 'string-length ' Name.Builtin 'rest-car' Name.Variable ')' Punctuation ')' Punctuation '\n\t\t\t ' Text '(' Punctuation 'cddr ' Name.Builtin 'argv' Name.Variable ')' Punctuation '\n\t\t\t ' Text '(' Punctuation 'cdr ' Name.Builtin 'argv' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\t ' Text '(' Punctuation 'return' Name.Function ' ' Text 'kw' Name.Variable ' ' Text 'arg' Name.Variable ' ' Text 'new-argv' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n\n ' Text '(' Punctuation 'else ' Keyword '(' Punctuation 'return' Name.Function ' ' Text "'usage-error" Literal.String.Symbol ' ' Text 'kw' Name.Variable ' ' Text 'argv' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'for-next-option' Name.Function ' ' Text 'proc' Name.Variable ' ' Text 'argv' Name.Variable ' ' Text 'kw-opts' Name.Variable ' ' Text 'kw-args' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'let ' Keyword 'loop' Name.Variable ' ' Text '(' Punctuation '(' Punctuation 'argv' Name.Function ' ' Text 'argv' Name.Variable ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'get-option' Name.Function ' ' Text 'argv' Name.Variable ' ' Text 'kw-opts' Name.Variable ' ' Text 'kw-args' Name.Variable '\n\t\t' Text '(' Punctuation 'lambda ' Keyword '(' Punctuation 'opt' Name.Function ' ' Text 'opt-arg' Name.Variable ' ' Text 'argv' Name.Variable ')' Punctuation '\n\t\t ' Text '(' Punctuation 'and ' Keyword 'opt' Name.Variable ' ' Text '(' Punctuation 'proc' Name.Function ' ' Text 'opt' Name.Variable ' ' Text 'opt-arg' Name.Variable ' ' Text 'argv' Name.Variable ' ' Text 'loop' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'display-usage-report' Name.Function ' ' Text 'kw-desc' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'for-each' Name.Function '\n ' Text '(' Punctuation 'lambda ' Keyword '(' Punctuation 'kw' Name.Function ')' Punctuation '\n ' Text '(' Punctuation 'or ' Keyword '(' Punctuation 'eq? ' Name.Builtin '(' Punctuation 'car ' Name.Builtin 'kw' Name.Variable ')' Punctuation ' ' Text '#t' Name.Constant ')' Punctuation '\n\t ' Text '(' Punctuation 'eq? ' Name.Builtin '(' Punctuation 'car ' Name.Builtin 'kw' Name.Variable ')' Punctuation ' ' Text "'else" Literal.String.Symbol ')' Punctuation '\n\t ' Text '(' Punctuation 'let* ' Keyword '(' Punctuation '(' Punctuation 'opt-desc' Name.Function ' ' Text 'kw' Name.Variable ')' Punctuation '\n\t\t' Text '(' Punctuation 'help' Name.Function ' ' Text '(' Punctuation 'cadr ' Name.Builtin 'opt-desc' Name.Variable ')' Punctuation ')' Punctuation '\n\t\t' Text '(' Punctuation 'opts' Name.Function ' ' Text '(' Punctuation 'car ' Name.Builtin 'opt-desc' Name.Variable ')' Punctuation ')' Punctuation '\n\t\t' Text '(' Punctuation 'opts-proper' Name.Function ' ' Text '(' Punctuation 'if ' Keyword '(' Punctuation 'string? ' Name.Builtin '(' Punctuation 'car ' Name.Builtin 'opts' Name.Variable ')' Punctuation ')' Punctuation ' ' Text '(' Punctuation 'cdr ' Name.Builtin 'opts' Name.Variable ')' Punctuation ' ' Text 'opts' Name.Variable ')' Punctuation ')' Punctuation '\n\t\t' Text '(' Punctuation 'arg-name' Name.Function ' ' Text '(' Punctuation 'if ' Keyword '(' Punctuation 'string? ' Name.Builtin '(' Punctuation 'car ' Name.Builtin 'opts' Name.Variable ')' Punctuation ')' Punctuation '\n\t\t\t ' Text '(' Punctuation 'string-append ' Name.Builtin '"<"' Literal.String ' ' Text '(' Punctuation 'car ' Name.Builtin 'opts' Name.Variable ')' Punctuation ' ' Text '">"' Literal.String ')' Punctuation '\n\t\t\t ' Text '""' Literal.String ')' Punctuation ')' Punctuation '\n\t\t' Text '(' Punctuation 'left-part' Name.Function ' ' Text '(' Punctuation 'string-append' Name.Function '\n\t\t\t ' Text '(' Punctuation 'with-output-to-string' Name.Function '\n\t\t\t ' Text '(' Punctuation 'lambda ' Keyword '(' Punctuation ')' Punctuation '\n\t\t\t\t' Text '(' Punctuation 'map ' Name.Builtin '(' Punctuation 'lambda ' Keyword '(' Punctuation 'x' Name.Function ')' Punctuation ' ' Text '(' Punctuation 'display ' Name.Builtin '(' Punctuation 'keyword->symbol' Name.Function ' ' Text 'x' Name.Variable ')' Punctuation ')' Punctuation ' ' Text '(' Punctuation 'display ' Name.Builtin '" "' Literal.String ')' Punctuation ')' Punctuation '\n\t\t\t\t ' Text 'opts-proper' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n\t\t\t ' Text 'arg-name' Name.Variable ')' Punctuation ')' Punctuation '\n\t\t' Text '(' Punctuation 'middle-part' Name.Function ' ' Text '(' Punctuation 'if ' Keyword '(' Punctuation 'and ' Keyword '(' Punctuation '< ' Name.Builtin '(' Punctuation 'string-length ' Name.Builtin 'left-part' Name.Variable ')' Punctuation ' ' Text '30' Literal.Number.Integer ')' Punctuation '\n\t\t\t\t ' Text '(' Punctuation '< ' Name.Builtin '(' Punctuation 'string-length ' Name.Builtin 'help' Name.Variable ')' Punctuation ' ' Text '40' Literal.Number.Integer ')' Punctuation ')' Punctuation '\n\t\t\t\t ' Text '(' Punctuation 'make-string ' Name.Builtin '(' Punctuation '- ' Name.Builtin '30' Literal.Number.Integer ' ' Text '(' Punctuation 'string-length ' Name.Builtin 'left-part' Name.Variable ')' Punctuation ')' Punctuation ' ' Text '#\\ ' Literal.String.Char ')' Punctuation '\n\t\t\t\t ' Text '"\\n\\t"' Literal.String ')' Punctuation ')' Punctuation ')' Punctuation '\n\t ' Text '(' Punctuation 'display ' Name.Builtin 'left-part' Name.Variable ')' Punctuation '\n\t ' Text '(' Punctuation 'display ' Name.Builtin 'middle-part' Name.Variable ')' Punctuation '\n\t ' Text '(' Punctuation 'display ' Name.Builtin 'help' Name.Variable ')' Punctuation '\n\t ' Text '(' Punctuation 'newline' Name.Function ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text 'kw-desc' Name.Variable ')' Punctuation ')' Punctuation '\n\n\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'transform-usage-lambda' Name.Function ' ' Text 'cases' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'let* ' Keyword '(' Punctuation '(' Punctuation 'raw-usage' Name.Function ' ' Text '(' Punctuation 'delq!' Name.Function ' ' Text "'else" Literal.String.Symbol ' ' Text '(' Punctuation 'map ' Name.Builtin 'car' Name.Variable ' ' Text 'cases' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n\t ' Text '(' Punctuation 'usage-sans-specials' Name.Function ' ' Text '(' Punctuation 'map ' Name.Builtin '(' Punctuation 'lambda ' Keyword '(' Punctuation 'x' Name.Function ')' Punctuation '\n\t\t\t\t ' Text '(' Punctuation 'or ' Keyword '(' Punctuation 'and ' Keyword '(' Punctuation 'not ' Name.Builtin '(' Punctuation 'list? ' Name.Builtin 'x' Name.Variable ')' Punctuation ')' Punctuation ' ' Text 'x' Name.Variable ')' Punctuation '\n\t\t\t\t\t' Text '(' Punctuation 'and ' Keyword '(' Punctuation 'symbol? ' Name.Builtin '(' Punctuation 'car ' Name.Builtin 'x' Name.Variable ')' Punctuation ')' Punctuation ' ' Text '#t' Name.Constant ')' Punctuation '\n\t\t\t\t\t' Text '(' Punctuation 'and ' Keyword '(' Punctuation 'boolean? ' Name.Builtin '(' Punctuation 'car ' Name.Builtin 'x' Name.Variable ')' Punctuation ')' Punctuation ' ' Text '#t' Name.Constant ')' Punctuation '\n\t\t\t\t\t' Text 'x' Name.Variable ')' Punctuation ')' Punctuation '\n\t\t\t\t ' Text 'raw-usage' Name.Variable ')' Punctuation ')' Punctuation '\n\t ' Text '(' Punctuation 'usage-desc' Name.Function ' ' Text '(' Punctuation 'delq!' Name.Function ' ' Text '#t' Name.Constant ' ' Text 'usage-sans-specials' Name.Variable ')' Punctuation ')' Punctuation '\n\t ' Text '(' Punctuation 'kw-desc' Name.Function ' ' Text '(' Punctuation 'map ' Name.Builtin 'car' Name.Variable ' ' Text 'usage-desc' Name.Variable ')' Punctuation ')' Punctuation '\n\t ' Text '(' Punctuation 'kw-opts' Name.Function ' ' Text '(' Punctuation 'apply ' Name.Builtin 'append' Name.Variable ' ' Text '(' Punctuation 'map ' Name.Builtin '(' Punctuation 'lambda ' Keyword '(' Punctuation 'x' Name.Function ')' Punctuation ' ' Text '(' Punctuation 'and ' Keyword '(' Punctuation 'not ' Name.Builtin '(' Punctuation 'string? ' Name.Builtin '(' Punctuation 'car ' Name.Builtin 'x' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ' ' Text 'x' Name.Variable ')' Punctuation ')' Punctuation ' ' Text 'kw-desc' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n\t ' Text '(' Punctuation 'kw-args' Name.Function ' ' Text '(' Punctuation 'apply ' Name.Builtin 'append' Name.Variable ' ' Text '(' Punctuation 'map ' Name.Builtin '(' Punctuation 'lambda ' Keyword '(' Punctuation 'x' Name.Function ')' Punctuation ' ' Text '(' Punctuation 'and ' Keyword '(' Punctuation 'string? ' Name.Builtin '(' Punctuation 'car ' Name.Builtin 'x' Name.Variable ')' Punctuation ')' Punctuation ' ' Text '(' Punctuation 'cdr ' Name.Builtin 'x' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ' ' Text 'kw-desc' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n\t ' Text '(' Punctuation 'transmogrified-cases' Name.Function ' ' Text '(' Punctuation 'map ' Name.Builtin '(' Punctuation 'lambda ' Keyword '(' Punctuation 'case' Name.Function ')' Punctuation '\n\t\t\t\t ' Text '(' Punctuation 'cons ' Name.Builtin '(' Punctuation 'let ' Keyword '(' Punctuation '(' Punctuation 'opts' Name.Function ' ' Text '(' Punctuation 'car ' Name.Builtin 'case' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n\t\t\t\t\t ' Text '(' Punctuation 'if ' Keyword '(' Punctuation 'or ' Keyword '(' Punctuation 'boolean? ' Name.Builtin 'opts' Name.Variable ')' Punctuation ' ' Text '(' Punctuation 'eq? ' Name.Builtin "'else" Literal.String.Symbol ' ' Text 'opts' Name.Variable ')' Punctuation ')' Punctuation '\n\t\t\t\t\t\t ' Text 'opts' Name.Variable '\n\t\t\t\t\t\t ' Text '(' Punctuation 'cond' Name.Function '\n\t\t\t\t\t\t ' Text '(' Punctuation '(' Punctuation 'symbol? ' Name.Builtin '(' Punctuation 'car ' Name.Builtin 'opts' Name.Variable ')' Punctuation ')' Punctuation ' ' Text 'opts' Name.Variable ')' Punctuation '\n\t\t\t\t\t\t ' Text '(' Punctuation '(' Punctuation 'boolean? ' Name.Builtin '(' Punctuation 'car ' Name.Builtin 'opts' Name.Variable ')' Punctuation ')' Punctuation ' ' Text 'opts' Name.Variable ')' Punctuation '\n\t\t\t\t\t\t ' Text '(' Punctuation '(' Punctuation 'string? ' Name.Builtin '(' Punctuation 'caar ' Name.Builtin 'opts' Name.Variable ')' Punctuation ')' Punctuation ' ' Text '(' Punctuation 'cdar ' Name.Builtin 'opts' Name.Variable ')' Punctuation ')' Punctuation '\n\t\t\t\t\t\t ' Text '(' Punctuation 'else ' Keyword '(' Punctuation 'car ' Name.Builtin 'opts' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\t\t\t\t\t ' Text '(' Punctuation 'cdr ' Name.Builtin 'case' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n\t\t\t\t ' Text 'cases' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '`' Operator '(' Punctuation 'let ' Keyword '(' Punctuation '(' Punctuation '%display-usage' Name.Function ' ' Text '(' Punctuation 'lambda ' Keyword '(' Punctuation ')' Punctuation ' ' Text '(' Punctuation 'display-usage-report' Name.Function ' ' Text "',usage-desc" Literal.String.Symbol ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'lambda ' Keyword '(' Punctuation '%argv' Name.Function ')' Punctuation '\n\t ' Text '(' Punctuation 'let ' Keyword '%next-arg' Name.Variable ' ' Text '(' Punctuation '(' Punctuation '%argv' Name.Function ' ' Text '%argv' Name.Variable ')' Punctuation ')' Punctuation '\n\t ' Text '(' Punctuation 'get-option' Name.Function ' ' Text '%argv' Name.Variable '\n\t\t ' Text "',kw-opts" Literal.String.Symbol '\n\t\t ' Text "',kw-args" Literal.String.Symbol '\n\t\t ' Text '(' Punctuation 'lambda ' Keyword '(' Punctuation '%opt' Name.Function ' ' Text '%arg' Name.Variable ' ' Text '%new-argv' Name.Variable ')' Punctuation '\n\t\t\t ' Text '(' Punctuation 'case ' Keyword '%opt' Name.Variable '\n\t\t\t ' Text ',@' Operator ' ' Text 'transmogrified-cases' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n\n\x0c\n\n' Text ';;; {Low Level Modules}' Comment.Single '\n' Text ';;;' Comment.Single '\n' Text ';;; These are the low level data structures for modules.' Comment.Single '\n' Text ';;;' Comment.Single '\n' Text ';;; !!! warning: The interface to lazy binder procedures is going' Comment.Single '\n' Text ';;; to be changed in an incompatible way to permit all the basic' Comment.Single '\n' Text ';;; module ops to be virtualized.' Comment.Single '\n' Text ';;;' Comment.Single '\n' Text ';;; (make-module size use-list lazy-binding-proc) => module' Comment.Single '\n' Text ';;; module-{obarray,uses,binder}[|-set!]' Comment.Single '\n' Text ';;; (module? obj) => [#t|#f]' Comment.Single '\n' Text ';;; (module-locally-bound? module symbol) => [#t|#f]' Comment.Single '\n' Text ';;; (module-bound? module symbol) => [#t|#f]' Comment.Single '\n' Text ';;; (module-symbol-locally-interned? module symbol) => [#t|#f]' Comment.Single '\n' Text ';;; (module-symbol-interned? module symbol) => [#t|#f]' Comment.Single '\n' Text ';;; (module-local-variable module symbol) => [# | #f]' Comment.Single '\n' Text ';;; (module-variable module symbol) => [# | #f]' Comment.Single '\n' Text ';;; (module-symbol-binding module symbol opt-value)' Comment.Single '\n' Text ';;;\t\t=> [ | opt-value | an error occurs ]' Comment.Single '\n' Text ';;; (module-make-local-var! module symbol) => #' Comment.Single '\n' Text ';;; (module-add! module symbol var) => unspecified' Comment.Single '\n' Text ';;; (module-remove! module symbol) => unspecified' Comment.Single '\n' Text ';;; (module-for-each proc module) => unspecified' Comment.Single '\n' Text ';;; (make-scm-module) => module ; a lazy copy of the symhash module' Comment.Single '\n' Text ';;; (set-current-module module) => unspecified' Comment.Single '\n' Text ';;; (current-module) => #' Comment.Single '\n' Text ';;;' Comment.Single '\n' Text ';;;' Comment.Single '\n\n\x0c\n' Text ';;; {Printing Modules}' Comment.Single '\n' Text ';; This is how modules are printed. You can re-define it.' Comment.Single '\n' Text ';; (Redefining is actually more complicated than simply redefining' Comment.Single '\n' Text ';; %print-module because that would only change the binding and not' Comment.Single '\n' Text ';; the value stored in the vtable that determines how record are' Comment.Single '\n' Text ';; printed. Sigh.)' Comment.Single '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation '%print-module' Name.Function ' ' Text 'mod' Name.Variable ' ' Text 'port' Name.Variable ')' Punctuation ' ' Text '; unused args: depth length style table)' Comment.Single '\n ' Text '(' Punctuation 'display ' Name.Builtin '"#<"' Literal.String ' ' Text 'port' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'display ' Name.Builtin '(' Punctuation 'or ' Keyword '(' Punctuation 'module-kind' Name.Function ' ' Text 'mod' Name.Variable ')' Punctuation ' ' Text '"module"' Literal.String ')' Punctuation ' ' Text 'port' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'let ' Keyword '(' Punctuation '(' Punctuation 'name' Name.Function ' ' Text '(' Punctuation 'module-name' Name.Function ' ' Text 'mod' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'if ' Keyword 'name' Name.Variable '\n\t' Text '(' Punctuation 'begin' Name.Function '\n\t ' Text '(' Punctuation 'display ' Name.Builtin '" "' Literal.String ' ' Text 'port' Name.Variable ')' Punctuation '\n\t ' Text '(' Punctuation 'display ' Name.Builtin 'name' Name.Variable ' ' Text 'port' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'display ' Name.Builtin '" "' Literal.String ' ' Text 'port' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'display ' Name.Builtin '(' Punctuation 'number->string ' Name.Builtin '(' Punctuation 'object-address' Name.Function ' ' Text 'mod' Name.Variable ')' Punctuation ' ' Text '16' Literal.Number.Integer ')' Punctuation ' ' Text 'port' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'display ' Name.Builtin '">"' Literal.String ' ' Text 'port' Name.Variable ')' Punctuation ')' Punctuation '\n\n' Text ';; module-type' Comment.Single '\n' Text ';;' Comment.Single '\n' Text ';; A module is characterized by an obarray in which local symbols' Comment.Single '\n' Text ';; are interned, a list of modules, "uses", from which non-local' Comment.Single '\n' Text ';; bindings can be inherited, and an optional lazy-binder which' Comment.Single '\n' Text ';; is a (CLOSURE module symbol) which, as a last resort, can provide' Comment.Single '\n' Text ';; bindings that would otherwise not be found locally in the module.' Comment.Single '\n' Text ';;' Comment.Single '\n' Text ';; NOTE: If you change here, you also need to change libguile/modules.h.' Comment.Single '\n' Text ';;' Comment.Single '\n' Text '(' Punctuation 'define ' Keyword 'module-type' Name.Variable '\n ' Text '(' Punctuation 'make-record-type' Name.Function ' ' Text "'module" Literal.String.Symbol '\n\t\t ' Text "'" Operator '(' Punctuation 'obarray' Name.Variable ' ' Text 'uses' Name.Variable ' ' Text 'binder' Name.Variable ' ' Text 'eval-closure' Name.Variable ' ' Text 'transformer' Name.Variable ' ' Text 'name' Name.Variable ' ' Text 'kind' Name.Variable '\n\t\t\t ' Text 'observers' Name.Variable ' ' Text 'weak-observers' Name.Variable ' ' Text 'observer-id' Name.Variable ')' Punctuation '\n\t\t ' Text '%print-module' Name.Variable ')' Punctuation ')' Punctuation '\n\n' Text ';; make-module &opt size uses binder' Comment.Single '\n' Text ';;' Comment.Single '\n' Text ';; Create a new module, perhaps with a particular size of obarray,' Comment.Single '\n' Text ';; initial uses list, or binding procedure.' Comment.Single '\n' Text ';;' Comment.Single '\n' Text '(' Punctuation 'define ' Keyword 'make-module' Name.Variable '\n ' Text '(' Punctuation 'lambda ' Keyword 'args' Name.Variable '\n\n ' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'parse-arg' Name.Function ' ' Text 'index' Name.Variable ' ' Text 'default' Name.Variable ')' Punctuation '\n\t' Text '(' Punctuation 'if ' Keyword '(' Punctuation '> ' Name.Builtin '(' Punctuation 'length ' Name.Builtin 'args' Name.Variable ')' Punctuation ' ' Text 'index' Name.Variable ')' Punctuation '\n\t ' Text '(' Punctuation 'list-ref ' Name.Builtin 'args' Name.Variable ' ' Text 'index' Name.Variable ')' Punctuation '\n\t ' Text 'default' Name.Variable ')' Punctuation ')' Punctuation '\n\n ' Text '(' Punctuation 'if ' Keyword '(' Punctuation '> ' Name.Builtin '(' Punctuation 'length ' Name.Builtin 'args' Name.Variable ')' Punctuation ' ' Text '3' Literal.Number.Integer ')' Punctuation '\n\t ' Text '(' Punctuation 'error' Name.Function ' ' Text '"Too many args to make-module."' Literal.String ' ' Text 'args' Name.Variable ')' Punctuation ')' Punctuation '\n\n ' Text '(' Punctuation 'let ' Keyword '(' Punctuation '(' Punctuation 'size' Name.Function ' ' Text '(' Punctuation 'parse-arg' Name.Function ' ' Text '0' Literal.Number.Integer ' ' Text '1021' Literal.Number.Integer ')' Punctuation ')' Punctuation '\n\t ' Text '(' Punctuation 'uses' Name.Function ' ' Text '(' Punctuation 'parse-arg' Name.Function ' ' Text '1' Literal.Number.Integer ' ' Text "'" Operator '(' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\t ' Text '(' Punctuation 'binder' Name.Function ' ' Text '(' Punctuation 'parse-arg' Name.Function ' ' Text '2' Literal.Number.Integer ' ' Text '#f' Name.Constant ')' Punctuation ')' Punctuation ')' Punctuation '\n\n\t' Text '(' Punctuation 'if ' Keyword '(' Punctuation 'not ' Name.Builtin '(' Punctuation 'integer? ' Name.Builtin 'size' Name.Variable ')' Punctuation ')' Punctuation '\n\t ' Text '(' Punctuation 'error' Name.Function ' ' Text '"Illegal size to make-module."' Literal.String ' ' Text 'size' Name.Variable ')' Punctuation ')' Punctuation '\n\t' Text '(' Punctuation 'if ' Keyword '(' Punctuation 'not ' Name.Builtin '(' Punctuation 'and ' Keyword '(' Punctuation 'list? ' Name.Builtin 'uses' Name.Variable ')' Punctuation '\n\t\t ' Text '(' Punctuation 'and-map' Name.Function ' ' Text 'module?' Name.Variable ' ' Text 'uses' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n\t ' Text '(' Punctuation 'error' Name.Function ' ' Text '"Incorrect use list."' Literal.String ' ' Text 'uses' Name.Variable ')' Punctuation ')' Punctuation '\n\t' Text '(' Punctuation 'if ' Keyword '(' Punctuation 'and ' Keyword 'binder' Name.Variable ' ' Text '(' Punctuation 'not ' Name.Builtin '(' Punctuation 'procedure? ' Name.Builtin 'binder' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n\t ' Text '(' Punctuation 'error' Name.Function '\n\t ' Text '"Lazy-binder expected to be a procedure or #f."' Literal.String ' ' Text 'binder' Name.Variable ')' Punctuation ')' Punctuation '\n\n\t' Text '(' Punctuation 'let ' Keyword '(' Punctuation '(' Punctuation 'module' Name.Function ' ' Text '(' Punctuation 'module-constructor' Name.Function ' ' Text '(' Punctuation 'make-vector ' Name.Builtin 'size' Name.Variable ' ' Text "'" Operator '(' Punctuation ')' Punctuation ')' Punctuation '\n\t\t\t\t\t ' Text 'uses' Name.Variable ' ' Text 'binder' Name.Variable ' ' Text '#f' Name.Constant ' ' Text '#f' Name.Constant ' ' Text '#f' Name.Constant ' ' Text '#f' Name.Constant '\n\t\t\t\t\t ' Text "'" Operator '(' Punctuation ')' Punctuation '\n\t\t\t\t\t ' Text '(' Punctuation 'make-weak-value-hash-table' Name.Function ' ' Text '31' Literal.Number.Integer ')' Punctuation '\n\t\t\t\t\t ' Text '0' Literal.Number.Integer ')' Punctuation ')' Punctuation ')' Punctuation '\n\n\t ' Text ";; We can't pass this as an argument to module-constructor," Comment.Single '\n\t ' Text ';; because we need it to close over a pointer to the module' Comment.Single '\n\t ' Text ';; itself.' Comment.Single '\n\t ' Text '(' Punctuation 'set-module-eval-closure!' Name.Function ' ' Text 'module' Name.Variable ' ' Text '(' Punctuation 'standard-eval-closure' Name.Function ' ' Text 'module' Name.Variable ')' Punctuation ')' Punctuation '\n\n\t ' Text 'module' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define ' Keyword 'module-constructor' Name.Variable ' ' Text '(' Punctuation 'record-constructor' Name.Function ' ' Text 'module-type' Name.Variable ')' Punctuation ')' Punctuation '\n' Text '(' Punctuation 'define ' Keyword 'module-obarray' Name.Variable ' ' Text '(' Punctuation 'record-accessor' Name.Function ' ' Text 'module-type' Name.Variable ' ' Text "'obarray" Literal.String.Symbol ')' Punctuation ')' Punctuation '\n' Text '(' Punctuation 'define ' Keyword 'set-module-obarray!' Name.Variable ' ' Text '(' Punctuation 'record-modifier' Name.Function ' ' Text 'module-type' Name.Variable ' ' Text "'obarray" Literal.String.Symbol ')' Punctuation ')' Punctuation '\n' Text '(' Punctuation 'define ' Keyword 'module-uses' Name.Variable ' ' Text '(' Punctuation 'record-accessor' Name.Function ' ' Text 'module-type' Name.Variable ' ' Text "'uses" Literal.String.Symbol ')' Punctuation ')' Punctuation '\n' Text '(' Punctuation 'define ' Keyword 'set-module-uses!' Name.Variable ' ' Text '(' Punctuation 'record-modifier' Name.Function ' ' Text 'module-type' Name.Variable ' ' Text "'uses" Literal.String.Symbol ')' Punctuation ')' Punctuation '\n' Text '(' Punctuation 'define ' Keyword 'module-binder' Name.Variable ' ' Text '(' Punctuation 'record-accessor' Name.Function ' ' Text 'module-type' Name.Variable ' ' Text "'binder" Literal.String.Symbol ')' Punctuation ')' Punctuation '\n' Text '(' Punctuation 'define ' Keyword 'set-module-binder!' Name.Variable ' ' Text '(' Punctuation 'record-modifier' Name.Function ' ' Text 'module-type' Name.Variable ' ' Text "'binder" Literal.String.Symbol ')' Punctuation ')' Punctuation '\n\n' Text ';; NOTE: This binding is used in libguile/modules.c.' Comment.Single '\n' Text '(' Punctuation 'define ' Keyword 'module-eval-closure' Name.Variable ' ' Text '(' Punctuation 'record-accessor' Name.Function ' ' Text 'module-type' Name.Variable ' ' Text "'eval-closure" Literal.String.Symbol ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define ' Keyword 'module-transformer' Name.Variable ' ' Text '(' Punctuation 'record-accessor' Name.Function ' ' Text 'module-type' Name.Variable ' ' Text "'transformer" Literal.String.Symbol ')' Punctuation ')' Punctuation '\n' Text '(' Punctuation 'define ' Keyword 'set-module-transformer!' Name.Variable ' ' Text '(' Punctuation 'record-modifier' Name.Function ' ' Text 'module-type' Name.Variable ' ' Text "'transformer" Literal.String.Symbol ')' Punctuation ')' Punctuation '\n' Text '(' Punctuation 'define ' Keyword 'module-name' Name.Variable ' ' Text '(' Punctuation 'record-accessor' Name.Function ' ' Text 'module-type' Name.Variable ' ' Text "'name" Literal.String.Symbol ')' Punctuation ')' Punctuation '\n' Text '(' Punctuation 'define ' Keyword 'set-module-name!' Name.Variable ' ' Text '(' Punctuation 'record-modifier' Name.Function ' ' Text 'module-type' Name.Variable ' ' Text "'name" Literal.String.Symbol ')' Punctuation ')' Punctuation '\n' Text '(' Punctuation 'define ' Keyword 'module-kind' Name.Variable ' ' Text '(' Punctuation 'record-accessor' Name.Function ' ' Text 'module-type' Name.Variable ' ' Text "'kind" Literal.String.Symbol ')' Punctuation ')' Punctuation '\n' Text '(' Punctuation 'define ' Keyword 'set-module-kind!' Name.Variable ' ' Text '(' Punctuation 'record-modifier' Name.Function ' ' Text 'module-type' Name.Variable ' ' Text "'kind" Literal.String.Symbol ')' Punctuation ')' Punctuation '\n' Text '(' Punctuation 'define ' Keyword 'module-observers' Name.Variable ' ' Text '(' Punctuation 'record-accessor' Name.Function ' ' Text 'module-type' Name.Variable ' ' Text "'observers" Literal.String.Symbol ')' Punctuation ')' Punctuation '\n' Text '(' Punctuation 'define ' Keyword 'set-module-observers!' Name.Variable ' ' Text '(' Punctuation 'record-modifier' Name.Function ' ' Text 'module-type' Name.Variable ' ' Text "'observers" Literal.String.Symbol ')' Punctuation ')' Punctuation '\n' Text '(' Punctuation 'define ' Keyword 'module-weak-observers' Name.Variable ' ' Text '(' Punctuation 'record-accessor' Name.Function ' ' Text 'module-type' Name.Variable ' ' Text "'weak-observers" Literal.String.Symbol ')' Punctuation ')' Punctuation '\n' Text '(' Punctuation 'define ' Keyword 'module-observer-id' Name.Variable ' ' Text '(' Punctuation 'record-accessor' Name.Function ' ' Text 'module-type' Name.Variable ' ' Text "'observer-id" Literal.String.Symbol ')' Punctuation ')' Punctuation '\n' Text '(' Punctuation 'define ' Keyword 'set-module-observer-id!' Name.Variable ' ' Text '(' Punctuation 'record-modifier' Name.Function ' ' Text 'module-type' Name.Variable ' ' Text "'observer-id" Literal.String.Symbol ')' Punctuation ')' Punctuation '\n' Text '(' Punctuation 'define ' Keyword 'module?' Name.Variable ' ' Text '(' Punctuation 'record-predicate' Name.Function ' ' Text 'module-type' Name.Variable ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define ' Keyword 'set-module-eval-closure!' Name.Variable '\n ' Text '(' Punctuation 'let ' Keyword '(' Punctuation '(' Punctuation 'setter' Name.Function ' ' Text '(' Punctuation 'record-modifier' Name.Function ' ' Text 'module-type' Name.Variable ' ' Text "'eval-closure" Literal.String.Symbol ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'lambda ' Keyword '(' Punctuation 'module' Name.Function ' ' Text 'closure' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'setter' Name.Function ' ' Text 'module' Name.Variable ' ' Text 'closure' Name.Variable ')' Punctuation '\n ' Text ';; Make it possible to lookup the module from the environment.' Comment.Single '\n ' Text ';; This implementation is correct since an eval closure can belong' Comment.Single '\n ' Text ';; to maximally one module.' Comment.Single '\n ' Text '(' Punctuation 'set-procedure-property!' Name.Function ' ' Text 'closure' Name.Variable ' ' Text "'module" Literal.String.Symbol ' ' Text 'module' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'begin-deprecated' Name.Function '\n ' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'eval-in-module' Name.Function ' ' Text 'exp' Name.Variable ' ' Text 'mod' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'issue-deprecation-warning' Name.Function '\n ' Text '"`eval-in-module\' is deprecated. Use `eval\' instead."' Literal.String ')' Punctuation '\n ' Text '(' Punctuation 'eval ' Name.Builtin 'exp' Name.Variable ' ' Text 'mod' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n\n\x0c\n' Text ';;; {Observer protocol}' Comment.Single '\n' Text ';;;' Comment.Single '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'module-observe' Name.Function ' ' Text 'module' Name.Variable ' ' Text 'proc' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'set-module-observers!' Name.Function ' ' Text 'module' Name.Variable ' ' Text '(' Punctuation 'cons ' Name.Builtin 'proc' Name.Variable ' ' Text '(' Punctuation 'module-observers' Name.Function ' ' Text 'module' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'cons ' Name.Builtin 'module' Name.Variable ' ' Text 'proc' Name.Variable ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'module-observe-weak' Name.Function ' ' Text 'module' Name.Variable ' ' Text 'proc' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'let ' Keyword '(' Punctuation '(' Punctuation 'id' Name.Function ' ' Text '(' Punctuation 'module-observer-id' Name.Function ' ' Text 'module' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'hash-set!' Name.Function ' ' Text '(' Punctuation 'module-weak-observers' Name.Function ' ' Text 'module' Name.Variable ')' Punctuation ' ' Text 'id' Name.Variable ' ' Text 'proc' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'set-module-observer-id!' Name.Function ' ' Text 'module' Name.Variable ' ' Text '(' Punctuation '+ ' Name.Builtin '1' Literal.Number.Integer ' ' Text 'id' Name.Variable ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'cons ' Name.Builtin 'module' Name.Variable ' ' Text 'id' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'module-unobserve' Name.Function ' ' Text 'token' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'let ' Keyword '(' Punctuation '(' Punctuation 'module' Name.Function ' ' Text '(' Punctuation 'car ' Name.Builtin 'token' Name.Variable ')' Punctuation ')' Punctuation '\n\t' Text '(' Punctuation 'id' Name.Function ' ' Text '(' Punctuation 'cdr ' Name.Builtin 'token' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'if ' Keyword '(' Punctuation 'integer? ' Name.Builtin 'id' Name.Variable ')' Punctuation '\n\t' Text '(' Punctuation 'hash-remove!' Name.Function ' ' Text '(' Punctuation 'module-weak-observers' Name.Function ' ' Text 'module' Name.Variable ')' Punctuation ' ' Text 'id' Name.Variable ')' Punctuation '\n\t' Text '(' Punctuation 'set-module-observers!' Name.Function ' ' Text 'module' Name.Variable ' ' Text '(' Punctuation 'delq1!' Name.Function ' ' Text 'id' Name.Variable ' ' Text '(' Punctuation 'module-observers' Name.Function ' ' Text 'module' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '*unspecified*' Name.Variable ')' Punctuation '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'module-modified' Name.Function ' ' Text 'm' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'for-each ' Name.Builtin '(' Punctuation 'lambda ' Keyword '(' Punctuation 'proc' Name.Function ')' Punctuation ' ' Text '(' Punctuation 'proc' Name.Function ' ' Text 'm' Name.Variable ')' Punctuation ')' Punctuation ' ' Text '(' Punctuation 'module-observers' Name.Function ' ' Text 'm' Name.Variable ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'hash-fold' Name.Function ' ' Text '(' Punctuation 'lambda ' Keyword '(' Punctuation 'id' Name.Function ' ' Text 'proc' Name.Variable ' ' Text 'res' Name.Variable ')' Punctuation ' ' Text '(' Punctuation 'proc' Name.Function ' ' Text 'm' Name.Variable ')' Punctuation ')' Punctuation ' ' Text '#f' Name.Constant ' ' Text '(' Punctuation 'module-weak-observers' Name.Function ' ' Text 'm' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n\n\x0c\n' Text ';;; {Module Searching in General}' Comment.Single '\n' Text ';;;' Comment.Single '\n' Text ';;; We sometimes want to look for properties of a symbol' Comment.Single '\n' Text ';;; just within the obarray of one module. If the property' Comment.Single '\n' Text ";;; holds, then it is said to hold ``locally'' as in, ``The symbol" Comment.Single '\n' Text ";;; DISPLAY is locally rebound in the module `safe-guile'.''" Comment.Single '\n' Text ';;;' Comment.Single '\n' Text ';;;' Comment.Single '\n' Text ';;; Other times, we want to test for a symbol property in the obarray' Comment.Single '\n' Text ';;; of M and, if it is not found there, try each of the modules in the' Comment.Single '\n' Text ';;; uses list of M. This is the normal way of testing for some' Comment.Single '\n' Text ';;; property, so we state these properties without qualification as' Comment.Single '\n' Text ";;; in: ``The symbol 'fnord is interned in module M because it is" Comment.Single '\n' Text ';;; interned locally in module M2 which is a member of the uses list' Comment.Single '\n' Text ";;; of M.''" Comment.Single '\n' Text ';;;' Comment.Single '\n\n' Text ';; module-search fn m' Comment.Single '\n' Text ';;' Comment.Single '\n' Text ';; return the first non-#f result of FN applied to M and then to' Comment.Single '\n' Text ';; the modules in the uses of m, and so on recursively. If all applications' Comment.Single '\n' Text ';; return #f, then so does this function.' Comment.Single '\n' Text ';;' Comment.Single '\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'module-search' Name.Function ' ' Text 'fn' Name.Variable ' ' Text 'm' Name.Variable ' ' Text 'v' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'loop' Name.Function ' ' Text 'pos' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'and ' Keyword '(' Punctuation 'pair? ' Name.Builtin 'pos' Name.Variable ')' Punctuation '\n\t ' Text '(' Punctuation 'or ' Keyword '(' Punctuation 'module-search' Name.Function ' ' Text 'fn' Name.Variable ' ' Text '(' Punctuation 'car ' Name.Builtin 'pos' Name.Variable ')' Punctuation ' ' Text 'v' Name.Variable ')' Punctuation '\n\t ' Text '(' Punctuation 'loop' Name.Function ' ' Text '(' Punctuation 'cdr ' Name.Builtin 'pos' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'or ' Keyword '(' Punctuation 'fn' Name.Function ' ' Text 'm' Name.Variable ' ' Text 'v' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'loop' Name.Function ' ' Text '(' Punctuation 'module-uses' Name.Function ' ' Text 'm' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n\n' Text ';;; {Is a symbol bound in a module?}' Comment.Single '\n' Text ';;;' Comment.Single '\n' Text ';;; Symbol S in Module M is bound if S is interned in M and if the binding' Comment.Single '\n' Text ';;; of S in M has been set to some well-defined value.' Comment.Single '\n' Text ';;;' Comment.Single '\n\n' Text ';; module-locally-bound? module symbol' Comment.Single '\n' Text ';;' Comment.Single '\n' Text ';; Is a symbol bound (interned and defined) locally in a given module?' Comment.Single '\n' Text ';;' Comment.Single '\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'module-locally-bound?' Name.Function ' ' Text 'm' Name.Variable ' ' Text 'v' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'let ' Keyword '(' Punctuation '(' Punctuation 'var' Name.Function ' ' Text '(' Punctuation 'module-local-variable' Name.Function ' ' Text 'm' Name.Variable ' ' Text 'v' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'and ' Keyword 'var' Name.Variable '\n\t ' Text '(' Punctuation 'variable-bound?' Name.Function ' ' Text 'var' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text ';; module-bound? module symbol' Comment.Single '\n' Text ';;' Comment.Single '\n' Text ';; Is a symbol bound (interned and defined) anywhere in a given module' Comment.Single '\n' Text ';; or its uses?' Comment.Single '\n' Text ';;' Comment.Single '\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'module-bound?' Name.Function ' ' Text 'm' Name.Variable ' ' Text 'v' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'module-search' Name.Function ' ' Text 'module-locally-bound?' Name.Variable ' ' Text 'm' Name.Variable ' ' Text 'v' Name.Variable ')' Punctuation ')' Punctuation '\n\n' Text ';;; {Is a symbol interned in a module?}' Comment.Single '\n' Text ';;;' Comment.Single '\n' Text ';;; Symbol S in Module M is interned if S occurs in' Comment.Single '\n' Text ';;; of S in M has been set to some well-defined value.' Comment.Single '\n' Text ';;;' Comment.Single '\n' Text ';;; It is possible to intern a symbol in a module without providing' Comment.Single '\n' Text ';;; an initial binding for the corresponding variable. This is done' Comment.Single '\n' Text ';;; with:' Comment.Single '\n' Text ';;; (module-add! module symbol (make-undefined-variable))' Comment.Single '\n' Text ';;;' Comment.Single '\n' Text ';;; In that case, the symbol is interned in the module, but not' Comment.Single '\n' Text ';;; bound there. The unbound symbol shadows any binding for that' Comment.Single '\n' Text ';;; symbol that might otherwise be inherited from a member of the uses list.' Comment.Single '\n' Text ';;;' Comment.Single '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'module-obarray-get-handle' Name.Function ' ' Text 'ob' Name.Variable ' ' Text 'key' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation '(' Punctuation 'if ' Keyword '(' Punctuation 'symbol? ' Name.Builtin 'key' Name.Variable ')' Punctuation ' ' Text 'hashq-get-handle' Name.Variable ' ' Text 'hash-get-handle' Name.Variable ')' Punctuation ' ' Text 'ob' Name.Variable ' ' Text 'key' Name.Variable ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'module-obarray-ref' Name.Function ' ' Text 'ob' Name.Variable ' ' Text 'key' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation '(' Punctuation 'if ' Keyword '(' Punctuation 'symbol? ' Name.Builtin 'key' Name.Variable ')' Punctuation ' ' Text 'hashq-ref' Name.Variable ' ' Text 'hash-ref' Name.Variable ')' Punctuation ' ' Text 'ob' Name.Variable ' ' Text 'key' Name.Variable ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'module-obarray-set!' Name.Function ' ' Text 'ob' Name.Variable ' ' Text 'key' Name.Variable ' ' Text 'val' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation '(' Punctuation 'if ' Keyword '(' Punctuation 'symbol? ' Name.Builtin 'key' Name.Variable ')' Punctuation ' ' Text 'hashq-set!' Name.Variable ' ' Text 'hash-set!' Name.Variable ')' Punctuation ' ' Text 'ob' Name.Variable ' ' Text 'key' Name.Variable ' ' Text 'val' Name.Variable ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'module-obarray-remove!' Name.Function ' ' Text 'ob' Name.Variable ' ' Text 'key' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation '(' Punctuation 'if ' Keyword '(' Punctuation 'symbol? ' Name.Builtin 'key' Name.Variable ')' Punctuation ' ' Text 'hashq-remove!' Name.Variable ' ' Text 'hash-remove!' Name.Variable ')' Punctuation ' ' Text 'ob' Name.Variable ' ' Text 'key' Name.Variable ')' Punctuation ')' Punctuation '\n\n' Text ';; module-symbol-locally-interned? module symbol' Comment.Single '\n' Text ';;' Comment.Single '\n' Text ';; is a symbol interned (not neccessarily defined) locally in a given module' Comment.Single '\n' Text ';; or its uses? Interned symbols shadow inherited bindings even if' Comment.Single '\n' Text ';; they are not themselves bound to a defined value.' Comment.Single '\n' Text ';;' Comment.Single '\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'module-symbol-locally-interned?' Name.Function ' ' Text 'm' Name.Variable ' ' Text 'v' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'not ' Name.Builtin '(' Punctuation 'not ' Name.Builtin '(' Punctuation 'module-obarray-get-handle' Name.Function ' ' Text '(' Punctuation 'module-obarray' Name.Function ' ' Text 'm' Name.Variable ')' Punctuation ' ' Text 'v' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text ';; module-symbol-interned? module symbol' Comment.Single '\n' Text ';;' Comment.Single '\n' Text ';; is a symbol interned (not neccessarily defined) anywhere in a given module' Comment.Single '\n' Text ';; or its uses? Interned symbols shadow inherited bindings even if' Comment.Single '\n' Text ';; they are not themselves bound to a defined value.' Comment.Single '\n' Text ';;' Comment.Single '\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'module-symbol-interned?' Name.Function ' ' Text 'm' Name.Variable ' ' Text 'v' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'module-search' Name.Function ' ' Text 'module-symbol-locally-interned?' Name.Variable ' ' Text 'm' Name.Variable ' ' Text 'v' Name.Variable ')' Punctuation ')' Punctuation '\n\n\n' Text ';;; {Mapping modules x symbols --> variables}' Comment.Single '\n' Text ';;;' Comment.Single '\n\n' Text ';; module-local-variable module symbol' Comment.Single '\n' Text ';; return the local variable associated with a MODULE and SYMBOL.' Comment.Single '\n' Text ';;' Comment.Single '\n' Text ';;; This function is very important. It is the only function that can' Comment.Single '\n' Text ';;; return a variable from a module other than the mutators that store' Comment.Single '\n' Text ';;; new variables in modules. Therefore, this function is the location' Comment.Single '\n' Text ';;; of the "lazy binder" hack.' Comment.Single '\n' Text ';;;' Comment.Single '\n' Text ';;; If symbol is defined in MODULE, and if the definition binds symbol' Comment.Single '\n' Text ';;; to a variable, return that variable object.' Comment.Single '\n' Text ';;;' Comment.Single '\n' Text ';;; If the symbols is not found at first, but the module has a lazy binder,' Comment.Single '\n' Text ';;; then try the binder.' Comment.Single '\n' Text ';;;' Comment.Single '\n' Text ';;; If the symbol is not found at all, return #f.' Comment.Single '\n' Text ';;;' Comment.Single '\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'module-local-variable' Name.Function ' ' Text 'm' Name.Variable ' ' Text 'v' Name.Variable ')' Punctuation '\n' Text '; (caddr' Comment.Single '\n' Text '; (list m v' Comment.Single '\n\t ' Text '(' Punctuation 'let ' Keyword '(' Punctuation '(' Punctuation 'b' Name.Function ' ' Text '(' Punctuation 'module-obarray-ref' Name.Function ' ' Text '(' Punctuation 'module-obarray' Name.Function ' ' Text 'm' Name.Variable ')' Punctuation ' ' Text 'v' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n\t ' Text '(' Punctuation 'or ' Keyword '(' Punctuation 'and ' Keyword '(' Punctuation 'variable?' Name.Function ' ' Text 'b' Name.Variable ')' Punctuation ' ' Text 'b' Name.Variable ')' Punctuation '\n\t ' Text '(' Punctuation 'and ' Keyword '(' Punctuation 'module-binder' Name.Function ' ' Text 'm' Name.Variable ')' Punctuation '\n\t\t ' Text '(' Punctuation '(' Punctuation 'module-binder' Name.Function ' ' Text 'm' Name.Variable ')' Punctuation ' ' Text 'm' Name.Variable ' ' Text 'v' Name.Variable ' ' Text '#f' Name.Constant ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n' Text ';))' Comment.Single '\n\n' Text ';; module-variable module symbol' Comment.Single '\n' Text ';;' Comment.Single '\n' Text ';; like module-local-variable, except search the uses in the' Comment.Single '\n' Text ';; case V is not found in M.' Comment.Single '\n' Text ';;' Comment.Single '\n' Text ';; NOTE: This function is superseded with C code (see modules.c)' Comment.Single '\n' Text ';;; when using the standard eval closure.' Comment.Single '\n' Text ';;' Comment.Single '\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'module-variable' Name.Function ' ' Text 'm' Name.Variable ' ' Text 'v' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'module-search' Name.Function ' ' Text 'module-local-variable' Name.Variable ' ' Text 'm' Name.Variable ' ' Text 'v' Name.Variable ')' Punctuation ')' Punctuation '\n\n\n' Text ';;; {Mapping modules x symbols --> bindings}' Comment.Single '\n' Text ';;;' Comment.Single '\n' Text ';;; These are similar to the mapping to variables, except that the' Comment.Single '\n' Text ';;; variable is dereferenced.' Comment.Single '\n' Text ';;;' Comment.Single '\n\n' Text ';; module-symbol-binding module symbol opt-value' Comment.Single '\n' Text ';;' Comment.Single '\n' Text ';; return the binding of a variable specified by name within' Comment.Single '\n' Text ';; a given module, signalling an error if the variable is unbound.' Comment.Single '\n' Text ';; If the OPT-VALUE is passed, then instead of signalling an error,' Comment.Single '\n' Text ';; return OPT-VALUE.' Comment.Single '\n' Text ';;' Comment.Single '\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'module-symbol-local-binding' Name.Function ' ' Text 'm' Name.Variable ' ' Text 'v' Name.Variable ' ' Text '.' Operator ' ' Text 'opt-val' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'let ' Keyword '(' Punctuation '(' Punctuation 'var' Name.Function ' ' Text '(' Punctuation 'module-local-variable' Name.Function ' ' Text 'm' Name.Variable ' ' Text 'v' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'if ' Keyword 'var' Name.Variable '\n\t' Text '(' Punctuation 'variable-ref' Name.Function ' ' Text 'var' Name.Variable ')' Punctuation '\n\t' Text '(' Punctuation 'if ' Keyword '(' Punctuation 'not ' Name.Builtin '(' Punctuation 'null? ' Name.Builtin 'opt-val' Name.Variable ')' Punctuation ')' Punctuation '\n\t ' Text '(' Punctuation 'car ' Name.Builtin 'opt-val' Name.Variable ')' Punctuation '\n\t ' Text '(' Punctuation 'error' Name.Function ' ' Text '"Locally unbound variable."' Literal.String ' ' Text 'v' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text ';; module-symbol-binding module symbol opt-value' Comment.Single '\n' Text ';;' Comment.Single '\n' Text ';; return the binding of a variable specified by name within' Comment.Single '\n' Text ';; a given module, signalling an error if the variable is unbound.' Comment.Single '\n' Text ';; If the OPT-VALUE is passed, then instead of signalling an error,' Comment.Single '\n' Text ';; return OPT-VALUE.' Comment.Single '\n' Text ';;' Comment.Single '\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'module-symbol-binding' Name.Function ' ' Text 'm' Name.Variable ' ' Text 'v' Name.Variable ' ' Text '.' Operator ' ' Text 'opt-val' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'let ' Keyword '(' Punctuation '(' Punctuation 'var' Name.Function ' ' Text '(' Punctuation 'module-variable' Name.Function ' ' Text 'm' Name.Variable ' ' Text 'v' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'if ' Keyword 'var' Name.Variable '\n\t' Text '(' Punctuation 'variable-ref' Name.Function ' ' Text 'var' Name.Variable ')' Punctuation '\n\t' Text '(' Punctuation 'if ' Keyword '(' Punctuation 'not ' Name.Builtin '(' Punctuation 'null? ' Name.Builtin 'opt-val' Name.Variable ')' Punctuation ')' Punctuation '\n\t ' Text '(' Punctuation 'car ' Name.Builtin 'opt-val' Name.Variable ')' Punctuation '\n\t ' Text '(' Punctuation 'error' Name.Function ' ' Text '"Unbound variable."' Literal.String ' ' Text 'v' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n\n\x0c\n' Text ';;; {Adding Variables to Modules}' Comment.Single '\n' Text ';;;' Comment.Single '\n' Text ';;;' Comment.Single '\n\n\n' Text ';; module-make-local-var! module symbol' Comment.Single '\n' Text ';;' Comment.Single '\n' Text ';; ensure a variable for V in the local namespace of M.' Comment.Single '\n' Text ';; If no variable was already there, then create a new and uninitialzied' Comment.Single '\n' Text ';; variable.' Comment.Single '\n' Text ';;' Comment.Single '\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'module-make-local-var!' Name.Function ' ' Text 'm' Name.Variable ' ' Text 'v' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'or ' Keyword '(' Punctuation 'let ' Keyword '(' Punctuation '(' Punctuation 'b' Name.Function ' ' Text '(' Punctuation 'module-obarray-ref' Name.Function ' ' Text '(' Punctuation 'module-obarray' Name.Function ' ' Text 'm' Name.Variable ')' Punctuation ' ' Text 'v' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n\t' Text '(' Punctuation 'and ' Keyword '(' Punctuation 'variable?' Name.Function ' ' Text 'b' Name.Variable ')' Punctuation '\n\t ' Text '(' Punctuation 'begin' Name.Function '\n\t ' Text '(' Punctuation 'module-modified' Name.Function ' ' Text 'm' Name.Variable ')' Punctuation '\n\t ' Text 'b' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'and ' Keyword '(' Punctuation 'module-binder' Name.Function ' ' Text 'm' Name.Variable ')' Punctuation '\n\t ' Text '(' Punctuation '(' Punctuation 'module-binder' Name.Function ' ' Text 'm' Name.Variable ')' Punctuation ' ' Text 'm' Name.Variable ' ' Text 'v' Name.Variable ' ' Text '#t' Name.Constant ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'begin' Name.Function '\n\t' Text '(' Punctuation 'let ' Keyword '(' Punctuation '(' Punctuation 'answer' Name.Function ' ' Text '(' Punctuation 'make-undefined-variable' Name.Function ')' Punctuation ')' Punctuation ')' Punctuation '\n\t ' Text '(' Punctuation 'variable-set-name-hint!' Name.Function ' ' Text 'answer' Name.Variable ' ' Text 'v' Name.Variable ')' Punctuation '\n\t ' Text '(' Punctuation 'module-obarray-set!' Name.Function ' ' Text '(' Punctuation 'module-obarray' Name.Function ' ' Text 'm' Name.Variable ')' Punctuation ' ' Text 'v' Name.Variable ' ' Text 'answer' Name.Variable ')' Punctuation '\n\t ' Text '(' Punctuation 'module-modified' Name.Function ' ' Text 'm' Name.Variable ')' Punctuation '\n\t ' Text 'answer' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text ';; module-ensure-local-variable! module symbol' Comment.Single '\n' Text ';;' Comment.Single '\n' Text ';; Ensure that there is a local variable in MODULE for SYMBOL. If' Comment.Single '\n' Text ';; there is no binding for SYMBOL, create a new uninitialized' Comment.Single '\n' Text ';; variable. Return the local variable.' Comment.Single '\n' Text ';;' Comment.Single '\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'module-ensure-local-variable!' Name.Function ' ' Text 'module' Name.Variable ' ' Text 'symbol' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'or ' Keyword '(' Punctuation 'module-local-variable' Name.Function ' ' Text 'module' Name.Variable ' ' Text 'symbol' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'let ' Keyword '(' Punctuation '(' Punctuation 'var' Name.Function ' ' Text '(' Punctuation 'make-undefined-variable' Name.Function ')' Punctuation ')' Punctuation ')' Punctuation '\n\t' Text '(' Punctuation 'variable-set-name-hint!' Name.Function ' ' Text 'var' Name.Variable ' ' Text 'symbol' Name.Variable ')' Punctuation '\n\t' Text '(' Punctuation 'module-add!' Name.Function ' ' Text 'module' Name.Variable ' ' Text 'symbol' Name.Variable ' ' Text 'var' Name.Variable ')' Punctuation '\n\t' Text 'var' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text ';; module-add! module symbol var' Comment.Single '\n' Text ';;' Comment.Single '\n' Text ';; ensure a particular variable for V in the local namespace of M.' Comment.Single '\n' Text ';;' Comment.Single '\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'module-add!' Name.Function ' ' Text 'm' Name.Variable ' ' Text 'v' Name.Variable ' ' Text 'var' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'if ' Keyword '(' Punctuation 'not ' Name.Builtin '(' Punctuation 'variable?' Name.Function ' ' Text 'var' Name.Variable ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'error' Name.Function ' ' Text '"Bad variable to module-add!"' Literal.String ' ' Text 'var' Name.Variable ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'module-obarray-set!' Name.Function ' ' Text '(' Punctuation 'module-obarray' Name.Function ' ' Text 'm' Name.Variable ')' Punctuation ' ' Text 'v' Name.Variable ' ' Text 'var' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'module-modified' Name.Function ' ' Text 'm' Name.Variable ')' Punctuation ')' Punctuation '\n\n' Text ';; module-remove!' Comment.Single '\n' Text ';;' Comment.Single '\n' Text ';; make sure that a symbol is undefined in the local namespace of M.' Comment.Single '\n' Text ';;' Comment.Single '\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'module-remove!' Name.Function ' ' Text 'm' Name.Variable ' ' Text 'v' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'module-obarray-remove!' Name.Function ' ' Text '(' Punctuation 'module-obarray' Name.Function ' ' Text 'm' Name.Variable ')' Punctuation ' ' Text 'v' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'module-modified' Name.Function ' ' Text 'm' Name.Variable ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'module-clear!' Name.Function ' ' Text 'm' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'vector-fill! ' Name.Builtin '(' Punctuation 'module-obarray' Name.Function ' ' Text 'm' Name.Variable ')' Punctuation ' ' Text "'" Operator '(' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'module-modified' Name.Function ' ' Text 'm' Name.Variable ')' Punctuation ')' Punctuation '\n\n' Text ';; MODULE-FOR-EACH -- exported' Comment.Single '\n' Text ';;' Comment.Single '\n' Text ';; Call PROC on each symbol in MODULE, with arguments of (SYMBOL VARIABLE).' Comment.Single '\n' Text ';;' Comment.Single '\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'module-for-each' Name.Function ' ' Text 'proc' Name.Variable ' ' Text 'module' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'let ' Keyword '(' Punctuation '(' Punctuation 'obarray' Name.Function ' ' Text '(' Punctuation 'module-obarray' Name.Function ' ' Text 'module' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'do ' Keyword '(' Punctuation '(' Punctuation 'index' Name.Function ' ' Text '0' Literal.Number.Integer ' ' Text '(' Punctuation '+ ' Name.Builtin 'index' Name.Variable ' ' Text '1' Literal.Number.Integer ')' Punctuation ')' Punctuation '\n\t ' Text '(' Punctuation 'end' Name.Function ' ' Text '(' Punctuation 'vector-length ' Name.Builtin 'obarray' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n\t' Text '(' Punctuation '(' Punctuation '= ' Name.Builtin 'index' Name.Variable ' ' Text 'end' Name.Variable ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'for-each' Name.Function '\n ' Text '(' Punctuation 'lambda ' Keyword '(' Punctuation 'bucket' Name.Function ')' Punctuation '\n\t ' Text '(' Punctuation 'proc' Name.Function ' ' Text '(' Punctuation 'car ' Name.Builtin 'bucket' Name.Variable ')' Punctuation ' ' Text '(' Punctuation 'cdr ' Name.Builtin 'bucket' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'vector-ref ' Name.Builtin 'obarray' Name.Variable ' ' Text 'index' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'module-map' Name.Function ' ' Text 'proc' Name.Variable ' ' Text 'module' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'let* ' Keyword '(' Punctuation '(' Punctuation 'obarray' Name.Function ' ' Text '(' Punctuation 'module-obarray' Name.Function ' ' Text 'module' Name.Variable ')' Punctuation ')' Punctuation '\n\t ' Text '(' Punctuation 'end' Name.Function ' ' Text '(' Punctuation 'vector-length ' Name.Builtin 'obarray' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n\n ' Text '(' Punctuation 'let ' Keyword 'loop' Name.Variable ' ' Text '(' Punctuation '(' Punctuation 'i' Name.Function ' ' Text '0' Literal.Number.Integer ')' Punctuation '\n\t ' Text '(' Punctuation 'answer' Name.Function ' ' Text "'" Operator '(' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'if ' Keyword '(' Punctuation '= ' Name.Builtin 'i' Name.Variable ' ' Text 'end' Name.Variable ')' Punctuation '\n\t ' Text 'answer' Name.Variable '\n\t ' Text '(' Punctuation 'loop' Name.Function ' ' Text '(' Punctuation '+ ' Name.Builtin '1' Literal.Number.Integer ' ' Text 'i' Name.Variable ')' Punctuation '\n\t\t' Text '(' Punctuation 'append!' Name.Function '\n\t\t ' Text '(' Punctuation 'map ' Name.Builtin '(' Punctuation 'lambda ' Keyword '(' Punctuation 'bucket' Name.Function ')' Punctuation '\n\t\t\t' Text '(' Punctuation 'proc' Name.Function ' ' Text '(' Punctuation 'car ' Name.Builtin 'bucket' Name.Variable ')' Punctuation ' ' Text '(' Punctuation 'cdr ' Name.Builtin 'bucket' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n\t\t ' Text '(' Punctuation 'vector-ref ' Name.Builtin 'obarray' Name.Variable ' ' Text 'i' Name.Variable ')' Punctuation ')' Punctuation '\n\t\t ' Text 'answer' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\x0c\n\n' Text ';;; {Low Level Bootstrapping}' Comment.Single '\n' Text ';;;' Comment.Single '\n\n' Text ';; make-root-module' Comment.Single '\n\n' Text ';; A root module uses the pre-modules-obarray as its obarray. This' Comment.Single '\n' Text ';; special obarray accumulates all bindings that have been established' Comment.Single '\n' Text ';; before the module system is fully booted.' Comment.Single '\n' Text ';;' Comment.Single '\n' Text ';; (The obarray continues to be used by code that has been closed over' Comment.Single '\n' Text ';; before the module system has been booted.)' Comment.Single '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'make-root-module' Name.Function ')' Punctuation '\n ' Text '(' Punctuation 'let ' Keyword '(' Punctuation '(' Punctuation 'm' Name.Function ' ' Text '(' Punctuation 'make-module' Name.Function ' ' Text '0' Literal.Number.Integer ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'set-module-obarray!' Name.Function ' ' Text 'm' Name.Variable ' ' Text '(' Punctuation '%get-pre-modules-obarray' Name.Function ')' Punctuation ')' Punctuation '\n ' Text 'm' Name.Variable ')' Punctuation ')' Punctuation '\n\n' Text ';; make-scm-module' Comment.Single '\n\n' Text ';; The root interface is a module that uses the same obarray as the' Comment.Single '\n' Text ';; root module. It does not allow new definitions, tho.' Comment.Single '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'make-scm-module' Name.Function ')' Punctuation '\n ' Text '(' Punctuation 'let ' Keyword '(' Punctuation '(' Punctuation 'm' Name.Function ' ' Text '(' Punctuation 'make-module' Name.Function ' ' Text '0' Literal.Number.Integer ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'set-module-obarray!' Name.Function ' ' Text 'm' Name.Variable ' ' Text '(' Punctuation '%get-pre-modules-obarray' Name.Function ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'set-module-eval-closure!' Name.Function ' ' Text 'm' Name.Variable ' ' Text '(' Punctuation 'standard-interface-eval-closure' Name.Function ' ' Text 'm' Name.Variable ')' Punctuation ')' Punctuation '\n ' Text 'm' Name.Variable ')' Punctuation ')' Punctuation '\n\n\n\x0c\n' Text ';;; {Module-based Loading}' Comment.Single '\n' Text ';;;' Comment.Single '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'save-module-excursion' Name.Function ' ' Text 'thunk' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'let ' Keyword '(' Punctuation '(' Punctuation 'inner-module' Name.Function ' ' Text '(' Punctuation 'current-module' Name.Function ')' Punctuation ')' Punctuation '\n\t' Text '(' Punctuation 'outer-module' Name.Function ' ' Text '#f' Name.Constant ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'dynamic-wind ' Name.Builtin '(' Punctuation 'lambda ' Keyword '(' Punctuation ')' Punctuation '\n\t\t ' Text '(' Punctuation 'set! ' Keyword 'outer-module' Name.Variable ' ' Text '(' Punctuation 'current-module' Name.Function ')' Punctuation ')' Punctuation '\n\t\t ' Text '(' Punctuation 'set-current-module' Name.Function ' ' Text 'inner-module' Name.Variable ')' Punctuation '\n\t\t ' Text '(' Punctuation 'set! ' Keyword 'inner-module' Name.Variable ' ' Text '#f' Name.Constant ')' Punctuation ')' Punctuation '\n\t\t ' Text 'thunk' Name.Variable '\n\t\t ' Text '(' Punctuation 'lambda ' Keyword '(' Punctuation ')' Punctuation '\n\t\t ' Text '(' Punctuation 'set! ' Keyword 'inner-module' Name.Variable ' ' Text '(' Punctuation 'current-module' Name.Function ')' Punctuation ')' Punctuation '\n\t\t ' Text '(' Punctuation 'set-current-module' Name.Function ' ' Text 'outer-module' Name.Variable ')' Punctuation '\n\t\t ' Text '(' Punctuation 'set! ' Keyword 'outer-module' Name.Variable ' ' Text '#f' Name.Constant ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define ' Keyword 'basic-load' Name.Variable ' ' Text 'load' Name.Variable ')' Punctuation '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'load-module' Name.Function ' ' Text 'filename' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'save-module-excursion' Name.Function '\n ' Text '(' Punctuation 'lambda ' Keyword '(' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'let ' Keyword '(' Punctuation '(' Punctuation 'oldname' Name.Function ' ' Text '(' Punctuation 'and ' Keyword '(' Punctuation 'current-load-port' Name.Function ')' Punctuation '\n\t\t\t ' Text '(' Punctuation 'port-filename' Name.Function ' ' Text '(' Punctuation 'current-load-port' Name.Function ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'basic-load' Name.Function ' ' Text '(' Punctuation 'if ' Keyword '(' Punctuation 'and ' Keyword 'oldname' Name.Variable '\n\t\t\t ' Text '(' Punctuation '> ' Name.Builtin '(' Punctuation 'string-length ' Name.Builtin 'filename' Name.Variable ')' Punctuation ' ' Text '0' Literal.Number.Integer ')' Punctuation '\n\t\t\t ' Text '(' Punctuation 'not ' Name.Builtin '(' Punctuation 'char=? ' Name.Builtin '(' Punctuation 'string-ref ' Name.Builtin 'filename' Name.Variable ' ' Text '0' Literal.Number.Integer ')' Punctuation ' ' Text '#\\/' Literal.String.Char ')' Punctuation ')' Punctuation '\n\t\t\t ' Text '(' Punctuation 'not ' Name.Builtin '(' Punctuation 'string=? ' Name.Builtin '(' Punctuation 'dirname' Name.Function ' ' Text 'oldname' Name.Variable ')' Punctuation ' ' Text '"."' Literal.String ')' Punctuation ')' Punctuation ')' Punctuation '\n\t\t ' Text '(' Punctuation 'string-append ' Name.Builtin '(' Punctuation 'dirname' Name.Function ' ' Text 'oldname' Name.Variable ')' Punctuation ' ' Text '"/"' Literal.String ' ' Text 'filename' Name.Variable ')' Punctuation '\n\t\t ' Text 'filename' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n\n\x0c\n' Text ';;; {MODULE-REF -- exported}' Comment.Single '\n' Text ';;' Comment.Single '\n' Text ';; Returns the value of a variable called NAME in MODULE or any of its' Comment.Single '\n' Text ';; used modules. If there is no such variable, then if the optional third' Comment.Single '\n' Text ';; argument DEFAULT is present, it is returned; otherwise an error is signaled.' Comment.Single '\n' Text ';;' Comment.Single '\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'module-ref' Name.Function ' ' Text 'module' Name.Variable ' ' Text 'name' Name.Variable ' ' Text '.' Operator ' ' Text 'rest' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'let ' Keyword '(' Punctuation '(' Punctuation 'variable' Name.Function ' ' Text '(' Punctuation 'module-variable' Name.Function ' ' Text 'module' Name.Variable ' ' Text 'name' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'if ' Keyword '(' Punctuation 'and ' Keyword 'variable' Name.Variable ' ' Text '(' Punctuation 'variable-bound?' Name.Function ' ' Text 'variable' Name.Variable ')' Punctuation ')' Punctuation '\n\t' Text '(' Punctuation 'variable-ref' Name.Function ' ' Text 'variable' Name.Variable ')' Punctuation '\n\t' Text '(' Punctuation 'if ' Keyword '(' Punctuation 'null? ' Name.Builtin 'rest' Name.Variable ')' Punctuation '\n\t ' Text '(' Punctuation 'error' Name.Function ' ' Text '"No variable named"' Literal.String ' ' Text 'name' Name.Variable ' ' Text "'in" Literal.String.Symbol ' ' Text 'module' Name.Variable ')' Punctuation '\n\t ' Text '(' Punctuation 'car ' Name.Builtin 'rest' Name.Variable ')' Punctuation '\t\t\t' Text '; default value' Comment.Single '\n\t ' Text ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text ';; MODULE-SET! -- exported' Comment.Single '\n' Text ';;' Comment.Single '\n' Text ';; Sets the variable called NAME in MODULE (or in a module that MODULE uses)' Comment.Single '\n' Text ';; to VALUE; if there is no such variable, an error is signaled.' Comment.Single '\n' Text ';;' Comment.Single '\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'module-set!' Name.Function ' ' Text 'module' Name.Variable ' ' Text 'name' Name.Variable ' ' Text 'value' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'let ' Keyword '(' Punctuation '(' Punctuation 'variable' Name.Function ' ' Text '(' Punctuation 'module-variable' Name.Function ' ' Text 'module' Name.Variable ' ' Text 'name' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'if ' Keyword 'variable' Name.Variable '\n\t' Text '(' Punctuation 'variable-set!' Name.Function ' ' Text 'variable' Name.Variable ' ' Text 'value' Name.Variable ')' Punctuation '\n\t' Text '(' Punctuation 'error' Name.Function ' ' Text '"No variable named"' Literal.String ' ' Text 'name' Name.Variable ' ' Text "'in" Literal.String.Symbol ' ' Text 'module' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text ';; MODULE-DEFINE! -- exported' Comment.Single '\n' Text ';;' Comment.Single '\n' Text ';; Sets the variable called NAME in MODULE to VALUE; if there is no such' Comment.Single '\n' Text ';; variable, it is added first.' Comment.Single '\n' Text ';;' Comment.Single '\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'module-define!' Name.Function ' ' Text 'module' Name.Variable ' ' Text 'name' Name.Variable ' ' Text 'value' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'let ' Keyword '(' Punctuation '(' Punctuation 'variable' Name.Function ' ' Text '(' Punctuation 'module-local-variable' Name.Function ' ' Text 'module' Name.Variable ' ' Text 'name' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'if ' Keyword 'variable' Name.Variable '\n\t' Text '(' Punctuation 'begin' Name.Function '\n\t ' Text '(' Punctuation 'variable-set!' Name.Function ' ' Text 'variable' Name.Variable ' ' Text 'value' Name.Variable ')' Punctuation '\n\t ' Text '(' Punctuation 'module-modified' Name.Function ' ' Text 'module' Name.Variable ')' Punctuation ')' Punctuation '\n\t' Text '(' Punctuation 'let ' Keyword '(' Punctuation '(' Punctuation 'variable' Name.Function ' ' Text '(' Punctuation 'make-variable' Name.Function ' ' Text 'value' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n\t ' Text '(' Punctuation 'variable-set-name-hint!' Name.Function ' ' Text 'variable' Name.Variable ' ' Text 'name' Name.Variable ')' Punctuation '\n\t ' Text '(' Punctuation 'module-add!' Name.Function ' ' Text 'module' Name.Variable ' ' Text 'name' Name.Variable ' ' Text 'variable' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text ';; MODULE-DEFINED? -- exported' Comment.Single '\n' Text ';;' Comment.Single '\n' Text ';; Return #t iff NAME is defined in MODULE (or in a module that MODULE' Comment.Single '\n' Text ';; uses)' Comment.Single '\n' Text ';;' Comment.Single '\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'module-defined?' Name.Function ' ' Text 'module' Name.Variable ' ' Text 'name' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'let ' Keyword '(' Punctuation '(' Punctuation 'variable' Name.Function ' ' Text '(' Punctuation 'module-variable' Name.Function ' ' Text 'module' Name.Variable ' ' Text 'name' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'and ' Keyword 'variable' Name.Variable ' ' Text '(' Punctuation 'variable-bound?' Name.Function ' ' Text 'variable' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text ';; MODULE-USE! module interface' Comment.Single '\n' Text ';;' Comment.Single '\n' Text ';; Add INTERFACE to the list of interfaces used by MODULE.' Comment.Single '\n' Text ';;' Comment.Single '\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'module-use!' Name.Function ' ' Text 'module' Name.Variable ' ' Text 'interface' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'set-module-uses!' Name.Function ' ' Text 'module' Name.Variable '\n\t\t ' Text '(' Punctuation 'cons ' Name.Builtin 'interface' Name.Variable ' ' Text '(' Punctuation 'delq!' Name.Function ' ' Text 'interface' Name.Variable ' ' Text '(' Punctuation 'module-uses' Name.Function ' ' Text 'module' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'module-modified' Name.Function ' ' Text 'module' Name.Variable ')' Punctuation ')' Punctuation '\n\n\x0c\n' Text ';;; {Recursive Namespaces}' Comment.Single '\n' Text ';;;' Comment.Single '\n' Text ';;;' Comment.Single '\n' Text ';;; A hierarchical namespace emerges if we consider some module to be' Comment.Single '\n' Text ';;; root, and variables bound to modules as nested namespaces.' Comment.Single '\n' Text ';;;' Comment.Single '\n' Text ';;; The routines in this file manage variable names in hierarchical namespace.' Comment.Single '\n' Text ';;; Each variable name is a list of elements, looked up in successively nested' Comment.Single '\n' Text ';;; modules.' Comment.Single '\n' Text ';;;' Comment.Single '\n' Text ";;;\t\t(nested-ref some-root-module '(foo bar baz))" Comment.Single '\n' Text ';;;\t\t=> ' Comment.Single '\n' Text ';;;' Comment.Single '\n' Text ';;;' Comment.Single '\n' Text ';;; There are:' Comment.Single '\n' Text ';;;' Comment.Single '\n' Text ';;;\t;; a-root is a module' Comment.Single '\n' Text ';;;\t;; name is a list of symbols' Comment.Single '\n' Text ';;;' Comment.Single '\n' Text ';;;\tnested-ref a-root name' Comment.Single '\n' Text ';;;\tnested-set! a-root name val' Comment.Single '\n' Text ';;;\tnested-define! a-root name val' Comment.Single '\n' Text ';;;\tnested-remove! a-root name' Comment.Single '\n' Text ';;;' Comment.Single '\n' Text ';;;' Comment.Single '\n' Text ';;; (current-module) is a natural choice for a-root so for convenience there are' Comment.Single '\n' Text ';;; also:' Comment.Single '\n' Text ';;;' Comment.Single '\n' Text ';;;\tlocal-ref name\t\t==\tnested-ref (current-module) name' Comment.Single '\n' Text ';;;\tlocal-set! name val\t==\tnested-set! (current-module) name val' Comment.Single '\n' Text ';;;\tlocal-define! name val\t==\tnested-define! (current-module) name val' Comment.Single '\n' Text ';;;\tlocal-remove! name\t==\tnested-remove! (current-module) name' Comment.Single '\n' Text ';;;' Comment.Single '\n\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'nested-ref' Name.Function ' ' Text 'root' Name.Variable ' ' Text 'names' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'let ' Keyword 'loop' Name.Variable ' ' Text '(' Punctuation '(' Punctuation 'cur' Name.Function ' ' Text 'root' Name.Variable ')' Punctuation '\n\t ' Text '(' Punctuation 'elts' Name.Function ' ' Text 'names' Name.Variable ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'cond' Name.Function '\n ' Text '(' Punctuation '(' Punctuation 'null? ' Name.Builtin 'elts' Name.Variable ')' Punctuation '\t\t' Text 'cur' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation '(' Punctuation 'not ' Name.Builtin '(' Punctuation 'module?' Name.Function ' ' Text 'cur' Name.Variable ')' Punctuation ')' Punctuation '\t' Text '#f' Name.Constant ')' Punctuation '\n ' Text '(' Punctuation 'else ' Keyword '(' Punctuation 'loop' Name.Function ' ' Text '(' Punctuation 'module-ref' Name.Function ' ' Text 'cur' Name.Variable ' ' Text '(' Punctuation 'car ' Name.Builtin 'elts' Name.Variable ')' Punctuation ' ' Text '#f' Name.Constant ')' Punctuation ' ' Text '(' Punctuation 'cdr ' Name.Builtin 'elts' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'nested-set!' Name.Function ' ' Text 'root' Name.Variable ' ' Text 'names' Name.Variable ' ' Text 'val' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'let ' Keyword 'loop' Name.Variable ' ' Text '(' Punctuation '(' Punctuation 'cur' Name.Function ' ' Text 'root' Name.Variable ')' Punctuation '\n\t ' Text '(' Punctuation 'elts' Name.Function ' ' Text 'names' Name.Variable ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'if ' Keyword '(' Punctuation 'null? ' Name.Builtin '(' Punctuation 'cdr ' Name.Builtin 'elts' Name.Variable ')' Punctuation ')' Punctuation '\n\t' Text '(' Punctuation 'module-set!' Name.Function ' ' Text 'cur' Name.Variable ' ' Text '(' Punctuation 'car ' Name.Builtin 'elts' Name.Variable ')' Punctuation ' ' Text 'val' Name.Variable ')' Punctuation '\n\t' Text '(' Punctuation 'loop' Name.Function ' ' Text '(' Punctuation 'module-ref' Name.Function ' ' Text 'cur' Name.Variable ' ' Text '(' Punctuation 'car ' Name.Builtin 'elts' Name.Variable ')' Punctuation ')' Punctuation ' ' Text '(' Punctuation 'cdr ' Name.Builtin 'elts' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'nested-define!' Name.Function ' ' Text 'root' Name.Variable ' ' Text 'names' Name.Variable ' ' Text 'val' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'let ' Keyword 'loop' Name.Variable ' ' Text '(' Punctuation '(' Punctuation 'cur' Name.Function ' ' Text 'root' Name.Variable ')' Punctuation '\n\t ' Text '(' Punctuation 'elts' Name.Function ' ' Text 'names' Name.Variable ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'if ' Keyword '(' Punctuation 'null? ' Name.Builtin '(' Punctuation 'cdr ' Name.Builtin 'elts' Name.Variable ')' Punctuation ')' Punctuation '\n\t' Text '(' Punctuation 'module-define!' Name.Function ' ' Text 'cur' Name.Variable ' ' Text '(' Punctuation 'car ' Name.Builtin 'elts' Name.Variable ')' Punctuation ' ' Text 'val' Name.Variable ')' Punctuation '\n\t' Text '(' Punctuation 'loop' Name.Function ' ' Text '(' Punctuation 'module-ref' Name.Function ' ' Text 'cur' Name.Variable ' ' Text '(' Punctuation 'car ' Name.Builtin 'elts' Name.Variable ')' Punctuation ')' Punctuation ' ' Text '(' Punctuation 'cdr ' Name.Builtin 'elts' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'nested-remove!' Name.Function ' ' Text 'root' Name.Variable ' ' Text 'names' Name.Variable ')' Punctuation '\n ' Text '(' Punctuation 'let ' Keyword 'loop' Name.Variable ' ' Text '(' Punctuation '(' Punctuation 'cur' Name.Function ' ' Text 'root' Name.Variable ')' Punctuation '\n\t ' Text '(' Punctuation 'elts' Name.Function ' ' Text 'names' Name.Variable ')' Punctuation ')' Punctuation '\n ' Text '(' Punctuation 'if ' Keyword '(' Punctuation 'null? ' Name.Builtin '(' Punctuation 'cdr ' Name.Builtin 'elts' Name.Variable ')' Punctuation ')' Punctuation '\n\t' Text '(' Punctuation 'module-remove!' Name.Function ' ' Text 'cur' Name.Variable ' ' Text '(' Punctuation 'car ' Name.Builtin 'elts' Name.Variable ')' Punctuation ')' Punctuation '\n\t' Text '(' Punctuation 'loop' Name.Function ' ' Text '(' Punctuation 'module-ref' Name.Function ' ' Text 'cur' Name.Variable ' ' Text '(' Punctuation 'car ' Name.Builtin 'elts' Name.Variable ')' Punctuation ')' Punctuation ' ' Text '(' Punctuation 'cdr ' Name.Builtin 'elts' Name.Variable ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation ')' Punctuation '\n\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'local-ref' Name.Function ' ' Text 'names' Name.Variable ')' Punctuation ' ' Text '(' Punctuation 'nested-ref' Name.Function ' ' Text '(' Punctuation 'current-module' Name.Function ')' Punctuation ' ' Text 'names' Name.Variable ')' Punctuation ')' Punctuation '\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'local-set!' Name.Function ' ' Text 'names' Name.Variable ' ' Text 'val' Name.Variable ')' Punctuation ' ' Text '(' Punctuation 'nested-set!' Name.Function ' ' Text '(' Punctuation 'current-module' Name.Function ')' Punctuation ' ' Text 'names' Name.Variable ' ' Text 'val' Name.Variable ')' Punctuation ')' Punctuation '\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'local-define' Name.Function ' ' Text 'names' Name.Variable ' ' Text 'val' Name.Variable ')' Punctuation ' ' Text '(' Punctuation 'nested-define!' Name.Function ' ' Text '(' Punctuation 'current-module' Name.Function ')' Punctuation ' ' Text 'names' Name.Variable ' ' Text 'val' Name.Variable ')' Punctuation ')' Punctuation '\n' Text '(' Punctuation 'define ' Keyword '(' Punctuation 'local-remove' Name.Function ' ' Text 'names' Name.Variable ')' Punctuation ' ' Text '(' Punctuation 'nested-remove!' Name.Function ' ' Text '(' Punctuation 'current-module' Name.Function ')' Punctuation ' ' Text 'names' Name.Variable ')' Punctuation ')' Punctuation '\n' Text ';;; boot-9.scm ends here' Comment.Single '\n' Text