Changeset 27134 in project


Ignore:
Timestamp:
07/28/12 18:30:55 (9 years ago)
Author:
sjamaan
Message:

colorize: Add (initial version of) css language support

Location:
release/4/colorize/trunk
Files:
2 added
2 edited

Legend:

Unmodified
Added
Removed
  • release/4/colorize/trunk/coloring-types.scm

    r27131 r27134  
    10971097    (lambda (type s)
    10981098      (format #f "<span class=\"symbol\">~A</span>" s)))))
     1099
     1100(define *css-begin-word*
     1101  (make-parameter
     1102   "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"))
     1103(define *css-terminators*
     1104  (make-parameter
     1105   '(#\space #\return #\tab #\newline #\. #\/ #\- #\* #\+
     1106     #\{ #\} #\( #\) #\' #\" #\[ #\] #\< #\> #\# #\!)))
     1107
     1108(define-coloring-type :css "Cascading Style Sheets"
     1109  :default-mode :normal
     1110  :transitions
     1111  (((:normal :ruleset)
     1112    ((scan #\@)
     1113     (set-mode :at-keyword
     1114               :until (scan-any (*css-terminators*))
     1115               :advancing #f))
     1116    ((scan #\{)
     1117     (set-mode :ruleset
     1118               :until (scan #\})))
     1119    ((scan "/*")
     1120     (set-mode :comment
     1121               :until (scan "*/")))
     1122    ((scan #\")
     1123     (set-mode :string
     1124               :until (scan #\"))))
     1125   (:string
     1126    ((scan #\\)
     1127     (set-mode :single-escape
     1128               :until (advance 1))))
     1129   (:ruleset
     1130    ((scan #\!)
     1131     (set-mode :exclamation
     1132               :until (scan-any (*css-terminators*))
     1133               :advancing #f))
     1134    ((scan-any (*css-begin-word*))
     1135     (set-mode :property
     1136               :until (scan #\:)
     1137               :advancing #f))
     1138    ((scan #\:)
     1139     (set-mode :value
     1140               :until (scan-any ";}!")
     1141               :advancing #f))))
     1142  :formatters
     1143  (((:normal :ruleset :value)
     1144    (lambda (type s) s))
     1145   (:property
     1146    (lambda (type s)
     1147      (format #f "<span class=\"variable\">~A</span>" s)))
     1148   (:comment
     1149    (lambda (type s)
     1150      (format #f "<span class=\"comment\">~A</span>" s)))
     1151   (:string
     1152    (lambda (type s)
     1153      (format #f "<span class=\"string\">~A</span>" s)))
     1154   (:single-escape
     1155    (lambda (type s)
     1156      (call-formatter (cdr type) s)))
     1157   (:at-keyword
     1158    (lambda (type s)
     1159      (format #f "<span class=\"keyword\">~A</span>" s)))
     1160   (:exclamation
     1161    (lambda (type s)
     1162      (format #f "<span class=\"special\">~A</span>" s)))))
  • release/4/colorize/trunk/colorize.scm

    r26709 r27134  
    3535
    3636(module colorize
    37   (html-colorize coloring-type-names coloring-type-exists?)
     37  (html-colorize coloring-type-names coloring-type-exists? scan-string)
    3838
    3939(import chicken scheme)
Note: See TracChangeset for help on using the changeset viewer.