[fpc-pascal] Re: Get all caller adresses of a given function/procedure before executing
Martin
lazarus at mfriebe.de
Tue Aug 14 14:36:44 CEST 2012
On 14/08/2012 13:19, Rainer Stratmann wrote:
> It was more or less exactly the way I did it before with little exaggerating
> as you notice :-)
> Even now I save 50% codesize in comparison to resourcestring.
>
If you don't like resource string, inho there are 2 alternatives that
are (IMHO) better:
1)
plain array with all text constants. You can break it into one array per
unit, and have a register a search-handler via the unit's initialization.
const MySnippets: Array [1..xxx] of string = ('text', '...', ... ];
For more readability (but it adds source code (should not add more to exe)
const
snip1: 'text';
MySnippets: Array [1..xxx] of string = (snip1, '...', ... ];
(actually, I havent testet if the compiler takes the 2nd
2)
Since you seem to want something that is easier to type.
Keep using
writeln(ls('text'));
Instead of analysing the exe, write your own pre-precessor.
The pre-processor can scan the source, create a temporary copy in which
it replaces the text in ls() with a reference to the "MySnippets[]" array.
It also creates and includes a unit with that array.
It then calls the compiler on the temporary created sources....
At least it will keep working even if fpc internals change. And it is
cross platform (includes cross-CPU)
More information about the fpc-pascal
mailing list