[ale] OT: Lex pattern expression struggles

Charles Shapiro charles.shapiro at nubridges.com
Tue Oct 26 15:43:24 EDT 2004


Um, I thought (f)lex used regex.

So it'd be something like

[:alnum:]{1,8} * (PARAM)|(TABLE)|(UPDATE)  { return TOKEN_BLAH; }

Or you could just use make your token returner into a subroutine and
call it from three separate flex triggers, as:

FIRSTPART [:alnum:]{1,8} *

{FIRSTPART}PARAM { return_mytok() }
{FIRSTPART}TABLE { return_mytok() }
{FIRSTPART}UPDATE { return_mytok() }
%%
int return_mytok()
{
	return TOKEN_BLAH;
}

Flex and bison are Way Cool. I did a project in 'em oncet just to play
with them. See http://tomshiro.org/coldread/

--CHS


On Tue, 2004-10-26 at 14:53, Jeff Layton wrote:
> Howdy!
> 
>    I'm struggling with a pattern expression for lex. I'm looking
> for an expression that handle an alphanumeric string of 1 to
> 8 characters (only letters and numbers) followed by at least
> one space and one of three keywords: "PARAM" "TABLE"
> or "UPDATE". I've tried several things with no success (I
> won't post them due to embarassment). Anyone have any
> suggestions?
> 
> Thanks!
> 
> Jeff



More information about the Ale mailing list