NullLiteral은 트리 형식으로 어떻게 표현됩니까?
-
15-09-2020 - |
문제
에 따르면 ECMA스크립트 사양 섹션에서 7.8.1 ㅏ NullLiteral
다음과 같이 정의됩니다:
NullLiteral :: 없는
내가 이해하려고 하는 것은 이것이 트리 형태로 어떻게 표현되는지입니다. NullLiteral
섹션에 있는 다음 작품에 포함되어 있습니다. 7.6.1 그리고 7.8.
ReservedWord :: Keyword FutureReservedWord NullLiteral BooleanLiteral Literal :: NullLiteral BooleanLiteral NumericLiteral StringLiteral
어떻게 보일지에 대한 나의 최선의 추측은 다음과 같습니다.
InputElementDiv | Token | IdentifierName | ReservedWord | Literal | NullLiteral | 없는
하지만 이것은 나에게 옳지 않은 것 같습니다.
메모
내 연구에 따르면 실제로 언어 문법에서 CST를 생성하는 컴파일러는 거의 없는 것 같습니다.물론 그 이유를 이해할 수는 있지만 이것은 나에게 학습 연습이므로 파서 생성기 사용과 같은 보다 전문적인 구문 분석 수단으로 이동하기 전에 이 내용을 바로 익히고 싶습니다.
해결책
표시된 트리는 문법에 포함되지 않습니다. 왜냐하면 문법은 파생을 제공하지 않기 때문입니다. IdentifierName
에게 ReservedWord
, 그리고 파생을 제공하지 않습니다 ReservedWord
에게 Literal
어느 하나.
그만큼 ReservedWord
실제로 생산은 유효한 값을 제한하는 데에만 사용됩니다. IdentifierName
, 이는 어휘 수준에서 확인되어야 합니다.CST로 만들지는 않습니다. 여기서는 IdentifierName
.
Literal의 컨텍스트는 PrimaryExpression이므로 실제 CST의 일부는 다음과 같습니다.
...
|
PrimaryExpression
|
Literal
|
NullLiteral
|
null
제휴하지 않습니다 StackOverflow