Commit f550cd67 authored by Robert Griesemer's avatar Robert Griesemer

- more infrastructure

SVN=127430
parent a703c9a9
......@@ -7,6 +7,7 @@ package Compilation
import Globals "globals"
import Object "object"
import Type "type"
import Universe "universe"
import Package "package"
import Scanner "scanner"
import Parser "parser"
......@@ -16,7 +17,8 @@ export Compilation
type Compilation struct {
src_name string;
pkg *Globals.Object;
imports *Globals.List; // a list of *Globals.Package
imports [256] *Package.Package; // TODO need open arrays
nimports int;
}
......@@ -48,5 +50,26 @@ func (C *Compilation) Export() {
export Compile
func Compile() {
func Compile(src_name string, verbose int) {
comp := new(Compilation);
comp.src_name = src_name;
comp.pkg = nil;
comp.nimports = 0;
src, ok := sys.readfile(src_name);
if !ok {
print "cannot open ", src_name, "\n"
return;
}
Universe.Init();
S := new(Scanner.Scanner);
S.Open(src_name, src);
P := new(Parser.Parser);
P.Open(S, verbose);
print "parsing ", src_name, "\n";
P.ParseProgram();
}
......@@ -60,7 +60,7 @@ export Scope
type Scope struct {
parent *Scope;
entries *List;
// entries *map[string] *Object; // doesn't work yet
// entries *map[string] *Object; // doesn't work properly
}
......
......@@ -5,12 +5,7 @@
package main
import Build "build"
import Globals "globals"
import Object "object"
import Type "type"
import Universe "universe"
import Scanner "scanner"
import Parser "parser"
import Compilation "compilation"
func PrintHelp() {
......@@ -26,19 +21,6 @@ func PrintHelp() {
}
func Compile(filename, src string, verbose int) {
Universe.Init();
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();
......@@ -56,12 +38,6 @@ func main() {
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";
}
Compilation.Compile(sys.argv(i), verbose);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment