Module: dylan-user Copyright: Original Code is Copyright (c) 1995-2004 Functional Objects, Inc. All rights reserved. License: Functional Objects Library Public License Version 1.0 Dual-license: GNU Lesser General Public License Warranty: Distributed WITHOUT WARRANTY OF ANY KIND define library dfmc-reader use functional-dylan; use parser-run-time; use big-integers; use io; use dfmc-common; use dfmc-conditions; use source-records; export dfmc-reader; end library; define module dfmc-reader use functional-dylan; use dylan-extensions, import: { vector-element, vector-element-setter, \without-bounds-checks, make-symbol }; use pprint; use parser-run-time, rename: { => }; use big-integers, prefix: "generic"; use dfmc-common; use dfmc-imports; use dfmc-conditions; use source-records; //// Token classes used externally. export $define-body-word-only-token, $define-list-word-only-token, $begin-word-only-token, $function-word-only-token, $local-declaration-word-only-token, $local-methods-word-only-token, $define-macro-body-word-only-token, $macro-case-begin-word-only-token, $unreserved-name-token; //// Source reading interface. export read-top-level-fragment, source-lines-read, re-read-fragments, $start-token-constraint, $start-name-constraint, $start-expression-constraint, $start-variable-constraint, $start-body-constraint, $start-case-body-constraint, $start-property-list-constraint, $start-fragment-constraint, $end-constraint; //// Reading conditions. export , , , , , parser-error-handler; //// Fragment value creation, and the extra "literal" unbound value. export as-fragment-value, , $unbound; //// Special source location indicating nothingness... export $nowhere; //// Dynamic source location contexts. export , source-location-record, record-position-as-location, source-location-source-position, \with-parent-source-location, do-with-parent-source-location, \with-parent-fragment, do-with-parent-fragment, parent-source-location, range-source-offset-greater-than?, source-location-start-offset-setter, source-location-end-offset-setter; //// Program fragment interface. export \with-fragment-info, *fragment-context*, classify-word-in, classify-expansion-word-in, merge-token-classes, definer-token-class?, classify-dylan-name, dylan-variable-name, , fragment-source-location, fragment-source-position, fragment-source-position-setter, // HACK: FOR DOOD fragment-record, fragment-record-setter, // HACK: FOR DOOD // fragment-start-source-location, // fragment-end-source-location, , , , , , , , , , , , , , , , , , , , , , , fragment-fragments, , nested-fragment?, fragment-left-delimiter, fragment-nested-fragments, fragment-right-delimiter, , , , , fragment-name, fragment-name-string, same-name-when-local?, , , fragment-name, , , , , , , fragment-identifier, fragment-module, fragment-context, make-variable-name-fragment-in-module, make-variable-name-like, splice-name-hygienically, suffix-name-hygienically, , , fragment-value, , , , , , , , , , , , , , fragment-elements, , , fragment-macro, fragment-argument, , fragment-modifiers, fragment-define-word, , fragment-body-fragment, fragment-end-word, , fragment-list-fragment, , fragment-macro-body-fragment, fragment-end-word, , fragment-body-fragment, , fragment-body-fragment, , fragment-declaration-fragment, fragment-body-fragment, , fragment-list-fragment, , fragment-function, fragment-arguments, , body-fragment, fragment-constituents, ; export , end-of-modifiers-marker?; export ; export , \with-new-hygiene-context, do-with-new-hygiene-context, make-unique-local-variable-name-fragment; export , , , , , fragment-escaped-fragment, , fragment-constraint, , fragment-name, fragment-constraint, , fragment-pattern-variable, fragment-prefix, fragment-suffix, , fragment-name, fragment-constraint, fragment-separator, , , , fragment-template, , fragment-rule-name, ; export