정수, 부동 소수점, 연산자, 함수, 변수 및 괄호로 구성된 문자열을 토큰 화하고 싶습니다.복잡한 수학 표현을위한 고급 토크 나이저
현재 상태 :
String infix = 4*x+5.2024*(Log(x,y)^z)-300.12
원하는 상태 :
String tokBuf[0]=4
String tokBuf[1]=*
String tokBuf[2]=x
String tokBuf[3]=+
String tokBuf[4]=5.2024
String tokBuf[5]=*
String tokBuf[6]=(
String tokBuf[7]=Log
String tokBuf[8]=(
String tokBuf[9]=x
String tokBuf[10]=,
String tokBuf[11]=y
String tokBuf[12]=)
String tokBuf[13]=^
String tokBuf[14]=z
String tokBuf[15]=)
String tokBuf[16]=-
String tokBuf[17]=300.12
모든 팁과 솔루션을 주시면 감사하겠습니다 다음의 예는 문제의 본질을 밝게한다. 알고리즘
사용 무언가 (http://www.antlr.org/) 요의 문법을 정의하는 ur 표현식을 생성하고 파서를 생성합니다. –
yacc이 좋은 도구입니다. 대부분 배열보다는 기호의 그래프가 필요합니다. –
표현식 평가기를 만들려면 전에 GNU libmatheval 또는 muParse를 시도하십시오. –