lib/gen_nit: move NitModule from nitserial to gen_nit
authorAlexis Laferrière <alexis.laf@xymus.net>
Sun, 29 Nov 2015 00:58:10 +0000 (19:58 -0500)
committerAlexis Laferrière <alexis.laf@xymus.net>
Sun, 29 Nov 2015 05:08:38 +0000 (00:08 -0500)
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>

lib/gen_nit.nit
src/nitserial.nit

index ea410a2..a9dc0ed 100644 (file)
@@ -15,6 +15,8 @@
 # Support to generate and otherwise manipulate Nit code
 module gen_nit
 
+import template
+
 redef class Sys
        # Reserved keywords in the Nit language
        var keywords: Set[String] is lazy do return new HashSet[String].from([
@@ -39,3 +41,37 @@ redef class Sys
        var methods_in_pointer: Array[String] is lazy do return methods_in_object + [
                "free"]
 end
+
+# Template of a Nit module to generate Nit code
+class NitModule
+       super Template
+
+       # Header on top of the module, usually the documentation
+       var header: nullable Writable = null is writable
+
+       # The module's name
+       var name: Writable is writable
+
+       # Imports from this module
+       var imports = new Array[Writable]
+
+       # Main content of this module
+       var content = new Array[Writable]
+
+       redef fun rendering
+       do
+               var header = header
+               if header != null then add header
+
+               var name = name
+               add "module {name}\n\n"
+
+               for i in imports do add "import {i}\n"
+               add "\n"
+
+               for l in content do
+                       add l
+                       add "\n"
+               end
+       end
+end
index 1c24d69..9c8a07b 100644 (file)
 # generate and include its own serialization support module.
 module nitserial
 
-import frontend
-import rapid_type_analysis
 import template
+import gen_nit
 
-# A Nit module
-#
-# TODO add more features and move to lib
-class NitModule
-       super Template
-
-       var header: nullable Writable = null
-
-       # The module's name
-       var name: Writable
-
-       # Imports from this module
-       var imports = new Array[Writable]
-
-       # Main content of this module
-       var content = new Array[Writable]
-
-       redef fun rendering
-       do
-               var header = header
-               if header != null then add header
-
-               var name = name
-               add "module {name}\n\n"
-
-               for i in imports do add "import {i}\n"
-               add "\n"
-
-               for l in content do add "{l}\n"
-       end
-end
+import frontend
+import rapid_type_analysis
 
 redef class ToolContext
        # Where do we put a single result?