summaryrefslogtreecommitdiff
path: root/patterns.scm
diff options
context:
space:
mode:
Diffstat (limited to 'patterns.scm')
-rw-r--r--patterns.scm21
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")))))