Christian Fraß commited on 2016-08-09 01:17:44
              Zeige 14 geänderte Dateien mit 3203 Einfügungen und 784 Löschungen.
            
| ... | ... | 
                      @@ -1,105 +0,0 @@  | 
                  
| 1 | 
                        -<project name="fs-draft" default="build">  | 
                    |
| 2 | 
                        - <property environment="env">  | 
                    |
| 3 | 
                        - </property>  | 
                    |
| 4 | 
                        - <property name="dir.source" value="source">  | 
                    |
| 5 | 
                        - </property>  | 
                    |
| 6 | 
                        -	<property name="dir.source.structure" value="${dir.source}/structure">
                       | 
                    |
| 7 | 
                        - </property>  | 
                    |
| 8 | 
                        -	<property name="dir.source.style" value="${dir.source}/style">
                       | 
                    |
| 9 | 
                        - </property>  | 
                    |
| 10 | 
                        -	<property name="dir.source.logic" value="${dir.source}/logic">
                       | 
                    |
| 11 | 
                        - </property>  | 
                    |
| 12 | 
                        -	<property name="dir.source.logic.server" value="${dir.source.logic}/server">
                       | 
                    |
| 13 | 
                        - </property>  | 
                    |
| 14 | 
                        -	<property name="dir.source.logic.client" value="${dir.source.logic}/client">
                       | 
                    |
| 15 | 
                        - </property>  | 
                    |
| 16 | 
                        -	<property name="dir.source.media" value="${dir.source}/media">
                       | 
                    |
| 17 | 
                        - </property>  | 
                    |
| 18 | 
                        - <property name="dir.temp" value="temp">  | 
                    |
| 19 | 
                        - </property>  | 
                    |
| 20 | 
                        - <property name="dir.build" value="build">  | 
                    |
| 21 | 
                        - </property>  | 
                    |
| 22 | 
                        - <property name="cmd.php" value="php">  | 
                    |
| 23 | 
                        - </property>  | 
                    |
| 24 | 
                        - <property name="cmd.lessc" value="lessc">  | 
                    |
| 25 | 
                        - </property>  | 
                    |
| 26 | 
                        - <target name="build" depends="build-structure,build-style,build-logic,build-media">  | 
                    |
| 27 | 
                        - </target>  | 
                    |
| 28 | 
                        - <target name="build-structure">  | 
                    |
| 29 | 
                        -		<mkdir dir="${dir.build}">
                       | 
                    |
| 30 | 
                        - </mkdir>  | 
                    |
| 31 | 
                        -		<exec executable="${cmd.php}" output="${dir.build}/draft.html">
                       | 
                    |
| 32 | 
                        -			<arg value="${dir.source.structure}/draft.html.php">
                       | 
                    |
| 33 | 
                        - </arg>  | 
                    |
| 34 | 
                        - </exec>  | 
                    |
| 35 | 
                        - </target>  | 
                    |
| 36 | 
                        - <target name="build-style">  | 
                    |
| 37 | 
                        -		<mkdir dir="${dir.temp}">
                       | 
                    |
| 38 | 
                        - </mkdir>  | 
                    |
| 39 | 
                        -		<concat destfile="${dir.temp}/draft.less">
                       | 
                    |
| 40 | 
                        - <filelist dir=".">  | 
                    |
| 41 | 
                        -				<file name="${dir.source.style}/functions.less">
                       | 
                    |
| 42 | 
                        - </file>  | 
                    |
| 43 | 
                        -			 	<file name="${dir.source.style}/theme.less">
                       | 
                    |
| 44 | 
                        - </file>  | 
                    |
| 45 | 
                        -			 	<file name="${dir.source.style}/common.less">
                       | 
                    |
| 46 | 
                        - </file>  | 
                    |
| 47 | 
                        -			 	<file name="${dir.source.style}/concrete.less">
                       | 
                    |
| 48 | 
                        - </file>  | 
                    |
| 49 | 
                        - </filelist>  | 
                    |
| 50 | 
                        - </concat>  | 
                    |
| 51 | 
                        -		<mkdir dir="${dir.build}">
                       | 
                    |
| 52 | 
                        - </mkdir>  | 
                    |
| 53 | 
                        -		<exec executable="${cmd.lessc}">
                       | 
                    |
| 54 | 
                        -			<arg value="${dir.temp}/draft.less">
                       | 
                    |
| 55 | 
                        - </arg>  | 
                    |
| 56 | 
                        -			<arg value="${dir.build}/draft.css">
                       | 
                    |
| 57 | 
                        - </arg>  | 
                    |
| 58 | 
                        - </exec>  | 
                    |
| 59 | 
                        - </target>  | 
                    |
| 60 | 
                        - <target name="build-logic">  | 
                    |
| 61 | 
                        -		<mkdir dir="${dir.build}">
                       | 
                    |
| 62 | 
                        - </mkdir>  | 
                    |
| 63 | 
                        -		<concat destfile="${dir.build}/draft.js">
                       | 
                    |
| 64 | 
                        - <filelist dir=".">  | 
                    |
| 65 | 
                        -				<file name="${dir.source.logic.client}/tools.js">
                       | 
                    |
| 66 | 
                        - </file>  | 
                    |
| 67 | 
                        -				<file name="${dir.source.logic.client}/table.js">
                       | 
                    |
| 68 | 
                        - </file>  | 
                    |
| 69 | 
                        -				<file name="${dir.source.logic.client}/toc.js">
                       | 
                    |
| 70 | 
                        - </file>  | 
                    |
| 71 | 
                        -				<file name="${dir.source.logic.client}/main.js">
                       | 
                    |
| 72 | 
                        - </file>  | 
                    |
| 73 | 
                        - </filelist>  | 
                    |
| 74 | 
                        - </concat>  | 
                    |
| 75 | 
                        - </target>  | 
                    |
| 76 | 
                        - <target name="build-media">  | 
                    |
| 77 | 
                        -		<mkdir dir="${dir.build}">
                       | 
                    |
| 78 | 
                        - </mkdir>  | 
                    |
| 79 | 
                        -		<copy file="${dir.source.media}/logo.svg" tofile="${dir.build}/logo.svg">
                       | 
                    |
| 80 | 
                        - </copy>  | 
                    |
| 81 | 
                        -		<copy file="${dir.source.media}/folksprak_16x16.png" tofile="${dir.build}/favicon.png">
                       | 
                    |
| 82 | 
                        - </copy>  | 
                    |
| 83 | 
                        - </target>  | 
                    |
| 84 | 
                        - <target name="clean">  | 
                    |
| 85 | 
                        -		<delete dir="${dir.temp}">
                       | 
                    |
| 86 | 
                        - </delete>  | 
                    |
| 87 | 
                        - </target>  | 
                    |
| 88 | 
                        - <target name="clear" depends="clean,clear-structure,clear-style,clear-logic">  | 
                    |
| 89 | 
                        -		<delete dir="${dir.build}">
                       | 
                    |
| 90 | 
                        - </delete>  | 
                    |
| 91 | 
                        - </target>  | 
                    |
| 92 | 
                        - <target name="clear-structure">  | 
                    |
| 93 | 
                        -		<delete file="${dir.build}/draft.html">
                       | 
                    |
| 94 | 
                        - </delete>  | 
                    |
| 95 | 
                        - </target>  | 
                    |
| 96 | 
                        - <target name="clear-style">  | 
                    |
| 97 | 
                        -		<delete file="${dir.build}/draft.css">
                       | 
                    |
| 98 | 
                        - </delete>  | 
                    |
| 99 | 
                        - </target>  | 
                    |
| 100 | 
                        - <target name="clear-logic">  | 
                    |
| 101 | 
                        -		<delete file="${dir.build}/draft.js">
                       | 
                    |
| 102 | 
                        - </delete>  | 
                    |
| 103 | 
                        - </target>  | 
                    |
| 104 | 
                        -</project>  | 
                    |
| 105 | 
                        -  | 
                    
| ... | ... | 
                      @@ -1,282 +0,0 @@  | 
                  
| 1 | 
                        -import os  | 
                    |
| 2 | 
                        -import sys  | 
                    |
| 3 | 
                        -  | 
                    |
| 4 | 
                        -  | 
                    |
| 5 | 
                        -class class_rule(object):  | 
                    |
| 6 | 
                        -  | 
                    |
| 7 | 
                        - def __init__(self, name, dependencies, commands, phony = False):  | 
                    |
| 8 | 
                        - self.name = name  | 
                    |
| 9 | 
                        - self.dependencies = dependencies  | 
                    |
| 10 | 
                        - self.commands = commands  | 
                    |
| 11 | 
                        - self.phony = phony  | 
                    |
| 12 | 
                        -  | 
                    |
| 13 | 
                        -  | 
                    |
| 14 | 
                        - def __str__(self):  | 
                    |
| 15 | 
                        - output = ""  | 
                    |
| 16 | 
                        - output += "%s: %s\n" % (self.name, " ".join(self.dependencies))  | 
                    |
| 17 | 
                        - for command in self.commands:  | 
                    |
| 18 | 
                        -			output += ("\t@ %s\n" % (command.compile_unix()))
                       | 
                    |
| 19 | 
                        -		if (self.phony): output += (".PHONY: %s\n" % self.name)
                       | 
                    |
| 20 | 
                        - return output  | 
                    |
| 21 | 
                        -  | 
                    |
| 22 | 
                        -  | 
                    |
| 23 | 
                        -  | 
                    |
| 24 | 
                        -class class_command(object):  | 
                    |
| 25 | 
                        - def __init__(self, parameters): self.parameters = parameters  | 
                    |
| 26 | 
                        - def compile_unix(self): raise NotImplementedError  | 
                    |
| 27 | 
                        - def compile_ant(self): raise NotImplementedError  | 
                    |
| 28 | 
                        -  | 
                    |
| 29 | 
                        -class class_command_log(class_command):  | 
                    |
| 30 | 
                        - def __init__(self, parameters): class_command.__init__(self, parameters)  | 
                    |
| 31 | 
                        -	def compile_unix(self): return ("echo -e '-- %s'" % (self.parameters["message"]))
                       | 
                    |
| 32 | 
                        -  | 
                    |
| 33 | 
                        -class class_command_directory_create(class_command):  | 
                    |
| 34 | 
                        - def __init__(self, parameters): class_command.__init__(self, parameters)  | 
                    |
| 35 | 
                        -	def compile_unix(self): return ("mkdir --parents %s" % (self.parameters["path"]))
                       | 
                    |
| 36 | 
                        -  | 
                    |
| 37 | 
                        -class class_command_file_copy(class_command):  | 
                    |
| 38 | 
                        - def __init__(self, parameters): class_command.__init__(self, parameters)  | 
                    |
| 39 | 
                        -	def compile_unix(self): return ("cp --recursive %s %s" % (self.parameters["path-from"], self.parameters["path-to"]))
                       | 
                    |
| 40 | 
                        -  | 
                    |
| 41 | 
                        -class class_command_file_concat(class_command):  | 
                    |
| 42 | 
                        - def __init__(self, parameters): class_command.__init__(self, parameters)  | 
                    |
| 43 | 
                        -	def compile_unix(self): return ("cat %s > %s" % (" ".join(self.parameters["paths-from"]), self.parameters["path-to"]))
                       | 
                    |
| 44 | 
                        -  | 
                    |
| 45 | 
                        -class class_command_directory_remove(class_command):  | 
                    |
| 46 | 
                        - def __init__(self, parameters): class_command.__init__(self, parameters)  | 
                    |
| 47 | 
                        -	def compile_unix(self): return ("rm --recursive --force %s" % (self.parameters["path"]))
                       | 
                    |
| 48 | 
                        -  | 
                    |
| 49 | 
                        -class class_command_image_convert(class_command):  | 
                    |
| 50 | 
                        - def __init__(self, parameters): class_command.__init__(self, parameters)  | 
                    |
| 51 | 
                        -	def compile_unix(self): return ("convert %s %s" % (self.parameters["path-from"], self.parameters["path-to"]))
                       | 
                    |
| 52 | 
                        -  | 
                    |
| 53 | 
                        -class class_command_latex_compile(class_command):  | 
                    |
| 54 | 
                        - def __init__(self, parameters): class_command.__init__(self, parameters)  | 
                    |
| 55 | 
                        -	def compile_unix(self): return ("xelatex -output-directory=%s %s > /dev/null" % (self.parameters["output"], self.parameters["path"]))
                       | 
                    |
| 56 | 
                        -  | 
                    |
| 57 | 
                        -class class_command_php_compile(class_command):  | 
                    |
| 58 | 
                        - def __init__(self, parameters): class_command.__init__(self, parameters)  | 
                    |
| 59 | 
                        -	def compile_unix(self): return ("php %s > %s" % (self.parameters["path-from"], self.parameters["path-to"]))
                       | 
                    |
| 60 | 
                        -  | 
                    |
| 61 | 
                        -class class_command_lessc_compile(class_command):  | 
                    |
| 62 | 
                        - def __init__(self, parameters): class_command.__init__(self, parameters)  | 
                    |
| 63 | 
                        -	def compile_unix(self): return ("lessc %s > %s" % (self.parameters["path-from"], self.parameters["path-to"]))
                       | 
                    |
| 64 | 
                        -  | 
                    |
| 65 | 
                        -  | 
                    |
| 66 | 
                        -  | 
                    |
| 67 | 
                        -def main():  | 
                    |
| 68 | 
                        -  | 
                    |
| 69 | 
                        -	dirs = {
                       | 
                    |
| 70 | 
                        - "source": "source",  | 
                    |
| 71 | 
                        - "temp": "temp",  | 
                    |
| 72 | 
                        - "build": "build",  | 
                    |
| 73 | 
                        - }  | 
                    |
| 74 | 
                        -  | 
                    |
| 75 | 
                        - parts_logic_server = [  | 
                    |
| 76 | 
                        - os.path.join(dirs["source"],"logic","server","misc.php"),  | 
                    |
| 77 | 
                        - os.path.join(dirs["source"],"logic","server","data.php"),  | 
                    |
| 78 | 
                        - os.path.join(dirs["source"],"logic","server","settings.php"),  | 
                    |
| 79 | 
                        - os.path.join(dirs["source"],"logic","server","table.php"),  | 
                    |
| 80 | 
                        - os.path.join(dirs["source"],"logic","server","sql.php"),  | 
                    |
| 81 | 
                        - ]  | 
                    |
| 82 | 
                        -  | 
                    |
| 83 | 
                        - parts_content = [  | 
                    |
| 84 | 
                        - os.path.join(dirs["source"],"content","draft.html.php"),  | 
                    |
| 85 | 
                        - os.path.join(dirs["source"],"content","meta.html.php"),  | 
                    |
| 86 | 
                        - os.path.join(dirs["source"],"content","introduction.html.php"),  | 
                    |
| 87 | 
                        - os.path.join(dirs["source"],"content","preface.html.php"),  | 
                    |
| 88 | 
                        - os.path.join(dirs["source"],"content","key_parameters.html.php"),  | 
                    |
| 89 | 
                        - os.path.join(dirs["source"],"content","toc.html.php"),  | 
                    |
| 90 | 
                        - os.path.join(dirs["source"],"content","basics.html.php"),  | 
                    |
| 91 | 
                        - os.path.join(dirs["source"],"content","phonology_and_orthography.html.php"),  | 
                    |
| 92 | 
                        - os.path.join(dirs["source"],"content","grammar.html.php"),  | 
                    |
| 93 | 
                        - os.path.join(dirs["source"],"content","personal_pronouns.html.php"),  | 
                    |
| 94 | 
                        - os.path.join(dirs["source"],"content","correlatives.html.php"),  | 
                    |
| 95 | 
                        - os.path.join(dirs["source"],"content","conjugation.html.php"),  | 
                    |
| 96 | 
                        - os.path.join(dirs["source"],"content","infinite_verbforms.html.php"),  | 
                    |
| 97 | 
                        - os.path.join(dirs["source"],"content","modal_verbs.html.php"),  | 
                    |
| 98 | 
                        - os.path.join(dirs["source"],"content","tempora_and_modi.html.php"),  | 
                    |
| 99 | 
                        - os.path.join(dirs["source"],"content","negation.html.php"),  | 
                    |
| 100 | 
                        - os.path.join(dirs["source"],"content","declension.html.php"),  | 
                    |
| 101 | 
                        - os.path.join(dirs["source"],"content","numeri.html.php"),  | 
                    |
| 102 | 
                        - os.path.join(dirs["source"],"content","cases.html.php"),  | 
                    |
| 103 | 
                        - os.path.join(dirs["source"],"content","definiteness.html.php"),  | 
                    |
| 104 | 
                        - os.path.join(dirs["source"],"content","attributes.html.php"),  | 
                    |
| 105 | 
                        - os.path.join(dirs["source"],"content","sentence_structure.html.php"),  | 
                    |
| 106 | 
                        - os.path.join(dirs["source"],"content","vocabulary.html.php"),  | 
                    |
| 107 | 
                        - os.path.join(dirs["source"],"content","principles.html.php"),  | 
                    |
| 108 | 
                        - os.path.join(dirs["source"],"content","word_functions.html.php"),  | 
                    |
| 109 | 
                        - os.path.join(dirs["source"],"content","adpositions.html.php"),  | 
                    |
| 110 | 
                        - os.path.join(dirs["source"],"content","pronouns.html.php"),  | 
                    |
| 111 | 
                        - os.path.join(dirs["source"],"content","dictionary.html.php"),  | 
                    |
| 112 | 
                        - os.path.join(dirs["source"],"content","examples.html.php"),  | 
                    |
| 113 | 
                        - os.path.join(dirs["source"],"content","example_sentences.html.php"),  | 
                    |
| 114 | 
                        - os.path.join(dirs["source"],"content","example_texts.html.php"),  | 
                    |
| 115 | 
                        - ]  | 
                    |
| 116 | 
                        -  | 
                    |
| 117 | 
                        - parts_data = [  | 
                    |
| 118 | 
                        - os.path.join(dirs["source"],"data","phonology_and_orthography.json"),  | 
                    |
| 119 | 
                        - os.path.join(dirs["source"],"data","personal_pronouns.json"),  | 
                    |
| 120 | 
                        - os.path.join(dirs["source"],"data","word_functions.json"),  | 
                    |
| 121 | 
                        - os.path.join(dirs["source"],"data","timeforms.json"),  | 
                    |
| 122 | 
                        - os.path.join(dirs["source"],"data","adpositions.json"),  | 
                    |
| 123 | 
                        - os.path.join(dirs["source"],"data","correlatives.json"),  | 
                    |
| 124 | 
                        - ]  | 
                    |
| 125 | 
                        -  | 
                    |
| 126 | 
                        - parts_logic_client = [  | 
                    |
| 127 | 
                        - os.path.join(dirs["source"],"logic","client","tools.js"),  | 
                    |
| 128 | 
                        - os.path.join(dirs["source"],"logic","client","table.js"),  | 
                    |
| 129 | 
                        - os.path.join(dirs["source"],"logic","client","toc.js"),  | 
                    |
| 130 | 
                        - os.path.join(dirs["source"],"logic","client","main.js"),  | 
                    |
| 131 | 
                        - ]  | 
                    |
| 132 | 
                        -  | 
                    |
| 133 | 
                        - parts_style = [  | 
                    |
| 134 | 
                        - os.path.join(dirs["source"],"style","functions.less"),  | 
                    |
| 135 | 
                        - os.path.join(dirs["source"],"style","theme.less"),  | 
                    |
| 136 | 
                        - os.path.join(dirs["source"],"style","common.less"),  | 
                    |
| 137 | 
                        - os.path.join(dirs["source"],"style","concrete.less"),  | 
                    |
| 138 | 
                        - ]  | 
                    |
| 139 | 
                        -  | 
                    |
| 140 | 
                        - rules = []  | 
                    |
| 141 | 
                        - rules.append(  | 
                    |
| 142 | 
                        - class_rule(  | 
                    |
| 143 | 
                        - "all",  | 
                    |
| 144 | 
                        - [  | 
                    |
| 145 | 
                        - os.path.join(dirs["build"],"draft.html"),  | 
                    |
| 146 | 
                        - os.path.join(dirs["build"],"draft.css"),  | 
                    |
| 147 | 
                        - os.path.join(dirs["build"],"draft.js"),  | 
                    |
| 148 | 
                        - os.path.join(dirs["build"],"logo.svg"),  | 
                    |
| 149 | 
                        - os.path.join(dirs["build"],"favicon.png"),  | 
                    |
| 150 | 
                        - ],  | 
                    |
| 151 | 
                        - [],  | 
                    |
| 152 | 
                        - True  | 
                    |
| 153 | 
                        - )  | 
                    |
| 154 | 
                        - )  | 
                    |
| 155 | 
                        - rules.append(  | 
                    |
| 156 | 
                        - class_rule(  | 
                    |
| 157 | 
                        - "clean",  | 
                    |
| 158 | 
                        - [],  | 
                    |
| 159 | 
                        - [  | 
                    |
| 160 | 
                        -				class_command_directory_remove({
                       | 
                    |
| 161 | 
                        - "path": dirs["temp"],  | 
                    |
| 162 | 
                        - }),  | 
                    |
| 163 | 
                        - ],  | 
                    |
| 164 | 
                        - True  | 
                    |
| 165 | 
                        - )  | 
                    |
| 166 | 
                        - )  | 
                    |
| 167 | 
                        - rules.append(  | 
                    |
| 168 | 
                        - class_rule(  | 
                    |
| 169 | 
                        - "clear",  | 
                    |
| 170 | 
                        - ["clean"],  | 
                    |
| 171 | 
                        - [  | 
                    |
| 172 | 
                        -				class_command_directory_remove({
                       | 
                    |
| 173 | 
                        - "path": dirs["build"],  | 
                    |
| 174 | 
                        - }),  | 
                    |
| 175 | 
                        - ],  | 
                    |
| 176 | 
                        - True  | 
                    |
| 177 | 
                        - )  | 
                    |
| 178 | 
                        - )  | 
                    |
| 179 | 
                        - rules.append(  | 
                    |
| 180 | 
                        - class_rule(  | 
                    |
| 181 | 
                        - os.path.join(dirs["build"],"draft.html"),  | 
                    |
| 182 | 
                        - parts_data + parts_logic_server + parts_content,  | 
                    |
| 183 | 
                        - [  | 
                    |
| 184 | 
                        -				class_command_log({
                       | 
                    |
| 185 | 
                        - "message": "composing document ..."  | 
                    |
| 186 | 
                        - }),  | 
                    |
| 187 | 
                        -				class_command_directory_create({
                       | 
                    |
| 188 | 
                        - "path": dirs["build"],  | 
                    |
| 189 | 
                        - }),  | 
                    |
| 190 | 
                        -				class_command_php_compile({
                       | 
                    |
| 191 | 
                        - "path-from": os.path.join(dirs["source"],"content","draft.html.php"),  | 
                    |
| 192 | 
                        - "path-to": os.path.join(dirs["build"],"draft.html"),  | 
                    |
| 193 | 
                        - }),  | 
                    |
| 194 | 
                        - ]  | 
                    |
| 195 | 
                        - )  | 
                    |
| 196 | 
                        - )  | 
                    |
| 197 | 
                        - rules.append(  | 
                    |
| 198 | 
                        - class_rule(  | 
                    |
| 199 | 
                        - os.path.join(dirs["build"],"draft.js"),  | 
                    |
| 200 | 
                        - parts_logic_client,  | 
                    |
| 201 | 
                        - [  | 
                    |
| 202 | 
                        -				class_command_log({
                       | 
                    |
| 203 | 
                        - "message": "composing client-logic ..."  | 
                    |
| 204 | 
                        - }),  | 
                    |
| 205 | 
                        -				class_command_directory_create({
                       | 
                    |
| 206 | 
                        - "path": dirs["build"],  | 
                    |
| 207 | 
                        - }),  | 
                    |
| 208 | 
                        -				class_command_file_concat({
                       | 
                    |
| 209 | 
                        - "paths-from": parts_logic_client,  | 
                    |
| 210 | 
                        - "path-to": os.path.join(dirs["build"],"draft.js"),  | 
                    |
| 211 | 
                        - }),  | 
                    |
| 212 | 
                        - ]  | 
                    |
| 213 | 
                        - )  | 
                    |
| 214 | 
                        - )  | 
                    |
| 215 | 
                        - rules.append(  | 
                    |
| 216 | 
                        - class_rule(  | 
                    |
| 217 | 
                        - os.path.join(dirs["build"],"logo.svg"),  | 
                    |
| 218 | 
                        - [os.path.join(dirs["source"],"media","logo.svg")],  | 
                    |
| 219 | 
                        - [  | 
                    |
| 220 | 
                        -				class_command_log({
                       | 
                    |
| 221 | 
                        - "message": "copying logo ..."  | 
                    |
| 222 | 
                        - }),  | 
                    |
| 223 | 
                        -				class_command_directory_create({
                       | 
                    |
| 224 | 
                        - "path": dirs["build"],  | 
                    |
| 225 | 
                        - }),  | 
                    |
| 226 | 
                        -				class_command_file_copy({
                       | 
                    |
| 227 | 
                        - "path-from": os.path.join(dirs["source"],"media","logo.svg"),  | 
                    |
| 228 | 
                        - "path-to": os.path.join(dirs["build"],"logo.svg"),  | 
                    |
| 229 | 
                        - }),  | 
                    |
| 230 | 
                        - ]  | 
                    |
| 231 | 
                        - )  | 
                    |
| 232 | 
                        - )  | 
                    |
| 233 | 
                        - rules.append(  | 
                    |
| 234 | 
                        - class_rule(  | 
                    |
| 235 | 
                        - os.path.join(dirs["build"],"favicon.png"),  | 
                    |
| 236 | 
                        - [os.path.join(dirs["source"],"media","folksprak_16x16.png")],  | 
                    |
| 237 | 
                        - [  | 
                    |
| 238 | 
                        -				class_command_log({
                       | 
                    |
| 239 | 
                        - "message": "copying favicon ..."  | 
                    |
| 240 | 
                        - }),  | 
                    |
| 241 | 
                        -				class_command_directory_create({
                       | 
                    |
| 242 | 
                        - "path": dirs["build"],  | 
                    |
| 243 | 
                        - }),  | 
                    |
| 244 | 
                        -				class_command_file_copy({
                       | 
                    |
| 245 | 
                        - "path-from": os.path.join(dirs["source"],"media","folksprak_16x16.png"),  | 
                    |
| 246 | 
                        - "path-to": os.path.join(dirs["build"],"favicon.png"),  | 
                    |
| 247 | 
                        - }),  | 
                    |
| 248 | 
                        - ]  | 
                    |
| 249 | 
                        - )  | 
                    |
| 250 | 
                        - )  | 
                    |
| 251 | 
                        - rules.append(  | 
                    |
| 252 | 
                        - class_rule(  | 
                    |
| 253 | 
                        - os.path.join(dirs["build"],"draft.css"),  | 
                    |
| 254 | 
                        - parts_style,  | 
                    |
| 255 | 
                        - [  | 
                    |
| 256 | 
                        -				class_command_log({
                       | 
                    |
| 257 | 
                        - "message": "compiling style ..."  | 
                    |
| 258 | 
                        - }),  | 
                    |
| 259 | 
                        -				class_command_directory_create({
                       | 
                    |
| 260 | 
                        - "path": os.path.join(dirs["temp"]),  | 
                    |
| 261 | 
                        - }),  | 
                    |
| 262 | 
                        -				class_command_file_concat({
                       | 
                    |
| 263 | 
                        - "paths-from": parts_style,  | 
                    |
| 264 | 
                        - "path-to": os.path.join(dirs["temp"],"draft.less"),  | 
                    |
| 265 | 
                        - }),  | 
                    |
| 266 | 
                        -				class_command_directory_create({
                       | 
                    |
| 267 | 
                        - "path": os.path.join(dirs["build"]),  | 
                    |
| 268 | 
                        - }),  | 
                    |
| 269 | 
                        -				class_command_lessc_compile({
                       | 
                    |
| 270 | 
                        - "path-from": os.path.join(dirs["temp"],"draft.less"),  | 
                    |
| 271 | 
                        - "path-to": os.path.join(dirs["build"],"draft.css"),  | 
                    |
| 272 | 
                        - }),  | 
                    |
| 273 | 
                        - ]  | 
                    |
| 274 | 
                        - )  | 
                    |
| 275 | 
                        - )  | 
                    |
| 276 | 
                        -  | 
                    |
| 277 | 
                        - for rule in rules: print(rule)  | 
                    |
| 278 | 
                        -	sys.stderr.write("\n[information]\tThe output of this script is meant to be redirected into a GNU-makefile\n")
                       | 
                    |
| 279 | 
                        -  | 
                    |
| 280 | 
                        -  | 
                    |
| 281 | 
                        -main()  | 
                    |
| 282 | 
                        -  | 
                    
| ... | ... | 
                      @@ -1,171 +0,0 @@  | 
                  
| 1 | 
                        -import os  | 
                    |
| 2 | 
                        -import sys  | 
                    |
| 3 | 
                        -  | 
                    |
| 4 | 
                        -  | 
                    |
| 5 | 
                        -class class_rule(object):  | 
                    |
| 6 | 
                        -  | 
                    |
| 7 | 
                        - def __init__(self, name, dependencies, commands, phony = False):  | 
                    |
| 8 | 
                        - self.name = name  | 
                    |
| 9 | 
                        - self.dependencies = dependencies  | 
                    |
| 10 | 
                        - self.commands = commands  | 
                    |
| 11 | 
                        - self.phony = phony  | 
                    |
| 12 | 
                        -  | 
                    |
| 13 | 
                        -  | 
                    |
| 14 | 
                        - def __str__(self):  | 
                    |
| 15 | 
                        - output = ""  | 
                    |
| 16 | 
                        - output += "%s: %s\n" % (self.name, " ".join(self.dependencies))  | 
                    |
| 17 | 
                        - for command in self.commands:  | 
                    |
| 18 | 
                        -			output += ("\t@ %s\n" % (command.compile_unix()))
                       | 
                    |
| 19 | 
                        -		if (self.phony): output += (".PHONY: %s\n" % self.name)
                       | 
                    |
| 20 | 
                        - return output  | 
                    |
| 21 | 
                        -  | 
                    |
| 22 | 
                        -  | 
                    |
| 23 | 
                        -  | 
                    |
| 24 | 
                        -class class_command(object):  | 
                    |
| 25 | 
                        - def __init__(self, parameters): self.parameters = parameters  | 
                    |
| 26 | 
                        - def compile_unix(self): raise NotImplementedError  | 
                    |
| 27 | 
                        - def compile_ant(self): raise NotImplementedError  | 
                    |
| 28 | 
                        -  | 
                    |
| 29 | 
                        -class class_command_log(class_command):  | 
                    |
| 30 | 
                        - def __init__(self, parameters): class_command.__init__(self, parameters)  | 
                    |
| 31 | 
                        -	def compile_unix(self): return ("echo -e '-- %s'" % (self.parameters["message"]))
                       | 
                    |
| 32 | 
                        -  | 
                    |
| 33 | 
                        -class class_command_directory_create(class_command):  | 
                    |
| 34 | 
                        - def __init__(self, parameters): class_command.__init__(self, parameters)  | 
                    |
| 35 | 
                        -	def compile_unix(self): return ("mkdir --parents %s" % (self.parameters["path"]))
                       | 
                    |
| 36 | 
                        -  | 
                    |
| 37 | 
                        -class class_command_file_copy(class_command):  | 
                    |
| 38 | 
                        - def __init__(self, parameters): class_command.__init__(self, parameters)  | 
                    |
| 39 | 
                        -	def compile_unix(self): return ("cp --recursive %s %s" % (self.parameters["path-from"], self.parameters["path-to"]))
                       | 
                    |
| 40 | 
                        -  | 
                    |
| 41 | 
                        -class class_command_directory_remove(class_command):  | 
                    |
| 42 | 
                        - def __init__(self, parameters): class_command.__init__(self, parameters)  | 
                    |
| 43 | 
                        -	def compile_unix(self): return ("rm --recursive --force %s" % (self.parameters["path"]))
                       | 
                    |
| 44 | 
                        -  | 
                    |
| 45 | 
                        -class class_command_image_convert(class_command):  | 
                    |
| 46 | 
                        - def __init__(self, parameters): class_command.__init__(self, parameters)  | 
                    |
| 47 | 
                        -	def compile_unix(self): return ("convert %s %s" % (self.parameters["path-from"], self.parameters["path-to"]))
                       | 
                    |
| 48 | 
                        -  | 
                    |
| 49 | 
                        -class class_command_latex_compile(class_command):  | 
                    |
| 50 | 
                        - def __init__(self, parameters): class_command.__init__(self, parameters)  | 
                    |
| 51 | 
                        -	def compile_unix(self): return ("xelatex -output-directory=%s %s > /dev/null" % (self.parameters["output"], self.parameters["path"]))
                       | 
                    |
| 52 | 
                        -  | 
                    |
| 53 | 
                        -  | 
                    |
| 54 | 
                        -  | 
                    |
| 55 | 
                        -def main():  | 
                    |
| 56 | 
                        -  | 
                    |
| 57 | 
                        -	dirs = {
                       | 
                    |
| 58 | 
                        - "source": "source",  | 
                    |
| 59 | 
                        - "temp": "temp",  | 
                    |
| 60 | 
                        - "build": "build",  | 
                    |
| 61 | 
                        - }  | 
                    |
| 62 | 
                        -  | 
                    |
| 63 | 
                        - texs = [  | 
                    |
| 64 | 
                        - os.path.join(dirs["source"],"tex","folksprak.tex"),  | 
                    |
| 65 | 
                        - os.path.join(dirs["source"],"tex","packages.tex"),  | 
                    |
| 66 | 
                        - os.path.join(dirs["source"],"tex","settings.tex"),  | 
                    |
| 67 | 
                        - os.path.join(dirs["source"],"tex","meta.tex"),  | 
                    |
| 68 | 
                        - os.path.join(dirs["source"],"tex","commands.tex"),  | 
                    |
| 69 | 
                        - os.path.join(dirs["source"],"tex","preface.tex"),  | 
                    |
| 70 | 
                        - os.path.join(dirs["source"],"tex","grammar.tex"),  | 
                    |
| 71 | 
                        - os.path.join(dirs["source"],"tex","phonology_and_orthography.tex"),  | 
                    |
| 72 | 
                        - os.path.join(dirs["source"],"tex","conjugation.tex"),  | 
                    |
| 73 | 
                        - os.path.join(dirs["source"],"tex","declension.tex"),  | 
                    |
| 74 | 
                        - os.path.join(dirs["source"],"tex","attributes.tex"),  | 
                    |
| 75 | 
                        - ]  | 
                    |
| 76 | 
                        -  | 
                    |
| 77 | 
                        - rules = []  | 
                    |
| 78 | 
                        - rules.append(  | 
                    |
| 79 | 
                        - class_rule(  | 
                    |
| 80 | 
                        - "all",  | 
                    |
| 81 | 
                        - [os.path.join(dirs["build"],"folksprak.pdf")],  | 
                    |
| 82 | 
                        - [],  | 
                    |
| 83 | 
                        - True  | 
                    |
| 84 | 
                        - )  | 
                    |
| 85 | 
                        - )  | 
                    |
| 86 | 
                        - rules.append(  | 
                    |
| 87 | 
                        - class_rule(  | 
                    |
| 88 | 
                        - "clean",  | 
                    |
| 89 | 
                        - [],  | 
                    |
| 90 | 
                        - [  | 
                    |
| 91 | 
                        -				class_command_directory_remove({
                       | 
                    |
| 92 | 
                        - "path": dirs["temp"],  | 
                    |
| 93 | 
                        - }),  | 
                    |
| 94 | 
                        - ],  | 
                    |
| 95 | 
                        - True  | 
                    |
| 96 | 
                        - )  | 
                    |
| 97 | 
                        - )  | 
                    |
| 98 | 
                        - rules.append(  | 
                    |
| 99 | 
                        - class_rule(  | 
                    |
| 100 | 
                        - "clear",  | 
                    |
| 101 | 
                        - ["clean"],  | 
                    |
| 102 | 
                        - [  | 
                    |
| 103 | 
                        -				class_command_directory_remove({
                       | 
                    |
| 104 | 
                        - "path": dirs["build"],  | 
                    |
| 105 | 
                        - }),  | 
                    |
| 106 | 
                        - ],  | 
                    |
| 107 | 
                        - True  | 
                    |
| 108 | 
                        - )  | 
                    |
| 109 | 
                        - )  | 
                    |
| 110 | 
                        - rules.append(  | 
                    |
| 111 | 
                        - class_rule(  | 
                    |
| 112 | 
                        - os.path.join(dirs["temp"],"media","logo.pdf"),  | 
                    |
| 113 | 
                        - [os.path.join(dirs["source"],"media","logo.svg")],  | 
                    |
| 114 | 
                        - [  | 
                    |
| 115 | 
                        -				class_command_log({
                       | 
                    |
| 116 | 
                        - "message": "converting logo ..."  | 
                    |
| 117 | 
                        - }),  | 
                    |
| 118 | 
                        -				class_command_directory_create({
                       | 
                    |
| 119 | 
                        - "path": os.path.join(dirs["temp"],"media"),  | 
                    |
| 120 | 
                        - }),  | 
                    |
| 121 | 
                        -				class_command_image_convert({
                       | 
                    |
| 122 | 
                        - "path-from": os.path.join(dirs["source"],"media","logo.svg"),  | 
                    |
| 123 | 
                        - "path-to": os.path.join(dirs["temp"],"media","logo.pdf"),  | 
                    |
| 124 | 
                        - }),  | 
                    |
| 125 | 
                        - ]  | 
                    |
| 126 | 
                        - )  | 
                    |
| 127 | 
                        - )  | 
                    |
| 128 | 
                        - rules.append(  | 
                    |
| 129 | 
                        - class_rule(  | 
                    |
| 130 | 
                        - os.path.join(dirs["temp"],"folksprak.pdf"),  | 
                    |
| 131 | 
                        - texs + [os.path.join(dirs["temp"],"media","logo.pdf")],  | 
                    |
| 132 | 
                        - [  | 
                    |
| 133 | 
                        -				class_command_log({
                       | 
                    |
| 134 | 
                        - "message": "compiling document ..."  | 
                    |
| 135 | 
                        - }),  | 
                    |
| 136 | 
                        -				class_command_directory_create({
                       | 
                    |
| 137 | 
                        - "path": dirs["temp"],  | 
                    |
| 138 | 
                        - }),  | 
                    |
| 139 | 
                        -				class_command_latex_compile({
                       | 
                    |
| 140 | 
                        - "path": os.path.join(dirs["source"],"tex","folksprak.tex"),  | 
                    |
| 141 | 
                        - "output": os.path.join(dirs["temp"]),  | 
                    |
| 142 | 
                        - }),  | 
                    |
| 143 | 
                        -				class_command_latex_compile({
                       | 
                    |
| 144 | 
                        - "path": os.path.join(dirs["source"],"tex","folksprak.tex"),  | 
                    |
| 145 | 
                        - "output": os.path.join(dirs["temp"]),  | 
                    |
| 146 | 
                        - }),  | 
                    |
| 147 | 
                        - ]  | 
                    |
| 148 | 
                        - )  | 
                    |
| 149 | 
                        - )  | 
                    |
| 150 | 
                        - rules.append(  | 
                    |
| 151 | 
                        - class_rule(  | 
                    |
| 152 | 
                        - os.path.join(dirs["build"],"folksprak.pdf"),  | 
                    |
| 153 | 
                        - [os.path.join(dirs["temp"],"folksprak.pdf")],  | 
                    |
| 154 | 
                        - [  | 
                    |
| 155 | 
                        -				class_command_directory_create({
                       | 
                    |
| 156 | 
                        - "path": os.path.join(dirs["build"]),  | 
                    |
| 157 | 
                        - }),  | 
                    |
| 158 | 
                        -				class_command_file_copy({
                       | 
                    |
| 159 | 
                        - "path-from": os.path.join(dirs["temp"],"folksprak.pdf"),  | 
                    |
| 160 | 
                        - "path-to": os.path.join(dirs["build"],"folksprak.pdf"),  | 
                    |
| 161 | 
                        - }),  | 
                    |
| 162 | 
                        - ]  | 
                    |
| 163 | 
                        - )  | 
                    |
| 164 | 
                        - )  | 
                    |
| 165 | 
                        -  | 
                    |
| 166 | 
                        - for rule in rules: print(rule)  | 
                    |
| 167 | 
                        -	sys.stderr.write("\n[information]\tThe output of this script is meant to be redirected into a GNU-makefile\n")
                       | 
                    |
| 168 | 
                        -  | 
                    |
| 169 | 
                        -  | 
                    |
| 170 | 
                        -main()  | 
                    |
| 171 | 
                        -  | 
                    
| ... | ... | 
                      @@ -1,38 +0,0 @@  | 
                  
| 1 | 
                        -all: build/draft.html build/draft.css build/draft.js build/logo.svg build/favicon.png  | 
                    |
| 2 | 
                        -.PHONY: all  | 
                    |
| 3 | 
                        -  | 
                    |
| 4 | 
                        -clean:  | 
                    |
| 5 | 
                        - @ rm --recursive --force temp  | 
                    |
| 6 | 
                        -.PHONY: clean  | 
                    |
| 7 | 
                        -  | 
                    |
| 8 | 
                        -clear: clean  | 
                    |
| 9 | 
                        - @ rm --recursive --force build  | 
                    |
| 10 | 
                        -.PHONY: clear  | 
                    |
| 11 | 
                        -  | 
                    |
| 12 | 
                        -build/draft.html: source/data/phonology_and_orthography.json source/data/personal_pronouns.json source/data/word_functions.json source/data/timeforms.json source/data/adpositions.json source/data/correlatives.json source/logic/server/misc.php source/logic/server/data.php source/logic/server/settings.php source/logic/server/table.php source/logic/server/sql.php source/content/draft.html.php source/content/meta.html.php source/content/introduction.html.php source/content/preface.html.php source/content/key_parameters.html.php source/content/toc.html.php source/content/basics.html.php source/content/phonology_and_orthography.html.php source/content/grammar.html.php source/content/personal_pronouns.html.php source/content/correlatives.html.php source/content/conjugation.html.php source/content/infinite_verbforms.html.php source/content/modal_verbs.html.php source/content/tempora_and_modi.html.php source/content/negation.html.php source/content/declension.html.php source/content/numeri.html.php source/content/cases.html.php source/content/definiteness.html.php source/content/attributes.html.php source/content/sentence_structure.html.php source/content/vocabulary.html.php source/content/principles.html.php source/content/word_functions.html.php source/content/adpositions.html.php source/content/pronouns.html.php source/content/dictionary.html.php source/content/examples.html.php source/content/example_sentences.html.php source/content/example_texts.html.php  | 
                    |
| 13 | 
                        - @ echo -e '-- composing document ...'  | 
                    |
| 14 | 
                        - @ mkdir --parents build  | 
                    |
| 15 | 
                        - @ php source/content/draft.html.php > build/draft.html  | 
                    |
| 16 | 
                        -  | 
                    |
| 17 | 
                        -build/draft.js: source/logic/client/tools.js source/logic/client/table.js source/logic/client/toc.js source/logic/client/main.js  | 
                    |
| 18 | 
                        - @ echo -e '-- composing client-logic ...'  | 
                    |
| 19 | 
                        - @ mkdir --parents build  | 
                    |
| 20 | 
                        - @ cat source/logic/client/tools.js source/logic/client/table.js source/logic/client/toc.js source/logic/client/main.js > build/draft.js  | 
                    |
| 21 | 
                        -  | 
                    |
| 22 | 
                        -build/logo.svg: source/media/logo.svg  | 
                    |
| 23 | 
                        - @ echo -e '-- copying logo ...'  | 
                    |
| 24 | 
                        - @ mkdir --parents build  | 
                    |
| 25 | 
                        - @ cp --recursive source/media/logo.svg build/logo.svg  | 
                    |
| 26 | 
                        -  | 
                    |
| 27 | 
                        -build/favicon.png: source/media/folksprak_16x16.png  | 
                    |
| 28 | 
                        - @ echo -e '-- copying favicon ...'  | 
                    |
| 29 | 
                        - @ mkdir --parents build  | 
                    |
| 30 | 
                        - @ cp --recursive source/media/folksprak_16x16.png build/favicon.png  | 
                    |
| 31 | 
                        -  | 
                    |
| 32 | 
                        -build/draft.css: source/style/functions.less source/style/theme.less source/style/common.less source/style/concrete.less  | 
                    |
| 33 | 
                        - @ echo -e '-- compiling style ...'  | 
                    |
| 34 | 
                        - @ mkdir --parents temp  | 
                    |
| 35 | 
                        - @ cat source/style/functions.less source/style/theme.less source/style/common.less source/style/concrete.less > temp/draft.less  | 
                    |
| 36 | 
                        - @ mkdir --parents build  | 
                    |
| 37 | 
                        - @ lessc temp/draft.less > build/draft.css  | 
                    |
| 38 | 
                        -  | 
                    
| ... | ... | 
                      @@ -0,0 +1,103 @@  | 
                  
| 1 | 
                        +{
                       | 
                    |
| 2 | 
                        + "name": "fs-draft",  | 
                    |
| 3 | 
                        + "version": "0.0.1",  | 
                    |
| 4 | 
                        +	"roottask": {
                       | 
                    |
| 5 | 
                        + "name": "build",  | 
                    |
| 6 | 
                        + "type": "group",  | 
                    |
| 7 | 
                        + "sub": [  | 
                    |
| 8 | 
                        +			{
                       | 
                    |
| 9 | 
                        + "name": "structure",  | 
                    |
| 10 | 
                        + "type": "php",  | 
                    |
| 11 | 
                        +				"parameters": {
                       | 
                    |
| 12 | 
                        + "inputs": [  | 
                    |
| 13 | 
                        + "source/content/draft.html.php",  | 
                    |
| 14 | 
                        + "source/data/phonology_and_orthography.json",  | 
                    |
| 15 | 
                        + "source/data/personal_pronouns.json",  | 
                    |
| 16 | 
                        + "source/data/word_functions.json",  | 
                    |
| 17 | 
                        + "source/data/timeforms.json",  | 
                    |
| 18 | 
                        + "source/data/adpositions.json",  | 
                    |
| 19 | 
                        + "source/data/correlatives.json",  | 
                    |
| 20 | 
                        + "source/logic/server/misc.php",  | 
                    |
| 21 | 
                        + "source/logic/server/data.php",  | 
                    |
| 22 | 
                        + "source/logic/server/settings.php",  | 
                    |
| 23 | 
                        + "source/logic/server/table.php",  | 
                    |
| 24 | 
                        + "source/logic/server/sql.php",  | 
                    |
| 25 | 
                        + "source/content/meta.html.php",  | 
                    |
| 26 | 
                        + "source/content/introduction.html.php",  | 
                    |
| 27 | 
                        + "source/content/preface.html.php",  | 
                    |
| 28 | 
                        + "source/content/key_parameters.html.php",  | 
                    |
| 29 | 
                        + "source/content/toc.html.php",  | 
                    |
| 30 | 
                        + "source/content/basics.html.php",  | 
                    |
| 31 | 
                        + "source/content/phonology_and_orthography.html.php",  | 
                    |
| 32 | 
                        + "source/content/grammar.html.php",  | 
                    |
| 33 | 
                        + "source/content/personal_pronouns.html.php",  | 
                    |
| 34 | 
                        + "source/content/correlatives.html.php",  | 
                    |
| 35 | 
                        + "source/content/conjugation.html.php",  | 
                    |
| 36 | 
                        + "source/content/infinite_verbforms.html.php",  | 
                    |
| 37 | 
                        + "source/content/modal_verbs.html.php",  | 
                    |
| 38 | 
                        + "source/content/tempora_and_modi.html.php",  | 
                    |
| 39 | 
                        + "source/content/negation.html.php",  | 
                    |
| 40 | 
                        + "source/content/declension.html.php",  | 
                    |
| 41 | 
                        + "source/content/numeri.html.php",  | 
                    |
| 42 | 
                        + "source/content/cases.html.php",  | 
                    |
| 43 | 
                        + "source/content/definiteness.html.php",  | 
                    |
| 44 | 
                        + "source/content/attributes.html.php",  | 
                    |
| 45 | 
                        + "source/content/sentence_structure.html.php",  | 
                    |
| 46 | 
                        + "source/content/vocabulary.html.php",  | 
                    |
| 47 | 
                        + "source/content/principles.html.php",  | 
                    |
| 48 | 
                        + "source/content/word_functions.html.php",  | 
                    |
| 49 | 
                        + "source/content/adpositions.html.php",  | 
                    |
| 50 | 
                        + "source/content/pronouns.html.php",  | 
                    |
| 51 | 
                        + "source/content/dictionary.html.php",  | 
                    |
| 52 | 
                        + "source/content/examples.html.php",  | 
                    |
| 53 | 
                        + "source/content/example_sentences.html.php",  | 
                    |
| 54 | 
                        + "source/content/example_texts.html.php"  | 
                    |
| 55 | 
                        + ],  | 
                    |
| 56 | 
                        + "output": "build/draft.html",  | 
                    |
| 57 | 
                        + "only_first": true  | 
                    |
| 58 | 
                        + }  | 
                    |
| 59 | 
                        + },  | 
                    |
| 60 | 
                        +			{
                       | 
                    |
| 61 | 
                        + "name": "logic",  | 
                    |
| 62 | 
                        + "type": "concat",  | 
                    |
| 63 | 
                        +				"parameters": {
                       | 
                    |
| 64 | 
                        + "inputs": [  | 
                    |
| 65 | 
                        + "source/logic/client/tools.js",  | 
                    |
| 66 | 
                        + "source/logic/client/table.js",  | 
                    |
| 67 | 
                        + "source/logic/client/toc.js",  | 
                    |
| 68 | 
                        + "source/logic/client/main.js"  | 
                    |
| 69 | 
                        + ],  | 
                    |
| 70 | 
                        + "output": "build/draft.js"  | 
                    |
| 71 | 
                        + }  | 
                    |
| 72 | 
                        + },  | 
                    |
| 73 | 
                        +			{
                       | 
                    |
| 74 | 
                        + "name": "style",  | 
                    |
| 75 | 
                        + "type": "lesscss",  | 
                    |
| 76 | 
                        +				"parameters": {
                       | 
                    |
| 77 | 
                        + "inputs": [  | 
                    |
| 78 | 
                        + "source/style/functions.less",  | 
                    |
| 79 | 
                        + "source/style/theme.less",  | 
                    |
| 80 | 
                        + "source/style/common.less",  | 
                    |
| 81 | 
                        + "source/style/concrete.less"  | 
                    |
| 82 | 
                        + ],  | 
                    |
| 83 | 
                        + "output": "build/draft.css"  | 
                    |
| 84 | 
                        + }  | 
                    |
| 85 | 
                        + },  | 
                    |
| 86 | 
                        +			{
                       | 
                    |
| 87 | 
                        + "name": "media",  | 
                    |
| 88 | 
                        + "type": "group",  | 
                    |
| 89 | 
                        + "sub": [  | 
                    |
| 90 | 
                        +					{
                       | 
                    |
| 91 | 
                        + "name": "logo",  | 
                    |
| 92 | 
                        + "type": "copy",  | 
                    |
| 93 | 
                        +						"parameters": {
                       | 
                    |
| 94 | 
                        + "input": "source/media/logo.svg",  | 
                    |
| 95 | 
                        + "output": "build/logo.svg"  | 
                    |
| 96 | 
                        + }  | 
                    |
| 97 | 
                        + }  | 
                    |
| 98 | 
                        + ]  | 
                    |
| 99 | 
                        + }  | 
                    |
| 100 | 
                        + ]  | 
                    |
| 101 | 
                        + }  | 
                    |
| 102 | 
                        +}  | 
                    |
| 103 | 
                        +  | 
                    
| ... | ... | 
                      @@ -3,12 +3,12 @@  | 
                  
| 3 | 3 | 
                        <section class="subsection pseudo" id="de_grot_diktator">  | 
                    
| 4 | 4 | 
                        <header>De grot diktator</header>  | 
                    
| 5 | 5 | 
                        <span class="text lang_fs">  | 
                    
| 6 | 
                        - <p>Ek bid fur fargivung, dok ek vil nit are de verlds herskar — ek ar nit solk en man. Ek vil nit beherske odar neddrüke et man, insted ek vil helpe de maner alvan önd alvar: De judisk, de hejdisk, de fargig, de vit, …. Vi al skal helpe en de ander fur at vi kön leve ine en beter verld. Vi vil nit hate odar farakte us. Dis verld hav plats fur al maner önd ur erd ar so rik, at vi al kön spise nok. De levrid kön are so fri önd skön; dok vi hav farlatet de veg.</p>  | 
                    |
| 7 | 
                        - <p>Gridhed hav sükent de maners seler önd hav fült de verld med hatrid; het hav ledet us to elend önd blutsketrid. Vi hav utvikelt raskhed, dok ur gester stan stil. Vi lat makiner verke fur us; ur vetrid hav makt us hokmudig önd ur klughed hard önd unfrendlik; vi denk altu mang önd föl altu lit. Dok mer den makiner vi treng manlikhed; mer den klughed vi treng frendlikhed önd gudhed. An dis egenheder, ur levrid ar frükridig önd al ding ar lost.</p>  | 
                    |
| 8 | 
                        - <p>Med de helprid av flütüger önd de radio vi ar narer en to de ander den et tid ruk. De manskap treng enhed önd en alvar arend bruderlikhed fur tu bruke dis utfindunger gud. Selv no mang tused in der verld kön höre min stem, mang tusend fartvivelt verer, kviner önd smal kinder — ofarunger av en sistem, vilk fang önd kvel unskuldig maner. Ek rup to al, vilk kön hör mig no: Fartvivel nit! De elend skal farsvinde, van de gridhed farsvind önd de biterhed av maner, vilk frük de manskaps forskritrid. De Maners hatrid skal farsvinde önd diktarorer skal döe. Dan de kraft, vilk di hav takt fra de folk, skal kome bak to de folk. Selv ef mang blud ar sketet: Tu kempe fur de frihed ar en gud sak.</p>  | 
                    |
| 9 | 
                        - <p>Kemparer: Kemp nit fur tiraner; maner, vilk farakt ju önd mak ju to sklaver; vilk vertskat nit jur levrid, vilk seg to ju, vat je skal make, true önd föle! Di skend ju, föd ju, behandel ju lik kanon-födung. Kemp nit fur dis fardervt maner — makin-maner med makin-hövder önd makin-herter! Je ar nit makiner, je ar nit direr, je ar maner. Lat de manlikhed blive ine jur herter! Je skal nit hate; bar de unlivt hat, de unlivt önd de fardervt.</p>  | 
                    |
| 10 | 
                        - <p>Kemperar: Kemp nit fur de sklavskap! Kemp fur de frihed! Ine de 17. avsnidung av de hajlig Lukas ar skrivt: ‚God ar ine al maner.‘ — nit bar ine en grup av maner, insted ine al maner, ine ju. Je, de folk, hav de kraft; de kraft fur tu bue vapener, dok ok de kraft fur tu sprede gladhed. Je, de folk, hav de kraft fur tu make dis levrid fri önd skön, fur tu make dis levrid en vunderfült sak. Darfur: Ine de nam av folkherskrid: Lat us bruke dis kraft! Lat us verde en! Lat us kempe fur en nü verld, fur en beter verld, vilk giv to de maner magrid tu verke, vilk giv en eftertid to de jung önd sikerhed to de old. Ok de tiraner hav truent dis to us fur tu foe de vold, dok di hav lügt. Di mak nit sant dir luvung, di ing tid vil. Tiraner frien bar dim selv, dok de folk skal blive sklaver.</p>  | 
                    |
| 11 | 
                        - <p>Lat us no kempe fur tu upfüle dis luvung. Lat us kempe fur tu make de verld fri, fur tu uvervinde landmarker, gridhed, hatrid önd de untillatrid. Lat us kempe fur en verld med farstanrid, en verld, var vetridskap önd forskritrid skal lede to al mans gladhed.</p>  | 
                    |
| 6 | 
                        + <p>Ek bid fur fargivung, dok ek vil nit are de verlds herskar — ek ar nit solk en man. Ek vil nit beherske odar neddrüke et man, insted ek vil helpe de maner alvan and alvar: De judisk, de hejdisk, de fargig, de vit, …. Vi al skal helpe en de ander fur at vi kön leve ine en beter verld. Vi vil nit hate odar farakte us. Dis verld hav plats fur al maner and ur erd ar so rik, at vi al kön spise nok. De levrid kön are so fri and skön; dok vi hav farlatet de veg.</p>  | 
                    |
| 7 | 
                        + <p>Gridhed hav sükent de maners seler and hav fült de verld med hatrid; hit hav ledet us to elend and blutsketrid. Vi hav utvikelt raskhed, dok ur gester stan stil. Vi lat makiner verke fur us; ur vetrid hav makt us hokmudig and ur klughed hard and unfrendlik; vi denk altu mang and föl altu lit. Dok mer den makiner vi treng manlikhed; mer den klughed vi treng frendlikhed and gudhed. An dis egenheder, ur levrid ar frükridig and al ding ar lost.</p>  | 
                    |
| 8 | 
                        + <p>Med de helprid av flügtüger and de radio vi ar narer en to de ander den et tid ruk. De manskap treng enhed and en alvar arend bruderlikhed fur tu bruke dis utfindunger gud. Selv no mang tused in der verld kön höre min stem, mang tusend fartvivelt verer, kviner and smal kinder — ofarunger av en sistem, vilk fang and kvel unskuldig maner. Ek rup to al, vilk kön hör mek no: Fartvivel nit! De elend skal farsvinde, van de gridhed farsvind and de biterhed av maner, vilk frük de manskaps forskritrid. De Maners hatrid skal farsvinde and diktarorer skal döe. Dan de kraft, vilk di hav takt fra de folk, skal kome bak to de folk. Selv ef mang blud ar sketet: Tu kempe fur de frihed ar en gud sak.</p>  | 
                    |
| 9 | 
                        + <p>Kemparer: Kemp nit fur tiraner; maner, vilk farakt ju and mak ju to sklaver; vilk vertskat nit jer levrid, vilk seg to ju, vat je skal make, true and föle! Di skend ju, föd ju, behandel ju lik kanon-födung. Kemp nit fur dis fardervt maner — makin-maner med makin-hövder and makin-herter! Je ar nit makiner, je ar nit direr, je ar maner. Lat de manlikhed blive ine jer herter! Je skal nit hate; bar de unlivt hat, de unlivt and de fardervt.</p>  | 
                    |
| 10 | 
                        + <p>Kemperar: Kemp nit fur de sklavskap! Kemp fur de frihed! Ine de 17. avsnidung av de hajlig Lukas ar skrivt: ‚God ar ine al maner.‘ — nit bar ine en grup av maner, insted ine al maner, ine ju. Je, de folk, hav de kraft; de kraft fur tu bue vapener, dok ok de kraft fur tu sprede gladhed. Je, de folk, hav de kraft fur tu make dis levrid fri and skön, fur tu make dis levrid en vunderfült sak. Darfur: Ine de nam av folkherskrid: Lat us bruke dis kraft! Lat us verde en! Lat us kempe fur en nü verld, fur en beter verld, vilk giv to de maner magrid tu verke, vilk giv en eftertid to de jung and sikerhed to de old. Ok de tiraner hav truent dis to us fur tu foe de vold, dok di hav lügt. Di mak nit sant dir luvung, di ing tid vil. Tiraner frien bar sek selv, dok de folk skal blive sklaver.</p>  | 
                    |
| 11 | 
                        + <p>Lat us no kempe fur tu upfüle dis luvung. Lat us kempe fur tu make de verld fri, fur tu uvervinde landmarker, gridhed, hatrid and de untillatrid. Lat us kempe fur en verld med farstanrid, en verld, var vetridskap and forskritrid skal lede to al mans gladhed.</p>  | 
                    |
| 12 | 12 | 
                        <p>Kemparer: Ine de nam av folkherskrid: Lat us al verde en!</p>  | 
                    
| 13 | 13 | 
                        </span>  | 
                    
| 14 | 14 | 
                        <p>An attempt to translate the final speech from the famous Charlie Chaplin movie "The great dictator" (with some passages inspired by the German translation); the English original can be listened to <a href="https://www.youtube.com/watch?v=ibVpDhW6kDQ">on youtube</a>; or in case you'd like to hear a more heart-wrenching version: <a href="https://www.youtube.com/watch?v=Gaq62VCcnew">accompanied by "Hans Zimmer - Time"</a>.</p>  | 
                    
| ... | ... | 
                      @@ -71,7 +71,7 @@ function convert_genus($genus) {return [0 => "common", 1 => "masculine", 2 => "f
                     | 
                  
| 71 | 71 | 
                        }  | 
                    
| 72 | 72 | 
                        }  | 
                    
| 73 | 73 | 
                         		{
                       | 
                    
| 74 | 
                        - if (false)  | 
                    |
| 74 | 
                        + if (true)  | 
                    |
| 75 | 75 | 
                         			{
                       | 
                    
| 76 | 76 | 
                        $data = sql_cross($data, $data_common["cases"]);  | 
                    
| 77 | 77 | 
                         				$data = sql_select($data, function ($row) {return ($row["case_id"] == $row["id"]);});
                       | 
                    
| ... | ... | 
                      @@ -87,6 +87,7 @@ function convert_genus($genus) {return [0 => "common", 1 => "masculine", 2 => "f
                     | 
                  
| 87 | 87 | 
                         | 
                    
| 88 | 88 | 
                         	{
                       | 
                    
| 89 | 89 | 
                         		// $data = sql_select($data, function ($row) {return ($row["case_name"] != "pos");});
                       | 
                    
| 90 | 
                        +		$data = sql_select($data, function ($row) {global $configuration; return (($row["language_id"] == "fs") or ($row["language_id"] == $configuration["target"]));});
                       | 
                    |
| 90 | 91 | 
                        }  | 
                    
| 91 | 92 | 
                         | 
                    
| 92 | 93 | 
                        $table = new class_table  | 
                    
| ... | ... | 
                      @@ -103,12 +104,13 @@ function convert_genus($genus) {return [0 => "common", 1 => "masculine", 2 => "f
                     | 
                  
| 103 | 104 | 
                        $data  | 
                    
| 104 | 105 | 
                        );  | 
                    
| 105 | 106 | 
                         | 
                    
| 106 | 
                        - $table = $table->snap  | 
                    |
| 107 | 
                        + $table->snap  | 
                    |
| 107 | 108 | 
                        (  | 
                    
| 108 | 109 | 
                        [  | 
                    
| 109 | 110 | 
                         			"label_vertical" => function ($column) {return "";},
                       | 
                    
| 110 | 111 | 
                        "columns_vertical" =>  | 
                    
| 111 | 112 | 
                        [  | 
                    
| 113 | 
                        + $table->columns_get()[4],  | 
                    |
| 112 | 114 | 
                        $table->columns_get()[1],  | 
                    
| 113 | 115 | 
                        $table->columns_get()[2],  | 
                    
| 114 | 116 | 
                        $table->columns_get()[3],  | 
                    
| ... | ... | 
                      @@ -116,7 +118,6 @@ function convert_genus($genus) {return [0 => "common", 1 => "masculine", 2 => "f
                     | 
                  
| 116 | 118 | 
                         			"label_horizontal" => function ($column, $value) {return $value;},
                       | 
                    
| 117 | 119 | 
                        "columns_horizontal" =>  | 
                    
| 118 | 120 | 
                        [  | 
                    
| 119 | 
                        - $table->columns_get()[4],  | 
                    |
| 120 | 121 | 
                        $table->columns_get()[5],  | 
                    
| 121 | 122 | 
                        ],  | 
                    
| 122 | 123 | 
                        "columns_data" =>  | 
                    
| ... | ... | 
                      @@ -139,12 +140,27 @@ function convert_genus($genus) {return [0 => "common", 1 => "masculine", 2 => "f
                     | 
                  
| 139 | 140 | 
                        }  | 
                    
| 140 | 141 | 
                        case 1:  | 
                    
| 141 | 142 | 
                         					{
                       | 
                    
| 143 | 
                        + global $configuration;  | 
                    |
| 144 | 
                        + $value_ = [];  | 
                    |
| 145 | 
                        + foreach (["fs",$configuration["target"]] as $language_id)  | 
                    |
| 146 | 
                        +						{
                       | 
                    |
| 147 | 
                        + $value_[$language_id] = array_reduce  | 
                    |
| 148 | 
                        + (  | 
                    |
| 149 | 
                        + array_map  | 
                    |
| 150 | 
                        + (  | 
                    |
| 151 | 
                        +									function ($dataset) {return $dataset["words"];},
                       | 
                    |
| 152 | 
                        +									array_filter($value, function ($dataset) use (&$language_id) {return ($dataset["language_id"] == $language_id);})
                       | 
                    |
| 153 | 
                        + ),  | 
                    |
| 154 | 
                        +								function ($x, $y) {return array_merge($x, $y);},
                       | 
                    |
| 155 | 
                        + []  | 
                    |
| 156 | 
                        + );  | 
                    |
| 157 | 
                        + }  | 
                    |
| 142 | 158 | 
                        return (  | 
                    
| 143 | 159 | 
                         							_bar("word")
                       | 
                    
| 144 | 160 | 
                        (  | 
                    
| 145 | 161 | 
                        [  | 
                    
| 146 | 
                        - "original" => $value[0]["words"],  | 
                    |
| 147 | 
                        - "translated" => $value[1]["words"],  | 
                    |
| 162 | 
                        + "original" => $value_["fs"],  | 
                    |
| 163 | 
                        + "translated" => $value_[$configuration["target"]],  | 
                    |
| 148 | 164 | 
                        ]  | 
                    
| 149 | 165 | 
                        )  | 
                    
| 150 | 166 | 
                        );  | 
                    
| ... | ... | 
                      @@ -158,9 +174,10 @@ function convert_genus($genus) {return [0 => "common", 1 => "masculine", 2 => "f
                     | 
                  
| 158 | 174 | 
                        }  | 
                    
| 159 | 175 | 
                        },  | 
                    
| 160 | 176 | 
                        ]  | 
                    
| 161 | 
                        - );  | 
                    |
| 162 | 
                        - $table->generate();  | 
                    |
| 177 | 
                        + )->generate();  | 
                    |
| 163 | 178 | 
                        ?>  | 
                    
| 164 | 
                        - <p>For the flected and otherwise related forms of the personal pronouns see the section <a href="#declension">Declension</a>.</p>  | 
                    |
| 179 | 
                        + <p>Since the word <span class="word lang_fs">man</span> simply means <span class="word lang_en">human being</span>, it can be understood as an implicit way to express an abstract actor; similar words like <span class="word lang_fs">lüd</span> (<span class="word lang_en">people</span>) or <span class="word lang_fs">di</span> can be used as well.</p>  | 
                    |
| 180 | 
                        + <div class="note_information">The honorific salutation is expressed by the plural form <span class="word lang_fs">je</span>; however it should be avoided in usual speech in favor of the singular form <span class="word lang_fs">du</span>.</div>  | 
                    |
| 181 | 
                        + <div class="note_information">A reflexive genitive can be formed by inserting the word <span class="word lang_fs">egen</span> (<span class="word lang_en">own</span>), for example <span class="sentence lang_fs">Han[A] hav givt to ham[B] hans egen buk.</span> ~ <span class="sentence lang_en">He[A] has given (to) him[B] his own book.</span> (A's book was given to B).</div>  | 
                    |
| 165 | 182 | 
                        </section>  | 
                    
| 166 | 183 | 
                         | 
                    
| ... | ... | 
                      @@ -19,9 +19,9 @@  | 
                  
| 19 | 19 | 
                         		{"language_id": "fs", "type_id": "nor", "case_id": "acc", "count_id": "sin", "person_id": "imp", "gender_id": "com", "words": ["man"]},
                       | 
                    
| 20 | 20 | 
                         		{"language_id": "fs", "type_id": "nor", "case_id": "acc", "count_id": "sin", "person_id": "1st", "gender_id": "com", "words": ["mek"]},
                       | 
                    
| 21 | 21 | 
                         		{"language_id": "fs", "type_id": "nor", "case_id": "acc", "count_id": "sin", "person_id": "2nd", "gender_id": "com", "words": ["dek"]},
                       | 
                    
| 22 | 
                        -		{"language_id": "fs", "type_id": "nor", "case_id": "acc", "count_id": "sin", "person_id": "3rd", "gender_id": "com", "words": ["hen"]},
                       | 
                    |
| 23 | 
                        -		{"language_id": "fs", "type_id": "nor", "case_id": "acc", "count_id": "sin", "person_id": "3rd", "gender_id": "mas", "words": ["han"]},
                       | 
                    |
| 24 | 
                        -		{"language_id": "fs", "type_id": "nor", "case_id": "acc", "count_id": "sin", "person_id": "3rd", "gender_id": "fem", "words": ["hun"]},
                       | 
                    |
| 22 | 
                        +		{"language_id": "fs", "type_id": "nor", "case_id": "acc", "count_id": "sin", "person_id": "3rd", "gender_id": "com", "words": ["hem"]},
                       | 
                    |
| 23 | 
                        +		{"language_id": "fs", "type_id": "nor", "case_id": "acc", "count_id": "sin", "person_id": "3rd", "gender_id": "mas", "words": ["ham"]},
                       | 
                    |
| 24 | 
                        +		{"language_id": "fs", "type_id": "nor", "case_id": "acc", "count_id": "sin", "person_id": "3rd", "gender_id": "fem", "words": ["hum"]},
                       | 
                    |
| 25 | 25 | 
                         		{"language_id": "fs", "type_id": "nor", "case_id": "acc", "count_id": "sin", "person_id": "3rd", "gender_id": "neu", "words": ["hit"]},
                       | 
                    
| 26 | 26 | 
                         		{"language_id": "fs", "type_id": "nor", "case_id": "acc", "count_id": "plu", "person_id": "imp", "gender_id": "com", "words": ["maner"]},
                       | 
                    
| 27 | 27 | 
                         		{"language_id": "fs", "type_id": "nor", "case_id": "acc", "count_id": "plu", "person_id": "1st", "gender_id": "com", "words": ["us"]},
                       | 
                    
| ... | ... | 
                      @@ -30,9 +30,9 @@  | 
                  
| 30 | 30 | 
                         		{"language_id": "fs", "type_id": "nor", "case_id": "dat", "count_id": "sin", "person_id": "imp", "gender_id": "com", "words": ["to man"]},
                       | 
                    
| 31 | 31 | 
                         		{"language_id": "fs", "type_id": "nor", "case_id": "dat", "count_id": "sin", "person_id": "1st", "gender_id": "com", "words": ["to mek"]},
                       | 
                    
| 32 | 32 | 
                         		{"language_id": "fs", "type_id": "nor", "case_id": "dat", "count_id": "sin", "person_id": "2nd", "gender_id": "com", "words": ["to dek"]},
                       | 
                    
| 33 | 
                        -		{"language_id": "fs", "type_id": "nor", "case_id": "dat", "count_id": "sin", "person_id": "3rd", "gender_id": "com", "words": ["to hen"]},
                       | 
                    |
| 34 | 
                        -		{"language_id": "fs", "type_id": "nor", "case_id": "dat", "count_id": "sin", "person_id": "3rd", "gender_id": "mas", "words": ["to han"]},
                       | 
                    |
| 35 | 
                        -		{"language_id": "fs", "type_id": "nor", "case_id": "dat", "count_id": "sin", "person_id": "3rd", "gender_id": "fem", "words": ["to hun"]},
                       | 
                    |
| 33 | 
                        +		{"language_id": "fs", "type_id": "nor", "case_id": "dat", "count_id": "sin", "person_id": "3rd", "gender_id": "com", "words": ["to hem"]},
                       | 
                    |
| 34 | 
                        +		{"language_id": "fs", "type_id": "nor", "case_id": "dat", "count_id": "sin", "person_id": "3rd", "gender_id": "mas", "words": ["to ham"]},
                       | 
                    |
| 35 | 
                        +		{"language_id": "fs", "type_id": "nor", "case_id": "dat", "count_id": "sin", "person_id": "3rd", "gender_id": "fem", "words": ["to hum"]},
                       | 
                    |
| 36 | 36 | 
                         		{"language_id": "fs", "type_id": "nor", "case_id": "dat", "count_id": "sin", "person_id": "3rd", "gender_id": "neu", "words": ["to hit"]},
                       | 
                    
| 37 | 37 | 
                         		{"language_id": "fs", "type_id": "nor", "case_id": "dat", "count_id": "plu", "person_id": "imp", "gender_id": "com", "words": ["to maner"]},
                       | 
                    
| 38 | 38 | 
                         		{"language_id": "fs", "type_id": "nor", "case_id": "dat", "count_id": "plu", "person_id": "1st", "gender_id": "com", "words": ["to us"]},
                       | 
                    
| ... | ... | 
                      @@ -126,17 +126,17 @@  | 
                  
| 126 | 126 | 
                         		{"language_id": "en", "type_id": "nor", "case_id": "acc", "count_id": "plu", "person_id": "1st", "gender_id": "com", "words": ["us"]},
                       | 
                    
| 127 | 127 | 
                         		{"language_id": "en", "type_id": "nor", "case_id": "acc", "count_id": "plu", "person_id": "2nd", "gender_id": "com", "words": ["you (all)"]},
                       | 
                    
| 128 | 128 | 
                         		{"language_id": "en", "type_id": "nor", "case_id": "acc", "count_id": "plu", "person_id": "3rd", "gender_id": "com", "words": ["them"]},
                       | 
                    
| 129 | 
                        -		{"language_id": "en", "type_id": "nor", "case_id": "dat", "count_id": "sin", "person_id": "imp", "gender_id": "com", "words": ["to one","to you"]},
                       | 
                    |
| 130 | 
                        -		{"language_id": "en", "type_id": "nor", "case_id": "dat", "count_id": "sin", "person_id": "1st", "gender_id": "com", "words": ["to me"]},
                       | 
                    |
| 131 | 
                        -		{"language_id": "en", "type_id": "nor", "case_id": "dat", "count_id": "sin", "person_id": "2nd", "gender_id": "com", "words": ["to you","to thee"]},
                       | 
                    |
| 129 | 
                        +		{"language_id": "en", "type_id": "nor", "case_id": "dat", "count_id": "sin", "person_id": "imp", "gender_id": "com", "words": ["(to) one","(to) you"]},
                       | 
                    |
| 130 | 
                        +		{"language_id": "en", "type_id": "nor", "case_id": "dat", "count_id": "sin", "person_id": "1st", "gender_id": "com", "words": ["(to) me"]},
                       | 
                    |
| 131 | 
                        +		{"language_id": "en", "type_id": "nor", "case_id": "dat", "count_id": "sin", "person_id": "2nd", "gender_id": "com", "words": ["(to) you","(to) thee"]},
                       | 
                    |
| 132 | 132 | 
                         		{"language_id": "en", "type_id": "nor", "case_id": "dat", "count_id": "sin", "person_id": "3rd", "gender_id": "com", "words": []},
                       | 
                    
| 133 | 
                        -		{"language_id": "en", "type_id": "nor", "case_id": "dat", "count_id": "sin", "person_id": "3rd", "gender_id": "mas", "words": ["to him"]},
                       | 
                    |
| 134 | 
                        -		{"language_id": "en", "type_id": "nor", "case_id": "dat", "count_id": "sin", "person_id": "3rd", "gender_id": "fem", "words": ["to her"]},
                       | 
                    |
| 135 | 
                        -		{"language_id": "en", "type_id": "nor", "case_id": "dat", "count_id": "sin", "person_id": "3rd", "gender_id": "neu", "words": ["to it"]},
                       | 
                    |
| 136 | 
                        -		{"language_id": "en", "type_id": "nor", "case_id": "dat", "count_id": "plu", "person_id": "imp", "gender_id": "com", "words": ["to you","to them"]},
                       | 
                    |
| 137 | 
                        -		{"language_id": "en", "type_id": "nor", "case_id": "dat", "count_id": "plu", "person_id": "1st", "gender_id": "com", "words": ["to us"]},
                       | 
                    |
| 138 | 
                        -		{"language_id": "en", "type_id": "nor", "case_id": "dat", "count_id": "plu", "person_id": "2nd", "gender_id": "com", "words": ["to you (all)"]},
                       | 
                    |
| 139 | 
                        -		{"language_id": "en", "type_id": "nor", "case_id": "dat", "count_id": "plu", "person_id": "3rd", "gender_id": "com", "words": ["to them"]},
                       | 
                    |
| 133 | 
                        +		{"language_id": "en", "type_id": "nor", "case_id": "dat", "count_id": "sin", "person_id": "3rd", "gender_id": "mas", "words": ["(to) him"]},
                       | 
                    |
| 134 | 
                        +		{"language_id": "en", "type_id": "nor", "case_id": "dat", "count_id": "sin", "person_id": "3rd", "gender_id": "fem", "words": ["(to) her"]},
                       | 
                    |
| 135 | 
                        +		{"language_id": "en", "type_id": "nor", "case_id": "dat", "count_id": "sin", "person_id": "3rd", "gender_id": "neu", "words": ["(to) it"]},
                       | 
                    |
| 136 | 
                        +		{"language_id": "en", "type_id": "nor", "case_id": "dat", "count_id": "plu", "person_id": "imp", "gender_id": "com", "words": ["(to) you","(to) them"]},
                       | 
                    |
| 137 | 
                        +		{"language_id": "en", "type_id": "nor", "case_id": "dat", "count_id": "plu", "person_id": "1st", "gender_id": "com", "words": ["(to) us"]},
                       | 
                    |
| 138 | 
                        +		{"language_id": "en", "type_id": "nor", "case_id": "dat", "count_id": "plu", "person_id": "2nd", "gender_id": "com", "words": ["(to) you (all)"]},
                       | 
                    |
| 139 | 
                        +		{"language_id": "en", "type_id": "nor", "case_id": "dat", "count_id": "plu", "person_id": "3rd", "gender_id": "com", "words": ["(to) them"]},
                       | 
                    |
| 140 | 140 | 
                         		{"language_id": "en", "type_id": "ref", "case_id": "acc", "count_id": "sin", "person_id": "imp", "gender_id": "com", "words": ["oneself","yourself"]},
                       | 
                    
| 141 | 141 | 
                         		{"language_id": "en", "type_id": "ref", "case_id": "acc", "count_id": "sin", "person_id": "1st", "gender_id": "com", "words": ["myself"]},
                       | 
                    
| 142 | 142 | 
                         		{"language_id": "en", "type_id": "ref", "case_id": "acc", "count_id": "sin", "person_id": "2nd", "gender_id": "com", "words": ["yourself"]},
                       | 
                    
| ... | ... | 
                      @@ -148,61 +148,160 @@  | 
                  
| 148 | 148 | 
                         		{"language_id": "en", "type_id": "ref", "case_id": "acc", "count_id": "plu", "person_id": "1st", "gender_id": "com", "words": ["ourselves"]},
                       | 
                    
| 149 | 149 | 
                         		{"language_id": "en", "type_id": "ref", "case_id": "acc", "count_id": "plu", "person_id": "2nd", "gender_id": "com", "words": ["yourselves"]},
                       | 
                    
| 150 | 150 | 
                         		{"language_id": "en", "type_id": "ref", "case_id": "acc", "count_id": "plu", "person_id": "3rd", "gender_id": "com", "words": ["themselves"]},
                       | 
                    
| 151 | 
                        -		{"language_id": "en", "type_id": "ref", "case_id": "dat", "count_id": "sin", "person_id": "imp", "gender_id": "com", "words": ["to oneself","to yourself"]},
                       | 
                    |
| 152 | 
                        -		{"language_id": "en", "type_id": "ref", "case_id": "dat", "count_id": "sin", "person_id": "1st", "gender_id": "com", "words": ["to myself"]},
                       | 
                    |
| 153 | 
                        -		{"language_id": "en", "type_id": "ref", "case_id": "dat", "count_id": "sin", "person_id": "2nd", "gender_id": "com", "words": ["to yourself"]},
                       | 
                    |
| 151 | 
                        +		{"language_id": "en", "type_id": "ref", "case_id": "dat", "count_id": "sin", "person_id": "imp", "gender_id": "com", "words": ["(to) oneself","(to) yourself"]},
                       | 
                    |
| 152 | 
                        +		{"language_id": "en", "type_id": "ref", "case_id": "dat", "count_id": "sin", "person_id": "1st", "gender_id": "com", "words": ["(to) myself"]},
                       | 
                    |
| 153 | 
                        +		{"language_id": "en", "type_id": "ref", "case_id": "dat", "count_id": "sin", "person_id": "2nd", "gender_id": "com", "words": ["(to) yourself"]},
                       | 
                    |
| 154 | 154 | 
                         		{"language_id": "en", "type_id": "ref", "case_id": "dat", "count_id": "sin", "person_id": "3rd", "gender_id": "com", "words": []},
                       | 
                    
| 155 | 
                        -		{"language_id": "en", "type_id": "ref", "case_id": "dat", "count_id": "sin", "person_id": "3rd", "gender_id": "mas", "words": ["to himself"]},
                       | 
                    |
| 156 | 
                        -		{"language_id": "en", "type_id": "ref", "case_id": "dat", "count_id": "sin", "person_id": "3rd", "gender_id": "fem", "words": ["to herself"]},
                       | 
                    |
| 157 | 
                        -		{"language_id": "en", "type_id": "ref", "case_id": "dat", "count_id": "sin", "person_id": "3rd", "gender_id": "neu", "words": ["to itself"]},
                       | 
                    |
| 158 | 
                        -		{"language_id": "en", "type_id": "ref", "case_id": "dat", "count_id": "plu", "person_id": "imp", "gender_id": "com", "words": ["to themselves","to yourselves"]},
                       | 
                    |
| 159 | 
                        -		{"language_id": "en", "type_id": "ref", "case_id": "dat", "count_id": "plu", "person_id": "1st", "gender_id": "com", "words": ["to ourselves"]},
                       | 
                    |
| 160 | 
                        -		{"language_id": "en", "type_id": "ref", "case_id": "dat", "count_id": "plu", "person_id": "2nd", "gender_id": "com", "words": ["to yourselves"]},
                       | 
                    |
| 161 | 
                        -		{"language_id": "en", "type_id": "ref", "case_id": "dat", "count_id": "plu", "person_id": "3rd", "gender_id": "com", "words": ["to themselves"]},
                       | 
                    |
| 162 | 
                        -		{"language_id": "en", "type_id": "pos", "case_id": "nom", "count_id": "sin", "person_id": "imp", "gender_id": "com", "words": ["ones","your"]},
                       | 
                    |
| 163 | 
                        -		{"language_id": "en", "type_id": "pos", "case_id": "nom", "count_id": "sin", "person_id": "1st", "gender_id": "com", "words": ["my"]},
                       | 
                    |
| 164 | 
                        -		{"language_id": "en", "type_id": "pos", "case_id": "nom", "count_id": "sin", "person_id": "2nd", "gender_id": "com", "words": ["your"]},
                       | 
                    |
| 155 | 
                        +		{"language_id": "en", "type_id": "ref", "case_id": "dat", "count_id": "sin", "person_id": "3rd", "gender_id": "mas", "words": ["(to) himself"]},
                       | 
                    |
| 156 | 
                        +		{"language_id": "en", "type_id": "ref", "case_id": "dat", "count_id": "sin", "person_id": "3rd", "gender_id": "fem", "words": ["(to) herself"]},
                       | 
                    |
| 157 | 
                        +		{"language_id": "en", "type_id": "ref", "case_id": "dat", "count_id": "sin", "person_id": "3rd", "gender_id": "neu", "words": ["(to) itself"]},
                       | 
                    |
| 158 | 
                        +		{"language_id": "en", "type_id": "ref", "case_id": "dat", "count_id": "plu", "person_id": "imp", "gender_id": "com", "words": ["(to) themselves","(to)to yourselves"]},
                       | 
                    |
| 159 | 
                        +		{"language_id": "en", "type_id": "ref", "case_id": "dat", "count_id": "plu", "person_id": "1st", "gender_id": "com", "words": ["(to) ourselves"]},
                       | 
                    |
| 160 | 
                        +		{"language_id": "en", "type_id": "ref", "case_id": "dat", "count_id": "plu", "person_id": "2nd", "gender_id": "com", "words": ["(to) yourselves"]},
                       | 
                    |
| 161 | 
                        +		{"language_id": "en", "type_id": "ref", "case_id": "dat", "count_id": "plu", "person_id": "3rd", "gender_id": "com", "words": ["(to) themselves"]},
                       | 
                    |
| 162 | 
                        +		{"language_id": "en", "type_id": "pos", "case_id": "nom", "count_id": "sin", "person_id": "imp", "gender_id": "com", "words": ["one's","your"]},
                       | 
                    |
| 163 | 
                        +		{"language_id": "en", "type_id": "pos", "case_id": "nom", "count_id": "sin", "person_id": "1st", "gender_id": "com", "words": ["my/mine"]},
                       | 
                    |
| 164 | 
                        +		{"language_id": "en", "type_id": "pos", "case_id": "nom", "count_id": "sin", "person_id": "2nd", "gender_id": "com", "words": ["your/yours","thy/thine"]},
                       | 
                    |
| 165 | 165 | 
                         		{"language_id": "en", "type_id": "pos", "case_id": "nom", "count_id": "sin", "person_id": "3rd", "gender_id": "com", "words": []},
                       | 
                    
| 166 | 166 | 
                         		{"language_id": "en", "type_id": "pos", "case_id": "nom", "count_id": "sin", "person_id": "3rd", "gender_id": "mas", "words": ["his"]},
                       | 
                    
| 167 | 
                        -		{"language_id": "en", "type_id": "pos", "case_id": "nom", "count_id": "sin", "person_id": "3rd", "gender_id": "fem", "words": ["her"]},
                       | 
                    |
| 167 | 
                        +		{"language_id": "en", "type_id": "pos", "case_id": "nom", "count_id": "sin", "person_id": "3rd", "gender_id": "fem", "words": ["her/hers"]},
                       | 
                    |
| 168 | 168 | 
                         		{"language_id": "en", "type_id": "pos", "case_id": "nom", "count_id": "sin", "person_id": "3rd", "gender_id": "neu", "words": ["its"]},
                       | 
                    
| 169 | 
                        -		{"language_id": "en", "type_id": "pos", "case_id": "nom", "count_id": "plu", "person_id": "imp", "gender_id": "com", "words": ["their","your"]},
                       | 
                    |
| 170 | 
                        -		{"language_id": "en", "type_id": "pos", "case_id": "nom", "count_id": "plu", "person_id": "1st", "gender_id": "com", "words": ["our"]},
                       | 
                    |
| 171 | 
                        -		{"language_id": "en", "type_id": "pos", "case_id": "nom", "count_id": "plu", "person_id": "2nd", "gender_id": "com", "words": ["your"]},
                       | 
                    |
| 172 | 
                        -		{"language_id": "en", "type_id": "pos", "case_id": "nom", "count_id": "plu", "person_id": "3rd", "gender_id": "com", "words": ["their"]},		
                       | 
                    |
| 173 | 
                        -		{"language_id": "en", "type_id": "pos", "case_id": "acc", "count_id": "sin", "person_id": "imp", "gender_id": "com", "words": ["ones","your"]},
                       | 
                    |
| 174 | 
                        -		{"language_id": "en", "type_id": "pos", "case_id": "acc", "count_id": "sin", "person_id": "1st", "gender_id": "com", "words": ["my"]},
                       | 
                    |
| 175 | 
                        -		{"language_id": "en", "type_id": "pos", "case_id": "acc", "count_id": "sin", "person_id": "2nd", "gender_id": "com", "words": ["your"]},
                       | 
                    |
| 169 | 
                        +		{"language_id": "en", "type_id": "pos", "case_id": "nom", "count_id": "plu", "person_id": "imp", "gender_id": "com", "words": ["their/theirs","your/yours"]},
                       | 
                    |
| 170 | 
                        +		{"language_id": "en", "type_id": "pos", "case_id": "nom", "count_id": "plu", "person_id": "1st", "gender_id": "com", "words": ["our/ours"]},
                       | 
                    |
| 171 | 
                        +		{"language_id": "en", "type_id": "pos", "case_id": "nom", "count_id": "plu", "person_id": "2nd", "gender_id": "com", "words": ["your/yours"]},
                       | 
                    |
| 172 | 
                        +		{"language_id": "en", "type_id": "pos", "case_id": "nom", "count_id": "plu", "person_id": "3rd", "gender_id": "com", "words": ["their/theirs"]},		
                       | 
                    |
| 173 | 
                        +		{"language_id": "en", "type_id": "pos", "case_id": "acc", "count_id": "sin", "person_id": "imp", "gender_id": "com", "words": ["one's","your/yours"]},
                       | 
                    |
| 174 | 
                        +		{"language_id": "en", "type_id": "pos", "case_id": "acc", "count_id": "sin", "person_id": "1st", "gender_id": "com", "words": ["my/mine"]},
                       | 
                    |
| 175 | 
                        +		{"language_id": "en", "type_id": "pos", "case_id": "acc", "count_id": "sin", "person_id": "2nd", "gender_id": "com", "words": ["your/yours","thy/thine"]},
                       | 
                    |
| 176 | 176 | 
                         		{"language_id": "en", "type_id": "pos", "case_id": "acc", "count_id": "sin", "person_id": "3rd", "gender_id": "com", "words": []},
                       | 
                    
| 177 | 177 | 
                         		{"language_id": "en", "type_id": "pos", "case_id": "acc", "count_id": "sin", "person_id": "3rd", "gender_id": "mas", "words": ["his"]},
                       | 
                    
| 178 | 
                        -		{"language_id": "en", "type_id": "pos", "case_id": "acc", "count_id": "sin", "person_id": "3rd", "gender_id": "fem", "words": ["her"]},
                       | 
                    |
| 178 | 
                        +		{"language_id": "en", "type_id": "pos", "case_id": "acc", "count_id": "sin", "person_id": "3rd", "gender_id": "fem", "words": ["her/hers"]},
                       | 
                    |
| 179 | 179 | 
                         		{"language_id": "en", "type_id": "pos", "case_id": "acc", "count_id": "sin", "person_id": "3rd", "gender_id": "neu", "words": ["its"]},
                       | 
                    
| 180 | 180 | 
                         		{"language_id": "en", "type_id": "pos", "case_id": "acc", "count_id": "plu", "person_id": "imp", "gender_id": "com", "words": ["their","your"]},
                       | 
                    
| 181 | 
                        -		{"language_id": "en", "type_id": "pos", "case_id": "acc", "count_id": "plu", "person_id": "1st", "gender_id": "com", "words": ["our"]},
                       | 
                    |
| 182 | 
                        -		{"language_id": "en", "type_id": "pos", "case_id": "acc", "count_id": "plu", "person_id": "2nd", "gender_id": "com", "words": ["your"]},
                       | 
                    |
| 183 | 
                        -		{"language_id": "en", "type_id": "pos", "case_id": "acc", "count_id": "plu", "person_id": "3rd", "gender_id": "com", "words": ["their"]},
                       | 
                    |
| 184 | 
                        -		{"language_id": "en", "type_id": "pos", "case_id": "dat", "count_id": "sin", "person_id": "imp", "gender_id": "com", "words": ["to ones","to your"]},
                       | 
                    |
| 185 | 
                        -		{"language_id": "en", "type_id": "pos", "case_id": "dat", "count_id": "sin", "person_id": "1st", "gender_id": "com", "words": ["to my"]},
                       | 
                    |
| 186 | 
                        -		{"language_id": "en", "type_id": "pos", "case_id": "dat", "count_id": "sin", "person_id": "2nd", "gender_id": "com", "words": ["to your"]},
                       | 
                    |
| 181 | 
                        +		{"language_id": "en", "type_id": "pos", "case_id": "acc", "count_id": "plu", "person_id": "1st", "gender_id": "com", "words": ["our/ours"]},
                       | 
                    |
| 182 | 
                        +		{"language_id": "en", "type_id": "pos", "case_id": "acc", "count_id": "plu", "person_id": "2nd", "gender_id": "com", "words": ["your/yours"]},
                       | 
                    |
| 183 | 
                        +		{"language_id": "en", "type_id": "pos", "case_id": "acc", "count_id": "plu", "person_id": "3rd", "gender_id": "com", "words": ["their/theirs"]},
                       | 
                    |
| 184 | 
                        +		{"language_id": "en", "type_id": "pos", "case_id": "dat", "count_id": "sin", "person_id": "imp", "gender_id": "com", "words": ["(to) one's","(to) your/yours"]},
                       | 
                    |
| 185 | 
                        +		{"language_id": "en", "type_id": "pos", "case_id": "dat", "count_id": "sin", "person_id": "1st", "gender_id": "com", "words": ["(to) my/mine"]},
                       | 
                    |
| 186 | 
                        +		{"language_id": "en", "type_id": "pos", "case_id": "dat", "count_id": "sin", "person_id": "2nd", "gender_id": "com", "words": ["(to) your/yours","(to) thy/thine"]},
                       | 
                    |
| 187 | 187 | 
                         		{"language_id": "en", "type_id": "pos", "case_id": "dat", "count_id": "sin", "person_id": "3rd", "gender_id": "com", "words": []},
                       | 
                    
| 188 | 
                        -		{"language_id": "en", "type_id": "pos", "case_id": "dat", "count_id": "sin", "person_id": "3rd", "gender_id": "mas", "words": ["to his"]},
                       | 
                    |
| 189 | 
                        -		{"language_id": "en", "type_id": "pos", "case_id": "dat", "count_id": "sin", "person_id": "3rd", "gender_id": "fem", "words": ["to her"]},
                       | 
                    |
| 190 | 
                        -		{"language_id": "en", "type_id": "pos", "case_id": "dat", "count_id": "sin", "person_id": "3rd", "gender_id": "neu", "words": ["to its"]},
                       | 
                    |
| 191 | 
                        -		{"language_id": "en", "type_id": "pos", "case_id": "dat", "count_id": "plu", "person_id": "imp", "gender_id": "com", "words": ["to their","to your"]},
                       | 
                    |
| 192 | 
                        -		{"language_id": "en", "type_id": "pos", "case_id": "dat", "count_id": "plu", "person_id": "1st", "gender_id": "com", "words": ["to our"]},
                       | 
                    |
| 193 | 
                        -		{"language_id": "en", "type_id": "pos", "case_id": "dat", "count_id": "plu", "person_id": "2nd", "gender_id": "com", "words": ["to your"]},
                       | 
                    |
| 194 | 
                        -		{"language_id": "en", "type_id": "pos", "case_id": "dat", "count_id": "plu", "person_id": "3rd", "gender_id": "com", "words": ["to their"]},
                       | 
                    |
| 195 | 
                        -		{"language_id": "en", "type_id": "pos", "case_id": "gen", "count_id": "sin", "person_id": "imp", "gender_id": "com", "words": ["of ones","of your"]},
                       | 
                    |
| 196 | 
                        -		{"language_id": "en", "type_id": "pos", "case_id": "gen", "count_id": "sin", "person_id": "1st", "gender_id": "com", "words": ["of my"]},
                       | 
                    |
| 197 | 
                        -		{"language_id": "en", "type_id": "pos", "case_id": "gen", "count_id": "sin", "person_id": "2nd", "gender_id": "com", "words": ["of your"]},
                       | 
                    |
| 188 | 
                        +		{"language_id": "en", "type_id": "pos", "case_id": "dat", "count_id": "sin", "person_id": "3rd", "gender_id": "mas", "words": ["(to) his"]},
                       | 
                    |
| 189 | 
                        +		{"language_id": "en", "type_id": "pos", "case_id": "dat", "count_id": "sin", "person_id": "3rd", "gender_id": "fem", "words": ["(to) her/hers"]},
                       | 
                    |
| 190 | 
                        +		{"language_id": "en", "type_id": "pos", "case_id": "dat", "count_id": "sin", "person_id": "3rd", "gender_id": "neu", "words": ["(to) its"]},
                       | 
                    |
| 191 | 
                        +		{"language_id": "en", "type_id": "pos", "case_id": "dat", "count_id": "plu", "person_id": "imp", "gender_id": "com", "words": ["(to) their/theirs","(to) your/yours"]},
                       | 
                    |
| 192 | 
                        +		{"language_id": "en", "type_id": "pos", "case_id": "dat", "count_id": "plu", "person_id": "1st", "gender_id": "com", "words": ["(to) our/ours"]},
                       | 
                    |
| 193 | 
                        +		{"language_id": "en", "type_id": "pos", "case_id": "dat", "count_id": "plu", "person_id": "2nd", "gender_id": "com", "words": ["(to) your/yours"]},
                       | 
                    |
| 194 | 
                        +		{"language_id": "en", "type_id": "pos", "case_id": "dat", "count_id": "plu", "person_id": "3rd", "gender_id": "com", "words": ["(to) their/theirs"]},
                       | 
                    |
| 195 | 
                        +		{"language_id": "en", "type_id": "pos", "case_id": "gen", "count_id": "sin", "person_id": "imp", "gender_id": "com", "words": ["of one's","of your/yours"]},
                       | 
                    |
| 196 | 
                        +		{"language_id": "en", "type_id": "pos", "case_id": "gen", "count_id": "sin", "person_id": "1st", "gender_id": "com", "words": ["of my/mine"]},
                       | 
                    |
| 197 | 
                        +		{"language_id": "en", "type_id": "pos", "case_id": "gen", "count_id": "sin", "person_id": "2nd", "gender_id": "com", "words": ["of your/yours"]},
                       | 
                    |
| 198 | 198 | 
                         		{"language_id": "en", "type_id": "pos", "case_id": "gen", "count_id": "sin", "person_id": "3rd", "gender_id": "com", "words": []},
                       | 
                    
| 199 | 199 | 
                         		{"language_id": "en", "type_id": "pos", "case_id": "gen", "count_id": "sin", "person_id": "3rd", "gender_id": "mas", "words": ["of his"]},
                       | 
                    
| 200 | 
                        -		{"language_id": "en", "type_id": "pos", "case_id": "gen", "count_id": "sin", "person_id": "3rd", "gender_id": "fem", "words": ["of her"]},
                       | 
                    |
| 200 | 
                        +		{"language_id": "en", "type_id": "pos", "case_id": "gen", "count_id": "sin", "person_id": "3rd", "gender_id": "fem", "words": ["of her/hers"]},
                       | 
                    |
| 201 | 201 | 
                         		{"language_id": "en", "type_id": "pos", "case_id": "gen", "count_id": "sin", "person_id": "3rd", "gender_id": "neu", "words": ["of its"]},
                       | 
                    
| 202 | 
                        -		{"language_id": "en", "type_id": "pos", "case_id": "gen", "count_id": "plu", "person_id": "imp", "gender_id": "com", "words": ["of their","of your"]},
                       | 
                    |
| 203 | 
                        -		{"language_id": "en", "type_id": "pos", "case_id": "gen", "count_id": "plu", "person_id": "1st", "gender_id": "com", "words": ["of our"]},
                       | 
                    |
| 204 | 
                        -		{"language_id": "en", "type_id": "pos", "case_id": "gen", "count_id": "plu", "person_id": "2nd", "gender_id": "com", "words": ["of your"]},
                       | 
                    |
| 205 | 
                        -		{"language_id": "en", "type_id": "pos", "case_id": "gen", "count_id": "plu", "person_id": "3rd", "gender_id": "com", "words": ["of their"]}
                       | 
                    |
| 202 | 
                        +		{"language_id": "en", "type_id": "pos", "case_id": "gen", "count_id": "plu", "person_id": "imp", "gender_id": "com", "words": ["of their/theirs","of your/yours"]},
                       | 
                    |
| 203 | 
                        +		{"language_id": "en", "type_id": "pos", "case_id": "gen", "count_id": "plu", "person_id": "1st", "gender_id": "com", "words": ["of our/ours"]},
                       | 
                    |
| 204 | 
                        +		{"language_id": "en", "type_id": "pos", "case_id": "gen", "count_id": "plu", "person_id": "2nd", "gender_id": "com", "words": ["of your/yours"]},
                       | 
                    |
| 205 | 
                        +		{"language_id": "en", "type_id": "pos", "case_id": "gen", "count_id": "plu", "person_id": "3rd", "gender_id": "com", "words": ["of their/theirs"]},
                       | 
                    |
| 206 | 
                        +		{"language_id": "de", "type_id": "nor", "case_id": "nom", "count_id": "sin", "person_id": "imp", "gender_id": "com", "words": ["man"]},
                       | 
                    |
| 207 | 
                        +		{"language_id": "de", "type_id": "nor", "case_id": "nom", "count_id": "sin", "person_id": "1st", "gender_id": "com", "words": ["ich"]},
                       | 
                    |
| 208 | 
                        +		{"language_id": "de", "type_id": "nor", "case_id": "nom", "count_id": "sin", "person_id": "2nd", "gender_id": "com", "words": ["du"]},
                       | 
                    |
| 209 | 
                        +		{"language_id": "de", "type_id": "nor", "case_id": "nom", "count_id": "sin", "person_id": "3rd", "gender_id": "com", "words": []},
                       | 
                    |
| 210 | 
                        +		{"language_id": "de", "type_id": "nor", "case_id": "nom", "count_id": "sin", "person_id": "3rd", "gender_id": "mas", "words": ["er"]},
                       | 
                    |
| 211 | 
                        +		{"language_id": "de", "type_id": "nor", "case_id": "nom", "count_id": "sin", "person_id": "3rd", "gender_id": "fem", "words": ["sie"]},
                       | 
                    |
| 212 | 
                        +		{"language_id": "de", "type_id": "nor", "case_id": "nom", "count_id": "sin", "person_id": "3rd", "gender_id": "neu", "words": ["es"]},
                       | 
                    |
| 213 | 
                        +		{"language_id": "de", "type_id": "nor", "case_id": "nom", "count_id": "plu", "person_id": "imp", "gender_id": "com", "words": ["man"]},
                       | 
                    |
| 214 | 
                        +		{"language_id": "de", "type_id": "nor", "case_id": "nom", "count_id": "plu", "person_id": "1st", "gender_id": "com", "words": ["wir"]},
                       | 
                    |
| 215 | 
                        +		{"language_id": "de", "type_id": "nor", "case_id": "nom", "count_id": "plu", "person_id": "2nd", "gender_id": "com", "words": ["ihr"]},
                       | 
                    |
| 216 | 
                        +		{"language_id": "de", "type_id": "nor", "case_id": "nom", "count_id": "plu", "person_id": "3rd", "gender_id": "com", "words": ["sie"]},
                       | 
                    |
| 217 | 
                        +		{"language_id": "de", "type_id": "nor", "case_id": "acc", "count_id": "sin", "person_id": "imp", "gender_id": "com", "words": ["einen"]},
                       | 
                    |
| 218 | 
                        +		{"language_id": "de", "type_id": "nor", "case_id": "acc", "count_id": "sin", "person_id": "1st", "gender_id": "com", "words": ["mich"]},
                       | 
                    |
| 219 | 
                        +		{"language_id": "de", "type_id": "nor", "case_id": "acc", "count_id": "sin", "person_id": "2nd", "gender_id": "com", "words": ["dich"]},
                       | 
                    |
| 220 | 
                        +		{"language_id": "de", "type_id": "nor", "case_id": "acc", "count_id": "sin", "person_id": "3rd", "gender_id": "com", "words": []},
                       | 
                    |
| 221 | 
                        +		{"language_id": "de", "type_id": "nor", "case_id": "acc", "count_id": "sin", "person_id": "3rd", "gender_id": "mas", "words": ["ihn"]},
                       | 
                    |
| 222 | 
                        +		{"language_id": "de", "type_id": "nor", "case_id": "acc", "count_id": "sin", "person_id": "3rd", "gender_id": "fem", "words": ["sie"]},
                       | 
                    |
| 223 | 
                        +		{"language_id": "de", "type_id": "nor", "case_id": "acc", "count_id": "sin", "person_id": "3rd", "gender_id": "neu", "words": ["es"]},
                       | 
                    |
| 224 | 
                        +		{"language_id": "de", "type_id": "nor", "case_id": "acc", "count_id": "plu", "person_id": "imp", "gender_id": "com", "words": []},
                       | 
                    |
| 225 | 
                        +		{"language_id": "de", "type_id": "nor", "case_id": "acc", "count_id": "plu", "person_id": "1st", "gender_id": "com", "words": ["uns"]},
                       | 
                    |
| 226 | 
                        +		{"language_id": "de", "type_id": "nor", "case_id": "acc", "count_id": "plu", "person_id": "2nd", "gender_id": "com", "words": ["euch"]},
                       | 
                    |
| 227 | 
                        +		{"language_id": "de", "type_id": "nor", "case_id": "acc", "count_id": "plu", "person_id": "3rd", "gender_id": "com", "words": ["sie"]},
                       | 
                    |
| 228 | 
                        +		{"language_id": "de", "type_id": "nor", "case_id": "dat", "count_id": "sin", "person_id": "imp", "gender_id": "com", "words": ["einem"]},
                       | 
                    |
| 229 | 
                        +		{"language_id": "de", "type_id": "nor", "case_id": "dat", "count_id": "sin", "person_id": "1st", "gender_id": "com", "words": ["mir"]},
                       | 
                    |
| 230 | 
                        +		{"language_id": "de", "type_id": "nor", "case_id": "dat", "count_id": "sin", "person_id": "2nd", "gender_id": "com", "words": ["dir"]},
                       | 
                    |
| 231 | 
                        +		{"language_id": "de", "type_id": "nor", "case_id": "dat", "count_id": "sin", "person_id": "3rd", "gender_id": "com", "words": []},
                       | 
                    |
| 232 | 
                        +		{"language_id": "de", "type_id": "nor", "case_id": "dat", "count_id": "sin", "person_id": "3rd", "gender_id": "mas", "words": ["ihm"]},
                       | 
                    |
| 233 | 
                        +		{"language_id": "de", "type_id": "nor", "case_id": "dat", "count_id": "sin", "person_id": "3rd", "gender_id": "fem", "words": ["ihr"]},
                       | 
                    |
| 234 | 
                        +		{"language_id": "de", "type_id": "nor", "case_id": "dat", "count_id": "sin", "person_id": "3rd", "gender_id": "neu", "words": ["ihm"]},
                       | 
                    |
| 235 | 
                        +		{"language_id": "de", "type_id": "nor", "case_id": "dat", "count_id": "plu", "person_id": "imp", "gender_id": "com", "words": []},
                       | 
                    |
| 236 | 
                        +		{"language_id": "de", "type_id": "nor", "case_id": "dat", "count_id": "plu", "person_id": "1st", "gender_id": "com", "words": ["uns"]},
                       | 
                    |
| 237 | 
                        +		{"language_id": "de", "type_id": "nor", "case_id": "dat", "count_id": "plu", "person_id": "2nd", "gender_id": "com", "words": ["euch"]},
                       | 
                    |
| 238 | 
                        +		{"language_id": "de", "type_id": "nor", "case_id": "dat", "count_id": "plu", "person_id": "3rd", "gender_id": "com", "words": ["ihnen"]},
                       | 
                    |
| 239 | 
                        +		{"language_id": "de", "type_id": "ref", "case_id": "acc", "count_id": "sin", "person_id": "imp", "gender_id": "com", "words": ["sich"]},
                       | 
                    |
| 240 | 
                        +		{"language_id": "de", "type_id": "ref", "case_id": "acc", "count_id": "sin", "person_id": "1st", "gender_id": "com", "words": ["mich"]},
                       | 
                    |
| 241 | 
                        +		{"language_id": "de", "type_id": "ref", "case_id": "acc", "count_id": "sin", "person_id": "2nd", "gender_id": "com", "words": ["dich"]},
                       | 
                    |
| 242 | 
                        +		{"language_id": "de", "type_id": "ref", "case_id": "acc", "count_id": "sin", "person_id": "3rd", "gender_id": "com", "words": ["sich"]},
                       | 
                    |
| 243 | 
                        +		{"language_id": "de", "type_id": "ref", "case_id": "acc", "count_id": "sin", "person_id": "3rd", "gender_id": "mas", "words": ["sich"]},
                       | 
                    |
| 244 | 
                        +		{"language_id": "de", "type_id": "ref", "case_id": "acc", "count_id": "sin", "person_id": "3rd", "gender_id": "fem", "words": ["sich"]},
                       | 
                    |
| 245 | 
                        +		{"language_id": "de", "type_id": "ref", "case_id": "acc", "count_id": "sin", "person_id": "3rd", "gender_id": "neu", "words": ["sich"]},
                       | 
                    |
| 246 | 
                        +		{"language_id": "de", "type_id": "ref", "case_id": "acc", "count_id": "plu", "person_id": "imp", "gender_id": "com", "words": []},
                       | 
                    |
| 247 | 
                        +		{"language_id": "de", "type_id": "ref", "case_id": "acc", "count_id": "plu", "person_id": "1st", "gender_id": "com", "words": ["uns"]},
                       | 
                    |
| 248 | 
                        +		{"language_id": "de", "type_id": "ref", "case_id": "acc", "count_id": "plu", "person_id": "2nd", "gender_id": "com", "words": ["euch"]},
                       | 
                    |
| 249 | 
                        +		{"language_id": "de", "type_id": "ref", "case_id": "acc", "count_id": "plu", "person_id": "3rd", "gender_id": "com", "words": ["sich"]},
                       | 
                    |
| 250 | 
                        +		{"language_id": "de", "type_id": "ref", "case_id": "dat", "count_id": "sin", "person_id": "imp", "gender_id": "com", "words": ["(zu) sich"]},
                       | 
                    |
| 251 | 
                        +		{"language_id": "de", "type_id": "ref", "case_id": "dat", "count_id": "sin", "person_id": "1st", "gender_id": "com", "words": ["(zu) mir"]},
                       | 
                    |
| 252 | 
                        +		{"language_id": "de", "type_id": "ref", "case_id": "dat", "count_id": "sin", "person_id": "2nd", "gender_id": "com", "words": ["(zu) dir"]},
                       | 
                    |
| 253 | 
                        +		{"language_id": "de", "type_id": "ref", "case_id": "dat", "count_id": "sin", "person_id": "3rd", "gender_id": "com", "words": []},
                       | 
                    |
| 254 | 
                        +		{"language_id": "de", "type_id": "ref", "case_id": "dat", "count_id": "sin", "person_id": "3rd", "gender_id": "mas", "words": ["(zu) sich"]},
                       | 
                    |
| 255 | 
                        +		{"language_id": "de", "type_id": "ref", "case_id": "dat", "count_id": "sin", "person_id": "3rd", "gender_id": "fem", "words": ["(zu) sich"]},
                       | 
                    |
| 256 | 
                        +		{"language_id": "de", "type_id": "ref", "case_id": "dat", "count_id": "sin", "person_id": "3rd", "gender_id": "neu", "words": ["(zu) sich"]},
                       | 
                    |
| 257 | 
                        +		{"language_id": "de", "type_id": "ref", "case_id": "dat", "count_id": "plu", "person_id": "imp", "gender_id": "com", "words": []},
                       | 
                    |
| 258 | 
                        +		{"language_id": "de", "type_id": "ref", "case_id": "dat", "count_id": "plu", "person_id": "1st", "gender_id": "com", "words": ["(zu) uns"]},
                       | 
                    |
| 259 | 
                        +		{"language_id": "de", "type_id": "ref", "case_id": "dat", "count_id": "plu", "person_id": "2nd", "gender_id": "com", "words": ["(zu) euch"]},
                       | 
                    |
| 260 | 
                        +		{"language_id": "de", "type_id": "ref", "case_id": "dat", "count_id": "plu", "person_id": "3rd", "gender_id": "com", "words": ["(zu) sich"]},
                       | 
                    |
| 261 | 
                        +		{"language_id": "de", "type_id": "pos", "case_id": "nom", "count_id": "sin", "person_id": "imp", "gender_id": "com", "words": []},
                       | 
                    |
| 262 | 
                        +		{"language_id": "de", "type_id": "pos", "case_id": "nom", "count_id": "sin", "person_id": "1st", "gender_id": "com", "words": ["mein"]},
                       | 
                    |
| 263 | 
                        +		{"language_id": "de", "type_id": "pos", "case_id": "nom", "count_id": "sin", "person_id": "2nd", "gender_id": "com", "words": ["dein"]},
                       | 
                    |
| 264 | 
                        +		{"language_id": "de", "type_id": "pos", "case_id": "nom", "count_id": "sin", "person_id": "3rd", "gender_id": "com", "words": []},
                       | 
                    |
| 265 | 
                        +		{"language_id": "de", "type_id": "pos", "case_id": "nom", "count_id": "sin", "person_id": "3rd", "gender_id": "mas", "words": ["sein/seine/sein"]},
                       | 
                    |
| 266 | 
                        +		{"language_id": "de", "type_id": "pos", "case_id": "nom", "count_id": "sin", "person_id": "3rd", "gender_id": "fem", "words": ["ihr/ihre/ihr"]},
                       | 
                    |
| 267 | 
                        +		{"language_id": "de", "type_id": "pos", "case_id": "nom", "count_id": "sin", "person_id": "3rd", "gender_id": "neu", "words": ["sein/seine/sein"]},
                       | 
                    |
| 268 | 
                        +		{"language_id": "de", "type_id": "pos", "case_id": "nom", "count_id": "plu", "person_id": "imp", "gender_id": "com", "words": []},
                       | 
                    |
| 269 | 
                        +		{"language_id": "de", "type_id": "pos", "case_id": "nom", "count_id": "plu", "person_id": "1st", "gender_id": "com", "words": ["unser/unser/unser"]},
                       | 
                    |
| 270 | 
                        +		{"language_id": "de", "type_id": "pos", "case_id": "nom", "count_id": "plu", "person_id": "2nd", "gender_id": "com", "words": ["euer/eure/euer"]},
                       | 
                    |
| 271 | 
                        +		{"language_id": "de", "type_id": "pos", "case_id": "nom", "count_id": "plu", "person_id": "3rd", "gender_id": "com", "words": ["ihr/ihre/ihr","deren"]},
                       | 
                    |
| 272 | 
                        +		{"language_id": "de", "type_id": "pos", "case_id": "acc", "count_id": "sin", "person_id": "imp", "gender_id": "com", "words": []},
                       | 
                    |
| 273 | 
                        +		{"language_id": "de", "type_id": "pos", "case_id": "acc", "count_id": "sin", "person_id": "1st", "gender_id": "com", "words": ["meinen/meine/mein"]},
                       | 
                    |
| 274 | 
                        +		{"language_id": "de", "type_id": "pos", "case_id": "acc", "count_id": "sin", "person_id": "2nd", "gender_id": "com", "words": ["deinen/deine/dein"]},
                       | 
                    |
| 275 | 
                        +		{"language_id": "de", "type_id": "pos", "case_id": "acc", "count_id": "sin", "person_id": "3rd", "gender_id": "com", "words": []},
                       | 
                    |
| 276 | 
                        +		{"language_id": "de", "type_id": "pos", "case_id": "acc", "count_id": "sin", "person_id": "3rd", "gender_id": "mas", "words": ["seinen/seine/sein"]},
                       | 
                    |
| 277 | 
                        +		{"language_id": "de", "type_id": "pos", "case_id": "acc", "count_id": "sin", "person_id": "3rd", "gender_id": "fem", "words": ["ihren/ihre/ihr"]},
                       | 
                    |
| 278 | 
                        +		{"language_id": "de", "type_id": "pos", "case_id": "acc", "count_id": "sin", "person_id": "3rd", "gender_id": "neu", "words": ["seinen/seine/sein"]},
                       | 
                    |
| 279 | 
                        +		{"language_id": "de", "type_id": "pos", "case_id": "acc", "count_id": "plu", "person_id": "imp", "gender_id": "com", "words": []},
                       | 
                    |
| 280 | 
                        +		{"language_id": "de", "type_id": "pos", "case_id": "acc", "count_id": "plu", "person_id": "1st", "gender_id": "com", "words": ["unseren/unsere/unser"]},
                       | 
                    |
| 281 | 
                        +		{"language_id": "de", "type_id": "pos", "case_id": "acc", "count_id": "plu", "person_id": "2nd", "gender_id": "com", "words": ["euren/eure/euer"]},
                       | 
                    |
| 282 | 
                        +		{"language_id": "de", "type_id": "pos", "case_id": "acc", "count_id": "plu", "person_id": "3rd", "gender_id": "com", "words": ["ihren/ihre/ihr","deren"]},
                       | 
                    |
| 283 | 
                        +		{"language_id": "de", "type_id": "pos", "case_id": "dat", "count_id": "sin", "person_id": "imp", "gender_id": "com", "words": []},
                       | 
                    |
| 284 | 
                        +		{"language_id": "de", "type_id": "pos", "case_id": "dat", "count_id": "sin", "person_id": "1st", "gender_id": "com", "words": ["(zu) meinem/meiner/meinem"]},
                       | 
                    |
| 285 | 
                        +		{"language_id": "de", "type_id": "pos", "case_id": "dat", "count_id": "sin", "person_id": "2nd", "gender_id": "com", "words": ["(zu) deinem/deiner/deinem"]},
                       | 
                    |
| 286 | 
                        +		{"language_id": "de", "type_id": "pos", "case_id": "dat", "count_id": "sin", "person_id": "3rd", "gender_id": "com", "words": []},
                       | 
                    |
| 287 | 
                        +		{"language_id": "de", "type_id": "pos", "case_id": "dat", "count_id": "sin", "person_id": "3rd", "gender_id": "mas", "words": ["(zu) seinem/seiner/seinem"]},
                       | 
                    |
| 288 | 
                        +		{"language_id": "de", "type_id": "pos", "case_id": "dat", "count_id": "sin", "person_id": "3rd", "gender_id": "fem", "words": ["(zu) ihrem/ihrer/ihrem"]},
                       | 
                    |
| 289 | 
                        +		{"language_id": "de", "type_id": "pos", "case_id": "dat", "count_id": "sin", "person_id": "3rd", "gender_id": "neu", "words": ["(zu) seinem/seiner/seinem"]},
                       | 
                    |
| 290 | 
                        +		{"language_id": "de", "type_id": "pos", "case_id": "dat", "count_id": "plu", "person_id": "imp", "gender_id": "com", "words": []},
                       | 
                    |
| 291 | 
                        +		{"language_id": "de", "type_id": "pos", "case_id": "dat", "count_id": "plu", "person_id": "1st", "gender_id": "com", "words": ["(zu) unserem/unserer/unserem"]},
                       | 
                    |
| 292 | 
                        +		{"language_id": "de", "type_id": "pos", "case_id": "dat", "count_id": "plu", "person_id": "2nd", "gender_id": "com", "words": ["(zu) eurem/eurer/eurem"]},
                       | 
                    |
| 293 | 
                        +		{"language_id": "de", "type_id": "pos", "case_id": "dat", "count_id": "plu", "person_id": "3rd", "gender_id": "com", "words": ["(zu) ihrem/ihrer/ihrem","(zu) deren"]},
                       | 
                    |
| 294 | 
                        +		{"language_id": "de", "type_id": "pos", "case_id": "gen", "count_id": "sin", "person_id": "imp", "gender_id": "com", "words": []},
                       | 
                    |
| 295 | 
                        +		{"language_id": "de", "type_id": "pos", "case_id": "gen", "count_id": "sin", "person_id": "1st", "gender_id": "com", "words": ["von meinem/meiner/meinem","meines"]},
                       | 
                    |
| 296 | 
                        +		{"language_id": "de", "type_id": "pos", "case_id": "gen", "count_id": "sin", "person_id": "2nd", "gender_id": "com", "words": ["von deinem/deiner/deinem","deines"]},
                       | 
                    |
| 297 | 
                        +		{"language_id": "de", "type_id": "pos", "case_id": "gen", "count_id": "sin", "person_id": "3rd", "gender_id": "com", "words": []},
                       | 
                    |
| 298 | 
                        +		{"language_id": "de", "type_id": "pos", "case_id": "gen", "count_id": "sin", "person_id": "3rd", "gender_id": "mas", "words": ["von seinem/seiner/seinem","seines"]},
                       | 
                    |
| 299 | 
                        +		{"language_id": "de", "type_id": "pos", "case_id": "gen", "count_id": "sin", "person_id": "3rd", "gender_id": "fem", "words": ["von ihrem/ihrer/ihrem","ihres"]},
                       | 
                    |
| 300 | 
                        +		{"language_id": "de", "type_id": "pos", "case_id": "gen", "count_id": "sin", "person_id": "3rd", "gender_id": "neu", "words": ["von seinem/seiner/seinem","seines"]},
                       | 
                    |
| 301 | 
                        +		{"language_id": "de", "type_id": "pos", "case_id": "gen", "count_id": "plu", "person_id": "imp", "gender_id": "com", "words": []},
                       | 
                    |
| 302 | 
                        +		{"language_id": "de", "type_id": "pos", "case_id": "gen", "count_id": "plu", "person_id": "1st", "gender_id": "com", "words": ["von unserem/unserer/unserem","unseres"]},
                       | 
                    |
| 303 | 
                        +		{"language_id": "de", "type_id": "pos", "case_id": "gen", "count_id": "plu", "person_id": "2nd", "gender_id": "com", "words": ["von eurem/eurer/eurem"]},
                       | 
                    |
| 304 | 
                        +		{"language_id": "de", "type_id": "pos", "case_id": "gen", "count_id": "plu", "person_id": "3rd", "gender_id": "com", "words": ["von ihrem/ihrer/ihrem","von deren"]}
                       | 
                    |
| 206 | 305 | 
                        ]  | 
                    
| 207 | 306 | 
                        }  | 
                    
| 208 | 307 | 
                         | 
                    
| ... | ... | 
                      @@ -166,116 +166,5 @@  | 
                  
| 166 | 166 | 
                        return $table_result;  | 
                    
| 167 | 167 | 
                        }  | 
                    
| 168 | 168 | 
                         | 
                    
| 169 | 
                        - /*  | 
                    |
| 170 | 
                        -  | 
                    |
| 171 | 
                        - +------+------+------+  | 
                    |
| 172 | 
                        - | xA | xB | xC |  | 
                    |
| 173 | 
                        - +------+------+------+  | 
                    |
| 174 | 
                        - | a2 | b1 | c3 |  | 
                    |
| 175 | 
                        - +------+------+------+  | 
                    |
| 176 | 
                        - | a1 | b1 | c0 |  | 
                    |
| 177 | 
                        - +------+------+------+  | 
                    |
| 178 | 
                        - | a1 | b3 | c2 |  | 
                    |
| 179 | 
                        - +------+------+------+  | 
                    |
| 180 | 
                        - | a2 | b2 | c4 |  | 
                    |
| 181 | 
                        - +------+------+------+  | 
                    |
| 182 | 
                        - | a1 | b2 | c1 |  | 
                    |
| 183 | 
                        - +------+------+------+  | 
                    |
| 184 | 
                        - | a2 | b4 | c5 |  | 
                    |
| 185 | 
                        - +------+------+------+  | 
                    |
| 186 | 
                        -  | 
                    |
| 187 | 
                        - +------+------+------+  | 
                    |
| 188 | 
                        - | xA | xB | xC |  | 
                    |
| 189 | 
                        - +------+------+------+  | 
                    |
| 190 | 
                        - | a1 | b1 | c0 |  | 
                    |
| 191 | 
                        - +------+------+------+  | 
                    |
| 192 | 
                        - | a1 | b2 | c1 |  | 
                    |
| 193 | 
                        - +------+------+------+  | 
                    |
| 194 | 
                        - | a1 | b3 | c2 |  | 
                    |
| 195 | 
                        - +------+------+------+  | 
                    |
| 196 | 
                        - | a2 | b1 | c3 |  | 
                    |
| 197 | 
                        - +------+------+------+  | 
                    |
| 198 | 
                        - | a2 | b2 | c4 |  | 
                    |
| 199 | 
                        - +------+------+------+  | 
                    |
| 200 | 
                        - | a2 | b4 | c5 |  | 
                    |
| 201 | 
                        - +------+------+------+  | 
                    |
| 202 | 
                        -  | 
                    |
| 203 | 
                        - +------+------+------+  | 
                    |
| 204 | 
                        - | xA | xB | xC |  | 
                    |
| 205 | 
                        - +------+------+------+  | 
                    |
| 206 | 
                        - | a1 | b1 | c0 |  | 
                    |
| 207 | 
                        - | +------+------+  | 
                    |
| 208 | 
                        - | | b2 | c1 |  | 
                    |
| 209 | 
                        - | +------+------+  | 
                    |
| 210 | 
                        - | | b3 | c2 |  | 
                    |
| 211 | 
                        - +------+------+------+  | 
                    |
| 212 | 
                        - | a2 | b1 | c3 |  | 
                    |
| 213 | 
                        - | +------+------+  | 
                    |
| 214 | 
                        - | | b2 | c4 |  | 
                    |
| 215 | 
                        - | +------+------+  | 
                    |
| 216 | 
                        - | | b4 | c5 |  | 
                    |
| 217 | 
                        - +------+------+------+  | 
                    |
| 218 | 
                        -  | 
                    |
| 219 | 
                        - +------+------+------+------+------+  | 
                    |
| 220 | 
                        - | xA | xB:b1| xB:b2| xB:b3| xB:b4|  | 
                    |
| 221 | 
                        - +------+------+------+------+------+  | 
                    |
| 222 | 
                        - | a1 | c0 | c1 | c2 | -- |  | 
                    |
| 223 | 
                        - +------+------+------+------+------+  | 
                    |
| 224 | 
                        - | a2 | c3 | c4 | -- | c5 |  | 
                    |
| 225 | 
                        - +------+------+------+------+------+  | 
                    |
| 226 | 
                        -  | 
                    |
| 227 | 
                        - */  | 
                    |
| 228 | 
                        - function sql_snap($table_source, $column_vertical, $column_horizontal, $column_data)  | 
                    |
| 229 | 
                        -	{
                       | 
                    |
| 230 | 
                        - $values = [];  | 
                    |
| 231 | 
                        - array_map  | 
                    |
| 232 | 
                        - (  | 
                    |
| 233 | 
                        - function ($row) use (&$values,&$column_horizontal)  | 
                    |
| 234 | 
                        -			{
                       | 
                    |
| 235 | 
                        - $value = $row[$column_horizontal];  | 
                    |
| 236 | 
                        - if (array_search($value, $values) === false) array_push($values, $value);  | 
                    |
| 237 | 
                        - },  | 
                    |
| 238 | 
                        - $table_source  | 
                    |
| 239 | 
                        - );  | 
                    |
| 240 | 
                        - $groups = sql_groups($table_source, $column_vertical);  | 
                    |
| 241 | 
                        - // print(json_encode(array_slice($groups, 0, 2)) . "\n");  | 
                    |
| 242 | 
                        - $table_result = array_map  | 
                    |
| 243 | 
                        - (  | 
                    |
| 244 | 
                        - function ($group) use (&$column_vertical,&$column_horizontal,&$column_data,&$values)  | 
                    |
| 245 | 
                        -			{
                       | 
                    |
| 246 | 
                        - $row = [];  | 
                    |
| 247 | 
                        - $row[$column_vertical] = $group["value"];  | 
                    |
| 248 | 
                        - array_map  | 
                    |
| 249 | 
                        - (  | 
                    |
| 250 | 
                        - function ($value) use (&$row)  | 
                    |
| 251 | 
                        -					{
                       | 
                    |
| 252 | 
                        - $row[$value] = [];  | 
                    |
| 253 | 
                        - },  | 
                    |
| 254 | 
                        - $values  | 
                    |
| 255 | 
                        - );  | 
                    |
| 256 | 
                        - array_map  | 
                    |
| 257 | 
                        - (  | 
                    |
| 258 | 
                        - function ($member) use (&$column_horizontal,&$column_data,&$row)  | 
                    |
| 259 | 
                        -					{
                       | 
                    |
| 260 | 
                        - $value = $member[$column_horizontal];  | 
                    |
| 261 | 
                        - $data = $member[$column_data];  | 
                    |
| 262 | 
                        -						// print("-- adding value " . json_encode($data) . " for field " . $value . " to dataset " . json_encode($row) . "\n");
                       | 
                    |
| 263 | 
                        - array_push($row[$value], $data);  | 
                    |
| 264 | 
                        - },  | 
                    |
| 265 | 
                        - $group["members"]  | 
                    |
| 266 | 
                        - );  | 
                    |
| 267 | 
                        - return $row;  | 
                    |
| 268 | 
                        - },  | 
                    |
| 269 | 
                        - $groups  | 
                    |
| 270 | 
                        - );  | 
                    |
| 271 | 
                        - return $table_result;  | 
                    |
| 272 | 
                        - }  | 
                    |
| 273 | 
                        -  | 
                    |
| 274 | 
                        - /*  | 
                    |
| 275 | 
                        - function sql_sort($table_source, $column)  | 
                    |
| 276 | 
                        -	{
                       | 
                    |
| 277 | 
                        -  | 
                    |
| 278 | 
                        - }  | 
                    |
| 279 | 
                        - */  | 
                    |
| 280 | 169 | 
                        ?>  | 
                    
| 281 | 170 | 
                         | 
                    
| ... | ... | 
                      @@ -63,6 +63,63 @@ class class_table  | 
                  
| 63 | 63 | 
                        );  | 
                    
| 64 | 64 | 
                        }  | 
                    
| 65 | 65 | 
                         | 
                    
| 66 | 
                        + /*  | 
                    |
| 67 | 
                        + +------+------+------+  | 
                    |
| 68 | 
                        + | xA | xB | xC |  | 
                    |
| 69 | 
                        + +------+------+------+  | 
                    |
| 70 | 
                        + | a2 | b1 | c3 |  | 
                    |
| 71 | 
                        + +------+------+------+  | 
                    |
| 72 | 
                        + | a1 | b1 | c0 |  | 
                    |
| 73 | 
                        + +------+------+------+  | 
                    |
| 74 | 
                        + | a1 | b3 | c2 |  | 
                    |
| 75 | 
                        + +------+------+------+  | 
                    |
| 76 | 
                        + | a2 | b2 | c4 |  | 
                    |
| 77 | 
                        + +------+------+------+  | 
                    |
| 78 | 
                        + | a1 | b2 | c1 |  | 
                    |
| 79 | 
                        + +------+------+------+  | 
                    |
| 80 | 
                        + | a2 | b4 | c5 |  | 
                    |
| 81 | 
                        + +------+------+------+  | 
                    |
| 82 | 
                        +  | 
                    |
| 83 | 
                        + +------+------+------+  | 
                    |
| 84 | 
                        + | xA | xB | xC |  | 
                    |
| 85 | 
                        + +------+------+------+  | 
                    |
| 86 | 
                        + | a1 | b1 | c0 |  | 
                    |
| 87 | 
                        + +------+------+------+  | 
                    |
| 88 | 
                        + | a1 | b2 | c1 |  | 
                    |
| 89 | 
                        + +------+------+------+  | 
                    |
| 90 | 
                        + | a1 | b3 | c2 |  | 
                    |
| 91 | 
                        + +------+------+------+  | 
                    |
| 92 | 
                        + | a2 | b1 | c3 |  | 
                    |
| 93 | 
                        + +------+------+------+  | 
                    |
| 94 | 
                        + | a2 | b2 | c4 |  | 
                    |
| 95 | 
                        + +------+------+------+  | 
                    |
| 96 | 
                        + | a2 | b4 | c5 |  | 
                    |
| 97 | 
                        + +------+------+------+  | 
                    |
| 98 | 
                        +  | 
                    |
| 99 | 
                        + +------+------+------+  | 
                    |
| 100 | 
                        + | xA | xB | xC |  | 
                    |
| 101 | 
                        + +------+------+------+  | 
                    |
| 102 | 
                        + | a1 | b1 | c0 |  | 
                    |
| 103 | 
                        + | +------+------+  | 
                    |
| 104 | 
                        + | | b2 | c1 |  | 
                    |
| 105 | 
                        + | +------+------+  | 
                    |
| 106 | 
                        + | | b3 | c2 |  | 
                    |
| 107 | 
                        + +------+------+------+  | 
                    |
| 108 | 
                        + | a2 | b1 | c3 |  | 
                    |
| 109 | 
                        + | +------+------+  | 
                    |
| 110 | 
                        + | | b2 | c4 |  | 
                    |
| 111 | 
                        + | +------+------+  | 
                    |
| 112 | 
                        + | | b4 | c5 |  | 
                    |
| 113 | 
                        + +------+------+------+  | 
                    |
| 114 | 
                        +  | 
                    |
| 115 | 
                        + +------+------+------+------+------+  | 
                    |
| 116 | 
                        + | xA | xB:b1| xB:b2| xB:b3| xB:b4|  | 
                    |
| 117 | 
                        + +------+------+------+------+------+  | 
                    |
| 118 | 
                        + | a1 | c0 | c1 | c2 | -- |  | 
                    |
| 119 | 
                        + +------+------+------+------+------+  | 
                    |
| 120 | 
                        + | a2 | c3 | c4 | -- | c5 |  | 
                    |
| 121 | 
                        + +------+------+------+------+------+  | 
                    |
| 122 | 
                        + */  | 
                    |
| 66 | 123 | 
                        public function snap($configuration)  | 
                    
| 67 | 124 | 
                         	{
                       | 
                    
| 68 | 125 | 
                        $columns_vertical = fetch($configuration, "columns_vertical", null, 2);  | 
                    
| ... | ... | 
                      @@ -0,0 +1,2848 @@  | 
                  
| 1 | 
                        +var __extends = (this && this.__extends) || function (d, b) {
                       | 
                    |
| 2 | 
                        + for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];  | 
                    |
| 3 | 
                        +    function __() { this.constructor = d; }
                       | 
                    |
| 4 | 
                        + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());  | 
                    |
| 5 | 
                        +};  | 
                    |
| 6 | 
                        +var _child_process = require("child_process");
                       | 
                    |
| 7 | 
                        +var _fs = require("fs");
                       | 
                    |
| 8 | 
                        +var configuration = {};
                       | 
                    |
| 9 | 
                        +/**  | 
                    |
| 10 | 
                        + * @author fenris  | 
                    |
| 11 | 
                        + */  | 
                    |
| 12 | 
                        +function indentation(depth, symbol) {
                       | 
                    |
| 13 | 
                        +    if (symbol === void 0) { symbol = "\t"; }
                       | 
                    |
| 14 | 
                        + return ((depth == 0) ? "" : (symbol + indentation(depth - 1, symbol)));  | 
                    |
| 15 | 
                        +}  | 
                    |
| 16 | 
                        +/**  | 
                    |
| 17 | 
                        + * @author fenris  | 
                    |
| 18 | 
                        + */  | 
                    |
| 19 | 
                        +var class_message = (function () {
                       | 
                    |
| 20 | 
                        + /**  | 
                    |
| 21 | 
                        + * @author fenris  | 
                    |
| 22 | 
                        + */  | 
                    |
| 23 | 
                        +    function class_message(content, parameters) {
                       | 
                    |
| 24 | 
                        +        if (parameters === void 0) { parameters = {}; }
                       | 
                    |
| 25 | 
                        + /**  | 
                    |
| 26 | 
                        + * @author fenris  | 
                    |
| 27 | 
                        + */  | 
                    |
| 28 | 
                        + this.depth = 0;  | 
                    |
| 29 | 
                        + if (parameters.prefix == undefined)  | 
                    |
| 30 | 
                        + parameters.prefix = null;  | 
                    |
| 31 | 
                        + if (parameters.type == undefined)  | 
                    |
| 32 | 
                        + parameters.type = null;  | 
                    |
| 33 | 
                        + if (parameters.depth == undefined)  | 
                    |
| 34 | 
                        + parameters.depth = 0;  | 
                    |
| 35 | 
                        + if (parameters.linebreak == undefined)  | 
                    |
| 36 | 
                        + parameters.linebreak = false;  | 
                    |
| 37 | 
                        + this.content = content;  | 
                    |
| 38 | 
                        + this.type = parameters.type;  | 
                    |
| 39 | 
                        + this.depth = parameters.depth;  | 
                    |
| 40 | 
                        + this.prefix = parameters.prefix;  | 
                    |
| 41 | 
                        + this.linebreak = parameters.linebreak;  | 
                    |
| 42 | 
                        + }  | 
                    |
| 43 | 
                        + /**  | 
                    |
| 44 | 
                        + * @author fenris  | 
                    |
| 45 | 
                        + */  | 
                    |
| 46 | 
                        +    class_message.prototype.generate = function (with_type) {
                       | 
                    |
| 47 | 
                        +        if (with_type === void 0) { with_type = true; }
                       | 
                    |
| 48 | 
                        + var output = "";  | 
                    |
| 49 | 
                        + output += indentation(this.depth);  | 
                    |
| 50 | 
                        +        if (with_type) {
                       | 
                    |
| 51 | 
                        +            if (this.type != null) {
                       | 
                    |
| 52 | 
                        +                output += ("[" + this.type + "]" + " ");
                       | 
                    |
| 53 | 
                        + }  | 
                    |
| 54 | 
                        + }  | 
                    |
| 55 | 
                        +        if (this.prefix != null) {
                       | 
                    |
| 56 | 
                        +            output += ("<" + this.prefix + ">" + " ");
                       | 
                    |
| 57 | 
                        + }  | 
                    |
| 58 | 
                        + output += this.content;  | 
                    |
| 59 | 
                        +        if (this.linebreak) {
                       | 
                    |
| 60 | 
                        + output += "\n";  | 
                    |
| 61 | 
                        + }  | 
                    |
| 62 | 
                        + return output;  | 
                    |
| 63 | 
                        + };  | 
                    |
| 64 | 
                        + /**  | 
                    |
| 65 | 
                        + * @author fenris  | 
                    |
| 66 | 
                        + */  | 
                    |
| 67 | 
                        +    class_message.prototype.stdout = function () {
                       | 
                    |
| 68 | 
                        + console.log(this.generate(true));  | 
                    |
| 69 | 
                        + };  | 
                    |
| 70 | 
                        + /**  | 
                    |
| 71 | 
                        + * @author fenris  | 
                    |
| 72 | 
                        + */  | 
                    |
| 73 | 
                        +    class_message.prototype.stderr = function () {
                       | 
                    |
| 74 | 
                        + console.error(this.generate(true));  | 
                    |
| 75 | 
                        + };  | 
                    |
| 76 | 
                        + /**  | 
                    |
| 77 | 
                        + * @author fenris  | 
                    |
| 78 | 
                        + */  | 
                    |
| 79 | 
                        +    class_message.prototype.console = function () {
                       | 
                    |
| 80 | 
                        +        switch (this.type) {
                       | 
                    |
| 81 | 
                        +            case "log": {
                       | 
                    |
| 82 | 
                        + console.log(this.generate(false));  | 
                    |
| 83 | 
                        + break;  | 
                    |
| 84 | 
                        + }  | 
                    |
| 85 | 
                        +            case "information": {
                       | 
                    |
| 86 | 
                        + console.info(this.generate(false));  | 
                    |
| 87 | 
                        + break;  | 
                    |
| 88 | 
                        + }  | 
                    |
| 89 | 
                        +            case "warning": {
                       | 
                    |
| 90 | 
                        + console.warn(this.generate(false));  | 
                    |
| 91 | 
                        + break;  | 
                    |
| 92 | 
                        + }  | 
                    |
| 93 | 
                        +            case "error": {
                       | 
                    |
| 94 | 
                        + console.error(this.generate(false));  | 
                    |
| 95 | 
                        + break;  | 
                    |
| 96 | 
                        + }  | 
                    |
| 97 | 
                        +            default: {
                       | 
                    |
| 98 | 
                        +                throw (new Error("unhandled type '" + this.type + "'"));
                       | 
                    |
| 99 | 
                        + }  | 
                    |
| 100 | 
                        + }  | 
                    |
| 101 | 
                        + };  | 
                    |
| 102 | 
                        + return class_message;  | 
                    |
| 103 | 
                        +}());  | 
                    |
| 104 | 
                        +/**  | 
                    |
| 105 | 
                        + * @author fenris  | 
                    |
| 106 | 
                        + */  | 
                    |
| 107 | 
                        +var class_cliout = (function () {
                       | 
                    |
| 108 | 
                        +    function class_cliout() {
                       | 
                    |
| 109 | 
                        + }  | 
                    |
| 110 | 
                        + /**  | 
                    |
| 111 | 
                        + * @author fenris  | 
                    |
| 112 | 
                        + */  | 
                    |
| 113 | 
                        +    class_cliout.stdout = function (content, depth) {
                       | 
                    |
| 114 | 
                        +        if (depth === void 0) { depth = 0; }
                       | 
                    |
| 115 | 
                        + console.log(indentation(depth) + content);  | 
                    |
| 116 | 
                        + };  | 
                    |
| 117 | 
                        + /**  | 
                    |
| 118 | 
                        + * @author fenris  | 
                    |
| 119 | 
                        + */  | 
                    |
| 120 | 
                        +    class_cliout.stderr = function (content, depth) {
                       | 
                    |
| 121 | 
                        +        if (depth === void 0) { depth = 0; }
                       | 
                    |
| 122 | 
                        + console.error(indentation(depth) + content);  | 
                    |
| 123 | 
                        + };  | 
                    |
| 124 | 
                        + /**  | 
                    |
| 125 | 
                        + * @author fenris  | 
                    |
| 126 | 
                        + */  | 
                    |
| 127 | 
                        +    class_cliout.log = function (content, depth) {
                       | 
                    |
| 128 | 
                        +        if (depth === void 0) { depth = 0; }
                       | 
                    |
| 129 | 
                        +        this.stderr("-- " + content, depth);
                       | 
                    |
| 130 | 
                        + };  | 
                    |
| 131 | 
                        + /**  | 
                    |
| 132 | 
                        + * @author fenris  | 
                    |
| 133 | 
                        + */  | 
                    |
| 134 | 
                        +    class_cliout.info = function (content, depth) {
                       | 
                    |
| 135 | 
                        +        if (depth === void 0) { depth = 0; }
                       | 
                    |
| 136 | 
                        +        this.stderr(">> " + content, depth);
                       | 
                    |
| 137 | 
                        + };  | 
                    |
| 138 | 
                        + /**  | 
                    |
| 139 | 
                        + * @author fenris  | 
                    |
| 140 | 
                        + */  | 
                    |
| 141 | 
                        +    class_cliout.warn = function (content, depth) {
                       | 
                    |
| 142 | 
                        +        if (depth === void 0) { depth = 0; }
                       | 
                    |
| 143 | 
                        +        this.stderr(">> " + content, depth);
                       | 
                    |
| 144 | 
                        + };  | 
                    |
| 145 | 
                        + /**  | 
                    |
| 146 | 
                        + * @author fenris  | 
                    |
| 147 | 
                        + */  | 
                    |
| 148 | 
                        +    class_cliout.error = function (content, depth) {
                       | 
                    |
| 149 | 
                        +        if (depth === void 0) { depth = 0; }
                       | 
                    |
| 150 | 
                        +        this.stderr(">> " + content, depth);
                       | 
                    |
| 151 | 
                        + };  | 
                    |
| 152 | 
                        + return class_cliout;  | 
                    |
| 153 | 
                        +}());  | 
                    |
| 154 | 
                        +/**  | 
                    |
| 155 | 
                        + * @author fenris  | 
                    |
| 156 | 
                        + */  | 
                    |
| 157 | 
                        +var class_graph = (function () {
                       | 
                    |
| 158 | 
                        + /**  | 
                    |
| 159 | 
                        + * @author fenris  | 
                    |
| 160 | 
                        + */  | 
                    |
| 161 | 
                        +    function class_graph(nodes, edges) {
                       | 
                    |
| 162 | 
                        +        if (nodes === void 0) { nodes = []; }
                       | 
                    |
| 163 | 
                        +        if (edges === void 0) { edges = []; }
                       | 
                    |
| 164 | 
                        + this.nodes = nodes;  | 
                    |
| 165 | 
                        + this.edges = edges;  | 
                    |
| 166 | 
                        + }  | 
                    |
| 167 | 
                        + /**  | 
                    |
| 168 | 
                        + * @author fenris  | 
                    |
| 169 | 
                        + */  | 
                    |
| 170 | 
                        +    class_graph.prototype.without = function (pivot) {
                       | 
                    |
| 171 | 
                        +        return (new class_graph(this.nodes.filter(function (node) { return (node != pivot); }), this.edges.filter(function (edge) { return ((edge.from != pivot) && (edge.to != pivot)); })));
                       | 
                    |
| 172 | 
                        + };  | 
                    |
| 173 | 
                        + return class_graph;  | 
                    |
| 174 | 
                        +}());  | 
                    |
| 175 | 
                        +/**  | 
                    |
| 176 | 
                        + * @author fenris  | 
                    |
| 177 | 
                        + */  | 
                    |
| 178 | 
                        +function topsort(graph) {
                       | 
                    |
| 179 | 
                        +    if (graph.nodes.length == 0) {
                       | 
                    |
| 180 | 
                        + return [];  | 
                    |
| 181 | 
                        + }  | 
                    |
| 182 | 
                        +    else {
                       | 
                    |
| 183 | 
                        + var pivot_1;  | 
                    |
| 184 | 
                        +        var found = graph.nodes.some(function (node) {
                       | 
                    |
| 185 | 
                        +            var count = graph.edges.filter(function (edge) { return (edge.to == node); }).length;
                       | 
                    |
| 186 | 
                        +            if (count == 0) {
                       | 
                    |
| 187 | 
                        + pivot_1 = node;  | 
                    |
| 188 | 
                        + return true;  | 
                    |
| 189 | 
                        + }  | 
                    |
| 190 | 
                        +            else {
                       | 
                    |
| 191 | 
                        +                // console.info("'" + String(node) + "' has " + count.toString() + " incoming edges");
                       | 
                    |
| 192 | 
                        + return false;  | 
                    |
| 193 | 
                        + }  | 
                    |
| 194 | 
                        + });  | 
                    |
| 195 | 
                        +        if (found) {
                       | 
                    |
| 196 | 
                        + return [pivot_1].concat(topsort(graph.without(pivot_1)));  | 
                    |
| 197 | 
                        + }  | 
                    |
| 198 | 
                        +        else {
                       | 
                    |
| 199 | 
                        +            throw (new Error("circular dependencies found"));
                       | 
                    |
| 200 | 
                        + }  | 
                    |
| 201 | 
                        + }  | 
                    |
| 202 | 
                        +}  | 
                    |
| 203 | 
                        +/**  | 
                    |
| 204 | 
                        + * @author fenris  | 
                    |
| 205 | 
                        + */  | 
                    |
| 206 | 
                        +var lib_xml;  | 
                    |
| 207 | 
                        +(function (lib_xml) {
                       | 
                    |
| 208 | 
                        + /**  | 
                    |
| 209 | 
                        + * @author fenris  | 
                    |
| 210 | 
                        + */  | 
                    |
| 211 | 
                        +    var class_node = (function () {
                       | 
                    |
| 212 | 
                        +        function class_node() {
                       | 
                    |
| 213 | 
                        + }  | 
                    |
| 214 | 
                        + return class_node;  | 
                    |
| 215 | 
                        + }());  | 
                    |
| 216 | 
                        + lib_xml.class_node = class_node;  | 
                    |
| 217 | 
                        + /**  | 
                    |
| 218 | 
                        + * @author fenris  | 
                    |
| 219 | 
                        + */  | 
                    |
| 220 | 
                        +    var class_node_text = (function (_super) {
                       | 
                    |
| 221 | 
                        + __extends(class_node_text, _super);  | 
                    |
| 222 | 
                        + /**  | 
                    |
| 223 | 
                        + * @author fenris  | 
                    |
| 224 | 
                        + */  | 
                    |
| 225 | 
                        +        function class_node_text(content) {
                       | 
                    |
| 226 | 
                        + _super.call(this);  | 
                    |
| 227 | 
                        + this.content = content;  | 
                    |
| 228 | 
                        + }  | 
                    |
| 229 | 
                        + /**  | 
                    |
| 230 | 
                        + * @author fenris  | 
                    |
| 231 | 
                        + */  | 
                    |
| 232 | 
                        +        class_node_text.prototype.compile = function (depth) {
                       | 
                    |
| 233 | 
                        +            if (depth === void 0) { depth = 0; }
                       | 
                    |
| 234 | 
                        + return (indentation(depth) + this.content + "\n");  | 
                    |
| 235 | 
                        + };  | 
                    |
| 236 | 
                        + return class_node_text;  | 
                    |
| 237 | 
                        + }(class_node));  | 
                    |
| 238 | 
                        + lib_xml.class_node_text = class_node_text;  | 
                    |
| 239 | 
                        + /**  | 
                    |
| 240 | 
                        + * @author fenris  | 
                    |
| 241 | 
                        + */  | 
                    |
| 242 | 
                        +    var class_node_comment = (function (_super) {
                       | 
                    |
| 243 | 
                        + __extends(class_node_comment, _super);  | 
                    |
| 244 | 
                        + /**  | 
                    |
| 245 | 
                        + * @author fenris  | 
                    |
| 246 | 
                        + */  | 
                    |
| 247 | 
                        +        function class_node_comment(content) {
                       | 
                    |
| 248 | 
                        + _super.call(this);  | 
                    |
| 249 | 
                        + this.content = content;  | 
                    |
| 250 | 
                        + }  | 
                    |
| 251 | 
                        + /**  | 
                    |
| 252 | 
                        + * @author fenris  | 
                    |
| 253 | 
                        + */  | 
                    |
| 254 | 
                        +        class_node_comment.prototype.compile = function (depth) {
                       | 
                    |
| 255 | 
                        +            if (depth === void 0) { depth = 0; }
                       | 
                    |
| 256 | 
                        + return (indentation(depth) + "<!-- " + this.content + " -->" + "\n");  | 
                    |
| 257 | 
                        + };  | 
                    |
| 258 | 
                        + return class_node_comment;  | 
                    |
| 259 | 
                        + }(class_node));  | 
                    |
| 260 | 
                        + lib_xml.class_node_comment = class_node_comment;  | 
                    |
| 261 | 
                        + /**  | 
                    |
| 262 | 
                        + * @author fenris  | 
                    |
| 263 | 
                        + */  | 
                    |
| 264 | 
                        +    var class_node_complex = (function (_super) {
                       | 
                    |
| 265 | 
                        + __extends(class_node_complex, _super);  | 
                    |
| 266 | 
                        + /**  | 
                    |
| 267 | 
                        + * @author fenris  | 
                    |
| 268 | 
                        + */  | 
                    |
| 269 | 
                        +        function class_node_complex(name, attributes, children) {
                       | 
                    |
| 270 | 
                        +            if (attributes === void 0) { attributes = {}; }
                       | 
                    |
| 271 | 
                        +            if (children === void 0) { children = []; }
                       | 
                    |
| 272 | 
                        + _super.call(this);  | 
                    |
| 273 | 
                        + this.name = name;  | 
                    |
| 274 | 
                        + this.attributes = attributes;  | 
                    |
| 275 | 
                        + this.children = children;  | 
                    |
| 276 | 
                        + }  | 
                    |
| 277 | 
                        + /**  | 
                    |
| 278 | 
                        + * @author fenris  | 
                    |
| 279 | 
                        + */  | 
                    |
| 280 | 
                        +        class_node_complex.prototype.compile = function (depth) {
                       | 
                    |
| 281 | 
                        + var _this = this;  | 
                    |
| 282 | 
                        +            if (depth === void 0) { depth = 0; }
                       | 
                    |
| 283 | 
                        + var output = "";  | 
                    |
| 284 | 
                        +            var attributes = Object.keys(this.attributes).map(function (key) { return (" " + key + "=" + ("\"" + _this.attributes[key] + "\"")); }).join("");
                       | 
                    |
| 285 | 
                        + output += (indentation(depth) + "<" + this.name + attributes + ">" + "\n");  | 
                    |
| 286 | 
                        +            this.children.forEach(function (child) { return (output += child.compile(depth + 1)); });
                       | 
                    |
| 287 | 
                        + output += (indentation(depth) + "</" + this.name + ">" + "\n");  | 
                    |
| 288 | 
                        + return output;  | 
                    |
| 289 | 
                        + };  | 
                    |
| 290 | 
                        + return class_node_complex;  | 
                    |
| 291 | 
                        + }(class_node));  | 
                    |
| 292 | 
                        + lib_xml.class_node_complex = class_node_complex;  | 
                    |
| 293 | 
                        +})(lib_xml || (lib_xml = {}));
                       | 
                    |
| 294 | 
                        +/**  | 
                    |
| 295 | 
                        + * @author fenris  | 
                    |
| 296 | 
                        + */  | 
                    |
| 297 | 
                        +var lib_gnumake;  | 
                    |
| 298 | 
                        +(function (lib_gnumake) {
                       | 
                    |
| 299 | 
                        + /**  | 
                    |
| 300 | 
                        + * @author fenris  | 
                    |
| 301 | 
                        + */  | 
                    |
| 302 | 
                        +    var class_rule = (function () {
                       | 
                    |
| 303 | 
                        + /**  | 
                    |
| 304 | 
                        + * @author fenris  | 
                    |
| 305 | 
                        + */  | 
                    |
| 306 | 
                        +        // public constructor(name : string, dependencies : Array<string>, actions : Array<string>, phony : boolean = false) {
                       | 
                    |
| 307 | 
                        +        function class_rule(parameters) {
                       | 
                    |
| 308 | 
                        +            if (parameters === void 0) { parameters = {}; }
                       | 
                    |
| 309 | 
                        + this.name = fetch(parameters, "name", null, 2);  | 
                    |
| 310 | 
                        + this.dependencies = fetch(parameters, "dependencies", [], 0);  | 
                    |
| 311 | 
                        + this.actions = fetch(parameters, "actions", [], 0);  | 
                    |
| 312 | 
                        + this.phony = fetch(parameters, "phony", false, 0);  | 
                    |
| 313 | 
                        + }  | 
                    |
| 314 | 
                        + /**  | 
                    |
| 315 | 
                        + * @author fenris  | 
                    |
| 316 | 
                        + */  | 
                    |
| 317 | 
                        +        class_rule.prototype.actions_get = function () {
                       | 
                    |
| 318 | 
                        + return this.actions;  | 
                    |
| 319 | 
                        + };  | 
                    |
| 320 | 
                        + /**  | 
                    |
| 321 | 
                        + * @author fenris  | 
                    |
| 322 | 
                        + */  | 
                    |
| 323 | 
                        +        class_rule.prototype.compile = function (silent) {
                       | 
                    |
| 324 | 
                        +            if (silent === void 0) { silent = false; }
                       | 
                    |
| 325 | 
                        + var output = "";  | 
                    |
| 326 | 
                        +            output += (this.name + ":" + this.dependencies.map(function (dependency) { return (" " + dependency); }).join("") + "\n");
                       | 
                    |
| 327 | 
                        +            this.actions.forEach(function (action) { return (output += "\t" + (silent ? "@ " : "") + action + "\n"); });
                       | 
                    |
| 328 | 
                        + if (this.phony)  | 
                    |
| 329 | 
                        +                output += (".PHONY: " + this.name + "\n");
                       | 
                    |
| 330 | 
                        + return output;  | 
                    |
| 331 | 
                        + };  | 
                    |
| 332 | 
                        + return class_rule;  | 
                    |
| 333 | 
                        + }());  | 
                    |
| 334 | 
                        + lib_gnumake.class_rule = class_rule;  | 
                    |
| 335 | 
                        + /**  | 
                    |
| 336 | 
                        + * @author fenris  | 
                    |
| 337 | 
                        + */  | 
                    |
| 338 | 
                        +    var class_sheet = (function () {
                       | 
                    |
| 339 | 
                        + /**  | 
                    |
| 340 | 
                        + * @author fenris  | 
                    |
| 341 | 
                        + */  | 
                    |
| 342 | 
                        +        function class_sheet(rules, comments) {
                       | 
                    |
| 343 | 
                        +            if (comments === void 0) { comments = []; }
                       | 
                    |
| 344 | 
                        + this.rules = rules;  | 
                    |
| 345 | 
                        + this.comments = comments;  | 
                    |
| 346 | 
                        + }  | 
                    |
| 347 | 
                        + /**  | 
                    |
| 348 | 
                        + * @author fenris  | 
                    |
| 349 | 
                        + */  | 
                    |
| 350 | 
                        +        class_sheet.prototype.compile = function (silent) {
                       | 
                    |
| 351 | 
                        +            if (silent === void 0) { silent = false; }
                       | 
                    |
| 352 | 
                        + return ([]  | 
                    |
| 353 | 
                        +                .concat(this.comments.map(function (comment) { return ("# " + comment); }))
                       | 
                    |
| 354 | 
                        + .concat([""])  | 
                    |
| 355 | 
                        +                .concat(this.rules.map(function (rule) { return rule.compile(silent); }))
                       | 
                    |
| 356 | 
                        +                .join("\n"));
                       | 
                    |
| 357 | 
                        + };  | 
                    |
| 358 | 
                        + return class_sheet;  | 
                    |
| 359 | 
                        + }());  | 
                    |
| 360 | 
                        + lib_gnumake.class_sheet = class_sheet;  | 
                    |
| 361 | 
                        +})(lib_gnumake || (lib_gnumake = {}));
                       | 
                    |
| 362 | 
                        +/**  | 
                    |
| 363 | 
                        + * @author fenris  | 
                    |
| 364 | 
                        + */  | 
                    |
| 365 | 
                        +var lib_ant;  | 
                    |
| 366 | 
                        +(function (lib_ant) {
                       | 
                    |
| 367 | 
                        + /**  | 
                    |
| 368 | 
                        + * @author fenris  | 
                    |
| 369 | 
                        + */  | 
                    |
| 370 | 
                        +    var class_comment = (function () {
                       | 
                    |
| 371 | 
                        + /**  | 
                    |
| 372 | 
                        + * @author fenris  | 
                    |
| 373 | 
                        + */  | 
                    |
| 374 | 
                        +        function class_comment(content) {
                       | 
                    |
| 375 | 
                        + this.content = content;  | 
                    |
| 376 | 
                        + }  | 
                    |
| 377 | 
                        + /**  | 
                    |
| 378 | 
                        + * @author fenris  | 
                    |
| 379 | 
                        + */  | 
                    |
| 380 | 
                        +        class_comment.prototype.compile = function () {
                       | 
                    |
| 381 | 
                        + return (new lib_xml.class_node_comment(this.content));  | 
                    |
| 382 | 
                        + };  | 
                    |
| 383 | 
                        + return class_comment;  | 
                    |
| 384 | 
                        + }());  | 
                    |
| 385 | 
                        + lib_ant.class_comment = class_comment;  | 
                    |
| 386 | 
                        + /**  | 
                    |
| 387 | 
                        + * @author fenris  | 
                    |
| 388 | 
                        + */  | 
                    |
| 389 | 
                        +    var class_action = (function () {
                       | 
                    |
| 390 | 
                        + /**  | 
                    |
| 391 | 
                        + * @author fenris  | 
                    |
| 392 | 
                        + */  | 
                    |
| 393 | 
                        +        function class_action(representation) {
                       | 
                    |
| 394 | 
                        + this.representation = representation;  | 
                    |
| 395 | 
                        + }  | 
                    |
| 396 | 
                        + /**  | 
                    |
| 397 | 
                        + * @author fenris  | 
                    |
| 398 | 
                        + */  | 
                    |
| 399 | 
                        +        class_action.prototype.compile = function () {
                       | 
                    |
| 400 | 
                        + return this.representation;  | 
                    |
| 401 | 
                        + };  | 
                    |
| 402 | 
                        + return class_action;  | 
                    |
| 403 | 
                        + }());  | 
                    |
| 404 | 
                        + lib_ant.class_action = class_action;  | 
                    |
| 405 | 
                        + /**  | 
                    |
| 406 | 
                        + * @author fenris  | 
                    |
| 407 | 
                        + */  | 
                    |
| 408 | 
                        +    var class_target = (function () {
                       | 
                    |
| 409 | 
                        + /**  | 
                    |
| 410 | 
                        + * @author fenris  | 
                    |
| 411 | 
                        + */  | 
                    |
| 412 | 
                        +        function class_target(parameters) {
                       | 
                    |
| 413 | 
                        +            if (parameters === void 0) { parameters = {}; }
                       | 
                    |
| 414 | 
                        + this.name = fetch(parameters, "name", null, 2);  | 
                    |
| 415 | 
                        + this.dependencies = fetch(parameters, "dependencies", [], 1);  | 
                    |
| 416 | 
                        + this.actions = fetch(parameters, "actions", [], 0);  | 
                    |
| 417 | 
                        + }  | 
                    |
| 418 | 
                        + /**  | 
                    |
| 419 | 
                        + * @author fenris  | 
                    |
| 420 | 
                        + */  | 
                    |
| 421 | 
                        +        class_target.prototype.actions_get = function () {
                       | 
                    |
| 422 | 
                        + return this.actions;  | 
                    |
| 423 | 
                        + };  | 
                    |
| 424 | 
                        + /**  | 
                    |
| 425 | 
                        + * @author fenris  | 
                    |
| 426 | 
                        + */  | 
                    |
| 427 | 
                        +        class_target.prototype.compile = function () {
                       | 
                    |
| 428 | 
                        +            return (new lib_xml.class_node_complex("target", {
                       | 
                    |
| 429 | 
                        + "name": this.name,  | 
                    |
| 430 | 
                        +                "depends": this.dependencies.join(",")
                       | 
                    |
| 431 | 
                        +            }, this.actions.map(function (action) { return action.compile(); })));
                       | 
                    |
| 432 | 
                        + };  | 
                    |
| 433 | 
                        + return class_target;  | 
                    |
| 434 | 
                        + }());  | 
                    |
| 435 | 
                        + lib_ant.class_target = class_target;  | 
                    |
| 436 | 
                        + /**  | 
                    |
| 437 | 
                        + * @author fenris  | 
                    |
| 438 | 
                        + */  | 
                    |
| 439 | 
                        +    var class_project = (function () {
                       | 
                    |
| 440 | 
                        + /**  | 
                    |
| 441 | 
                        + * @author fenris  | 
                    |
| 442 | 
                        + */  | 
                    |
| 443 | 
                        +        function class_project(parameters) {
                       | 
                    |
| 444 | 
                        +            if (parameters === void 0) { parameters = {}; }
                       | 
                    |
| 445 | 
                        + this.name = fetch(parameters, "name", null, 2);  | 
                    |
| 446 | 
                        + this.default_ = fetch(parameters, "default", null, 2);  | 
                    |
| 447 | 
                        + this.targets = fetch(parameters, "targets", [], 1);  | 
                    |
| 448 | 
                        + this.comments = fetch(parameters, "comments", [], 0);  | 
                    |
| 449 | 
                        + }  | 
                    |
| 450 | 
                        + /**  | 
                    |
| 451 | 
                        + * @author fenris  | 
                    |
| 452 | 
                        + */  | 
                    |
| 453 | 
                        +        class_project.prototype.compile = function () {
                       | 
                    |
| 454 | 
                        +            return (new lib_xml.class_node_complex("project", {
                       | 
                    |
| 455 | 
                        + "name": this.name,  | 
                    |
| 456 | 
                        + "default": this.default_,  | 
                    |
| 457 | 
                        + }, ([]  | 
                    |
| 458 | 
                        +                .concat(this.comments.map(function (comment) { return comment.compile(); }))
                       | 
                    |
| 459 | 
                        +                .concat(this.targets.map(function (target) { return target.compile(); })))));
                       | 
                    |
| 460 | 
                        + };  | 
                    |
| 461 | 
                        + return class_project;  | 
                    |
| 462 | 
                        + }());  | 
                    |
| 463 | 
                        + lib_ant.class_project = class_project;  | 
                    |
| 464 | 
                        +})(lib_ant || (lib_ant = {}));
                       | 
                    |
| 465 | 
                        +/**  | 
                    |
| 466 | 
                        + * @author fenris  | 
                    |
| 467 | 
                        + */  | 
                    |
| 468 | 
                        +var __idcounter = 0;  | 
                    |
| 469 | 
                        +/**  | 
                    |
| 470 | 
                        + * @author fenris  | 
                    |
| 471 | 
                        + */  | 
                    |
| 472 | 
                        +function genid(prefix) {
                       | 
                    |
| 473 | 
                        +    if (prefix === void 0) { prefix = ""; }
                       | 
                    |
| 474 | 
                        + return (prefix + (__idcounter++).toString(16));  | 
                    |
| 475 | 
                        +}  | 
                    |
| 476 | 
                        +/**  | 
                    |
| 477 | 
                        + * @author fenris  | 
                    |
| 478 | 
                        + */  | 
                    |
| 479 | 
                        +function wait(dependencies, action) {
                       | 
                    |
| 480 | 
                        +    if (dependencies.length > 0) {
                       | 
                    |
| 481 | 
                        +        dependencies[0](function () { wait(dependencies.slice(1), action); });
                       | 
                    |
| 482 | 
                        + }  | 
                    |
| 483 | 
                        +    else {
                       | 
                    |
| 484 | 
                        + action();  | 
                    |
| 485 | 
                        + }  | 
                    |
| 486 | 
                        +}  | 
                    |
| 487 | 
                        +/**  | 
                    |
| 488 | 
                        + * @author fenris  | 
                    |
| 489 | 
                        + */  | 
                    |
| 490 | 
                        +function executor_chain(state, executors) {
                       | 
                    |
| 491 | 
                        +    if (state === void 0) { state = null; }
                       | 
                    |
| 492 | 
                        +    return (function (resolve, reject) {
                       | 
                    |
| 493 | 
                        +        if (executors.length == 0) {
                       | 
                    |
| 494 | 
                        + resolve(state);  | 
                    |
| 495 | 
                        + }  | 
                    |
| 496 | 
                        +        else {
                       | 
                    |
| 497 | 
                        +            executors[0](state)(function resolve_(state_) {
                       | 
                    |
| 498 | 
                        + executor_chain(state_, executors.slice(1))(resolve, reject);  | 
                    |
| 499 | 
                        +            }, function reject_(reason_) {
                       | 
                    |
| 500 | 
                        + reject(reason_);  | 
                    |
| 501 | 
                        + });  | 
                    |
| 502 | 
                        + }  | 
                    |
| 503 | 
                        + });  | 
                    |
| 504 | 
                        +}  | 
                    |
| 505 | 
                        +/**  | 
                    |
| 506 | 
                        + * @author fenris  | 
                    |
| 507 | 
                        + */  | 
                    |
| 508 | 
                        +function fetch(structure, fieldname, fallback, escalation) {
                       | 
                    |
| 509 | 
                        +    if (fallback === void 0) { fallback = undefined; }
                       | 
                    |
| 510 | 
                        +    if (escalation === void 0) { escalation = 1; }
                       | 
                    |
| 511 | 
                        +    if (fieldname in structure) {
                       | 
                    |
| 512 | 
                        + return structure[fieldname];  | 
                    |
| 513 | 
                        + }  | 
                    |
| 514 | 
                        +    else {
                       | 
                    |
| 515 | 
                        + var message = "field '" + fieldname + "' missing in structure";  | 
                    |
| 516 | 
                        +        switch (escalation) {
                       | 
                    |
| 517 | 
                        +            case 0: {
                       | 
                    |
| 518 | 
                        + return fallback;  | 
                    |
| 519 | 
                        + break;  | 
                    |
| 520 | 
                        + }  | 
                    |
| 521 | 
                        +            case 1: {
                       | 
                    |
| 522 | 
                        +                message += ("; using fallback-value '" + String(fallback) + "'");
                       | 
                    |
| 523 | 
                        +                (new class_message(message, { "type": "warning", "prefix": "koralle" })).stderr();
                       | 
                    |
| 524 | 
                        + return fallback;  | 
                    |
| 525 | 
                        + break;  | 
                    |
| 526 | 
                        + }  | 
                    |
| 527 | 
                        +            case 2: {
                       | 
                    |
| 528 | 
                        + throw (new Error(message));  | 
                    |
| 529 | 
                        + break;  | 
                    |
| 530 | 
                        + }  | 
                    |
| 531 | 
                        +            default: {
                       | 
                    |
| 532 | 
                        + break;  | 
                    |
| 533 | 
                        + }  | 
                    |
| 534 | 
                        + }  | 
                    |
| 535 | 
                        + }  | 
                    |
| 536 | 
                        +}  | 
                    |
| 537 | 
                        +/**  | 
                    |
| 538 | 
                        + * @author fenris  | 
                    |
| 539 | 
                        + */  | 
                    |
| 540 | 
                        +function read_json(path) {
                       | 
                    |
| 541 | 
                        +    return (function (resolve, reject) {
                       | 
                    |
| 542 | 
                        +        _fs.readFile(path, {
                       | 
                    |
| 543 | 
                        + "encoding": "utf-8",  | 
                    |
| 544 | 
                        + "flag": "r",  | 
                    |
| 545 | 
                        +        }, function (error, content) {
                       | 
                    |
| 546 | 
                        +            if (error != null) {
                       | 
                    |
| 547 | 
                        + reject(error);  | 
                    |
| 548 | 
                        + }  | 
                    |
| 549 | 
                        +            else {
                       | 
                    |
| 550 | 
                        +                try {
                       | 
                    |
| 551 | 
                        + var data = JSON.parse(content);  | 
                    |
| 552 | 
                        + resolve(data);  | 
                    |
| 553 | 
                        + }  | 
                    |
| 554 | 
                        +                catch (exception) {
                       | 
                    |
| 555 | 
                        + reject((exception));  | 
                    |
| 556 | 
                        + }  | 
                    |
| 557 | 
                        + }  | 
                    |
| 558 | 
                        + });  | 
                    |
| 559 | 
                        + });  | 
                    |
| 560 | 
                        +}  | 
                    |
| 561 | 
                        +/**  | 
                    |
| 562 | 
                        + * @author fenris  | 
                    |
| 563 | 
                        + */  | 
                    |
| 564 | 
                        +var class_error = (function (_super) {
                       | 
                    |
| 565 | 
                        + __extends(class_error, _super);  | 
                    |
| 566 | 
                        + /**  | 
                    |
| 567 | 
                        + * @author fenris  | 
                    |
| 568 | 
                        + */  | 
                    |
| 569 | 
                        +    function class_error(text, sub) {
                       | 
                    |
| 570 | 
                        +        if (sub === void 0) { sub = []; }
                       | 
                    |
| 571 | 
                        + _super.call(this, text);  | 
                    |
| 572 | 
                        + this.text = text;  | 
                    |
| 573 | 
                        + this.sub = sub;  | 
                    |
| 574 | 
                        + }  | 
                    |
| 575 | 
                        + /**  | 
                    |
| 576 | 
                        + * @author fenris  | 
                    |
| 577 | 
                        + */  | 
                    |
| 578 | 
                        +    class_error.prototype.toString = function () {
                       | 
                    |
| 579 | 
                        +        return (this.text + " / " + this.sub.map(function (error) { return error.toString(); }).join(" ; "));
                       | 
                    |
| 580 | 
                        + };  | 
                    |
| 581 | 
                        + return class_error;  | 
                    |
| 582 | 
                        +}(Error));  | 
                    |
| 583 | 
                        +/**  | 
                    |
| 584 | 
                        + * @author fenris  | 
                    |
| 585 | 
                        + */  | 
                    |
| 586 | 
                        +var lib_path;  | 
                    |
| 587 | 
                        +(function (lib_path) {
                       | 
                    |
| 588 | 
                        + /**  | 
                    |
| 589 | 
                        + * @author fenris  | 
                    |
| 590 | 
                        + */  | 
                    |
| 591 | 
                        +    var class_step = (function () {
                       | 
                    |
| 592 | 
                        +        function class_step() {
                       | 
                    |
| 593 | 
                        + }  | 
                    |
| 594 | 
                        + return class_step;  | 
                    |
| 595 | 
                        + }());  | 
                    |
| 596 | 
                        + /**  | 
                    |
| 597 | 
                        + * @author fenris  | 
                    |
| 598 | 
                        + */  | 
                    |
| 599 | 
                        +    var class_step_stay = (function (_super) {
                       | 
                    |
| 600 | 
                        + __extends(class_step_stay, _super);  | 
                    |
| 601 | 
                        +        function class_step_stay() {
                       | 
                    |
| 602 | 
                        + _super.apply(this, arguments);  | 
                    |
| 603 | 
                        + }  | 
                    |
| 604 | 
                        + /**  | 
                    |
| 605 | 
                        + * @author fenris  | 
                    |
| 606 | 
                        + */  | 
                    |
| 607 | 
                        +        class_step_stay.prototype.toString = function () {
                       | 
                    |
| 608 | 
                        + return ".";  | 
                    |
| 609 | 
                        + };  | 
                    |
| 610 | 
                        + return class_step_stay;  | 
                    |
| 611 | 
                        + }(class_step));  | 
                    |
| 612 | 
                        + /**  | 
                    |
| 613 | 
                        + * @author fenris  | 
                    |
| 614 | 
                        + */  | 
                    |
| 615 | 
                        +    var class_step_back = (function (_super) {
                       | 
                    |
| 616 | 
                        + __extends(class_step_back, _super);  | 
                    |
| 617 | 
                        +        function class_step_back() {
                       | 
                    |
| 618 | 
                        + _super.apply(this, arguments);  | 
                    |
| 619 | 
                        + }  | 
                    |
| 620 | 
                        + /**  | 
                    |
| 621 | 
                        + * @author fenris  | 
                    |
| 622 | 
                        + */  | 
                    |
| 623 | 
                        +        class_step_back.prototype.toString = function () {
                       | 
                    |
| 624 | 
                        + return "..";  | 
                    |
| 625 | 
                        + };  | 
                    |
| 626 | 
                        + return class_step_back;  | 
                    |
| 627 | 
                        + }(class_step));  | 
                    |
| 628 | 
                        + /**  | 
                    |
| 629 | 
                        + * @author fenris  | 
                    |
| 630 | 
                        + */  | 
                    |
| 631 | 
                        +    var class_step_regular = (function (_super) {
                       | 
                    |
| 632 | 
                        + __extends(class_step_regular, _super);  | 
                    |
| 633 | 
                        + /**  | 
                    |
| 634 | 
                        + * @author fenris  | 
                    |
| 635 | 
                        + */  | 
                    |
| 636 | 
                        +        function class_step_regular(name) {
                       | 
                    |
| 637 | 
                        + _super.call(this);  | 
                    |
| 638 | 
                        + this.name = name;  | 
                    |
| 639 | 
                        + }  | 
                    |
| 640 | 
                        + /**  | 
                    |
| 641 | 
                        + * @author fenris  | 
                    |
| 642 | 
                        + */  | 
                    |
| 643 | 
                        +        class_step_regular.prototype.toString = function () {
                       | 
                    |
| 644 | 
                        + return this.name;  | 
                    |
| 645 | 
                        + };  | 
                    |
| 646 | 
                        + return class_step_regular;  | 
                    |
| 647 | 
                        + }(class_step));  | 
                    |
| 648 | 
                        + /**  | 
                    |
| 649 | 
                        + * @author fenris  | 
                    |
| 650 | 
                        + */  | 
                    |
| 651 | 
                        +    function step_read(s) {
                       | 
                    |
| 652 | 
                        +        switch (s) {
                       | 
                    |
| 653 | 
                        +            case ".": {
                       | 
                    |
| 654 | 
                        + return (new class_step_stay());  | 
                    |
| 655 | 
                        + }  | 
                    |
| 656 | 
                        +            case "..": {
                       | 
                    |
| 657 | 
                        + return (new class_step_back());  | 
                    |
| 658 | 
                        + }  | 
                    |
| 659 | 
                        +            default: {
                       | 
                    |
| 660 | 
                        + return (new class_step_regular(s));  | 
                    |
| 661 | 
                        + }  | 
                    |
| 662 | 
                        + }  | 
                    |
| 663 | 
                        + }  | 
                    |
| 664 | 
                        + /**  | 
                    |
| 665 | 
                        + * @author fenris  | 
                    |
| 666 | 
                        + */  | 
                    |
| 667 | 
                        +    var class_path = (function () {
                       | 
                    |
| 668 | 
                        + /**  | 
                    |
| 669 | 
                        + * @author fenris  | 
                    |
| 670 | 
                        + */  | 
                    |
| 671 | 
                        +        function class_path(steps) {
                       | 
                    |
| 672 | 
                        +            if (steps === void 0) { steps = []; }
                       | 
                    |
| 673 | 
                        + this.steps = steps;  | 
                    |
| 674 | 
                        + }  | 
                    |
| 675 | 
                        + /**  | 
                    |
| 676 | 
                        + * @author fenris  | 
                    |
| 677 | 
                        + */  | 
                    |
| 678 | 
                        +        class_path.prototype.add = function (step) {
                       | 
                    |
| 679 | 
                        + return (new class_path(this.steps.concat([step]))).normalize();  | 
                    |
| 680 | 
                        + };  | 
                    |
| 681 | 
                        + /**  | 
                    |
| 682 | 
                        + * @author fenris  | 
                    |
| 683 | 
                        + */  | 
                    |
| 684 | 
                        +        class_path.prototype.extend = function (path) {
                       | 
                    |
| 685 | 
                        + return (new class_path(this.steps.concat(path.steps))).normalize();  | 
                    |
| 686 | 
                        + };  | 
                    |
| 687 | 
                        + /**  | 
                    |
| 688 | 
                        + * @author fenris  | 
                    |
| 689 | 
                        + */  | 
                    |
| 690 | 
                        +        class_path.prototype.normalize = function () {
                       | 
                    |
| 691 | 
                        + var steps = this.steps;  | 
                    |
| 692 | 
                        + // filter "stay"  | 
                    |
| 693 | 
                        +            {
                       | 
                    |
| 694 | 
                        +                steps = steps.filter(function (step) { return !(step instanceof class_step_stay); });
                       | 
                    |
| 695 | 
                        + }  | 
                    |
| 696 | 
                        + // filter "regular-back"  | 
                    |
| 697 | 
                        +            {
                       | 
                    |
| 698 | 
                        +                var _loop_1 = function() {
                       | 
                    |
| 699 | 
                        + // console.info(new class_path(steps).toString());  | 
                    |
| 700 | 
                        +                    if (steps.length < 1) {
                       | 
                    |
| 701 | 
                        + return "break";  | 
                    |
| 702 | 
                        + }  | 
                    |
| 703 | 
                        +                    else {
                       | 
                    |
| 704 | 
                        + var last_1 = steps[0];  | 
                    |
| 705 | 
                        +                        var found = steps.slice(1).some(function (step, index) {
                       | 
                    |
| 706 | 
                        +                            // console.info("--", step.toString());
                       | 
                    |
| 707 | 
                        +                            if (step instanceof class_step_back) {
                       | 
                    |
| 708 | 
                        +                                if (last_1 instanceof class_step_regular) {
                       | 
                    |
| 709 | 
                        + steps.splice(index, 2);  | 
                    |
| 710 | 
                        + return true;  | 
                    |
| 711 | 
                        + }  | 
                    |
| 712 | 
                        + }  | 
                    |
| 713 | 
                        + last_1 = step;  | 
                    |
| 714 | 
                        + return false;  | 
                    |
| 715 | 
                        + });  | 
                    |
| 716 | 
                        +                        if (!found) {
                       | 
                    |
| 717 | 
                        + return "break";  | 
                    |
| 718 | 
                        + }  | 
                    |
| 719 | 
                        + }  | 
                    |
| 720 | 
                        + };  | 
                    |
| 721 | 
                        +                while (true) {
                       | 
                    |
| 722 | 
                        + var state_1 = _loop_1();  | 
                    |
| 723 | 
                        + if (state_1 === "break") break;  | 
                    |
| 724 | 
                        + }  | 
                    |
| 725 | 
                        + }  | 
                    |
| 726 | 
                        + return (new class_path(steps));  | 
                    |
| 727 | 
                        + };  | 
                    |
| 728 | 
                        + /**  | 
                    |
| 729 | 
                        + * @author fenris  | 
                    |
| 730 | 
                        + */  | 
                    |
| 731 | 
                        +        class_path.prototype.toString = function () {
                       | 
                    |
| 732 | 
                        +            return ((this.steps.length == 0) ? "./" : this.steps.map(function (step) { return (step.toString() + "/"); }).join(""));
                       | 
                    |
| 733 | 
                        + };  | 
                    |
| 734 | 
                        + /**  | 
                    |
| 735 | 
                        + * @author fenris  | 
                    |
| 736 | 
                        + */  | 
                    |
| 737 | 
                        +        class_path.read = function (s) {
                       | 
                    |
| 738 | 
                        +            var parts = s.split("/");
                       | 
                    |
| 739 | 
                        + if (parts[parts.length - 1] == "")  | 
                    |
| 740 | 
                        + parts.pop();  | 
                    |
| 741 | 
                        + return (new class_path(parts.map(step_read)));  | 
                    |
| 742 | 
                        + };  | 
                    |
| 743 | 
                        + return class_path;  | 
                    |
| 744 | 
                        + }());  | 
                    |
| 745 | 
                        + lib_path.class_path = class_path;  | 
                    |
| 746 | 
                        + /**  | 
                    |
| 747 | 
                        + * @author fenris  | 
                    |
| 748 | 
                        + */  | 
                    |
| 749 | 
                        +    function path_read(s) {
                       | 
                    |
| 750 | 
                        + return class_path.read(s);  | 
                    |
| 751 | 
                        + }  | 
                    |
| 752 | 
                        + lib_path.path_read = path_read;  | 
                    |
| 753 | 
                        + /**  | 
                    |
| 754 | 
                        + * @author fenris  | 
                    |
| 755 | 
                        + */  | 
                    |
| 756 | 
                        +    var class_location = (function () {
                       | 
                    |
| 757 | 
                        + /**  | 
                    |
| 758 | 
                        + * @author fenris  | 
                    |
| 759 | 
                        + */  | 
                    |
| 760 | 
                        +        function class_location(anchor, path) {
                       | 
                    |
| 761 | 
                        + this.anchor = anchor;  | 
                    |
| 762 | 
                        + this.path = path;  | 
                    |
| 763 | 
                        + }  | 
                    |
| 764 | 
                        + /**  | 
                    |
| 765 | 
                        + * @author fenris  | 
                    |
| 766 | 
                        + */  | 
                    |
| 767 | 
                        +        class_location.prototype.extend = function (path) {
                       | 
                    |
| 768 | 
                        + return (new class_location(this.anchor, this.path.extend(path)));  | 
                    |
| 769 | 
                        + };  | 
                    |
| 770 | 
                        + /**  | 
                    |
| 771 | 
                        + * @author fenris  | 
                    |
| 772 | 
                        + */  | 
                    |
| 773 | 
                        +        class_location.prototype.go_thither = function () {
                       | 
                    |
| 774 | 
                        + process.chdir(this.toString());  | 
                    |
| 775 | 
                        + };  | 
                    |
| 776 | 
                        + /**  | 
                    |
| 777 | 
                        + * @author fenris  | 
                    |
| 778 | 
                        + */  | 
                    |
| 779 | 
                        +        class_location.prototype.expedition = function (core) {
                       | 
                    |
| 780 | 
                        + var that = this;  | 
                    |
| 781 | 
                        + var current = location_read(process.cwd());  | 
                    |
| 782 | 
                        +            function begin() {
                       | 
                    |
| 783 | 
                        +                // (new class_message("changing directory to '" + that.toString() + "'")).stderr();
                       | 
                    |
| 784 | 
                        + that.go_thither();  | 
                    |
| 785 | 
                        + }  | 
                    |
| 786 | 
                        +            function end() {
                       | 
                    |
| 787 | 
                        +                // (new class_message("changing directory to '" + current.toString() + "'")).stderr();
                       | 
                    |
| 788 | 
                        + current.go_thither();  | 
                    |
| 789 | 
                        + }  | 
                    |
| 790 | 
                        + begin();  | 
                    |
| 791 | 
                        + core(end);  | 
                    |
| 792 | 
                        + };  | 
                    |
| 793 | 
                        + /**  | 
                    |
| 794 | 
                        + * @author fenris  | 
                    |
| 795 | 
                        + */  | 
                    |
| 796 | 
                        +        class_location.prototype.toString = function () {
                       | 
                    |
| 797 | 
                        + return (((this.anchor != null) ? this.anchor : "") + this.path.toString());  | 
                    |
| 798 | 
                        + };  | 
                    |
| 799 | 
                        + /**  | 
                    |
| 800 | 
                        + * @author fenris  | 
                    |
| 801 | 
                        + */  | 
                    |
| 802 | 
                        +        class_location.read = function (s) {
                       | 
                    |
| 803 | 
                        +            if (s[0] == "/") {
                       | 
                    |
| 804 | 
                        +                return (new class_location("/", path_read(s.slice(1))));
                       | 
                    |
| 805 | 
                        + }  | 
                    |
| 806 | 
                        +            else {
                       | 
                    |
| 807 | 
                        + return (new class_location(null, path_read(s)));  | 
                    |
| 808 | 
                        + }  | 
                    |
| 809 | 
                        + };  | 
                    |
| 810 | 
                        + /**  | 
                    |
| 811 | 
                        + * @author fenris  | 
                    |
| 812 | 
                        + */  | 
                    |
| 813 | 
                        +        class_location.current = function () {
                       | 
                    |
| 814 | 
                        + return class_location.read(process.cwd());  | 
                    |
| 815 | 
                        + };  | 
                    |
| 816 | 
                        + return class_location;  | 
                    |
| 817 | 
                        + }());  | 
                    |
| 818 | 
                        + lib_path.class_location = class_location;  | 
                    |
| 819 | 
                        + /**  | 
                    |
| 820 | 
                        + * @author fenris  | 
                    |
| 821 | 
                        + */  | 
                    |
| 822 | 
                        +    function location_read(s) {
                       | 
                    |
| 823 | 
                        + return class_location.read(s);  | 
                    |
| 824 | 
                        + }  | 
                    |
| 825 | 
                        + lib_path.location_read = location_read;  | 
                    |
| 826 | 
                        + /**  | 
                    |
| 827 | 
                        + * @author fenris  | 
                    |
| 828 | 
                        + */  | 
                    |
| 829 | 
                        +    var class_filepointer = (function () {
                       | 
                    |
| 830 | 
                        + /**  | 
                    |
| 831 | 
                        + * @author fenris  | 
                    |
| 832 | 
                        + */  | 
                    |
| 833 | 
                        +        function class_filepointer(location, filename) {
                       | 
                    |
| 834 | 
                        + this.location = location;  | 
                    |
| 835 | 
                        + this.filename = filename;  | 
                    |
| 836 | 
                        + }  | 
                    |
| 837 | 
                        + /**  | 
                    |
| 838 | 
                        + * @author fenris  | 
                    |
| 839 | 
                        + */  | 
                    |
| 840 | 
                        +        class_filepointer.prototype.foo = function (filepointer) {
                       | 
                    |
| 841 | 
                        + return (new class_filepointer(this.location.extend(filepointer.location.path), filepointer.filename));  | 
                    |
| 842 | 
                        + };  | 
                    |
| 843 | 
                        + /**  | 
                    |
| 844 | 
                        + * @author fenris  | 
                    |
| 845 | 
                        + */  | 
                    |
| 846 | 
                        +        class_filepointer.prototype.toString = function () {
                       | 
                    |
| 847 | 
                        + return (this.location.toString() /* + "/"*/ + ((this.filename == null) ? "" : this.filename));  | 
                    |
| 848 | 
                        + };  | 
                    |
| 849 | 
                        + /**  | 
                    |
| 850 | 
                        + * @author fenris  | 
                    |
| 851 | 
                        + */  | 
                    |
| 852 | 
                        +        class_filepointer.read = function (s) {
                       | 
                    |
| 853 | 
                        +            var parts = s.split("/");
                       | 
                    |
| 854 | 
                        + var last = parts[parts.length - 1];  | 
                    |
| 855 | 
                        +            if (last == "") {
                       | 
                    |
| 856 | 
                        +                return (new class_filepointer(location_read(parts.join("/")), null));
                       | 
                    |
| 857 | 
                        + }  | 
                    |
| 858 | 
                        +            else {
                       | 
                    |
| 859 | 
                        +                return (new class_filepointer(location_read(parts.slice(0, parts.length - 1).join("/")), last));
                       | 
                    |
| 860 | 
                        + }  | 
                    |
| 861 | 
                        + };  | 
                    |
| 862 | 
                        + return class_filepointer;  | 
                    |
| 863 | 
                        + }());  | 
                    |
| 864 | 
                        + lib_path.class_filepointer = class_filepointer;  | 
                    |
| 865 | 
                        + /**  | 
                    |
| 866 | 
                        + * @author fenris  | 
                    |
| 867 | 
                        + */  | 
                    |
| 868 | 
                        +    function filepointer_read(s) {
                       | 
                    |
| 869 | 
                        + return class_filepointer.read(s);  | 
                    |
| 870 | 
                        + }  | 
                    |
| 871 | 
                        + lib_path.filepointer_read = filepointer_read;  | 
                    |
| 872 | 
                        +})(lib_path || (lib_path = {}));
                       | 
                    |
| 873 | 
                        +/**  | 
                    |
| 874 | 
                        + * @author fenris  | 
                    |
| 875 | 
                        + */  | 
                    |
| 876 | 
                        +var class_action = (function () {
                       | 
                    |
| 877 | 
                        + /**  | 
                    |
| 878 | 
                        + * @author fenris  | 
                    |
| 879 | 
                        + */  | 
                    |
| 880 | 
                        +    function class_action() {
                       | 
                    |
| 881 | 
                        + }  | 
                    |
| 882 | 
                        + return class_action;  | 
                    |
| 883 | 
                        +}());  | 
                    |
| 884 | 
                        +/**  | 
                    |
| 885 | 
                        + * @author fenris  | 
                    |
| 886 | 
                        + */  | 
                    |
| 887 | 
                        +var class_action_adhoc = (function (_super) {
                       | 
                    |
| 888 | 
                        + __extends(class_action_adhoc, _super);  | 
                    |
| 889 | 
                        + /**  | 
                    |
| 890 | 
                        + * @author fenris  | 
                    |
| 891 | 
                        + */  | 
                    |
| 892 | 
                        +    function class_action_adhoc() {
                       | 
                    |
| 893 | 
                        + _super.call(this);  | 
                    |
| 894 | 
                        + }  | 
                    |
| 895 | 
                        + return class_action_adhoc;  | 
                    |
| 896 | 
                        +}(class_action));  | 
                    |
| 897 | 
                        +/**  | 
                    |
| 898 | 
                        + * @author fenris  | 
                    |
| 899 | 
                        + */  | 
                    |
| 900 | 
                        +var class_action_exec = (function (_super) {
                       | 
                    |
| 901 | 
                        + __extends(class_action_exec, _super);  | 
                    |
| 902 | 
                        + /**  | 
                    |
| 903 | 
                        + * @author fenris  | 
                    |
| 904 | 
                        + */  | 
                    |
| 905 | 
                        +    function class_action_exec(paths_input, paths_output, path_script, path_interpreter) {
                       | 
                    |
| 906 | 
                        + _super.call(this);  | 
                    |
| 907 | 
                        + this.paths_input = paths_input;  | 
                    |
| 908 | 
                        + this.paths_output = paths_output;  | 
                    |
| 909 | 
                        + this.path_script = path_script;  | 
                    |
| 910 | 
                        + this.path_interpreter = path_interpreter;  | 
                    |
| 911 | 
                        + }  | 
                    |
| 912 | 
                        + /**  | 
                    |
| 913 | 
                        + * @desc for defining directly how the action is to be converted into a target-piece  | 
                    |
| 914 | 
                        + * @author fenris  | 
                    |
| 915 | 
                        + */  | 
                    |
| 916 | 
                        +    class_action_exec.prototype.compilation = function (target_identifier) {
                       | 
                    |
| 917 | 
                        +        switch (target_identifier) {
                       | 
                    |
| 918 | 
                        +            case "gnumake": {
                       | 
                    |
| 919 | 
                        +                switch (configuration["system"]) {
                       | 
                    |
| 920 | 
                        +                    case "unix": {
                       | 
                    |
| 921 | 
                        + var parts = [];  | 
                    |
| 922 | 
                        + if (this.path_interpreter != null)  | 
                    |
| 923 | 
                        + parts.push(this.path_interpreter.toString());  | 
                    |
| 924 | 
                        + parts.push(this.path_script.toString());  | 
                    |
| 925 | 
                        +                        parts.push(this.paths_input.map(function (filepointer) { return filepointer.toString(); }).join(","));
                       | 
                    |
| 926 | 
                        +                        parts.push(this.paths_output.map(function (filepointer) { return filepointer.toString(); }).join(","));
                       | 
                    |
| 927 | 
                        +                        return parts.join(" ");
                       | 
                    |
| 928 | 
                        + break;  | 
                    |
| 929 | 
                        + }  | 
                    |
| 930 | 
                        +                    default: {
                       | 
                    |
| 931 | 
                        +                        throw (new Error("not implemented"));
                       | 
                    |
| 932 | 
                        + break;  | 
                    |
| 933 | 
                        + }  | 
                    |
| 934 | 
                        + }  | 
                    |
| 935 | 
                        + break;  | 
                    |
| 936 | 
                        + }  | 
                    |
| 937 | 
                        +            case "ant": {
                       | 
                    |
| 938 | 
                        +                if (this.path_interpreter == null) {
                       | 
                    |
| 939 | 
                        +                    return (new lib_ant.class_action(new lib_xml.class_node_complex("exec", { "executable": this.path_script.toString() }, [
                       | 
                    |
| 940 | 
                        +                        new lib_xml.class_node_complex("arg", { "value": "'" + this.paths_input.map(function (filepointer) { return filepointer.toString(); }).join(",") + "'" }),
                       | 
                    |
| 941 | 
                        +                        new lib_xml.class_node_complex("arg", { "value": "'" + this.paths_output.map(function (filepointer) { return filepointer.toString(); }).join(",") + "'" }),
                       | 
                    |
| 942 | 
                        + ])));  | 
                    |
| 943 | 
                        + }  | 
                    |
| 944 | 
                        +                else {
                       | 
                    |
| 945 | 
                        +                    return (new lib_ant.class_action(new lib_xml.class_node_complex("exec", { "executable": this.path_interpreter.toString() }, [
                       | 
                    |
| 946 | 
                        +                        new lib_xml.class_node_complex("arg", { "value": this.path_script.toString() }),
                       | 
                    |
| 947 | 
                        +                        new lib_xml.class_node_complex("arg", { "value": "'" + this.paths_input.map(function (filepointer) { return filepointer.toString(); }).join(",") + "'" }),
                       | 
                    |
| 948 | 
                        +                        new lib_xml.class_node_complex("arg", { "value": "'" + this.paths_output.map(function (filepointer) { return filepointer.toString(); }).join(",") + "'" }),
                       | 
                    |
| 949 | 
                        + ])));  | 
                    |
| 950 | 
                        + }  | 
                    |
| 951 | 
                        + break;  | 
                    |
| 952 | 
                        + }  | 
                    |
| 953 | 
                        +            default: {
                       | 
                    |
| 954 | 
                        +                throw (new Error("unhandled target '" + target_identifier + "'"));
                       | 
                    |
| 955 | 
                        + break;  | 
                    |
| 956 | 
                        + }  | 
                    |
| 957 | 
                        + }  | 
                    |
| 958 | 
                        + };  | 
                    |
| 959 | 
                        + return class_action_exec;  | 
                    |
| 960 | 
                        +}(class_action_adhoc));  | 
                    |
| 961 | 
                        +/**  | 
                    |
| 962 | 
                        + * @author fenris  | 
                    |
| 963 | 
                        + */  | 
                    |
| 964 | 
                        +var class_action_echo = (function (_super) {
                       | 
                    |
| 965 | 
                        + __extends(class_action_echo, _super);  | 
                    |
| 966 | 
                        + /**  | 
                    |
| 967 | 
                        + * @author fenris  | 
                    |
| 968 | 
                        + */  | 
                    |
| 969 | 
                        +    function class_action_echo(message) {
                       | 
                    |
| 970 | 
                        + _super.call(this);  | 
                    |
| 971 | 
                        + this.message = message;  | 
                    |
| 972 | 
                        + }  | 
                    |
| 973 | 
                        + /**  | 
                    |
| 974 | 
                        + * @desc for defining directly how the action is to be converted into a target-piece  | 
                    |
| 975 | 
                        + * @todo escape message  | 
                    |
| 976 | 
                        + * @author fenris  | 
                    |
| 977 | 
                        + */  | 
                    |
| 978 | 
                        +    class_action_echo.prototype.compilation = function (target_identifier) {
                       | 
                    |
| 979 | 
                        +        switch (target_identifier) {
                       | 
                    |
| 980 | 
                        +            case "gnumake": {
                       | 
                    |
| 981 | 
                        +                switch (configuration["system"]) {
                       | 
                    |
| 982 | 
                        +                    case "unix": {
                       | 
                    |
| 983 | 
                        + var parts = [];  | 
                    |
| 984 | 
                        +                        parts.push("echo");
                       | 
                    |
| 985 | 
                        +                        parts.push("'" + this.message + "'");
                       | 
                    |
| 986 | 
                        +                        return parts.join(" ");
                       | 
                    |
| 987 | 
                        + break;  | 
                    |
| 988 | 
                        + }  | 
                    |
| 989 | 
                        +                    default: {
                       | 
                    |
| 990 | 
                        +                        throw (new Error("not implemented"));
                       | 
                    |
| 991 | 
                        + break;  | 
                    |
| 992 | 
                        + }  | 
                    |
| 993 | 
                        + }  | 
                    |
| 994 | 
                        + break;  | 
                    |
| 995 | 
                        + }  | 
                    |
| 996 | 
                        +            case "ant": {
                       | 
                    |
| 997 | 
                        +                return (new lib_ant.class_action(new lib_xml.class_node_complex("echo", { "message": this.message })));
                       | 
                    |
| 998 | 
                        + break;  | 
                    |
| 999 | 
                        + }  | 
                    |
| 1000 | 
                        +            default: {
                       | 
                    |
| 1001 | 
                        +                throw (new Error("unhandled target '" + target_identifier + "'"));
                       | 
                    |
| 1002 | 
                        + break;  | 
                    |
| 1003 | 
                        + }  | 
                    |
| 1004 | 
                        + }  | 
                    |
| 1005 | 
                        + };  | 
                    |
| 1006 | 
                        + return class_action_echo;  | 
                    |
| 1007 | 
                        +}(class_action_adhoc));  | 
                    |
| 1008 | 
                        +/**  | 
                    |
| 1009 | 
                        + * @author fenris  | 
                    |
| 1010 | 
                        + */  | 
                    |
| 1011 | 
                        +var class_action_koralle = (function (_super) {
                       | 
                    |
| 1012 | 
                        + __extends(class_action_koralle, _super);  | 
                    |
| 1013 | 
                        + /**  | 
                    |
| 1014 | 
                        + * @author fenris  | 
                    |
| 1015 | 
                        + */  | 
                    |
| 1016 | 
                        +    function class_action_koralle(filepointer_in, filepointer_out, target, raw) {
                       | 
                    |
| 1017 | 
                        + _super.call(this);  | 
                    |
| 1018 | 
                        + this.filepointer_in = filepointer_in;  | 
                    |
| 1019 | 
                        + this.filepointer_out = filepointer_out;  | 
                    |
| 1020 | 
                        + this.target = target;  | 
                    |
| 1021 | 
                        + this.raw = raw;  | 
                    |
| 1022 | 
                        + }  | 
                    |
| 1023 | 
                        + /**  | 
                    |
| 1024 | 
                        + * @desc for defining directly how the action is to be converted into a target-piece  | 
                    |
| 1025 | 
                        + * @author fenris  | 
                    |
| 1026 | 
                        + */  | 
                    |
| 1027 | 
                        +    class_action_koralle.prototype.compilation = function (target_identifier) {
                       | 
                    |
| 1028 | 
                        +        switch (target_identifier) {
                       | 
                    |
| 1029 | 
                        +            case "gnumake": {
                       | 
                    |
| 1030 | 
                        +                switch (configuration["system"]) {
                       | 
                    |
| 1031 | 
                        +                    case "unix": {
                       | 
                    |
| 1032 | 
                        + var parts = [];  | 
                    |
| 1033 | 
                        +                        parts.push("koralle");
                       | 
                    |
| 1034 | 
                        +                        parts.push("--target=" + this.target);
                       | 
                    |
| 1035 | 
                        + if (this.raw)  | 
                    |
| 1036 | 
                        +                            parts.push("--raw");
                       | 
                    |
| 1037 | 
                        + parts.push(this.filepointer_in.toString());  | 
                    |
| 1038 | 
                        +                        return (parts.join(" ") + " > " + this.filepointer_out.toString());
                       | 
                    |
| 1039 | 
                        + }  | 
                    |
| 1040 | 
                        +                    default: {
                       | 
                    |
| 1041 | 
                        +                        throw (new Error("not implemented"));
                       | 
                    |
| 1042 | 
                        + }  | 
                    |
| 1043 | 
                        + }  | 
                    |
| 1044 | 
                        + break;  | 
                    |
| 1045 | 
                        + }  | 
                    |
| 1046 | 
                        +            case "ant": {
                       | 
                    |
| 1047 | 
                        +                return (new lib_ant.class_action(new lib_xml.class_node_complex("exec", {
                       | 
                    |
| 1048 | 
                        + "executable": "koralle",  | 
                    |
| 1049 | 
                        + "output": this.filepointer_out.toString(),  | 
                    |
| 1050 | 
                        + }, ([]  | 
                    |
| 1051 | 
                        + .concat([  | 
                    |
| 1052 | 
                        +                    new lib_xml.class_node_complex("arg", { "value": "--target=" + this.target })
                       | 
                    |
| 1053 | 
                        + ])  | 
                    |
| 1054 | 
                        + .concat(this.raw  | 
                    |
| 1055 | 
                        + ?  | 
                    |
| 1056 | 
                        + [  | 
                    |
| 1057 | 
                        +                            new lib_xml.class_node_complex("arg", { "value": "--raw" }),
                       | 
                    |
| 1058 | 
                        + ]  | 
                    |
| 1059 | 
                        + :  | 
                    |
| 1060 | 
                        + [])  | 
                    |
| 1061 | 
                        + .concat([  | 
                    |
| 1062 | 
                        +                    new lib_xml.class_node_complex("arg", { "value": this.filepointer_in.toString() })
                       | 
                    |
| 1063 | 
                        + ])))));  | 
                    |
| 1064 | 
                        + }  | 
                    |
| 1065 | 
                        +            default: {
                       | 
                    |
| 1066 | 
                        +                throw (new Error("unhandled target '" + target_identifier + "'"));
                       | 
                    |
| 1067 | 
                        + }  | 
                    |
| 1068 | 
                        + }  | 
                    |
| 1069 | 
                        + };  | 
                    |
| 1070 | 
                        + return class_action_koralle;  | 
                    |
| 1071 | 
                        +}(class_action_adhoc));  | 
                    |
| 1072 | 
                        +/**  | 
                    |
| 1073 | 
                        + * @author fenris  | 
                    |
| 1074 | 
                        + */  | 
                    |
| 1075 | 
                        +var class_action_build = (function (_super) {
                       | 
                    |
| 1076 | 
                        + __extends(class_action_build, _super);  | 
                    |
| 1077 | 
                        + /**  | 
                    |
| 1078 | 
                        + * @author fenris  | 
                    |
| 1079 | 
                        + */  | 
                    |
| 1080 | 
                        +    function class_action_build(filepointer, workdir) {
                       | 
                    |
| 1081 | 
                        + _super.call(this);  | 
                    |
| 1082 | 
                        + this.filepointer = filepointer;  | 
                    |
| 1083 | 
                        + this.workdir = workdir;  | 
                    |
| 1084 | 
                        + }  | 
                    |
| 1085 | 
                        + return class_action_build;  | 
                    |
| 1086 | 
                        +}(class_action_adhoc));  | 
                    |
| 1087 | 
                        +/**  | 
                    |
| 1088 | 
                        + * @author fenris  | 
                    |
| 1089 | 
                        + */  | 
                    |
| 1090 | 
                        +var class_action_gnumake = (function (_super) {
                       | 
                    |
| 1091 | 
                        + __extends(class_action_gnumake, _super);  | 
                    |
| 1092 | 
                        + /**  | 
                    |
| 1093 | 
                        + * @author fenris  | 
                    |
| 1094 | 
                        + */  | 
                    |
| 1095 | 
                        +    function class_action_gnumake(filepointer, workdir) {
                       | 
                    |
| 1096 | 
                        + _super.call(this, filepointer, workdir);  | 
                    |
| 1097 | 
                        + }  | 
                    |
| 1098 | 
                        + /**  | 
                    |
| 1099 | 
                        + * @desc for defining directly how the action is to be converted into a target-piece  | 
                    |
| 1100 | 
                        + * @author fenris  | 
                    |
| 1101 | 
                        + */  | 
                    |
| 1102 | 
                        +    class_action_gnumake.prototype.compilation = function (target_identifier) {
                       | 
                    |
| 1103 | 
                        +        switch (target_identifier) {
                       | 
                    |
| 1104 | 
                        +            case "gnumake": {
                       | 
                    |
| 1105 | 
                        +                switch (configuration["system"]) {
                       | 
                    |
| 1106 | 
                        +                    case "unix": {
                       | 
                    |
| 1107 | 
                        + // cmd_cd1  | 
                    |
| 1108 | 
                        + var cmd_cd1 = void 0;  | 
                    |
| 1109 | 
                        +                        {
                       | 
                    |
| 1110 | 
                        + var parts = [];  | 
                    |
| 1111 | 
                        +                            parts.push("cd");
                       | 
                    |
| 1112 | 
                        + parts.push(this.workdir.toString());  | 
                    |
| 1113 | 
                        +                            cmd_cd1 = parts.join(" ");
                       | 
                    |
| 1114 | 
                        + }  | 
                    |
| 1115 | 
                        + // cmd_cd2  | 
                    |
| 1116 | 
                        + var cmd_cd2 = void 0;  | 
                    |
| 1117 | 
                        +                        {
                       | 
                    |
| 1118 | 
                        + var parts = [];  | 
                    |
| 1119 | 
                        +                            parts.push("cd");
                       | 
                    |
| 1120 | 
                        +                            parts.push("-");
                       | 
                    |
| 1121 | 
                        +                            cmd_cd2 = parts.join(" ") + " > /dev/null";
                       | 
                    |
| 1122 | 
                        + }  | 
                    |
| 1123 | 
                        + // cmd_make  | 
                    |
| 1124 | 
                        + var cmd_make = void 0;  | 
                    |
| 1125 | 
                        +                        {
                       | 
                    |
| 1126 | 
                        + var parts = [];  | 
                    |
| 1127 | 
                        +                            parts.push("make");
                       | 
                    |
| 1128 | 
                        +                            parts.push("--no-print-directory");
                       | 
                    |
| 1129 | 
                        +                            parts.push("--file=" + this.filepointer.toString());
                       | 
                    |
| 1130 | 
                        +                            cmd_make = parts.join(" ");
                       | 
                    |
| 1131 | 
                        + }  | 
                    |
| 1132 | 
                        +                        return ((this.workdir == null) ? [cmd_make] : [cmd_cd1, cmd_make, cmd_cd2]).join(" && ");
                       | 
                    |
| 1133 | 
                        + }  | 
                    |
| 1134 | 
                        +                    default: {
                       | 
                    |
| 1135 | 
                        +                        throw (new Error("not implemented"));
                       | 
                    |
| 1136 | 
                        + }  | 
                    |
| 1137 | 
                        + }  | 
                    |
| 1138 | 
                        + break;  | 
                    |
| 1139 | 
                        + }  | 
                    |
| 1140 | 
                        +            case "ant": {
                       | 
                    |
| 1141 | 
                        + return (new lib_ant.class_action((this.workdir == null)  | 
                    |
| 1142 | 
                        + ?  | 
                    |
| 1143 | 
                        +                        new lib_xml.class_node_complex("exec", {
                       | 
                    |
| 1144 | 
                        + "executable": "make",  | 
                    |
| 1145 | 
                        + }, [  | 
                    |
| 1146 | 
                        +                            new lib_xml.class_node_complex("arg", { "value": "--no-print-directory" }),
                       | 
                    |
| 1147 | 
                        +                            new lib_xml.class_node_complex("arg", { "value": "--file=" + this.filepointer.toString() }),
                       | 
                    |
| 1148 | 
                        + ])  | 
                    |
| 1149 | 
                        + :  | 
                    |
| 1150 | 
                        +                        new lib_xml.class_node_complex("exec", {
                       | 
                    |
| 1151 | 
                        + "executable": "make",  | 
                    |
| 1152 | 
                        + "dir": this.workdir.toString(),  | 
                    |
| 1153 | 
                        + }, [  | 
                    |
| 1154 | 
                        +                            new lib_xml.class_node_complex("arg", { "value": "--no-print-directory" }),
                       | 
                    |
| 1155 | 
                        +                            new lib_xml.class_node_complex("arg", { "value": "--file=" + this.filepointer.toString() }),
                       | 
                    |
| 1156 | 
                        + ])));  | 
                    |
| 1157 | 
                        + }  | 
                    |
| 1158 | 
                        +            default: {
                       | 
                    |
| 1159 | 
                        +                throw (new Error("unhandled target '" + target_identifier + "'"));
                       | 
                    |
| 1160 | 
                        + }  | 
                    |
| 1161 | 
                        + }  | 
                    |
| 1162 | 
                        + };  | 
                    |
| 1163 | 
                        + return class_action_gnumake;  | 
                    |
| 1164 | 
                        +}(class_action_build));  | 
                    |
| 1165 | 
                        +/**  | 
                    |
| 1166 | 
                        + * @author fenris  | 
                    |
| 1167 | 
                        + */  | 
                    |
| 1168 | 
                        +var class_action_ant = (function (_super) {
                       | 
                    |
| 1169 | 
                        + __extends(class_action_ant, _super);  | 
                    |
| 1170 | 
                        + /**  | 
                    |
| 1171 | 
                        + * @author fenris  | 
                    |
| 1172 | 
                        + */  | 
                    |
| 1173 | 
                        +    function class_action_ant(filepointer, workdir) {
                       | 
                    |
| 1174 | 
                        + _super.call(this, filepointer, workdir);  | 
                    |
| 1175 | 
                        + }  | 
                    |
| 1176 | 
                        + /**  | 
                    |
| 1177 | 
                        + * @desc for defining directly how the action is to be converted into a target-piece  | 
                    |
| 1178 | 
                        + * @author fenris  | 
                    |
| 1179 | 
                        + */  | 
                    |
| 1180 | 
                        +    class_action_ant.prototype.compilation = function (target_identifier) {
                       | 
                    |
| 1181 | 
                        +        switch (target_identifier) {
                       | 
                    |
| 1182 | 
                        +            case "gnumake": {
                       | 
                    |
| 1183 | 
                        +                switch (configuration["system"]) {
                       | 
                    |
| 1184 | 
                        +                    case "unix": {
                       | 
                    |
| 1185 | 
                        + // cmd_cd1  | 
                    |
| 1186 | 
                        + var cmd_cd1 = void 0;  | 
                    |
| 1187 | 
                        +                        {
                       | 
                    |
| 1188 | 
                        + var parts = [];  | 
                    |
| 1189 | 
                        +                            parts.push("cd");
                       | 
                    |
| 1190 | 
                        + parts.push(this.workdir.toString());  | 
                    |
| 1191 | 
                        +                            cmd_cd1 = parts.join(" ");
                       | 
                    |
| 1192 | 
                        + }  | 
                    |
| 1193 | 
                        + // cmd_cd2  | 
                    |
| 1194 | 
                        + var cmd_cd2 = void 0;  | 
                    |
| 1195 | 
                        +                        {
                       | 
                    |
| 1196 | 
                        + var parts = [];  | 
                    |
| 1197 | 
                        +                            parts.push("cd");
                       | 
                    |
| 1198 | 
                        +                            parts.push("-");
                       | 
                    |
| 1199 | 
                        +                            cmd_cd2 = parts.join(" ") + " > /dev/null";
                       | 
                    |
| 1200 | 
                        + }  | 
                    |
| 1201 | 
                        + // cmd_ant  | 
                    |
| 1202 | 
                        + var cmd_ant = void 0;  | 
                    |
| 1203 | 
                        +                        {
                       | 
                    |
| 1204 | 
                        + var parts = [];  | 
                    |
| 1205 | 
                        +                            parts.push("ant");
                       | 
                    |
| 1206 | 
                        + parts.push(this.filepointer.toString());  | 
                    |
| 1207 | 
                        +                            cmd_ant = parts.join(" ");
                       | 
                    |
| 1208 | 
                        + }  | 
                    |
| 1209 | 
                        +                        return ((this.workdir == null) ? [cmd_ant] : [cmd_cd1, cmd_ant, cmd_cd2]).join(" && ");
                       | 
                    |
| 1210 | 
                        + }  | 
                    |
| 1211 | 
                        +                    default: {
                       | 
                    |
| 1212 | 
                        +                        throw (new Error("not implemented"));
                       | 
                    |
| 1213 | 
                        + }  | 
                    |
| 1214 | 
                        + }  | 
                    |
| 1215 | 
                        + break;  | 
                    |
| 1216 | 
                        + }  | 
                    |
| 1217 | 
                        +            case "ant": {
                       | 
                    |
| 1218 | 
                        + return (new lib_ant.class_action((this.workdir == null)  | 
                    |
| 1219 | 
                        + ?  | 
                    |
| 1220 | 
                        +                        new lib_xml.class_node_complex("ant", {
                       | 
                    |
| 1221 | 
                        + "antfile": this.filepointer.toString(),  | 
                    |
| 1222 | 
                        + })  | 
                    |
| 1223 | 
                        + :  | 
                    |
| 1224 | 
                        +                        new lib_xml.class_node_complex("ant", {
                       | 
                    |
| 1225 | 
                        + "antfile": this.filepointer.toString(),  | 
                    |
| 1226 | 
                        + "dir": this.workdir.toString(),  | 
                    |
| 1227 | 
                        + })));  | 
                    |
| 1228 | 
                        + }  | 
                    |
| 1229 | 
                        +            default: {
                       | 
                    |
| 1230 | 
                        +                throw (new Error("unhandled target '" + target_identifier + "'"));
                       | 
                    |
| 1231 | 
                        + }  | 
                    |
| 1232 | 
                        + }  | 
                    |
| 1233 | 
                        + };  | 
                    |
| 1234 | 
                        + return class_action_ant;  | 
                    |
| 1235 | 
                        +}(class_action_build));  | 
                    |
| 1236 | 
                        +/**  | 
                    |
| 1237 | 
                        + * @author fenris  | 
                    |
| 1238 | 
                        + */  | 
                    |
| 1239 | 
                        +var class_action_mkdir = (function (_super) {
                       | 
                    |
| 1240 | 
                        + __extends(class_action_mkdir, _super);  | 
                    |
| 1241 | 
                        + /**  | 
                    |
| 1242 | 
                        + * @author fenris  | 
                    |
| 1243 | 
                        + */  | 
                    |
| 1244 | 
                        +    function class_action_mkdir(location) {
                       | 
                    |
| 1245 | 
                        + _super.call(this);  | 
                    |
| 1246 | 
                        + this.location = location;  | 
                    |
| 1247 | 
                        + }  | 
                    |
| 1248 | 
                        + /**  | 
                    |
| 1249 | 
                        + * @desc for defining directly how the action is to be converted into a target-piece  | 
                    |
| 1250 | 
                        + * @author fenris  | 
                    |
| 1251 | 
                        + */  | 
                    |
| 1252 | 
                        +    class_action_mkdir.prototype.compilation = function (target_identifier) {
                       | 
                    |
| 1253 | 
                        +        switch (target_identifier) {
                       | 
                    |
| 1254 | 
                        +            case "gnumake": {
                       | 
                    |
| 1255 | 
                        +                switch (configuration["system"]) {
                       | 
                    |
| 1256 | 
                        +                    case "unix": {
                       | 
                    |
| 1257 | 
                        + var parts = [];  | 
                    |
| 1258 | 
                        +                        parts.push("mkdir");
                       | 
                    |
| 1259 | 
                        +                        parts.push("--parents");
                       | 
                    |
| 1260 | 
                        + parts.push(this.location.toString());  | 
                    |
| 1261 | 
                        +                        return parts.join(" ");
                       | 
                    |
| 1262 | 
                        + break;  | 
                    |
| 1263 | 
                        + }  | 
                    |
| 1264 | 
                        +                    default: {
                       | 
                    |
| 1265 | 
                        +                        throw (new Error("not implemented"));
                       | 
                    |
| 1266 | 
                        + break;  | 
                    |
| 1267 | 
                        + }  | 
                    |
| 1268 | 
                        + }  | 
                    |
| 1269 | 
                        + break;  | 
                    |
| 1270 | 
                        + }  | 
                    |
| 1271 | 
                        +            case "ant": {
                       | 
                    |
| 1272 | 
                        +                return (new lib_ant.class_action(new lib_xml.class_node_complex("mkdir", { "dir": this.location.toString() })));
                       | 
                    |
| 1273 | 
                        + break;  | 
                    |
| 1274 | 
                        + }  | 
                    |
| 1275 | 
                        +            default: {
                       | 
                    |
| 1276 | 
                        +                throw (new Error("unhandled target '" + target_identifier + "'"));
                       | 
                    |
| 1277 | 
                        + break;  | 
                    |
| 1278 | 
                        + }  | 
                    |
| 1279 | 
                        + }  | 
                    |
| 1280 | 
                        + };  | 
                    |
| 1281 | 
                        + return class_action_mkdir;  | 
                    |
| 1282 | 
                        +}(class_action_adhoc));  | 
                    |
| 1283 | 
                        +/**  | 
                    |
| 1284 | 
                        + * @author fenris  | 
                    |
| 1285 | 
                        + */  | 
                    |
| 1286 | 
                        +var class_action_touch = (function (_super) {
                       | 
                    |
| 1287 | 
                        + __extends(class_action_touch, _super);  | 
                    |
| 1288 | 
                        + /**  | 
                    |
| 1289 | 
                        + * @author fenris  | 
                    |
| 1290 | 
                        + */  | 
                    |
| 1291 | 
                        +    function class_action_touch(filepointer) {
                       | 
                    |
| 1292 | 
                        + _super.call(this);  | 
                    |
| 1293 | 
                        + this.filepointer = filepointer;  | 
                    |
| 1294 | 
                        + }  | 
                    |
| 1295 | 
                        + /**  | 
                    |
| 1296 | 
                        + * @desc for defining directly how the action is to be converted into a target-piece  | 
                    |
| 1297 | 
                        + * @author fenris  | 
                    |
| 1298 | 
                        + */  | 
                    |
| 1299 | 
                        +    class_action_touch.prototype.compilation = function (target_identifier) {
                       | 
                    |
| 1300 | 
                        +        switch (target_identifier) {
                       | 
                    |
| 1301 | 
                        +            case "gnumake": {
                       | 
                    |
| 1302 | 
                        +                switch (configuration["system"]) {
                       | 
                    |
| 1303 | 
                        +                    case "unix": {
                       | 
                    |
| 1304 | 
                        + var parts = [];  | 
                    |
| 1305 | 
                        +                        parts.push("touch");
                       | 
                    |
| 1306 | 
                        + parts.push(this.filepointer.toString());  | 
                    |
| 1307 | 
                        +                        return parts.join(" ");
                       | 
                    |
| 1308 | 
                        + }  | 
                    |
| 1309 | 
                        +                    default: {
                       | 
                    |
| 1310 | 
                        +                        throw (new Error("not implemented"));
                       | 
                    |
| 1311 | 
                        + }  | 
                    |
| 1312 | 
                        + }  | 
                    |
| 1313 | 
                        + }  | 
                    |
| 1314 | 
                        +            case "ant": {
                       | 
                    |
| 1315 | 
                        +                return (new lib_ant.class_action(new lib_xml.class_node_complex("touch", { "file": this.filepointer.toString() })));
                       | 
                    |
| 1316 | 
                        + }  | 
                    |
| 1317 | 
                        +            default: {
                       | 
                    |
| 1318 | 
                        +                throw (new Error("unhandled target '" + target_identifier + "'"));
                       | 
                    |
| 1319 | 
                        + break;  | 
                    |
| 1320 | 
                        + }  | 
                    |
| 1321 | 
                        + }  | 
                    |
| 1322 | 
                        + };  | 
                    |
| 1323 | 
                        + return class_action_touch;  | 
                    |
| 1324 | 
                        +}(class_action_adhoc));  | 
                    |
| 1325 | 
                        +/**  | 
                    |
| 1326 | 
                        + * @author fenris  | 
                    |
| 1327 | 
                        + */  | 
                    |
| 1328 | 
                        +var class_action_copy = (function (_super) {
                       | 
                    |
| 1329 | 
                        + __extends(class_action_copy, _super);  | 
                    |
| 1330 | 
                        + /**  | 
                    |
| 1331 | 
                        + * @author fenris  | 
                    |
| 1332 | 
                        + */  | 
                    |
| 1333 | 
                        +    function class_action_copy(filepointer_from, filepointer_to, folder) {
                       | 
                    |
| 1334 | 
                        + _super.call(this);  | 
                    |
| 1335 | 
                        + this.filepointer_from = filepointer_from;  | 
                    |
| 1336 | 
                        + this.filepointer_to = filepointer_to;  | 
                    |
| 1337 | 
                        + this.folder = folder;  | 
                    |
| 1338 | 
                        + }  | 
                    |
| 1339 | 
                        + /**  | 
                    |
| 1340 | 
                        + * @desc for defining directly how the action is to be converted into a target-piece  | 
                    |
| 1341 | 
                        + * @author fenris  | 
                    |
| 1342 | 
                        + */  | 
                    |
| 1343 | 
                        +    class_action_copy.prototype.compilation = function (target_identifier) {
                       | 
                    |
| 1344 | 
                        +        switch (target_identifier) {
                       | 
                    |
| 1345 | 
                        +            case "gnumake": {
                       | 
                    |
| 1346 | 
                        +                switch (configuration["system"]) {
                       | 
                    |
| 1347 | 
                        +                    case "unix": {
                       | 
                    |
| 1348 | 
                        + var parts = [];  | 
                    |
| 1349 | 
                        +                        parts.push("cp");
                       | 
                    |
| 1350 | 
                        +                        if (this.folder) {
                       | 
                    |
| 1351 | 
                        +                            parts.push("--recursive");
                       | 
                    |
| 1352 | 
                        +                            parts.push("--update");
                       | 
                    |
| 1353 | 
                        +                            parts.push("--verbose");
                       | 
                    |
| 1354 | 
                        + parts.push((new lib_path.class_filepointer(this.filepointer_from.location, "*")).toString());  | 
                    |
| 1355 | 
                        + }  | 
                    |
| 1356 | 
                        +                        else {
                       | 
                    |
| 1357 | 
                        + parts.push(this.filepointer_from.toString());  | 
                    |
| 1358 | 
                        + }  | 
                    |
| 1359 | 
                        + parts.push(this.filepointer_to.toString());  | 
                    |
| 1360 | 
                        +                        return parts.join(" ");
                       | 
                    |
| 1361 | 
                        + break;  | 
                    |
| 1362 | 
                        + }  | 
                    |
| 1363 | 
                        +                    default: {
                       | 
                    |
| 1364 | 
                        +                        throw (new Error("not implemented"));
                       | 
                    |
| 1365 | 
                        + break;  | 
                    |
| 1366 | 
                        + }  | 
                    |
| 1367 | 
                        + }  | 
                    |
| 1368 | 
                        + break;  | 
                    |
| 1369 | 
                        + }  | 
                    |
| 1370 | 
                        +            case "ant": {
                       | 
                    |
| 1371 | 
                        +                if (!this.folder) {
                       | 
                    |
| 1372 | 
                        +                    return (new lib_ant.class_action(new lib_xml.class_node_complex("copy", {
                       | 
                    |
| 1373 | 
                        + "file": this.filepointer_from.toString(),  | 
                    |
| 1374 | 
                        + "tofile": this.filepointer_to.toString(),  | 
                    |
| 1375 | 
                        + })));  | 
                    |
| 1376 | 
                        + }  | 
                    |
| 1377 | 
                        +                else {
                       | 
                    |
| 1378 | 
                        +                    return (new lib_ant.class_action(new lib_xml.class_node_complex("copy", {
                       | 
                    |
| 1379 | 
                        + "todir": this.filepointer_to.toString(),  | 
                    |
| 1380 | 
                        + }, [  | 
                    |
| 1381 | 
                        +                        new lib_xml.class_node_complex("fileset", {
                       | 
                    |
| 1382 | 
                        + "dir": this.filepointer_from.toString(),  | 
                    |
| 1383 | 
                        + })  | 
                    |
| 1384 | 
                        + ])));  | 
                    |
| 1385 | 
                        + }  | 
                    |
| 1386 | 
                        + break;  | 
                    |
| 1387 | 
                        + }  | 
                    |
| 1388 | 
                        +            default: {
                       | 
                    |
| 1389 | 
                        +                throw (new Error("unhandled target '" + target_identifier + "'"));
                       | 
                    |
| 1390 | 
                        + break;  | 
                    |
| 1391 | 
                        + }  | 
                    |
| 1392 | 
                        + }  | 
                    |
| 1393 | 
                        + };  | 
                    |
| 1394 | 
                        + return class_action_copy;  | 
                    |
| 1395 | 
                        +}(class_action_adhoc));  | 
                    |
| 1396 | 
                        +/**  | 
                    |
| 1397 | 
                        + * @author fenris  | 
                    |
| 1398 | 
                        + */  | 
                    |
| 1399 | 
                        +var class_action_concat = (function (_super) {
                       | 
                    |
| 1400 | 
                        + __extends(class_action_concat, _super);  | 
                    |
| 1401 | 
                        + /**  | 
                    |
| 1402 | 
                        + * @author fenris  | 
                    |
| 1403 | 
                        + */  | 
                    |
| 1404 | 
                        +    function class_action_concat(filepointers_from, filepointer_to) {
                       | 
                    |
| 1405 | 
                        + _super.call(this);  | 
                    |
| 1406 | 
                        + this.filepointers_from = filepointers_from;  | 
                    |
| 1407 | 
                        + this.filepointer_to = filepointer_to;  | 
                    |
| 1408 | 
                        + }  | 
                    |
| 1409 | 
                        + /**  | 
                    |
| 1410 | 
                        + * @desc for defining directly how the action is to be converted into a target-piece  | 
                    |
| 1411 | 
                        + * @author fenris  | 
                    |
| 1412 | 
                        + */  | 
                    |
| 1413 | 
                        +    class_action_concat.prototype.compilation = function (target_identifier) {
                       | 
                    |
| 1414 | 
                        +        switch (target_identifier) {
                       | 
                    |
| 1415 | 
                        +            case "gnumake": {
                       | 
                    |
| 1416 | 
                        +                switch (configuration["system"]) {
                       | 
                    |
| 1417 | 
                        +                    case "unix": {
                       | 
                    |
| 1418 | 
                        + var parts_1 = [];  | 
                    |
| 1419 | 
                        +                        parts_1.push("cat");
                       | 
                    |
| 1420 | 
                        +                        this.filepointers_from.forEach(function (filepointer) { return parts_1.push(filepointer.toString()); });
                       | 
                    |
| 1421 | 
                        +                        parts_1.push(">");
                       | 
                    |
| 1422 | 
                        + parts_1.push(this.filepointer_to.toString());  | 
                    |
| 1423 | 
                        +                        return parts_1.join(" ");
                       | 
                    |
| 1424 | 
                        + }  | 
                    |
| 1425 | 
                        +                    default: {
                       | 
                    |
| 1426 | 
                        +                        throw (new Error("not implemented"));
                       | 
                    |
| 1427 | 
                        + }  | 
                    |
| 1428 | 
                        + }  | 
                    |
| 1429 | 
                        + }  | 
                    |
| 1430 | 
                        +            case "ant": {
                       | 
                    |
| 1431 | 
                        +                return (new lib_ant.class_action(new lib_xml.class_node_complex("concat", { "destfile": this.filepointer_to.toString() }, [
                       | 
                    |
| 1432 | 
                        +                    new lib_xml.class_node_complex("filelist", { "dir": "." }, this.filepointers_from.map(function (filepointer) {
                       | 
                    |
| 1433 | 
                        +                        return (new lib_xml.class_node_complex("file", { "name": filepointer.toString() }));
                       | 
                    |
| 1434 | 
                        + }))  | 
                    |
| 1435 | 
                        + ])));  | 
                    |
| 1436 | 
                        + }  | 
                    |
| 1437 | 
                        +            default: {
                       | 
                    |
| 1438 | 
                        +                throw (new Error("unhandled target '" + target_identifier + "'"));
                       | 
                    |
| 1439 | 
                        + }  | 
                    |
| 1440 | 
                        + }  | 
                    |
| 1441 | 
                        + };  | 
                    |
| 1442 | 
                        + return class_action_concat;  | 
                    |
| 1443 | 
                        +}(class_action_adhoc));  | 
                    |
| 1444 | 
                        +/**  | 
                    |
| 1445 | 
                        + * @author fenris  | 
                    |
| 1446 | 
                        + */  | 
                    |
| 1447 | 
                        +var class_action_lessc = (function (_super) {
                       | 
                    |
| 1448 | 
                        + __extends(class_action_lessc, _super);  | 
                    |
| 1449 | 
                        + /**  | 
                    |
| 1450 | 
                        + * @author fenris  | 
                    |
| 1451 | 
                        + */  | 
                    |
| 1452 | 
                        +    function class_action_lessc(filepointer_from, filepointer_to) {
                       | 
                    |
| 1453 | 
                        + _super.call(this);  | 
                    |
| 1454 | 
                        + this.filepointer_from = filepointer_from;  | 
                    |
| 1455 | 
                        + this.filepointer_to = filepointer_to;  | 
                    |
| 1456 | 
                        + }  | 
                    |
| 1457 | 
                        + /**  | 
                    |
| 1458 | 
                        + * @author fenris  | 
                    |
| 1459 | 
                        + */  | 
                    |
| 1460 | 
                        +    class_action_lessc.prototype.compilation = function (target_identifier) {
                       | 
                    |
| 1461 | 
                        +        switch (target_identifier) {
                       | 
                    |
| 1462 | 
                        +            case "gnumake": {
                       | 
                    |
| 1463 | 
                        +                switch (configuration["system"]) {
                       | 
                    |
| 1464 | 
                        +                    case "unix": {
                       | 
                    |
| 1465 | 
                        + var parts = [];  | 
                    |
| 1466 | 
                        +                        parts.push("lessc");
                       | 
                    |
| 1467 | 
                        + parts.push(this.filepointer_from.toString());  | 
                    |
| 1468 | 
                        + parts.push(this.filepointer_to.toString());  | 
                    |
| 1469 | 
                        +                        return parts.join(" ");
                       | 
                    |
| 1470 | 
                        + break;  | 
                    |
| 1471 | 
                        + }  | 
                    |
| 1472 | 
                        +                    default: {
                       | 
                    |
| 1473 | 
                        +                        throw (new Error("not implemented"));
                       | 
                    |
| 1474 | 
                        + break;  | 
                    |
| 1475 | 
                        + }  | 
                    |
| 1476 | 
                        + }  | 
                    |
| 1477 | 
                        + break;  | 
                    |
| 1478 | 
                        + }  | 
                    |
| 1479 | 
                        +            case "ant": {
                       | 
                    |
| 1480 | 
                        +                return (new lib_ant.class_action(new lib_xml.class_node_complex("exec", {
                       | 
                    |
| 1481 | 
                        + "executable": "lessc",  | 
                    |
| 1482 | 
                        + "output": this.filepointer_to.toString(),  | 
                    |
| 1483 | 
                        + }, [  | 
                    |
| 1484 | 
                        +                    new lib_xml.class_node_complex("arg", { "value": this.filepointer_from.toString() }),
                       | 
                    |
| 1485 | 
                        + ])));  | 
                    |
| 1486 | 
                        + break;  | 
                    |
| 1487 | 
                        + }  | 
                    |
| 1488 | 
                        +            default: {
                       | 
                    |
| 1489 | 
                        +                throw (new Error("unhandled target '" + target_identifier + "'"));
                       | 
                    |
| 1490 | 
                        + break;  | 
                    |
| 1491 | 
                        + }  | 
                    |
| 1492 | 
                        + }  | 
                    |
| 1493 | 
                        + };  | 
                    |
| 1494 | 
                        + return class_action_lessc;  | 
                    |
| 1495 | 
                        +}(class_action_adhoc));  | 
                    |
| 1496 | 
                        +/**  | 
                    |
| 1497 | 
                        + * @author fenris  | 
                    |
| 1498 | 
                        + */  | 
                    |
| 1499 | 
                        +var class_action_tsc = (function (_super) {
                       | 
                    |
| 1500 | 
                        + __extends(class_action_tsc, _super);  | 
                    |
| 1501 | 
                        + /**  | 
                    |
| 1502 | 
                        + * @author fenris  | 
                    |
| 1503 | 
                        + */  | 
                    |
| 1504 | 
                        +    function class_action_tsc(paths_input, path_output, target, allowUnreachableCode, declaration) {
                       | 
                    |
| 1505 | 
                        + _super.call(this);  | 
                    |
| 1506 | 
                        + this.paths_input = paths_input;  | 
                    |
| 1507 | 
                        + this.path_output = path_output;  | 
                    |
| 1508 | 
                        + this.target = target;  | 
                    |
| 1509 | 
                        + this.allowUnreachableCode = allowUnreachableCode;  | 
                    |
| 1510 | 
                        + this.declaration = declaration;  | 
                    |
| 1511 | 
                        + }  | 
                    |
| 1512 | 
                        + /**  | 
                    |
| 1513 | 
                        + * @author fenris  | 
                    |
| 1514 | 
                        + */  | 
                    |
| 1515 | 
                        +    class_action_tsc.prototype.compilation = function (target_identifier) {
                       | 
                    |
| 1516 | 
                        +        switch (target_identifier) {
                       | 
                    |
| 1517 | 
                        +            case "gnumake": {
                       | 
                    |
| 1518 | 
                        +                switch (configuration["system"]) {
                       | 
                    |
| 1519 | 
                        +                    case "unix": {
                       | 
                    |
| 1520 | 
                        + var parts_2 = [];  | 
                    |
| 1521 | 
                        +                        parts_2.push("tsc");
                       | 
                    |
| 1522 | 
                        + if (this.allowUnreachableCode)  | 
                    |
| 1523 | 
                        +                            parts_2.push("--allowUnreachableCode");
                       | 
                    |
| 1524 | 
                        + if (this.declaration)  | 
                    |
| 1525 | 
                        +                            parts_2.push("--declaration");
                       | 
                    |
| 1526 | 
                        + if (this.target != null)  | 
                    |
| 1527 | 
                        +                            parts_2.push("--target");
                       | 
                    |
| 1528 | 
                        + parts_2.push(this.target);  | 
                    |
| 1529 | 
                        +                        this.paths_input.forEach(function (filepointer) { return parts_2.push(filepointer.toString()); });
                       | 
                    |
| 1530 | 
                        +                        parts_2.push("--outFile");
                       | 
                    |
| 1531 | 
                        + parts_2.push(this.path_output.toString());  | 
                    |
| 1532 | 
                        +                        return parts_2.join(" ");
                       | 
                    |
| 1533 | 
                        + break;  | 
                    |
| 1534 | 
                        + }  | 
                    |
| 1535 | 
                        +                    default: {
                       | 
                    |
| 1536 | 
                        +                        throw (new Error("not implemented"));
                       | 
                    |
| 1537 | 
                        + break;  | 
                    |
| 1538 | 
                        + }  | 
                    |
| 1539 | 
                        + }  | 
                    |
| 1540 | 
                        + break;  | 
                    |
| 1541 | 
                        + }  | 
                    |
| 1542 | 
                        +            case "ant": {
                       | 
                    |
| 1543 | 
                        +                return (new lib_ant.class_action(new lib_xml.class_node_complex("exec", { "executable": "tsc" }, ([]
                       | 
                    |
| 1544 | 
                        +                    .concat(this.paths_input.map(function (filepointer) {
                       | 
                    |
| 1545 | 
                        +                    return (new lib_xml.class_node_complex("arg", { "value": filepointer.toString() }));
                       | 
                    |
| 1546 | 
                        + }))  | 
                    |
| 1547 | 
                        + .concat(this.allowUnreachableCode  | 
                    |
| 1548 | 
                        + ?  | 
                    |
| 1549 | 
                        + [  | 
                    |
| 1550 | 
                        +                            new lib_xml.class_node_complex("arg", { "value": "--allowUnreachableCode" }),
                       | 
                    |
| 1551 | 
                        + ]  | 
                    |
| 1552 | 
                        + :  | 
                    |
| 1553 | 
                        + [])  | 
                    |
| 1554 | 
                        + .concat((this.target != null)  | 
                    |
| 1555 | 
                        + ?  | 
                    |
| 1556 | 
                        + [  | 
                    |
| 1557 | 
                        +                            new lib_xml.class_node_complex("arg", { "value": "--target" }),
                       | 
                    |
| 1558 | 
                        +                            new lib_xml.class_node_complex("arg", { "value": this.target }),
                       | 
                    |
| 1559 | 
                        + ]  | 
                    |
| 1560 | 
                        + :  | 
                    |
| 1561 | 
                        + [])  | 
                    |
| 1562 | 
                        + .concat([  | 
                    |
| 1563 | 
                        +                    new lib_xml.class_node_complex("arg", { "value": "--outFile" }),
                       | 
                    |
| 1564 | 
                        +                    new lib_xml.class_node_complex("arg", { "value": this.path_output.toString() }),
                       | 
                    |
| 1565 | 
                        + ])))));  | 
                    |
| 1566 | 
                        + break;  | 
                    |
| 1567 | 
                        + }  | 
                    |
| 1568 | 
                        +            default: {
                       | 
                    |
| 1569 | 
                        +                throw (new Error("unhandled target '" + target_identifier + "'"));
                       | 
                    |
| 1570 | 
                        + break;  | 
                    |
| 1571 | 
                        + }  | 
                    |
| 1572 | 
                        + }  | 
                    |
| 1573 | 
                        + };  | 
                    |
| 1574 | 
                        + return class_action_tsc;  | 
                    |
| 1575 | 
                        +}(class_action_adhoc));  | 
                    |
| 1576 | 
                        +/**  | 
                    |
| 1577 | 
                        + * @author fenris  | 
                    |
| 1578 | 
                        + */  | 
                    |
| 1579 | 
                        +var class_action_php = (function (_super) {
                       | 
                    |
| 1580 | 
                        + __extends(class_action_php, _super);  | 
                    |
| 1581 | 
                        + /**  | 
                    |
| 1582 | 
                        + * @author fenris  | 
                    |
| 1583 | 
                        + */  | 
                    |
| 1584 | 
                        +    function class_action_php(filepointers_from, filepointer_to, only_first) {
                       | 
                    |
| 1585 | 
                        + _super.call(this);  | 
                    |
| 1586 | 
                        + this.filepointers_from = filepointers_from;  | 
                    |
| 1587 | 
                        + this.filepointer_to = filepointer_to;  | 
                    |
| 1588 | 
                        + this.only_first = only_first;  | 
                    |
| 1589 | 
                        + }  | 
                    |
| 1590 | 
                        + /**  | 
                    |
| 1591 | 
                        + * @desc for defining directly how the action is to be converted into a target-piece  | 
                    |
| 1592 | 
                        + * @author fenris  | 
                    |
| 1593 | 
                        + */  | 
                    |
| 1594 | 
                        +    class_action_php.prototype.compilation = function (target_identifier) {
                       | 
                    |
| 1595 | 
                        +        switch (target_identifier) {
                       | 
                    |
| 1596 | 
                        +            case "gnumake": {
                       | 
                    |
| 1597 | 
                        +                switch (configuration["system"]) {
                       | 
                    |
| 1598 | 
                        +                    case "unix": {
                       | 
                    |
| 1599 | 
                        + var parts_3 = [];  | 
                    |
| 1600 | 
                        +                        parts_3.push("php");
                       | 
                    |
| 1601 | 
                        +                        if (this.only_first) {
                       | 
                    |
| 1602 | 
                        + parts_3.push(this.filepointers_from[0].toString());  | 
                    |
| 1603 | 
                        + }  | 
                    |
| 1604 | 
                        +                        else {
                       | 
                    |
| 1605 | 
                        +                            this.filepointers_from.forEach(function (filepointer) { return parts_3.push(filepointer.toString()); });
                       | 
                    |
| 1606 | 
                        + }  | 
                    |
| 1607 | 
                        +                        parts_3.push(">");
                       | 
                    |
| 1608 | 
                        + parts_3.push(this.filepointer_to.toString());  | 
                    |
| 1609 | 
                        +                        return parts_3.join(" ");
                       | 
                    |
| 1610 | 
                        + break;  | 
                    |
| 1611 | 
                        + }  | 
                    |
| 1612 | 
                        +                    default: {
                       | 
                    |
| 1613 | 
                        +                        throw (new Error("not implemented"));
                       | 
                    |
| 1614 | 
                        + break;  | 
                    |
| 1615 | 
                        + }  | 
                    |
| 1616 | 
                        + }  | 
                    |
| 1617 | 
                        + break;  | 
                    |
| 1618 | 
                        + }  | 
                    |
| 1619 | 
                        +            case "ant": {
                       | 
                    |
| 1620 | 
                        +                throw (new Error("not implemented"));
                       | 
                    |
| 1621 | 
                        + break;  | 
                    |
| 1622 | 
                        + }  | 
                    |
| 1623 | 
                        +            default: {
                       | 
                    |
| 1624 | 
                        +                throw (new Error("unhandled target '" + target_identifier + "'"));
                       | 
                    |
| 1625 | 
                        + break;  | 
                    |
| 1626 | 
                        + }  | 
                    |
| 1627 | 
                        + }  | 
                    |
| 1628 | 
                        + };  | 
                    |
| 1629 | 
                        + return class_action_php;  | 
                    |
| 1630 | 
                        +}(class_action_adhoc));  | 
                    |
| 1631 | 
                        +/**  | 
                    |
| 1632 | 
                        + * @author fenris  | 
                    |
| 1633 | 
                        + */  | 
                    |
| 1634 | 
                        +var class_task = (function () {
                       | 
                    |
| 1635 | 
                        + /**  | 
                    |
| 1636 | 
                        + * @author fenris  | 
                    |
| 1637 | 
                        + */  | 
                    |
| 1638 | 
                        +    function class_task(name, sub, active, parameters) {
                       | 
                    |
| 1639 | 
                        +        if (sub === void 0) { sub = []; }
                       | 
                    |
| 1640 | 
                        +        if (active === void 0) { active = true; }
                       | 
                    |
| 1641 | 
                        +        if (parameters === void 0) { parameters = {}; }
                       | 
                    |
| 1642 | 
                        +        this.identifier = genid("task_");
                       | 
                    |
| 1643 | 
                        + this.name = (name != null) ? name : this.identifier;  | 
                    |
| 1644 | 
                        + this.sub = sub;  | 
                    |
| 1645 | 
                        + this.active = active;  | 
                    |
| 1646 | 
                        + this.parameters = parameters;  | 
                    |
| 1647 | 
                        + }  | 
                    |
| 1648 | 
                        + /**  | 
                    |
| 1649 | 
                        + * @author fenris  | 
                    |
| 1650 | 
                        + */  | 
                    |
| 1651 | 
                        +    class_task.prototype.identifier_get = function () {
                       | 
                    |
| 1652 | 
                        + return this.identifier;  | 
                    |
| 1653 | 
                        + };  | 
                    |
| 1654 | 
                        + /**  | 
                    |
| 1655 | 
                        + * @author fenris  | 
                    |
| 1656 | 
                        + */  | 
                    |
| 1657 | 
                        +    class_task.prototype.name_get = function () {
                       | 
                    |
| 1658 | 
                        + return this.name;  | 
                    |
| 1659 | 
                        + };  | 
                    |
| 1660 | 
                        + /**  | 
                    |
| 1661 | 
                        + * @author fenris  | 
                    |
| 1662 | 
                        + */  | 
                    |
| 1663 | 
                        +    class_task.prototype.sub_get = function () {
                       | 
                    |
| 1664 | 
                        + return this.sub;  | 
                    |
| 1665 | 
                        + };  | 
                    |
| 1666 | 
                        + /**  | 
                    |
| 1667 | 
                        + * @author fenris  | 
                    |
| 1668 | 
                        + */  | 
                    |
| 1669 | 
                        +    class_task.prototype.active_get = function () {
                       | 
                    |
| 1670 | 
                        + return this.active;  | 
                    |
| 1671 | 
                        + };  | 
                    |
| 1672 | 
                        + /**  | 
                    |
| 1673 | 
                        + * @returns the subgraph of all active tasks  | 
                    |
| 1674 | 
                        + * @author fenris  | 
                    |
| 1675 | 
                        + */  | 
                    |
| 1676 | 
                        +    class_task.prototype.clean = function (root) {
                       | 
                    |
| 1677 | 
                        +        if (root === void 0) { root = true; }
                       | 
                    |
| 1678 | 
                        +        if (root && (!this.active)) {
                       | 
                    |
| 1679 | 
                        +            throw (new Error("cant't clean inactive root"));
                       | 
                    |
| 1680 | 
                        + }  | 
                    |
| 1681 | 
                        +        else {
                       | 
                    |
| 1682 | 
                        +            this.sub = this.sub.filter(function (task_) { return task_.active; });
                       | 
                    |
| 1683 | 
                        +            this.sub.forEach(function (task_) { return task_.clean(false); });
                       | 
                    |
| 1684 | 
                        + }  | 
                    |
| 1685 | 
                        + };  | 
                    |
| 1686 | 
                        + /**  | 
                    |
| 1687 | 
                        + * @author fenris  | 
                    |
| 1688 | 
                        + */  | 
                    |
| 1689 | 
                        +    class_task.register = function (id, factory) {
                       | 
                    |
| 1690 | 
                        + this.pool[id] = factory;  | 
                    |
| 1691 | 
                        + };  | 
                    |
| 1692 | 
                        + /**  | 
                    |
| 1693 | 
                        + * @author fenris  | 
                    |
| 1694 | 
                        + */  | 
                    |
| 1695 | 
                        +    class_task.get = function (id) {
                       | 
                    |
| 1696 | 
                        + return this.pool[id];  | 
                    |
| 1697 | 
                        + };  | 
                    |
| 1698 | 
                        + /**  | 
                    |
| 1699 | 
                        + * @author fenris  | 
                    |
| 1700 | 
                        + */  | 
                    |
| 1701 | 
                        +    class_task.pool = {};
                       | 
                    |
| 1702 | 
                        + return class_task;  | 
                    |
| 1703 | 
                        +}());  | 
                    |
| 1704 | 
                        +/**  | 
                    |
| 1705 | 
                        + * @author fenris  | 
                    |
| 1706 | 
                        + */  | 
                    |
| 1707 | 
                        +var class_task_group = (function (_super) {
                       | 
                    |
| 1708 | 
                        + __extends(class_task_group, _super);  | 
                    |
| 1709 | 
                        +    function class_task_group() {
                       | 
                    |
| 1710 | 
                        + _super.apply(this, arguments);  | 
                    |
| 1711 | 
                        + }  | 
                    |
| 1712 | 
                        + /**  | 
                    |
| 1713 | 
                        + * @author fenris  | 
                    |
| 1714 | 
                        + */  | 
                    |
| 1715 | 
                        +    class_task_group.create = function (name, sub, active, parameters) {
                       | 
                    |
| 1716 | 
                        + return (new class_task_group(name, sub, active));  | 
                    |
| 1717 | 
                        + };  | 
                    |
| 1718 | 
                        + /**  | 
                    |
| 1719 | 
                        + * @override  | 
                    |
| 1720 | 
                        + * @author fenris  | 
                    |
| 1721 | 
                        + */  | 
                    |
| 1722 | 
                        +    class_task_group.prototype.inputs = function () {
                       | 
                    |
| 1723 | 
                        + return [];  | 
                    |
| 1724 | 
                        + };  | 
                    |
| 1725 | 
                        + /**  | 
                    |
| 1726 | 
                        + * @override  | 
                    |
| 1727 | 
                        + * @author fenris  | 
                    |
| 1728 | 
                        + */  | 
                    |
| 1729 | 
                        +    class_task_group.prototype.outputs = function () {
                       | 
                    |
| 1730 | 
                        + return [];  | 
                    |
| 1731 | 
                        + };  | 
                    |
| 1732 | 
                        + /**  | 
                    |
| 1733 | 
                        + * @override  | 
                    |
| 1734 | 
                        + * @author fenris  | 
                    |
| 1735 | 
                        + */  | 
                    |
| 1736 | 
                        +    class_task_group.prototype.actions = function () {
                       | 
                    |
| 1737 | 
                        + return [];  | 
                    |
| 1738 | 
                        + };  | 
                    |
| 1739 | 
                        + return class_task_group;  | 
                    |
| 1740 | 
                        +}(class_task));  | 
                    |
| 1741 | 
                        +class_task.register("group", /*(name, sub, active, parameters) => */ class_task_group.create /*(name, sub, active, parameters)*/);
                       | 
                    |
| 1742 | 
                        +/**  | 
                    |
| 1743 | 
                        + * @author fenris  | 
                    |
| 1744 | 
                        + */  | 
                    |
| 1745 | 
                        +var class_task_dependency = (function (_super) {
                       | 
                    |
| 1746 | 
                        + __extends(class_task_dependency, _super);  | 
                    |
| 1747 | 
                        + /**  | 
                    |
| 1748 | 
                        + * @author fenris  | 
                    |
| 1749 | 
                        + */  | 
                    |
| 1750 | 
                        + function class_task_dependency(name, sub, active, filepointer_project, target, raw, workdir // = null  | 
                    |
| 1751 | 
                        +        ) {
                       | 
                    |
| 1752 | 
                        +        if (name === void 0) { name = null; }
                       | 
                    |
| 1753 | 
                        +        if (sub === void 0) { sub = []; }
                       | 
                    |
| 1754 | 
                        +        if (active === void 0) { active = true; }
                       | 
                    |
| 1755 | 
                        +        if (filepointer_project === void 0) { filepointer_project = null; }
                       | 
                    |
| 1756 | 
                        +        if (target === void 0) { target = configuration["target"]; }
                       | 
                    |
| 1757 | 
                        +        if (raw === void 0) { raw = true; }
                       | 
                    |
| 1758 | 
                        +        if (workdir === void 0) { workdir = filepointer_project.location; }
                       | 
                    |
| 1759 | 
                        + _super.call(this, name, sub, active);  | 
                    |
| 1760 | 
                        + this.filepointer_project = filepointer_project;  | 
                    |
| 1761 | 
                        + this.target = target;  | 
                    |
| 1762 | 
                        + this.raw = raw;  | 
                    |
| 1763 | 
                        + this.workdir = workdir;  | 
                    |
| 1764 | 
                        + }  | 
                    |
| 1765 | 
                        + /**  | 
                    |
| 1766 | 
                        + * @override  | 
                    |
| 1767 | 
                        + * @author fenris  | 
                    |
| 1768 | 
                        + */  | 
                    |
| 1769 | 
                        +    class_task_dependency.prototype.inputs = function () {
                       | 
                    |
| 1770 | 
                        + return [this.filepointer_project];  | 
                    |
| 1771 | 
                        + };  | 
                    |
| 1772 | 
                        + /**  | 
                    |
| 1773 | 
                        + * @override  | 
                    |
| 1774 | 
                        + * @author fenris  | 
                    |
| 1775 | 
                        + */  | 
                    |
| 1776 | 
                        +    class_task_dependency.prototype.outputs = function () {
                       | 
                    |
| 1777 | 
                        + return [];  | 
                    |
| 1778 | 
                        + };  | 
                    |
| 1779 | 
                        + /**  | 
                    |
| 1780 | 
                        + * @author fenris  | 
                    |
| 1781 | 
                        + */  | 
                    |
| 1782 | 
                        +    class_task_dependency.prototype.actions = function () {
                       | 
                    |
| 1783 | 
                        +        switch (this.target) {
                       | 
                    |
| 1784 | 
                        +            case "gnumake": {
                       | 
                    |
| 1785 | 
                        + var filepointer_buildfile = new lib_path.class_filepointer(configuration["tempfolder"], "makefile");  | 
                    |
| 1786 | 
                        + return [  | 
                    |
| 1787 | 
                        + new class_action_koralle(this.filepointer_project, filepointer_buildfile, this.target, this.raw),  | 
                    |
| 1788 | 
                        + new class_action_gnumake(filepointer_buildfile, this.workdir),  | 
                    |
| 1789 | 
                        + ];  | 
                    |
| 1790 | 
                        + }  | 
                    |
| 1791 | 
                        +            case "ant": {
                       | 
                    |
| 1792 | 
                        + var filepointer_buildfile = new lib_path.class_filepointer(configuration["tempfolder"], "build.xml");  | 
                    |
| 1793 | 
                        + return [  | 
                    |
| 1794 | 
                        + new class_action_koralle(this.filepointer_project, filepointer_buildfile, this.target, this.raw),  | 
                    |
| 1795 | 
                        + new class_action_ant(filepointer_buildfile, this.workdir),  | 
                    |
| 1796 | 
                        + ];  | 
                    |
| 1797 | 
                        + }  | 
                    |
| 1798 | 
                        +            default: {
                       | 
                    |
| 1799 | 
                        +                throw (new Error("unhandled target '" + this.target + "'"));
                       | 
                    |
| 1800 | 
                        + break;  | 
                    |
| 1801 | 
                        + }  | 
                    |
| 1802 | 
                        + }  | 
                    |
| 1803 | 
                        + };  | 
                    |
| 1804 | 
                        + return class_task_dependency;  | 
                    |
| 1805 | 
                        +}(class_task));  | 
                    |
| 1806 | 
                        +/**  | 
                    |
| 1807 | 
                        + * @author fenris  | 
                    |
| 1808 | 
                        + */  | 
                    |
| 1809 | 
                        +var class_task_script = (function (_super) {
                       | 
                    |
| 1810 | 
                        + __extends(class_task_script, _super);  | 
                    |
| 1811 | 
                        + /**  | 
                    |
| 1812 | 
                        + * @author fenris  | 
                    |
| 1813 | 
                        + */  | 
                    |
| 1814 | 
                        +    function class_task_script(name, sub, active, inputs_, outputs_, path, interpreter) {
                       | 
                    |
| 1815 | 
                        +        if (name === void 0) { name = null; }
                       | 
                    |
| 1816 | 
                        +        if (sub === void 0) { sub = []; }
                       | 
                    |
| 1817 | 
                        +        if (active === void 0) { active = true; }
                       | 
                    |
| 1818 | 
                        +        if (interpreter === void 0) { interpreter = null; }
                       | 
                    |
| 1819 | 
                        + _super.call(this, name, sub, active);  | 
                    |
| 1820 | 
                        + this.inputs_ = inputs_;  | 
                    |
| 1821 | 
                        + this.outputs_ = outputs_;  | 
                    |
| 1822 | 
                        + this.path = path;  | 
                    |
| 1823 | 
                        + this.interpreter = interpreter;  | 
                    |
| 1824 | 
                        + }  | 
                    |
| 1825 | 
                        + /**  | 
                    |
| 1826 | 
                        + * @author fenris  | 
                    |
| 1827 | 
                        + */  | 
                    |
| 1828 | 
                        +    class_task_script.create = function (name, sub, active, parameters) {
                       | 
                    |
| 1829 | 
                        + var interpreter_raw = fetch(parameters, "interpreter", null, 1);  | 
                    |
| 1830 | 
                        + var interpreter = ((interpreter_raw == null) ? null : lib_path.class_filepointer.read(interpreter_raw));  | 
                    |
| 1831 | 
                        +        return (new class_task_script(name, sub, active, fetch(parameters, "inputs", [], 1).map(function (s) { return lib_path.class_filepointer.read(s); }), fetch(parameters, "outputs", [], 1).map(function (s) { return lib_path.class_filepointer.read(s); }), lib_path.class_filepointer.read(fetch(parameters, "path", null, 2)), interpreter));
                       | 
                    |
| 1832 | 
                        + };  | 
                    |
| 1833 | 
                        + /**  | 
                    |
| 1834 | 
                        + * @override  | 
                    |
| 1835 | 
                        + * @author fenris  | 
                    |
| 1836 | 
                        + */  | 
                    |
| 1837 | 
                        +    class_task_script.prototype.inputs = function () {
                       | 
                    |
| 1838 | 
                        + return this.inputs_;  | 
                    |
| 1839 | 
                        + };  | 
                    |
| 1840 | 
                        + /**  | 
                    |
| 1841 | 
                        + * @override  | 
                    |
| 1842 | 
                        + * @author fenris  | 
                    |
| 1843 | 
                        + */  | 
                    |
| 1844 | 
                        +    class_task_script.prototype.outputs = function () {
                       | 
                    |
| 1845 | 
                        + return this.outputs_;  | 
                    |
| 1846 | 
                        + };  | 
                    |
| 1847 | 
                        + /**  | 
                    |
| 1848 | 
                        + * @author fenris  | 
                    |
| 1849 | 
                        + */  | 
                    |
| 1850 | 
                        +    class_task_script.prototype.actions = function () {
                       | 
                    |
| 1851 | 
                        + return ([]  | 
                    |
| 1852 | 
                        +            .concat(this.outputs_.map(function (output) { return new class_action_mkdir(output.location); }))
                       | 
                    |
| 1853 | 
                        + .concat([  | 
                    |
| 1854 | 
                        + new class_action_exec(this.inputs_, this.outputs_, this.path, this.interpreter),  | 
                    |
| 1855 | 
                        + ]));  | 
                    |
| 1856 | 
                        + };  | 
                    |
| 1857 | 
                        + return class_task_script;  | 
                    |
| 1858 | 
                        +}(class_task));  | 
                    |
| 1859 | 
                        +class_task.register("script", /*(name, sub, active, parameters) => */ class_task_script.create /*(name, sub, active, parameters)*/);
                       | 
                    |
| 1860 | 
                        +/**  | 
                    |
| 1861 | 
                        + * @author fenris  | 
                    |
| 1862 | 
                        + */  | 
                    |
| 1863 | 
                        +var class_task_empty = (function (_super) {
                       | 
                    |
| 1864 | 
                        + __extends(class_task_empty, _super);  | 
                    |
| 1865 | 
                        + /**  | 
                    |
| 1866 | 
                        + * @author fenris  | 
                    |
| 1867 | 
                        + */  | 
                    |
| 1868 | 
                        +    function class_task_empty(name, sub, active, output_) {
                       | 
                    |
| 1869 | 
                        +        if (name === void 0) { name = null; }
                       | 
                    |
| 1870 | 
                        +        if (sub === void 0) { sub = []; }
                       | 
                    |
| 1871 | 
                        +        if (active === void 0) { active = true; }
                       | 
                    |
| 1872 | 
                        +        if (output_ === void 0) { output_ = null; }
                       | 
                    |
| 1873 | 
                        + _super.call(this, name, sub, active);  | 
                    |
| 1874 | 
                        + this.output_ = output_;  | 
                    |
| 1875 | 
                        + }  | 
                    |
| 1876 | 
                        + /**  | 
                    |
| 1877 | 
                        + * @author fenris  | 
                    |
| 1878 | 
                        + */  | 
                    |
| 1879 | 
                        +    class_task_empty.create = function (name, sub, active, parameters) {
                       | 
                    |
| 1880 | 
                        + return (new class_task_empty(name, sub, active, lib_path.class_filepointer.read(fetch(parameters, "output", null, 2))));  | 
                    |
| 1881 | 
                        + };  | 
                    |
| 1882 | 
                        + /**  | 
                    |
| 1883 | 
                        + * @override  | 
                    |
| 1884 | 
                        + * @author fenris  | 
                    |
| 1885 | 
                        + */  | 
                    |
| 1886 | 
                        +    class_task_empty.prototype.inputs = function () {
                       | 
                    |
| 1887 | 
                        + return [];  | 
                    |
| 1888 | 
                        + };  | 
                    |
| 1889 | 
                        + /**  | 
                    |
| 1890 | 
                        + * @override  | 
                    |
| 1891 | 
                        + * @author fenris  | 
                    |
| 1892 | 
                        + */  | 
                    |
| 1893 | 
                        +    class_task_empty.prototype.outputs = function () {
                       | 
                    |
| 1894 | 
                        + return [this.output_];  | 
                    |
| 1895 | 
                        + };  | 
                    |
| 1896 | 
                        + /**  | 
                    |
| 1897 | 
                        + * @override  | 
                    |
| 1898 | 
                        + * @author fenris  | 
                    |
| 1899 | 
                        + */  | 
                    |
| 1900 | 
                        +    class_task_empty.prototype.actions = function () {
                       | 
                    |
| 1901 | 
                        + return [  | 
                    |
| 1902 | 
                        + new class_action_mkdir(this.output_.location),  | 
                    |
| 1903 | 
                        + new class_action_touch(this.output_),  | 
                    |
| 1904 | 
                        + ];  | 
                    |
| 1905 | 
                        + };  | 
                    |
| 1906 | 
                        + return class_task_empty;  | 
                    |
| 1907 | 
                        +}(class_task));  | 
                    |
| 1908 | 
                        +class_task.register("empty", /*(name, sub, active, parameters) => */ class_task_empty.create /*(name, sub, active, parameters)*/);
                       | 
                    |
| 1909 | 
                        +/**  | 
                    |
| 1910 | 
                        + * @author fenris  | 
                    |
| 1911 | 
                        + */  | 
                    |
| 1912 | 
                        +var class_task_copy = (function (_super) {
                       | 
                    |
| 1913 | 
                        + __extends(class_task_copy, _super);  | 
                    |
| 1914 | 
                        + /**  | 
                    |
| 1915 | 
                        + * @author fenris  | 
                    |
| 1916 | 
                        + */  | 
                    |
| 1917 | 
                        +    function class_task_copy(name, sub, active, input_, output_, folder) {
                       | 
                    |
| 1918 | 
                        +        if (name === void 0) { name = null; }
                       | 
                    |
| 1919 | 
                        +        if (sub === void 0) { sub = []; }
                       | 
                    |
| 1920 | 
                        +        if (active === void 0) { active = true; }
                       | 
                    |
| 1921 | 
                        +        if (input_ === void 0) { input_ = null; }
                       | 
                    |
| 1922 | 
                        +        if (output_ === void 0) { output_ = null; }
                       | 
                    |
| 1923 | 
                        +        if (folder === void 0) { folder = null; }
                       | 
                    |
| 1924 | 
                        + _super.call(this, name, sub, active);  | 
                    |
| 1925 | 
                        + this.input_ = input_;  | 
                    |
| 1926 | 
                        + this.output_ = output_;  | 
                    |
| 1927 | 
                        + this.folder = folder;  | 
                    |
| 1928 | 
                        + }  | 
                    |
| 1929 | 
                        + /**  | 
                    |
| 1930 | 
                        + * @author fenris  | 
                    |
| 1931 | 
                        + */  | 
                    |
| 1932 | 
                        +    class_task_copy.create = function (name, sub, active, parameters) {
                       | 
                    |
| 1933 | 
                        + return (new class_task_copy(name, sub, active, lib_path.class_filepointer.read(fetch(parameters, "input", null, 2)), lib_path.class_filepointer.read(fetch(parameters, "output", null, 2)), fetch(parameters, "folder", false, 0)));  | 
                    |
| 1934 | 
                        + };  | 
                    |
| 1935 | 
                        + /**  | 
                    |
| 1936 | 
                        + * @override  | 
                    |
| 1937 | 
                        + * @author fenris  | 
                    |
| 1938 | 
                        + */  | 
                    |
| 1939 | 
                        +    class_task_copy.prototype.inputs = function () {
                       | 
                    |
| 1940 | 
                        + return [this.input_];  | 
                    |
| 1941 | 
                        + };  | 
                    |
| 1942 | 
                        + /**  | 
                    |
| 1943 | 
                        + * @override  | 
                    |
| 1944 | 
                        + * @author fenris  | 
                    |
| 1945 | 
                        + */  | 
                    |
| 1946 | 
                        +    class_task_copy.prototype.outputs = function () {
                       | 
                    |
| 1947 | 
                        + return [this.output_];  | 
                    |
| 1948 | 
                        + };  | 
                    |
| 1949 | 
                        + /**  | 
                    |
| 1950 | 
                        + * @author fenris  | 
                    |
| 1951 | 
                        + */  | 
                    |
| 1952 | 
                        +    class_task_copy.prototype.actions = function () {
                       | 
                    |
| 1953 | 
                        + return [  | 
                    |
| 1954 | 
                        + new class_action_mkdir(this.output_.location),  | 
                    |
| 1955 | 
                        + new class_action_copy(this.input_, this.output_, this.folder),  | 
                    |
| 1956 | 
                        + ];  | 
                    |
| 1957 | 
                        + };  | 
                    |
| 1958 | 
                        + return class_task_copy;  | 
                    |
| 1959 | 
                        +}(class_task));  | 
                    |
| 1960 | 
                        +class_task.register("copy", /*(name, sub, active, parameters) => */ class_task_copy.create /*(name, sub, active, parameters)*/);
                       | 
                    |
| 1961 | 
                        +/**  | 
                    |
| 1962 | 
                        + * @author fenris  | 
                    |
| 1963 | 
                        + */  | 
                    |
| 1964 | 
                        +var class_task_concat = (function (_super) {
                       | 
                    |
| 1965 | 
                        + __extends(class_task_concat, _super);  | 
                    |
| 1966 | 
                        + /**  | 
                    |
| 1967 | 
                        + * @author fenris  | 
                    |
| 1968 | 
                        + */  | 
                    |
| 1969 | 
                        +    function class_task_concat(name, sub, active, inputs_, output_) {
                       | 
                    |
| 1970 | 
                        +        if (name === void 0) { name = null; }
                       | 
                    |
| 1971 | 
                        +        if (sub === void 0) { sub = []; }
                       | 
                    |
| 1972 | 
                        +        if (active === void 0) { active = true; }
                       | 
                    |
| 1973 | 
                        +        if (inputs_ === void 0) { inputs_ = null; }
                       | 
                    |
| 1974 | 
                        +        if (output_ === void 0) { output_ = null; }
                       | 
                    |
| 1975 | 
                        + _super.call(this, name, sub, active);  | 
                    |
| 1976 | 
                        + this.inputs_ = inputs_;  | 
                    |
| 1977 | 
                        + this.output_ = output_;  | 
                    |
| 1978 | 
                        + }  | 
                    |
| 1979 | 
                        + /**  | 
                    |
| 1980 | 
                        + * @author fenris  | 
                    |
| 1981 | 
                        + */  | 
                    |
| 1982 | 
                        +    class_task_concat.create = function (name, sub, active, parameters) {
                       | 
                    |
| 1983 | 
                        +        return (new class_task_concat(name, sub, active, fetch(parameters, "inputs", [], 2).map(function (s) { return lib_path.class_filepointer.read(s); }), lib_path.class_filepointer.read(fetch(parameters, "output", null, 2))));
                       | 
                    |
| 1984 | 
                        + };  | 
                    |
| 1985 | 
                        + /**  | 
                    |
| 1986 | 
                        + * @override  | 
                    |
| 1987 | 
                        + * @author fenris  | 
                    |
| 1988 | 
                        + */  | 
                    |
| 1989 | 
                        +    class_task_concat.prototype.inputs = function () {
                       | 
                    |
| 1990 | 
                        + return this.inputs_;  | 
                    |
| 1991 | 
                        + };  | 
                    |
| 1992 | 
                        + /**  | 
                    |
| 1993 | 
                        + * @override  | 
                    |
| 1994 | 
                        + * @author fenris  | 
                    |
| 1995 | 
                        + */  | 
                    |
| 1996 | 
                        +    class_task_concat.prototype.outputs = function () {
                       | 
                    |
| 1997 | 
                        + return [this.output_];  | 
                    |
| 1998 | 
                        + };  | 
                    |
| 1999 | 
                        + /**  | 
                    |
| 2000 | 
                        + * @override  | 
                    |
| 2001 | 
                        + * @author fenris  | 
                    |
| 2002 | 
                        + */  | 
                    |
| 2003 | 
                        +    class_task_concat.prototype.actions = function () {
                       | 
                    |
| 2004 | 
                        + return [  | 
                    |
| 2005 | 
                        + new class_action_mkdir(this.output_.location),  | 
                    |
| 2006 | 
                        + new class_action_concat(this.inputs_, this.output_),  | 
                    |
| 2007 | 
                        + ];  | 
                    |
| 2008 | 
                        + };  | 
                    |
| 2009 | 
                        + return class_task_concat;  | 
                    |
| 2010 | 
                        +}(class_task));  | 
                    |
| 2011 | 
                        +class_task.register("concat", /*(name, sub, active, parameters) => */ class_task_concat.create /*(name, sub, active, parameters)*/);
                       | 
                    |
| 2012 | 
                        +/**  | 
                    |
| 2013 | 
                        + * @author fenris  | 
                    |
| 2014 | 
                        + */  | 
                    |
| 2015 | 
                        +var class_task_lesscss = (function (_super) {
                       | 
                    |
| 2016 | 
                        + __extends(class_task_lesscss, _super);  | 
                    |
| 2017 | 
                        + /**  | 
                    |
| 2018 | 
                        + * @author fenris  | 
                    |
| 2019 | 
                        + */  | 
                    |
| 2020 | 
                        +    function class_task_lesscss(name, sub, active, inputs_, output_) {
                       | 
                    |
| 2021 | 
                        +        if (name === void 0) { name = null; }
                       | 
                    |
| 2022 | 
                        +        if (sub === void 0) { sub = []; }
                       | 
                    |
| 2023 | 
                        +        if (active === void 0) { active = true; }
                       | 
                    |
| 2024 | 
                        +        if (inputs_ === void 0) { inputs_ = null; }
                       | 
                    |
| 2025 | 
                        +        if (output_ === void 0) { output_ = null; }
                       | 
                    |
| 2026 | 
                        + _super.call(this, name, sub, active);  | 
                    |
| 2027 | 
                        + this.inputs_ = inputs_;  | 
                    |
| 2028 | 
                        + this.output_ = output_;  | 
                    |
| 2029 | 
                        + }  | 
                    |
| 2030 | 
                        + /**  | 
                    |
| 2031 | 
                        + * @author fenris  | 
                    |
| 2032 | 
                        + */  | 
                    |
| 2033 | 
                        +    class_task_lesscss.create = function (name, sub, active, parameters) {
                       | 
                    |
| 2034 | 
                        +        return (new class_task_lesscss(name, sub, active, fetch(parameters, "inputs", null, 2).map(function (s) { return lib_path.class_filepointer.read(s); }), lib_path.class_filepointer.read(fetch(parameters, "output", null, 2))));
                       | 
                    |
| 2035 | 
                        + };  | 
                    |
| 2036 | 
                        + /**  | 
                    |
| 2037 | 
                        + * @override  | 
                    |
| 2038 | 
                        + * @author fenris  | 
                    |
| 2039 | 
                        + */  | 
                    |
| 2040 | 
                        +    class_task_lesscss.prototype.inputs = function () {
                       | 
                    |
| 2041 | 
                        + return this.inputs_;  | 
                    |
| 2042 | 
                        + };  | 
                    |
| 2043 | 
                        + /**  | 
                    |
| 2044 | 
                        + * @override  | 
                    |
| 2045 | 
                        + * @author fenris  | 
                    |
| 2046 | 
                        + */  | 
                    |
| 2047 | 
                        +    class_task_lesscss.prototype.outputs = function () {
                       | 
                    |
| 2048 | 
                        + return [this.output_];  | 
                    |
| 2049 | 
                        + };  | 
                    |
| 2050 | 
                        + /**  | 
                    |
| 2051 | 
                        + * @author fenris  | 
                    |
| 2052 | 
                        + */  | 
                    |
| 2053 | 
                        +    class_task_lesscss.prototype.actions = function () {
                       | 
                    |
| 2054 | 
                        + var filepointer_temp = new lib_path.class_filepointer(lib_path.class_location.read(configuration["tempfolder"]), "_.less");  | 
                    |
| 2055 | 
                        + return [  | 
                    |
| 2056 | 
                        + new class_action_mkdir(this.output_.location),  | 
                    |
| 2057 | 
                        + new class_action_concat(this.inputs_, filepointer_temp),  | 
                    |
| 2058 | 
                        + new class_action_lessc(filepointer_temp, this.output_),  | 
                    |
| 2059 | 
                        + ];  | 
                    |
| 2060 | 
                        + };  | 
                    |
| 2061 | 
                        + return class_task_lesscss;  | 
                    |
| 2062 | 
                        +}(class_task));  | 
                    |
| 2063 | 
                        +class_task.register("lesscss", /*(name, sub, active, parameters) => */ class_task_lesscss.create /*(name, sub, active, parameters)*/);
                       | 
                    |
| 2064 | 
                        +/**  | 
                    |
| 2065 | 
                        + * @author fenris  | 
                    |
| 2066 | 
                        + */  | 
                    |
| 2067 | 
                        +var class_task_typescript = (function (_super) {
                       | 
                    |
| 2068 | 
                        + __extends(class_task_typescript, _super);  | 
                    |
| 2069 | 
                        + /**  | 
                    |
| 2070 | 
                        + * @author fenris  | 
                    |
| 2071 | 
                        + */  | 
                    |
| 2072 | 
                        +    function class_task_typescript(name, sub, active, inputs_, output_, target, allowUnreachableCode, declaration) {
                       | 
                    |
| 2073 | 
                        +        if (name === void 0) { name = null; }
                       | 
                    |
| 2074 | 
                        +        if (sub === void 0) { sub = []; }
                       | 
                    |
| 2075 | 
                        +        if (active === void 0) { active = true; }
                       | 
                    |
| 2076 | 
                        +        if (inputs_ === void 0) { inputs_ = null; }
                       | 
                    |
| 2077 | 
                        +        if (output_ === void 0) { output_ = null; }
                       | 
                    |
| 2078 | 
                        +        if (target === void 0) { target = null; }
                       | 
                    |
| 2079 | 
                        +        if (allowUnreachableCode === void 0) { allowUnreachableCode = null; }
                       | 
                    |
| 2080 | 
                        +        if (declaration === void 0) { declaration = null; }
                       | 
                    |
| 2081 | 
                        + _super.call(this, name, sub, active);  | 
                    |
| 2082 | 
                        + this.inputs_ = inputs_;  | 
                    |
| 2083 | 
                        + this.output_ = output_;  | 
                    |
| 2084 | 
                        + this.target = target;  | 
                    |
| 2085 | 
                        + this.allowUnreachableCode = allowUnreachableCode;  | 
                    |
| 2086 | 
                        + this.declaration = declaration;  | 
                    |
| 2087 | 
                        + }  | 
                    |
| 2088 | 
                        + /**  | 
                    |
| 2089 | 
                        + * @author fenris  | 
                    |
| 2090 | 
                        + */  | 
                    |
| 2091 | 
                        +    class_task_typescript.create = function (name, sub, active, parameters) {
                       | 
                    |
| 2092 | 
                        +        return (new class_task_typescript(name, sub, active, fetch(parameters, "inputs", [], 1).map(function (s) { return lib_path.class_filepointer.read(s); }), lib_path.class_filepointer.read(fetch(parameters, "output", null, 2)), fetch(parameters, "target", null, 0), fetch(parameters, "allowUnreachableCode", false, 0), fetch(parameters, "declaration", false, 0)));
                       | 
                    |
| 2093 | 
                        + };  | 
                    |
| 2094 | 
                        + /**  | 
                    |
| 2095 | 
                        + * @override  | 
                    |
| 2096 | 
                        + * @author fenris  | 
                    |
| 2097 | 
                        + */  | 
                    |
| 2098 | 
                        +    class_task_typescript.prototype.inputs = function () {
                       | 
                    |
| 2099 | 
                        + return this.inputs_;  | 
                    |
| 2100 | 
                        + };  | 
                    |
| 2101 | 
                        + /**  | 
                    |
| 2102 | 
                        + * @override  | 
                    |
| 2103 | 
                        + * @author fenris  | 
                    |
| 2104 | 
                        + */  | 
                    |
| 2105 | 
                        +    class_task_typescript.prototype.outputs = function () {
                       | 
                    |
| 2106 | 
                        + return [this.output_];  | 
                    |
| 2107 | 
                        + };  | 
                    |
| 2108 | 
                        + /**  | 
                    |
| 2109 | 
                        + * @author fenris  | 
                    |
| 2110 | 
                        + */  | 
                    |
| 2111 | 
                        +    class_task_typescript.prototype.actions = function () {
                       | 
                    |
| 2112 | 
                        + return [  | 
                    |
| 2113 | 
                        + new class_action_mkdir(this.output_.location),  | 
                    |
| 2114 | 
                        + new class_action_tsc(this.inputs_, this.output_, this.target, this.allowUnreachableCode, this.declaration),  | 
                    |
| 2115 | 
                        + ];  | 
                    |
| 2116 | 
                        + };  | 
                    |
| 2117 | 
                        + return class_task_typescript;  | 
                    |
| 2118 | 
                        +}(class_task));  | 
                    |
| 2119 | 
                        +class_task.register("typescript", /*(name, sub, active, parameters) => */ class_task_typescript.create /*(name, sub, active, parameters)*/);
                       | 
                    |
| 2120 | 
                        +/**  | 
                    |
| 2121 | 
                        + * @author fenris  | 
                    |
| 2122 | 
                        + */  | 
                    |
| 2123 | 
                        +var class_task_php = (function (_super) {
                       | 
                    |
| 2124 | 
                        + __extends(class_task_php, _super);  | 
                    |
| 2125 | 
                        + /**  | 
                    |
| 2126 | 
                        + * @author fenris  | 
                    |
| 2127 | 
                        + */  | 
                    |
| 2128 | 
                        +    function class_task_php(name, sub, active, inputs_, output_, only_first) {
                       | 
                    |
| 2129 | 
                        +        if (name === void 0) { name = null; }
                       | 
                    |
| 2130 | 
                        +        if (sub === void 0) { sub = []; }
                       | 
                    |
| 2131 | 
                        +        if (active === void 0) { active = true; }
                       | 
                    |
| 2132 | 
                        +        if (inputs_ === void 0) { inputs_ = null; }
                       | 
                    |
| 2133 | 
                        +        if (output_ === void 0) { output_ = null; }
                       | 
                    |
| 2134 | 
                        +        if (only_first === void 0) { only_first = null; }
                       | 
                    |
| 2135 | 
                        + _super.call(this, name, sub, active);  | 
                    |
| 2136 | 
                        + this.inputs_ = inputs_;  | 
                    |
| 2137 | 
                        + this.output_ = output_;  | 
                    |
| 2138 | 
                        + this.only_first = only_first;  | 
                    |
| 2139 | 
                        + }  | 
                    |
| 2140 | 
                        + /**  | 
                    |
| 2141 | 
                        + * @author fenris  | 
                    |
| 2142 | 
                        + */  | 
                    |
| 2143 | 
                        +    class_task_php.create = function (name, sub, active, parameters) {
                       | 
                    |
| 2144 | 
                        +        return (new class_task_php(name, sub, active, fetch(parameters, "inputs", [], 2).map(function (s) { return lib_path.class_filepointer.read(s); }), lib_path.class_filepointer.read(fetch(parameters, "output", null, 2)), fetch(parameters, "only_first", false, 0)));
                       | 
                    |
| 2145 | 
                        + };  | 
                    |
| 2146 | 
                        + /**  | 
                    |
| 2147 | 
                        + * @override  | 
                    |
| 2148 | 
                        + * @author fenris  | 
                    |
| 2149 | 
                        + */  | 
                    |
| 2150 | 
                        +    class_task_php.prototype.inputs = function () {
                       | 
                    |
| 2151 | 
                        + return this.inputs_;  | 
                    |
| 2152 | 
                        + };  | 
                    |
| 2153 | 
                        + /**  | 
                    |
| 2154 | 
                        + * @override  | 
                    |
| 2155 | 
                        + * @author fenris  | 
                    |
| 2156 | 
                        + */  | 
                    |
| 2157 | 
                        +    class_task_php.prototype.outputs = function () {
                       | 
                    |
| 2158 | 
                        + return [this.output_];  | 
                    |
| 2159 | 
                        + };  | 
                    |
| 2160 | 
                        + /**  | 
                    |
| 2161 | 
                        + * @author fenris  | 
                    |
| 2162 | 
                        + */  | 
                    |
| 2163 | 
                        +    class_task_php.prototype.actions = function () {
                       | 
                    |
| 2164 | 
                        + return [  | 
                    |
| 2165 | 
                        + new class_action_mkdir(this.output_.location),  | 
                    |
| 2166 | 
                        + new class_action_php(this.inputs_, this.output_, this.only_first),  | 
                    |
| 2167 | 
                        + ];  | 
                    |
| 2168 | 
                        + };  | 
                    |
| 2169 | 
                        + return class_task_php;  | 
                    |
| 2170 | 
                        +}(class_task));  | 
                    |
| 2171 | 
                        +class_task.register("php", /*(name, sub, active, parameters) => */ class_task_php.create /*(name, sub, active, parameters)*/);
                       | 
                    |
| 2172 | 
                        +/**  | 
                    |
| 2173 | 
                        + * @author fenris  | 
                    |
| 2174 | 
                        + */  | 
                    |
| 2175 | 
                        +var class_target = (function () {
                       | 
                    |
| 2176 | 
                        + /**  | 
                    |
| 2177 | 
                        + * @author fenris  | 
                    |
| 2178 | 
                        + */  | 
                    |
| 2179 | 
                        +    function class_target() {
                       | 
                    |
| 2180 | 
                        + }  | 
                    |
| 2181 | 
                        + return class_target;  | 
                    |
| 2182 | 
                        +}());  | 
                    |
| 2183 | 
                        +/**  | 
                    |
| 2184 | 
                        + * @author fenris  | 
                    |
| 2185 | 
                        + */  | 
                    |
| 2186 | 
                        +var class_target_regular = (function (_super) {
                       | 
                    |
| 2187 | 
                        + __extends(class_target_regular, _super);  | 
                    |
| 2188 | 
                        + /**  | 
                    |
| 2189 | 
                        + * @author fenris  | 
                    |
| 2190 | 
                        + */  | 
                    |
| 2191 | 
                        +    function class_target_regular(identifier) {
                       | 
                    |
| 2192 | 
                        + _super.call(this);  | 
                    |
| 2193 | 
                        + this.identifier = identifier;  | 
                    |
| 2194 | 
                        + }  | 
                    |
| 2195 | 
                        + /**  | 
                    |
| 2196 | 
                        + * @author fenris  | 
                    |
| 2197 | 
                        + */  | 
                    |
| 2198 | 
                        +    class_target_regular.prototype.compile_action = function (action) {
                       | 
                    |
| 2199 | 
                        +        if (action instanceof class_action_adhoc) {
                       | 
                    |
| 2200 | 
                        + var action_ = (action);  | 
                    |
| 2201 | 
                        + return (action_.compilation(this.identifier));  | 
                    |
| 2202 | 
                        + }  | 
                    |
| 2203 | 
                        +        else {
                       | 
                    |
| 2204 | 
                        +            throw (new Error("no delegation for action '" + JSON.stringify(action) + "'"));
                       | 
                    |
| 2205 | 
                        + }  | 
                    |
| 2206 | 
                        + };  | 
                    |
| 2207 | 
                        + return class_target_regular;  | 
                    |
| 2208 | 
                        +}(class_target));  | 
                    |
| 2209 | 
                        +/**  | 
                    |
| 2210 | 
                        + * @author fenris  | 
                    |
| 2211 | 
                        + */  | 
                    |
| 2212 | 
                        +var class_target_ant = (function (_super) {
                       | 
                    |
| 2213 | 
                        + __extends(class_target_ant, _super);  | 
                    |
| 2214 | 
                        + /**  | 
                    |
| 2215 | 
                        + * @author fenris  | 
                    |
| 2216 | 
                        + */  | 
                    |
| 2217 | 
                        +    function class_target_ant() {
                       | 
                    |
| 2218 | 
                        + _super.call(this, "ant");  | 
                    |
| 2219 | 
                        + }  | 
                    |
| 2220 | 
                        + /**  | 
                    |
| 2221 | 
                        + * @author fenris  | 
                    |
| 2222 | 
                        + */  | 
                    |
| 2223 | 
                        +    class_target_ant.prototype.compile_task = function (task, path) {
                       | 
                    |
| 2224 | 
                        + var _this = this;  | 
                    |
| 2225 | 
                        +        if (path === void 0) { path = []; }
                       | 
                    |
| 2226 | 
                        + var path_ = [task.name_get()];  | 
                    |
| 2227 | 
                        + var targets_core = [  | 
                    |
| 2228 | 
                        +            new lib_ant.class_target({
                       | 
                    |
| 2229 | 
                        +                "name": path_.join("-"),
                       | 
                    |
| 2230 | 
                        + "dependencies": (task.sub_get()  | 
                    |
| 2231 | 
                        +                    .filter(function (task_) { return task_.active_get(); })
                       | 
                    |
| 2232 | 
                        +                    .map(function (task_) { return [task_.name_get()] /*)*/.join("-"); })),
                       | 
                    |
| 2233 | 
                        + "actions": ([]  | 
                    |
| 2234 | 
                        + .concat([new class_action_echo(task.name_get())])  | 
                    |
| 2235 | 
                        + .concat(task.actions())  | 
                    |
| 2236 | 
                        +                    .map(function (action) { return _this.compile_action(action); }))
                       | 
                    |
| 2237 | 
                        + })  | 
                    |
| 2238 | 
                        + ];  | 
                    |
| 2239 | 
                        + var targets_sub = task.sub_get()  | 
                    |
| 2240 | 
                        +            .map(function (task_) { return _this.compile_task(task_, path_); })
                       | 
                    |
| 2241 | 
                        +            .reduce(function (x, y) { return x.concat(y); }, []);
                       | 
                    |
| 2242 | 
                        + return [].concat(targets_core).concat(targets_sub);  | 
                    |
| 2243 | 
                        + };  | 
                    |
| 2244 | 
                        + /**  | 
                    |
| 2245 | 
                        + * @author fenris  | 
                    |
| 2246 | 
                        + */  | 
                    |
| 2247 | 
                        +    class_target_ant.prototype.compile_project = function (project, without_dependencies) {
                       | 
                    |
| 2248 | 
                        + var _this = this;  | 
                    |
| 2249 | 
                        +        if (without_dependencies === void 0) { without_dependencies = false; }
                       | 
                    |
| 2250 | 
                        + var that = this;  | 
                    |
| 2251 | 
                        + var comments = [  | 
                    |
| 2252 | 
                        +            // new lib_ant.class_comment("Project \"" + project.name_get() + "\""),
                       | 
                    |
| 2253 | 
                        +            new lib_ant.class_comment("This build script was generated by Koralle " + configuration["version"]),
                       | 
                    |
| 2254 | 
                        + ];  | 
                    |
| 2255 | 
                        +        var dependencies = project.dependencies_get().map(function (path, index) {
                       | 
                    |
| 2256 | 
                        +            return (new class_task_dependency("__dependency_" + index.toString(), [], true, lib_path.class_filepointer.read(path), that.identifier, true, undefined));
                       | 
                    |
| 2257 | 
                        + });  | 
                    |
| 2258 | 
                        + var targets = []  | 
                    |
| 2259 | 
                        + .concat([  | 
                    |
| 2260 | 
                        +            new lib_ant.class_target({
                       | 
                    |
| 2261 | 
                        + "name": "__root",  | 
                    |
| 2262 | 
                        + "dependencies": ["__dependencies", "__core"],  | 
                    |
| 2263 | 
                        + })  | 
                    |
| 2264 | 
                        + ])  | 
                    |
| 2265 | 
                        + .concat([  | 
                    |
| 2266 | 
                        +            new lib_ant.class_target({
                       | 
                    |
| 2267 | 
                        + "name": "__dependencies",  | 
                    |
| 2268 | 
                        +                "dependencies": without_dependencies ? [] : dependencies.map(function (dependency) { return dependency.name_get(); }),
                       | 
                    |
| 2269 | 
                        + })  | 
                    |
| 2270 | 
                        + ])  | 
                    |
| 2271 | 
                        +            .concat(dependencies.map(function (dependency) { return _this.compile_task(dependency); }).reduce(function (x, y) { return x.concat(y); }, []))
                       | 
                    |
| 2272 | 
                        + .concat([  | 
                    |
| 2273 | 
                        +            new lib_ant.class_target({
                       | 
                    |
| 2274 | 
                        + "name": "__core",  | 
                    |
| 2275 | 
                        + "dependencies": [project.roottask_get().name_get()],  | 
                    |
| 2276 | 
                        + })  | 
                    |
| 2277 | 
                        + ])  | 
                    |
| 2278 | 
                        + .concat(this.compile_task(project.roottask_get()));  | 
                    |
| 2279 | 
                        +        return (new lib_ant.class_project({
                       | 
                    |
| 2280 | 
                        + "name": project.name_get(),  | 
                    |
| 2281 | 
                        + "default": "__root",  | 
                    |
| 2282 | 
                        + "comments": comments,  | 
                    |
| 2283 | 
                        + "targets": targets,  | 
                    |
| 2284 | 
                        + }));  | 
                    |
| 2285 | 
                        + };  | 
                    |
| 2286 | 
                        + /**  | 
                    |
| 2287 | 
                        + * @override  | 
                    |
| 2288 | 
                        + * @author fenris  | 
                    |
| 2289 | 
                        + */  | 
                    |
| 2290 | 
                        +    class_target_ant.prototype.compile_project_string = function (project) {
                       | 
                    |
| 2291 | 
                        + return this.compile_project(project).compile().compile();  | 
                    |
| 2292 | 
                        + };  | 
                    |
| 2293 | 
                        + /**  | 
                    |
| 2294 | 
                        + * @override  | 
                    |
| 2295 | 
                        + * @author fenris  | 
                    |
| 2296 | 
                        + */  | 
                    |
| 2297 | 
                        +    class_target_ant.prototype.execute = function (filepointer) {
                       | 
                    |
| 2298 | 
                        +        return (function (resolve, reject) {
                       | 
                    |
| 2299 | 
                        + var command = [  | 
                    |
| 2300 | 
                        + "ant",  | 
                    |
| 2301 | 
                        + "-file " + filepointer.toString(),  | 
                    |
| 2302 | 
                        +            ].join(" ");
                       | 
                    |
| 2303 | 
                        +            _child_process.exec(command, {}, function (stdout, stderr, error) {
                       | 
                    |
| 2304 | 
                        +                if (error != null) {
                       | 
                    |
| 2305 | 
                        + reject(error);  | 
                    |
| 2306 | 
                        + }  | 
                    |
| 2307 | 
                        +                else {
                       | 
                    |
| 2308 | 
                        + resolve(undefined);  | 
                    |
| 2309 | 
                        + }  | 
                    |
| 2310 | 
                        + });  | 
                    |
| 2311 | 
                        + });  | 
                    |
| 2312 | 
                        + };  | 
                    |
| 2313 | 
                        + return class_target_ant;  | 
                    |
| 2314 | 
                        +}(class_target_regular));  | 
                    |
| 2315 | 
                        +/**  | 
                    |
| 2316 | 
                        + * @author fenris  | 
                    |
| 2317 | 
                        + */  | 
                    |
| 2318 | 
                        +var class_target_gnumake = (function (_super) {
                       | 
                    |
| 2319 | 
                        + __extends(class_target_gnumake, _super);  | 
                    |
| 2320 | 
                        + /**  | 
                    |
| 2321 | 
                        + * @author fenris  | 
                    |
| 2322 | 
                        + */  | 
                    |
| 2323 | 
                        +    function class_target_gnumake() {
                       | 
                    |
| 2324 | 
                        + _super.call(this, "gnumake");  | 
                    |
| 2325 | 
                        + }  | 
                    |
| 2326 | 
                        + /**  | 
                    |
| 2327 | 
                        + * @author fenris  | 
                    |
| 2328 | 
                        + */  | 
                    |
| 2329 | 
                        +    class_target_gnumake.prototype.compile_task = function (task, path, depth, prefix) {
                       | 
                    |
| 2330 | 
                        + var _this = this;  | 
                    |
| 2331 | 
                        +        if (path === void 0) { path = []; }
                       | 
                    |
| 2332 | 
                        +        if (depth === void 0) { depth = 0; }
                       | 
                    |
| 2333 | 
                        +        if (prefix === void 0) { prefix = null; }
                       | 
                    |
| 2334 | 
                        + var path_ = [task.name_get()];  | 
                    |
| 2335 | 
                        +        var logging_begin = new class_action_echo((new class_message("processing \"" + path_.join("-") + "\" ...", { "type": "log", "depth": depth, "prefix": prefix })).generate());
                       | 
                    |
| 2336 | 
                        +        var logging_end = new class_action_echo((new class_message("... finished \"" + path_.join("-") + "\"", { "type": "log", "depth": depth, "prefix": prefix })).generate());
                       | 
                    |
| 2337 | 
                        + var rules_core = [];  | 
                    |
| 2338 | 
                        +        {
                       | 
                    |
| 2339 | 
                        + // meta rule  | 
                    |
| 2340 | 
                        +            rules_core.push(new lib_gnumake.class_rule({
                       | 
                    |
| 2341 | 
                        +                "name": path_.join("-"),
                       | 
                    |
| 2342 | 
                        + "dependencies": ([]  | 
                    |
| 2343 | 
                        +                    .concat(["__logging_" + path_.join("-")])
                       | 
                    |
| 2344 | 
                        + .concat(task.sub_get()  | 
                    |
| 2345 | 
                        +                    .filter(function (task_) { return task_.active_get(); })
                       | 
                    |
| 2346 | 
                        +                    .map(function (task_) { return [task_.name_get()] /*)*/.join("-"); }))
                       | 
                    |
| 2347 | 
                        +                    .concat(task.outputs().map(function (filepointer) { return filepointer.toString(); }))),
                       | 
                    |
| 2348 | 
                        + "actions": ([]  | 
                    |
| 2349 | 
                        + .concat((task.outputs().length == 0) ? task.actions() : [])  | 
                    |
| 2350 | 
                        +                    .map(function (action) { return _this.compile_action(action); })),
                       | 
                    |
| 2351 | 
                        + "phony": true,  | 
                    |
| 2352 | 
                        + }));  | 
                    |
| 2353 | 
                        + // logging  | 
                    |
| 2354 | 
                        +            rules_core.push(new lib_gnumake.class_rule({
                       | 
                    |
| 2355 | 
                        +                "name": ("__logging_" + path_.join("-")),
                       | 
                    |
| 2356 | 
                        +                "actions": [logging_begin].map(function (action) { return _this.compile_action(action); }),
                       | 
                    |
| 2357 | 
                        + "phony": true,  | 
                    |
| 2358 | 
                        + }));  | 
                    |
| 2359 | 
                        + // actual rule  | 
                    |
| 2360 | 
                        +            if (task.outputs().length > 0) {
                       | 
                    |
| 2361 | 
                        +                rules_core.push(new lib_gnumake.class_rule({
                       | 
                    |
| 2362 | 
                        +                    "name": task.outputs().map(function (filepointer) { return filepointer.toString(); }).join(" "),
                       | 
                    |
| 2363 | 
                        +                    "dependencies": task.inputs().map(function (filepointer) { return filepointer.toString(); }),
                       | 
                    |
| 2364 | 
                        +                    "actions": task.actions().map(function (action) { return _this.compile_action(action); }),
                       | 
                    |
| 2365 | 
                        + "phony": false,  | 
                    |
| 2366 | 
                        + }));  | 
                    |
| 2367 | 
                        + }  | 
                    |
| 2368 | 
                        + }  | 
                    |
| 2369 | 
                        + var rules_sub = [];  | 
                    |
| 2370 | 
                        +        {
                       | 
                    |
| 2371 | 
                        + rules_sub = task.sub_get()  | 
                    |
| 2372 | 
                        +                .map(function (task_) { return _this.compile_task(task_, path_, depth + 1, prefix); })
                       | 
                    |
| 2373 | 
                        +                .reduce(function (x, y) { return x.concat(y); }, []);
                       | 
                    |
| 2374 | 
                        + }  | 
                    |
| 2375 | 
                        + return ([].concat(rules_core).concat(rules_sub));  | 
                    |
| 2376 | 
                        + };  | 
                    |
| 2377 | 
                        + /**  | 
                    |
| 2378 | 
                        + * @author fenris  | 
                    |
| 2379 | 
                        + */  | 
                    |
| 2380 | 
                        +    class_target_gnumake.prototype.compile_project = function (project, without_dependencies) {
                       | 
                    |
| 2381 | 
                        + var _this = this;  | 
                    |
| 2382 | 
                        +        if (without_dependencies === void 0) { without_dependencies = false; }
                       | 
                    |
| 2383 | 
                        + var that = this;  | 
                    |
| 2384 | 
                        + var comments = [  | 
                    |
| 2385 | 
                        + "Project \"" + project.name_get() + "\"",  | 
                    |
| 2386 | 
                        + "This makefile was generated by Koralle " + configuration["version"],  | 
                    |
| 2387 | 
                        + ];  | 
                    |
| 2388 | 
                        +        var dependencies = project.dependencies_get().map(function (path, index) {
                       | 
                    |
| 2389 | 
                        +            return (new class_task_dependency("__dependency_" + index.toString(), [], true, lib_path.class_filepointer.read(path), that.identifier, true, undefined));
                       | 
                    |
| 2390 | 
                        + });  | 
                    |
| 2391 | 
                        + var rules = []  | 
                    |
| 2392 | 
                        + .concat([  | 
                    |
| 2393 | 
                        +            new lib_gnumake.class_rule({
                       | 
                    |
| 2394 | 
                        + "name": "__default",  | 
                    |
| 2395 | 
                        + "dependencies": ["__root"],  | 
                    |
| 2396 | 
                        + "actions": [],  | 
                    |
| 2397 | 
                        + "phony": true,  | 
                    |
| 2398 | 
                        + })  | 
                    |
| 2399 | 
                        + ])  | 
                    |
| 2400 | 
                        + .concat([  | 
                    |
| 2401 | 
                        +            new lib_gnumake.class_rule({
                       | 
                    |
| 2402 | 
                        + "name": "__root",  | 
                    |
| 2403 | 
                        + "dependencies": ["__dependencies", "__core"],  | 
                    |
| 2404 | 
                        + "phony": true,  | 
                    |
| 2405 | 
                        + })  | 
                    |
| 2406 | 
                        + ])  | 
                    |
| 2407 | 
                        + .concat([  | 
                    |
| 2408 | 
                        +            new lib_gnumake.class_rule({
                       | 
                    |
| 2409 | 
                        + "name": "__dependencies",  | 
                    |
| 2410 | 
                        +                "dependencies": without_dependencies ? [] : dependencies.map(function (dependency) { return dependency.name_get(); }),
                       | 
                    |
| 2411 | 
                        + "phony": true,  | 
                    |
| 2412 | 
                        + })  | 
                    |
| 2413 | 
                        + ])  | 
                    |
| 2414 | 
                        +            .concat(dependencies.map(function (dependency) { return _this.compile_task(dependency); }).reduce(function (x, y) { return x.concat(y); }, []))
                       | 
                    |
| 2415 | 
                        + .concat([  | 
                    |
| 2416 | 
                        +            new lib_gnumake.class_rule({
                       | 
                    |
| 2417 | 
                        + "name": "__core",  | 
                    |
| 2418 | 
                        + "dependencies": [project.roottask_get().name_get()],  | 
                    |
| 2419 | 
                        + "phony": true,  | 
                    |
| 2420 | 
                        + })  | 
                    |
| 2421 | 
                        + ])  | 
                    |
| 2422 | 
                        + .concat(this.compile_task(project.roottask_get(), undefined, undefined, project.name_get()));  | 
                    |
| 2423 | 
                        + return (new lib_gnumake.class_sheet(rules, comments));  | 
                    |
| 2424 | 
                        + };  | 
                    |
| 2425 | 
                        + /**  | 
                    |
| 2426 | 
                        + * @override  | 
                    |
| 2427 | 
                        + * @author fenris  | 
                    |
| 2428 | 
                        + */  | 
                    |
| 2429 | 
                        +    class_target_gnumake.prototype.compile_project_string = function (project, without_dependencies) {
                       | 
                    |
| 2430 | 
                        +        if (without_dependencies === void 0) { without_dependencies = false; }
                       | 
                    |
| 2431 | 
                        + return (this.compile_project(project, without_dependencies).compile(true));  | 
                    |
| 2432 | 
                        + };  | 
                    |
| 2433 | 
                        + /**  | 
                    |
| 2434 | 
                        + * @override  | 
                    |
| 2435 | 
                        + * @author fenris  | 
                    |
| 2436 | 
                        + */  | 
                    |
| 2437 | 
                        +    class_target_gnumake.prototype.execute = function (filepointer) {
                       | 
                    |
| 2438 | 
                        +        return (function (resolve, reject) {
                       | 
                    |
| 2439 | 
                        +            var command = (["cd", filepointer.location].join(" ")
                       | 
                    |
| 2440 | 
                        + + " && "  | 
                    |
| 2441 | 
                        +                + ["make", "--file=" + filepointer.filename].join(" ")
                       | 
                    |
| 2442 | 
                        + + " ; "  | 
                    |
| 2443 | 
                        +                + ["cd", "-"].join(" "));
                       | 
                    |
| 2444 | 
                        +            // (new class_message(command, {"prefix": "exec:command"})).stderr();
                       | 
                    |
| 2445 | 
                        +            _child_process.exec(command, {}, function (stdout, stderr, error) {
                       | 
                    |
| 2446 | 
                        + /*  | 
                    |
| 2447 | 
                        +                (new class_message(stdout, {"prefix": "exec:stdout"})).stderr();
                       | 
                    |
| 2448 | 
                        +                (new class_message(stderr, {"prefix": "exec:stderr"})).stderr();
                       | 
                    |
| 2449 | 
                        +                (new class_message(String(error), {"prefix": "exec:error"})).stderr();
                       | 
                    |
| 2450 | 
                        + */  | 
                    |
| 2451 | 
                        +                if (error != null) {
                       | 
                    |
| 2452 | 
                        + reject(error);  | 
                    |
| 2453 | 
                        + }  | 
                    |
| 2454 | 
                        +                else {
                       | 
                    |
| 2455 | 
                        + resolve(undefined);  | 
                    |
| 2456 | 
                        + }  | 
                    |
| 2457 | 
                        + });  | 
                    |
| 2458 | 
                        + });  | 
                    |
| 2459 | 
                        + };  | 
                    |
| 2460 | 
                        + return class_target_gnumake;  | 
                    |
| 2461 | 
                        +}(class_target_regular));  | 
                    |
| 2462 | 
                        +/**  | 
                    |
| 2463 | 
                        + * @author fenris  | 
                    |
| 2464 | 
                        + */  | 
                    |
| 2465 | 
                        +var class_project = (function () {
                       | 
                    |
| 2466 | 
                        + /**  | 
                    |
| 2467 | 
                        + * @author fenris  | 
                    |
| 2468 | 
                        + */  | 
                    |
| 2469 | 
                        +    function class_project(name, version, dependencies_listed, roottask) {
                       | 
                    |
| 2470 | 
                        + this.name = name;  | 
                    |
| 2471 | 
                        + this.version = version;  | 
                    |
| 2472 | 
                        + this.dependencies_listed = dependencies_listed;  | 
                    |
| 2473 | 
                        + this.dependencies_all = null;  | 
                    |
| 2474 | 
                        + this.roottask = roottask;  | 
                    |
| 2475 | 
                        + }  | 
                    |
| 2476 | 
                        + /**  | 
                    |
| 2477 | 
                        + * @author fenris  | 
                    |
| 2478 | 
                        + */  | 
                    |
| 2479 | 
                        +    class_project.prototype.name_get = function () {
                       | 
                    |
| 2480 | 
                        + return this.name;  | 
                    |
| 2481 | 
                        + };  | 
                    |
| 2482 | 
                        + /**  | 
                    |
| 2483 | 
                        + * @author fenris  | 
                    |
| 2484 | 
                        + */  | 
                    |
| 2485 | 
                        +    class_project.prototype.dependencies_set = function (dependencies_all) {
                       | 
                    |
| 2486 | 
                        + this.dependencies_all = dependencies_all;  | 
                    |
| 2487 | 
                        + };  | 
                    |
| 2488 | 
                        + /**  | 
                    |
| 2489 | 
                        + * @author fenris  | 
                    |
| 2490 | 
                        + */  | 
                    |
| 2491 | 
                        +    class_project.prototype.dependencies_get = function () {
                       | 
                    |
| 2492 | 
                        + return this.dependencies_all;  | 
                    |
| 2493 | 
                        + };  | 
                    |
| 2494 | 
                        + /**  | 
                    |
| 2495 | 
                        + * @author fenris  | 
                    |
| 2496 | 
                        + */  | 
                    |
| 2497 | 
                        +    class_project.prototype.roottask_get = function () {
                       | 
                    |
| 2498 | 
                        + return this.roottask;  | 
                    |
| 2499 | 
                        + };  | 
                    |
| 2500 | 
                        + /**  | 
                    |
| 2501 | 
                        + * @author fenris  | 
                    |
| 2502 | 
                        + */  | 
                    |
| 2503 | 
                        +    class_project.create_task = function (raw) {
                       | 
                    |
| 2504 | 
                        + var type = fetch(raw, "type", null, 2);  | 
                    |
| 2505 | 
                        +        return (class_task.get(type)(fetch(raw, "name", null, 1), fetch(raw, "sub", [], 0).map(function (raw) { return class_project.create_task(raw); }), fetch(raw, "active", true, 0), fetch(raw, "parameters", {}, 0)));
                       | 
                    |
| 2506 | 
                        + };  | 
                    |
| 2507 | 
                        + /**  | 
                    |
| 2508 | 
                        + * @author fenris  | 
                    |
| 2509 | 
                        + */  | 
                    |
| 2510 | 
                        +    class_project.create = function (project_raw) {
                       | 
                    |
| 2511 | 
                        + var name = fetch(project_raw, "name", "(nameless project)", 1);  | 
                    |
| 2512 | 
                        + var version = fetch(project_raw, "version", "0.0.0", 1);  | 
                    |
| 2513 | 
                        + var dependencies = fetch(project_raw, "dependencies", [], 0);  | 
                    |
| 2514 | 
                        + var roottask = class_project.create_task(fetch(project_raw, "roottask", null, 2));  | 
                    |
| 2515 | 
                        + // roottask.clean();  | 
                    |
| 2516 | 
                        + return (new class_project(name, version, dependencies, roottask));  | 
                    |
| 2517 | 
                        + };  | 
                    |
| 2518 | 
                        + return class_project;  | 
                    |
| 2519 | 
                        +}());  | 
                    |
| 2520 | 
                        +/**  | 
                    |
| 2521 | 
                        + * @author fenris  | 
                    |
| 2522 | 
                        + */  | 
                    |
| 2523 | 
                        +function read(path) {
                       | 
                    |
| 2524 | 
                        +    return (function (resolve, reject) {
                       | 
                    |
| 2525 | 
                        +        _fs.access(path, _fs.R_OK | _fs.W_OK, function (error) {
                       | 
                    |
| 2526 | 
                        +            if (error != null) {
                       | 
                    |
| 2527 | 
                        +                reject(new Error("project.json at '" + path + "' couldn't be read"));
                       | 
                    |
| 2528 | 
                        + }  | 
                    |
| 2529 | 
                        +            else {
                       | 
                    |
| 2530 | 
                        + read_json(path)(resolve, reject);  | 
                    |
| 2531 | 
                        + }  | 
                    |
| 2532 | 
                        + });  | 
                    |
| 2533 | 
                        + });  | 
                    |
| 2534 | 
                        +}  | 
                    |
| 2535 | 
                        +/**  | 
                    |
| 2536 | 
                        + * @param path the path to the project.json relative to the current working directory  | 
                    |
| 2537 | 
                        + * @param usage what to do with the result-graph  | 
                    |
| 2538 | 
                        + * @author fenris  | 
                    |
| 2539 | 
                        + */  | 
                    |
| 2540 | 
                        +function scan(filepointer, graph, depth) {
                       | 
                    |
| 2541 | 
                        +    if (graph === void 0) { graph = new class_graph(); }
                       | 
                    |
| 2542 | 
                        +    if (depth === void 0) { depth = 0; }
                       | 
                    |
| 2543 | 
                        +    if (graph.nodes.indexOf(filepointer.toString()) >= 0) {
                       | 
                    |
| 2544 | 
                        +        return (function (resolve, reject) { return resolve(graph); });
                       | 
                    |
| 2545 | 
                        + }  | 
                    |
| 2546 | 
                        +    else {
                       | 
                    |
| 2547 | 
                        +        return (function (resolve, reject) {
                       | 
                    |
| 2548 | 
                        +            executor_chain({
                       | 
                    |
| 2549 | 
                        + "graph": graph,  | 
                    |
| 2550 | 
                        + "data": null,  | 
                    |
| 2551 | 
                        + }, [  | 
                    |
| 2552 | 
                        +                function (state_) { return function (resolve_, reject_) {
                       | 
                    |
| 2553 | 
                        + state_.graph.nodes.push(filepointer.toString());  | 
                    |
| 2554 | 
                        + resolve_(state_);  | 
                    |
| 2555 | 
                        + }; },  | 
                    |
| 2556 | 
                        +                function (state_) { return function (resolve_, reject_) {
                       | 
                    |
| 2557 | 
                        +                    read(filepointer.toString())(function (data) { state_.data = data; resolve_(state_); }, reject_);
                       | 
                    |
| 2558 | 
                        + }; },  | 
                    |
| 2559 | 
                        +                function (state_) { return executor_chain(state_, fetch(state_.data, "dependencies", [], 0).map(function (path) { return function (state__) { return function (resolve__, reject__) {
                       | 
                    |
| 2560 | 
                        +                    // (new class_message("-- dep.-path is '" + path + "'", {"depth": depth})).stderr();
                       | 
                    |
| 2561 | 
                        + var filepointer_ = lib_path.filepointer_read(path);  | 
                    |
| 2562 | 
                        + var filepointer__ = filepointer.foo(filepointer_);  | 
                    |
| 2563 | 
                        +                    // (new class_message("-- combining " + ("'" + filepointer.toString() + "'") + " and " + ("'" + filepointer_.toString() + "'") + " to " + ("'" + filepointer__.toString() + "'"), {"depth": depth})).stderr();
                       | 
                    |
| 2564 | 
                        +                    var edge = { "from": filepointer__.toString(), "to": filepointer.toString() };
                       | 
                    |
| 2565 | 
                        + state__.graph.edges.push(edge);  | 
                    |
| 2566 | 
                        +                    scan(filepointer__, state__.graph, depth + 1)(function (graph_) { state_.graph = graph_; resolve__(state__); }, reject__);
                       | 
                    |
| 2567 | 
                        + }; }; })); },  | 
                    |
| 2568 | 
                        +            ])(function (state) { return resolve(state.graph); }, reject);
                       | 
                    |
| 2569 | 
                        + });  | 
                    |
| 2570 | 
                        + }  | 
                    |
| 2571 | 
                        +}  | 
                    |
| 2572 | 
                        +/**  | 
                    |
| 2573 | 
                        + * @author fenris  | 
                    |
| 2574 | 
                        + */  | 
                    |
| 2575 | 
                        +function main(args) {
                       | 
                    |
| 2576 | 
                        +    configuration = {
                       | 
                    |
| 2577 | 
                        + "version": "0.0.4",  | 
                    |
| 2578 | 
                        + "tempfolder": "/tmp/",  | 
                    |
| 2579 | 
                        + "path_source": "source",  | 
                    |
| 2580 | 
                        + "path_build": "build",  | 
                    |
| 2581 | 
                        + "target": "gnumake",  | 
                    |
| 2582 | 
                        + "system": "unix",  | 
                    |
| 2583 | 
                        + "raw": false,  | 
                    |
| 2584 | 
                        + "execute": false,  | 
                    |
| 2585 | 
                        + "output": null,  | 
                    |
| 2586 | 
                        + "path": "project.json",  | 
                    |
| 2587 | 
                        + };  | 
                    |
| 2588 | 
                        + /*  | 
                    |
| 2589 | 
                        + let argumentparser : lib_arguments.class_argumentparser = new lib_arguments.class_parser(  | 
                    |
| 2590 | 
                        + [  | 
                    |
| 2591 | 
                        + new lib_arguments.class_argument_volatile<string>(  | 
                    |
| 2592 | 
                        +                {
                       | 
                    |
| 2593 | 
                        + "type": "string",  | 
                    |
| 2594 | 
                        + "ids_long": ["target"],  | 
                    |
| 2595 | 
                        + "ids_short": ["t"],  | 
                    |
| 2596 | 
                        + "default": "gnumake",  | 
                    |
| 2597 | 
                        + "info": "the target build system; valid values are 'gnumake','ant'",  | 
                    |
| 2598 | 
                        + }  | 
                    |
| 2599 | 
                        + ),  | 
                    |
| 2600 | 
                        + new lib_arguments.class_argument_volatile<string>(  | 
                    |
| 2601 | 
                        +                {
                       | 
                    |
| 2602 | 
                        + "type": "string",  | 
                    |
| 2603 | 
                        + "ids_long": ["system"],  | 
                    |
| 2604 | 
                        + "ids_short": ["s"],  | 
                    |
| 2605 | 
                        + "default": "unix",  | 
                    |
| 2606 | 
                        + "info": "the target platform; valid values are 'unix', 'win'; default is 'unix'",  | 
                    |
| 2607 | 
                        + }  | 
                    |
| 2608 | 
                        + ),  | 
                    |
| 2609 | 
                        + new lib_arguments.class_argument_volatile_boolean(  | 
                    |
| 2610 | 
                        +                {
                       | 
                    |
| 2611 | 
                        + "type": "boolean",  | 
                    |
| 2612 | 
                        + "ids_long": ["raw"],  | 
                    |
| 2613 | 
                        + "ids_short": ["r"],  | 
                    |
| 2614 | 
                        + "default": false,  | 
                    |
| 2615 | 
                        + "info": "if set, depedencies are ignored/excluded from the output",  | 
                    |
| 2616 | 
                        + }  | 
                    |
| 2617 | 
                        + ),  | 
                    |
| 2618 | 
                        + new lib_arguments.class_argument_volatile<boolean>(  | 
                    |
| 2619 | 
                        +                {
                       | 
                    |
| 2620 | 
                        + "type": "boolean",  | 
                    |
| 2621 | 
                        + "ids_long": ["execute"],  | 
                    |
| 2622 | 
                        + "ids_short": ["x"],  | 
                    |
| 2623 | 
                        + "default": false,  | 
                    |
| 2624 | 
                        + "info": "if set, the build script will be executed instead of being printed to stdout",  | 
                    |
| 2625 | 
                        + }  | 
                    |
| 2626 | 
                        + ),  | 
                    |
| 2627 | 
                        + ]  | 
                    |
| 2628 | 
                        + );  | 
                    |
| 2629 | 
                        + */  | 
                    |
| 2630 | 
                        +    var procede = args.every(function (arg) {
                       | 
                    |
| 2631 | 
                        +        if ((arg.indexOf("--") == 0) || (arg.indexOf("-") == 0)) {
                       | 
                    |
| 2632 | 
                        +            var parts = arg.split("=");
                       | 
                    |
| 2633 | 
                        +            switch (parts[0]) {
                       | 
                    |
| 2634 | 
                        + case "--help":  | 
                    |
| 2635 | 
                        +                case "-h": {
                       | 
                    |
| 2636 | 
                        +                    (new class_message("NAME")).stdout();
                       | 
                    |
| 2637 | 
                        +                    (new class_message("Koralle Build System Abstractor", { "depth": 1 })).stdout();
                       | 
                    |
| 2638 | 
                        +                    (new class_message("")).stdout();
                       | 
                    |
| 2639 | 
                        +                    {
                       | 
                    |
| 2640 | 
                        +                        (new class_message("SYNOPSIS")).stdout();
                       | 
                    |
| 2641 | 
                        +                        (new class_message("koralle [--target=gnumake|ant] [--system=unix|win] <path-to-project.json>", { "depth": 1 })).stdout();
                       | 
                    |
| 2642 | 
                        +                        (new class_message("")).stdout();
                       | 
                    |
| 2643 | 
                        + }  | 
                    |
| 2644 | 
                        +                    {
                       | 
                    |
| 2645 | 
                        +                        (new class_message("DESCRIPTION")).stdout();
                       | 
                    |
| 2646 | 
                        +                        (new class_message("Koralle is not a build-system itself. Instead it generates scripts for existing build-systems (e.g. GNU Make, Apache Ant, …) on base of a common json-description-file (usually named 'project.json').", { "depth": 1 })).stdout();
                       | 
                    |
| 2647 | 
                        +                        (new class_message("", { "depth": 1 })).stdout();
                       | 
                    |
| 2648 | 
                        +                        (new class_message("Koralle is designed for reducing the amount of text needed to define the build-process.", { "depth": 1 })).stdout();
                       | 
                    |
| 2649 | 
                        +                        (new class_message("")).stdout();
                       | 
                    |
| 2650 | 
                        + }  | 
                    |
| 2651 | 
                        +                    {
                       | 
                    |
| 2652 | 
                        +                        (new class_message("OPTIONS")).stdout();
                       | 
                    |
| 2653 | 
                        +                        {
                       | 
                    |
| 2654 | 
                        +                            (new class_message("--target | -t", { "depth": 1 })).stdout();
                       | 
                    |
| 2655 | 
                        +                            (new class_message("the target build system; valid values are 'gnumake','ant'; default is 'gnumake'", { "depth": 2 })).stdout();
                       | 
                    |
| 2656 | 
                        +                            (new class_message("")).stdout();
                       | 
                    |
| 2657 | 
                        + }  | 
                    |
| 2658 | 
                        +                        {
                       | 
                    |
| 2659 | 
                        +                            (new class_message("--system | -s", { "depth": 1 })).stdout();
                       | 
                    |
| 2660 | 
                        +                            (new class_message("the target platform; valid values are 'unix', 'win'; default is 'unix'", { "depth": 2 })).stdout();
                       | 
                    |
| 2661 | 
                        +                            (new class_message("")).stdout();
                       | 
                    |
| 2662 | 
                        + }  | 
                    |
| 2663 | 
                        +                        {
                       | 
                    |
| 2664 | 
                        +                            (new class_message("--raw | -r", { "depth": 1 })).stdout();
                       | 
                    |
| 2665 | 
                        +                            (new class_message("if set, depedencies are ignored/excluded from the output", { "depth": 2 })).stdout();
                       | 
                    |
| 2666 | 
                        +                            (new class_message("")).stdout();
                       | 
                    |
| 2667 | 
                        + }  | 
                    |
| 2668 | 
                        +                        {
                       | 
                    |
| 2669 | 
                        +                            (new class_message("--execute | -x", { "depth": 1 })).stdout();
                       | 
                    |
| 2670 | 
                        +                            (new class_message("if set, the build script will be executed", { "depth": 2 })).stdout();
                       | 
                    |
| 2671 | 
                        +                            (new class_message("")).stdout();
                       | 
                    |
| 2672 | 
                        + }  | 
                    |
| 2673 | 
                        +                        {
                       | 
                    |
| 2674 | 
                        +                            (new class_message("--output | -o", { "depth": 1 })).stdout();
                       | 
                    |
| 2675 | 
                        +                            (new class_message("the path of the output file", { "depth": 2 })).stdout();
                       | 
                    |
| 2676 | 
                        +                            (new class_message("")).stdout();
                       | 
                    |
| 2677 | 
                        + }  | 
                    |
| 2678 | 
                        +                        {
                       | 
                    |
| 2679 | 
                        +                            (new class_message("--version | -v", { "depth": 1 })).stdout();
                       | 
                    |
| 2680 | 
                        +                            (new class_message("print the version and exit", { "depth": 2 })).stdout();
                       | 
                    |
| 2681 | 
                        +                            (new class_message("")).stdout();
                       | 
                    |
| 2682 | 
                        + }  | 
                    |
| 2683 | 
                        +                        {
                       | 
                    |
| 2684 | 
                        +                            (new class_message("--help | -h", { "depth": 1 })).stdout();
                       | 
                    |
| 2685 | 
                        +                            (new class_message("show this help and exit", { "depth": 2 })).stdout();
                       | 
                    |
| 2686 | 
                        +                            (new class_message("")).stdout();
                       | 
                    |
| 2687 | 
                        + }  | 
                    |
| 2688 | 
                        + }  | 
                    |
| 2689 | 
                        +                    {
                       | 
                    |
| 2690 | 
                        +                        (new class_message("AUTHOR")).stdout();
                       | 
                    |
| 2691 | 
                        +                        (new class_message("Christian Fraß <frass@greenscale.de>", { "depth": 1 })).stdout();
                       | 
                    |
| 2692 | 
                        +                        (new class_message("")).stdout();
                       | 
                    |
| 2693 | 
                        + }  | 
                    |
| 2694 | 
                        + return false;  | 
                    |
| 2695 | 
                        + break;  | 
                    |
| 2696 | 
                        + }  | 
                    |
| 2697 | 
                        + case "--version":  | 
                    |
| 2698 | 
                        +                case "-v": {
                       | 
                    |
| 2699 | 
                        + (new class_message(configuration["version"].toString())).stdout();  | 
                    |
| 2700 | 
                        + return false;  | 
                    |
| 2701 | 
                        + break;  | 
                    |
| 2702 | 
                        + }  | 
                    |
| 2703 | 
                        + case "--target":  | 
                    |
| 2704 | 
                        +                case "-t": {
                       | 
                    |
| 2705 | 
                        + configuration["target"] = parts[1];  | 
                    |
| 2706 | 
                        + return true;  | 
                    |
| 2707 | 
                        + break;  | 
                    |
| 2708 | 
                        + }  | 
                    |
| 2709 | 
                        + case "--system":  | 
                    |
| 2710 | 
                        +                case "-s": {
                       | 
                    |
| 2711 | 
                        + configuration["system"] = parts[1];  | 
                    |
| 2712 | 
                        + return true;  | 
                    |
| 2713 | 
                        + break;  | 
                    |
| 2714 | 
                        + }  | 
                    |
| 2715 | 
                        + case "--raw":  | 
                    |
| 2716 | 
                        +                case "-r": {
                       | 
                    |
| 2717 | 
                        + configuration["raw"] = true;  | 
                    |
| 2718 | 
                        + return true;  | 
                    |
| 2719 | 
                        + break;  | 
                    |
| 2720 | 
                        + }  | 
                    |
| 2721 | 
                        + case "--output":  | 
                    |
| 2722 | 
                        +                case "-o": {
                       | 
                    |
| 2723 | 
                        + configuration["output"] = parts[1];  | 
                    |
| 2724 | 
                        + return true;  | 
                    |
| 2725 | 
                        + break;  | 
                    |
| 2726 | 
                        + }  | 
                    |
| 2727 | 
                        + case "--execute":  | 
                    |
| 2728 | 
                        +                case "-x": {
                       | 
                    |
| 2729 | 
                        + configuration["execute"] = true;  | 
                    |
| 2730 | 
                        + return true;  | 
                    |
| 2731 | 
                        + break;  | 
                    |
| 2732 | 
                        + }  | 
                    |
| 2733 | 
                        +                default: {
                       | 
                    |
| 2734 | 
                        + return false;  | 
                    |
| 2735 | 
                        +                    throw (new Error("unrecognized option '" + parts[0] + "'"));
                       | 
                    |
| 2736 | 
                        + break;  | 
                    |
| 2737 | 
                        + }  | 
                    |
| 2738 | 
                        + }  | 
                    |
| 2739 | 
                        + }  | 
                    |
| 2740 | 
                        +        else {
                       | 
                    |
| 2741 | 
                        + configuration["path"] = arg;  | 
                    |
| 2742 | 
                        + return true;  | 
                    |
| 2743 | 
                        + }  | 
                    |
| 2744 | 
                        + });  | 
                    |
| 2745 | 
                        +    if (procede) {
                       | 
                    |
| 2746 | 
                        +        executor_chain({}, [
                       | 
                    |
| 2747 | 
                        + // environment  | 
                    |
| 2748 | 
                        +            function (state) { return function (resolve, reject) {
                       | 
                    |
| 2749 | 
                        + var filepointer = lib_path.filepointer_read(configuration["path"]);  | 
                    |
| 2750 | 
                        + filepointer.location.go_thither();  | 
                    |
| 2751 | 
                        + state.filepointer = filepointer;  | 
                    |
| 2752 | 
                        + resolve(state);  | 
                    |
| 2753 | 
                        + }; },  | 
                    |
| 2754 | 
                        + // scan dependencies  | 
                    |
| 2755 | 
                        +            function (state) { return function (resolve, reject) {
                       | 
                    |
| 2756 | 
                        +                if (configuration["raw"]) {
                       | 
                    |
| 2757 | 
                        + state.order = [];  | 
                    |
| 2758 | 
                        + resolve(state);  | 
                    |
| 2759 | 
                        + }  | 
                    |
| 2760 | 
                        +                else {
                       | 
                    |
| 2761 | 
                        +                    scan(state.filepointer)(function (graph) {
                       | 
                    |
| 2762 | 
                        +                        try {
                       | 
                    |
| 2763 | 
                        +                            var order = topsort(graph).filter(function (path) { return (path != state.filepointer.toString()); });
                       | 
                    |
| 2764 | 
                        + state.order = order;  | 
                    |
| 2765 | 
                        + resolve(state);  | 
                    |
| 2766 | 
                        + }  | 
                    |
| 2767 | 
                        +                        catch (exception) {
                       | 
                    |
| 2768 | 
                        + reject((exception));  | 
                    |
| 2769 | 
                        + }  | 
                    |
| 2770 | 
                        + }, reject);  | 
                    |
| 2771 | 
                        + }  | 
                    |
| 2772 | 
                        + }; },  | 
                    |
| 2773 | 
                        + // setup project  | 
                    |
| 2774 | 
                        +            function (state) { return function (resolve, reject) {
                       | 
                    |
| 2775 | 
                        +                read(state.filepointer.toString())(function (data) { state.project = class_project.create(data); resolve(state); }, reject);
                       | 
                    |
| 2776 | 
                        + }; },  | 
                    |
| 2777 | 
                        + // setup target  | 
                    |
| 2778 | 
                        +            function (state) { return function (resolve, reject) {
                       | 
                    |
| 2779 | 
                        +                var mapping = {
                       | 
                    |
| 2780 | 
                        + "ant": new class_target_ant(),  | 
                    |
| 2781 | 
                        + "gnumake": new class_target_gnumake(),  | 
                    |
| 2782 | 
                        + "make": new class_target_gnumake(),  | 
                    |
| 2783 | 
                        + };  | 
                    |
| 2784 | 
                        + var target = fetch(mapping, configuration["target"], null, 0);  | 
                    |
| 2785 | 
                        +                if (target == null) {
                       | 
                    |
| 2786 | 
                        +                    reject(new Error("no implementation found for target '" + configuration["target"] + "'"));
                       | 
                    |
| 2787 | 
                        + }  | 
                    |
| 2788 | 
                        +                else {
                       | 
                    |
| 2789 | 
                        + state.target = target;  | 
                    |
| 2790 | 
                        + resolve(state);  | 
                    |
| 2791 | 
                        + }  | 
                    |
| 2792 | 
                        + }; },  | 
                    |
| 2793 | 
                        + // generate  | 
                    |
| 2794 | 
                        +            function (state) { return function (resolve, reject) {
                       | 
                    |
| 2795 | 
                        + state.project.dependencies_set(state.order);  | 
                    |
| 2796 | 
                        +                try {
                       | 
                    |
| 2797 | 
                        + var script = state.target.compile_project_string(state.project, configuration["raw"]);  | 
                    |
| 2798 | 
                        + state.script = script;  | 
                    |
| 2799 | 
                        + resolve(state);  | 
                    |
| 2800 | 
                        + }  | 
                    |
| 2801 | 
                        +                catch (exception) {
                       | 
                    |
| 2802 | 
                        + reject((exception));  | 
                    |
| 2803 | 
                        + }  | 
                    |
| 2804 | 
                        + }; },  | 
                    |
| 2805 | 
                        + // output  | 
                    |
| 2806 | 
                        +            function (state) { return function (resolve, reject) {
                       | 
                    |
| 2807 | 
                        + var filepointer;  | 
                    |
| 2808 | 
                        +                if (configuration["output"] == null) {
                       | 
                    |
| 2809 | 
                        +                    if (!configuration["execute"]) {
                       | 
                    |
| 2810 | 
                        + filepointer = null;  | 
                    |
| 2811 | 
                        + }  | 
                    |
| 2812 | 
                        +                    else {
                       | 
                    |
| 2813 | 
                        + filepointer = new lib_path.class_filepointer(  | 
                    |
| 2814 | 
                        + // new lib_path.class_location(null, new lib_path.class_path(["."])),  | 
                    |
| 2815 | 
                        + lib_path.class_location.read(configuration["tempfolder"]), "_koralle_");  | 
                    |
| 2816 | 
                        + }  | 
                    |
| 2817 | 
                        + }  | 
                    |
| 2818 | 
                        +                else {
                       | 
                    |
| 2819 | 
                        + filepointer = lib_path.class_filepointer.read(configuration["output"]);  | 
                    |
| 2820 | 
                        + }  | 
                    |
| 2821 | 
                        +                if (filepointer == null) {
                       | 
                    |
| 2822 | 
                        + (new class_message(state.script)).stdout();  | 
                    |
| 2823 | 
                        + }  | 
                    |
| 2824 | 
                        +                else {
                       | 
                    |
| 2825 | 
                        + _fs.writeFile(filepointer.toString(), state.script);  | 
                    |
| 2826 | 
                        + }  | 
                    |
| 2827 | 
                        + state.output = filepointer;  | 
                    |
| 2828 | 
                        + resolve(state);  | 
                    |
| 2829 | 
                        + }; },  | 
                    |
| 2830 | 
                        + // execution  | 
                    |
| 2831 | 
                        +            function (state) { return function (resolve, reject) {
                       | 
                    |
| 2832 | 
                        +                if (!configuration["execute"]) {
                       | 
                    |
| 2833 | 
                        + resolve(state);  | 
                    |
| 2834 | 
                        + }  | 
                    |
| 2835 | 
                        +                else {
                       | 
                    |
| 2836 | 
                        +                    state.target.execute(state.output)(function (result) { return resolve(state); }, reject);
                       | 
                    |
| 2837 | 
                        + }  | 
                    |
| 2838 | 
                        + }; },  | 
                    |
| 2839 | 
                        +        ])(function (state) {
                       | 
                    |
| 2840 | 
                        +            // (new class_message("successfull", {"type": "information", "prefix": "koralle"})).stderr();
                       | 
                    |
| 2841 | 
                        +        }, function (reason) {
                       | 
                    |
| 2842 | 
                        + // throw reason;  | 
                    |
| 2843 | 
                        + console.error(reason);  | 
                    |
| 2844 | 
                        +            (new class_message("an error occured: " + String(reason), { "type": "error", "prefix": "koralle" })).stderr();
                       | 
                    |
| 2845 | 
                        + });  | 
                    |
| 2846 | 
                        + }  | 
                    |
| 2847 | 
                        +}  | 
                    |
| 2848 | 
                        +main(process.argv.slice(2));  | 
                    |
| 0 | 2849 |