2009-11-18 4 views
2

저는 스칼라에서 명령을 구문 분석 할 응용 프로그램을 만들고 있습니다. 명령의 예는 다음과 같습니다 Scala의 텍스트 구문 분석에 접근

todo get milk for friday 

그래서 계획 꽤 스마트 파서 떨어져 라인을 중단하고 명령 부분 문자열에서 시간에 대한 참조가 있다는 사실을 인식하는 것입니다.

일반적으로 저는 스칼라에서 토크 나이저를 만들 필요가 있습니다. 그래서 내 옵션이 무엇인지 궁금 하네. 나는 정규 표현식을 잘 알고있어하지만 난 또한 검색 기능과 같은 SQL을 계획 :

search todo for today with tags shopping 

그리고 정규 표현식은 변화가 많은 유연성 구현 명령이 될 것이라고 생각합니다. 이것은 내가 어떤 종류의 문법을 구현하는 것을 생각하게한다.

스칼라에서 내 옵션에는 어떤 것이 있습니까?

답변

1

스칼라에는 EBNF 사양에서 파서를 직접 작성할 수있는 파서 라이브러리 (scala.util.parsing.combinator)가 있습니다. 귀하의 언어에 대한 EBNF가 있다면, Scala 파서를 작성하는 것이 쉬워야합니다. 그렇지 않다면 먼저 공식적으로 언어를 정의하는 것이 좋습니다.

관련 문제