Es gibt eine Möglichkeit, Fuzzy-Parsing durchzuführen (akzeptiert Zeichenfolgen auch bei Tippfehlern bis zu einer bestimmten Bearbeitungsentfernung), mit einem DFA und einer zur Laufzeit erstellten Levenshtein-Automaten des Eingabeworts. Kann etwas Ähnliches mit einem Earley-Parser gemacht werden? Es fällt mir schwer, den Algorithmus zu verstehen, geschweige denn diese Frage zu beantworten.
In einem LR (0) -Parser besteht jeder Status aus einer Sammlung von LR (0) -Elementen, bei denen es sich um Produktionen handelt, die mit einer Position versehen sind. In einem LR (1) -Parser besteht jeder Status aus einer Sammlung von LR (1) -Elementen, bei denen es sich um Produktionen handelt, …
Kann mich jemand aufklären, warum ein rekursiver Abstiegsparser mit Backtracking, der die Produktionen und S → a a (in dieser Reihenfolge) versucht, die durch die Grammatik S → a S a | gebildete Sprache nicht erkennt a a .S→aSaS→aSaS \rightarrow aSaS→aaS→aaS \rightarrow aaS→aSa | aaS→aSa | aaS \rightarrow aSa\ |\ …
Die folgende kontextfreie Grammatik zeigt eine Mehrdeutigkeit vom Typ "Dangling else" (stellen Sie sich vor, steht für und b steht für und c steht für eine andere Art von Anweisung oder Block): S.einaaif expr thenbbbelseccc Zum Beispiel kannaacbcals(a(acbc))oder als(a(ac)bc)analysiert werden(dies ist das einfachste / kürzeste mehrdeutige Wort für diese Grammatik).S.→ …
Die Verwendung des Earley-Vektors als Erkenner ist recht einfach: Wenn das Ende der Zeichenfolge erreicht ist, müssen Sie nur noch nach einer abgeschlossenen axiomatischen Produktion suchen, die an Position 0 gestartet wurde. Wenn Sie mindestens eine haben, wird die Zeichenfolge akzeptiert. Die Verwendung des Earley-Vektors zur Rekonstruktion der Analysebäume ist …
Im College haben wir etwas über die Theorie der Berechnung im Allgemeinen und Turing-Maschinen im Besonderen gelernt. Eines der großartigen theoretischen Ergebnisse ist, dass Sie auf Kosten eines potenziell großen Alphabets (Symbole) die Anzahl der Zustände auf nur 2 reduzieren können. Ich habe nach Beispielen für verschiedene Turingmaschinen gesucht und …
Diese Grammatik bleibt rekursiv: Expression ::= AdditionExpression AdditionExpression ::= MultiplicationExpression | AdditionExpression '+' MultiplicationExpression | AdditionExpression '-' MultiplicationExpression MultiplicationExpression ::= Term | MultiplicationExpression '*' Term | MultiplicationExpression '/' Term Term ::= Number | '(' AdditionExpression ')' Number ::= [+-]?[0-9]+(\.[0-9]+)? Theoretisch funktioniert ein rekursiver Abstieg also nicht. Durch Ausnutzen der Eigenschaften …
Ich arbeite an einem Parser für eine Sprache im C-Stil, und für diesen Parser benötige ich den regulären Ausdruck, der mit C-Stil / ** / Kommentare übereinstimmt. Jetzt habe ich diesen Ausdruck im Web gefunden: /\*([^\*]*\*+[^\*/])*([^\*]*\*+|[^\*]*\*/ Wie Sie sehen, ist dies jedoch ein ziemlich chaotischer Ausdruck, und ich habe keine …
wenn ich eine Grammatik mit einer Produktion habe, die sowohl Linksrekursion als auch Linksfaktor enthält F→FBa∣cDS∣cF→FBa∣cDS∣c\qquad \displaystyle F \to FBa \mid cDS \mid c Welches hat Priorität, linke Rekursion oder linkes Factoring?
Abstrakte Problembeschreibung So wie ich es sehe, bedeutet Unparsing, einen Token-Stream aus einem AST zu erstellen, der beim erneuten Parsen einen gleichen AST erzeugt, dh parse(unparse(AST)) = ASThalten sollte. Dies entspricht dem Auffinden eines gültigen Analysebaums, der denselben AST erzeugen würde. Die Sprache wird durch eine kontextfreie S-zugeschriebene Grammatik unter …
Ich muss eine Grammatik für Pascal schreiben, und es gibt nur eine Sache, die Probleme verursacht. Nehmen wir an, wir haben Operatoren (sortiert nach Priorität von niedrig nach hoch): Postfix^ . Präfix^ . [ ], und ., (gleiche Priorität und linker Assoziativ). Das einzige Terminal idist ein Kleinbuchstabe. Nehmen wir …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.