Cosmos/source2/Cosmos.Assembler/Code.cs
2012-07-07 20:16:52 +00:00

27 lines
809 B
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Reflection;
namespace Cosmos.Assembler {
public abstract class Code {
protected Assembler mAssembler;
public abstract void Assemble();
public Code(Assembler aAssembler) {
mAssembler = aAssembler;
}
// Assembles all descendants of this class in specified assembly.
static public void Assemble(Assembler aAssembler, Assembly aAssembly) {
foreach (var xType in aAssembly.GetTypes()) {
if (xType.IsSubclassOf(typeof(Code))) {
var xCtor = xType.GetConstructor(new Type[] { typeof(Assembler) });
var xCode = (Code)(xCtor.Invoke(new Object[] { aAssembler }));
xCode.Assemble();
}
}
}
}
}