f



ANNOUNCE: Tmac 1.0 - a macro preprocessor in Tcl for Tcl 8.4+

I happily offer this refined macro tool giving Tcl
programmers more options to handle complex, tedious, and error
prone application coding/config problems.  - Roy
   
 ANNOUNCE: Tmac 1.0 - a macro preprocessor in Tcl for Tcl (8 December
2003)

I've added various enhancements and fixes and bumped the release to
1.0 as I expect it to be stable at this point.

 Changes since the original release (0.1 in May 2003)

   - Fixed: several defects in parameter parsing when various 
     quotes styles were nested.

   - Added: -proc option defines a filter macro and its proc in one step

   - Added: -oneline option takes out newlines in block macros allowing
     cleaner coding when wanting a command spread over several lines
(can 
     leave out the backslashes)

   - Added: "passtrick" -parse option to let single char delimiters
escape
     themselves

   - Improved: expr parameter wrapping

   - Improved: GUI viewer/devel tool now has a compact vertical mode and
can load
     macro definition files for browsing. Much more convenient for
devel/test of
     single macros.

   - Added: Several files of example macros for strings, control
structures, and
     wiki markup. Includes do/while, enhanced switch, etc.

   - Updated: Tests and docs to cover new features.

The new Release is posted here

www.tclbuzz.com/v0/tmac


Feedback invited,
Roy Terry

-------------------------------------------------------- 
From the original announcement: 

I've created this Tcl package to give Tcl programmers
another set of options in building applications. You
might call it Tmac "Super Glue for Tcl".

Tmac provides flexible ways to modify the Tcl source
before it is seen by Tcl. Macros are defined by
name and come in 2 basic types:

   - Block macros: insert a block of text with parameter
     substitutions
       and
   - Filter macros: pass unlimited parameters to user-provided
     code and put the computed string back into the source stream.

Additional Features

   - Macro calls may nest
   - Macro delimiter strings are configurable
   - Macro definitions may invoke other macros
   - A scope feature is available to prevent macro
     name collisions
   - Special options are available for preprocessing
     complex parameters before passing to expr
   - "big gulp" macro based comments are indifferent 
     to mismatched braces.
   - macro substitution may be invoked in separate phases
     and on various units such as strings, procs, and files.


The goal for the macro package is to let programmers 
create coding conveniences in order to reduce effort
and increase overall quality. Macros, of course, ought
to be used with caution.

Tmac is licensed for free personal or commercial use.

Regards,
Roy Terry
royterry at earthlink DOT net
0
royterry (360)
12/9/2003 8:32:40 PM
comp.lang.tcl 23429 articles. 2 followers. Post Follow

0 Replies
940 Views

Similar Articles

[PageSpeed] 24

Reply:

Similar Artilces:

"::tcl::tm::UnknownHandler ::tclPkgUnknown msgcat 1.4" caused by replacing Tcl 8.4.1 with 8.5.7
In the blog http://planet.larrythecow.org/archives/2009-07-26.html "The Twouble with Tcl" Iain Buchanan shows that redefining OPEN proc leads to the errors similar to what I am getting - when I replaced Tcl 8.4.1 with Tcl 8.5.7. In my case I don't know the exact root cause though ... Any ideas how I should proceed with debugging this issue ? Thanks, Alex tclsh c:/Tornado/host/resource/hutils/tcl/makeSymTbl.tcl ppc tmp.o symTbl.c invalid command name "::tcl::tm::UnknownHandler" while executing "::tcl::tm::UnknownHandler ::tclPkgUnknown msg...

Tcl 8.4.x & tcl-dp 4.0.x
Has anyone built tcl-dp 4.0.x on windows against Tcl 8.4.x ? Is it possible to get the windows dll and the source code with modifications? ...

Berkeley-db 4.1.25 and Tcl 8.4.4.0
Can anyone tell me what modifications need to be made in order to compile with Tcl APIs support for release 4.1.25 for win_32? From the docs it seems that the current release was written for Tcl 8.3d. I tried to modify the db_tcl project and compile the db_test project in debug mode. It compiled without errors, but when I ran the test suite every test failed. I am using a Visual Studio .NET beta 2. (P.S. the java example seemed to work so it seems as if I'm missing something in regards to linking the correct files for Tcl support. Any info would be appreciated. Thanks ...

Oratcl 4.4 : Tcl 8.5 tested against Oracle 11g (11.1.0.6.0) Linux x86
Hot off the press. Oratcl 4.4 (and the CVS head). Have just been run/tested against Oracle 11g and all the tests in the test suite have passed. No special configurations required other than the traditional ORACLE_HOME env. variable being set. -Todd On Aug 15, 3:45 pm, "thelf...@gmail.com" <thelf...@gmail.com> wrote: > Hot off the press. > > Oratcl 4.4 (and the CVS head). Have just been run/tested against > Oracle 11g and all the tests in the test suite have passed. > > No special configurations required other than the traditional > ORACLE_HOME env...

Binary reader speed comparison
I have a fairly simple binary reader proc that exhibits massive speed differences between Tcl 8.5.8 and Tcl8.6b1.1. Here's the proc: proc readFormatted {filename} { set fd [ open $filename r ] fconfigure $fd -encoding binary -translation binary binary scan [ read $fd 2 ] cc type nextlen if {$type != 75} { return -error "File is not in the expected format" } while {![append buffer [read $fd $nextlen] ; eof $fd]} { binary scan [read $fd 2] cc lastlen nextlen # convert to unsigned value set nextlen ...

ActiveState Tcl 8.4.4.0 and Tile 0.7.8 under Vista crashes
I am using Tcl/Tk 8.4.4.0 (because I want to also use BLT 2.4 and my understanding is that BLT will not run under 8.5), along with Tile 0.7.8 Tile loads OK under the 'package requires' command, but the first time I run a tile command (for example, creating a button), Vista crashes. ttk::button .b1 -text "Test" Is there a solution to this? I have searched comp.lang.tcl, but see no reference to this problem. Thanks On 4/8/11 10:09 PM, thoselaings wrote: > I am using Tcl/Tk 8.4.4.0 (because I want to also use BLT 2.4 and my > understanding is that...

Announce: Runtime Library 3.0 Gestalt Items 1.1 and Hugelist 1.4, Tcl-Mode for XCode
I am pleased to announce the availability of: Runtime Library 3.0 Gestalt Items 1.1 Hugelist 1.4 The two libraries and hugelist contain Tcl/Tk composite windows written in Tcl. Most notable are the goolbar, gooleditor and galette which implement an AQUA� compliant toolbar environment, with extensive vector graphics support Download them from sourceforge: http://gestaltitems.sourceforge.net/ *Runtime Library* The Documentation of the Runtime Library is now complete including the manual pages: http://gestaltitems.sourceforge.net/rtl/index.html http://gestaltitems.sourceforge.net/rtl/rtl...

Installing TDK 4.0.4 trial with Tcl 8.5.1...
Hi all, In my system, I got: Initialize TclApp TAP search preferences # c:\program files (x86)\tcl\lib\tcl8.5 # c:\program files (x86)\tcl\lib Locate an ActiveTcl 8.4.9.1+ installation for use by the Tcl Dev Kit demos. The Tcl Dev Kit demos are impaired and will not work. They rely on the presence of a suitable installation of ActiveTcl (8.4.9.1+). Such an installation was not found. Is this normal? I have 8.5, why the requirement 8.4.9.1+ is not satisfied? Then the TDK installer continues with: Extending the registry ... Adding recognition of .tpj files ... Adding recognition of .t...

Incr Tcl /Tk for Tcl 8.4
Hi, I am trying to download incr Tcl and incr Tk for Tcl/Tk 8.4.19. I looked at: http://sourceforge.net/projects/incrtcl/files/%5BIncr%20Tcl_Tk%5D-source/3.4.1/ But only itcl seems to be there. And the CVS doesn't have the 3.4.1 tag. Do you know where I can get incr Tk and hopefully a corresponding iwidgets? Thanks, Andres On 5 Okt., 11:16, Andres Garcia <tclc...@gmail.com> wrote: > Hi, > > I am trying to download incr Tcl and incr Tk for Tcl/Tk 8.4.19. > > I looked at: > > http://sourceforge.net/projects/incrtcl/files/%5BIncr%20Tcl_Tk%5D-sou... > > ...

ANNOUNCE: eTcl 1.0-rc24
Soon after Tcl/Tk 8.5 code has been released, we are pleased to announce eTcl 1.0-rc24 takes benefit of the great and impressive work done by the Tcl community during years to provide ready to use, zero install binaries based on Tcl/Tk 8.5.0 core on all supported architecture, including MS Windows, linux-x86, linux-arm, linux-mipsel, linux-powerpc (including Linux on Playstation 3), Windows Mobile (2003, 2003SE, 5.0 and 6.0) pocketPC and smartphones, and Mac OS X (Aqua) as universal binary (x86 and PPC). This is hopefully last release in 1.0-rc serie, if no regression is reported. WHE...

Bug789040 came back in Tcl 8.4.6 and Tcl 8.5.
Dear All, Bug 789040 caused exec error in Windows 9x and was fixed in 10/04/03. But it came back in Tcl 8.4.6 and Tcl 8.5. Tcl Windows 9x users should be alerted to the possible failure of exec in the current Tcl 8.4.6 and 8.5 releases due to this bug. Chengye Mao http://www.geocities.com/~chengye Chengye Mao wrote: > Bug 789040 caused exec error in Windows 9x and was fixed in 10/04/03. > But it came back in Tcl 8.4.6 and Tcl 8.5. Tcl Windows 9x users > should be alerted to the possible failure of exec in the current Tcl > 8.4.6 and 8.5 releases due to this bug. Have you i...

TCL is not thread safer in TCL 8.3 or 8.4... Any plans to fix this?
It is a shame that I can't upgrade one of my applications due to this problem, though the memory leaks also intorduced in 8.3 and 8.4 are problem as well. :( I have a process that spawn a configurable number of thread with a TCL intrepeter in each one. The interps are isolated and do not communicate or share anything withe each other. Each thread is a rule processor that is handed TCL scripts based on what events occurs within a multi process enviroment rnaing across the whole itnerprize... Works great with TCL 8.2, not a single problem... But with TCL 8.3 and TCL 8.4 we get quite a f...

Ruby 1.8.0 and Mac OS X and Tcl/Tk 8.4 Aqua (not!)
My trials with Ruby and Tcl/Tk on Mac OS X Ruby is 1.8.0 preview 7 Tcl/Tk 8.4 is the recent TclTk-Aqua build for that native OSX Aqua look Mac OS X is 10.2.3 (1) 'configure' wasn't finding Tcl/Tk, so I hacked up an OSX-only version of ext/tcltklib/extconf.rb with hard-coded parameters (which might be OK because of the frameworks) ========= # extconf.rb for tcltklib # HACKED for Mac OS X !!! require 'mkmf' if RUBY_PLATFORM !~ /mswin32|mingw|cygwin|bccwin32/ have_library("nsl", "t_open") have_library("socket&q...

Tcl SOAP
OK - Believe it or not, I have a "requirement" to use SOAP! The last time I worked with this, it did not work at all. So the following quesitons come to mind: Has it improved any - and it is working on Tcl 8.4.1 or later? Anyone using it for connecting to Web Services? Anyone using it to provide Web Services? I will immediately need to connect to a Web Service using SOAP (this is the "only" option), and then later provide Web Services via Apache (1.3 likely, but will migrate to 2.0x if necessary). Any guidance or suggestions would be most welcomed! Dave In article ...

Web resources about - ANNOUNCE: Tmac 1.0 - a macro preprocessor in Tcl for Tcl 8.4+ - comp.lang.tcl

Preprocessor - Wikipedia, the free encyclopedia
In computer science , a preprocessor is a program that processes its input data to produce output that is used as input to another program. The ...

Facebook Open-Sources Warp Preprocessor For C, C++
The Facebook open-sourcing train continued to roll on with Friday’s announcement that Warp , a preprocessor for the C and C++ languages, has ...

Facebook's C/C++ Warp Preprocessor Open Sourced
Distributed compilation in conjunction with backed up cache layers


Create a Full Adder Using the C Preprocessor
[Phillip] wanted to play with the C preprocessor. He decided to do that by creating a 4 bit full adder . We know this is pretty useless in everyday ...

Preprocessor for C/C++ gives full code details
CPIP preprocessor, implemented in Python, aims to provide developers with a wealth of information about their code

Preprocessor seams and assignment of responsibility
In my previous blog I mentioned adding a single method to the cslim library: cslim/include/CSlim/SlimListSerializer.h: void SlimList_Release(char ...

Spiffing CSS: the preprocessor made for Brits ➟
Visual Idiot:Brits, take control of the web. Spiffing allows you to write your CSS and stylesheets in conformance to proper British English (also ...

The A to Z of programming languages: Objective-C
Computerworld Australia is undertaking a series of investigations into the most widely-used programming languages. Here, we talk to the co-creator ...

Arduino - ReleaseNotes
ARDUINO 1.0.1 - 2012.05.21[environment]* The IDE has been internationalized and translated into multiple languages. Thanks to Shigeru Kanemoto ...

Resources last updated: 2/12/2016 1:48:49 PM