diff options
Diffstat (limited to 'patterns.scm')
-rw-r--r-- | patterns.scm | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/patterns.scm b/patterns.scm new file mode 100644 index 0000000..dc8ce98 --- /dev/null +++ b/patterns.scm @@ -0,0 +1,21 @@ +(define-module (patterns) + #:use-module (ice-9 peg) + #:export (file)) + +(define-peg-pattern field-part all + (* (or "\\\"" + (followed-by (or "|" "\"")) + peg-any))) + +(define-peg-pattern field all + (and (ignore "\"") + (* (and field-part (ignore (? (or "|"))))) + (ignore "\"")) ) + +(define-peg-pattern line all + (+ (and field + (ignore (? ",")) + (ignore (* " "))))) + +(define-peg-pattern file body + (+ (and line (ignore (? "\n"))))) |