대략 어떤 식으로 작성하는지 템플릿이다.



입력 파일의 경우

구문 파일을 작성한다.

앞서 살펴 봤듯이

논터미널:                     대소영문자 + 언더바

터미널:                        '대소영문자+언더바'

생성규칙:                      -> 

생성규칙 구분자:             |

엔드마커:                        ;


해서 논터미널이 헤드로 하나만 오고 그 이후 생성 규칙 , 그 뒤 몸통 , 그뒤 엔드마커가 오면 하나의 생성규칙이 완성된다.

공백은 어떻게 주든 상관없다.

구분되기만 한다면 붙여써도 상관없다.



출력파일 형태는


알아서 터미널 심볼을 다 찾아내어

enum 으로 만든다.


그리고 생성한  action goto table 크기에 맞춰서 각종 define 값들이 조정된다.



parser() 함수가 실제적으로 파싱을 하게 된다.

심볼 스택  상태 스택을 구분하였다.


상태 스택은 건드리면 안되지만

심볼스택은 건드려도 상관없고

오히려 심볼 스택을 조정함으로서

파싱을 하는 도중에 원하는 내용만 골라내어 AST 트리를 만들 수 있을 것이다.







위 출력을 담당하는 야크 코드는 다음과 같다.

Posted by 멍충한아싸

댓글을 달아 주세요

  1. agen bola bv berkomentar situs anda sangat menarik dan saya harap anda terus mengembangkanya 귀하는 차단되었으므로 사용

    2012.08.20 12:56 [ ADDR : EDIT/ DEL : REPLY ]