Don't make excuses; fix it.
I don't really know what I'm doing with it
You're specifying your language's syntax.
Well that's because I've never used BNF before
No, you didn't have any problem with BNF. The problem is that you didn't describe aXML.
As for the special chars, they are not used in aXML, only in the Perl plugins.
Are you back to saying one has to use
sub escape {
my ($s) = @_;
for ($s) {
die "\"$1\" can't be produced by aXML safely"
if /([<>()\[\]])/;
return $_;
}
}
instead of
sub escape {
my ($s) = @_;
for ($s) {
die "\"$1\" can't be produced by aXML safely"
if /(&(?:lab|rab|lcb|rcb|lsb|rsb);)/;
s/\</&lab;/g;
s/\>/&rab;/g;
s/\(/&lcb;/g;
s/\)/&lcb;/g;
s/\[/&lsb;/g;
s/\]/&rsb;/g;
return $_;
}
}
If it's not builtin, then a plugin can't rely on the person using aXML having provided a plugin to handle &lab;, which means you can't use anyone else's plugins, which means you can't reuse code, which means your comparison with TT was an outright lie. |