Пример #1
0
func Parse(name, src string) (*Chunk, error) {
	ps := &parser{src, 0, 0, nil}
	bn := parseChunk(ps, nil)
	if ps.error != nil {
		return bn, errutil.NewContextualError(
			name, "syntax error", src, ps.pos, ps.error.Error())
	}
	if ps.pos != len(src) {
		return bn, errutil.NewContextualError(
			name, "syntax error", src, ps.pos, "unexpected rune")
	}
	return bn, nil
}
Пример #2
0
func Parse(name, src string) (*Chunk, error) {
	rd := &reader{src, 0, nil}
	bn := parseChunk(rd)
	if rd.error != nil {
		return nil, errutil.NewContextualError(
			name, "syntax error", src, rd.pos, rd.error.Error())
	}
	return bn, nil
}
Пример #3
0
// errorf stops the ec.eval immediately by panicking with a diagnostic message.
// The panic is supposed to be caught by ec.eval.
func (ec *EvalCtx) errorf(p int, format string, args ...interface{}) {
	throw(errutil.NewContextualError(
		fmt.Sprintf("%s (%s)", ec.name, ec.context), "error",
		ec.text, p, format, args...))
}
Пример #4
0
// errorf stops the ec.eval immediately by panicking with a diagnostic message.
// The panic is supposed to be caught by ec.eval.
func (ec *evalCtx) errorf(p parse.Pos, format string, args ...interface{}) {
	errutil.Throw(errutil.NewContextualError(
		fmt.Sprintf("%s (%s)", ec.name, ec.context), "evalling error",
		ec.text, int(p), format, args...))
}
Пример #5
0
func (cp *compiler) errorf(p int, format string, args ...interface{}) {
	throw(errutil.NewContextualError(cp.name, "syntax error", cp.source, p, format, args...))
}
Пример #6
0
func (cc *compileCtx) errorf(p parse.Pos, format string, args ...interface{}) {
	errutil.Throw(errutil.NewContextualError(cc.name, "static error", cc.text, int(p), format, args...))
}
Пример #7
0
// errorf formats the error and terminates processing.
func (p *Parser) errorf(pos int, format string, args ...interface{}) {
	p.Root = nil
	errutil.Throw(errutil.NewContextualError(p.Name, "parsing error", p.text, pos, format, args...))
}