#d2d 2.0 text using mtdocpage : webpage #title bandm #mt, a Compiler Construction and Meta Programming Toolkit. #htmlTitle bandm metatools, a Compiler Construction and Meta Programming Toolkit. #lang en #metaContentsTag keywords #content meta programming, program generation, java #tableOfContents // ========================================================================= #h1 #title Intentions and Areas of Application // ========================================================================= #p bandm #mt is a toolkit for compiler construction, in the widest sense, and meta programming. #list #symbol a #i It uses as front-end languages XML, XML DTD, #antlr and several proprietary meta-formats. #i It supports as back-end languages currently XML, XHTML, DTD and primely #java\. Many of the toolkit's components can be used for generating output in arbitrary other back-end formats. #i It is implemented in #java\. The implementing code makes full use of parametrization and strict typing. The generated code does this not completely, but widely. #i Currently, this website offers you a #xemph!binary distribution! for educational use (see #link getit.html#text the download page#/link). Its operation requires as a third-party library an older version of #antlr/. For running #mt/ you need a JRE=Java Runtime Environment in a version equal or greater to 1.8. #/list #p#kind src For building #mt #bold!from scratch! you will additionally need JDK (>= 1.8) and some GNU tools, like #src!make!, #src!bash! and #src!sed! . #p In the last years, #mt have been successfully employed in very different medium-scale industrial, private and administrative applications. // ========================================================================= #h1 #title Components of #mt // ========================================================================= #p The characters of the components of #mt range from small utility libraries, which can be used ubiquituously, upto large source code generating systems. #p In the following text you will find the description of the java packages #src!eu.bandm.tools! #ldots #table #tr #td #link messageLocation.html #text #src message #/link #td generic infrastructure for message-based signaling, logging and diagnosis, including producers, filters, stores, transformers, etc. #tr #td #link messageLocation.html #text #src location #/link #td used to represent postions and ranges in documents. #tr #td #link messageLocaton.html #text #src muli #td support for multi-lingual messages and user interfaces #tr #td #link format.html #text #src format #/link #td framework for human-readable text layout, enhancing #pers!Hughes!'s pretty-printing combinators #cite Hug95 by parameterization, single-pass evaluation, a front-end notation and compilers for various contexts. #tr #td #link dtd.html #text #src dtd #/link #td a versatile #java model for W3C-DTD objects, with entity resolution and powerful diagnosis. #tr #td #link xantlr.html #text #src xantlr #/link #td a preprocessor to the antlr parser #cite antlr for the generation of a configurable well-formed XML representation of the parse tree #cite tlw03 . #tr #td #link tdom.html #text #src tdom #/link #td a #emph!strictly typed! XML document object model, DTD based, with powerful processing facilities #cite tlw03 #tr #td //#link ops.html #text #src!ops! & #src!graph! //#/link #td a collection for applicative, functional style programming and for graph analysis. #tr #td #link metajava.html #text #src metajava #td canonically and seamlessly integrated inverse counterpart to #java reflection: data types and methods for #emph!generating! source code, including a template engine and a reversable parser #tr #td #link umod.html #text #src umod #/link #td compiler to generate #java model code from a concise and algebraic notation. The generated code includes safe constructors and setter/getter functions, visualization, serialization and "smart boilerplates" for visitors and rewriters. #tr #td #tr #td #link option.html #text #src option #/link #td a compiler-based approach to unify application parameterization between different formats like GUIs and command line syntax of different OSs. #tr #td #link auxils.html #text util #/link #td A whole zoo of small but versatile #bold auxiliaries #/bold for generating, processing and storing XML, enhancing java standard libs, operating on file systems, inspecting data structures, etc. #tr #td #link d2d.html #text #src d2d #/link #td "direct to document", a compiler front-end to make xml an input format for poets, essayists and novelists. #/table #p#kind missing more PACKAGES to come: #nl Mvc #nl util / xml printer (oder bei DTD !?)#nl ulex ?? #nl keywordgrammar ?? #nl // ========================================================================= #h1 #title Some Small Sample Applications // ========================================================================= #p There are some small example applications, coming with examples, user doc, etc., on #link getit.html#text the download page#/link. // ========================================================================= #h1 #title Format of the Documentation // ========================================================================= #p The pages of the user documentation want to inform #emph!what! you can accomplish with our tools, and for #emph what purpose#/ you can (/should/will !-) use them. #p The details of #emph!how! this is done is mostly found in the parallel #link ../api/index.html #top #text automatically generated api doc#/. But in cases where the "#emph!how!" cannot be linked to certain classes, but is more a matter of overall tactics, it will also be described in these user doc (e.g. for #link tdom.html #text tdom#/). #p Even more fundamental background information about the theories applied, you find in some publications (#cite tlw03 , #cite ltw01b , #cite tlw01a , #cite lt_keod2011 , #cite lt_ttc2011 , #cite lt11a ) // NICHT AKZEPTIERT : ? #cite ltw02 ). #p#kind src Since #mt eagerly employ themselves for boot-strapping and code generation, oftenly you will find instructive examples of using our tools in their own source text. This will be pointed out in the following text. #p#kind missing MORE TO COME #nl where to put the internal doc ?? #p #underconstruction #nl Currently this website is still #bold under construction.#/bold#nl We apologize for any inconveniences. #eof