Commit | Line | Data |
---|---|---|
abdf50aa MW |
1 | ;;; -*-lisp-*- |
2 | ;;; | |
dea4d055 | 3 | ;;; Implementation of file-location protocol |
abdf50aa MW |
4 | ;;; |
5 | ;;; (c) 2009 Straylight/Edgeware | |
6 | ;;; | |
7 | ||
8 | ;;;----- Licensing notice --------------------------------------------------- | |
9 | ;;; | |
e0808c47 | 10 | ;;; This file is part of the Sensible Object Design, an object system for C. |
abdf50aa MW |
11 | ;;; |
12 | ;;; SOD is free software; you can redistribute it and/or modify | |
13 | ;;; it under the terms of the GNU General Public License as published by | |
14 | ;;; the Free Software Foundation; either version 2 of the License, or | |
15 | ;;; (at your option) any later version. | |
16 | ;;; | |
17 | ;;; SOD is distributed in the hope that it will be useful, | |
18 | ;;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
19 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
20 | ;;; GNU General Public License for more details. | |
21 | ;;; | |
22 | ;;; You should have received a copy of the GNU General Public License | |
23 | ;;; along with SOD; if not, write to the Free Software Foundation, | |
24 | ;;; Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
25 | ||
dea4d055 | 26 | (cl:in-package #:sod-parser) |
abdf50aa | 27 | |
dea4d055 MW |
28 | ;;;-------------------------------------------------------------------------- |
29 | ;;; File location objects. | |
abdf50aa | 30 | |
dea4d055 MW |
31 | (let ((null-file-location (make-file-location nil nil nil))) |
32 | (defmethod file-location ((thing t)) null-file-location)) | |
abdf50aa | 33 | |
dea4d055 MW |
34 | (defmethod file-location ((stream stream)) |
35 | (make-file-location (stream-pathname stream) nil nil)) | |
36 | ||
37 | (defmethod print-object ((object file-location) stream) | |
38 | (maybe-print-unreadable-object (object stream :type t) | |
39 | (format stream "~:[<unknown>~;~:*~A~]~@[:~D~]~@[:~D~]" | |
40 | (file-location-filename object) | |
41 | (file-location-line object) | |
42 | (file-location-column object)))) | |
43 | ||
44 | (defmethod make-load-form ((object file-location) &optional environment) | |
45 | (make-load-form-saving-slots object :environment environment)) | |
abdf50aa MW |
46 | |
47 | ;;;----- That's all, folks -------------------------------------------------- |