Actually, I looked at the code to make some changes to
my private language
file and didn't understand it. I know somehow what the code does but not
how, because I didn't want to spend that much time decoding all those
regexps that make the code pretty cryptic and hard to maintain - with the
added bonus of not having /any/ documentation.
In case anyone's wondering, yes the code is in CVS now. But it's not
finished: there's still at least one more update to Language.php to come.
Sorry about that Jens but you'd probably be better off commenting the whole
section out for now. As for not having any documentation, I can fix that in
my next commit.
Why not rearrange the code into two segments: Segment
one would parse the
linked date like present in the article into three numerical values: day,
month, year. The second segment then would only have to concat those values
(maybe with a converted month name) into the final form. This form could be
given in the usual "$1 $2 $3 $4" syntax (with e.g. $4 being the month
name). That also would take some load off the server that now has to
interpret lots of regexp patterns, which isn't too cheap because these
patterns normally first get converted into some form of a finite automaton
that is eventually given the input string for processing. (At least the
code by Tatu Ylonen proceeds in this way.)
No, I think your way would be slower, not faster. There's a "pre-analysis"
flag you're meant to use if you run the same regular expression many times,
but according to the PHP manual it only provides a speedup if the regular
expression starts with something other than a fixed character. So it sounds
like there's no compilation. Besides, if regular expressions were slow,
well, the rest of the parser would be in trouble.
By splitting the replacing from the parsing, you're just turning one job
into two. The same tasks are still required, there's just some extra
administrative overhead. Plus since PHP is an interpretive language, I'd
really rather have the O(N) code written in C.
As for your way being simpler, well, I would contest that too. You code it
your way, and we'll put them side by side. My way really is pretty simple if
you understand Perl regular expressions.
-- Tim Starling.
Hotmail is now available on Australian mobile phones. Go to