func (r *REPL) evalBufferOne(ctx context.Context) error { line := strings.Join(r.buffer, "\n") if len(strings.TrimSpace(line)) == 0 { r.buffer = []string{} return nil } // The user may enter lines with comments on the end or // multiple lines with comments interspersed. In these cases // the parser will return multiple statements. stmts, err := ast.ParseStatements("", line) if err != nil { if r.bufferDisabled { return err } return nil } r.buffer = []string{} for _, stmt := range stmts { if err := r.evalStatement(ctx, stmt); err != nil { return err } } return nil }
func (r *REPL) evalBufferMulti(ctx context.Context) error { line := strings.Join(r.buffer, "\n") r.buffer = []string{} if len(strings.TrimSpace(line)) == 0 { return nil } stmts, err := ast.ParseStatements("", line) if err != nil { return err } for _, stmt := range stmts { if err := r.evalStatement(ctx, stmt); err != nil { return err } } return nil }