2009-05-10 5 views
2

DSL 개발에 점점 더 많은 관심을 갖게되었습니다. 나는 fslex와 fsyacc를 사용하여 F #으로 아주 작은 것을 만들었지 만 오류 메시지가 정확하지 않다. (나는 더 좋은 것들을 생성 할 수있는 방법을 찾지 못한다. 오류 케이스를 처리하는 방법에 대한 문서가 거의없는 것 같다. 그들은 UNICODE 문자열을 적절하게 구문 분석하지 않습니다. 간단히 말하자면, 도구를 사용하여 DSL을 개발하는 것이 매우 간단하고 (Visual Studio 도구는 실제로 내가 원하는 것만 큼), 구문 분석/AST 생성 부분에 가장 관심이 있습니다. 나는 ANTLR을 살펴본 후 코드와 문법 정의 메타 언어가 섞여서 나쁘게 보였으므로, 답안에서 유사한 문제로 고생하는 솔루션이나 솔루션에 대해서는 언급하지 마십시오. 또한 부 (Boo)라는 언어에 대한 몇 가지 자료를 보았습니다. 그러나 저는 아직 다른 언어로 어지럽히는 것에 관심이 없습니다 (특히 지원이 거의없는 경우). 그래서 맞지 않습니다. 잘 설명되어있는 한 .NET을 사용하여 잘 작동하고 마지막으로 동적 유형 지정 언어 또는 DLR 사용과 관련이없는 다른 제안은 인정됩니다..NET에서 DSL을 구현하는 도구

+2

왜 -2로 낮 춥니 까? 이 질문에 잘못된 것이 있습니까 ?? – 7wp

답변

2

오슬로에서 일하기를 원합니다. 여기에는 DSL을 정의하는 도구와 DSL을 통해 문법을 정의하는 도구가 포함됩니다. 문법은 AST 나 다른 것을 낼 수 있습니다.

DSL에서 생성 할 수있는 한 종류의 출력은 해당 SQL Server 스키마입니다. 따라서 DSL의 인스턴스는 SQL Server Express (또는 그 이상)에 저장 될 수 있습니다.

오슬로는 Microsoft의 더 큰 비전의 일부이지만 무시할 수 있으며 "DSL"부분부터 시작하십시오.

저는 여러분이 시작하고 적극적으로 Microsoft에 여러분이 좋아하는 것과 싫어하는 것을 알리는 것을 권장합니다. 당신은 당신이 알든 말든 그들의 관심을 지금 당장 가지고 있습니다.

+0

정말, 왜 downvote? 그것은 좋은 대답입니다. 게다가, 나는 내가 오슬로를 사주라고 깨달았다. 아니면 M #입니까? –

+1

+1 나는 -1로보기 싫은 대답을 보면서 싫어하고 왜 투표가 중단되었는지에 대한 이유가 없다. 이제 시작한 곳으로 돌아 가야합니다. – Jay

+0

감사합니다. 오슬로의 DSL 부분이 출시 될 것 같지 않기 때문에 나는 또한 대답을 삭제할 것이다. –

2

아마도 Oslo을 시도해 볼 수 있습니다. 개인적으로 아직 사용하지는 않았지만 예제가 상당히 흥미롭게 보입니다. 사람들이 정의하고 풍부하고 시각적으로 에 모델 사람들이 만들 수 있습니다 언어를 상호 작용하고 텍스트 도메인 특정 언어 및 데이터 모델 관계형 저장소를 사용하는 데 도움이되는 도구 :

은 "오슬로"로 구성 도구와 플랫폼 구성 요소 모두에서 모델을 사용할 수있게합니다.

Here 일종의 일반적인 개요입니다.

2

부 (Boo)의 소스 코드를보고 자신이하는 일을 볼 수도 있습니다. 또한 ANTLR을 사용하여 파서를 생성합니다. ANTLR 문법에 코드를 혼합 할 필요가 없습니다. LL (*) 언어 인 한 완전히 설명 적으로 유용 할 수 있습니다.

+1

정말로, 나는 Boo와 ANTLR 모두에 관심이 없다고 말 했으므로, 이걸 -1로 주면 나랑있어. – em70

+3

당신은 BOO를 ANTLR 문법으로 언어 또는 혼합 코드로 사용하는 것에 관심이 없다고 했지 그러나 나는 그것이 어떻게 ANTLR 문법을 사용하고 Boo의 소스 코드를 보는 것을 배제 하는지를 보지 못했다. –

1

아이러니 - 당신을 위해 좋은 해결책이 될 수 [email protected]에 위치를 - 당신이 내장 된 .NET되는 언어의의 기능을 대신 사용하는 문법을 구축 할 수 있습니다 BNF 문법 파일을 별도로 작성하려고했습니다.