문제

먼저 문제를 설명하고 라이브러리 측면에서 현재보고있는 내용을 설명하겠습니다.

내 응용 프로그램에는 항상 사용할 수있는 변수 세트가 있습니다. 예를 들어, Total_items, 가격, 계약 등 (약 15 개가 있음). 응용 프로그램의 클라이언트는 이러한 변수를 사용하여 특정 계산을 수행하고 표시하려고합니다. 지금까지 나는 이러한 계산을 앱에 지속적으로 추가하고 있습니다. 그것은 엉덩이의 고통이며, 사용자가 응용 프로그램이 구문 분석하고 계산할 수있는 공식 세트를 지정할 수있는 템플릿을 만들어보다 일반적으로 만들고 싶습니다.

다음은 다음과 같습니다.

total_cost = CONTRACTS*PRICE*TOTAL_ITEMS

따라서 사용자가 템플릿 파일에서 정의 할 수 있도록 이와 비슷한 일을하고 싶습니다.

total_cost = CONTRACTS*PRICE*TOTAL_ITEMS 그리고 화면과 같은 일부 메타 날짜는 표시됩니다. 따라서 화면으로 공식을 지정합니다. 그리고 파일에는이 특성의 많은 공식이 포함됩니다.

지금은 두 가지 천칭 자리를보고 있습니다. 영혼 그리고 수학

누구 든지이 작업에 더 나은 것이 무엇인지, 참조, 예제, 링크를 추천 할 수 있습니까?

질문이 불분명한지 알려 주시면 더 명확히하려고합니다.

감사,

사샤

도움이 되었습니까?

해결책

고정 된 수의 변수가있는 경우 파서를 호출하는 데 약간 과잉 일 수 있습니다. 정신은 시원하고 프로젝트에서 그것을 사용하고 싶었습니다.

나는 아마도 문자열을 토큰 화하고 이름으로 키를 키우는 변수의 맵을 만들 것입니다 (모든 변수가 ints라고 가정).

map<const char*,int*> vars;
vars["CONTRACTS"] = &contracts;
...

그런 다음 간단한 포스트 픽스 계산기 기능을 사용하여 실제 수학을 수행하십시오.

편집하다:

Matheval을 보면, 당신이 원하는 것을 정확하게하는 것 같습니다. 변수를 설정하고 이러한 변수를 사용하여 수학적 함수를 평가합니다. 왜 구문 파서 수준에서 솔루션을 만들고 싶은지 잘 모르겠습니다. Matheval이 충족하지 못하는 요구 사항이 있습니까?

다른 팁

간단한 파서를 생성하기가 너무 어렵지 않아야합니다. YACC 그리고 바이슨 코드에 통합하십시오.

나는 Matheval에 대해 잘 모르겠지만 Boost :: Spirit은 당신을 위해 그것을 매우 효율적으로 할 수 있습니다 : 거기.

템플릿 Metaprogramming에있는 경우 조사를 원할 수 있습니다. 부스트 :: 프로토, 그러나 그러나 그것은 ~ 할 것이다 시간을내어 사용하기 시작하십시오.

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