From 4e23de1b2b3651a29c161f08552dab44ae14599b Mon Sep 17 00:00:00 2001 From: Dimitri Fontaine Date: Sun, 22 Nov 2015 23:32:22 +0100 Subject: [PATCH] Missing file from previous commit. Somehow it still happens :/ --- src/parsers/command-including-like.lisp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 src/parsers/command-including-like.lisp diff --git a/src/parsers/command-including-like.lisp b/src/parsers/command-including-like.lisp new file mode 100644 index 0000000..4426291 --- /dev/null +++ b/src/parsers/command-including-like.lisp @@ -0,0 +1,17 @@ +;;; +;;; MS SQL and SQLite style including/excluding rules, using LIKE +;;; +(in-package #:pgloader.parser) + +(defrule like-expression (and "'" (+ (not "'")) "'") + (:lambda (le) + (bind (((_ like _) le)) (text like)))) + +(defrule another-like-expression (and comma like-expression) + (:lambda (source) + (bind (((_ like) source)) like))) + +(defrule filter-list-like (and like-expression (* another-like-expression)) + (:lambda (source) + (destructuring-bind (filter1 filters) source + (list* filter1 filters))))