Free license

Due to a lack of sales, Digital River terminated my account on June 11th, 2021. That is why I have now decided to make the standard version freely available.

On this occasion, the website was also redesigned to make it mobile-friendly.


New in TextTransformer 1.7.5

1. The navigation with the back button and the again button has been revised. The called scripts were managed for the tokens, productions, elements, and tests in a common list till now. They are managed separately from now on. When the back button or the again button is clicked, no page is changed any more, but the corresponding script of the same page is shown from now on.
The results of "find all" aren't taken into the history list any more and when the project is parsed, there is no automatic navigation to the startrule any more.

2. When copying text from the viewer into the editor, existing text breakpoints there are removed.

3. A second parameter can optionally be passed to the functions findChildLabel, findChildValue and findChildId now. By this boolean parameter is determined whether the search is done recursively or not.

4. The error indication for competitive SKIP nodes was extended by a case which, till now, wasn't recognized.

5. The freely available installation program of the TextTransformer is a demo version now, which cannot be registered any more. Registered users of the TextTransformer get a link to a password protected area where they can download the full version.


New in TextTransformer 1.7.4

1. Child nodes of a node or dnode can be sorted now by means of the functions sortChildrenA or sortChildrenD according to their labels in alphabetically ascending or descending order.

2. In the variable inspector there is an additional button now, by which the history list of the variables can be cleared.

3. A bug was fixed: TextTransformer could crash, if it was tried to start the debugger while a loading text was still processed by a preprocessor.


New product: Delphi2Cpp

Delphi2Cpp is a converter of Object-Pascal (Delphi) code to C++. The program was made with the TextTransformer.


New in version 1.7.3

1. node's can be moved as well now, as dnode's already before. This was forbidden before, because of the more difficult internal memory management of node's. The functions "addChildLast", "addChildFirst" and "addChildBefore" for the insertion of node's into a tree can be used now too, if a node is already contained in a tree. At the old position it is removed.

2. Some tree functions have been added.

  • nextLeaf, to find the next leaf-node
  • prevLeaf, to find the previou leaf-node
  • replaceChild, for the substitution of an existing node
  • detach_node, for the detachment from a tree

3. The check of the return type of "addChildBefore" wrongly asked for a node type. This was corrected to bool.

4. The "matched" function of "xState" missed in the help file and was added.

5. In the generated code the modifier "virtual" is now preceded to all functions and productions. So you can overwrite the interpreted functions with more efficient code.

6. The function "find_file" has now a fourth parameter, which determines,, whether the name is treated case sensitive or not.

7. The presentation of local d/node's in the variable inspector was simplified. wurde. Details ars shown now only after double click in the tree view.

8. EXIT OK doesn't produce an error message in the transformation-manager any more.

9. The list of the recent managements is newly sorted after saving a management in the transformation-manager.


  • There is now a test suite for the Delphi parser
  • More options for the report in the transformations-manager
  • Unfortunately, version numbers were shown only with the values zero and one. This bug is fixed now.


New in version 1.7.2

1. A report can be written from the list of the results in the transformation manager now. The information which is included in the report can be determined by the user.

2. Version information can be saved in the project options now.

3. Bugs in the parameter wizard and in the tree wizard were eliminated: the parameter name and actions for literals inside of productions were overwritten by default values. Insertions of actions to SKIP and ANY weren't bracketed correctly

4. The bug was eliminated, that inclusions were not called inside of look-aheads in the generated code.

5. The bug was eliminated, that the interpreter asked for a dnode as type of the second parameter in findNextLabel, findNextValue, findNextId in trees of node's too.

6. Bugs were fixed at the import/export.

7. A pretty-printer for Delphi was published:



New in version 1.7.1

1. A fault had crept in into the detection of conflicts. The beginning tokens of nodes following on options and optional repetitions weren't considered.

2. English was set as language in the Tetra.ini at a German installation too. The example "BinaryCheck" wasn't installed with German installation.

3. A more understandable error message appears now if user data are missing. This happens e.g. if the file ttmain_c.frm required since 1.7.0 wasn't copied.

4. A bug was fixed which could appear in the transformation manager if the project uses a preprocessor.

5. When "replacing in all scripts" it could happen, that only the first search expression was replaced within a script. This bug was fixed.

6. At the renaming of a script the list of the scripts is updated too now, to which you can can go forward or go back.

7. A parser for Delphi was published:


8. The Transformation manager missed in the installer of TextTransformer 1.7.0


New in version 1.7.0

This update is most likely the last essential update of the TextTransformer until the appearance of the version 2. Version 2 will have a new unicode capable surface and will support unicode parsers. But the generation of wide char based c++ parsers is possible already with TextTransformers 1.7.

There is a unique special offer for the time period until the appearance of TextTransformer 2: you can get the professional - c++ code generating - version of TextTransformer for the price of the standard version; this is a quarter of the previous price, you save almost € 300! Who newly acquires a standard license of the TextTransformer 1.7 now has claim to a free update to version 2; the same applies to buyers of the standard license provided that not longer than a year has passed before the appearance of the version 2. New buyers of the professional version don't have this claim.

1. On the basis of an additional frame file a c++ file is produced now too, where the generated parser is called. This call is carried out in the standard frame within a main function. So the code is generated completely for a console application. The production of complete converter programs is possible thus very fast. Of course, like the other frames the new frame also can be adapted to special needs e.g. to the call of the parser within a class function or other routines of one's own. There is an additional window in the TextTransformer, where you can edit the new frame.

2. With the test version of the TextTransformer the code can be produced for small projects now. The required supporting code is co-installed now, too.

3. For every project also a little text file is generated now, which helps to create a "jamfile" for the use with with boost bjam. See:


4. The option for the production of wide char parsers was completed. This feature has been available as an experimentally option since long time. Now the CTT_DomNode class is a template dependent on the character type now, too.

5. The CTT_Xerces class was adapted to the current xerces version 3.

6. Labels of dnodes are checked now whether they are valid names for XML elements.

7. The series of the "goto" functions for tree nodes was removed, because there wasn't any vote for it's preservation for over a year.

8. The predefined mode in the project options for opening the output file is just like the one for the source file now: binary. The wrong line endings "\r\r\n" were the result of the execution of the transformation manager with the previous default values.

Bug fix: 04/15/2009

A bug has been fixed, which caused, that the copying of the user data to another drive didn't work.


New in version 1.6.2

1. The dialog for the calculation of character classes has been improved. The predefined sets are calculated correctly with Windows functions according to the local settings and not with the corresponding functions of the standard library now. The sets of the ASCII characters and the non ASCII characters also can be selected from the list and the possible insertion of the null character was made easier now. The user can adjust a minimal distance now from where on characters succeeding one another are summarized to a range.

2. Bugs at the use of inclusions were fixed: inclusions are recognized now, if they are following the last regular token. Inclusions may now follow on each other immediately now at the end of a production too. The global setting for an inclusion can be switched off for productions locally (by selecting an empty name). Wrong markings during the debugging of a transition into an inclusion don't appear any longer.

3. For nullable structures in repetitions only warnings were caused till now. If such warnings were ignored, the the parser could step into endless loops. The warnings were therefore intensified to error messages and an execution of the project is stopped with that. In addition the abilty of the user to stop the process was improved.

4. A bug was eliminated which could happen at the processing of file groups in the transformation manager or with the command line tool: if a parse error occurred at the transformation of a file, this could have an effect on processing of the following file.

5. With an additional button on the page for the target files in the transformation manager the list of the files can be actualized.

6. A complete MIME parser (Multipurpose Internet Mail Extensions) can be downloaded now from:


This parser can be used among others as a basis for a spamfilter. The IMP filter - a Spamihilator plugin, which uses the TextTransformer interpreter - was updated too and permits parsing of complete e-mails now, inclusive of all sub-structures of the headers.


New in version 1.6.1

1. The TextTransformer is multi-user compatible now. Different users can work with settings and application data of their own on a single computer. - Many thanks to Andreas Busch, who helped me to accomplish this goal.

2. Based on the TextTransformer interpreter there is now a free filter for spamihilator:


This IMP filter uses TextTransformer projects to classify e-mails as spam or not spam. More information is at:


3. A C++ to Java converter Cpp2Java is presented in four videos at:


4. The following bugs and flaws were eliminated:

- When the start rule is renamed on the production page, the name is changed in the project options and in the selection box now too.

- Sometimes semantic actions in empty alternatives were not executed in the interpreter. Example:

( "a" ( "b" | {{...}} ) | SKIP )*

- In the components "ExtraParam" wasn't passed to the Interpreter at the call of the TransformTextToText function and the TransformTextToTree function. A NULL-pointer for this and other parameters could raise an exception.

- the german popup menu appeared in the viewer, even if english was set as language in the environment options.

- selected entries in the production stack were white and couln't be read.

5.There is a forum for questions about TextTransformer now at:



New in version 1.6.0

1. A new input window permits the representation of source files in binary and hexadecimal form. So it is possible to debug a source file exactly, even if it contains null-characters or mixed line breaks.

2. Extensive trees are shown very fast in the variable inspector now. Only the data are loaded, which are required for the shown part. In addition, node attributes are highlighted now.

3. Look-ahead tokens can get buffered now. By this the execution of projects which make use of this possibility can be accelerated strongly.

4. In the look-ahead debugger the productions/tokens are marked now differntly, depending on the success.

5. With the new token "ANY" all tokens which aren't explicit or implicit alternatives in the place of the use of this token are recognized. So there are additional possibilities for the treatment of unspecified text sections besides the use of the SKIP token already known. - In the course of the integration of the ANY token the core of the TextTransformers was written completely newly.

6. There are three options for the SKIP token now which contol the toleration of alternatives.

7. In the new example "BinaryCheck" a look-ahead production and the use of a project as a preprocessor is demonstrated.

8. The commands "addChildBefore" and "removeChild" are added for the manipulation of trees.

9. Many other small improvements.

There are three new free projects at:

  • a project to import Yacc grammars into the TextTransformer
  • a parser for the programming language C
  • a parser for HTML4

06-02-08 (version of 05-25-08 with simplified function table wizard)

New in version 1.5.0

1. XML is supported as a target format in a special way now. TextTransformer now has the ability to create XML documents directly as a xerces DOM and then to write them into files. (The experimental possibility already existed in the program for a long time but it is completed and official now.) All encodings, which are supported by xerces, can be selected in the project options amongst many other properties desired for the XML document.

2. A number of event handlers are new in the TextTransformer.

  • OnEnterProduction
  • OnExitProduction
  • OnAcceptToken
  • OnBeginBranch
  • OnEndBranch
  • OnBeginDocument
  • OnEndDocument
  • OnParseError

By means of of these functions, e.g. parse-trees very can be produced for arbitrary projects very simply.

3. The new possibilities of the xerces DOM and the events also were integrated into the wizards.

4. The TetraComponents for the use of TextTransformer projects in Delphi were revised and extended. Parse events can be evaluated and e.g. used for the construction of Parse-trees also in these Delphi components. There is a very detailed help to the components now. The example application was extended too. Supporting pascal code is produced by the TextTransformer IDE now.

5. Semantic actions can now be switched off in the IDE and out of the components without deactivating the look-ahead possibility too. E.g. this can make sense if a project only shall be used for the construction of a tree in Delphi.

6. The dialog for testing regular expressions was redesigned. The expressions and their sub-expressions and what respectively was recognized by them now is represented in a tree structure. The dialog is put in a dll of its own now.

7. There are three additional tokens for uniform resource identifiers according to RFC 3986:


8. Faults were eliminated, concerning the sorting of exportable and interpretable code and the generation of C++ code.

9. The function-tabel wizard was simplified.

10. There is a video section now.


New in version 1.4.1

1. A TextTransformer project can be initialized now with external start parameters. A single initialization before the execution of all transformations can be carried out with a configuration parameter. Every single transformation can be initialized with an extra parameter.

2. The tree wizard now can create parse trees for copying projects. The options for the creation of trees from dnodes are extended.

3. The TextTransformer-package was extended by two components: TTextEventsTransformer and TTextTreeViewTransformer. Like the other components these components are free too and delivered with c++ source code. The components are available as Delphi-Code too.

4. The C-preprocessor-project named "C_pp" is published now at http://www.texttransformer.org C++ files can be remodeled into the preprocessed form with c_pp, like they are "seen" by the compiler: Preprocessor directives are removed, include files are included, definitions are replaced, not defined areas are removed and macros are expanded.


New in version 1.4.0

1. Now look-ahead productions (*) can be debugged as well, just like ordinary productions. A special button or shortcut starts look-ahead debugging, afterwards the same commands can be used to single step over or into productions, as in the mainstream debugger. This even works in the staggered case, where other look-ahead productions are used inside of the first one; and so on.

(*) Explanation to look-ahead productions: For disambiguation of alternatives, a tentative parse of the input is possible, using the already existing productions. In this mode no semantic actions are performed, instead the productions return an success/failure value, which allows to skip inappropriate alternatives.

2. Now it's also possible to step backwards in the debugger, from a breakpoint or error condition. This backtrace allows to find out how this state was reached, without restarting the parser, and eliminates the need for writing specialized test cases, which otherwise may be required to reproduce a certain error condition.

3. The variable-inspector now shows all members of a container variable. A double click on a node member shows the entire subtree, linked to this node.

4. Subtrees can be opened and closed in the tree display, and the root of the tree can be moved to the present parents root.

5. Many more small improvements and bug fixes. Among others:

  • There is a time_stamp function now
  • the ESC button only stops a transformation, if pressed while the application is activ.
  • a hint in the transformation-manager disappears, when the apllication is changed
  • attributes are copied too with the d/node clone function
  • you can use dnode's in function-tables as parameters and return values now
  • the im/export now also works, if the preprocessor option is set


New in version 1.3.4

Transitional actions

So-called transitional actions are new in TextTransformer 1.3.4. Transitional actions are actions which are executed after a token was accepted and before the next is recognized. This is e.g. the ideal time for the insertion of new dynamic tokens. Since transitional actions are executed also during a lookahead and the dynamic tokens are inserted only temporarily, the behavior of a production of the main parser then can be simulated in a lookahead now, too, if dynamic token are used in it.

Additional break in the debugger

When debugging in the single step mode an additional break is carried out now if a production ends with a semantic action. So values of local variables can be seen in the variable inspector also after execution of the last action of a production.

Improved transformation-manager

In the transformation-manager you can already determine at the start now that the transformations shall be continued also if an error occurs. The dates aren't shown only on the result tab, but written also into the log file now.

Extended find functions

The following list of functions for the search for tree nodes can be called optionally now, with an additional node parameter according to which the search is stopped.

node findNextLabel(const str& xsLabel, const node& xnLast)
node findNextValue(const str& xsValue, const node& xnLast)
node findPrevLabel(const str& xsLabel, const node& xnLast)
node findPrevValue(const str& xsValue, const node& xnLast)
node findNextId(unsigned int xuiId, const node& xnLast)
node findPrevId(unsigned int xuiId, const node& xnLast)

The same functions can be used with "dnode" instead of "node" too.

Consolidation of the xerces tree

The experimental possibility of producing parsing trees as a xerces DOM was improved. The generation of source code is working for parsers with xerces trees now, too.

Bug fix

Some messages still were redirected to the transformation manager after it was closed. In the extreme case this led to an "access violation". The fault was eliminated.


New in version 1.3.3

The bit-wise operators are available in the c++ interpreter now:

^=  exclusive or 
|=  inclusive or 
&=  and 
<<  <<=  left shift 
>>  >>=  right shift 

Characters can be expressed octally and hexadecimally as an esccape-sequences in single characters and strings now.

Integral values also can be written now in an octal or hexadecimal notation.

xState.itg() returns a correct integer value now for text sections which can be interpreted as octal or hexadecimal numbers.


The logic of the IF-structures is defined more clearly in the cases in which IF and ELSE branch havn't the same first sets: if the text doesn't match on the IF branch, the condition isn't checked. In the case of a fault more detailed error texts are output now.

The following bugs were fixed

A redo of a renaming of a script wasn't stored correctly. The function "Clear semantic code from script" did nothing. The button and the menu entry for the function for collapsing the semantic code weren't coordinated. In the executing mode not all returning instructions from a production worked as desired. EPS nodes which are unnecessary and leading to faults were inserted in the parser now and then. xState.dbl() returned an integer.


New in version 1.3.2

Preprocessing texts

Texts can be preprocessed now while loading them. You have to set a second TextTransformer project in the project options, which then is executed in an additional instance of the TextTransformer interpreter while the text is loaded The already preprocessed text then is shown in the IDE.
A project used for the preprocessor, in turn can get preprocessed by another project. This way you can accumulate simple remodellings to complex transformations.
The pre-processing also works in the transformation-manager and with the command line tool.

Progress bar

The progress bar shown when compiling a project was replaced by a more adequate display. In the new display the progress is is shown by counting the processed productions.

Character class calculator

The dialog for the calculation of character classes was extended by the option to represent the result as an enumeration of all individual characters.

Melting of string literals

String literals adjacent to each other are unified into one single string literal. So you can better write longer texts.


str s = "/**********************\n"
        "*  This is a comment  *\n"

Bug fixes

A fault at the view of the expected token was eliminated. A script text has disappeared at the cancelling of a cancel action in the script editor. This was corrected. The transformation manager and the wizard for new projects can both be opended again during one session (in 1.3.1 you only could use one of them in one session). The transformation manager results no more in an empty set for destination files now if two paths which are already different in the first subdirectory following the disk drive were selected as target folders. At the construction of new projects the value for the look-ahead stack was put inadvertently also for the stack of the main parser. This fault also was eliminated.

xerces dom

A new possibility of producing parse trees as a xerces DOM is in an experimental status. This opens a great room for the manipulation in the produced c++ code and a DOM can easily the be written as XML document. The latter is already possible in the TextTransformer interpreter too. Trees from the new type of nodes: "dnodes" as opposed to the old ones are shown in the variable inspector too, after a transformation is ended.


New in version 1.3.1

TextTransformer permits an unlimited look-ahead on the following text to decide at the current position which analysis alternative has to be chosen. The look-ahead is made by produktions, which in turn can use look-aheads too. It was necessary till now that at least a token was consumed within a look-ahead before a second look-ahead was possible. Possible circularities should be avoided with that. This restriction is removed now. There is an additional grammar test now instead which recognizes possible circularities already before the program is executed. In addition, there is an additional value now in the project options which limits the size of the stack of look-ahead productions.

With "SetIndenter" you can now chose the character, by which indentations are made. Two faults at the calculation of the tokens and of token sets were corrected which occurred as wrong, confusing error messages.

Some changes were already publishe for 1.3.0 without increasing the version number:


Small update without increasing the version number 1.3.0

1. Unfortunately, inkompatible versions of the tetra_cl.exe and the tetra_engine.dll were contained in the installation program for the optional command line tool. I apologize.

2. Floating windows can be maximized now.

3. At the change between the editing mode and the bebug mode size and position of the main window remain unchanged now.

4. The danger was, reduced to press inadvertently wrong buttons. The buttons for the navigation to the previous script and back are moved into the main tool bar. They are at the disposal in the debug mode now, too.

5. In the help the path to a page is shown now.

6. Various other small improvements.


New in version 1.3.0

1. TextTransformer 1.3 has a new user interface with docking windows. The arrangement of the windows can be configured freely. When you change between editing a project and debugging the same, also the window configuration is changed automatically. So the information important for the respective working mode is represented optimally.

2. According to the same principle the tool bar also can be configured.

3. When debugging a project, the text of the actual production can be shown now in which the current terminal, nonterminal and EBNF symbols are highlighted.

4. Named tokens (e.g. _xxx as opposed to "xxx"), written into the text of a production, are inserted in the token list automatically now. There, semantic actions can assigned to them.

5. The TextTransformer interpreter is extended by a number of (portable) routines for the path and file treatment.

basename  Returns the base name of a file path 
extension  Returns the extension of a file path 
change_extension  Changes the extension of a file pat 
append_path  Composes a path 
current_path  Returns the current path 
exists  Tests the existence of a path 
is_directory  Tests the existence of a directory 
file_size  Returns the file size 
find_file  Looks up a file in a directory 
path_separator  String constant for the path separator 

6. A new example project demonstrates how these functions can be used in the main parser to process files included in a text with sub-parsers.

7. After correction of a project you now can limit the renewed transformation on the files which caused a fault at the first run in the transformation manager.

8. You can modify a project with the parameter wizard now in such a way too, that a variable is passed through all productions. E.g. the target text could be built up bit by bit in a string reference variable.

9. The help was revised strongly and follows the structure of the menu more narrowly now. The context sensitivity which was partly lost at the rearrangement of the initial Windows help to the HTML help is restored now.

10. In the command line tool you also can pass a backup directory as a parameter explicitly now, like it was already possible with a management.

11. Many further improvements in details and fault corrections werde made. The most important of them are corrections of some problems with paths, the fourth preference rule and SKIP at the end of a grammar.

Free licenses for 1.3 beta testers


New in version 1.2.3

1. For literal tokens, used as well in a parser as in the program which uses this parser, common definitions can be produced now.

2. The logic of IF-ELSE-structures has been improved. If the IF-branch of such a structure is deletable, but not the else branch and the expected token doesn't match to both, this isn't treated as an error any more.

3. Some bugs were fixed: When clicking on an error message on the result page of the transformation-manager the corresponding text wasn't opened in the IDE. Import files couldn't be read if a test file was listed in them. Tokens in the grammar which were only different in the case were not recognized identically, when the case-insensitivity option was set.

4. Great internal restructurings were carried out, which shall make the improvement in the surface of the program easier within the following weeks and months.

5. The TextTransformer homepage now is made by Minimal Website.

04-10-06 22:38

New in version 1.2.2


From version 1.2.2 on the cppitp.dll and the tetra_engine.dll are
installed into the WINDOWS system directory. If you find one of them
still in the TextTransformer\bin directory from a previous
installation, please delete them.

1. Break points in the text are numbered now and you can go to them directly. They are represented by an exact position marking now - no more like till now by coloring of the whole line.

2. In the main tool bar there is a function to find corresponding brackets now.

3. At the installation an arbitrary folder can be selected for the examples and projects now, which can be different from the program folder. Dll's and Bpl's which are also used by other TextTransformer applications are copied into the Windows system directory.

4. The command line tool can optionally be installed at once.

5. The current PDF documentation can optionally be installed at once.

6. Four warnings for the overlap of production systems can be disabled optionally.

7. Some faults which could appeard under very special circumstances were removed.

New in version 1.2.1

Some time has passed since the last update. It was used among others for the practical prooftesting of TextTransformer. By TextTransformer the application "Minimal Website" was developed. It can be downloaded from http://www.texttransformer.org and used free of charge without limitations. In this program three TextTransformer projects which are enclosed in the installation package are used:

  1. Html2Text.ttp converts plain texts in HTML contents
  2. HtmlLayout.ttp inserts the HTML contents in a layout for a website
  3. WebSite.ttp reads an Ini file in with color and font parameters etc..

Furthermore, the TextTransformer components were revised and they are available for Delphi now too.

Of course the experiences at the construction of "Minimal Website" are used for the new update of TextTransformer.

1. Attributes can be put into the nodes of the parse trees now. Attributes consist of a key and an accompanying value. E.g. attributes are useful for the storage of ini entries: while the sections of the ini file are represented by nodes, the values of the section can be put as attributes.

2. Optionally a test file can be chosen for every project now, which is opened automatically in the input window, when the project is loaded .

3. The fields for the name and path of the project are removed from the project options now. Frequently there had been irritations, when a project had to be updated because of the moving into folder. The paths to frame files and to the test file are calculated now relatively to the path of the project.

4. In the wizard for new projects a new project type was inserted: multiple replacement of strings. As opposed to the multiple substitution of words parts of words or other text sections also can hereby be replaced.

Many thanks to Dr. Hans-Peter Diettrich for his feedback and for his help.

New in version 1.2.0

1. The transformation manager is replaced completely. It is very easy to use now. It is no longer necessary now to have a common source directory for all files which shall be changed. The files also must be listed no longer one by one but whole folders can be indicated with corresponding file masks. Individual files or folders can be excluded explicitely from the transformation. There are several options for the construction of the target directories and for the production of a log file now. Managements made with the transformation manager also can be used as input for the command line tool Tetra_cl now.

2. The execution of TextTransformer projects out of programs of one's own is possible for developers now too, which don't have the professional version of the TextTransformer.
There is a free CBuilder package now (Delphi will follow), by which you can load the TextTransformer interpreter.

The TextTransformer package consists of three components:

  • TTextStringTransformer for the transformation of a string into another string
  • TTextFileN2NTransformer for the transformation of one text file into another one
  • TTextFileN21Transformer for the transformation of several text files into a common destination file

3. A fault at the calculation of the first sets was eliminated which produced the message: Internal error: expected set not ready.

4. Choices are shown for the opening and saving in the TextTransformer now if the current editor isn't the source window or target window.

New in version 1.1.3

1. The vector class was extended by the functions: "pop_back", "back" and "front". Vectors also can be used as a Stacks now in the interplay of the first two functions with "push_back".

2. Once more, a customer couldn't start the TextTransformer. The fault was the software which protects the program against pirates. The new version was made with a new pre-release version of the protection software. Please inform me, if the TextTransformer shouldn't run at your system.

3. As a new example of a TextTransformer application there is now a Wikipedia parser on


The parser contains all semantic actions which are necessary to produce a complete web page from a Wikipedia script.

4. The character class calculator was improved. Complete enumerations of ANSI characters are issued in the form of character ranges automatically now. Till now falsely a backslash was put in front of all metacharacters of regular expressions and not only in front of the metacharacters for character classes. This fault is eliminated now.

5. A fault at the calculation of the targets of SKIP expressions in +-repeats was eliminated which had an effect also in the parameter wizard.

6. The parameter wizard, the tree wizard and the function table wizard are working more tolerantly now: If at the change of a script a fault appears, the other scripts get nevertheless finished.

7. Comments in import/export files are optional now.

8. A client has successfully used the generated code with Visual Studio 7.1.

New in version 1.1.2

1. TextTransformer projects can be exported and imported also as ASCII text files now. It isn't checked, whether the imported productions, tokens etc. are written in a correct TETRA syntax. So the import is made easier of grammars which were written with other parser-generators.
Furthermore tokens, productions, interpreter scripts and tests can be exported and imported also for themself, however now in a format which is part of the format of the complete export.

2. Bug fixes:
a) The welcoming screen under XP-Home blocked the application, according to a customer statement. I apologize for it. A pressure on the ENTER key closes it now.

b) State.lp_str() caused a crash of TextTransformers, if characters were ignored in the previous production, no text, however, was recognized.

c) Stuctures as:

( A | SKIP? EOF ) 
( B | SKIP? EOF ) 
( C | SKIP? EOF ) 

caused an error message. However, they are permitted.

d)Acorrect next token is recognized by the call of SetPosition now too, if the function is called after leaving a production.

3. Some changes were already made at the version 1.1.1 without increasing the version number:

a) The additional option is in the user options now, to accept changes in scripts automatically. In addition, there is an extended undo-function now. It allows to restore scripts whose changes were already accepted.

b) The numbering of the sub-expressions shown on the regex test dialog is the same now, by which they can be accessed in the code .

c) Further bug fixes at the wizard for the automatic generation of productions and at the output to log.

New in version 1.1.1

1. TextTransformer can produce binary files now. There is a simple notation for it:

out << int_bin( 42 ) << double_bin( 123,456 );

or simpler:

out << bin( 42 ) << bin( 123.456 );

2. Bug fix for RedirectOutputBinary. A superfluous and therefore confusing page was removed from the parameter wizard.

3. A tetra_engine.dll was separated from the command line tool. It can be called by external programs. So it is possible to tie TextTransformer projects into your own programs, even if you don't have the code producing professional version. This possibility will be improved still further.

4. The created code was tested now with Visual Studio 6 too.

New in version 1.1.0

The new features are a version jump of the TextTransformer:

1. The abilities of the TextTransformer for the analysis of texts are increased by the new possibility to parse text inclusions with separate sub-systems. Comments programming languages are an exemplary example of text inclusions. Pragmas would be a further example. There are however many other amazing possible applications for the new feature since it generalizes the treatment of comments: It is possible in different sub-structures of the text to allow different inclusions and to grade inclusions.

2. A systematic concept for the change of lexical states was introduced. So the text inclusions can be parsed with token sets, which are different from the token set of the main parser. The same applies now to the sub-parsers used in the interpreter and to the look-ahead productions.

3. The c++ code generated by the TextTransformer is more briefly and more clearly structured now. The general base class of the generated parsers does more work than till now, so that only the really specific initializations and productions of the produced parser remain in the generated code.

4. The module for the c++ code production was removed from the main program and put in a dll. Since this dll only is needed for registered users of the professional version of the TextTransformer, the installation package is a smaller than before now.

5. With the update on the current boost library of the regular expressions in 1.0.1 the previous behavior of the expressions wasn't restored completely: it could be required now to define character ranges in a reversed order. An example of it is the area of [Ù-ö] which is used repeatedly in the Text2Hlml project. The area ought to have been defined as [ö-Ù] now. Therefore there were erros when compiling the Text2Html project. The original behavior is restored now. (For insiders: the flag for the syntax options was completed by "& ~boost::regex_constants::collate" ).

New in version 1.0.2

1. Dynamic tokens are only tested now if they are expected as a possible alternative. So faults are avoided, which appear if a text, which matches an expected token matches a not expected element of the dynamic token too. E.g. there could occur incomprehensible faults in the interpreter of the TextTransformer IDE, if the name od a production, as callable sub-production or look ahead production, collided with the name of a method: e.g. State.copy and copy production.

2. The error messages for unexpected tokens were improved.

3. SKIP alternatives inside of a one or more time repeat, e.g ( A | SKIP )+, at the end of a production, didn't contain the followers of this production as targets. This error was introduced with version 1.0.0 and is fixed now.

4. The quick assistant for inserting functions into a function table was enlarged. Token names can be selected from a list as a label now, and prefixes for the function names remain in another list.

5. In the transformation manager backups from wrong files were made, if individual files were selected.

The following points meanwhile were already included in the version 1.0.1

6. The function to clear semantic code didn't include line breaks before "ELSE" and "END". In the updated version an empty action is inserted after empty alternatives too, which would cause a fault otherwise, when parsed.

7. The import and export of the scripts was improved. The format specification of the generated text files was a bad idea and will be replaced in future. The Rimp project is quite circumstantially now to allow the import/export of this project self.

8. The syntax highlighting will be actualized now after the import of scripts and after the creation of a new project.

9. Version 1.0.1 introduced a new fault at the calculation of SKIP expressions from literals containig backslashes. This bug was fixed.

New in version 1.0.1

1. TextTransformer now works with the actual version of the boost regex-library.

2. Positions of faults within single regular expressions are shown now.

3. Additional information is shown in the status bar of the regex-test dialog now.

4. Discrepancies in the wizards were removed: no backslash is there necessary in literals now with quotation marks and backslash either.

5. Variables, functions and function-tables are distinguished from each other by different symbols on the interpreter side now.

6. The XML example was extended: now all contents are output, including the attributes. Entity references are translated too.

The long-awaited TextTransformer 1.0.0 release

1. The functions and the user interface of the TextTransformer were revised completely.

2. The explanations of the examples in the help were tightened and partly enlarged. The complete help was revised.

3. The project option for testing all literals is deactivated per default again for new projects. It only should be activated for formalized languages, where the appearance of key words put wrongly means a fault.

4. The methods "RedirectCout" and "ResetCout" were renamed in the more understandable expressions "RedirectOutput" and "ResetOutput".

5. Reports appear now in the new log window, which can be shown as an alternative to the output window.

6. Analogously to the writing into the output window by "out", there is now the possibility to write into the log window by "log". So specifically Meta information about the program flow can be put into the log window. When c++ source code is generated, the log commands aren't exported.

7. An additional assistant creates productions from token sequences, which are extracted from example texts.

   deutsch Deutsch


Latest News
Aurora2Cpp: Delphi 7 translator [more...]

Delphi2Cpp 2.3: Conversion of DFM files [more...]


... You have exceeded my expectations and I love your product. We will get a lot of use out of it in the future for other projects."

Charles Finley
xformix 23-02-07


I was extremely impressed with your components and tools. Not only extremely powerful but very professionally done and well documented, etc. Really quality work, congratulations

mouser (First Author, Administrator)

  This website is generated from plain text with [Minimal Website ]

Minimal Website Minimal Website is made with TextTransformer

TextTransformer TextTransformer is made with Borland CBuilder