Commits

Maxim Moiseev  committed 3bf2b0a

  • Participants
  • Parent commits dc41ef1

Comments (0)

Files changed (1)

-== Welcome ==
-
-Welcome to your wiki! This is the default page we've installed for your convenience. Go ahead and edit it.
-
-=== Wiki features ===
-
-This wiki uses the [[http://www.wikicreole.org/|Creole]] syntax, and is fully compatible with the 1.0 specification.
-
-The wiki itself is actually a hg repository, which means you can clone it, edit it locally/offline, add images or any other file type, and push it back to us. It will be live immediately.
-
-Go ahead and try:
-
-{{{
-$ hg clone http://bitbucket.org/moiseev/wepr/wiki/
-}}}
-
-Wiki pages are normal files, with the .wiki extension. You can edit them locally, as well as creating new ones.
-
-=== Syntax highlighting ===
-
-You can also highlight snippets of text, we use the excellent [[http://www.pygments.org/|Pygments]] library.
-
-Here's an example of some Python code:
-
-{{{
-#!python
-
-def wiki_rocks(text):
-	formatter = lambda t: "funky"+t
-	return formatter(text)
-}}}
-
-You can check out the source of this page to see how that's done, and make sure to bookmark [[http://pygments.org/docs/lexers/|the vast library of Pygment lexers]], we accept the 'short name' or the 'mimetype' of anything in there.
-
-Have fun!
+== WEPR -- a where - clause parser and compiler ==
+
+Wepr allows you to generate an Expression Tree representing given WHERE clause, compile it into the delegate and execute over an argument.
+
+=== Features ===
+* Logical AND/and and OR/or between simple conditions
+* Equality operators //(=, <>, !=, <, <=, >, >=)//
+* String functions //(Contains, StartsWith, EndsWith)//
+* //In// function (can be applied to //string// and //int// lists)
+* Parentheses
+* Chained field/properties access (e.g.: User.Name.FirstName = 'John')
+
+=== Usage sample ===
+
+{{{
+#!ocaml
+type MyString(s:string) =
+    member this.Value with get () = s
+    override this.ToString () = sprintf "(MyString '%s')" s
+
+let where = "Value.Length = 3 AND Value.Length in (1, 2, 3) and Value in ('abc', 'bca')"
+let arg = MyString "abc"
+let res = Wepr.Exec where arg
+// res will be evaluated to _true_
+}}}