Commit 11e498dce818ce126202bf18850ef3dfdc94a71c

Authored by totoro
0 parents

First commit

.gitignore 0 → 100644
  1 +++ a/.gitignore
  1 +library
... ...
.gitmodules 0 → 100644
  1 +++ a/.gitmodules
  1 +[submodule "densaku_lib"]
  2 + path = densaku_lib
  3 + url = git@gitlab.anubis-language.com:totoro/densaku_lib.git
... ...
densaku.aproj 0 → 100644
  1 +++ a/densaku.aproj
  1 +<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  2 + <PropertyGroup>
  3 + <ProjectGuid>{48AEB6F3-398C-4A63-AA74-6F17C6C11D27}</ProjectGuid>
  4 + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
  5 + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
  6 + <OutputType>Exe</OutputType>
  7 + <RootNamespace>takaden</RootNamespace>
  8 + <AssemblyName>takaden</AssemblyName>
  9 + <StartupObject>src\main.anubis</StartupObject>
  10 + <MakeUsedFile>False</MakeUsedFile>
  11 + <MakeUnusedFile>False</MakeUnusedFile>
  12 + <AnubiscVerbosity>False</AnubiscVerbosity>
  13 + <AnubisPath>C:\Program Files %28x86%29\Anubis\1.14\</AnubisPath>
  14 + <IncludePaths>./%3b./src</IncludePaths>
  15 + </PropertyGroup>
  16 + <PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
  17 + <OutputPath>bin\Debug\</OutputPath>
  18 + <DebugSymbols>True</DebugSymbols>
  19 + <DebugType>Full</DebugType>
  20 + <Optimize>False</Optimize>
  21 + </PropertyGroup>
  22 + <PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
  23 + <OutputPath>bin\Release\</OutputPath>
  24 + <DebugSymbols>False</DebugSymbols>
  25 + <DebugType>None</DebugType>
  26 + <Optimize>True</Optimize>
  27 + </PropertyGroup>
  28 + <Import Project="$(AnubisBinPath)\Anubis.Build.targets" />
  29 + <ItemGroup>
  30 + <Folder Include="densaku_lib" />
  31 + <Folder Include="densaku_lib\types" />
  32 + <Folder Include="library" />
  33 + <Folder Include="library\a2a" />
  34 + <Folder Include="library\a2a\C" />
  35 + <Folder Include="library\a2a\generic" />
  36 + <Folder Include="library\charset" />
  37 + <Folder Include="library\cipher" />
  38 + <Folder Include="library\converters" />
  39 + <Folder Include="library\data_base" />
  40 + <Folder Include="library\data_base\generated" />
  41 + <Folder Include="library\doc_tools" />
  42 + <Folder Include="library\examples" />
  43 + <Folder Include="library\examples\cryptography" />
  44 + <Folder Include="library\examples\graphism" />
  45 + <Folder Include="library\examples\graphism\image_samples" />
  46 + <Folder Include="library\examples\lexical_analysis" />
  47 + <Folder Include="library\examples\logic" />
  48 + <Folder Include="library\examples\mathematics" />
  49 + <Folder Include="library\examples\mathematics\runge_kutta" />
  50 + <Folder Include="library\examples\network" />
  51 + <Folder Include="library\examples\network\public" />
  52 + <Folder Include="library\examples\system" />
  53 + <Folder Include="library\graphism" />
  54 + <Folder Include="library\graphism\image_samples" />
  55 + <Folder Include="library\lexical_analysis" />
  56 + <Folder Include="library\locale" />
  57 + <Folder Include="library\mail" />
  58 + <Folder Include="library\network" />
  59 + <Folder Include="library\syntactic_analysis" />
  60 + <Folder Include="library\system" />
  61 + <Folder Include="library\system\parameter" />
  62 + <Folder Include="library\system_colors" />
  63 + <Folder Include="library\system_fonts" />
  64 + <Folder Include="library\test" />
  65 + <Folder Include="library\test\lexical_analysis" />
  66 + <Folder Include="library\test\predefined" />
  67 + <Folder Include="library\test\system" />
  68 + <Folder Include="library\test\tools" />
  69 + <Folder Include="library\tools" />
  70 + <Folder Include="library\version2" />
  71 + <Folder Include="library\vm" />
  72 + <Folder Include="library\web" />
  73 + <Folder Include="library\widgets3" />
  74 + <Folder Include="library\widgets4" />
  75 + <Folder Include="library\widgets4\images" />
  76 + <Folder Include="library\xml" />
  77 + <Folder Include="src" />
  78 + <Folder Include="src\generation" />
  79 + <Compile Include="densaku_lib\ds_generator.anubis" />
  80 + <Compile Include="densaku_lib\types\densaku.anubis" />
  81 + <Compile Include="densaku_lib\types\ds_message.anubis" />
  82 + <Compile Include="densaku_lib\types\ds_types.anubis" />
  83 + <Compile Include="library\a2a\C\formater.anubis" />
  84 + <Compile Include="library\a2a\example.anubis" />
  85 + <Compile Include="library\a2a\generic\preformater.anubis" />
  86 + <Compile Include="library\charset\charset_decoder.anubis" />
  87 + <Compile Include="library\charset\iso2022_jp_decoder.anubis" />
  88 + <Compile Include="library\cipher\base64.anubis" />
  89 + <Compile Include="library\compile_everything.anubis" />
  90 + <Compile Include="library\compil_all.anubis" />
  91 + <Compile Include="library\compil_all_beta.anubis" />
  92 + <Compile Include="library\converters\_1_7_to_1_8.anubis" />
  93 + <Compile Include="library\data_base\alter_table.anubis" />
  94 + <Compile Include="library\data_base\db_tools.anubis" />
  95 + <Compile Include="library\data_base\db_types.anubis" />
  96 + <Compile Include="library\data_base\generated\csv_c_begin_cell.anubis" />
  97 + <Compile Include="library\data_base\generated\csv_c_quoted_cell.anubis" />
  98 + <Compile Include="library\data_base\generated\csv_c_skip_cell.anubis" />
  99 + <Compile Include="library\data_base\generated\csv_s_begin_cell.anubis" />
  100 + <Compile Include="library\data_base\generated\csv_s_quoted_cell.anubis" />
  101 + <Compile Include="library\data_base\generated\csv_s_skip_cell.anubis" />
  102 + <Compile Include="library\data_base\generated\csv_to_eol.anubis" />
  103 + <Compile Include="library\data_base\import_csv.anubis" />
  104 + <Compile Include="library\data_base\metaSQL.anubis" />
  105 + <Compile Include="library\data_base\metaSQL_example_database.anubis" />
  106 + <Compile Include="library\data_base\metaSQL_example_queries.anubis" />
  107 + <Compile Include="library\data_base\metaSQL_Postgres.anubis" />
  108 + <Compile Include="library\data_base\metaSQL_test.anubis" />
  109 + <Compile Include="library\data_base\metaSQL_web.anubis" />
  110 + <Compile Include="library\data_base\mysql_client.anubis" />
  111 + <Compile Include="library\data_base\postgres_client.anubis" />
  112 + <Compile Include="library\data_base\postgres_graphic_interface.anubis" />
  113 + <Compile Include="library\data_base\read_csv.anubis" />
  114 + <Compile Include="library\data_base\read_csv_4.5.anubis" />
  115 + <Compile Include="library\data_base\read_csv_table.anubis" />
  116 + <Compile Include="library\data_base\sdbms.anubis" />
  117 + <Compile Include="library\data_base\sdbms1.anubis" />
  118 + <Compile Include="library\data_base\sdbms3.anubis" />
  119 + <Compile Include="library\data_base\sdbms4.anubis" />
  120 + <Compile Include="library\data_base\sqlite.anubis" />
  121 + <Compile Include="library\data_base\sqlite_foreign_key.anubis" />
  122 + <Compile Include="library\data_base\theory.anubis" />
  123 + <Compile Include="library\doc_tools\latex.anubis" />
  124 + <Compile Include="library\doc_tools\make_doc.anubis" />
  125 + <Compile Include="library\doc_tools\maml.anubis" />
  126 + <Compile Include="library\doc_tools\maml3.anubis" />
  127 + <Compile Include="library\examples\args.anubis" />
  128 + <Compile Include="library\examples\conditional_examples.anubis" />
  129 + <Compile Include="library\examples\cryptography\md5.anubis" />
  130 + <Compile Include="library\examples\cryptography\sha1.anubis" />
  131 + <Compile Include="library\examples\fibonacci.anubis" />
  132 + <Compile Include="library\examples\file_manager_example.anubis" />
  133 + <Compile Include="library\examples\graphism\diaporama.anubis" />
  134 + <Compile Include="library\examples\graphism\paint.anubis" />
  135 + <Compile Include="library\examples\graphism\paint2.anubis" />
  136 + <Compile Include="library\examples\graphism\show_image.anubis" />
  137 + <Compile Include="library\examples\graphism\try_window.anubis" />
  138 + <Compile Include="library\examples\hello.anubis" />
  139 + <Compile Include="library\examples\kbd.anubis" />
  140 + <Compile Include="library\examples\lexical_analysis\href_extractor.anubis" />
  141 + <Compile Include="library\examples\logic\church_integers.anubis" />
  142 + <Compile Include="library\examples\logic\peano.anubis" />
  143 + <Compile Include="library\examples\ls.anubis" />
  144 + <Compile Include="library\examples\mathematics\fact.anubis" />
  145 + <Compile Include="library\examples\mathematics\mandelbrot_set.anubis" />
  146 + <Compile Include="library\examples\mathematics\mandelbrot_set_old.anubis" />
  147 + <Compile Include="library\examples\mathematics\runge_kutta\runge_kutta.anubis" />
  148 + <Compile Include="library\examples\mathematics\syracuse.anubis" />
  149 + <Compile Include="library\examples\merge_list.anubis" />
  150 + <Compile Include="library\examples\mkdir_test.anubis" />
  151 + <Compile Include="library\examples\network\client_browser_info.anubis" />
  152 + <Compile Include="library\examples\network\client_server.anubis" />
  153 + <Compile Include="library\examples\network\minimal_web_site.anubis" />
  154 + <Compile Include="library\examples\network\muscle_echo.anubis" />
  155 + <Compile Include="library\examples\network\port_scan.anubis" />
  156 + <Compile Include="library\examples\network\sntp_client.anubis" />
  157 + <Compile Include="library\examples\network\sokoban.anubis" />
  158 + <Compile Include="library\examples\network\try_dns.anubis" />
  159 + <Compile Include="library\examples\network\udp_client_server.anubis" />
  160 + <Compile Include="library\examples\network\upload.anubis" />
  161 + <Compile Include="library\examples\playing_with_functions.anubis" />
  162 + <Compile Include="library\examples\read_line_example.anubis" />
  163 + <Compile Include="library\examples\restart.anubis" />
  164 + <Compile Include="library\examples\saturate_example.anubis" />
  165 + <Compile Include="library\examples\system\load_adm.anubis" />
  166 + <Compile Include="library\examples\test_web_site.anubis" />
  167 + <Compile Include="library\examples\try_now.anubis" />
  168 + <Compile Include="library\examples\try_protect.anubis" />
  169 + <Compile Include="library\examples\watt.anubis" />
  170 + <Compile Include="library\examples\_99_bottles_of_beer.anubis" />
  171 + <Compile Include="library\graphism\charts.anubis" />
  172 + <Compile Include="library\graphism\float_int32.anubis" />
  173 + <Compile Include="library\graphism\font_tools.anubis" />
  174 + <Compile Include="library\graphism\geometrical_figures.anubis" />
  175 + <Compile Include="library\graphism\gif.anubis" />
  176 + <Compile Include="library\graphism\image_tools.anubis" />
  177 + <Compile Include="library\graphism\jpeg.anubis" />
  178 + <Compile Include="library\graphism\jpeg_size.anubis" />
  179 + <Compile Include="library\graphism\lzw_gif.anubis" />
  180 + <Compile Include="library\graphism\png_size.anubis" />
  181 + <Compile Include="library\graphism\test_charts.anubis" />
  182 + <Compile Include="library\graphism\test_gfigures.anubis" />
  183 + <Compile Include="library\install_released_files.anubis" />
  184 + <Compile Include="library\lexical_analysis\compile_time_test.anubis" />
  185 + <Compile Include="library\lexical_analysis\fast_lexer.anubis" />
  186 + <Compile Include="library\lexical_analysis\fast_lexer_2.anubis" />
  187 + <Compile Include="library\lexical_analysis\fast_lexer_3.anubis" />
  188 + <Compile Include="library\lexical_analysis\fast_lexer_4.5.anubis" />
  189 + <Compile Include="library\lexical_analysis\fast_lexer_4.anubis" />
  190 + <Compile Include="library\lexical_analysis\fast_lexer_example_1.anubis" />
  191 + <Compile Include="library\lexical_analysis\fast_lexer_example_2.anubis" />
  192 + <Compile Include="library\lexical_analysis\lexer_maker_v2.anubis" />
  193 + <Compile Include="library\lexical_analysis\testing_fast_lexer.anubis" />
  194 + <Compile Include="library\lexical_analysis\xml.anubis" />
  195 + <Compile Include="library\locale\iso3166-1.anubis" />
  196 + <Compile Include="library\locale\L3.anubis" />
  197 + <Compile Include="library\locale\L3LanguageInfo.anubis" />
  198 + <Compile Include="library\mail\send_mail.anubis" />
  199 + <Compile Include="library\mail\smtp_server.anubis" />
  200 + <Compile Include="library\make_distribution_library.anubis" />
  201 + <Compile Include="library\mycompile_everything.anubis" />
  202 + <Compile Include="library\network\dns.anubis" />
  203 + <Compile Include="library\network\dns_tools.anubis" />
  204 + <Compile Include="library\network\metaprotocol.anubis" />
  205 + <Compile Include="library\network\remote_files_manager_common.anubis" />
  206 + <Compile Include="library\network\sntp.anubis" />
  207 + <Compile Include="library\network\tools.anubis" />
  208 + <Compile Include="library\official_library.anubis" />
  209 + <Compile Include="library\predefined.anubis" />
  210 + <Compile Include="library\syntactic_analysis\anubis_output.anubis" />
  211 + <Compile Include="library\syntactic_analysis\common.anubis" />
  212 + <Compile Include="library\syntactic_analysis\make_automaton.anubis" />
  213 + <Compile Include="library\syntactic_analysis\parser_generator.anubis" />
  214 + <Compile Include="library\syntactic_analysis\read_grammar.anubis" />
  215 + <Compile Include="library\syntactic_analysis\yacc_version.anubis" />
  216 + <Compile Include="library\system\bytearray.anubis" />
  217 + <Compile Include="library\system\convert.anubis" />
  218 + <Compile Include="library\system\data_io.anubis" />
  219 + <Compile Include="library\system\datetime.anubis" />
  220 + <Compile Include="library\system\files.anubis" />
  221 + <Compile Include="library\system\lists.anubis" />
  222 + <Compile Include="library\system\logger.anubis" />
  223 + <Compile Include="library\system\message_queue.anubis" />
  224 + <Compile Include="library\system\message_transceiver.anubis" />
  225 + <Compile Include="library\system\muscle.anubis" />
  226 + <Compile Include="library\system\parameter\inifile.anubis" />
  227 + <Compile Include="library\system\string.anubis" />
  228 + <Compile Include="library\system\test_logger.anubis" />
  229 + <Compile Include="library\system\types.anubis" />
  230 + <Compile Include="library\system_colors\hsl.anubis" />
  231 + <Compile Include="library\system_colors\hsv.anubis" />
  232 + <Compile Include="library\system_colors\rgb.anubis" />
  233 + <Compile Include="library\system_colors\system_colors.anubis" />
  234 + <Compile Include="library\system_fonts\draw_font.anubis" />
  235 + <Compile Include="library\system_fonts\font_table.anubis" />
  236 + <Compile Include="library\test\all_unit_test.anubis" />
  237 + <Compile Include="library\test\cp_test.anubis" />
  238 + <Compile Include="library\test\execute_capture.anubis" />
  239 + <Compile Include="library\test\inifile_test.anubis" />
  240 + <Compile Include="library\test\lexical_analysis\fast_lexer.ut.anubis" />
  241 + <Compile Include="library\test\lexical_analysis\low_level_fast_lexer_test.anubis" />
  242 + <Compile Include="library\test\locale_test.anubis" />
  243 + <Compile Include="library\test\Logger_test.anubis" />
  244 + <Compile Include="library\test\predefined\ByteArray.ut.anubis" />
  245 + <Compile Include="library\test\predefined\date_and_time.unit_test.anubis" />
  246 + <Compile Include="library\test\predefined\dbapi.unit_test.anubis" />
  247 + <Compile Include="library\test\predefined\decimal_scan.unit_test.anubis" />
  248 + <Compile Include="library\test\predefined\fast_lexer.unit_test.anubis" />
  249 + <Compile Include="library\test\predefined\file.ut.anubis" />
  250 + <Compile Include="library\test\predefined\Int.unit_test.anubis" />
  251 + <Compile Include="library\test\predefined\sqlite.obsolete.unit_test.anubis" />
  252 + <Compile Include="library\test\predefined\sqlite.unit_test.anubis" />
  253 + <Compile Include="library\test\serialize_test.anubis" />
  254 + <Compile Include="library\test\sqlite3_test.anubis" />
  255 + <Compile Include="library\test\SSLTest.anubis" />
  256 + <Compile Include="library\test\system\convert.unit_test.anubis" />
  257 + <Compile Include="library\test\system\files.unit_test.anubis" />
  258 + <Compile Include="library\test\system\Int.unit_test.anubis" />
  259 + <Compile Include="library\test\system\message_queue.unit_test.anubis" />
  260 + <Compile Include="library\test\system\message_transceiver.unit_test.anubis" />
  261 + <Compile Include="library\test\system\string.unit_test.anubis" />
  262 + <Compile Include="library\test\system\wordXX.unit_test.anubis" />
  263 + <Compile Include="library\test\TestItem.anubis" />
  264 + <Compile Include="library\test\tools\line_reader.ut.anubis" />
  265 + <Compile Include="library\test\tools\utf-8.unit_test.anubis" />
  266 + <Compile Include="library\test\vm_test.anubis" />
  267 + <Compile Include="library\tools\2-4tree.anubis" />
  268 + <Compile Include="library\tools\admloader_test.anubis" />
  269 + <Compile Include="library\tools\adm_autoreload.anubis" />
  270 + <Compile Include="library\tools\adm_autoreload_tools.anubis" />
  271 + <Compile Include="library\tools\ANSI-colors.anubis" />
  272 + <Compile Include="library\tools\autocompile.anubis" />
  273 + <Compile Include="library\tools\avltrees.anubis" />
  274 + <Compile Include="library\tools\base64.anubis" />
  275 + <Compile Include="library\tools\basis.anubis" />
  276 + <Compile Include="library\tools\bool.anubis" />
  277 + <Compile Include="library\tools\btree1.anubis" />
  278 + <Compile Include="library\tools\buffered_connection.anubis" />
  279 + <Compile Include="library\tools\bytearray.anubis" />
  280 + <Compile Include="library\tools\cmd_line.anubis" />
  281 + <Compile Include="library\tools\connections.anubis" />
  282 + <Compile Include="library\tools\delegate_writer.anubis" />
  283 + <Compile Include="library\tools\dictionaries.anubis" />
  284 + <Compile Include="library\tools\dump_file.anubis" />
  285 + <Compile Include="library\tools\explore_disk.anubis" />
  286 + <Compile Include="library\tools\file_and_dir.anubis" />
  287 + <Compile Include="library\tools\findstring.anubis" />
  288 + <Compile Include="library\tools\find_and_replace.anubis" />
  289 + <Compile Include="library\tools\find_and_replace_simulator.anubis" />
  290 + <Compile Include="library\tools\finger_trees.anubis" />
  291 + <Compile Include="library\tools\float.anubis" />
  292 + <Compile Include="library\tools\function.anubis" />
  293 + <Compile Include="library\tools\graphic.anubis" />
  294 + <Compile Include="library\tools\graphviz.anubis" />
  295 + <Compile Include="library\tools\hashtable.anubis" />
  296 + <Compile Include="library\tools\int.anubis" />
  297 + <Compile Include="library\tools\ip_address.anubis" />
  298 + <Compile Include="library\tools\ISO-8601.anubis" />
  299 + <Compile Include="library\tools\iterators.anubis" />
  300 + <Compile Include="library\tools\latex.anubis" />
  301 + <Compile Include="library\tools\line_reader.anubis" />
  302 + <Compile Include="library\tools\list.anubis" />
  303 + <Compile Include="library\tools\maml.anubis" />
  304 + <Compile Include="library\tools\maybefloat.anubis" />
  305 + <Compile Include="library\tools\printable_tree.anubis" />
  306 + <Compile Include="library\tools\prompt.anubis" />
  307 + <Compile Include="library\tools\random.anubis" />
  308 + <Compile Include="library\tools\rationals.anubis" />
  309 + <Compile Include="library\tools\read_table.anubis" />
  310 + <Compile Include="library\tools\safe_save_retrieve.anubis" />
  311 + <Compile Include="library\tools\saturate.anubis" />
  312 + <Compile Include="library\tools\schedul_task.anubis" />
  313 + <Compile Include="library\tools\sdbms.anubis" />
  314 + <Compile Include="library\tools\sdbms1.anubis" />
  315 + <Compile Include="library\tools\sdbms2.anubis" />
  316 + <Compile Include="library\tools\sorting.anubis" />
  317 + <Compile Include="library\tools\streams.anubis" />
  318 + <Compile Include="library\tools\string.anubis" />
  319 + <Compile Include="library\tools\tables.anubis" />
  320 + <Compile Include="library\tools\time.anubis" />
  321 + <Compile Include="library\tools\tools.anubis" />
  322 + <Compile Include="library\tools\unit_test.anubis" />
  323 + <Compile Include="library\tools\useful_types.anubis" />
  324 + <Compile Include="library\tools\utf-8.anubis" />
  325 + <Compile Include="library\tools\words.anubis" />
  326 + <Compile Include="library\version2\diaconescu.anubis" />
  327 + <Compile Include="library\vm\vm_dump.anubis" />
  328 + <Compile Include="library\vm_test.anubis" />
  329 + <Compile Include="library\web\calculatrice.anubis" />
  330 + <Compile Include="library\web\common.anubis" />
  331 + <Compile Include="library\web\cookies.anubis" />
  332 + <Compile Include="library\web\counter.anubis" />
  333 + <Compile Include="library\web\default_web_site.anubis" />
  334 + <Compile Include="library\web\dynamic_http_server.anubis" />
  335 + <Compile Include="library\web\file_manager.anubis" />
  336 + <Compile Include="library\web\generic_form.anubis" />
  337 + <Compile Include="library\web\generic_login.anubis" />
  338 + <Compile Include="library\web\generic_table.anubis" />
  339 + <Compile Include="library\web\html.anubis" />
  340 + <Compile Include="library\web\https_get.anubis" />
  341 + <Compile Include="library\web\http_get.anubis" />
  342 + <Compile Include="library\web\http_get_common.anubis" />
  343 + <Compile Include="library\web\http_trace.anubis" />
  344 + <Compile Include="library\web\kernel.anubis" />
  345 + <Compile Include="library\web\making_a_web_site.anubis" />
  346 + <Compile Include="library\web\making_forms.anubis" />
  347 + <Compile Include="library\web\mime.anubis" />
  348 + <Compile Include="library\web\modules.anubis" />
  349 + <Compile Include="library\web\multihost_http_server.anubis" />
  350 + <Compile Include="library\web\read_html.anubis" />
  351 + <Compile Include="library\web\secure_action.anubis" />
  352 + <Compile Include="library\web\service_machine.anubis" />
  353 + <Compile Include="library\web\site_test.anubis" />
  354 + <Compile Include="library\web\sokoban.anubis" />
  355 + <Compile Include="library\web\torture_server.anubis" />
  356 + <Compile Include="library\web\web_arg_encode.anubis" />
  357 + <Compile Include="library\widgets3\5_ht.anubis" />
  358 + <Compile Include="library\widgets3\box.anubis" />
  359 + <Compile Include="library\widgets3\bubble.anubis" />
  360 + <Compile Include="library\widgets3\button.anubis" />
  361 + <Compile Include="library\widgets3\characters_example.anubis" />
  362 + <Compile Include="library\widgets3\check_box.anubis" />
  363 + <Compile Include="library\widgets3\colors.anubis" />
  364 + <Compile Include="library\widgets3\desktop.anubis" />
  365 + <Compile Include="library\widgets3\desktop_example.anubis" />
  366 + <Compile Include="library\widgets3\drag_and_drop.anubis" />
  367 + <Compile Include="library\widgets3\generic_editor.anubis" />
  368 + <Compile Include="library\widgets3\generic_editor_example.anubis" />
  369 + <Compile Include="library\widgets3\host_window.anubis" />
  370 + <Compile Include="library\widgets3\hypertext.anubis" />
  371 + <Compile Include="library\widgets3\image.anubis" />
  372 + <Compile Include="library\widgets3\input.anubis" />
  373 + <Compile Include="library\widgets3\map_list.anubis" />
  374 + <Compile Include="library\widgets3\menus.anubis" />
  375 + <Compile Include="library\widgets3\menu_manager.anubis" />
  376 + <Compile Include="library\widgets3\o_essai.anubis" />
  377 + <Compile Include="library\widgets3\o_hypertext.anubis" />
  378 + <Compile Include="library\widgets3\resizer.anubis" />
  379 + <Compile Include="library\widgets3\scrollbar.anubis" />
  380 + <Compile Include="library\widgets3\simple_example.anubis" />
  381 + <Compile Include="library\widgets3\simple_window.anubis" />
  382 + <Compile Include="library\widgets3\space.anubis" />
  383 + <Compile Include="library\widgets3\table.anubis" />
  384 + <Compile Include="library\widgets3\table_example.anubis" />
  385 + <Compile Include="library\widgets3\text.anubis" />
  386 + <Compile Include="library\widgets3\tickets_holder.anubis" />
  387 + <Compile Include="library\widgets3\tools.anubis" />
  388 + <Compile Include="library\widgets3\trace.anubis" />
  389 + <Compile Include="library\widgets3\tree_editor.anubis" />
  390 + <Compile Include="library\widgets3\tree_editor_test.anubis" />
  391 + <Compile Include="library\widgets3\try_ht.anubis" />
  392 + <Compile Include="library\widgets3\ubiquity.anubis" />
  393 + <Compile Include="library\widgets3\variable.anubis" />
  394 + <Compile Include="library\widgets3\widget.anubis" />
  395 + <Compile Include="library\widgets3\window.anubis" />
  396 + <Compile Include="library\widgets4\background.anubis" />
  397 + <Compile Include="library\widgets4\box.anubis" />
  398 + <Compile Include="library\widgets4\bubble_manager.anubis" />
  399 + <Compile Include="library\widgets4\bubble_manager_test.anubis" />
  400 + <Compile Include="library\widgets4\button.anubis" />
  401 + <Compile Include="library\widgets4\check_box.anubis" />
  402 + <Compile Include="library\widgets4\desktop.anubis" />
  403 + <Compile Include="library\widgets4\desktop_example.anubis" />
  404 + <Compile Include="library\widgets4\detect_event.anubis" />
  405 + <Compile Include="library\widgets4\host_window.anubis" />
  406 + <Compile Include="library\widgets4\hypertext.anubis" />
  407 + <Compile Include="library\widgets4\hypertext_test.anubis" />
  408 + <Compile Include="library\widgets4\image.anubis" />
  409 + <Compile Include="library\widgets4\make_tartan_files.anubis" />
  410 + <Compile Include="library\widgets4\menus.anubis" />
  411 + <Compile Include="library\widgets4\menu_manager.anubis" />
  412 + <Compile Include="library\widgets4\menu_manager_test.anubis" />
  413 + <Compile Include="library\widgets4\mouse_tracker.anubis" />
  414 + <Compile Include="library\widgets4\radio_button.anubis" />
  415 + <Compile Include="library\widgets4\radio_buttons_test.anubis" />
  416 + <Compile Include="library\widgets4\resizer.anubis" />
  417 + <Compile Include="library\widgets4\scrollbar.anubis" />
  418 + <Compile Include="library\widgets4\simple_window.anubis" />
  419 + <Compile Include="library\widgets4\space.anubis" />
  420 + <Compile Include="library\widgets4\table.anubis" />
  421 + <Compile Include="library\widgets4\tartan_generator.anubis" />
  422 + <Compile Include="library\widgets4\tartan_generator_demo.anubis" />
  423 + <Compile Include="library\widgets4\tests.anubis" />
  424 + <Compile Include="library\widgets4\text.anubis" />
  425 + <Compile Include="library\widgets4\text_input.anubis" />
  426 + <Compile Include="library\widgets4\text_input_test.anubis" />
  427 + <Compile Include="library\widgets4\ticket_keeper.anubis" />
  428 + <Compile Include="library\widgets4\tools.anubis" />
  429 + <Compile Include="library\widgets4\trace.anubis" />
  430 + <Compile Include="library\widgets4\tree_editor.anubis" />
  431 + <Compile Include="library\widgets4\tree_editor_test.anubis" />
  432 + <Compile Include="library\widgets4\tree_node.anubis" />
  433 + <Compile Include="library\widgets4\variable_widget.anubis" />
  434 + <Compile Include="library\widgets4\widget.anubis" />
  435 + <Compile Include="library\widgets4\widget_demo.anubis" />
  436 + <Compile Include="library\widgets4\widget_test.anubis" />
  437 + <Compile Include="library\widgets4\window.anubis" />
  438 + <Compile Include="library\widgets4\window_test.anubis" />
  439 + <Compile Include="library\xml\basic_xml_parser.anubis" />
  440 + <Compile Include="library\xml\xml_parser.apg.anubis" />
  441 + <Compile Include="library\xml\xml_parser_types.anubis" />
  442 + <Compile Include="src\generation\files.anubis" />
  443 + <Compile Include="src\generation\types.anubis" />
  444 + <Compile Include="src\generation\types_header.anubis" />
  445 + <Compile Include="src\generation\types_messages.anubis" />
  446 + <Compile Include="src\main.anubis" />
  447 + <Compile Include="src\types_checking.anubis" />
  448 + <None Include="library\anubis_doc.maml" />
  449 + <None Include="library\compile_all.inproj" />
  450 + <None Include="library\doc_tools\cows.jpg" />
  451 + <None Include="library\doc_tools\fNScTnBA4MH-qH_w0pRfArXeeKE8.png" />
  452 + <None Include="library\doc_tools\fq22PnfBrYNx2fPr8NQyxy5tdO_A.png" />
  453 + <None Include="library\doc_tools\maml3_tutorial.html" />
  454 + <None Include="library\doc_tools\maml3_tutorial.maml" />
  455 + <None Include="library\doc_tools\maml3_tutorial.maml.html" />
  456 + <None Include="library\doc_tools\maml3_tutorial.maml.pdf" />
  457 + <None Include="library\doc_tools\maml3_tutorial.pdf" />
  458 + <None Include="library\doc_tools\tNScTnBA4MH-qH_w0pRfArXeeKE8.png" />
  459 + <None Include="library\examples\determinism.anubis.c" />
  460 + <None Include="library\examples\for_loop.anubis.c" />
  461 + <None Include="library\examples\graphism\image_samples\cows.jpg" />
  462 + <None Include="library\examples\graphism\image_samples\farm.jpg" />
  463 + <None Include="library\examples\graphism\image_samples\fingers.jpg" />
  464 + <None Include="library\examples\graphism\image_samples\flowers.jpg" />
  465 + <None Include="library\examples\graphism\image_samples\mountain.jpg" />
  466 + <None Include="library\examples\graphism\image_samples\torrent.jpg" />
  467 + <None Include="library\examples\mathematics\runge_kutta\runge_kutta.apg" />
  468 + <None Include="library\examples\network\public\bambou.gif" />
  469 + <None Include="library\examples\network\public\bleuc.gif" />
  470 + <None Include="library\examples\network\public\bleuccloud.gif" />
  471 + <None Include="library\examples\network\public\boule.gif" />
  472 + <None Include="library\examples\network\public\button_prev.gif" />
  473 + <None Include="library\examples\network\public\cloud.gif" />
  474 + <None Include="library\examples\network\public\gboule.gif" />
  475 + <None Include="library\examples\network\public\gtete.gif" />
  476 + <None Include="library\examples\network\public\noir25.gif" />
  477 + <None Include="library\examples\network\public\noir25cloud.gif" />
  478 + <None Include="library\examples\network\public\tete.gif" />
  479 + <None Include="library\examples\OOCounter.anubis.cpp" />
  480 + <None Include="library\graphism\image_samples\cows.jpg" />
  481 + <None Include="library\graphism\image_samples\farm.jpg" />
  482 + <None Include="library\graphism\image_samples\fingers.jpg" />
  483 + <None Include="library\graphism\image_samples\flowers.jpg" />
  484 + <None Include="library\graphism\image_samples\mountain.jpg" />
  485 + <None Include="library\graphism\image_samples\torrent.jpg" />
  486 + <None Include="library\install_released_files.bat" />
  487 + <None Include="library\install_test.bat" />
  488 + <None Include="library\lexical_analysis\lexer_maker_v2_example.lexer" />
  489 + <None Include="library\lexical_analysis\test.xml" />
  490 + <None Include="library\locale\ISO-639-1 and ISO-639-2.txt" />
  491 + <None Include="library\locale\ISO-639-2_values_8bits.txt" />
  492 + <None Include="library\syntactic_analysis\anubis_output.anubis.test" />
  493 + <None Include="library\syntactic_analysis\calculator_example.apg" />
  494 + <None Include="library\syntactic_analysis\essai.apg" />
  495 + <None Include="library\syntactic_analysis\README" />
  496 + <None Include="library\system_fonts\courier_bold_o_10.sf" />
  497 + <None Include="library\system_fonts\courier_bold_o_12.sf" />
  498 + <None Include="library\system_fonts\courier_bold_o_14.sf" />
  499 + <None Include="library\system_fonts\courier_bold_o_18.sf" />
  500 + <None Include="library\system_fonts\courier_bold_o_24.sf" />
  501 + <None Include="library\system_fonts\courier_bold_o_8.sf" />
  502 + <None Include="library\system_fonts\courier_bold_r_10.sf" />
  503 + <None Include="library\system_fonts\courier_bold_r_12.sf" />
  504 + <None Include="library\system_fonts\courier_bold_r_14.sf" />
  505 + <None Include="library\system_fonts\courier_bold_r_18.sf" />
  506 + <None Include="library\system_fonts\courier_bold_r_24.sf" />
  507 + <None Include="library\system_fonts\courier_bold_r_8.sf" />
  508 + <None Include="library\system_fonts\courier_medium_o_10.sf" />
  509 + <None Include="library\system_fonts\courier_medium_o_12.sf" />
  510 + <None Include="library\system_fonts\courier_medium_o_14.sf" />
  511 + <None Include="library\system_fonts\courier_medium_o_18.sf" />
  512 + <None Include="library\system_fonts\courier_medium_o_24.sf" />
  513 + <None Include="library\system_fonts\courier_medium_o_8.sf" />
  514 + <None Include="library\system_fonts\courier_medium_r_10.sf" />
  515 + <None Include="library\system_fonts\courier_medium_r_12.sf" />
  516 + <None Include="library\system_fonts\courier_medium_r_14.sf" />
  517 + <None Include="library\system_fonts\courier_medium_r_18.sf" />
  518 + <None Include="library\system_fonts\courier_medium_r_24.sf" />
  519 + <None Include="library\system_fonts\courier_medium_r_8.sf" />
  520 + <None Include="library\system_fonts\helvetica_bold_o_10.sf" />
  521 + <None Include="library\system_fonts\helvetica_bold_o_12.sf" />
  522 + <None Include="library\system_fonts\helvetica_bold_o_14.sf" />
  523 + <None Include="library\system_fonts\helvetica_bold_o_18.sf" />
  524 + <None Include="library\system_fonts\helvetica_bold_o_24.sf" />
  525 + <None Include="library\system_fonts\helvetica_bold_o_8.sf" />
  526 + <None Include="library\system_fonts\helvetica_bold_r_10.sf" />
  527 + <None Include="library\system_fonts\helvetica_bold_r_12.sf" />
  528 + <None Include="library\system_fonts\helvetica_bold_r_14.sf" />
  529 + <None Include="library\system_fonts\helvetica_bold_r_18.sf" />
  530 + <None Include="library\system_fonts\helvetica_bold_r_24.sf" />
  531 + <None Include="library\system_fonts\helvetica_bold_r_8.sf" />
  532 + <None Include="library\system_fonts\helvetica_medium_o_10.sf" />
  533 + <None Include="library\system_fonts\helvetica_medium_o_12.sf" />
  534 + <None Include="library\system_fonts\helvetica_medium_o_14.sf" />
  535 + <None Include="library\system_fonts\helvetica_medium_o_18.sf" />
  536 + <None Include="library\system_fonts\helvetica_medium_o_24.sf" />
  537 + <None Include="library\system_fonts\helvetica_medium_o_8.sf" />
  538 + <None Include="library\system_fonts\helvetica_medium_r_10.sf" />
  539 + <None Include="library\system_fonts\helvetica_medium_r_12.sf" />
  540 + <None Include="library\system_fonts\helvetica_medium_r_14.sf" />
  541 + <None Include="library\system_fonts\helvetica_medium_r_18.sf" />
  542 + <None Include="library\system_fonts\helvetica_medium_r_24.sf" />
  543 + <None Include="library\system_fonts\helvetica_medium_r_8.sf" />
  544 + <None Include="library\system_fonts\times_bold_i_10.sf" />
  545 + <None Include="library\system_fonts\times_bold_i_12.sf" />
  546 + <None Include="library\system_fonts\times_bold_i_14.sf" />
  547 + <None Include="library\system_fonts\times_bold_i_18.sf" />
  548 + <None Include="library\system_fonts\times_bold_i_24.sf" />
  549 + <None Include="library\system_fonts\times_bold_i_8.sf" />
  550 + <None Include="library\system_fonts\times_bold_r_10.sf" />
  551 + <None Include="library\system_fonts\times_bold_r_12.sf" />
  552 + <None Include="library\system_fonts\times_bold_r_14.sf" />
  553 + <None Include="library\system_fonts\times_bold_r_18.sf" />
  554 + <None Include="library\system_fonts\times_bold_r_24.sf" />
  555 + <None Include="library\system_fonts\times_bold_r_8.sf" />
  556 + <None Include="library\system_fonts\times_medium_i_10.sf" />
  557 + <None Include="library\system_fonts\times_medium_i_12.sf" />
  558 + <None Include="library\system_fonts\times_medium_i_14.sf" />
  559 + <None Include="library\system_fonts\times_medium_i_18.sf" />
  560 + <None Include="library\system_fonts\times_medium_i_24.sf" />
  561 + <None Include="library\system_fonts\times_medium_i_8.sf" />
  562 + <None Include="library\system_fonts\times_medium_r_10.sf" />
  563 + <None Include="library\system_fonts\times_medium_r_12.sf" />
  564 + <None Include="library\system_fonts\times_medium_r_14.sf" />
  565 + <None Include="library\system_fonts\times_medium_r_18.sf" />
  566 + <None Include="library\system_fonts\times_medium_r_24.sf" />
  567 + <None Include="library\system_fonts\times_medium_r_8.sf" />
  568 + <None Include="library\test\Anubis UnitTest.aproj" />
  569 + <None Include="library\test\Anubis UnitTest.ide" />
  570 + <None Include="library\test\duplicate_letters.c" />
  571 + <None Include="library\tools\maml.anubis.1" />
  572 + <None Include="library\tools\safe_save_retrieve.anubis_back" />
  573 + <None Include="library\web\spacer.gif" />
  574 + <None Include="library\widgets3\alienor.jpg" />
  575 + <None Include="library\widgets3\alienor_aquitaine.jpg" />
  576 + <None Include="library\widgets3\anubis.jpg" />
  577 + <None Include="library\widgets3\flowers.jpg" />
  578 + <None Include="library\widgets3\gisant_alienor.jpg" />
  579 + <None Include="library\widgets3\gisant_alienor2.jpg" />
  580 + <None Include="library\widgets3\henri_2.jpg" />
  581 + <None Include="library\widgets3\john_lackland.jpg" />
  582 + <None Include="library\widgets3\old_sarum.jpg" />
  583 + <None Include="library\widgets3\richard.jpg" />
  584 + <None Include="library\widgets4\images\bidon.jpg" />
  585 + <None Include="library\widgets4\images\checked.jpg" />
  586 + <None Include="library\widgets4\images\cows.jpg" />
  587 + <None Include="library\widgets4\images\farm.jpg" />
  588 + <None Include="library\widgets4\images\fingers.jpg" />
  589 + <None Include="library\widgets4\images\flowers.jpg" />
  590 + <None Include="library\widgets4\images\mountain.jpg" />
  591 + <None Include="library\widgets4\images\not_checked.jpg" />
  592 + <None Include="library\widgets4\images\torrent.jpg" />
  593 + <None Include="library\xml\xml_parser.apg" />
  594 + </ItemGroup>
  595 +</Project>
0 596 \ No newline at end of file
... ...
densaku.ide 0 → 100644
  1 +++ a/densaku.ide
  1 +
  2 +Microsoft Visual Studio Solution File, Format Version 9.00
  3 +# Visual Studio 2005
  4 +# SharpDevelop 1.0.12.108
  5 +Project("{B6712916-30DE-4a3e-A54C-2A79AC984AEE}") = "densaku", "densaku.aproj", "D41E2417-E9CD-451B-8823-F48BABAACC4A"
  6 +EndProject
  7 +Global
  8 + GlobalSection(SolutionConfigurationPlatforms) = preSolution
  9 + Debug|Any CPU = Debug|Any CPU
  10 + Release|Any CPU = Release|Any CPU
  11 + EndGlobalSection
  12 + GlobalSection(ProjectConfigurationPlatforms) = postSolution
  13 + {48AEB6F3-398C-4A63-AA74-6F17C6C11D27}.Debug|Any CPU.Build.0 = Debug|Any CPU
  14 + {48AEB6F3-398C-4A63-AA74-6F17C6C11D27}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
  15 + {48AEB6F3-398C-4A63-AA74-6F17C6C11D27}.Release|Any CPU.Build.0 = Release|Any CPU
  16 + {48AEB6F3-398C-4A63-AA74-6F17C6C11D27}.Release|Any CPU.ActiveCfg = Release|Any CPU
  17 + D41E2417-E9CD-451B-8823-F48BABAACC4A.Debug|Any CPU.Build.0 = Debug|Any CPU
  18 + D41E2417-E9CD-451B-8823-F48BABAACC4A.Debug|Any CPU.ActiveCfg = Debug|Any CPU
  19 + D41E2417-E9CD-451B-8823-F48BABAACC4A.Release|Any CPU.Build.0 = Release|Any CPU
  20 + D41E2417-E9CD-451B-8823-F48BABAACC4A.Release|Any CPU.ActiveCfg = Release|Any CPU
  21 + EndGlobalSection
  22 +EndGlobal
... ...
densaku_lib @ 7e96578325b
  1 +++ a/densaku_lib
  1 +Subproject commit 7e96578325b591652558fe6bdc0364f830f186e3
... ...
name.txt 0 → 100644
  1 +++ a/name.txt
  1 +高速伝言
  2 +Kōsoku dengon
  3 +un message haut débit
  4 +高伝
  5 +takaden
  6 +
  7 +伝言作成
  8 +Dengon Sakusei
  9 +Message creation
  10 +
  11 +伝作
  12 +DenSaku
... ...
src/generation/files.anubis 0 → 100644
  1 +++ a/src/generation/files.anubis
  1 +/*
  2 + * Created by PyramIDE.
  3 + * User: フランスのトトロ aka (David RENÉ)
  4 + * Date: 15/01/2017
  5 + * Time: 23:40
  6 + * © David RENÉ
  7 + */
  8 +
  9 +read densaku_lib/types/densaku.anubis
  10 +read densaku_lib/ds_generator.anubis
  11 +read tools/basis.anubis
  12 +read types_checking.anubis
  13 +read generation/types.anubis
  14 +
  15 +public define Maybe(One)
  16 + generate_message_files
  17 + (
  18 + List(DS_Type) types, //Types description
  19 +// DS_Messages messages,
  20 + String destination_dir
  21 + )=
  22 +
  23 + if check_types(types) is
  24 + {
  25 + failure then failure,
  26 + success(_) then
  27 + //since _types is hk_database(name, apps),
  28 + println("Generating types and message files");
  29 + make_all_types(types, destination_dir);
  30 + //make_vtm(apps, destination_dir);
  31 + //if generate_create_table(apps, destination_dir) is failure then println("failure");failure else
  32 + //println("Generating message collection");
  33 + //if generate_menus(apps, destination_dir) is failure then println("failure");failure else
  34 + success(unique)
  35 + }.
  36 +
  37 +global define DS_Generator_API
  38 + ds_gen =
  39 + ds_api(generate_message_files).
... ...
src/generation/types.anubis 0 → 100644
  1 +++ a/src/generation/types.anubis
  1 +/*
  2 + * Created by PyramIDE.
  3 + * User: フランスのトトロ aka (David RENÉ)
  4 + * Date: 21/01/2017
  5 + * Time: 01:33
  6 + * © Calexium
  7 + */
  8 +
  9 +read generation/types_header.anubis
  10 +read generation/types_messages.anubis
  11 +
  12 +read system/files.anubis
  13 +read system/string.anubis
  14 +read tools/streams.anubis
  15 +read tools/basis.anubis
  16 +read densaku_lib/types/ds_types.anubis
  17 +
  18 +define Maybe(One)
  19 + generate_type
  20 + (
  21 + Stream stream,
  22 + DS_Type ds_type
  23 + )=
  24 + if write_string(stream, dump_DS_Type(ds_type)) is failure then failure else
  25 +
  26 + success(unique)
  27 +.
  28 +
  29 +define Maybe(One)
  30 + make_type_file
  31 + (
  32 + DS_Type ds_type, //type description
  33 + String dest_dir
  34 + )
  35 + =
  36 + since ds_type is ds_type(name, alternatives),
  37 + println("Generating file for type ["+name+"]");
  38 + with file_name = dest_dir+"types/generated/"+to_lower(name)+".anubis",
  39 +
  40 + //create all necessary directories if doesn't exist.
  41 + make_directories(file_name);
  42 +
  43 + if file(file_name, new) is
  44 + {
  45 + failure then println("can't create file "+file_name);failure,
  46 + success(fd) then
  47 + with strm = make_stream(fd),
  48 + if generate_type_header(strm, ds_type) is { failure then failure, success(_) then
  49 + if generate_type(strm, ds_type) is { failure then failure, success(_) then
  50 + if generate_type_message_description(strm, ds_type) is { failure then failure, success(_) then
  51 + if generate_type_to_message(strm, ds_type) is { failure then failure, success(_) then
  52 + if generate_type_from_message(strm, ds_type) is { failure then failure, success(_) then
  53 +
  54 + success(unique)}}}}}
  55 + }
  56 +.
  57 +
  58 +public define One
  59 + make_all_types
  60 + (
  61 + List(DS_Type) types,
  62 + String destination_dir
  63 + )=
  64 + map_forget((DS_Type type) |-> since type is ds_type(type_name, ds_alts),
  65 + println("generating type file for Type ["+type_name+"]");
  66 + make_type_file(type, destination_dir), types)
  67 +.
  68 +
... ...
src/generation/types_header.anubis 0 → 100644
  1 +++ a/src/generation/types_header.anubis
  1 +/*
  2 + * Created by PyramIDE.
  3 + * User: フランスのトトロ aka (David RENÉ)
  4 + * Date: 21/01/2017
  5 + * Time: 01:44
  6 + * © Calexium
  7 + */
  8 +
  9 +read tools/basis.anubis
  10 +read tools/streams.anubis
  11 +read tools/ISO-8601.anubis
  12 +read system/string.anubis
  13 +read densaku_lib/types/ds_types.anubis
  14 +
  15 +
  16 +public define String
  17 + insert_read_foreign_type
  18 + (
  19 +// Stream stream,
  20 + DS_Type sd_type //type description
  21 + )=
  22 + with foreign_type_list = get_all_extern_type(sd_type),
  23 + join("", map((Extern_type ext_type) |-> since ext_type is extern(_, read_file), "read "+read_file+"\n", foreign_type_list))
  24 +.
  25 +
  26 +public define Maybe(One)
  27 + generate_type_header
  28 + (
  29 + Stream stream,
  30 + DS_Type sd_type //type description
  31 + )=
  32 + write_string(stream,
  33 +"/*
  34 + * Created by 伝作 (Densaku).
  35 + * User: Automat
  36 + * Date: "+_Int_to_ISO_8601_date(now)+"
  37 + * Time: "+_Int_to_ISO_8601_time(now)+"
  38 + *
  39 + */
  40 +
  41 +transmit system/muscle.anubis
  42 +" +
  43 + insert_read_foreign_type(sd_type)+
  44 +"\n"
  45 + )
  46 + .
  47 +
... ...
src/generation/types_messages.anubis 0 → 100644
  1 +++ a/src/generation/types_messages.anubis
  1 +/*
  2 + * Created by PyramIDE.
  3 + * User: フランスのトトロ aka (David RENÉ)
  4 + * Date: 21/01/2017
  5 + * Time: 15:57
  6 + * © Calexium
  7 + */
  8 +
  9 +read tools/basis.anubis
  10 +read tools/streams.anubis
  11 +read tools/ISO-8601.anubis
  12 +read system/string.anubis
  13 +read densaku_lib/types/ds_types.anubis
  14 +
  15 +
  16 +public define String
  17 + insert_read_foreign_type
  18 + (
  19 +// Stream stream,
  20 + DS_Type ds_type //type description
  21 + )=
  22 + with foreign_type_list = get_all_extern_type(ds_type),
  23 + join("", map((Extern_type ext_type) |-> since ext_type is extern(_, read_file), "read "+read_file+"\n", foreign_type_list))
  24 +.
  25 +
  26 +public define Maybe(One)
  27 + generate_type_message_description
  28 + (
  29 + Stream stream,
  30 + DS_Type ds_type //type description
  31 + )=
  32 + since ds_type is ds_type(type_name, alternatives),
  33 + with title = type_name+" message format",
  34 + write_string(stream,
  35 +"\n"+
  36 +" "+title+"\n"+
  37 +" "+fill(length(title), '=')+"\n\n"+
  38 +// insert_type_message_description(ds_type)+
  39 +"\n"
  40 + )
  41 + .
  42 +
  43 +define String
  44 + anb_type_to_message
  45 + (
  46 + String type_msg,
  47 + DS_Anubis_Type anb_type,
  48 + String name
  49 + )=
  50 + if anb_type is
  51 + {
  52 + one then
  53 + "add_string("+type_msg+", \""+name+"\", _"+name+")",
  54 + bool then
  55 + "add_bool("+type_msg+", \""+name+"\", _"+name+")",
  56 + int then
  57 + "add_string("+type_msg+", \""+name+"\", to_String(_"+name+"))",
  58 + string then
  59 + "add_string("+type_msg+", \""+name+"\", _"+name+")",
  60 + float then
  61 + "add_float("+type_msg+", \""+name+"\", _"+name+")",
  62 + ds_type(type_name) then
  63 + "add_message("+type_msg+", \""+name+"\", to_Message(_"+name+"))",
  64 + extern_type(type_name, _) then //external type. No need to check
  65 + "add_message("+type_msg+", \""+name+"\", to_Message(_"+name+"))",
  66 + }
  67 +.
  68 +
  69 +define String
  70 + generate_component_to_message
  71 + (
  72 + String prefix,
  73 + String type_msg,
  74 + String alt_name,
  75 + List(DS_Component) components
  76 + )=
  77 + if components is
  78 + {
  79 + [] then ",\n",
  80 + [h . t] then
  81 + since h is component(b_list, anb_type, name, comment),
  82 + ";\n"+
  83 + prefix +"// [type = "+(if b_list is list then "List(" else "")+dump(anb_type)+(if b_list is list then ")" else "")+"] "+alt_name+"."+name+"\n"+
  84 + (if b_list is list then
  85 + prefix +"map_forget(("+dump(anb_type)+ " _"+name+") |-> "+anb_type_to_message(type_msg, anb_type, name)+", __"+name+")"
  86 + else
  87 + prefix +"forget("+anb_type_to_message(type_msg, anb_type, name)+")")
  88 + +
  89 + generate_component_to_message(prefix, type_msg, alt_name, t)
  90 + }
  91 +.
  92 +
  93 +define String
  94 + generate_arguments_list
  95 + (
  96 + List(DS_Component) components
  97 + )=
  98 + join(", ", map((DS_Component compo) |-> since compo is component(b_list, _, name, _), (if b_list is list then "__"else "_")+name, components)).
  99 +.
  100 +
  101 +define String
  102 + generate_one_alternative_to_message
  103 + (
  104 + String type_msg,
  105 + DS_Alternative ds_alternative
  106 + )=
  107 + with prefix = " ",
  108 + if ds_alternative is
  109 + {
  110 + //generate the enum alternative
  111 + enum(alt_name, comment) then
  112 + prefix + "//Alternative "+alt_name+" (NO TYPE)\n"+
  113 + prefix + alt_name + " then \n"+
  114 + prefix + " forget(add_string("+type_msg+", \"__TYPE_ALT__\", \""+alt_name+"\")),\n\n",
  115 +
  116 + //generate the alternative with components
  117 + alternative(alt_name, components_list) then
  118 + prefix + "//Alternative "+alt_name+"\n"+
  119 + prefix + alt_name + "("+ generate_arguments_list(components_list) +")"+ " then \n"+
  120 + prefix + " forget(add_string("+type_msg+", \"__TYPE_ALT__\", \""+alt_name+"\"))"+
  121 + generate_component_to_message(prefix+" ", type_msg, alt_name, components_list)+
  122 + "\n"
  123 + }
  124 +.
  125 +
  126 +define String
  127 + generate_type_alternatives_to_message
  128 + (
  129 + String type_msg,
  130 + List(DS_Alternative) ds_alts
  131 + )=
  132 + if ds_alts is
  133 + {
  134 + [] then "",
  135 + [h . t] then
  136 + generate_one_alternative_to_message(type_msg, h) +
  137 + generate_type_alternatives_to_message(type_msg, t)
  138 + }
  139 +.
  140 +
  141 +public define Maybe(One)
  142 + generate_type_to_message
  143 + (
  144 + Stream stream,
  145 + DS_Type ds_type //type description
  146 + )=
  147 + since ds_type is ds_type(type_name, alternatives),
  148 + with lower_type_name = "_"+to_lower(type_name),
  149 + type_msg = lower_type_name+"_message",
  150 + write_string(stream,
  151 +"public define Message\n"+
  152 +" to_Message\n"+
  153 +" (\n"+
  154 +" "+type_name+" "+lower_type_name+"\n"+
  155 +" )=\n"+
  156 +" with "+type_msg+" = message((Word32)0), //\n"+
  157 +" forget(add_string("+type_msg+", \"__TYPE__\", \""+type_name+"\"));\n"+
  158 +" if "+lower_type_name+" is\n"+
  159 +" {\n"+ generate_type_alternatives_to_message(type_msg, alternatives)+
  160 +" };\n"+
  161 +" "+type_msg+"\n"+
  162 +".\n\n"
  163 + )
  164 +.
  165 +
  166 +/****************************** FROM MESSAGE ***********************************/
  167 +
  168 +define String
  169 +/* anb_type_list_from_message
  170 + * Generate the function which get the list of the target type ie. Bool, complex type, etc.
  171 + * To do so, we get in the given Message, all fields with the name and encoded type of expected type.
  172 + * Encoded type is not the final type. For example for Anubis Int, there is not exists any equilavent
  173 + * in C, C++ etc... So, the Int is stored Message as String.
  174 + * The process to send and received an Anubis real integer follow these steps:
  175 + * SEND Int -> String -> Message
  176 + * RECEIVE Message -> String -> Maybe(Int) -> Int
  177 + * Here we are in RECEIVE process for list
  178 + */
  179 + anb_type_list_from_message
  180 + (
  181 + String indent,
  182 + String type_msg,
  183 + DS_Anubis_Type anb_type,
  184 + String name,
  185 + Var(Int) brace_counter
  186 + )=
  187 + if anb_type is
  188 + {
  189 + //empty then indent + "with " + name + " = map_escape(( String str ) |-> (Maybe(String)) from_Message(msg), find_strings("+type_msg+", \""+name+"\")),\n",
  190 + one then indent + "with " + name + " = map_escape((Message msg) |-> (Maybe("+dump(anb_type)+ ")) from_Message(msg), find_messages("+type_msg+", \""+name+"\")),\n",
  191 + bool then indent + "with " + name + " = find_bool_list("+type_msg+", \""+name+"\"),\n",
  192 + int then indent + "with " + name + " = map_escape((String int_str) |-> decimal_scan(int_str), find_string_list("+type_msg+", \""+name+"\")),\n",
  193 + string then indent + "with " + name + " = find_string_list("+type_msg+", \""+name+"\"),\n",
  194 + float then indent + "with " + name + " = find_float_list("+type_msg+", \""+name+"\"),\n",
  195 + ds_type(type_name) then
  196 + brace_counter <- *brace_counter + 1;
  197 + indent +"with _"+name+" = map_escape(( Message msg ) |-> (Maybe("+dump(anb_type)+ ")) from_Message(msg), find_message_list("+type_msg+", \""+name+"\")),\n"+
  198 + indent +" if _"+name+" is {failure then failure, success("+name+") then\n",
  199 + extern_type(type_name, _) then
  200 + brace_counter <- *brace_counter + 1;
  201 + indent +"with _"+name+" = map_escape(( Message msg ) |-> (Maybe("+dump(anb_type)+ ")) from_Message(msg), find_message_list("+type_msg+", \""+name+"\")),\n"+
  202 + indent +" if _"+name+" is {failure then failure, success("+name+") then\n"
  203 + }
  204 +.
  205 +
  206 +define String
  207 + anb_type_from_message
  208 + (
  209 + String indent,
  210 + String type_msg,
  211 + DS_Anubis_Type anb_type,
  212 + String name,
  213 + Var(Int) brace_counter
  214 + )=
  215 + if anb_type is
  216 + {
  217 + one then
  218 + brace_counter <- (*brace_counter + 1);
  219 + indent + "if find_string("+type_msg+", \""+name+"\")"+" is {failure then failure, success(_) then with "+name+" = unique,\n",
  220 + bool then
  221 + brace_counter <- (*brace_counter + 1);
  222 + indent + "if find_bool("+type_msg+", \""+name+"\")"+" is {failure then failure, success("+name+") then\n",
  223 + int then
  224 + brace_counter <- (*brace_counter + 2);
  225 + indent + "if find_string("+type_msg+", \""+name+"\")"+" is {failure then failure, success(_"+name+") then\n"+
  226 + indent + " if decimal_scan(_"+name+") is { failure then failure, success("+name+") then\n",
  227 + string then
  228 + brace_counter <- (*brace_counter + 1);
  229 + indent + "if find_string("+type_msg+", \""+name+"\")"+" is {failure then failure, success("+name+") then\n",
  230 + float then
  231 + brace_counter <- (*brace_counter + 1);
  232 + indent + "if find_float("+type_msg+", \""+name+"\)"+" is {failure then failure, success("+name+") then\n",
  233 + ds_type(type_name) then
  234 + brace_counter <- (*brace_counter + 2);
  235 + indent + "if find_message("+type_msg+", \""+name+"\")"+" is {failure then failure, success("+name+"_msg) then\n"+
  236 + indent + " if (Maybe("+type_name+"))from_Message("+name+"_msg)"+" is {failure then failure, success("+name+") then\n",
  237 + extern_type(type_name, _) then //external type. No need to check
  238 + brace_counter <- (*brace_counter + 2);
  239 + indent + "if find_message("+type_msg+", \""+name+"\")"+" is {failure then failure, success("+name+"_msg) then\n"+
  240 + indent + " if (Maybe("+type_name+"))from_Message("+name+"_msg)"+" is {failure then failure, success("+name+") then\n",
  241 + }
  242 +.
  243 +
  244 +define String
  245 + generate_arguments_list_from
  246 + (
  247 + List(DS_Component) components
  248 + )=
  249 + join(", ", map((DS_Component compo) |-> since compo is component(b_list, _, name, _), name, components)).
  250 +.
  251 +
  252 +define String
  253 + generate_component_from_message
  254 + (
  255 + String indent,
  256 + String type_msg,
  257 + String alt_name,
  258 + List(DS_Component) components,
  259 + Var(Int) brace_counter
  260 + )=
  261 + if components is
  262 + {
  263 + [] then "\n",
  264 + [h . t] then
  265 + since h is component(b_list, anb_type, name, comment),
  266 + indent + "// [type = "+(if b_list is list then "List(" else "")+dump(anb_type)+(if b_list is list then ")" else "")+"] "+alt_name+"."+name+"\n"+
  267 + (if b_list is list then
  268 + anb_type_list_from_message(indent, type_msg, anb_type, name, brace_counter)
  269 + else
  270 + anb_type_from_message(indent, type_msg, anb_type, name, brace_counter))
  271 + +
  272 + generate_component_from_message(indent, type_msg, alt_name, t, brace_counter)
  273 +
  274 + }
  275 +.
  276 +
  277 +define String
  278 + generate_one_alternative_from_message
  279 + (
  280 + String indent,
  281 + String type_msg,
  282 + DS_Alternative ds_alternative
  283 + )=
  284 + with brace_counter = (Var(Int))var(0),
  285 + if ds_alternative is
  286 + {
  287 + //generate the enum alternative
  288 + enum(alt_name, comment) then
  289 + "//Alternative "+alt_name+" (NO TYPE)\n"+
  290 + indent + "if __type_alt__ = \""+alt_name+"\" then\n"+
  291 + indent + " success("+alt_name+")\n"+
  292 + indent + "else "
  293 +
  294 + //generate the alternative with components
  295 + alternative(alt_name, components_list) then
  296 + with begin =
  297 + "//Alternative "+alt_name+"\n"+
  298 + indent + "if __type_alt__ = \""+alt_name+"\" then //Alternative "+alt_name+"\n"+
  299 + //prefix + alt_name + "("+ generate_arguments_list(components_list) +")"+ " then \n"+
  300 + //prefix + " forget(add_string("+type_msg+", \"__TYPE_ALT__\", \""+alt_name+"\"))"+
  301 + generate_component_from_message(indent+" ", type_msg, alt_name, components_list, brace_counter)+
  302 + indent + " success("+alt_name+"("+generate_arguments_list_from(components_list)+"))\n",
  303 +
  304 + begin +
  305 + //indent + "brace counter ["+*brace_counter+"]"+
  306 + indent + fill(*brace_counter, '}') +"\n"+
  307 + indent + "else "
  308 + }
  309 +.
  310 +
  311 +define String
  312 + generate_type_alternative_from_message
  313 + (
  314 + String indent,
  315 + String type_msg,
  316 + List(DS_Alternative) ds_alts
  317 + )=
  318 + if ds_alts is
  319 + {
  320 + [] then "",
  321 + [h . t] then
  322 + generate_one_alternative_from_message(indent, type_msg, h)+
  323 + generate_type_alternative_from_message(indent, type_msg, t)
  324 + }
  325 +.
  326 +
  327 +public define Maybe(One)
  328 + generate_type_from_message
  329 + (
  330 + Stream stream,
  331 + DS_Type ds_type //type description
  332 + )=
  333 + since ds_type is ds_type(type_name, alternatives),
  334 + with lower_type_name = "_"+to_lower(type_name),
  335 + type_msg = lower_type_name+"_message",
  336 + write_string(stream,
  337 +"public define Maybe("+type_name+")\n"+
  338 +" from_Message\n"+
  339 +" (\n"+
  340 +" Message "+type_msg+"\n"+
  341 +" )=\n"+
  342 +" if find_string("+type_msg+", \"__TYPE__\") is {failure then failure, success(__type__) then\n"+
  343 +" if find_string("+type_msg+", \"__TYPE_ALT__\") is {failure then failure, success(__type_alt__) then\n"+
  344 +" if __type__ = \""+type_name+"\" then \n"+
  345 +" "+generate_type_alternative_from_message(" ",type_msg, alternatives)+"\n"+
  346 +" failure //No valid Alternative found !\n"+
  347 +" else\n"+
  348 +" failure //Type not found in message !\n"+
  349 +" }}\n"+
  350 +".\n\n"
  351 + )
  352 +.
... ...
src/main.anubis 0 → 100644
  1 +++ a/src/main.anubis
  1 +/**************************************************
  2 + * Project* The Takaden (高伝) project
  3 + *
  4 + * *Title* Generating type and Muscle message with Anubis
  5 + *
  6 + * *Copyright* Copyright © David RENÉ 2017.
  7 + *
  8 + *
  9 + * *Overview*
  10 + *
  11 + *
  12 + */
  13 +
  14 +/*
  15 + *
  16 + * Created by PyramIDE.
  17 + * User: フランスのトトロ aka (David RENÉ)
  18 + * Date: 15/01/2017
  19 + * Time: 23:30
  20 + * © Calexium
  21 + */
  22 +
  23 +read densaku_lib/types/densaku.anubis
  24 +read generation/files.anubis
  25 +
  26 +public define List(DS_Type) the_types_list =
  27 + [
  28 + ds_type("User_Account", [
  29 + alternative("account", [
  30 + component(string, "first_name"),
  31 + component(string, "last_name"),
  32 + component(int, "extension")
  33 + ]),
  34 + alternative("account_ext", [
  35 + component(string, "first_name"),
  36 + component(string, "last_name"),
  37 + component(list, int, "extension_list")
  38 + ]),
  39 + alternative("account_super_extended", [
  40 + component(string, "first_name"),
  41 + component(string, "last_name"),
  42 + component(list, int, "extension_list"),
  43 + component(extern_type("DB_Entry", "calexium_lib/database.anubis"), "db_id")
  44 + ])
  45 + ]),
  46 +
  47 + ds_type("Trunk_SIP", [
  48 + alternative("account", [
  49 + component(string, "login"),
  50 + component(string, "password"),
  51 + component(string, "host")
  52 + ])
  53 + ]),
  54 +
  55 + ds_type("HK_App", [
  56 + alternative("hk_app", [
  57 + component(string, "app_name", comment("Name of the application")),
  58 + component(ds_type("HK_Icon"), "icon", comment("Icon description")),
  59 + component(ds_type("HK_Help_Text"), "help"),
  60 + component(list, ds_type("HK_Table"),"hk_tables")
  61 + ])
  62 + ]),
  63 + ds_type("HK_Help_Text", [
  64 + enum("no_help_text", comment("no help text available")),
  65 + alternative("help_text_TAG", [component(string, "tag_name", comment("TAG use with Anubis translation tool /locale/L3.anubis"))]),
  66 + alternative("help_text", [component(string, "help_text", comment("pure text to show"))])
  67 + ]),
  68 + ds_type("HK_Icon", [
  69 + enum("no_icon"),
  70 + alternative("icon16", [component(string, "name")])
  71 + ]),
  72 + ].
  73 +
  74 + global define One
  75 + takaden
  76 + (
  77 + List(String) args
  78 + ) =
  79 + if load_tk_generator is
  80 + {
  81 + failure then println("Takaden generator can't be load"),
  82 + success(hk_gen) then forget(tk_gen.generate_type_msg_files(the_type_msg_description, ""))
  83 + }.
  84 +
  85 +global define One
  86 + densaku
  87 + (
  88 + List(String) args
  89 + )=
  90 + //print(dump_TK_Type_list(the_types_list)).
  91 + forget(generate_message_files(the_types_list, "")).
  92 +
... ...
src/types_checking.anubis 0 → 100644
  1 +++ a/src/types_checking.anubis
  1 +/*
  2 + * Created by PyramIDE.
  3 + * User: フランスのトトロ aka (David RENÉ)
  4 + * Date: 21/01/2017
  5 + * Time: 00:36
  6 + * © Calexium
  7 + */
  8 +
  9 +read densaku_lib/types/ds_types.anubis
  10 +read system/string.anubis
  11 +read tools/basis.anubis
  12 +
  13 +define Bool
  14 + is_upper_case_start
  15 + (
  16 + String name
  17 + )=
  18 + if nth(0, name) is
  19 + {
  20 + failure then println("Can't get the first character of "+name);false,
  21 + success(char) then
  22 + if (char +=< 90) & (64 +< char) then
  23 + true
  24 + else
  25 + println("Type name ["+name+"] doesn't start with upper case");false
  26 + }
  27 +.
  28 +
  29 +define Maybe(One)
  30 +/* Check if the type name start with upper case and if that type doesn't already exists
  31 + */
  32 + check_name
  33 + (
  34 + List(DS_Type) types, //types description
  35 + List(String) so_far,
  36 + Maybe(One) return
  37 + )=
  38 + if types is
  39 + {
  40 + [] then return,
  41 + [h . t] then
  42 + since h is ds_type(type_name, tk_alts),
  43 + if is_upper_case_start(type_name) then
  44 + check_name(t, [], return)
  45 + else
  46 + check_name(t, [], failure)
  47 + }
  48 +.
  49 +
  50 +public define Maybe(One)
  51 + check_types
  52 + (
  53 + List(DS_Type) types //types description
  54 + )=
  55 + //check if name start with upper case
  56 + if check_name(types, [], success(unique)) is
  57 + {
  58 + failure then println("Error(s) in type checking "); failure
  59 + success(_) then
  60 + success(unique)
  61 + }
  62 +.
... ...