forked from mirror/gjson
Remove unreachable code
This commit is contained in:
parent
f3ac38cbb5
commit
8ac92b3ad3
124
gjson.go
124
gjson.go
|
@ -750,119 +750,17 @@ func parseArrayPath(path string) (r arrayPathResult) {
|
||||||
} else if path[1] == '[' || path[1] == '(' {
|
} else if path[1] == '[' || path[1] == '(' {
|
||||||
// query
|
// query
|
||||||
r.query.on = true
|
r.query.on = true
|
||||||
if true {
|
qpath, op, value, _, fi, ok := parseQuery(path[i:])
|
||||||
qpath, op, value, _, fi, ok := parseQuery(path[i:])
|
if !ok {
|
||||||
if !ok {
|
// bad query, end now
|
||||||
// bad query, end now
|
break
|
||||||
break
|
}
|
||||||
}
|
r.query.path = qpath
|
||||||
r.query.path = qpath
|
r.query.op = op
|
||||||
r.query.op = op
|
r.query.value = value
|
||||||
r.query.value = value
|
i = fi - 1
|
||||||
i = fi - 1
|
if i+1 < len(path) && path[i+1] == '#' {
|
||||||
if i+1 < len(path) && path[i+1] == '#' {
|
r.query.all = true
|
||||||
r.query.all = true
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
var end byte
|
|
||||||
if path[1] == '[' {
|
|
||||||
end = ']'
|
|
||||||
} else {
|
|
||||||
end = ')'
|
|
||||||
}
|
|
||||||
i += 2
|
|
||||||
// whitespace
|
|
||||||
for ; i < len(path); i++ {
|
|
||||||
if path[i] > ' ' {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
s := i
|
|
||||||
for ; i < len(path); i++ {
|
|
||||||
if path[i] <= ' ' ||
|
|
||||||
path[i] == '!' ||
|
|
||||||
path[i] == '=' ||
|
|
||||||
path[i] == '<' ||
|
|
||||||
path[i] == '>' ||
|
|
||||||
path[i] == '%' ||
|
|
||||||
path[i] == end {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
r.query.path = path[s:i]
|
|
||||||
// whitespace
|
|
||||||
for ; i < len(path); i++ {
|
|
||||||
if path[i] > ' ' {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if i < len(path) {
|
|
||||||
s = i
|
|
||||||
if path[i] == '!' {
|
|
||||||
if i < len(path)-1 && (path[i+1] == '=' ||
|
|
||||||
path[i+1] == '%') {
|
|
||||||
i++
|
|
||||||
}
|
|
||||||
} else if path[i] == '<' || path[i] == '>' {
|
|
||||||
if i < len(path)-1 && path[i+1] == '=' {
|
|
||||||
i++
|
|
||||||
}
|
|
||||||
} else if path[i] == '=' {
|
|
||||||
if i < len(path)-1 && path[i+1] == '=' {
|
|
||||||
s++
|
|
||||||
i++
|
|
||||||
}
|
|
||||||
}
|
|
||||||
i++
|
|
||||||
r.query.op = path[s:i]
|
|
||||||
// whitespace
|
|
||||||
for ; i < len(path); i++ {
|
|
||||||
if path[i] > ' ' {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
s = i
|
|
||||||
for ; i < len(path); i++ {
|
|
||||||
if path[i] == '"' {
|
|
||||||
i++
|
|
||||||
s2 := i
|
|
||||||
for ; i < len(path); i++ {
|
|
||||||
if path[i] > '\\' {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
if path[i] == '"' {
|
|
||||||
// look for an escaped slash
|
|
||||||
if path[i-1] == '\\' {
|
|
||||||
n := 0
|
|
||||||
for j := i - 2; j > s2-1; j-- {
|
|
||||||
if path[j] != '\\' {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
n++
|
|
||||||
}
|
|
||||||
if n%2 == 0 {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else if path[i] == end {
|
|
||||||
if i+1 < len(path) && path[i+1] == '#' {
|
|
||||||
r.query.all = true
|
|
||||||
}
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if i > len(path) {
|
|
||||||
i = len(path)
|
|
||||||
}
|
|
||||||
v := path[s:i]
|
|
||||||
for len(v) > 0 && v[len(v)-1] <= ' ' {
|
|
||||||
v = v[:len(v)-1]
|
|
||||||
}
|
|
||||||
r.query.value = v
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue