some more helper functions

git-svn-id: https://projects.brucker.ch/su4sml/svn/infsec-import/trunk/src/su4sml@6199 3260e6d1-4efc-4170-b0a7-36055960796d
This commit is contained in:
Jürgen Doser 2007-02-23 13:36:42 +00:00
parent e6097c3056
commit 849d9fdded
1 changed files with 21 additions and 8 deletions

View File

@ -150,17 +150,27 @@ fun is_supported lang = ListEq.includes supported_languages lang
fun cartridge_of lang = Option.valOf (List.find (fn c => #lang c = lang) cartridge_list)
fun generateFromModel model lang =
let val cart = cartridge_of lang
val gen = #generator (cartridge_of lang)
val template = "templates/"^(#template cart)
fun generateWithTemplate xmi_file lang template =
let val cart = cartridge_of lang
val gen = #generator cart
val model = (#parser cart) xmi_file
in
gen model template
end
fun generate xmi_file lang = generateFromModel ((#parser (cartridge_of lang)) xmi_file) lang
fun genFromModelWithCart model (cart:cartridge) =
let val gen = #generator cart
val template = "templates/"^(#template cart)
in
gen model template
end
fun generateWithCart xmi_file (cart:cartridge) =
genFromModelWithCart ((#parser cart) xmi_file) cart
fun generateFromModel model lang = genFromModelWithCart model (cartridge_of lang)
fun generate xmi_file lang = generateWithCart xmi_file (cartridge_of lang)
fun print_usage () = print ("usage: codegen <xmi_file> <language>\n"^
"\tlanguage = "^string_of_languages ^"\n")
@ -169,7 +179,10 @@ fun main (_,[xmi_file,lang]) = ((if is_supported lang
then generate xmi_file lang
else print_usage ());
OS.Process.success)
(* | main (_,[xmi_file,lang,template]) = (generate_with_template ; OS.Process.success) *)
| main (_,[xmi_file,lang,template]) = ((if is_supported lang
then generateWithTemplate xmi_file lang template
else print_usage ());
OS.Process.success)
| main _ = (print_usage(); OS.Process.success)
end