;;; Copyright (c) 1991--2003 ;;; John Carroll, Ann Copestake, Robert Malouf, Stephan Oepen; ;;; see `LICENSE' for conditions. (in-package :make) (eval-when #+:ansi-eval-when (:load-toplevel :compile-toplevel :execute) #-:ansi-eval-when (load eval compile) (pushnew :xml *features*) #+(and :allegro (version>= 6 0)) (pushnew :pxml *features*) (pushnew :mrs *features*)) (defsystem "mrs" :source-pathname (get-sources-dir "lkb") :binary-pathname (get-binaries-dir "lkb") :source-extension "lisp" :depends-on (#+:pxml "pxml" #+:lkb "lkb") :initially-do (progn #+:xml (unless (find-package :s-xml) (funcall (intern "QUICKLOAD" :ql) :s-xml)) #-:cl-ppcre (funcall (intern "QUICKLOAD" :ql) :cl-ppcre)) :finally-do (let ((mrs-loaded (find-symbol "*MRS-LOADED*" :lkb))) (when mrs-loaded (setf (symbol-value mrs-loaded) t))) ;; ;; for backwards compatibility with people pushing an :lkb feature and then ;; loading the MRS system to obtain both, effectively make this system a ;; no-op, when LKB is requested; the :depends-on above will then make sure ;; the LKB (now including MRS) will get loaded. ;; :components #+:lkb () #-:lkb ((:module "package" :source-pathname "" :binary-pathname "" :load-only #-:ecl t #+:ecl nil :source-extension "lsp" :components ((:file "lkb-package") (:file "mrs-package") (:file "mt-package"))) (:module "core" :source-pathname "mrs" :binary-pathname "mrs" :components (#+:ecl (:file "ecl" :compile-only t) #+:ecl (:file "pet-interface") #+(not :ecl) (:file "dummy-interface") (:file "mrsglobals") ; some defaults for grammar-specific ; variables, typically adapted in a ; grammar-specific file. (:file "basemrs") ; MRS structures and printing (:file "mrsoutput") ; constructing MRS from parse result (:file "mrscorpus") ; checking equality etc (:file "interface") (:file "lnk"))) ;; following two files needed for scoping - can be excluded ;; for generation (:module "scoping" :source-pathname "mrs" :binary-pathname "mrs" :components ((:file "mrsresolve") ; resolving scope (:file "mrscons"))) ; constraints on scope (:module "munge" :source-pathname "mrs" :binary-pathname "mrs" :components ((:file "cheapscope"))) ; scope for fragments (:module "rmrs" :source-pathname "rmrs" :binary-pathname "rmrs" :components ((:file "basermrs") ;; the RMRS specific structures (:file "comp") ;; main code for semantic composition (:file "rmrs-algebra") ;; new code for ING free composition (:file "rmrs-convert") ;; MRS to RMRS (:file "annlt") ;; The ANNLT specific code - navigates round the input trees (:file "output") ;; outputting RMRS structures, and also LKB ;; generated structures in a compatible format. ;; In principle, supports multiple outputs - right no ;; outputs stuff in XML or a compact representation ;; LKB-specific code for comparison windows ;; but #+:lkb used #+:xml (:file "xml-utils") ;; some utilities for XML parser (:file "readgram") ;; loads the data file that associates the ;; rule names with semantic operations (:file "readtag") ;; loads the data file that associates the tags with ;; base semantic structures - uses a lot of code from ;; readgram (:file "input") ;;; loads the underlying rmrs input code (:file "compare") ;;; RMRS comparison (:file "testing") ;;; temporary file for testing (:file "dmrs") ;;; dependency MRS (:file "simplify") ;;; simplification of DMRS (:file "dmrsoutput") ;;; DMRS direct from a grammar - experimental )) (:module "redwoods" :source-pathname "mrs" :binary-pathname "mrs" :components ((:file "dependencies"))) (:module "mt" :source-pathname "mt" :binary-pathname "mt" :source-extension "lisp" :components ((:file "version" :load-only t) #+:logon (:file "mrsglobals" :load-only t) (:file "globals") #+:null (:file "patches") (:file "mrs") (:file "vpm") #+:null (:file "transfer") (:file "comparison") #+:null (:file "translate") #+:null (:file "clim") #+:null (:file "semi") #+:null (:file "fragments") #+:null (:file "lm") #+:null (:file "utool")))))