파서 구축 과제 해결
질문:
파서 구축을 시작하면서 이해하는 데 어려움을 겪었습니다. 접근 방식. 샘플 문자열을 고려하십시오.
{key1 = value1 | key2 = {key3 = value3} | key4 = {key5 = { key6 = value6 }}}
이상적인 출력은 중첩된 맵 구조와 유사합니다.
map[key1] = value1
map[key2] = (map[key3] = value3)
map[key4] = (map[key5] = (map[key6] = value6))
이것이 실행 가능한 접근 방식입니까, 아니면 잘못된 경로를 탐색하고 있는 것입니까?
답변:
파서를 만드는 것은 광범위한 응답을 요구하는 다각적인 노력입니다.
지침:
-
재귀 하강 구문 분석: http://www.cs.binghamton.edu/~zdu/parsdemo/recintro.html과 같은 리소스에 설명된 이 방법을 연구해 보세요.
-
하향식 구문 분석: http://javascript.crockford.com/tdop/tdop.html 및 http://effbot.org/zone/simple-top-down-parsing과 같은 리소스에서 논의된 이 접근 방식을 살펴보세요. htm.
-
Go 표준 라이브러리 파서 코드: Go 표준 라이브러리(http://golang.org/src/pkg/go/parser/parser.go)에 있는 기존 파서 코드를 검사합니다. 실용적인 예를 들어보세요.
-
Rob Pike의 Lexer Writing 강의: 이 동영상(http://www.youtube.com/watch?v=HxaD_trXwRE)은 어휘 분석기 구성에 대한 귀중한 통찰력을 제공합니다. 파서의 필수 구성 요소입니다.
-
온라인 리소스: 파싱에 대한 수많은 기사와 튜토리얼을 온라인에서 볼 수 있습니다. 선택한 언어에 따라 구문이 다를 수 있지만 기본 개념은 Go로 그대로 적용할 수 있습니다.
위 내용은 파서 구축: 재귀 하향식 또는 하향식?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!