;;; -*- mode: Lisp; Syntax: Common-Lisp; -*- ;;; ;;; Copyright (c) 2009 by the authors. ;;; ;;; See LICENCE for details. (in-package :hu.dwim.projectional-editor) ;;;;;; ;;; Projection (def (projection e) recursive () ((child :type projection))) ;;;;;; ;;; Construction (def (function e) make-projection/recursive (projection) (make-projection 'recursive :child projection)) ;;;;;; ;;; Construction (def (macro e) recursive (&body forms) `(make-projection/recursive ,@forms)) ;;;;;; ;;; Printer (def printer recursive (projection recursion input input-reference output-reference) (declare (ignore recursion)) (bind ((child (child-of projection))) (funcall (printer-of child) child projection input input-reference output-reference))) ;;;;;; ;;; Reader (def reader recursive (projection recursion input input-reference output-reference) (declare (ignore projection recursion input input-reference output-reference)) nil)