emacs 에서 flex(lex) 나 bison(yacc)을 위한 모드?
글쓴이: deli / 작성시간: 수, 2006/03/08 - 1:48오후
안녕하세요. 가입하고 첫 글을 질문으로 올리게 되는군요.
(사실은 질문하려고 가입했습니다.)
여쭤보려는 건 제목과 같습니다. emacs에 lex나 yacc를 위한 모드가 존재하는지요?
구글에서 찾은 몇 가지 정보로는 c-mode를 쓰라는데, 이게 잘 안되는 부분이 있습니다.
혹시 경험 있으신 분은 알려주세요.
참고로 말씀드리면 지금 vi에서 emacs로의 전환을 시도하는 중입니다.
'vi 쓰세요' 라는 말씀은 사양합니다. ;)
Forums:
flex-mode와
flex-mode와 bison-mode라는 것이 있긴 하지만 너무 오래된 것들이라 별로 도움이 되지 않습니다.
사실 flex나 bison의 경우, 절반 정도는 C/C++ source이면서 나머지는 flex/bison 특유의 문법을 쓰기 때문에, 완벽하게 파싱해서 그럴듯한 major mode로 제공하기 힘듭니다. 그래서 보통 사람들은 대부분 cc-mode를 (즉 일반 c-mode나 c++-mode) 써서 이 파일들을 처리합니다. 그런데 써 보시면 알겠지만 이게 만족스러운 수준은 아닙니다.
한참 생각해 봤는데, 다음과 같은 방법을 쓸 수는 있습니다. Emacs Wiki에서 찾아 보시면 여러 개의 major mode를 한 버퍼에서 쓸 수 있는 방법을 지원합니다.
제일 간단해 보이는 two-mode-mode.el을 설치하시고. .emacs에 다음을 추가합니다:
그리고 .y 파일을 다음과 같이 구성합니다:
그러면 TEXT-BEGIN ... TEXT-END 사이만 text-mode가 되고 나머지는 c-mode가 되어 그럭저럭 쓸 수 있을 것입니다.
--
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://www.cinsk.org/cfaqs/
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://cinsk.github.io/cfaqs/
답변 감사합니다.
답변 감사합니다.
무슨 말씀인지는 알겠는데, 말씀 해주신 대로 해보려고 하다가 또 어려움을 만나서 추가로 질문 드립니다. 언급하신 two-mode-mode 를 찾아보니 주로 html 내부에서 php 를 코딩할 때 사용한다더군요. two-mode-mode.el 의 안에 보면,
와 같은 부분이 있습니다. 이걸 위에 적어주신 대로 .emacs 파일을 수정하고 바로 사용하려니 지원되지 않는 것이 있다고 경고 메세지나 나오네요. 아마 저기 re-two-mode-alist 쪽을 수정해야는 것이 아닐까 싶은데, 도무지 어찌 해야할지 감이 안옵니다. 어떻게 해야할까요?
댓글 달기