나는 현재 Common LISP를 배우고 있으며 막대한로드 블록을 만났다. 커먼 LISP에서 파서를 만드는 법을 배웠다는 과제를 받았습니다. 필자는 문법 규칙에서부터 렉서 (lexer)에 이르기까지 다양한 소스를 통해 온라인으로 도움을주는 모든 것을 구현했습니다. 나는 다른 한편으로는 심볼 테이블을 구현하는 방법을 알아낼 수 없다.Common Lisp에서 심볼 테이블을 시뮬레이트하는 방법
이것은 내가 지금까지 심볼 테이블에 관해 가지고있는 것입니다.
(defun symtab-add (state id)
;; *** add symbols to symbol table ***
)
(defun symtab-member (state id)
;; *** look up symbols in symbol table ***
)
(defun symtab-display (state)
(format t "------------------------------------------------------~%")
(format t "Symbol Table is: ~S ~%" (pstate-symtab state))
(format t "------------------------------------------------------~%")
)
누군가가 나에게 튜토리얼을 연결하거나 나에게 코드 예제를 제공하거나 내가 슈퍼 감사 할 것이 나를 도울 수있는 경우에만 표시 부분 관리 필자 볼 수 있듯이.
내 할당을위한 모든 소스 코드 : http://www.cs.kau.se/cs/education/courses/dvgc01/LISP/newstart.lsp
코드는 여기에서 있습니다 : http://www.cs.kau.se/cs/education/courses/dvgc01/LISP/newstart.lsp –
"Common LISP에서 기호 표를 시뮬레이트하는 방법"1) Common Lisp "이 아니라 일반적인 LISP (소리내어 말할 필요 없음). 2) Rainer가 지적했듯이, 그 코드는 다른 곳에서 가져온 것입니다.게시하는 코드의 저작자 표시를 제공해야하며 * 자신이 자신의 것으로 주장해서는 안됩니다. 3) 왜 심볼 테이블을 "시뮬레이트"합니까? 하나만 구현하고 싶지 않니? 이 표현은 Common Lisp에서 기호 테이블을 구현할 수 없다는 것을 의미합니다. –
네, 그게 실제로 제 임무입니다. 그것이 불분명하면 미안합니다. 좋아, 그래서 심볼 테이블을 구현하고 싶다. (할당은 간단한 파스칼 프로그램을 파싱하는 것이다.) 당신은 나에게 포인터를 주거나 올바른 방향으로 나를 가리킬 수 있습니까? 링크에서 볼 수 있듯이 미완성 된 코드를 보냈습니다. 끝내기위한 나의 임무입니다. 기호 표를 제외한 모든 작업이 완료됩니다. – Joo223