Module: dfmc-macro-expander Synopsis: Generate a function to reconstruct a given fragment. Author: Keith Playford 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 method generate-constructor-function (f :: ) let value = fragment-value(f); match-method make-literal-fragment(value) end end method; define method generate-constructor-function (f :: ) let name = fragment-name(f); match-method make-name-fragment(name) end end method; define method generate-constructor-function (f :: ) let name = fragment-name(f); match-method make-escaped-name-fragment(name) end end method; define method generate-constructor-function (f :: ) let name = fragment-name(fragment-name(f)); match-method make-unhygienic-name-fragment(name) end end method; define method generate-constructor-function (f :: ) let name = fragment-name(f); match-method make-binary-operator-fragment(name) end end method; define method generate-constructor-function (f :: ) let name = fragment-name(f); match-method make-unary-operator-fragment(name) end end method; define method generate-constructor-function (f :: ) let name = fragment-name(f); match-method make-unary-and-binary-operator-fragment(name) end end method; define method generate-constructor-function (f :: ) let symbol = fragment-name(f); let constraint = fragment-constraint(f); match-method make-constrained-name-fragment(symbol, constraint) end end method; define method generate-constructor-function (f :: ) generate-constructor-function(fragment-escaped-fragment(f)); end method; //// Punctuation. define macro punctuation-generator-function-definer { define punctuation-generator-function "<" ## ?:name ## ">" } => { define method generate-constructor-function (f :: "<" ## ?name ## ">") match-method "make-" ## ?name() end end method; } end macro; define punctuation-generator-function ; define punctuation-generator-function ; define punctuation-generator-function ; define punctuation-generator-function ; define punctuation-generator-function ; define punctuation-generator-function ; define punctuation-generator-function ; define punctuation-generator-function ; define punctuation-generator-function ; define punctuation-generator-function ; define punctuation-generator-function ; define punctuation-generator-function ; define punctuation-generator-function ; define punctuation-generator-function ; define punctuation-generator-function ; define punctuation-generator-function ; define punctuation-generator-function ; define punctuation-generator-function ; define punctuation-generator-function ; define punctuation-generator-function ; define punctuation-generator-function ; define punctuation-generator-function ; define punctuation-generator-function ; // eof