From: Craig L. <la...@sc...> - 2002-04-01 22:49:16
|
The patch below includes the following: o update todo.txt file o minor clean up of the code which writes the intermediate lisp file o update x/degen-x-grammar.zb and x/x-grammar.zb to N178 20020322 Craig Index: todo.txt =================================================================== RCS file: /cvsroot/exp-engine/expresso/todo.txt,v retrieving revision 1.15 diff -u -r1.15 todo.txt --- todo.txt 1 Mar 2002 21:39:06 -0000 1.15 +++ todo.txt 1 Apr 2002 22:40:45 -0000 @@ -1,16 +1,17 @@ Indeterminate Future +- Add support for Part 21 2nd ed. +- Add algorithm to take current data population and add all required instances [requested by Tom Thurman] - Add button to interface so that the user can force a memory reducing GC (clean down) -- [SF.net] Add repository of Exp/ExpX test cases. +- DONE [SF.net] Add repository of Exp/ExpX test cases. - Provide separate "package": express-test-cases, expressx-test-cases - - Provide separate mailing list: exp-engine-test + - DONE Provide separate mailing list: exp-engine-test - [Win32] Support for command-line interface. - [Win32] Store/Access info in Registry (needed for install relocation) - [Win32] Allow installation to user defined location -- [Kern] Eliminate requirement for saving and reading temp files -- Dataset instances stored in dataset object +- [Kern] Eliminate *requirement* for saving and reading temp files - Define API for dataset -- GUI uses only specified API -- Implement server mode using API + - GUI uses only specified API + - Implement server mode using API - [Exp] Add support for REFERENCE FROM and USE FROM - [Kern] Switch to "Late Binding" mode - [Kern] Fix problem with non-current datasets not displaying entity instance id's @@ -18,23 +19,25 @@ - Eliminate need for grammar and degen-grammar - Implement built-in function FORMAT (Picture Representation) - Fix problem with entity-constructor in CONSTANT declaration -- 2.4.0: Replace Zebu based Part 21 parser - - Handle '' correctly. -- 2.4.1: Change format of Exp temp files (use more lispish DEFINE-* format) -- 2.4.1: Change format of ExpX temp files (use more lispish DEFINE-* format) -- 2.4.2: Use SDAI-like meta objects instead of direct CLOS instances -- 2.4.2: Replace Zebu parser +- Replace Zebu based Part 21 parser + - Handle '' correctly. +- Change format of Exp temp files (use more lispish DEFINE-* format) +- Change format of ExpX temp files (use more lispish DEFINE-* format) +- Use SDAI-like meta objects instead of direct CLOS instances +- Replace Zebu parser NOTES - ExpX code should probably resolve functions, procedures, entities, and types to names that include the proper schema identifier. BEFORE 2.4.0 +- DONE (Peter Denno) Dataset instances stored in dataset object - DONE Fix saving options to save to expo:user;patches;preferences.lsp - DONE Update ExpX parser to PreDIS version of Express-X -- DONE Implement ExpX concepts: MAP, DEPENDENT_MAP, CONSTANT (partial) +- DONE Implement ExpX concepts: MAP, DEPENDENT_MAP, VIEW, CONSTANT (partial) - DONE Implement built-in function FORMAT (Symbolic Representation only) - DONE Allow non-alphabetically ordered complex instances when reading a P21 file +- DONE Don't check presence of required attributes when reading a P21 file BEFORE 2.3.4 - DONE Linux (Win32?): Pipe mode (communicate through stdin, stdout, stderr) [needs doc] Index: compiler/rule-utils.lsp =================================================================== RCS file: /cvsroot/exp-engine/expresso/compiler/rule-utils.lsp,v retrieving revision 1.10 diff -u -r1.10 rule-utils.lsp --- compiler/rule-utils.lsp 11 Mar 2002 23:35:45 -0000 1.10 +++ compiler/rule-utils.lsp 1 Apr 2002 22:40:47 -0000 @@ -738,19 +738,19 @@ (*package* (find-package :eu)) (*print-pretty* nil)) (with-open-file - (stream filename :direction :output :if-exists :supersede + (stream filename :direction :output :if-exists :supersede :if-does-not-exist :create) - (write-file-header stream) ;; Unless suppressing, run it on load. ;;; (unless (get-special suppress-new-namespace) ;;; (format stream "~%(schema-initializer)")) (with-slots (name interned-name schema-pathname) schema + (write-file-header stream schema-pathname) (format stream - "~%(set-current-schema + "~%(set-current-schema~% ~ (ensure-schema 'expo::~a :name ~s :interned-name '~a :schema-pathname ~s))" (if (get-special express-x) 'map-schema 'express-schema) name interned-name schema-pathname)) - (when (get-special express-x) + (when express-x (format stream "~%(setf (expo::views (get-special expo::current-schema)) nil)") (format stream "~%(setf (expo::view-infos (get-special expo::current-schema)) nil)")) (unless express-x Index: expcore/express-utils.lsp =================================================================== RCS file: /cvsroot/exp-engine/expresso/expcore/express-utils.lsp,v retrieving revision 1.11 diff -u -r1.11 express-utils.lsp --- expcore/express-utils.lsp 25 Mar 2002 16:20:02 -0000 1.11 +++ expcore/express-utils.lsp 1 Apr 2002 22:40:48 -0000 @@ -220,21 +220,18 @@ ;;; Tests whether the value is the Express ? (not the Part21 $). (defmacro indeterminate-p (exp) `(eql ,exp :?)) - -(defun write-file-header (stream) + +(defun write-file-header (stream source-pathname) (multiple-value-bind (ignore min hour day month year) (get-decoded-time) ignore - #+LispWorks - (format stream "~%;;; File created by Express Engine at ~2d:~2,'0d ~a/~a/~a." + (format stream ";;; -*- Mode: Lisp; Syntax: ANSI-Common-Lisp; Package: EU; Base: 10 -*-~%") + (format stream "~%;;; File created by Express Engine at ~2D:~2,'0D ~A/~A/~A." hour min month day year) - #+Allegro - (format stream "~%;;; File created by Express Engine at ~2d:~2,'0d ~a/~a/~a." - hour min month day year) - (format stream "~%;;; Express Engine version ~a" *e1-version*) + (format stream "~%;;; Express Engine version ~A" *e1-version*) (format stream "~%;;; Express Engine is developed as a project on SourceForge.net")) - (format stream "~%;;; Compilation of ~a" (get-special schema-file)) - (format stream "~%~%(in-package :expresso-user)" stream)) + (format stream "~%;;; Compilation of ~A" source-pathname) + (format stream "~2%(in-package :expresso-user)" stream)) (defun find-eu-class (class-symbol &key schema error) "find-class specifically for classes defined by the express user, Index: x/degen-x-grammar.zb =================================================================== RCS file: /cvsroot/exp-engine/expresso/x/degen-x-grammar.zb,v retrieving revision 1.10 diff -u -r1.10 degen-x-grammar.zb --- x/degen-x-grammar.zb 18 Mar 2002 22:42:36 -0000 1.10 +++ x/degen-x-grammar.zb 1 Apr 2002 22:40:50 -0000 @@ -26,7 +26,7 @@ ;;; ;;; Description: Zebu Grammar for Express-X (PreDIS) language. ;;; -;;; Matches N178 dated 2002-02-20 +;;; Matches N178 dated 2002-03-22 ;;; ;;; NOTE: The zebu generator cannot handle <identifier>+"x" "x" @@ -418,8 +418,10 @@ Map_attribute_declaration --> Map_attr_decl_prefix IDENTIFIER Opt_index_qualifier ":=" Expression ";" ; -Map_attr_decl_prefix --> - | IDENTIFIER Opt_index_qualifier Opt_group_qualifier "." ; +;Map_attribute_declaration --> IDENTIFIER Opt_index_qualifier Map_attr_extra ":=" Expression ";" ; +;Map_attr_extra --> | Opt_group_qualifier "." IDENTIFIER Opt_index_qualifier ; + +Map_attr_decl_prefix --> | IDENTIFIER Opt_index_qualifier Opt_group_qualifier "." ; Opt_group_qualifier --> | Group_qualifier ; @@ -428,7 +430,7 @@ Opt_partition_qualification --> | Partition_qualification ; Map_decl --> "MAP" Map_id "AS" Target_parameter+"" - Map_subtype_of_clause Submap_partition+"" "END_MAP" ";" + Map_subtype_of_clause Submap_partition "END_MAP" ";" | "MAP" Map_id "AS" Target_parameter+"" Map_partition+"" "END_MAP" ";" ; @@ -691,7 +693,6 @@ | "STRING" "(" NUMBER ")" "FIXED" ; Subtype_binding_header --> Where_clause - | "PARTITION" ";" Where_clause | "PARTITION" Partition_id ";" Where_clause ; Subtype_constraint --> "OF" "(" Supertype_expression ")" ; Index: x/x-grammar.zb =================================================================== RCS file: /cvsroot/exp-engine/expresso/x/x-grammar.zb,v retrieving revision 1.15 diff -u -r1.15 x-grammar.zb --- x/x-grammar.zb 25 Mar 2002 16:31:37 -0000 1.15 +++ x/x-grammar.zb 1 Apr 2002 22:40:50 -0000 @@ -26,7 +26,7 @@ ;;; ;;; Description: Zebu Grammar for Express-X (PreDIS) language. ;;; -;;; Matches N178 dated 2002-02-20 +;;; Matches N178 dated 2002-03-22 (:name "express-x" :package :expresso @@ -987,11 +987,11 @@ ; 133 Map_decl --> "MAP" Map_id "AS" Target_parameter+"" - Map_subtype_of_clause Map_sub_partition+"" "END_MAP" ";" + Map_subtype_of_clause Map_sub_partition "END_MAP" ";" { side-effected-map-decl:[(-id Map_id) (-header Target_parameter+) (-subtype-of Map_subtype_of_clause) - (-partitions Map_sub_partition+)] } + (-partitions Map_sub_partition)] } | "MAP" Map_id "AS" Target_parameter+"" Map_partition+"" "END_MAP" ";" { side-effected-map-decl:[(-id Map_id) @@ -1429,8 +1429,6 @@ ; 202 Subtype_binding_header --> Where_clause - { partition-header: [(-where Where_clause)] } - | "PARTITION" ";" Where_clause { partition-header: [(-where Where_clause)] } | "PARTITION" Partition_id ";" Where_clause { partition-header: [(-id Partition_id) |