2011-10-30 3 views
4

C# 코드를 구문 분석하고 수정할 수있는 몇 가지 간단한 스크립트를 작성하고 싶습니다.스크립팅 언어로 C#을 파싱합니다.

예를 들어 어떤 도서관이 있습니까? 파이썬, 그렇게 해? 거기에 몇 가지 라이브러리 (NRefactor있는 C#에서 AST 빌드 할 수있는 뭔가가) 알고 있지만 스크립트 langs - parse 및 AST 또는 이와 유사한 빌드 뭔가를 싶습니다.

+0

파이썬에서 파서를 잘 만들 수 있습니다. 그러나 C#은 단순한 언어 (예 : 문맥 키워드)가 아니며 "리팩토링"에 해당 될 수있는 몇 가지 단계는 코드의 추가 이해 (예 : 유형 정보)의 이점을 누립니다. 따라서 최선의 방법은 기존 솔루션을 다시 사용하는 것일 수 있습니다. – delnan

+5

Roslyn CTP http://blogs.msdn.com/b/csharpfaq/archive/2011/10/19/introducing-the-microsoft-roslyn-ctp.aspx를 참조하십시오. 그것은 당신이 묘사하는 것과 정확히 일치하는 API가되기를 갈망합니다. – driis

+1

IronPython의 NRefactory를 문제없이 사용할 수 있어야합니다. – svick

답변

0

파이썬에 이것이 존재하는지 모르겠습니다. 또한 "스크립트"언어 제한을 이해하지도 않습니다. 파이썬은 완전한 언어입니다.

우리의 DMS Software Reengineering Toolkit 및 그 C# Front End은 C# 4.0을 비롯한 다양한 사투리에서 C#을 구문 분석하고 AST를 빌드하고 유효한 AS #로부터 코드를 재사용 할 수 있습니다.

DMS 기계는 DMS의 "스크립팅"언어 인 PARLANSE를 사용하여 절차 적으로 AST를 방문/검사/수정하도록합니다. 또는 DMS에서 AST를 더 편리하게 변경하는 데 도움이되도록 pattern-directed source-to-source program transformations을 C# 구문을 사용하여 직접 작성하여 적용 할 수 있습니다.

+0

IDE (예 : VisualStudio) 내부에서 실행할 수있는 빠른 스크립트를 만드는 데 간단한 도구가 필요했고 회사의 규칙에 따라 리팩토링하는 코드가 적었습니다. 그리고 지금이 관례는 너무 자주 바뀌고 있습니다. 그런 도구는 전체 프로세스의 속도를 높일 수 있습니다. – Simon

+0

"리팩터링"코드에 "간단한"도구를 사용하게 될지 의심 스럽습니다. 코드가 복잡하고 의미를 이해하고 보존해야합니다. –

관련 문제