aboutsummaryrefslogtreecommitdiffstats
path: root/util/shred/JSON.sh
diff options
context:
space:
mode:
Diffstat (limited to 'util/shred/JSON.sh')
-rwxr-xr-xutil/shred/JSON.sh129
1 files changed, 0 insertions, 129 deletions
diff --git a/util/shred/JSON.sh b/util/shred/JSON.sh
deleted file mode 100755
index 65f5f1f66..000000000
--- a/util/shred/JSON.sh
+++ /dev/null
@@ -1,129 +0,0 @@
-# The MIT License
-#
-# Copyright (c) 2011 Dominic Tarr
-#
-# Permission is hereby granted, free of charge,
-# to any person obtaining a copy of this software and
-# associated documentation files (the "Software"), to
-# deal in the Software without restriction, including
-# without limitation the rights to use, copy, modify,
-# merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom
-# the Software is furnished to do so,
-# subject to the following conditions:
-#
-# The above copyright notice and this permission notice
-# shall be included in all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-# OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
-# ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-#
-#
-# https://github.com/dominictarr/JSON.sh
-#
-throw () {
- echo "$*" >&2
- exit 1
-}
-
-tokenize () {
- local ESCAPE='(\\[^u[:cntrl:]]|\\u[0-9a-fA-F]{4})'
- local CHAR='[^[:cntrl:]"\\]'
- local STRING="\"$CHAR*($ESCAPE$CHAR*)*\""
- local NUMBER='-?(0|[1-9][0-9]*)([.][0-9]*)?([eE][+-]?[0-9]*)?'
- local KEYWORD='null|false|true'
- local SPACE='[[:space:]]+'
- egrep -ao "$STRING|$NUMBER|$KEYWORD|$SPACE|." --color=never |
- egrep -v "^$SPACE$" # eat whitespace
-}
-
-parse_array () {
- local index=0
- local ary=''
- read -r token
- case "$token" in
- ']') ;;
- *)
- while :
- do
- parse_value "$1" "$index"
- let index=$index+1
- ary="$ary""$value"
- read -r token
- case "$token" in
- ']') break ;;
- ',') ary="$ary," ;;
- *) throw "EXPECTED , or ] GOT ${token:-EOF}" ;;
- esac
- read -r token
- done
- ;;
- esac
- value=`printf '[%s]' "$ary"`
-}
-
-parse_object () {
- local key
- local obj=''
- read -r token
- case "$token" in
- '}') ;;
- *)
- while :
- do
- case "$token" in
- '"'*'"') key=$token ;;
- *) throw "EXPECTED string GOT ${token:-EOF}" ;;
- esac
- read -r token
- case "$token" in
- ':') ;;
- *) throw "EXPECTED : GOT ${token:-EOF}" ;;
- esac
- read -r token
- parse_value "$1" "$key"
- obj="$obj$key:$value"
- read -r token
- case "$token" in
- '}') break ;;
- ',') obj="$obj," ;;
- *) throw "EXPECTED , or } GOT ${token:-EOF}" ;;
- esac
- read -r token
- done
- ;;
- esac
- value=`printf '{%s}' "$obj"`
-}
-
-parse_value () {
- local jpath="${1:+$1,}$2"
- case "$token" in
- '{') parse_object "$jpath" ;;
- '[') parse_array "$jpath" ;;
- # At this point, the only valid single-character tokens are digits.
- ''|[^0-9]) throw "EXPECTED value GOT ${token:-EOF}" ;;
- *) value=$token ;;
- esac
- printf "[%s]\t%s\n" "$jpath" "$value"
-}
-
-parse () {
- read -r token
- parse_value
- read -r token
- case "$token" in
- '') ;;
- *) throw "EXPECTED EOF GOT $token" ;;
- esac
-}
-
-if [ $0 = $BASH_SOURCE ];
-then
- tokenize | parse
-fi