Also, einen 'Screener' kenne ich nicht. Ein 'Sieb' wäre auch ein 'Sieve'.
So, Wortklauberei vorbei.
SQL ist eine Sprache und jede Sprache besteht aus Sätzen, Wörtern und Satzzeichen. Der Scanner zerlegt die Eingabezeichenkette (Satz) erstmal in einzelne 'Wörter' und Satzzeichen. Das macht es dem Parser viel leichter, den Satz zu erkennen.
Nochmal: Der Scanner zerlegt die Zeichenkette in Wörter und der Parser baut diesen Syntaxbaum auf.
Dem Unwissenden würde ich bei der Beurteilung der Parser und Parsergeneratoren widersprechen:
1. Ein selbstgebastelter Parser ist unermesslich wertvoll: Denn er vermittelt dir Kenntnisse, die Du in 20 Jahren Programmierung nicht erhalten wirst. Also: Bau Dir einen!
2. Selbstgebastelte Parser sind, wenn man die Technik kapiert hat, immer unterschiedlich. Es gibt simple precedence und LL(1) Parser, sowie Stackmaschinen, NDE-Automaten etc.
3. Mühsam sind sie, das stimmt.
Ansonsten hat der 'Unwissende, der seinen Namen zu Unrecht trägt', Dir alles wichtige erzählt: Wer gute Parser/Compiler bauen will, der mussdie Theorie beherrschen.
Übrigens gibt es eine sehr schöne Komponente TJanSQL, die
SQL auf Textdateien abbildet. Da solltest du fündig werden.