River Tarnell
136d65bb51
add 'if <expr> then <iftrue> else <iffalse> end' as an alternative syntax to expr ? iftrue : iffalse
2008-08-12 16:40:51 +00:00
River Tarnell
dac72d2d9a
- untemplatise parser and ast, force Unicode (UChar32) only
...
- set an svn:ignore
2008-08-12 14:02:33 +00:00
River Tarnell
df6341487c
Unicode conversion, phase 2: parser should be templated on char type
2008-08-09 14:34:17 +00:00
River Tarnell
eb5586854e
Unicode conversion, phase1: datum should be templated on char type.
...
added basic_datum<charT>, with typedefs datum and u32datum
2008-08-09 13:37:58 +00:00
River Tarnell
dbc2da3177
remove cast / ctors for basic types from aftypes, too prone to error.
...
(side effect: time for the test case goes from 6:14 to 5:26)
2008-08-09 12:14:08 +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
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
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
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
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
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