포리스트의 각 노드에 같은 번호의 노드가 두 개가 없도록 할당하려고합니다. 재귀 적으로 호출하는 2 개의 함수를 사용하려고하지만 컴파일 오류가 발생합니다. 있습니다 내가 얻을 numberTree :: Int -> Tree a -> (Tree Int,Int)
numberTree n (Node c []) = (Node n [], n+1)
numberTre
좋은 모호한 Marpa 문법과 모호한 입력 문자열이 있습니다. 나는 Marpa로 문자열을 구문 분석하고 파스 포리 스트로 끝낼 수 있습니다. 나는 숲의 각 파스 트리를 반복 할 수 있습니다. 그러나 파스 포레스트를 "따라가는"방법은 무엇입니까? 구문 분석 숲이 대안은 "주류"로 다시 함께 참여 대안이 물적 분할 노드와 노드를 가질 수 있습니다 그래프의 종류
자연 언어의 맥락에서 공식 언어 처리의 사용을 탐구하고 싶습니다. 그렇게하기 위해, 다중 생성물이 동일한 문자열을 생성하는 데 사용될 수있을 때 EBNF를 유효하지 않은 것으로 표시하지 않는다는 의미에서 모호성에 강한 파서 생성기를 찾고 있습니다. 또한 중복성을 처리하는 표준 방법은 구문 분석 트리 대신 구문 분석 포리스트를 반환하는 것입니다. 나는 C#에
모호한 문법에서 가능한 모든 구문 분석 결과 (구문 분석 포리스트)를 반환하고 사용자 컨텍스트/기록 및 지식에 대해 평가하여 파스를 선택하려고합니다. 베이스. 퍼포먼스상의 이유 때문에 무한 루프를 피하기 위해 프로덕션 규칙을 적용 할 때 재귀 호출 수를 제한하기 위해 packrat 파서와 검색 제한/상한 매개 변수를 사용해야합니다. Scala와 Parser