comp.lang.ada
 help / color / mirror / Atom feed
From: Robert Dewar <robert_dewar@my-deja.com>
Subject: Re: very specific question on Ada syntax
Date: Wed, 31 Jan 2001 06:16:55 GMT
Date: 2001-01-31T06:16:55+00:00	[thread overview]
Message-ID: <958akk$l11$1@nnrp1.deja.com> (raw)
In-Reply-To: 9573th$isv$1@nnrp1.deja.com

In article <9573th$isv$1@nnrp1.deja.com>,
  Ted Dennison <dennison@telepath.com> wrote:
> To the best of my knowledge, flex has no "last token"
> function in its API. It can do *character* context, but not
> token context. Thus to properly handle this situation with
> lex, you'd have to hack it in manually with inserted C code
> (most likely by passing info back from the parser).

That's not the way I would do it at all. I would do it the
same way that the GNAT lexer does things, which is to keep
a global variable which remembers the previous token. That's
useful for posting error messages anyway.

There is absolutely NO problem in coding this in lex, remember
that in lex, the whole idea is that each recognized token
causes the execution of "inserted C code", this C code is
not a hack, it is the essence of how flex works. I definitely
would NOT do it by passing information back from the parser.

See scans.ads and the entry to scn.adb in the GNAT sources
for details on how this is done in GNAT. The issue of whether
the lexer is written by hand or generated by flex is quite
irrelevant in considering how to handle this situation.


>
> I just checked the Ada95 lex spec available from the AdaIC
site
> (http://www.adaic.org/standards/95lrm_rat/lexer9x.l
> ). It indeed contains no context information in the token
definitions,
> and thus should have the same problem. The relevent entries
are:
> -------------------------------------------
> "'"                     return(TIC);
> "'"."'"                 return(char_lit);
> -------------------------------------------
>
> --
> T.E.D.
>
> http://www.telepath.com/~dennison/Ted/TED.html
>
> Sent via Deja.com
> http://www.deja.com/
>


Sent via Deja.com
http://www.deja.com/



  reply	other threads:[~2001-01-31  6:16 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-01-30  6:28 very specific question on Ada syntax Christoph Grein
2001-01-30  7:16 ` Jean-Pierre Rosen
2001-01-30 16:25   ` Mario Amado Alves
2001-01-30 17:57     ` Robert Dewar
2001-01-30 19:16       ` Ted Dennison
2001-01-31  6:16         ` Robert Dewar [this message]
2001-01-31 11:40       ` Mario Amado Alves
2001-01-31 22:09         ` Florian Weimer
2001-02-01  5:39           ` Robert Dewar
2001-02-01  5:39           ` Robert Dewar
2001-02-04 14:24             ` Florian Weimer
2001-02-01  5:38         ` Robert Dewar
2001-02-01 18:24           ` Mario Amado Alves
2001-02-02  3:52             ` Robert Dewar
2001-01-30 19:06     ` Ted Dennison
2001-01-31  6:18       ` Robert Dewar
2001-01-30 18:41 ` Robert Dewar
  -- strict thread matches above, loose matches on Subject: below --
2001-02-02  5:53 Christoph Grein
2001-02-01 11:10 Christoph Grein
2001-02-01 17:58 ` Robert Dewar
2001-02-01  7:14 Christoph Grein
2001-02-01  5:52 Christoph Grein
2001-02-01  6:25 ` Robert Dewar
2001-02-01  9:21   ` Keith Thompson
2001-01-31  5:01 Christoph Grein
2001-01-31  6:02 ` Robert Dewar
2001-01-30  9:30 Christoph Grein
2001-01-30  7:19 Jean-Pierre Rosen
     [not found] <mailman.980516658.10759.comp.lang.ada@ada.eu.org>
     [not found] ` <94s4vm$qr4$1@nnrp1.deja.com>
2001-01-26 20:26   ` Florian Weimer
2001-01-28  0:28     ` Robert Dewar
2001-01-30  8:47       ` Florian Weimer
2001-01-30 18:35         ` Robert Dewar
2001-01-30 22:16           ` Florian Weimer
2001-01-31  6:10             ` Robert Dewar
2001-01-31 13:29               ` Florian Weimer
2001-01-31 14:40                 ` Marc A. Criley
2001-01-26 22:43 ` Paul Graham
2001-01-28  0:32   ` Robert Dewar
     [not found] <200101261211.NAA13016@bulgaria.otn.eurocopter.de>
2001-01-26 17:17 ` Mario Amado Alves
2001-01-28  0:36   ` Robert Dewar
2001-01-29 11:11     ` Mario Amado Alves
2001-01-29 15:55       ` Ted Dennison
2001-01-29 16:41         ` Ted Dennison
2001-01-29 17:52         ` Mario Amado Alves
2001-01-30  6:26         ` Robert Dewar
     [not found] <B6A1A9B09E52D31183ED00A0C9E0888C4699C9@nctswashxchg.nctswash.navy.mil>
     [not found] ` <mailman.980504596.2748.comp.lang.ada@ada.eu.org>
2001-01-26 16:17   ` Paul Graham
2001-01-26 16:38   ` Robert Dewar
2001-01-30 16:45   ` Tucker Taft
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox