Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 2 Dec 1996 11:35:37 -0700 (MST)
From:      Terry Lambert <terry@lambert.org>
To:        mbarkah@hemi.com (Ade Barkah)
Cc:        terry@lambert.org, hackers@freebsd.org
Subject:   Re: Lex/Yacc question
Message-ID:  <199612021835.LAA10927@phaeton.artisoft.com>
In-Reply-To: <199612020756.AAA17064@hemi.com> from "Ade Barkah" at Dec 2, 96 00:56:12 am

next in thread | previous in thread | raw e-mail | index | archive | help
> Terry Lambert wrote:
> 
> > <ST_HELO>[\r\n] {
> > 		BEGIN INITIAL;
> > 		return HELO_END;
> > 	}
> >
> > The use of a "HELO_END" token lets us recognize the end of the statement
> > for a partial statement (HELO STR_DOMAIN HELO_END is otherwise ambiguous).
> 
> You can also avoid states if you want to... for example, in your rfc821.l:

[ ... ]

> | command:        /* nothing*/
> | 	|	command incomplete_helo
> | 	|  command helo_command
> | 			{ yyerrok; }
> | 	;

[ ... ]

I found in implementation for an interactive parser, this tends to fail.

Specifically, using the "-i" option to get a case insensitive parser
(instead of specifying [Hh][Ee][Ll][Oo]) results in your string that
you assemble from '.' returns coming back case converted.

I actually though this was bad from several perspectives, not only
for the adulteration of the "name@domain.com (Long Name)" and the
"Long Name <name@domain.com>" "Long Name" strings (which is bad enough
by itself), but that state can not be avoided entirely.


Specifically, there is an 821->822 provision for "X-authentication-warning:"
and for "Apparently-To:" based on the HELO state and the "RCPT TO:",
respectively.

There is also an exclusive state requirement for mail content processing
(un-byte-stuffing leading '.' characters, etc.).

I found that in practice, the state machine would hang until the next
command (shift/reduce conflict) when using a command that was a prefix
of another command.

One caveat: I am using the 'lex' compatability mode (except for the "-i",
which is flex specific), so your mileage may vary...


					Terry Lambert
					terry@lambert.org
---
Any opinions in this posting are my own and not those of my present
or previous employers.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199612021835.LAA10927>