Eine formale Grammatik besteht aus einer Reihe von Produktionsregeln, die beschreiben, wie Zeichenfolgen mit gültiger Syntax gebildet werden. Formale Grammatiken werden am häufigsten verwendet, um die Syntax einer Programmiersprache anzugeben.
Ich höre oft Behauptungen, dass C ++ eine kontextsensitive Sprache ist. Nehmen Sie das folgende Beispiel: a b(c); Ist dies eine Variablendefinition oder eine Funktionsdeklaration? Das hängt von der Bedeutung des Symbols ab c. Wenn ces sich um eine Variable handelt , wird a b(c);eine Variable mit dem Namen btype …
Vielleicht bin ich nicht von diesem Planeten, aber es scheint mir, dass das Folgende ein Syntaxfehler sein sollte: int a[] = {1,2,}; //extra comma in the end Aber es ist nicht. Ich war überrascht, als dieser Code in Visual Studio kompiliert wurde, aber ich habe gelernt, dem MSVC-Compiler in Bezug …
Ich habe über Parser und Parsergeneratoren gelesen und diese Aussage auf der LR-Parsing-Seite von Wikipedia gefunden: Viele Programmiersprachen können mit einer Variation eines LR-Parsers analysiert werden. Eine bemerkenswerte Ausnahme ist C ++. Wieso ist es so? Welche besondere Eigenschaft von C ++ macht es unmöglich, mit LR-Parsern zu analysieren? Mit …
Kann mir jemand erklären, was eine kontextfreie Grammatik ist? Nachdem ich mir den Wikipedia-Eintrag und dann den Wikipedia-Eintrag zur formalen Grammatik angesehen habe, bin ich völlig verwirrt. Wäre jemand so freundlich zu erklären, was diese Dinge sind? Ich wundere mich darüber, weil ich das Parsen und nebenbei die Einschränkung einer …
Was ist der tatsächliche Unterschied zwischen LR-, SLR- und LALR-Parsern? Ich weiß, dass SLR und LALR Arten von LR-Parsern sind, aber was ist der tatsächliche Unterschied in Bezug auf ihre Parsing-Tabellen? Und wie kann man zeigen, ob eine Grammatik LR, SLR oder LALR ist? Für eine LL-Grammatik müssen wir nur …
Ich bin mit der Tatsache vertraut, dass die Grammatiken von C und C ++ kontextsensitiv sind , und insbesondere benötigen Sie einen "Lexer-Hack" in C. Andererseits habe ich den Eindruck, dass Sie nur Java analysieren können 2 Zeichen Vorausschau, trotz erheblicher Ähnlichkeit zwischen den beiden Sprachen. Was müssten Sie an …
Wenn ich 019 > 020die JavaScript-Konsole eingebe (sowohl in Chrome als auch in Firefox getestet), erhalte ich die Antwort true. Dies ist darauf zurückzuführen, 020dass es als OctalIntegerLiteral(gleich 16) 019interpretiert wird, während es anscheinend als DecimalLiteral(und gleich 19) interpretiert wird . Da 19ist größer als 16, 019 > 020ist true. …
Ich habe kürzlich versucht, mir selbst beizubringen, wie Parser (für Sprachen / kontextfreie Grammatiken) funktionieren, und das meiste davon scheint sinnvoll zu sein, abgesehen von einer Sache. Ich konzentriere mich insbesondere auf LL (k) -Grammatiken , für die die beiden Hauptalgorithmen der LL-Parser (unter Verwendung der Stapel- / Analysetabelle) und …
Ich habe einige TSV-Daten ID Name Email 1 test test@email.com 321 stan stan@nowhere.net Ich möchte dies in eine Liste von Hashes analysieren @entities[0]<Name> eq "test"; @entities[1]<Email> eq "stan@nowhere.net"; Ich habe Probleme mit der Verwendung des Newline-Metazeichens, um die Kopfzeile von den Wertzeilen abzugrenzen. Meine Grammatikdefinition: use v6; grammar Parser { …
Beim Schreiben eines Übersetzers einer Musiksprache in eine andere (ABC an Alda) als Ausrede für das Erlernen der Raku-DSL-Fähigkeit fiel mir auf, dass es anscheinend keine Möglichkeit gibt, a zu beenden .parse! Hier ist mein verkürzter Demo-Code: #!/home/hsmyers/rakudo741/bin/perl6 use v6d; # use Grammar::Debugger; use Grammar::Tracer; my $test-n01 = q:to/EOS/; a …
Ich versuche, eine Grammatik zu erstellen, um einige von mir entwickelte Excel-ähnliche Formeln zu analysieren, wobei ein Sonderzeichen am Anfang einer Zeichenfolge eine andere Quelle kennzeichnet. $Kann beispielsweise eine Zeichenfolge kennzeichnen, sodass " $This is text" als Zeichenfolgeneingabe im Programm behandelt wird und &eine Funktion kennzeichnen kann, sodass &foo()dies als …
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.