Siehe Standard ECMA-262 5.1 Edition/June 2011/
5.1.1 kontextfreie Grammatiken
Eine kontextfreie Grammatik besteht aus einer Reihe von Produktionen. Jede Produktion hat ein abstraktes Symbol, das als Nonterminal bezeichnet wird, wie seine linke Seite, und eine Sequenz von null oder mehr nichtterminalen und Terminalsymbolen als seine rechte Seite. Für jede Grammatik werden die Terminalsymbole aus einem bestimmten Alphabet gezeichnet.
aus einem Satz ausgehend aus einem einzigen aufstrebenden nicht terminale, das Ziel-Symbol genannt wird, eine gegebene kontextfreie Grammatik gibt eine Sprache, nämlich die (möglicherweise unendliche) Menge möglicher Sequenzen von Terminalsymbolen, die entstehen können von wiederholt ersetzen alle Nichtterminal in der Sequenz mit einer rechten Seite einer Produktion für die das Nonterminal ist die linke Seite.
5.1.Notation 6 Grammar
Terminal-Symbole der lexikalischen und Zeichenfolge Grammatiken, und einige der Terminalsymbole der syntaktischen Grammatik, sind in fester Breite Schrift gezeigt, sowohl in den Produktionen der Grammatiken und in dieser Spezifikation, wann immer die Text bezieht sich direkt auf ein solches Terminal Symbol. Diese sollen in einem Programm genau so erscheinen wie geschrieben. Alle Terminal-Symbol-Zeichen, die auf diese Weise angegeben sind, verstehen sich als das entsprechende Unicode-Zeichen aus dem ASCII-Bereich , im Gegensatz zu ähnlich aussehenden Zeichen aus anderen Unicode-Bereichen.
Nichtterminale Symbole werden kursiv dargestellt. Die Definition eines Nichtterminals wird eingeführt, indem der Name des Nichtterminals definiert wird gefolgt von einem oder mehreren Doppelpunkten. (Die Anzahl der Doppelpunkte gibt an, zu welcher Grammatik die Produktion gehört.) Eine oder mehrere alternative Rechte Seiten für das Nonterminal folgen dann auf den folgenden Zeilen. Zum Beispiel kann die syntaktische Definition:
WhileStatement :
while(Expression) Statement
besagt, dass das Nicht-End-WHILESTATEMENT stellt das Token während durch eine linke Klammer Token gefolgt, gefolgt von einem Ausdruck, von einer rechten Klammer Token gefolgt, gefolgt von einer Erklärung. Die Vorkommen von Ausdruck und Anweisung sind selbst nichtterminals. Als ein anderes Beispiel, die syntaktische Definition:
ArgumentList :
AssignmentExpression
ArgumentList , AssignmentExpression
:::
Productions der numerischen Zeichenfolge Grammatik indem drei Doppelpunkte auszeichnen ":::" als Interpunktion.
::
Produktionen der lexikalischen und RegExp Grammatiken zeichnen sich durch mit zwei Doppelpunkte "::" als Interpunktions trennt. Die lexikalischen und RegExp-Grammatiken teilen einige Produktionen. ":" als Interpunktions
:
Productions der syntaktischen Grammatik werden, indem nur eine colon unterscheiden.
Hinweis,
5,1.5 Die JSON Grammar
Produktionen der JSON lexikalischen Grammatik zeichnen sich durch mit zwei Doppelpunkte "::" als Interpunktions trennt. Die JSON lexikalische Grammatik verwendet einige Produktionen aus der lexikalischen Grammatik ECMAScript. Die syntaktische Grammatik JSON ähnelt Teilen der syntaktischen ECMAScript-Grammatik. Produktionen der syntaktischen JSON-Grammatik werden unterschieden mit einem Doppelpunkt ":" als Trennzeichen.
Es wird in [Abschnitt 5.1: Syntaktische und lexikalische Grammatiken] (http://www.ecma-international.org/ecma-262/5.1/#sec-5.1) erklärt. –
Siehe Unterabschnitte 5.1.1 bis 5.1.5. –
@LeonidBeschastny - Ich habe diesen Abschnitt gesehen und gelesen, weiß aber nicht, was es bedeutet. Wenn Sie erklären können, was das bedeutet, bringen Sie es bitte in eine Antwort. – jfriend00