~mna/zerojson

4743bbeed02e39e887756ad0a4a07bc18a7ffeed — Martin Angers 1 year, 21 days ago 45f0f1c
parse literals
1 files changed, 28 insertions(+), 1 deletions(-)

M zerojson.go
M zerojson.go => zerojson.go +28 -1
@@ 1,6 1,9 @@
package zerojson

import "errors"
import (
	"bytes"
	"errors"
)

// JSON supports 7 different values:
//


@@ 103,18 106,42 @@ func (p *parser) scan() error {
	switch p.cur {
	case '{':
		// object
		p.stack.push(p.cur)

	case '[':
		// array
		p.stack.push(p.cur)

	case '"':
		// string

	case '-', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9':
		// number

	case 't':
		// true
		if !bytes.HasPrefix(p.input[p.pos+1:], []byte(trueTrail)) {

		}
		p.pos += len(trueTrail)
		p.advance()

	case 'f':
		// false
		if !bytes.HasPrefix(p.input[p.pos+1:], []byte(falseTrail)) {

		}
		p.pos += len(falseTrail)
		p.advance()

	case 'n':
		// null
		if !bytes.HasPrefix(p.input[p.pos+1:], []byte(nullTrail)) {

		}
		p.pos += len(nullTrail)
		p.advance()

	default:
		// invalid character
	}