Re: [NTG-context] regexp for matching entire footnotes

2006-07-30 Thread Hans Hagen
Sanjoy Mahajan wrote:
>> I have to find (highlight) footnotes with the entire footnote being
>> marked/highlighted.  The problems are the (potentially) nested pairs
>> of curled brackets (like for \index, \emphasize etc etc) ...
>> 
>
> I'm not sure what you mean by marking or highlighting the footnote.
> Do you mean in the printed document, or in the source file so that you
> can find and change them in some way?
>
>   
>> Constructing a regexp for this is far beyond what I can write,
>> 
>
> In the Chomsky hierarchy of grammars, regular languages, which are
> recognized by regexps, are below context-free grammars (CFGs).
> Compared to regular languages, CFGs add a stack.  And you need a stack
> to parse nested delimiters, otherwise you can't tell whether a closing
> brace closes the first opening brace.  So no regexp can do what you
> hope for.
>   
lua reg exps have a way do handle nested () {} []
> You could:
>
> 1. Use emacs (or your favorite editor) to substitute \myfootnote for
>\footnote, and do some ConTeXt setup magic to make \myfootnote be
>just like \footnote except that it highlights.
>
> 2. Use Emacs, which can find balanced braces, to make a keyboard macro
>(start defining it with "C-x (").  Then:
>a. search for \footnote.  Now the point will be between the 'e'
>   and the opening '{'.
>b. C-@ to set the mark.
>c. C-M-f ("alt-ctrl-f" to run 'forward-sexp') to move to the
>   closing brace.  Now you'll have highlighted the {...} stuff of
>   the \footnote.
>d. C-x ) to end the keyboard macro definition.
>
>Then you can use C-x e to go to and highlight the next footnote
>material.
>
> But I'm not sure either is what you're trying to do?
>   
a multistep approach is possible: 

- mark each { } with something that reflects nesting (say <{1> <{2> <}2>
<}1> etc
- you can now distinguish matching pairs and take some action
- afterwards you convert the <..> things back to { } 

(at least that is how i did such thing until now in e.g. ruby) 

Hans 

-
  Hans Hagen | PRAGMA ADE
  Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
 tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com
 | www.pragma-pod.nl
-

___
ntg-context mailing list
ntg-context@ntg.nl
http://www.ntg.nl/mailman/listinfo/ntg-context


Re: [NTG-context] regexp for matching entire footnotes

2006-07-30 Thread Sanjoy Mahajan
> I have to find (highlight) footnotes with the entire footnote being
> marked/highlighted.  The problems are the (potentially) nested pairs
> of curled brackets (like for \index, \emphasize etc etc) ...

I'm not sure what you mean by marking or highlighting the footnote.
Do you mean in the printed document, or in the source file so that you
can find and change them in some way?

> Constructing a regexp for this is far beyond what I can write,

In the Chomsky hierarchy of grammars, regular languages, which are
recognized by regexps, are below context-free grammars (CFGs).
Compared to regular languages, CFGs add a stack.  And you need a stack
to parse nested delimiters, otherwise you can't tell whether a closing
brace closes the first opening brace.  So no regexp can do what you
hope for.

You could:

1. Use emacs (or your favorite editor) to substitute \myfootnote for
   \footnote, and do some ConTeXt setup magic to make \myfootnote be
   just like \footnote except that it highlights.

2. Use Emacs, which can find balanced braces, to make a keyboard macro
   (start defining it with "C-x (").  Then:
   a. search for \footnote.  Now the point will be between the 'e'
  and the opening '{'.
   b. C-@ to set the mark.
   c. C-M-f ("alt-ctrl-f" to run 'forward-sexp') to move to the
  closing brace.  Now you'll have highlighted the {...} stuff of
  the \footnote.
   d. C-x ) to end the keyboard macro definition.

   Then you can use C-x e to go to and highlight the next footnote
   material.

But I'm not sure either is what you're trying to do?

-Sanjoy

`Never underestimate the evil of which men of power are capable.'
 --Bertrand Russell, _War Crimes in Vietnam_, chapter 1.
___
ntg-context mailing list
ntg-context@ntg.nl
http://www.ntg.nl/mailman/listinfo/ntg-context


Re: [NTG-context] regexp for matching entire footnotes

2006-07-30 Thread Peter Münster
On Sun, 30 Jul 2006, Steffen Wolfrum wrote:

> Somebody knows a syntax that ignores curled bracket pairs *included*  
> in footnotes and really matches the entire note?

Perhaps, a regular expression is not the right tool for your needs, but you
could try something like
'[\]footnote\{[^{}]*([^{}]*\{[^{}]*\}[^{}]*)*[^{}]*\}'.
Cheers, Peter

-- 
http://pmrb.free.fr/contact/
___
ntg-context mailing list
ntg-context@ntg.nl
http://www.ntg.nl/mailman/listinfo/ntg-context


[NTG-context] regexp for matching entire footnotes

2006-07-29 Thread Steffen Wolfrum
Hi,

I have to find (highlight) footnotes with the entire footnote being  
marked/highlighted.
Constructing a regexp for this is far beyond what I can write, that's  
why I frankly ask for help here:

The problems are the (potentially) nested pairs of curled brackets  
(like for \index, \emphasize etc etc) ...

\footnote{Vgl. zur Historie \it{Name}, „Staatssekretär\index 
{Staatssekretär}}

... as the found string shouldn't stop at the first "}" that was found.


Somebody knows a syntax that ignores curled bracket pairs *included*  
in footnotes and really matches the entire note?


Steffen
___
ntg-context mailing list
ntg-context@ntg.nl
http://www.ntg.nl/mailman/listinfo/ntg-context