[climacs-cvs] CVS update: climacs/syntax.lisp
Robert Strandh
rstrandh at common-lisp.net
Wed Mar 2 04:07:27 UTC 2005
Update of /project/climacs/cvsroot/climacs
In directory common-lisp.net:/tmp/cvs-serv4425
Modified Files:
syntax.lisp
Log Message:
An incomplete item now stores its state of origin. The chain of
states of origin will define a "parse stack" that can be exploited by
syntax modules and display code.
Date: Wed Mar 2 05:07:26 2005
Author: rstrandh
Index: climacs/syntax.lisp
diff -u climacs/syntax.lisp:1.30 climacs/syntax.lisp:1.31
--- climacs/syntax.lisp:1.30 Sat Feb 5 07:49:53 2005
+++ climacs/syntax.lisp Wed Mar 2 05:07:26 2005
@@ -143,7 +143,8 @@
(defclass rule-item () ())
(defclass incomplete-item (rule-item)
- ((rule :initarg :rule :reader rule)
+ ((orig-state :initarg :orig-state :reader orig-state)
+ (rule :initarg :rule :reader rule)
(dot-position :initarg :dot-position :reader dot-position)
(parse-trees :initarg :parse-trees :reader parse-trees)
(suffix :initarg :suffix :reader suffix)))
@@ -171,6 +172,7 @@
nil)
((functionp remaining)
(make-instance 'incomplete-item
+ :orig-state (orig-state prev-item)
:rule (rule prev-item)
:dot-position (1+ (dot-position prev-item))
:parse-trees (cons parse-tree (parse-trees prev-item))
@@ -249,6 +251,7 @@
(or (subtypep sym1 sym2) (subtypep sym2 sym1)))
(handle-item (if (functionp (right-hand-side rule))
(make-instance 'incomplete-item
+ :orig-state to-state
:rule rule
:dot-position 0
:parse-trees '()
@@ -273,6 +276,7 @@
(subtypep sym (target parser))))
(handle-item (if (functionp (right-hand-side rule))
(make-instance 'incomplete-item
+ :orig-state initial-state
:rule rule
:dot-position 0
:parse-trees '()
More information about the Climacs-cvs
mailing list