Awesome
cl-heredoc - Common Lisp reader heredoc dispatcher
cl-heredoc is an implementation of "here documents" that allow the user to embed literal strings into code or data without any need for quoting, something that is missing in both ANSI CL and popular implementations.
cl-heredoc is completely written in Common Lisp and licensed under the GPLv3+. Please see the file COPYING in the top-level directory of the distribution tarball or the online version if you didn't receive a copy along with this file.
Usage
cl-heredoc primarily exports a single function, READ-HEREDOC
, that is meant to
be used with the CL reader by attaching it to a dispatch character, e.g.
CL-USER> (set-dispatch-macro-character #\# #\> #'cl-heredoc:read-heredoc)
CL-USER> #>eof>Write whatever (you) "want",
no matter how many lines or what characters until
the magic end sequence has been reached!eof
Will read everything starting after #>eof>
until the given sequence, here
eof
, is found and return the result as a string. The enclosed text is not
subject to any kind of evaluation and needs no quoting.
If used in a non-interactive fashion, i.e. outside the REPL, an error will be
signaled if EOF is reached.
The underlying function READ-UNTIL-MATCH
may also be used directly: It takes
two arguments, a stream and a termination string and will read from the stream
until the terminating sequence is found. Everything read so far excluding the
terminator is returned as a string.
Links and References
Homepage: http://www.cliki.net/cl-heredoc
Hacking: http://github.com/e-user/cl-heredoc
Copyright (C) 2009, 2010 Alexander Kahl e-user@fsfe.org This file is part of cl-heredoc. cl-heredoc is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.
cl-heredoc is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.