Changeset 31396 in project


Ignore:
Timestamp:
09/12/14 04:15:12 (5 years ago)
Author:
Ivan Raikov
Message:

ersatz: implemented better control of whether to include new lines after logic and expansion stmts

Location:
release/4/ersatz/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • release/4/ersatz/trunk/make-ersatz-lexer.scm

    r31372 r31396  
    2626;; required by SILex.
    2727;;
     28
     29(use srfi-13)
    2830
    2931(define (make-ersatz-lexer output-port
     
    3234                           (end-comment "#}")
    3335                           (begin-expand "{{")
    34                            (end-expand "}}")
     36                           (end-expand '("}}" "}}\n"))
    3537                           (begin-logic "{%")
    3638                           (end-logic "%}")
     
    8486
    8587  (fprintf output-port #<<EOF
    86 ~S   (cases lexer-mode (lexer-curmode)
     88~A   (cases lexer-mode (lexer-curmode)
    8789            (LexerPlain ()
    8890                (lexer-curmode (LexerExpand))
     
    100102
    101103EOF
    102   begin-expand)
    103 
    104   (fprintf output-port #<<EOF
    105 ~S   (cases lexer-mode (lexer-curmode)
     104  (cond ((string? begin-expand)
     105         (sprintf "~S" begin-expand))
     106        ((pair? begin-expand)
     107         (string-join (map (lambda (s) (sprintf "~S" s)) begin-expand) "|"))
     108        (else (error 'ersatz "invalid begin-expand specification" begin-expand))))
     109
     110  (fprintf output-port #<<EOF
     111~A   (cases lexer-mode (lexer-curmode)
    106112            (LexerExpand ()
    107113                (lexer-curmode (LexerPlain))
     
    112118
    113119EOF
    114    end-expand)
     120  (cond ((string? end-expand)
     121         (sprintf "~S" end-expand))
     122        ((pair? end-expand)
     123         (string-join (map (lambda (s) (sprintf "~S" s)) end-expand) "|"))
     124        (else (error 'ersatz "invalid end-expand specification" end-expand))))
    115125
    116126  (fprintf output-port #<<EOF
  • release/4/ersatz/trunk/parser.scm

    r31202 r31396  
    7575                      (import   (only utf8 string-length substring)
    7676                                (only utf8-srfi-13 string-null? string-every string-upcase
    77                                       string-downcase string-titlecase string-concatenate string-trim-both
     77                                      string-downcase string-titlecase string-concatenate string-join string-trim-both
    7878                                      string-ci< string<)
    7979                                (only utf8-srfi-14 char-set:lower-case char-set:upper-case char-set:whitespace
  • release/4/ersatz/trunk/tests/run.scm

    r31393 r31396  
    284284    <h3>Post One title</h3>
    285285    <div class="post-body">
    286      Post One body
    287     </div>
     286     Post One body    </div>
    288287  </div>
    289288
     
    291290    <h3>Post Two title</h3>
    292291    <div class="post-body">
    293      Post Two body
    294     </div>
     292     Post Two body    </div>
    295293  </div>
    296294
     
    402400EOF
    403401))
    404        
     402
     403
    405404  (test-assert "macro"
    406405               (tval-equal?
     
    408407                         (string-append macro-three-words
    409408                                        "{{ three_words(\"this\", \"is\", \"it!\") }}")))
    410                   (Tstr "\nthis is it!\n")))
     409                  (Tstr "\nthis is it!")))
    411410       
    412411  (test-assert "caller"
     
    419418                                         "{% endcall %}")
    420419                                        )))
    421                   (Tstr "\nthis is it! by chicken scheme\n")))
     420                  (Tstr "\nthis is it! by chicken scheme")))
    422421
    423422)
Note: See TracChangeset for help on using the changeset viewer.