1
0
mirror of https://github.com/stedolan/jq.git synced 2024-05-11 05:55:39 +00:00

1432 Commits

Author SHA1 Message Date
7d8d97933f Builtin function 'type'. 2012-09-17 23:06:48 +01:00
f13865d7a1 Fix a precedence bug.
a == b or c == d should obviously parse as (a==b) or (c==d).
2012-09-17 22:37:51 +01:00
49cf2e67fe Recursive functions + bugfix for stack reallocation. 2012-09-17 22:32:06 +01:00
cbdeddbab8 Make the code compile with warnings-as-errors.
-Wextra found a bona-fide bug: signed/unsigned comparison in a
stack overflow check.
2012-09-17 22:04:58 +01:00
eab9c4e587 Fix debugging code in execute.c so that debug jq compiles again. 2012-09-17 21:43:10 +01:00
830610cef8 Make "not" a builtin function rather than syntax.
Fixes a really awkward grammar issue.
2012-09-17 21:08:43 +01:00
297a0679d1 Redefine true and false. Define empty, distict from null.
This might be the most philosophical commit. I shall ponder it.

true, false, null, empty now defined as bytecoded builtins rather
than calls out to C functions.
2012-09-17 20:59:34 +01:00
fe33150b7f Merge branch 'master' of github:stedolan/jq
Conflicts:
	c/builtin.c
2012-09-17 20:49:41 +01:00
3db27b01a1 First pass at string interpolation.
Requires a lexer hack, but a surprisingly un-hideous one. The lexer
maintains a stack of bracket characters so that it can match
parens/brackets/braces to tell where a subexp nested in a string
actually ends.
2012-09-17 20:41:57 +01:00
326771f4b4 Add a "tostring" function. 2012-09-17 20:14:07 +01:00
9c15ad2021 Support rendering a JSON value to a string buffer. 2012-09-17 20:11:12 +01:00
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