]> gitweb.factorcode.org Git - factor.git/blobdiff - basis/html/templates/fhtml/fhtml.factor
Delete empty unit tests files, remove 1- and 1+, reorder IN: lines in a lot of places...
[factor.git] / basis / html / templates / fhtml / fhtml.factor
index 23bb4696271da24aadaafdf1d680108d6ac78435..a98a21f177c2ca6ebdbaa4daf3e89a201220bec3 100644 (file)
@@ -1,12 +1,10 @@
 ! Copyright (C) 2005 Alex Chapman
-! Copyright (C) 2006, 2008 Slava Pestov
+! Copyright (C) 2006, 2009 Slava Pestov
 ! See http://factorcode.org/license.txt for BSD license.
 USING: continuations sequences kernel namespaces debugger
-combinators math quotations generic strings splitting
-accessors assocs fry vocabs.parser
-parser lexer io io.files io.streams.string io.encodings.utf8
-html
-html.templates ;
+combinators math quotations generic strings splitting accessors
+assocs fry vocabs.parser parser parser.notes lexer io io.files
+io.streams.string io.encodings.utf8 html.templates compiler.units ;
 IN: html.templates.fhtml
 
 ! We use a custom lexer so that %> ends a token even if not
@@ -19,7 +17,7 @@ TUPLE: template-lexer < lexer ;
 M: template-lexer skip-word
     [
         {
-            { [ 2dup nth CHAR: " = ] [ drop 1+ ] }
+            { [ 2dup nth CHAR: " = ] [ drop 1 + ] }
             { [ 2dup swap tail-slice "%>" head? ] [ drop 2 + ] }
             [ f skip ]
         } cond
@@ -34,13 +32,13 @@ DEFER: <% delimiter
     [
         over line-text>>
         [ column>> ] 2dip subseq parsed
-        \ write-html parsed
+        \ write parsed
     ] 2keep 2 + >>column drop ;
 
 : still-looking ( accum lexer -- accum )
     [
         [ line-text>> ] [ column>> ] bi tail
-        parsed \ print-html parsed
+        parsed \ print parsed
     ] keep next-line ;
 
 : parse-%> ( accum lexer -- accum )
@@ -51,7 +49,7 @@ DEFER: <% delimiter
         drop
     ] if ;
 
-: %> lexer get parse-%> ; parsing
+SYNTAX: %> lexer get parse-%> ;
 
 : parse-template-lines ( lines -- quot )
     <template-lexer> [
@@ -60,20 +58,22 @@ DEFER: <% delimiter
 
 : parse-template ( string -- quot )
     [
+        [
         "quiet" on
         parser-notes off
-        "html.templates.fhtml" use+
+        "html.templates.fhtml" use-vocab
         string-lines parse-template-lines
-    ] with-file-vocabs ;
+        ] with-file-vocabs
+    ] with-compilation-unit ;
 
 : eval-template ( string -- )
-    parse-template call ;
+    parse-template call( -- ) ;
 
 TUPLE: fhtml path ;
 
 C: <fhtml> fhtml
 
 M: fhtml call-template* ( filename -- )
-    '[ _ path>> utf8 file-contents eval-template ] assert-depth ;
+    [ path>> utf8 file-contents eval-template ] call( filename -- ) ;
 
 INSTANCE: fhtml template