rendered paste bodyusing System;
using NPhilosopher.NILC;
namespace NPhilosopher {
module NPhilosopher {
Main() : void {
Walk(Reflector.Reflect("Test/HelloWorld.exe"));
}
Walk(obj : NAssembly) : void {
| NAssembly.Assembly(name, types) =>
Console.WriteLine("Assembly: {0}", name);
Walk(types);
| NAssembly.Type(name, members) =>
Console.WriteLine("\tType: {0}", name);
Walk(members);
| NAssembly.Method(name, args, returnType) =>
Console.WriteLine("\t\tMethod: {0}", name);
Walk(args);
Console.WriteLine("\t\t\tReturns: {0}", returnType);
| NAssembly.Argument(name, argType) =>
Console.WriteLine("\t\t\tArgument: {0} : {1}", name, argType);
| _ => ();
}
Walk(obj : list [NAssembly]) : void {
| [] => ();
| head :: tail =>
Walk(head);
Walk(tail);
}
}
}