mediawiki-extensions-AbuseF.../parser_native
River Tarnell 423b3d5cdd update
2008-08-17 19:01:24 +00:00
..
include move include files to include/ 2008-08-13 17:40:09 +00:00
tests add 'if <expr> then <iftrue> else <iffalse> end' as an alternative syntax to expr ? iftrue : iffalse 2008-08-12 16:40:51 +00:00
ast.cpp remove extraneous typename 2008-08-17 18:18:52 +00:00
check.cpp - untemplatise parser and ast, force Unicode (UChar32) only 2008-08-12 14:02:33 +00:00
equiv.cpp - implement 'rlike' and 'regex' operators 2008-08-08 12:35:13 +00:00
equivset.txt - remove svn:executable prop from source files 2008-08-08 00:25:23 +00:00
eval.cpp - implement 'rlike' and 'regex' operators 2008-08-08 12:35:13 +00:00
evaluate.cpp - untemplatise parser and ast, force Unicode (UChar32) only 2008-08-12 14:02:33 +00:00
expr.cpp - untemplatise parser and ast, force Unicode (UChar32) only 2008-08-12 14:02:33 +00:00
filter_evaluator.cpp add missing file 2008-08-17 18:18:37 +00:00
main.cpp - convert parser to AST. while this is slower than the previous implementation, it's clearer, and more correct (lazy evaluation is supported) 2008-08-10 03:52:17 +00:00
makefile move include files to include/ 2008-08-13 17:40:09 +00:00
makefile.config.example - implement 'rlike' and 'regex' operators 2008-08-08 12:35:13 +00:00
maketest.cpp fix tests on linux/gcc 4.3 2008-08-10 20:48:25 +00:00
parser.cpp add 'if <expr> then <iftrue> else <iffalse> end' as an alternative syntax to expr ? iftrue : iffalse 2008-08-12 16:40:51 +00:00
README update 2008-08-17 19:01:24 +00:00
request.cpp don't use pool_allocator 2008-08-12 15:19:38 +00:00
runtests.sh re-fix tests on solaris too 2008-08-10 20:49:20 +00:00
syntax_check.cpp - untemplatise parser and ast, force Unicode (UChar32) only 2008-08-12 14:02:33 +00:00
xml.cpp - untemplatise parser and ast, force Unicode (UChar32) only 2008-08-12 14:02:33 +00:00

This is the AbuseFilter native expression parser.  It improves the performance 
of the filter by using a C++ program to parse the expression.

parser_native has been tested on these platforms:

* Solaris 10 (Intel Core 2) with GCC 3.4.3
* Solaris 10 (Intel Core 2) with Sun Studio 12 (C++ patch 124864-04)
* Debian Linux (Intel Xeon, AMD Opteron) with GCC 4.3.1
* Debian Linux (Intel Xeon) with Intel C++ 10.1.015

parser_native requires Boost (www.boost.org) 1.35.0 or higher.  Earlier versions
will generate a parser which does not work.

When compiled with GCC 4.3.1 (and perhaps later, but not earlier), Boost 1.35
will not work due to a bug in the date_time library.  Use GCC 4.2 or earlier
instead of this compiler.

parser_native also requires GNU MP (gmplib.org), with C++ support enabled
(--enable-cxx).

To compile it, copy makefile.config.example to makefile.config, edit it, and
run 'make'.  (GNU make is required.)

To run the test framework, run 'make test'.