All pastes #971765 Raw Edit

Someone

public text v1 · immutable
·published 2008-04-04 23:17 UTC
rendered paste body
using 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 {
			match(obj) {
				| [] => ();
				| head :: tail =>
					Walk(head);
					Walk(tail);
			}
		}
	}
}