2011-10-01 6 views
2

FParsec을 기반으로하는 작은 응용 프로그램을 작성하고 있습니다..NET Compact Framework 용 FParsec를 작성하는 방법은 무엇입니까?

오늘 Compact Framework 용 버전을 만들 수있는 기회를 찾고 있습니다. 분명히 .NET CF 용 FParsec 소스를 만드는 것이 간단하지 않습니다. FParsecCS 라이브러리에는 안전하지 않은 코드와 CF에서 사용할 수없는 유형에 대한 참조가 있습니다. 즉, System.Collections.Generic.HashSet, System.Text.DecoderFallbackException 이상.

빌드 할 수있는 방법이 있는지 궁금합니다. 분명히, FParsec의 다른 버전이 출시 될 때 업데이트하기가 어려울만큼 코드를 변경하지 않으려 고합니다.

성능에 대해서는별로 신경 쓰지 않습니다. 고 성능 대신 사용할 수있는 일반 CharStream이 있으면 매우 충분합니다.

는 당신의 도움을 주셔서 감사합니다.

+0

Mono의 HashSet 구현을 사용할 수 있습니다. –

답변

3

저는 .NET CF에 대한 경험이 없으며 FParsec을 실행하려고 시도하지 않았습니다. 그러나 Silverlight 버전의 FParsec가 있습니다.이 플랫폼은 .NET CF에 대한 포트를 시작하는 좋은 출발점이 될 수 있습니다. Silverlight 버전은 "안전하지 않은"코드를 사용하지 않는 FParsec의 LOW_TRUST version을 기반으로합니다. LOW_TRUST 버전의 스트림 크기 제한이 응용 프로그램에서 문제가되지 않기를 바랍니다.

FParsec 실제로는 오류 처리에 사용하는 몇 가지 방법을 구현하는 HashSet 의존성이 아마 당신의 (a Dictionary 기준) 간단한 HashSet 유형을 소유 구현하는 것입니다 처리하는 가장 쉬운 방법. DecoderFallbackException이 지원되지 않으면 각 예외 처리기를 주석 처리하면됩니다.

HG로 변경 내용을 추적하는 경우 FParsec에 대한 업데이트를 병합해서는 안됩니다. .NET CF에 대한 변경 사항의 정도에 따라 다른 조건부 컴파일러 심볼의 기본 소스 트리에 포함 할 수도 있습니다.