diff options
Diffstat (limited to 'usr/gri/gosrc/test_parser.go')
-rw-r--r-- | usr/gri/gosrc/test_parser.go | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/usr/gri/gosrc/test_parser.go b/usr/gri/gosrc/test_parser.go new file mode 100644 index 000000000..78d8d8711 --- /dev/null +++ b/usr/gri/gosrc/test_parser.go @@ -0,0 +1,42 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package main + +import Scanner "scanner" +import Parser "parser" + + +func Parse(filename, src string, verbose int) { + S := new(Scanner.Scanner); + S.Open(filename, src); + + P := new(Parser.Parser); + P.Open(S, verbose); + + P.ParseProgram(); +} + + +func main() { + verbose := 0; + for i := 1; i < sys.argc(); i++ { + switch sys.argv(i) { + case "-v": + verbose = 1; + continue; + case "-vv": + verbose = 2; + continue; + } + + src, ok := sys.readfile(sys.argv(i)); + if ok { + print "parsing " + sys.argv(i) + "\n"; + Parse(sys.argv(i), src, verbose); + } else { + print "error: cannot read " + sys.argv(i) + "\n"; + } + } +} |