diff --git a/Naggum.Assembler/Assembler.fs b/Naggum.Assembler/Assembler.fs index f37bbb1..2c6d593 100644 --- a/Naggum.Assembler/Assembler.fs +++ b/Naggum.Assembler/Assembler.fs @@ -17,7 +17,6 @@ let private getMethodAttributes (m : MethodDefinition) = |> List.fold (|||) empty let private findMethod (signature : MethodSignature) = - // TODO: Add method overload resolution etc. (see ClrGenerator module) let ``type`` = signature.ContainingType.Value ``type``.GetMethod (signature.Name, Array.ofList signature.ArgumentTypes) @@ -38,7 +37,6 @@ let private assembleUnit (assemblyBuilder : AssemblyBuilder) (builder : ModuleBu let attributes = getMethodAttributes m let returnType = m.ReturnType let argumentTypes = Array.ofList m.ArgumentTypes - System.Diagnostics.Debug.Print (sprintf "%A" m) let methodBuilder = builder.DefineGlobalMethod (name, attributes, returnType, diff --git a/Naggum.Assembler/AssemblyInfo.fs b/Naggum.Assembler/AssemblyInfo.fs index 9d9fc00..421115a 100644 --- a/Naggum.Assembler/AssemblyInfo.fs +++ b/Naggum.Assembler/AssemblyInfo.fs @@ -5,7 +5,7 @@ open System.Runtime.InteropServices [] [] -[] +[] [] [] [] diff --git a/Naggum.Assembler/Processor.fs b/Naggum.Assembler/Processor.fs index 0309e51..2d19734 100644 --- a/Naggum.Assembler/Processor.fs +++ b/Naggum.Assembler/Processor.fs @@ -1,8 +1,8 @@ module Naggum.Assembler.Processor open System +open System.IO open System.Reflection -open System.Reflection.Emit open Naggum.Assembler.Representation open Naggum.Compiler @@ -23,7 +23,7 @@ let private resolveType name = result let private resolveTypes = - List.map (function + List.map (function | Atom (Symbol name) -> resolveType name | other -> failwithf "Unrecognized type: %A" other) @@ -91,6 +91,6 @@ let private prepareTopLevel = function /// Prepares the source file for assembling. Returns the intermediate /// representation of the source code. -let prepare fileName stream : Assembly seq = +let prepare (fileName : string) (stream : Stream) : Assembly seq = let forms = Reader.parse fileName stream forms |> Seq.map prepareTopLevel diff --git a/Naggum.Assembler/Program.fs b/Naggum.Assembler/Program.fs index 910aa74..acff804 100644 --- a/Naggum.Assembler/Program.fs +++ b/Naggum.Assembler/Program.fs @@ -5,32 +5,32 @@ open System.IO open System.Reflection open System.Reflection.Emit -type ReturnCode = +type private ReturnCode = | Success = 0 | Error = 1 | InvalidArguments = 2 -let printUsage () = +let private printUsage () = let version = Assembly.GetExecutingAssembly().GetName().Version printfn "Naggum Assembler %A" version printfn "Usage: Naggum.Assembler [one or more file names]" -let printError (error : Exception) = +let private printError (error : Exception) = printfn "Error: %s" (error.ToString ()) -let save (assembly : AssemblyBuilder) = +let private save (assembly : AssemblyBuilder) = let name = assembly.FullName assembly.Save name printfn "Assembly %s saved" name -let assemble fileName = +let private assemble fileName = use stream = File.OpenRead fileName let repr = Processor.prepare fileName stream let assemblies = Assembler.assemble repr assemblies |> Seq.iter save -let nga = - function +let private nga = + function | [| "--help" |] -> printUsage () ReturnCode.Success