08-01-08

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.




31-10-07

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



06-07-07

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.


03-06-07

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.


IF-structures

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.


03-05-07

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.


Example:

str s = "/**********************\n"
        "*  This is a comment  *\n"
        "***********************\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.


25-03-07

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:

12-03-07

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.



25-02-07

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.



07-12-06
Free licenses for 1.3 beta testers

07-11-06

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


IMPORTANT NOTE:

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

http://texttransformer.org

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


08/01/08
Version 1.4.1 Starting parameters for transformations [more...]


31/10/07
Version 1.4.0 with full debugging facilities for look-ahead productions [more...]



"...Fantastic!!!!

... 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

  borland