grass.el(0.1.8) > defun grass-parse

概要

  • grass パーサ

引数

  • string

実装

(defun grass-parse (string)
 (let ((list (split-string (grass-parse-normalize string) "v"))

       (case-fold-search nil)
       (seq (list nil)))
   (while list
     (let ((string (car list)))
       (nconc seq (if (string-match "^\\(w+\\)\\(.*\\)" string)

                      (list (list 'abs (match-end 1)
                                  (grass-parse-apps string (match-beginning 2))))
                    (if (and (string= string "") (cdr list))
                        (unless grass-allow-consecutive-v-separators
                          (error "grass-parse: syntax error: consecutive v separators")))
                    (grass-parse-apps string))))
     (setq list (cdr list)))
   (cdr seq)))

(grass-parse "wWwwwWwwwwwWWWWwvwvwwWWWWwWWWWwwwvwwWWwwWwwvwwWWWwWWWwvwWWwWwvwWWwwwwwWwwvwwWWw
WWWwvWwvwwwWWWwwWwwWWWWwvWwwwWWWWwWWWWwwwWwwWWWWWwWWWWWWwvwwWWwWWWwvWwwWWwwwwWW
WwwwwwwWWWWWWWWWWwwwwwwwwWwwWWwwwwWWWwwwwwwvwwwWWWwwWwwWWWWwvWwwwwwwWWwwwwWWWww
wwWWWWwWWWWWWWWWWWWWWWWWWWwwwwwWwwWWwWWWwWWWWwvwWWWWWWWWWWWWWWWWWWWWWWWWWWWWWww
wwwwwwwWwwwwwwwwwWwwwwwwWwwwwwwwWwwwwwwwWwwwwwwwwwwwwwwwwwwwWwwwwwwwwwwwwwwwwww
wwwwvwwvWWwWwwWwwwwwwWwwwwwwWwwwwwwwwwWwwwwwwwwwwwwwwwwwwWwwwwwwwwwwwwwwwwwvw
")
⇒
((abs 1 ((app 1 3) (app 1 5) (app 4 1))) (abs 1 nil) (abs 2 ((app 4 1) (app 4 3))) (abs 2 ((app 2 2) (app 1 2))) (abs 2 ((app 3 1) (app 3 1))) (abs 1 ((app 2 1) (app 1 1))) (abs 1 ((app 2 5) (app 1 2))) (abs 2 ((app 2 1) (app 3 1))) (app 1 1) (abs 3 ((app 3 2) (app 1 2) (app 4 1))) (app 1 3) (app 4 1) (app 4 3) (app 1 2) (app 5 1) (app 6 1) (abs 2 ((app 2 1) (app 3 1))) (app 1 2) (app 2 4) (app 3 6) (app 10 8) (app 1 2) (app 2 4) (app 3 6) (abs 3 ((app 3 2) (app 1 2) (app 4 1))) (app 1 6) (app 2 4) (app 3 4) (app 4 1) (app 19 5) (app 1 2) (app 2 1) (app 3 1) (app 4 1) (abs 1 ((app 29 9) (app 1 9) (app 1 6) (app 1 7) (app 1 7) (app 1 19) (app 1 22))) (abs 2 nil) (app 2 1) (app 1 2) (app 1 6) (app 1 6) (app 1 9) (app 1 18) (app 1 17) (abs 1 nil))


呼出元

コメント:


履歴

  • 作者:kobapan
  • 日付:2009/01/03
  • 対象:
更新日 更新者 更新内容

コメント


名前:
コメント:
最終更新:2009年01月09日 06:52