- missing file

R=r
OCL=17813
CL=17813
This commit is contained in:
Robert Griesemer 2008-10-24 14:08:01 -07:00
parent ad863046f8
commit 63ed2b710b
1 changed files with 46 additions and 0 deletions

View File

@ -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;
}