how to extract LaTeX macro arguments?

I

ivo welch

I know regex can't do this, so may I ask what the recommended
procedure is for extracting a bracketed TeX argument, which itself can
contain other bracketed TeX arguments?

$string = " text \sometexmacro{arg1}{this is a second {\bf arg}
argument} more text";

and file.pm has a sub that makes it easy to describe all the arguments
to sometexmacro


\sometexmacro
arg1: 'arg1'
arg2: 'this is a second {\bf arg} argument'

if it were even smarter, it could also handle TeX comments and
escapes, such as

file.tex: \sometexmacro{arg1}{this is a second %}
{\bf arg} argument, which handles \} correctly }

Life would be heaven if regex's could do this, because I could then
automatically replace the second argument with what I want it to be.
Alas, they cannot. will they be able to do this in perl6?
 
G

Gunnar Hjalmarsson

ivo said:
I know regex can't do this,

Do you? Please show us the code that made you jump at that incorrect
conclusion. Preferrably a small program that people can run.
so may I ask what the recommended procedure is for extracting a
bracketed TeX argument, which itself can contain other bracketed
TeX arguments?

I'd say that a Perl regular expression would be fine.

Life would be heaven if regex's could do this,

Then life _is_ heaven! Isn't that wonderful? :)
 
G

Gunnar Hjalmarsson

ivo said:
how about an example (if this is possible) then?

Nope. I think people should give it a serious try to solve their
problems themselves before asking for help in this and similar groups,
and you have in no way indicated that you have tried yourself. On the
contrary, considering the way you asked, I'd bet that you are just
trying to have other people do the job for you.

You know, this is not a "we write your code for free" service. It's a
Usenet group for discussing the Perl programming language. Maybe I
should add: This group is defunct, and replaced by comp.lang.perl.misc.

If I was wrong above, and if you want to ask for help there, I do
recommend that you reconsider your posting style.
 
I

ivo welch

Thanks for the hint. I had looked at the perlfaq6,

Can I use Perl regular expressions to match balanced text?

Although Perl regular expressions are more powerful than
"mathematical" regular expressions, because they feature conveniences
like backreferences (\1 and its ilk), they still aren't powerful
enough -- with the possible exception of bizarre and experimental
features in the development-track releases of Perl. You still need to
use non-regex techniques to parse balanced text, such as the text
enclosed between matching parentheses or braces, for example.


and I had tried to play with the feature, but I could not figure it
out. I think short one-liner examples fall well within the "please
help" category and not just into the "do the programming for me"
category.

regards, /iaw
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,756
Messages
2,569,533
Members
45,007
Latest member
OrderFitnessKetoCapsules

Latest Threads

Top