(define-module (language python parser-tool) #:use-module (ice-9 pretty-print) #:use-module (logic guile-log parsing scanner) #:use-module ((logic guile-log parser) #:select (setup-parser f-nl f-nl! *current-file-parsing* make-file-reader file-next-line file-skip)) #:use-module (logic guile-log) #:re-export (f-nl f-nl!) #:export (f-seq f-seq! f-or f-or! f-not f-not! f-true f-false f-cons f-cons* f-list INDENT f* ff* ff? f? ff+ f+ f-reg f-reg! f-tag f-tag! f-eof f-out f-and f-and! mk-token p-freeze parse f-append .. xx f-pk)) ;; Preliminary (define do-print #f) (define pp (case-lambda ((s x) (when do-print (pretty-print `(,s ,(syntax->datum x)))) x) ((x) (when do-print (pretty-print (syntax->datum x))) x))) (begin (define-guile-log-parser-tool ( (X XL N M INDENT)) .. xx ) (make-guile-log-scanner-tools .. (X XL N M INDENT) (c) (d) s-false s-true s-mk-seq s-mk-and s-mk-or) ;; Sets up a standar parser functionals with INDENT field added (setup-parser .. xx X XL ((N 0) (M 0) (INDENT (list 0))) s-false s-true s-mk-seq s-mk-and s-mk-or))