1
0
mirror of https://github.com/golang/go synced 2024-11-19 05:04:43 -07:00
go/usr/gri/gosrc/compilation.go

46 lines
999 B
Go
Raw Normal View History

// 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 Utils "utils"
import Globals "globals"
import Object "object"
import Type "type"
2008-07-15 20:59:00 -06:00
import Universe "universe"
import Scanner "scanner"
import AST "ast"
import Parser "parser"
import Export "export"
export Compile
func Compile(file_name string, verbose int) {
src, ok := sys.readfile(file_name);
2008-07-15 20:59:00 -06:00
if !ok {
print "cannot open ", file_name, "\n"
2008-07-15 20:59:00 -06:00
return;
}
Universe.Init(); // TODO eventually this should be only needed once
comp := Globals.NewCompilation();
2008-07-15 20:59:00 -06:00
scanner := new(Scanner.Scanner);
scanner.Open(file_name, src);
2008-07-15 20:59:00 -06:00
parser := new(Parser.Parser);
parser.Open(comp, scanner, verbose);
print "parsing ", file_name, "\n";
parser.ParseProgram();
if parser.S.nerrors > 0 {
return;
}
2008-07-15 20:59:00 -06:00
// export
exp := new(Export.Exporter);
exp.Export(comp, Utils.FixExt(Utils.BaseName(file_name)));
}