문제

수학적 표현식을 구문 분석 할 수있는 C#에서 사용할 수있는 구축 된 파서가 있습니까?

커널 자체를 사용하여 표현식을 구문 분석하고 .NET/링크를 사용하여 트리 구조를 검색 할 수 있다는 것을 알고 있습니다. 그러나 커널에 의존하지 않는 것을 찾고 있습니다.

도움이 되었습니까?

해결책

나의 MatheClipse-Parser 모듈 자바의 파서를 구현하여 수학적 표현의 큰 부분 집합을 구문 분석 할 수 있습니다. 사용법은 readme.md 페이지를 참조하십시오. 파서를 C#로 포트 할 수 있습니까?

다른 팁

나는 Wolfram Research 계약에 따라 300 줄의 OCAML 코드로 수학 파서를 썼는데 문법이 있기 때문에 매우 쉬운 것으로 나타났습니다. 그들의 문학에 명확하게 기록되어 있습니다 그리고 Mathematica 자체를 가지고 놀면 모든 모호성이 쉽게 찾을 수 있습니다.

Mathematica 문법은 잘 기록되어 있지 않습니다. 그러나 afaik, 그것은 lalr (1)이고 아마도 ll (1); Bracketed /Tagged Syntax의 구문은 Parser에게 LISP 및 XML과 같이 다음에 기대할 내용에 대한 완전한 단서를 제공합니다.

그만큼 DMS 소프트웨어 리엔지니어링 툴킷 실제 작업에 사용 된 수학 문법이 있습니다. 여기에는 순수한 표현 형태뿐만 아니라 MMA 프로그램이 포함됩니다.

C#에서 하나를 원하기 때문에 아마도 당신에게 도움이되지 않을 것입니다.

당신이 커널에 접근 할 수 있다면, 나는 그것을 고수 할 것입니다.

나는 그런 것이 이미 존재한다고 생각하지 않습니다 (나는 그것에 대해 알고 싶습니다). 그러나 Mathematica 내에서 기능을 적용 할 수있는 것이 유용 할 수 있습니다. FullForm LISP에서 S- 표현과 같은 종류의 표현과 구문 분석하기 쉬운 것을 얻습니다. 예를 들어,

FullForm[a+b*c]

수율

Plus[a, Times[b,c]]

그것은 모든 수학적 표현의 기본 표현이며 구문 분석하기에 간단해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top