mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
Step 1 of the Big Error Shift: make os.Error an interface and replace *os.Errors with os.Errors.
lib/template updated to use new setup; its clients also updated. Step 2 will make os's error support internally much cleaner. R=rsc OCL=27586 CL=27586
This commit is contained in:
parent
3ea8d854a3
commit
aaf63f8d06
57 changed files with 341 additions and 339 deletions
|
|
@ -70,7 +70,7 @@ func (c *common) setIndex(i int) { c._index = i }
|
|||
type Regexp struct {
|
||||
expr string; // the original expression
|
||||
ch chan<- *Regexp; // reply channel when we're done
|
||||
error *os.Error; // compile- or run-time error; nil if OK
|
||||
error os.Error; // compile- or run-time error; nil if OK
|
||||
inst *vector.Vector;
|
||||
start instr;
|
||||
nbra int; // number of brackets in expression, for subexpressions
|
||||
|
|
@ -233,7 +233,7 @@ func (nop *_Nop) kind() int { return _NOP }
|
|||
func (nop *_Nop) print() { print("nop") }
|
||||
|
||||
// report error and exit compiling/executing goroutine
|
||||
func (re *Regexp) setError(err *os.Error) {
|
||||
func (re *Regexp) setError(err os.Error) {
|
||||
re.error = err;
|
||||
re.ch <- re;
|
||||
sys.Goexit();
|
||||
|
|
@ -586,7 +586,7 @@ func compiler(str string, ch chan *Regexp) {
|
|||
|
||||
// Compile parses a regular expression and returns, if successful, a Regexp
|
||||
// object that can be used to match against text.
|
||||
func Compile(str string) (regexp *Regexp, error *os.Error) {
|
||||
func Compile(str string) (regexp *Regexp, error os.Error) {
|
||||
// Compile in a separate goroutine and wait for the result.
|
||||
ch := make(chan *Regexp);
|
||||
go compiler(str, ch);
|
||||
|
|
@ -754,7 +754,7 @@ func (re *Regexp) MatchStrings(s string) (a []string) {
|
|||
// Match checks whether a textual regular expression
|
||||
// matches a substring. More complicated queries need
|
||||
// to use Compile and the full Regexp interface.
|
||||
func Match(pattern string, s string) (matched bool, error *os.Error) {
|
||||
func Match(pattern string, s string) (matched bool, error os.Error) {
|
||||
re, err := Compile(pattern);
|
||||
if err != nil {
|
||||
return false, err
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue