mediawiki-extensions-AbuseF.../parser_native
2008-08-12 16:40:51 +00:00
..
include - parser: support singular for time units as well as plural 2008-08-12 12:17:56 +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
affunctions.h - untemplatise parser and ast, force Unicode (UChar32) only 2008-08-12 14:02:33 +00:00
afstring.h - 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
aftypes.h rewrote most of visitors.h, and split functors into functors.h. this implementation uses a metaprogram to determine valid operators at compile time, instead of requiring every exception to be specified seperately. 2008-08-12 12:11:31 +00:00
ast.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
ast.h - untemplatise parser and ast, force Unicode (UChar32) only 2008-08-12 14:02:33 +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
equiv.h - 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.h - untemplatise parser and ast, force Unicode (UChar32) only 2008-08-12 14:02:33 +00:00
fray.cc - fray::find(fray, size_type) was broken, caused infinite recursion in count() 2008-08-10 21:09:54 +00:00
fray.h don't use pool_allocator 2008-08-12 15:19:38 +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 add 'if <expr> then <iftrue> else <iffalse> end' as an alternative syntax to expr ? iftrue : iffalse 2008-08-12 16:40:51 +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
parser.h - untemplatise parser and ast, force Unicode (UChar32) only 2008-08-12 14:02:33 +00:00
parserdefs.h 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 add note that gmp is required 2008-08-11 01:03:51 +00:00
request.cpp don't use pool_allocator 2008-08-12 15:19:38 +00:00
request.h - untemplatise parser and ast, force Unicode (UChar32) only 2008-08-12 14:02:33 +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_filter requires Boost (www.boost.org) 1.35.0 or higher.  Earlier versions
will generate a parser which does not work.

parser_filter 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'.