Commit Graph
100 Commits
Author SHA1 Message Date
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 53abedaada Correct doc and arg order 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 36d10bef11 Custom error for unexpected token
This makes it clearer to the compiler where we are throwing.
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 d5e133b7d8 Satisfy the build/check-requires-timestamp task (see #785)
I think this line should not be required, as `ol.expression.Char` is only used internally in this file.
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 38c8927ae2 Doc and method reorg 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 737d669e4a Correct types 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 2f7e74ab35 Create binary expressions when parsing 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 c4867bafec Smaller subset of binary operators 2013-06-25 12:11:44 -06:00
Tim Schaub 7800e9b0cc Comments, links, copyrights 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 ed2e21dffa Parsing 2013-06-25 12:11:43 -06:00
Tim Schaub 1f68522837 Utility methods on the lexer 2013-06-25 12:11:43 -06:00
Tim Schaub a87ebfe97b Specific expression types 2013-06-25 12:11:43 -06:00
Tim Schaub d7e0d043f3 Consistently number 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 9edc9ebcc5 Use next instead 2013-06-25 12:11:42 -06:00
Tim Schaub f272350e00 Expose next and peek methods 2013-06-25 12:11:42 -06:00
Tim Schaub 5baa38b82c Test punctuator scanning 2013-06-25 12:11:42 -06:00
Tim Schaub 957b6db3d7 Skip whitespace 2013-06-25 12:11:42 -06:00
Tim Schaub 50f94911b1 Scan string literals 2013-06-25 12:11:42 -06:00
Tim Schaub 4d62cea700 Escape sequences in our identifiers have already been handled 2013-06-25 12:11:42 -06:00
Tim Schaub 0844df8cc2 Scanning identifiers
This includes code that is likely not necessary.  The escape sequence scanning will likely not be used in our case, but I'm committing it here so it can be brought back if needed later.
2013-06-25 12:11:42 -06:00
Tim Schaub a748665646 Space and comment 2013-06-25 12:11:42 -06:00
Tim Schaub 040c80a5ad Expectations about token type 2013-06-25 12:11:42 -06:00
Tim Schaub 193cf4de50 Scan numeric literals 2013-06-25 12:11:41 -06:00
Tim Schaub 81b344715a Renaming for clarity 2013-06-25 12:11:41 -06:00
Tim Schaub a5343161bf Separate lexer 2013-06-25 12:11:41 -06:00
Tim Schaub 84a9fb40ef More char code tests 2013-06-25 12:11:41 -06:00
Tim Schaub 88fd0fda64 Initial bits for parser 2013-06-25 12:11:41 -06:00
Tim Schaub 40b10c13dc Merge pull request #802 from tschaub/802-multilinstring-typo
Multiline strings are not rendered correctly due to typo in VectorLayer
2013-06-25 07:33:08 -07:00
Tim Schaub d1eec80324 Merge pull request #815 from tschaub/override
Override for clarity
2013-06-24 14:38:26 -07:00
Tim Schaub bb915cbf3d Less code
Since out meters per unit conversion table is a bit spare, prefer the configured conversion.
2013-06-24 12:27:36 -06:00
Tim Schaub 129e4d5704 Fix doc bug 2013-06-24 12:21:56 -06:00
Tim Schaub 5a95d606f8 Override for clarity 2013-06-24 12:20:34 -06:00
Tim Schaub 388967d00c Merge pull request #814 from tschaub/814-min-resolution
Fix vector rendering for projections that do not specify units
2013-06-24 11:08:50 -07:00
Tim Schaub 20527ab1f1 Reuse tile range 2013-06-24 11:34:59 -06:00
Tim Schaub a9f01a4390 Use getMetersPer unit method 2013-06-24 11:34:48 -06:00
Tim Schaub d10eff97a2 Allow getMetersPerUnit to work without units identifier (see #814) 2013-06-24 11:34:16 -06:00
Tim Schaub 3f169b1751 Merge pull request #810 from tschaub/async-tests
Proper async testing
2013-06-24 09:02:47 -07:00
Tim Schaub d6be28a7bb Get rid of unnecessary waitsFor function
This was a relic from the Jasmine tests.  Mocha tests have a built-in timeout.  Async tests are registered with a function that takes a callback.
2013-06-23 11:20:57 -06:00
Tim Schaub 7a620de1bf Calling callback in WMS capabilities tests 2013-06-23 11:08:34 -06:00
Tim Schaub be33fd58b3 Calling callback in GML v3 tests 2013-06-23 11:04:03 -06:00
Tim Schaub 54378f394a Calling callback in GML v2 tests 2013-06-23 11:02:38 -06:00
Tim Schaub 7bf24eb918 Calling callback in kml tests
Also reordering things so we have `expect(got).to.xmleql(expected)`.
2013-06-23 11:00:41 -06:00
Tim Schaub 91a8703852 Correct typo in geometry type (thanks @jystic)
Previously read 'multilinstring' instead of 'multilinestring'.  Letting the compiler check for typos instead now.
2013-06-20 17:57:29 -06:00
Tim Schaub 56c2b85fce Merge pull request #796 from tschaub/geojson-rename
Use .geojson extension for GeoJSON
2013-06-18 15:54:47 -07:00
Tim Schaub 2ee0805075 Taking advantage of GitHub's rendering of .geojson 2013-06-18 15:39:45 -06:00
Tim Schaub 489879eb0d Merge pull request #784 from tschaub/missing-detail
More useful detail in log messages on the check for missing requires.
2013-06-12 07:21:27 -07:00
Tim Schaub bb980abe8c And the proper syntax 2013-06-11 16:53:55 -06:00
Tim Schaub 9726be64c6 More useful detail in log messages
One line per missing require.  Include line number of last use.  Include proper syntax for adding requires.
2013-06-11 16:42:39 -06:00
Tim Schaub 9647567704 Merge pull request #776 from tschaub/proj-test
Rename spec to be like src
2013-06-10 10:21:30 -07:00
Tim Schaub e56a791d41 Merge pull request #774 from tschaub/test-deps
Test dependencies in a common place
2013-06-10 09:08:57 -07:00
Tim Schaub e7d6bae0ad Providing proj in ol.test 2013-06-10 09:34:43 -06:00
Tim Schaub a631c50979 Rename spec to be like src 2013-06-10 09:29:00 -06:00
Tim Schaub 2964cc922c Test dependencies in a common place 2013-06-10 09:19:02 -06:00
Tim Schaub 5e5d8e5b17 Merge pull request #739 from tschaub/attribution-style
Style for attribution control
2013-05-30 08:00:21 -07:00
Tim Schaub 7e20ea160c Simplify style 2013-05-30 08:59:31 -06:00
Tim Schaub 3d0f7f3b70 Merge pull request #738 from tschaub/allow-stop
Allow user to stop map at the end of a drag
2013-05-30 06:15:05 -07:00