namespace arookas { class sunStatementBlock : sunNode { public sunStatementBlock(sunSourceLocation location) : base(location) { } public override void Compile(sunContext context) { context.Scopes.Push(); base.Compile(context); context.Scopes.Pop(); } } class sunImport : sunNode { public sunStringLiteral ImportFile { get { return this[0] as sunStringLiteral; } } public sunImport(sunSourceLocation location) : base(location) { } public override void Compile(sunContext context) { var result = context.Import(ImportFile.Value); switch (result) { case sunImportResult.Missing: case sunImportResult.FailedToLoad: throw new sunMissingImportException(this); } } } class sunNameLabel : sunNode { public sunIdentifier Label { get { return this[0] as sunIdentifier; } } public sunNameLabel(sunSourceLocation location) : base(location) { } } }