func CharRange(min, max rune) Parser {
	return &CharRangeParser{min, max}
}
CharRange returns a parser that parses a single occurrence of any
rune in the given range, inclusive.
package parser
import (
	"bytes"
	"fmt"
	"github.com/jmikkola/parsego/parser/result"
	"github.com/jmikkola/parsego/parser/scanner"
	"github.com/jmikkola/parsego/parser/textpos"
)
type Parser interface {
	Parse(sc scanner.Scanner) result.ParseResult
}
func fail(at textpos.TextPos, format string, a ...interface{}) result.ParseResult {
	return result.Failed(textpos.Single(at), fmt.Errorf(format, a...))
}
type EOFParser struct{}
func EOF() Parser {
	return &EOFParser{}
}
func (p *EOFParser) Parse(sc scanner.Scanner) result.ParseResult {
	r, err := sc.Read()
	if err == nil {
		return fail(sc.GetPos(), "expected EOF, got %c", r)
	}
	return result.Success(textpos.Single(sc.GetPos()), "")
}
type CharRangeParser struct {
	min rune  
	max rune
}
func Char(c rune) Parser {
	return &CharRangeParser{c, c}
}