Hi!

On Thu, Nov 15, 2018 at 12:44:36PM +0000, Wilco Dijkstra wrote:
> > On Wed, Nov 14, 2018 at 12:37:05PM +0000, Wilco Dijkstra wrote:
> >> +/* { dg-final { scan-assembler-not { dup } } } */
> >> +/* { dg-final { scan-assembler-not { fmov } } } */
> >
> > { dup }   is the same as   " dup "  , that is, with spaces and all.
> > I don't think you want that (there usually is a tab character before
> > mnemonics, so \s would work better, or use \m and \M.  Or nothing,
> > just delete the spaces, if you are sure nothing in the generated
> > assembler code says "dup").
> 
> Thanks for spotting that! I removed the spaces (below). The syntax is
> arcane to say the least but it seems {} has fewer bugs in regular expressions.

The Tcl syntax is easy really.  https://www.tcl.tk/man/tcl/TclCmd/Tcl.htm
(or just "man tcl" on many systems).  (Well okay, do ignore {*} :-) )

{} is like '' in Perl; just literal strings.  "" gets various forms of
substitution, but {} does not.

> I can never figure out how many \ to use so it works exactly identically 
> across
> different regexp/tcl versions.

It is the same in all Tcl versions.
https://www.tcl.tk/man/tcl/TclCmd/re_syntax.htm (man re_syntax).

But DejaGnu can do surprising things :-(  Many of the {} you see in dg-*
constructs are handled by DejaGnu code, and this isn't always a very good
approximation of the Tcl semantics.


Segher

Reply via email to