m3tk/src/pl/M3LProgContext.i3


 Copyright (C) 1990, Digital Equipment Corporation           
 All rights reserved.                                        
 See the file COPYRIGHT for a full description.              

INTERFACE M3LProgContext;

IMPORT M3Context, M3AST_AS, SeqM3AST_AS_Interface;

PROCEDURE Build(m: M3AST_AS.Module): M3Context.T RAISES {};
This procedure enters all the units that go to make up the program identified by 'm' into a new context, and returns that as result. It assumes that the pl_dependson_s has already been built.

PROCEDURE BuildC(c: M3Context.T; name: TEXT := NIL): M3Context.T RAISES {};
First find the main program module in 'c' named 'name', or, if NIL, the first one on the list returned by 'M3LMain.Module'. Then compute the dependson relation, then call 'Build' to return an exact context. If there are no main program modules, return NIL.

PROCEDURE BuildPartial(
    c: M3Context.T;
    list: SeqM3AST_AS_Interface.T)
    : M3Context.T
    RAISES {};
This is a more general procedure than 'BuildC'. First it finds those modules that export the interfaces denoted by 'list'. It then computes the dependson relation for these and then builds a context from this. If 'list' contained a single entry 'Main', this call would be equivalent to 'BuildC(c, Main);

END M3LProgContext.