Hat jemand eine Idee wie man einen Parser basteln koennte der folgendes unterscheiden kann :
{
.b
.{
..d
..e
.}
.c
}
richtig
{
.b
.{
..d
.e
.}
.c
}
falsch
Ein normaler Parser wie simpleparse kann das garnicht, weil er nicht State aware ist oder uebersehe ich da irgendwas ??
Parsing Indention
Am einfachsten ist es du machst parsing in 2 Schritten. Im ersten Schritt erzeugst du Token und kümmerst dich dabei auch um die Einrückung und im zweiten Schritt parst du die Token.
Es gibt allerdings Sprachen in denen du Informationen aus dem Parser im Tokenizer brauchst und dann funktioniert dass nicht mehr (so gut).
Es gibt allerdings Sprachen in denen du Informationen aus dem Parser im Tokenizer brauchst und dann funktioniert dass nicht mehr (so gut).
@dulo: Stelle die entsprechende Grammatik auf, und verwende dann einen Parsing-Bibliothek wie PyParsing. Versuche besser nicht, den Parser selbst zu schreiben, denn das ist je nach Komplexität der Grammatik nicht mehr trivial.
Laut Website geht das im Übrigen auch mit "simpleparse", zumindest behauptet die Dokumentation, simpleparse könne EBNF-Grammatiken parsen.
Laut Website geht das im Übrigen auch mit "simpleparse", zumindest behauptet die Dokumentation, simpleparse könne EBNF-Grammatiken parsen.