Re: StringBuilder Extension: IsQuotedBy

Frans Bouma <[email protected]> Fri, 15 Feb 2008 18:39:55 +0100
Newsgroups gmane.comp.windows.devel.dotnet.clr
Message-ID <015f01c86ff9$c6fb31b0$54f19510$@nl>
> Peter Obiefuna <[email protected]> wrote:
> > If it keeps hitting a
> > matched state until the input buffer is finished, then, the string
> > 'qualifies'. That, in my mind, is the difference between  a state engine
and
> > a collation engine like strcomp (never mind that you can illustrate FSM
> > graphically by pointing to a final dot on paper). But I expect a Regex
> > implementation to create a unique FSM from every input signature.
>
> I don't understand your last sentence. The FSM is constructed for the
> regex, not for the sentence to be matched.
>
> Also, I don't see how this is relevant to why one wouldn't "still"
> hand-write a DFA.

        I think it depends on your language. Take for example UBB syntaxis vs.
a programming language. The first has tokens which are surrounded by markers.
The second doesn't. THe first has whitespace + text outside the marked areas
which is the same: ignore and see it as one token, the second doesn't, it has
to consider every input character.

        The first can be done with a regexp tokenizer pretty easily and very
quickly: one can find the tokens in the text without a lot of effort, just
define the regexp per token. (an open source example I wrote some time ago is
available here: http://www.llblgen.com/hnd) The second can't use that setup
because every non-whitespace is input to tokenize. Using a regexp tokenizer
would be too slow (as it's too inefficient). THe first is efficient as it only
has to consider the marked areas, the rest is to ignore.

        So if you're writing a parser for a language where every
non-whitespace is a token, you indeed need your own statemachine to tokenize
the input.

        I think both have a point: regexp's already define NFA's interally for
their expression, why not utilize those? Of course, if your language doesn't
fit that setup, you need your own. (Aho Sethi Ullman to the rescue ;))

                FB

===================================
This list is hosted by DevelopMentorĀ®  http://www.develop.com

View archives and manage your subscription(s) at http://discuss.develop.com