Template Toolkit과 같은 최소한의 템플릿 언어를 구현하고 싶지만 훨씬 간단합니다. 기존 구현/라이브러리를 사용하고 싶지는 않지만 무언가를 배우기를 원하기 때문에 처음부터 시작하고 필요에 맞게 그것을 이해하고 싶습니다. 최종 제품은 C에 있어야하지만 아마도 Perl에서 프로토 타입을 먼저 만들려고합니다. 처음에는 변수를 대체하는 다른 파일을 포함하여 처리하기를 원합니다. 이제는 고급 구문 분석이 필요한/elseif/else/endif-construct 인 경우 임의로 중첩 할 수 있습니다.파싱에 대한 힌트
<h1>[% substitute title %]</h1> <p> [% if foo %] foo is true [% elseif bar %] [% if baz %] bar and baz are true [% endif %] bar is true [% else %] <em>none<em> is true [% endif %] </p>
내가 괜찮은 C와 약간의 펄 기술하지만, 구문 분석 전혀 지식을 가지고, 그래서도 정확히 내가 무엇을 찾고 모른다 :
여기에 의도 된 사용을 보여주는 예입니다. 그래서
알고리즘- (I에 관심이있을 것 TT 소스에서별로 의미가 없음)
TIA.
예를 들어 주셔서 감사합니다. 그게 bootom-up 구문 분석 (http://en.wikipedia.org/wiki/Bottom-up_parsing)일까요? 나는 적어도 Google 물건을 할 수 있도록 개념과 용어에 익숙해 지려고 노력하고 있습니다. –
Gamecat의 게시물에 표시된 내용은 일반적으로 AST (추상 구문 트리)라고합니다. 구문 분석 할 때 토큰 스트림은 일반적으로 먼저 구문 분석 트리로 변환 된 다음 AST로 변환됩니다. – Noldorin
@JG : 상향식 구문 분석은 특정 유형의 구문 분석을위한 일반적인 용어입니다. 이론을 배우고 싶다면 하향식 파싱부터 시작하는 것이 가장 좋습니다 (특히 재귀 - 하강). – Noldorin