]> gitweb.factorcode.org Git - factor.git/commitdiff
parser: split parse-file into (parse-file).
authorJohn Benediktsson <mrjbq7@gmail.com>
Sat, 15 Aug 2015 16:12:06 +0000 (09:12 -0700)
committerJohn Benediktsson <mrjbq7@gmail.com>
Sat, 15 Aug 2015 16:12:06 +0000 (09:12 -0700)
core/parser/parser.factor

index 1bda0e48f7113dce89a4f1a46bb519ccf2e593de..20c1dd5fdb8cf4d145be23dbfdb327be0ae51beb 100644 (file)
@@ -222,12 +222,17 @@ print-use-hook [ [ ] ] initialize
 : parse-file-restarts ( path -- restarts )
     "Load " " again" surround t 2array 1array ;
 
-: parse-file ( path -- quot )
+: (parse-file) ( path -- quot )
     [
-        [ parsing-file ] keep
-        [ utf8 <file-reader> ] keep
-        parse-stream
-    ] [
+        dup [
+            utf8 file-lines dup parse-fresh
+            [ nip ] [ finish-parsing ] 2bi
+            forget-smudged
+        ] with-source-file
+    ] with-compilation-unit ;
+
+: parse-file ( path -- quot )
+    [ (parse-file) ] [
         over parse-file-restarts rethrow-restarts
         drop parse-file
     ] recover ;