LangDev

프로그래밍 언어 개발에 관심 있는 사람들의 모임입니다.

질문) Scala를 Yacc에서 알아먹도록 하고 있는데 …

2010-02-19 11:19:08

갑자기 문득 Scala Lexer와 Parser를 구현해보고 싶다는 생각이 들어서… 구현중에 문의를 드립니다. 짧은 지식으로 할려고 하니 힘드네요…

ScalaReference.pdf파일에서 가져온 EBNF문법은 다음과 같습니다.

Path : [id ‘.’] ‘this’ | StableId

StableId : id | Path ‘.’ id | [id ‘.’] ‘super’ [‘[’ id ‘]’] ‘.’ id

인데… 보시면 아시겠지만 Shift/Reduce Conflict가 나도록 되어 있습니다. (공식 문서에 나온 문법도 모호성이 있는 문법을 쓰고 있고… Scala구현은 손수 Parser를 만드셨더군요…)

이것을 모호하지 않은 문법 즉, Conflict가 안나도록 바꿔야 하는데 ㅠㅠ 잘모르겠더군요 ㅠㅠ 도움을 주세요!(아니 용기를…)

트랙백 주소: http://langdev.net/post/trackback/340

  1. mage 2010-08-04 16:24:16

    reduce되는 state의 단계를 더 잘게 나누면 보통 해결됩니다. id ‘.’ 를 인식하는 또하나의 state를 놓는다던가.

    원글이 엄청 오래된거라서 이미-_-) 쓸모없겠지만;;

목록보기

← 안녕하세요. 글만 읽다가 얼마 전 가... | OOP 언어 모음 →