Zobacz Standard ECMA-262 5.1 Edition/June 2011/
5.1.1 gramatyk bezkontekstowych
gramatyki bezkontekstowych składa się z kilku produkcjach. Każda produkcja ma symbol abstrakcyjny zwany nieterminalnym jako jego lewa strona , a sekwencja zero lub więcej nieterminalnych i symboli końcowych jako prawa strona. Dla każdej gramatyki symbole terminalu są rysowane z określonego alfabetu.
Od zdania obejmującej jeden odróżnić nieterminalowi, nazywany symbolem cel, dany kontekst wolne gramatyki określa się język, a mianowicie (może nieskończony) zestaw możliwych sekwencji symboli terminali, które mogą prowadzić od wielokrotnego zastępowania dowolnego nieterminalnego w sekwencji po po prawej stronie produkcji , dla której nieterminalna jest po lewej stronie.
5.1.6 gramatyki Oznaczenia
symbole zacisk gramatyk słownikowych i łańcuchowych, a niektóre z symboli końcowych gramatyki składniowej, pokazane są na stałej szerokości czcionki, zarówno w przedstawieniach gramatyki i w opisie gdy tekst bezpośrednio odnosi się do takiego symbolu terminalu . Te mają pojawić się w programie dokładnie tak, jak napisano. Wszystkie podane w ten sposób znaki symboli terminala należy rozumieć jako jako odpowiedni znak Unicode z zakresu ASCII, w przeciwieństwie do dla wszystkich znaków o podobnym wyglądzie z innych zakresów Unicode.
Nieterminalne symbole są wyświetlane kursywą. Definicja nieterminalnej definicji jest wprowadzana przez nazwę nieterminalnej istoty zdefiniowanej jako , po której następuje jeden lub więcej dwukropków. (Liczba dwukropków wskazuje na , do której należy gramatura). Jedna lub więcej alternatywnych prawych stron dla nieterminalnych, a następnie następnych linii. Na przykład, składniowym definicja:
WhileStatement :
while(Expression) Statement
stwierdza, że nieterminalowi WhileStatement reprezentuje token natomiast, następnie lewym tokena nawias, a następnie wyrażenie, następnie prawym nawiasem tokena, a następnie oświadczenie. Zdarzenia Expression i Statement są same w sobie nieterminalne. Jako inny przykład, składniowym definicja:
ArgumentList :
AssignmentExpression
ArgumentList , AssignmentExpression
:::
produkcjach numerycznej gramatyki łańcucha odznaczają o trzy średników ":::" jako interpunkcja.
::
produkcjach gramatyk leksykalnych i RegExp wyróżniają posiadające dwa dwukropki "::" jako oddzielenie znaków interpunkcyjnych. Gramatyki leksykalne i gramatyki RegExp dzielą niektóre produkcje.
:
produkcjach gramatyki składniowej wyróżniają mając tylko jeden dwukropek ":" jako interpunkcji.
Uwaga,
5,1.5 JSON Gramatyka
Productions gramatyki leksykalnym JSON wyróżniają mający dwa dwukropki „::” jako oddzielenie znaków interpunkcyjnych. Gramatyka leksykalna JSON wykorzystuje niektóre produkcje gramatyczne leksykalne ECMAScript. Gramatyka syntaktyczna JSON jest podobna do gramatyki składniowej języka ECMAScript. Produkcje gramatyki składniowej JSON wyróżniają się za pomocą jednego okrężnicy ":" jako oddzielenie interpunkcji.
Zostało to wyjaśnione w [Sekcja 5.1: Gramatyki syntaktyczne i leksykalne] (http://www.ecma-international.org/ecma-262/5.1/#sec-5.1). –
Patrz podrozdziały 5.1.1 do 5.1.5. –
@LeonidBeschastny - Widziałem i czytałem tę sekcję, ale nie wiem, co to znaczy. Jeśli możesz wyjaśnić, co to znaczy, proszę, umieść to w odpowiedzi. – jfriend00