| Line | |
|---|
| 1 | #| |
|---|
| 2 | Copyright (C) 2008 David Owen <dsowen@fugue88.ws> |
|---|
| 3 | |
|---|
| 4 | This program is free software: you can redistribute it and/or modify |
|---|
| 5 | it under the terms of the GNU Lesser Public License as published by |
|---|
| 6 | the Free Software Foundation, either version 3 of the License, or |
|---|
| 7 | (at your option) any later version. |
|---|
| 8 | |
|---|
| 9 | This program is distributed in the hope that it will be useful, |
|---|
| 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
|---|
| 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|---|
| 12 | GNU Lesser Public License for more details. |
|---|
| 13 | |
|---|
| 14 | You should have received a copy of the GNU Lesser Public License |
|---|
| 15 | along with this program. If not, see <http://www.gnu.org/licenses/>. |
|---|
| 16 | |# |
|---|
| 17 | |
|---|
| 18 | (defpackage #:dso-simple-template-inst |
|---|
| 19 | (:use #:cl) |
|---|
| 20 | (:import-from #:dso-simple-template-env #:env-value) |
|---|
| 21 | (:import-from #:dso-simple-template-templ #:body-text #:expression #:parts) |
|---|
| 22 | (:export #:instantiate-template)) |
|---|
| 23 | |
|---|
| 24 | (in-package #:dso-simple-template-inst) |
|---|
| 25 | |
|---|
| 26 | |
|---|
| 27 | |
|---|
| 28 | (defgeneric instantiate-template (template env &optional stream) |
|---|
| 29 | (:method (template env &optional (stream *standard-output*)) |
|---|
| 30 | (dolist (part (parts template)) |
|---|
| 31 | (destructuring-bind (type . dat) part |
|---|
| 32 | (ecase type |
|---|
| 33 | (body-text |
|---|
| 34 | (write-string dat stream)) |
|---|
| 35 | (expression |
|---|
| 36 | (format stream "~A" (env-value env dat "")))))))) |
|---|
Note: See
TracBrowser
for help on using the repository browser.