From 4f1830e6f369650f1d25aaec27bf196264522f3e Mon Sep 17 00:00:00 2001 From: =?utf8?q?Alexis=20Laferri=C3=A8re?= Date: Sat, 28 Nov 2015 19:58:10 -0500 Subject: [PATCH] lib/gen_nit: move NitModule from nitserial to gen_nit MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Alexis Laferrière --- lib/gen_nit.nit | 36 ++++++++++++++++++++++++++++++++++++ src/nitserial.nit | 36 +++--------------------------------- 2 files changed, 39 insertions(+), 33 deletions(-) diff --git a/lib/gen_nit.nit b/lib/gen_nit.nit index ea410a2..a9dc0ed 100644 --- a/lib/gen_nit.nit +++ b/lib/gen_nit.nit @@ -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 diff --git a/src/nitserial.nit b/src/nitserial.nit index 1c24d69..9c8a07b 100644 --- a/src/nitserial.nit +++ b/src/nitserial.nit @@ -25,41 +25,11 @@ # 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? -- 1.7.9.5