2009-06-27 3 views
3

C#으로 간단한 DSL을 작성하고 싶습니다. 너무 복잡한 것은 아닙니다. .NET의 Lex & Yacc을 찾고 있습니다. 지금까지 내가 찾은 가장 쉬운 방법은 GOLD Parser 빌더입니다. 다른 선택은 F #에서 사용할 수있는 lex & yacc을 사용하는 것입니다. 그러나 저는 지금 F # 프로그램에 관심이 없습니다.C# /. NET 용 파서 빌더

.NET 버전의 Lex 또는 Yacc에 대한 제안 사항이 있으면 알려주십시오.

감사합니다.

답변

8

C#에 실제로 머물고 싶다면 Irony toolkit을 사용하는 것이 좋습니다. C# 코드로 문법을 지정할 수 있습니다.

+0

일 비엔나 대학의 웹 사이트에서 찾을 C#을 렉스와 C#의 CUP 있습니다. –

1

Lex & Yacc을 이용하려면 얼마나 많은 F # 프로그래밍을해야합니까? F # dll에 필요한 것을 던져서 C# 프로젝트에서 참조 할 수 있습니까?

0

당신이 찾고있는 것이 맞는지 모르지만 Oslo은 텍스트 DSL을 생성 할 수 있습니다.

더 많은 기능이 있지만 리포 지 토리와 Grand Vision의 모든 것을 무시하고 DSL을 AST로 구문 분석하는 데 사용할 수있는 문법 만 만들면됩니다. 또는 기본 제공 지원을 활용하여 데이터베이스의 행 집합으로 파싱 할 수 있습니다.

0

또한 나는 아이러니와 함께 좋은 경험을 했어

C# Lex Manual

+0

누구든지 이것을 사용 했습니까? 나는 그것을 사용하고 있으며 나는 해석 중에 몇 가지 문제를 겪고있는 것 같다. 누구든지 안정적이라고 생각 했습니까? 보고 할 긍정적 인 의견은 무엇입니까? 알고 있어야하는 단점은 무엇입니까? –

+0

Lexer에는 작은 문제 (쉽게 고칠 수있는 문제)가 있습니다. 파서는 더 큰 문제가 있습니다. 프로젝트 (C# JLex + CUP)가 오래 유지됩니다. 전체 파서 파트를 재 작성하려고했는데 (Java에서 C#으로 원본을 번역하여) 너무 복잡하고 시간 가치가없는 것처럼 보였습니다. – greenoldman