mirror of https://github.com/golang/go.git
parent
afbf717eeb
commit
bb9d53e570
|
|
@ -0,0 +1,61 @@
|
|||
// 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";
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue