From 91b2dfbe87558c1b480264e628cf0ac07e18caee Mon Sep 17 00:00:00 2001 From: hylo Date: Fri, 30 Dec 2022 17:53:13 +0100 Subject: [PATCH] refactor: move parser to subdir --- toml.scm => toml/parser.scm | 20 +++----------------- 1 file changed, 3 insertions(+), 17 deletions(-) rename toml.scm => toml/parser.scm (96%) diff --git a/toml.scm b/toml/parser.scm similarity index 96% rename from toml.scm rename to toml/parser.scm index 08b60fd..69c8587 100644 --- a/toml.scm +++ b/toml/parser.scm @@ -1,5 +1,5 @@ -(define-module (toml) - #:use-module (toml parser) +(define-module (toml parser) + #:use-module (toml parser-peg) #:use-module (ice-9 peg) #:use-module (ice-9 textual-ports) #:use-module (ice-9 pretty-print) @@ -8,7 +8,6 @@ #:use-module (srfi srfi-19) #:use-module (json) #:use-module (srfi srfi-1) - ;; TODO exporting flatten-array isn't nice, it's an internal function. #:export (toml->scm peg-tree->scm flatten-tree flatten-array value->scm validate-date-time read-string read-int value?)) @@ -337,20 +336,6 @@ (k (find-key (cdr (list-ref tree k)) (cdr keys))) (else #f)))) -;; (define (find-array-key tree keys) -;; (let ((k (list-index (lambda (x) (equal? x (car keys))) (map car tree)))) -;; (cond -;; ((and k (null? (cdr keys))) -;; (list-ref tree k)) -;; (k -;; (find-key (cdr (list-ref tree k)) (cdr keys))) -;; (else #f)))) - -;; (find-key '(("a" . #((("e" . 3) ("d" . 3))))) '("a" "e")) - - -;; could refactor to have one 'keyval match, then match the rest again -;; need to refactor parsing somehow to treat recursive array / inline-table definitions (define (toml->scm s) (define tree (parse s)) (peg-tree->scm (flatten-tree tree))) @@ -358,6 +343,7 @@ (define (flatten-tree tree) (keyword-flatten '(keyval array-table std-table inline-table) tree)) +;; could refactor to have one 'keyval match, then match the rest again (define (peg-tree->scm tree) ;; (pretty-print tree) (let loop ((tree (cond ((null? tree) '(()))