mirror of
https://github.com/golang/go
synced 2024-11-22 21:50:03 -07:00
bb9d53e570
SVN=126776
62 lines
1.1 KiB
Go
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";
|
|
}
|
|
}
|
|
}
|