Rolf B: Wie behandelt PHP Whitespaces?

Beitrag lesen

Hallo TS,

öhm - das wird jetzt aber eine lange Tangente… Diese Gleichheiten sind so nicht gegeben. Einen Parser zu verwenden um Spaces zu entfernen, tja, das geht sicherlich. Ich kann auch mit dem 40-Tonner losfahren, um einen Kasten Bier zu kaufen.

  • Ein Parser verwendet als Vorstufe einen Lexer.
  • Ein Lexer verwendet Regexe zum Auffinden der Lexeme (zumindest ist das in dem mir bekannten Parsergenerator Antlr so)
  • Eine Regex-Library verwendet mutmaßlich einen Parser, um Regex-Sourcecode in die interne Darstellung umzusetzen.
  • Die interne Darstellung ist im einfachen Fall ein endlicher Automat - was aber bei modernen Regex auf Probleme läuft, weil ein endlicher Automat reguläre Sprachen abbilden kann (->Chomsky-Hierarchie), und eine Regex trotz ihres Namens nicht regulär ist. Für die heutigen Regexe braucht man komplexere Maschinen.

Rolf

--
sumpsi - posui - obstruxi