|
84ea129f26
|
Better support for appending strings in JV.
|
2012-09-17 19:41:41 +01:00 |
|
|
50ebb036c4
|
Bind builtin functions in a slightly less ugly way.
|
2012-09-16 17:08:56 +01:00 |
|
|
539156430a
|
Builtin function 'length', for arrays/objects/strings.
|
2012-09-16 11:08:42 +01:00 |
|
|
cc2fb20ca0
|
Hrm. Update operators (//=, +=, etc.) aren't very well thought out.
In complex cases, their behaviour is kinda weird. Here's a failing
test for what I think they should do.
|
2012-09-16 11:07:36 +01:00 |
|
|
df195b3187
|
Add update operators (+=, -=, *=, /= and //=)
|
2012-09-11 23:55:59 +01:00 |
|
|
f6c6ba95ad
|
Make .[] capable of iteration over objects as well as arrays.
Also change an assert to a proper error message if it's given
something silly like a number.
|
2012-09-11 16:10:55 +01:00 |
|
|
d9d6f43407
|
Pretty-printing of JSON values.
|
2012-09-11 15:53:37 +01:00 |
|
|
51a44edc63
|
JSON stream parser.
Allow multiple values on input as concatenated JSON objects,
possibly separated by whitespace.
|
2012-09-11 14:52:10 +01:00 |
|
|
062a6aa6d7
|
More error handling - locations of refs to undefined symbols.
|
2012-09-11 12:24:54 +01:00 |
|
|
4c7bede5a4
|
Better error handling and messages for invalid index/assign operations.
|
2012-09-11 10:37:44 +01:00 |
|
|
0ce437ea97
|
More error handling in the parser.
Add a special case in the lexer to detect unterminated strings.
Add some error recovery in the parser for more copious error spam.
|
2012-09-11 10:18:18 +01:00 |
|
|
ac3f8bcc52
|
Proper error messages from lexer errors (e.g. bad characters).
|
2012-09-11 09:13:20 +01:00 |
|
|
95dd64b0f0
|
Much, much better error reporting from the parser.
Getting proper locations through flex/bison was more effort than
was advertised.
|
2012-09-11 00:04:47 +01:00 |
|
|
4d47f8f1e1
|
'==' operator, tests for equality and operator precedence.
|
2012-09-10 18:08:00 +01:00 |
|
|
3895bbf856
|
String -> number conversions with "tonumber".
|
2012-09-10 17:08:13 +01:00 |
|
|
aa3ebdfe9b
|
Multiplication and division operators.
It is an error to use these on anything but numbers. Maybe later
implementing python/ruby-style ("a" * 100) might be handy.
|
2012-09-10 16:57:17 +01:00 |
|
|
6f3abbac62
|
Subtraction - as expected for numbers, ruby-style set diff for arrays.
|
2012-09-10 16:49:25 +01:00 |
|
|
65ce73deb4
|
String concatenation.
|
2012-09-10 16:16:39 +01:00 |
|
|
e718bd50b6
|
Sensible error messages when a silly addition is performed.
Fix a test to no longer perform an invalid addition.
|
2012-09-10 16:15:05 +01:00 |
|
|
a3e509034b
|
jv_string_fmt (create printf-formatted JSON strings)
|
2012-09-10 16:01:56 +01:00 |
|
|
0159c0ecc5
|
Plug a memory leak in jv_object_merge
|
2012-09-10 15:08:58 +01:00 |
|
|
649cac791a
|
Make jv_invalid() first-class values capable of holding an error.
|
2012-09-10 15:04:19 +01:00 |
|
|
5c25c90657
|
When comparing two objects for equality, we don't need to recurse
into e.g. array elements if the two objects are the same array.
|
2012-09-10 13:06:46 +01:00 |
|
|
c2593dc417
|
Make a main program that doesn't spam debugging info.
|
2012-09-10 10:23:15 +01:00 |
|
|
e258d20ba2
|
Make the '+' operator merge objects.
|
2012-09-09 19:17:07 +01:00 |
|
|
a4ff3d4670
|
Bugfix for expanding objects.
|
2012-09-09 18:09:05 +01:00 |
|
|
e6a85737da
|
Print bad number values (Inf,NaN) "correctly".
|
2012-09-09 15:35:34 +01:00 |
|
|
0dfaebcdcb
|
null and string literals now exist, so add tests
|
2012-09-06 21:44:46 +01:00 |
|
|
0fd7d4b30c
|
UTF8 coding utilities and unicode escaping in jv_dump()'d strings.
Beyond the Basic Multilingual Plane, dead Cthulhu waits dreaming.
|
2012-09-06 21:39:00 +01:00 |
|
|
58a9b0cfe1
|
Make the test harness not segfault when a test fails (!)
|
2012-09-04 20:56:44 +01:00 |
|
|
da5d653de8
|
Add a Boolean "not" operator.
Not wholly convinced this is a good idea, maybe "not" should be a
builtin function instead? 'not (.a == .b)' vs. '.a == .b | not'
|
2012-09-04 20:43:40 +01:00 |
|
|
6e6ea50763
|
Short-circuiting Boolean "and" and "or" operators.
|
2012-09-04 20:38:59 +01:00 |
|
|
c5ab3b2336
|
Move some unicode handling stuff to a separate file.
|
2012-09-04 20:38:47 +01:00 |
|
|
328c4a13f1
|
Add "elif" to if-then-else constructs.
|
2012-09-04 16:05:24 +01:00 |
|
|
5add2c2ceb
|
if-then-else and defined-or operators
|
2012-09-04 15:34:34 +01:00 |
|
|
520c7bb15e
|
Fix some confusion between "null" and "invalid".
|
2012-09-03 17:26:52 +01:00 |
|
|
32e324a283
|
Fix a memory leak in JV and add more tests
|
2012-09-03 17:18:10 +01:00 |
|
|
eea05ff924
|
Perl-style autovivification.
.foo.bar = 1 will cause objects to be created if they don't exist.
|
2012-09-03 16:50:38 +01:00 |
|
|
c9dbe1aff8
|
squash a debug printf
|
2012-09-03 16:42:58 +01:00 |
|
|
a8c3648ca5
|
JV_KIND_INVALID values to represent failed lookups, etc + various tests.
|
2012-09-03 16:16:14 +01:00 |
|
|
d895d39ba9
|
Support "null" in JQ programs
|
2012-09-03 16:14:52 +01:00 |
|
|
8fe9c8a22a
|
Make assignment work again: = and |= operators.
|
2012-09-03 15:33:59 +01:00 |
|
|
d8fad1ed9b
|
Disallow a + before numbers (makes parsing easier, agrees with JSON)
|
2012-09-03 15:32:50 +01:00 |
|
|
cf004c2b3a
|
Modify number formatting so that 1e-3 renders as 0.001, not .001
|
2012-09-03 13:57:53 +01:00 |
|
|
6041fd7661
|
Literal strings and better literal numbers.
|
2012-09-03 13:57:47 +01:00 |
|
|
52487ff812
|
Remove globals from parser, use explicit structure.
|
2012-09-03 01:12:42 +01:00 |
|
|
22ffc0fdfc
|
Mark a constant array const in jvp_dtoa.c
|
2012-09-02 22:24:27 +01:00 |
|
|
e3710c0d1f
|
Fix behaviour of stack at program termination.
|
2012-09-02 22:11:06 +01:00 |
|
|
4f747e6fff
|
Move from Jansson to JV - proper freeing of memory
A few more tests, now passes valgrind.
|
2012-09-02 21:45:52 +01:00 |
|
|
9da3e0d373
|
Clean up build a little and add .gitignore.
|
2012-09-02 17:24:17 +01:00 |
|