On 30/07/2013 7:42 a.m., Kinkie wrote:
>> After this patch, if I type parametres(foo) instead of parameters(foo),
>> will Squid think that I am defining a regular expression instead of
>> importing foo where my true regular expressions are stored?
> Guys, one question: I understand that everyone here is very
> distrusting of lex/yacc parser generators.
> Why is that? in cases such as these a full parser would just be able
> to make sense from the context, instead of covering corner cases such
> as this one.
> I understand that hand-parsing is better in very complex code paths,
> but here there is no performance issue...
I'm not in that distrusting camp. I have worked with them quite a lot
and you may have noticed the parser loops I hand-roll have a lot of
similarity to an optimized yacc parse loop.
The downsides which can be problematic center around complexity in the
ruleset given to them:
* They are very finicky about the lexicon and the rulesets blow out
quite quickly to cope with edge cases.
* They provide no better assurity for us getting that ruleset correct
and than any hand-rolled code does.
* The resulting code is much more verbose and less easily debugged as a
direct result of the more complex ruleset.
That said, if anyone wants to run up a parser for interpreting the
squid.conf syntax we have now I am interesting in seeing what ruleset
they come up with.
Amos
Received on Mon Jul 29 2013 - 20:47:30 MDT
This archive was generated by hypermail 2.2.0 : Tue Jul 30 2013 - 12:00:50 MDT