1
0
mirror of https://github.com/golang/go synced 2024-09-25 15:10:11 -06:00
go/usr/gri/pretty/compilation.go

47 lines
883 B
Go
Raw Normal View History

2008-10-24 15:08:01 -06:00
// 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;
}