>  기사  >  백엔드 개발  >  파서 구축: 재귀 하향식 또는 하향식?

파서 구축: 재귀 하향식 또는 하향식?

Barbara Streisand
Barbara Streisand원래의
2024-11-07 04:45:03403검색

Building a Parser: Recursive Descent or Top-Down?

파서 구축 과제 해결

질문:

파서 구축을 시작하면서 이해하는 데 어려움을 겪었습니다. 접근 방식. 샘플 문자열을 고려하십시오.

{key1 = value1 | key2 = {key3 = value3} | key4 = {key5 = { key6 = value6 }}}

이상적인 출력은 중첩된 맵 구조와 유사합니다.

map[key1] = value1
map[key2] = (map[key3] = value3)
map[key4] = (map[key5] = (map[key6] = value6))

이것이 실행 가능한 접근 방식입니까, 아니면 잘못된 경로를 탐색하고 있는 것입니까?

답변:

파서를 만드는 것은 광범위한 응답을 요구하는 다각적인 노력입니다.

지침:

  1. 재귀 하강 구문 분석: http://www.cs.binghamton.edu/~zdu/parsdemo/recintro.html과 같은 리소스에 설명된 이 방법을 연구해 보세요.
  2. 하향식 구문 분석: http://javascript.crockford.com/tdop/tdop.html 및 http://effbot.org/zone/simple-top-down-parsing과 같은 리소스에서 논의된 이 접근 방식을 살펴보세요. htm.
  3. Go 표준 라이브러리 파서 코드: Go 표준 라이브러리(http://golang.org/src/pkg/go/parser/parser.go)에 있는 기존 파서 코드를 검사합니다. 실용적인 예를 들어보세요.
  4. Rob Pike의 Lexer Writing 강의: 이 동영상(http://www.youtube.com/watch?v=HxaD_trXwRE)은 어휘 분석기 구성에 대한 귀중한 통찰력을 제공합니다. 파서의 필수 구성 요소입니다.
  5. 온라인 리소스: 파싱에 대한 수많은 기사와 튜토리얼을 온라인에서 볼 수 있습니다. 선택한 언어에 따라 구문이 다를 수 있지만 기본 개념은 Go로 그대로 적용할 수 있습니다.

위 내용은 파서 구축: 재귀 하향식 또는 하향식?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.