]> Cypherpunks repositories - gostls13.git/commitdiff
- missing file
authorRobert Griesemer <gri@golang.org>
Fri, 24 Oct 2008 21:08:01 +0000 (14:08 -0700)
committerRobert Griesemer <gri@golang.org>
Fri, 24 Oct 2008 21:08:01 +0000 (14:08 -0700)
R=r
OCL=17813
CL=17813

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

diff --git a/usr/gri/pretty/compilation.go b/usr/gri/pretty/compilation.go
new file mode 100644 (file)
index 0000000..7938632
--- /dev/null
@@ -0,0 +1,46 @@
+// 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 Compilation
+
+import Scanner "scanner"
+import Parser "parser"
+import AST "ast"
+
+
+
+export type Flags struct {
+       verbose bool;
+       sixg bool;
+       deps bool;
+       columns bool;
+       testmode bool;
+       tokenchan bool;
+}
+
+
+type Compilation struct {
+       prog *AST.Program;
+       nerrors int;
+}
+
+
+export func Compile(src_file, src string, flags *Flags) *Compilation {
+       var scanner Scanner.Scanner;
+       scanner.Open(src_file, src, flags.columns, flags.testmode);
+
+       var tstream *<-chan *Scanner.Token;
+       if flags.tokenchan {
+               tstream = scanner.TokenStream();
+       }
+
+       var parser Parser.Parser;
+       parser.Open(flags.verbose, flags.sixg, &scanner, tstream);
+
+       C := new(Compilation);
+       C.prog = parser.ParseProgram();
+       C.nerrors = scanner.nerrors;
+       
+       return C;
+}