1
0
mirror of https://github.com/golang/go synced 2024-11-22 21:50:03 -07:00
go/usr/gri/gosrc/go.go
Robert Griesemer bb9d53e570 - added buildtime
SVN=126776
2008-07-10 18:46:30 -07:00

62 lines
1.1 KiB
Go

// 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 Build "build"
import Scanner "scanner"
import Parser "parser"
func PrintHelp() {
print "go in go (", Build.time, ")\n";
print "usage:\n";
print " go { -v | -vv | file }\n";
/*
printf("flags:\n");
for (int i = 0; Flags[i].name != NULL; i++) {
printf(" %s %s\n", Flags[i].name, Flags[i].help);
}
*/
}
func Compile(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() {
if sys.argc() <= 1 {
PrintHelp();
sys.exit(1);
}
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";
Compile(sys.argv(i), src, verbose);
} else {
print "error: cannot read " + sys.argv(i) + "\n";
}
}
}