t.Skip("skipping test in short mode")
}
- ast, err := ParseFile(*src_, nil, nil, CheckBranches)
+ // provide a dummy error handler so parsing doesn't stop after first error
+ ast, err := ParseFile(*src_, func(error) {}, nil, CheckBranches)
if err != nil {
- t.Fatal(err)
+ t.Error(err)
+ }
+
+ if ast != nil {
+ Fdump(os.Stdout, ast)
}
- Fdump(os.Stdout, ast)
}
// Fun(ArgList[0], ArgList[1], ...)
CallExpr struct {
Fun Expr
- ArgList []Expr
- HasDots bool // last argument is followed by ...
+ ArgList []Expr // nil means no arguments
+ HasDots bool // last argument is followed by ...
expr
}
t.Skip("skipping test in short mode")
}
- ast, err := ParseFile(*src_, nil, nil, 0)
+ // provide a dummy error handler so parsing doesn't stop after first error
+ ast, err := ParseFile(*src_, func(error) {}, nil, 0)
if err != nil {
- t.Fatal(err)
+ t.Error(err)
+ }
+
+ if ast != nil {
+ Fprint(os.Stdout, ast, true)
+ fmt.Println()
}
- Fprint(os.Stdout, ast, true)
- fmt.Println()
}
func TestPrintString(t *testing.T) {
// Parse parses a single Go source file from src and returns the corresponding
// syntax tree. If there are errors, Parse will return the first error found,
-// and a possibly partially constructed syntax tree, or nil if no correct package
-// clause was found. The base argument is only used for position information.
+// and a possibly partially constructed syntax tree, or nil.
//
// If errh != nil, it is called with each error encountered, and Parse will
-// process as much source as possible. If errh is nil, Parse will terminate
-// immediately upon encountering an error.
+// process as much source as possible. In this case, the returned syntax tree
+// is only nil if no correct package clause was found.
+// If errh is nil, Parse will terminate immediately upon encountering the first
+// error, and the returned syntax tree is nil.
//
// If pragh != nil, it is called with each pragma encountered.
//