Permalink
Browse files

bump version 0.0.3

  • Loading branch information...
1 parent 8a954c0 commit aa6361ef5b702679c33272b8fb8180a7113d17df @dominictarr dominictarr committed Oct 26, 2011
Showing with 3 additions and 108 deletions.
  1. +0 −9 bin/json_parse
  2. +3 −2 package.json
  3. +0 −97 parse.sh
View
@@ -1,9 +0,0 @@
-#!/usr/bin/env bash
-
-# Define BSD-friendly canonicalized readlink
-canonical_readlink () { cd `dirname $1`; __filename=`basename $1`; if [ -h "$__filename" ]; then canonical_readlink `readlink $__filename`; else echo "`pwd -P`/$__filename"; fi }
-
-#add this feature to require...
-__filename=$(canonical_readlink $0)
-. `dirname $__filename`/../parse.sh
-tokenize | parse
View
@@ -1,12 +1,13 @@
{ "name": "JSON.sh"
-, "version": "0.0.2"
+, "version": "0.0.3"
, "description": ""
, "homepage": "http://github.com/dominictarr/JSON-sh"
, "repository":
{ "type": "git"
, "url": "https://github.com/dominictarr/JSON-sh.git" }
, "bin": {
- "json_parse": "./bin/json_parse"
+ "json_parse": "./JSON.sh"
+ "JSON.sh": "./JSON.sh"
}
, "dependencies": {}
, "devDependencies": {}
View
@@ -1,97 +0,0 @@
-
-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
-}

0 comments on commit aa6361e

Please sign in to comment.