Commit graph

49 commits

Author SHA1 Message Date
River Tarnell a2ae14f3bb better checking for correct # of arguments 2008-08-09 11:16:45 +00:00
River Tarnell d3ce6a5973 support string escapes: \b \t \n \f \r \\ \" \' \xHH \OOO 2008-08-09 10:33:02 +00:00
River Tarnell d2e95116f0 - match value before variable, otherwise FFFF is matched as a variable and a parse error occurs
- support uppercase X, O, B for base indicators
2008-08-09 09:59:40 +00:00
River Tarnell d94fd3860b support hex (10x), oct (10o) and binary (10b) literals 2008-08-09 09:32:19 +00:00
River Tarnell 7bf795588e implement unary - + operators 2008-08-09 09:16:04 +00:00
River Tarnell 305efb0961 - implement 'rlike' and 'regex' operators
- copyright header for all files
2008-08-08 12:35:13 +00:00
River Tarnell 90afa30066 implement "a like b" operator (and alias "a matches b"). pattern matching code taken from NetBSD src/lib/libc/gen/fnmatch.c 2008-08-08 12:13:03 +00:00
River Tarnell 0042e5d4f5 add aliases: a = b (a == b); a /= b (a != b); a contains b (b in a) 2008-08-08 11:54:11 +00:00
River Tarnell 3501eac719 add built-in cast functions int(), float() and string() 2008-08-08 11:48:12 +00:00
River Tarnell 2da745687c when either operand of datum's operator+ is a string, treat the operation as a string concatenation instead of arith 2008-08-08 11:35:13 +00:00
River Tarnell 66b0cb4159 document the datum type 2008-08-08 10:53:46 +00:00
River Tarnell f278237aa7 define by default 'true' and 'false' variables 2008-08-08 10:39:23 +00:00
River Tarnell 52791b24f8 - document the parser some
- make pow_expr a seperate rule with higher precedence than mult_expr
- rename eq_expr/eq2_expr to ord_expr/eq_expr
- match strict_real_p instead of real_p, otherwise '1 / 2' is 0.5 instead of 0
2008-08-08 10:36:17 +00:00
River Tarnell 27a7e25d61 need to qualify std::pow() to avoid infinite recursion 2008-08-08 10:16:27 +00:00
Andrew Garrett af1cbfb759 Abuse Filter:
* Add power operator.
* Add filter builder (very simple, just a drop-down box with commonly-used constructs)
2008-08-08 09:37:05 +00:00
River Tarnell 984386e8c4 refactor 2008-08-08 07:25:10 +00:00
River Tarnell e97f624e8d the maximum size of input (filter, keys, values) should be limited to avoid devouring all memory 2008-08-08 06:31:46 +00:00
River Tarnell 920482def7 support c ? a : c2 ? b : c (right associative) 2008-08-08 05:52:44 +00:00
River Tarnell 56581c109d parser should support the ?: operator 2008-08-08 05:39:51 +00:00
River Tarnell b01c2ce063 - use ICU u_isalnum instead of std::isalnum, which doesn't work with Unicode 2008-08-08 03:57:25 +00:00
River Tarnell 3b7ae936ce - add missing files from last commit
- convert next_utf8_char into an iterator
2008-08-08 03:46:02 +00:00
River Tarnell ff2465007f - remove unused isInVector
- move AFP stuff into its own namespace
- move utf8 and equivset into seperate modules
- parser should understand /* */ comments
2008-08-08 03:23:34 +00:00
River Tarnell 81343c86c7 incorrect definition of bool_expr caused parse failure on '1 & 2 == 3' 2008-08-08 00:53:22 +00:00
River Tarnell bbd787bde2 implement === and !== properly 2008-08-08 00:35:12 +00:00
River Tarnell 9d6e37fd51 - remove svn:executable prop from source files 2008-08-08 00:25:23 +00:00
River Tarnell 1e98809fde - delete afparser, afutils; unused
- cleanups for affunctions, aftypes
2008-08-08 00:23:30 +00:00
River Tarnell 1912d62d09 - rewrote AFPData to use boost::variant (type safe, no manual memory management)
- rewrote parser to use boost.spirit instead of a hand-written parser
- refactored request loading into 'request' object
- added 'expr', a command-line tool to test the new parser
- some performance fixes for affunctions
2008-08-08 00:01:22 +00:00
Andrew Garrett a2c9f2ea34 Update checkMoves.php to be useful sans MediaWiki 2008-08-07 15:10:49 +00:00
River Tarnell 7dc8571bcd af_parser should accept input from a file as well as stdin 2008-08-07 14:43:26 +00:00
River Tarnell c19ba43c33 missing #include <cstdlib> for std::exit 2008-08-07 14:35:45 +00:00
River Tarnell 1d2f4351c2 remove obsolete stuff from makefile 2008-08-07 14:34:25 +00:00
River Tarnell 6cd5654c8c #include <algorithm> 2008-08-07 14:33:30 +00:00
River Tarnell 649c1b8bef add a makefile config that's not in version control 2008-08-07 14:28:45 +00:00
River Tarnell 912ddf6f47 consistent include guards 2008-08-07 14:23:49 +00:00
River Tarnell dbfbc1c16e #include <cassert> 2008-08-07 14:20:22 +00:00
River Tarnell 77aab08c36 aftypes: use lexical_cast instead of stringstream tests; avoid warnings by initialising newVal; use std::find for isInvector
makefile: -W -Wall
2008-08-07 14:14:14 +00:00
River Tarnell 4ac7f67766 makefile: cleanups
affunctions: change glib to ICU (untested)
eval.cpp: remote obsolete libxml include
2008-08-07 13:57:40 +00:00
Andrew Garrett 16909a2c42 Fix two memory leaks in native parser. Now has no memory leaks :-) 2008-08-07 13:53:18 +00:00
River Tarnell 901b79f8d3 add .cpp to .SUFFIXES 2008-08-07 12:35:42 +00:00
Andrew Garrett 2f366bf300 Add missing cpp file 2008-08-05 08:24:21 +00:00
Andrew Garrett 016da694a6 Abuse Filter:
* Reimplement tools, starting with a spiffy AJAX expression tester. Didn't bother implementing as non-AJAX, as it's just an extra.
* Change exchange protocol between native parser and PHP app. Resulted in 2-3-fold performance boost.
* Fix minor bug from last night.
2008-08-04 14:27:48 +00:00
Andrew Garrett f37b07e2df Add some binaries which should have been added a while ago 2008-08-04 12:16:11 +00:00
Andrew Garrett 4c57a8cf4d Abuse Filter:
* Make with -O3 instead of -g, to improve performance.
* Add AJAX filter syntax checking.
2008-08-04 12:15:14 +00:00
Andrew Garrett 7dffe72e4e add some missing zsource files 2008-08-03 00:36:27 +00:00
Andrew Garrett 4b53ea93ec Fix deadlocking with shell out to native parser 2008-08-02 11:10:42 +00:00
Andrew Garrett 42af5836f3 Fix problem in makefile from unmerging vasiliev's changes. 2008-08-01 05:41:06 +00:00
Andrew Garrett b283904b81 AbuseFilter native parser:
* Revert r38187 for now:
** Introduced a memory leak.
** Used an unnecessary library. The point is taken, and this will be fixed in a few days (using glibc instead).
* Fix logic error in boolean ops.
* Integrate with the PHP abuse filter using AbuseFilterParserNative class.
* Fix memory leak.
* Fix a few miscellaneous bugs
2008-07-31 16:28:24 +00:00
Victor Vasiliev 284ebfcfc9 Support Unicode via ICU in parser_native 2008-07-29 15:11:59 +00:00
Andrew Garrett 62dd7d3da7 Add native parser for AbuseFilter. Currently being made into a PHP extension. Also some PLURAL stuff that somehow wasn't committed previously 2008-07-29 11:03:26 +00:00