diff options
author | Jo-Philipp Wich <jo@mein.io> | 2016-05-24 17:06:50 +0200 |
---|---|---|
committer | Jo-Philipp Wich <jo@mein.io> | 2016-05-24 17:08:38 +0200 |
commit | 596f31e7c6e59685d1c04e91ea01b5982c044459 (patch) | |
tree | 0720fe3b2812cfafc9a2bdd577beefd2e966f886 | |
parent | 479ca5def5b6bd5c79de488806299064346e2339 (diff) | |
download | jsonpath-596f31e7c6e59685d1c04e91ea01b5982c044459.tar.gz |
parser: allow root path specifications
All a patch specification to be just '@' or '$' - this is mainly useful when
exporting the keys of the toplevel object to the shell.
Example:
$ echo '{ "abc": 1, "def": 2 }' | jsonpath -e 'keys=@'
export keys='abc'\ 'def';
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
-rw-r--r-- | parser.y | 2 |
1 files changed, 2 insertions, 0 deletions
@@ -56,6 +56,8 @@ expr(A) ::= path(B). { A = B; } path(A) ::= T_ROOT segments(B). { A = alloc_op(T_ROOT, 0, NULL, B); } path(A) ::= T_THIS segments(B). { A = alloc_op(T_THIS, 0, NULL, B); } +path(A) ::= T_ROOT(B). { A = B; } +path(A) ::= T_THIS(B). { A = B; } segments(A) ::= segments(B) segment(C). { A = append_op(B, C); } segments(A) ::= segment(B). { A = B; } |