2
대체 파서를 사용할 때 어떤 파서가 입력과 일치하는지 얻기위한 옵션이 있습니까?FParsec 대안 파서가 입력을 파싱하는 중
내 입력 문자열 firstPart 항상 번호 여기
{firstPart_number} {secondPart_operator_symbol} {thirdPart}
포맷
아래와 같을 수 있고, 두 번째 부분은 운영자를 파싱 대안 파서 및 thirdPart는 (번호 문자열리스트)도 대체한다. 내 차별 조합 형식의 인스턴스를 만들 수 파서에 따라내 차별 노동 조합부터
1 + 2
5 * 3
1 in {2,45,6}
는 다른 유형의 수 있습니다 입력, 내가 알고 싶은 샘플 일치 파서 입력 그래서? 내 첫 번째 부분은 동일 걸쳐 파서하지만 두 번째와 세 번째 파서이다 FParsec,이 상황을 처리하는 방법
다른 및 사용하여 해당 인스턴스화 유형에 기반|>>
전체 코드가 아닌 관련 간단한 코드 조각을 보여줄 수 있습니까? 그러면 어떻게 연결되는지 볼 수 있습니다. 대체 파서를 올리시겠습니까? 자신이 제공 한 설명만으로 코드를 그리는 것은 어렵습니다. – rmunn
내가 가지고있는 한가지 생각은 각 대안 파서가'| >>'연산자로 싸여있을 수 있다는 것입니다. 'pOperator = (pstr "*"| >> OpTimes) <|> (pstr "+"| >> OpPlus) <|> (pstr "in"| >> OpIn)'과 같은 것입니다. 그러나 나는 더 좋은 제안을 줄 수 있도록 당신의 코드를보고 싶습니다. – rmunn