/[climacs]/climacs/html-syntax.lisp
ViewVC logotype

Diff of /climacs/html-syntax.lisp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.28 by rstrandh, Mon Apr 11 06:12:22 2005 UTC revision 1.29 by rstrandh, Mon Apr 11 06:27:13 2005 UTC
# Line 48  Line 48 
48    ((state :initarg :state)))    ((state :initarg :state)))
49    
50  (defclass start-lexeme (html-lexeme) ())  (defclass start-lexeme (html-lexeme) ())
51  (defclass tag-start (html-lexeme) ())  (defclass start-tag-start (html-lexeme) ())
52    (defclass end-tag-start (html-lexeme) ())
53  (defclass tag-end (html-lexeme) ())  (defclass tag-end (html-lexeme) ())
 (defclass slash (html-lexeme) ())  
54  (defclass word (html-lexeme) ())  (defclass word (html-lexeme) ())
55  (defclass delimiter (html-lexeme) ())  (defclass delimiter (html-lexeme) ())
56    
# Line 60  Line 60 
60    (flet ((fo () (forward-object scan)))    (flet ((fo () (forward-object scan)))
61      (let ((object (object-after scan)))      (let ((object (object-after scan)))
62        (case object        (case object
63          (#\< (fo) (make-instance 'tag-start))          (#\< (fo) (cond ((or (end-of-buffer-p scan)
64                                 (not (eql (object-after scan) #\/)))
65                             (make-instance 'start-tag-start))
66                            (t (fo)
67                               (make-instance 'end-tag-start))))
68          (#\> (fo) (make-instance 'tag-end))          (#\> (fo) (make-instance 'tag-end))
         (#\/ (fo) (make-instance 'slash))  
69          (t (cond ((alphanumericp object)          (t (cond ((alphanumericp object)
70                    (loop until (end-of-buffer-p scan)                    (loop until (end-of-buffer-p scan)
71                          while (alphanumericp (object-after scan))                          while (alphanumericp (object-after scan))
# Line 94  Line 97 
97       (defclass ,name (html-tag) ())       (defclass ,name (html-tag) ())
98    
99       (add-html-rule       (add-html-rule
100        (,name -> (tag-start        (,name -> (start-tag-start
101                   (word (and (= (end-offset tag-start) (start-offset word))                   (word (and (= (end-offset start-tag-start) (start-offset word))
102                              (word-is word ,string)))                              (word-is word ,string)))
103                   (tag-end (= (end-offset word) (start-offset tag-end))))))))                   (tag-end (= (end-offset word) (start-offset tag-end))))))))
104    
# Line 104  Line 107 
107       (defclass ,name (html-tag) ())       (defclass ,name (html-tag) ())
108    
109       (add-html-rule       (add-html-rule
110        (,name -> (tag-start        (,name -> (end-tag-start
111                   (slash (= (end-offset tag-start) (start-offset slash)))                   (word (and (= (end-offset end-tag-start) (start-offset word))
                  (word (and (= (end-offset slash) (start-offset word))  
112                              (word-is word ,string)))                              (word-is word ,string)))
113                   (tag-end (= (end-offset word) (start-offset tag-end))))))))                   (tag-end (= (end-offset word) (start-offset tag-end))))))))
114    
# Line 383  Line 385 
385     (attributes :initarg :attributes)     (attributes :initarg :attributes)
386     (end :initarg :end)))     (end :initarg :end)))
387    
388  (add-html-rule (<a> -> (tag-start  (add-html-rule (<a> -> (start-tag-start
389                          (word (and (= (end-offset tag-start) (start-offset word))                          (word (and (= (end-offset start-tag-start) (start-offset word))
390                                     (word-is word "a")))                                     (word-is word "a")))
391                          <a>-attributes                          <a>-attributes
392                          tag-end)                          tag-end)
393                      :start tag-start :name word :attributes <a>-attributes :end tag-end))                      :start start-tag-start :name word :attributes <a>-attributes :end tag-end))
394    
395  (defmethod display-parse-tree ((entity <a>) (syntax html-syntax) pane)  (defmethod display-parse-tree ((entity <a>) (syntax html-syntax) pane)
396    (with-slots (start name attributes end) entity    (with-slots (start name attributes end) entity
# Line 435  Line 437 
437     (attributes :initarg :attributes)     (attributes :initarg :attributes)
438     (end :initarg :end)))     (end :initarg :end)))
439    
440  (add-html-rule (<p> -> (tag-start  (add-html-rule (<p> -> (start-tag-start
441                          (word (and (= (end-offset tag-start) (start-offset word))                          (word (and (= (end-offset start-tag-start) (start-offset word))
442                                     (word-is word "p")))                                     (word-is word "p")))
443                          common-attributes                          common-attributes
444                          tag-end)                          tag-end)
445                      :start tag-start :name word :attributes common-attributes :end tag-end))                      :start start-tag-start :name word :attributes common-attributes :end tag-end))
446    
447  (defmethod display-parse-tree ((entity <p>) (syntax html-syntax) pane)  (defmethod display-parse-tree ((entity <p>) (syntax html-syntax) pane)
448    (with-slots (start name attributes end) entity    (with-slots (start name attributes end) entity
# Line 473  Line 475 
475     (attributes :initarg :attributes)     (attributes :initarg :attributes)
476     (end :initarg :end)))     (end :initarg :end)))
477    
478  (add-html-rule (<li> -> (tag-start  (add-html-rule (<li> -> (start-tag-start
479                           (word (and (= (end-offset tag-start) (start-offset word))                           (word (and (= (end-offset start-tag-start) (start-offset word))
480                                      (word-is word "li")))                                      (word-is word "li")))
481                           common-attributes                           common-attributes
482                           tag-end)                           tag-end)
483                       :start tag-start                       :start start-tag-start
484                       :name word                       :name word
485                       :attributes common-attributes                       :attributes common-attributes
486                       :end tag-end))                       :end tag-end))
# Line 517  Line 519 
519     (attributes :initarg :attributes)     (attributes :initarg :attributes)
520     (end :initarg :end)))     (end :initarg :end)))
521    
522  (add-html-rule (<ul> -> (tag-start  (add-html-rule (<ul> -> (start-tag-start
523                           (word (and (= (end-offset tag-start) (start-offset word))                           (word (and (= (end-offset start-tag-start) (start-offset word))
524                                      (word-is word "ul")))                                      (word-is word "ul")))
525                           common-attributes                           common-attributes
526                           tag-end)                           tag-end)
527                       :start tag-start                       :start start-tag-start
528                       :name word                       :name word
529                       :attributes common-attributes                       :attributes common-attributes
530                       :end tag-end))                       :end tag-end))
# Line 628  Line 630 
630     (attributes :initarg :attributes)     (attributes :initarg :attributes)
631     (end :initarg :end)))     (end :initarg :end)))
632    
633  (add-html-rule (<html> -> (tag-start  (add-html-rule (<html> -> (start-tag-start
634                             (word (and (= (end-offset tag-start) (start-offset word))                             (word (and (= (end-offset start-tag-start) (start-offset word))
635                                        (word-is word "html")))                                        (word-is word "html")))
636                             <html>-attributes                             <html>-attributes
637                             tag-end)                             tag-end)
638                         :start tag-start :name word :attributes <html>-attributes :end tag-end))                         :start start-tag-start :name word :attributes <html>-attributes :end tag-end))
639    
640  (defmethod display-parse-tree ((entity <html>) (syntax html-syntax) pane)  (defmethod display-parse-tree ((entity <html>) (syntax html-syntax) pane)
641    (with-slots (start name attributes end) entity    (with-slots (start name attributes end) entity

Legend:
Removed from v.1.28  
changed lines
  Added in v.1.29

  ViewVC Help
Powered by ViewVC 1.1.5