public static BinaryFileSchema CheckBfs(BinaryFileSchema schema, IBfsErrorHandler errorHandler)
{
handler = errorHandler;
IPhase[] phases = new IPhase[] {
new Environments(),
new TypeLinking(),
new Hierarchy(),
new TypeChecking(),
new DefiniteAssignment()
};
gotError = false;
foreach (IPhase phase in phases)
{
phase.Check(schema);
if (gotError && errorHandler != null)
{
errorHandler.HandleMessage("Schema has errors. Compilation stopped.");
return null;
}
}
return schema;
}