]> Cypherpunks repositories - gostls13.git/commitdiff
- added buildtime
authorRobert Griesemer <gri@golang.org>
Fri, 11 Jul 2008 01:46:30 +0000 (18:46 -0700)
committerRobert Griesemer <gri@golang.org>
Fri, 11 Jul 2008 01:46:30 +0000 (18:46 -0700)
SVN=126776

usr/gri/gosrc/go.go [new file with mode: 0644]

diff --git a/usr/gri/gosrc/go.go b/usr/gri/gosrc/go.go
new file mode 100644 (file)
index 0000000..8bf44d9
--- /dev/null
@@ -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";
+               }
+       }
+}