Changeset 20692

Show
Ignore:
Timestamp:
10/04/08 18:28:23 (5 years ago)
Author:
kiyoka
Message:
 
Files:
1 modified

Legend:

Unmodified
Added
Removed
  • lang/gauche/oldtype/trunk/tool/tdiary2oldtype/convertToSexp.scm

    r20690 r20692  
    44 
    55 
    6 (define (load-td2 port mode) 
    7   (let ((state 'title ) 
     6(define (load-td2 port) 
     7  (let ( 
     8        (body  '()) 
    89        (str-list (port->string-list port))) 
     10 
     11    (define (reset-body!) 
     12      (let1 ret (reverse body) 
     13            (set! body '()) 
     14            (if (null? ret) 
     15                "" 
     16                (string-append "    ( \"" 
     17                               (string-join ret "\n") 
     18                               "\" )")))) 
     19    (define (push-body! str) 
     20      (push! body str)) 
     21 
    922    (filter-map 
    1023     (lambda (str) 
     
    1326         #f) 
    1427        ((#/^[a-zA-Z-]+: / str) 
    15          (string-append 
    16           (if (#/^Date: / str) 
    17               "(" 
    18               "") 
    19           (let1 pair (string-split str #/[ ]+/) 
    20                 (format "(~a . ~a)" (car pair) (cadr pair))))) 
     28         (let1 pair (string-split str #/[ ]+/) 
     29               (string-append 
     30                (if (#/^Date: / str) 
     31                    (format "( \"~a\" . " (cadr pair)) 
     32                    "") 
     33                (format "(~a . \"~a\")" (car pair) (cadr pair))))) 
    2134        ((= 0 (string-length str)) 
    22          (set! state 'title) 
    23          #f) 
     35         (reset-body!)) 
    2436        ((#/^.$/ str) 
    25          (set! state 'title) 
    26          ")") 
     37         (string-append (reset-body!) 
     38                        " )")) 
    2739        (else 
    2840         (let1 str (regexp-replace-all #/[\"]/ str "'") 
    29                (if (eq? 'c mode) 
    30                    (format "(body . \"~a\")" str)) 
    31                    (case state 
    32                      ((title) 
    33                       (set! state 'body) 
    34                       (format "(title . \"~a\")" str)) 
    35                      ((body) 
    36                       (format "(body . \"~a\")" str))))))) 
     41               (push-body! str) 
     42               #f)))) 
    3743     str-list))) 
    3844 
    3945 
    4046(define (main argv) 
    41   (print "(") 
    42   (for-each print 
    43             (load-td2 
    44              (current-input-port) 
    45              (string->symbol #?=(cadr argv)))) 
    46   (print ")")) 
    47  
     47  (let1 mode (string->symbol (cadr argv)) 
     48        (print "(") 
     49        (for-each print 
     50                  (load-td2 
     51                   (current-input-port))) 
     52        (print ")"))) 
    4853 
    4954