|TextTransformer: Presentation and some questions Meyer-Eltz@t-online.de (2004-07-13)|
|Re: TextTransformer: Presentation and some questions email@example.com (2004-08-10)|
|From:||Meyer-Eltz@t-online.de (Detlef Meyer-Eltz)|
|Date:||13 Jul 2004 11:36:09 -0400|
|Keywords:||C++, tools, available|
|Posted-Date:||13 Jul 2004 11:36:09 EDT|
I want to present my c++ parser generator: the TextTransformer, and I
want to ask, what you think about its concepts? I hope very much, that
there will be a lot of feedback (my german version got none for more
than two years).
The TextTransformer combines an extended LL(1) top-down parser
generator (related to Prof. Mössenböcks good old coco), a debugger and
a simple c++ interpreter to a visual devellopment environment. The
program not only can be used to produce code for a c++ parser class,
but it is also a tool to transform texts directly (like awk). By means
of the debugger, parsers can be tested step by step.
The lexical analysis is done by the regex_search method from
Dr. Maddocks boost regex library (www.boost.org). The advantage is,
that not only tokens can be found, which are following neatless one
after the other. It is possible too, to skip parts of unstructured
text till the next occurence of a token. As a simple example: a rule
( "ponter->" | "pointer" | SKIP )+
// (...)+ , is one or more repeats of the expression ...
will find all occurences of "ponter->" and "pointer" in a text, e.g. to
replace them by "reference." or "&reference" respectively.
Each calculated token set is automatically compiled into an according regular
expression. (Literal tokens are treated separately.) Sub-expressions of a
tokens as well as skipped parts of text can be accessed.
The LL(1) condition is weakened by the possible use of the BREAK-Symbol.
For example ";" is start and successor of a nullable structure in:
(";" "a" )+ ";" "b"
In the TextTransformer this can be rewritten as
(";" ( "a" | BREAK ) )+ "b"
to avoid the conflict. If "b" follows on ";", the loop will be left.
The TextTransformer is a shareware program, but there is a not time limited
free version. The program runs on windows. The home page is
I am still full of plans and ideas for further improvements, but I would like
to know your assessements:
Do you think it is a good idea to combine a parser generator with an
Which are the most essential instructions such a tool should master?
For whom could such a tool be useful?
Is the use of the regex library favorable?
Do you know similar tools?
Would you use an integrated debugger or do you prefer first to create code
than use the debugger of your compiler?
I hope, I aroused your interest.
Return to the
Search the comp.compilers archives again.