Commit Graph

3042 Commits

Author SHA1 Message Date
Tim Schaub 2577d3f7d6 Rename ol.expression to ol.expr 2013-06-25 12:15:34 -06:00
Tim Schaub 9928730bd3 Tests for ol.expression.register() 2013-06-25 12:15:33 -06:00
Tim Schaub b04a36ede7 Replace use of filter with expressions
The canvas vector layer still has the (API candidate) `getFeatures` method that accepts an arbitrary expression (was filter).  This, and the `getFeaturesObject` method under it are only used in the tests.  The rendering code that was using filters is now calling `layer.getFeaturesObjectForExtent` with an explicit extent and optional geometry type.
2013-06-25 12:15:33 -06:00
Tim Schaub a663d8fcae Accept an expression string for rule filter 2013-06-25 12:11:50 -06:00
Tim Schaub 38b784d672 Support +/- unary operators for literals 2013-06-25 12:11:50 -06:00
Tim Schaub d70a9eba01 Lib for well-known functions
This reveals a lexer bug that needs addressing.
2013-06-25 12:11:50 -06:00
Tim Schaub bd5d9d572e Lint 2013-06-25 12:11:50 -06:00
Tim Schaub 5e309e244b Using ol.expression.parse 2013-06-25 12:11:50 -06:00
Tim Schaub 72d32ec71a Correct index for tokens 2013-06-25 12:11:50 -06:00
Tim Schaub f0567f5053 Expect the unexpected 2013-06-25 12:11:49 -06:00
Tim Schaub 62eb0dd72b Give token an index and throw unexpected token from a common place 2013-06-25 12:11:49 -06:00
Tim Schaub bb1b0cba95 Getter for not expression argument 2013-06-25 12:11:49 -06:00
Tim Schaub c05fb8c61b Getters for member expression properties 2013-06-25 12:11:49 -06:00
Tim Schaub 2528581642 Getters for math expression properties 2013-06-25 12:11:49 -06:00
Tim Schaub 4a617871da Getters for logical expression properties 2013-06-25 12:11:49 -06:00
Tim Schaub 3de330eb99 Getter for literal expression value 2013-06-25 12:11:49 -06:00
Tim Schaub 6d6ec357e1 Getter for identifier expression name 2013-06-25 12:11:48 -06:00
Tim Schaub 582a52849c Getters for comparison expression properties 2013-06-25 12:11:48 -06:00
Tim Schaub be636d7f46 Getters for call expression properties 2013-06-25 12:11:48 -06:00
Tim Schaub 6458f98996 Describing the extent of support for ES-5 expressions 2013-06-25 12:11:48 -06:00
Tim Schaub 2fd8f4cb00 Integration testing for binary logical operators 2013-06-25 12:11:48 -06:00
Tim Schaub 973606e67a Integration tests for equality operators 2013-06-25 12:11:48 -06:00
Tim Schaub 3a3f9bc20b Integration testing for relational operators
No `instanceof` or `in` operator support.
2013-06-25 12:11:47 -06:00
Tim Schaub 9d5424236c Integration testing for additive operators 2013-06-25 12:11:47 -06:00
Tim Schaub 7c2550fefa Integration testing for multiplicative operators 2013-06-25 12:11:47 -06:00
Tim Schaub 2492515e8f Integration testing for unary operators
Only supporting ! at the moment.
2013-06-25 12:11:47 -06:00
Tim Schaub e6f03c8f22 Confirm whitespace is consumed as expected 2013-06-25 12:11:47 -06:00
Tim Schaub 26a7d907a2 Test unary expression parsing 2013-06-25 12:11:47 -06:00
Tim Schaub a0bd736948 Left-hand-side expression parsing 2013-06-25 12:11:47 -06:00
Tim Schaub 803b3a3f7d Binary expression parsing 2013-06-25 12:11:46 -06:00
Tim Schaub 40b12410f0 Increment after scanning >= and <= (and expect EOF in tests) 2013-06-25 12:11:46 -06:00
Tim Schaub 379ac82688 Test argument parsing 2013-06-25 12:11:46 -06:00
Tim Schaub 6d0badcf2a Optional scope (works for expressions without identifiers) 2013-06-25 12:11:46 -06:00
Tim Schaub d920d8e578 Test left-hand-side expression parsing 2013-06-25 12:11:46 -06:00
Tim Schaub 13d0b8b084 Provide ol.expression.parse method
This is the only method needed in the API.
2013-06-25 12:11:46 -06:00
Tim Schaub 3643ea164f Cast boolean and null before creating literal expression 2013-06-25 12:11:46 -06:00
Tim Schaub ce67aa2617 Make way for convenience functions in ol.expression package 2013-06-25 12:11:45 -06:00
Tim Schaub 7a1e69e288 Initial parsing tests 2013-06-25 12:11:45 -06:00
Tim Schaub cb9725bdfb Provide static method to check for valid operators 2013-06-25 12:11:45 -06:00
Tim Schaub 29b77a2dac Member expressions 2013-06-25 12:11:45 -06:00
Tim Schaub fbb028e15e Call expressions 2013-06-25 12:11:45 -06:00
Tim Schaub f050546fe2 Logical expressions 2013-06-25 12:11:44 -06:00
Tim Schaub 153df45f95 Math expressions
Just simple binary type expressions supported here.  These can be serialized in a variety of formats.  More complex operations to be supported by call expressions.
2013-06-25 12:11:44 -06:00
Tim Schaub b2ff793ea1 Comparison expressions 2013-06-25 12:11:44 -06:00
Tim Schaub 052b973b39 Reduce to a single literal 2013-06-25 12:11:44 -06:00
Tim Schaub 20b66fc447 Proper specs 2013-06-25 12:11:43 -06:00
Tim Schaub 0abcbb9854 Stray not 2013-06-25 12:11:43 -06:00
Tim Schaub a87ebfe97b Specific expression types 2013-06-25 12:11:43 -06:00
Tim Schaub 063b461ffd Fewer calls to charCodeAt 2013-06-25 12:11:43 -06:00
Tim Schaub f272350e00 Expose next and peek methods 2013-06-25 12:11:42 -06:00