두 언어에 공통된 문자열이 있는지 테스트하고 싶습니다. 이 두 언어는 아래에서 설명하는 정규 언어의 하위 집합에서 가져온 것으로, 두 언어 모두에 문자열이 있는지 여부 만 알아야 예제 문자열을 생성 할 수 있습니다.두 개의 일반 언어의 교차 검사
언어가
/foo/**/bar/*.baz
**
경기는 0 개 이상의 문자 및 *
일치 /
하지 않은 0 개 이상의 문자, 모두 같은 글로브와 같은 문자열로 지정 다른 문자는 리터럴입니다.
아이디어가 있으십니까?
덕분에, 마이크
편집 : 나는 잘 수행 할 것으로 보인다 뭔가를 구현하지만, 정확성 증명을 시도 아직
. 당신은 두 언어의 source 및 unit tests
수표를 작성하는 데 사용할 언어는 무엇입니까? 아마도 이것을위한 테스트 베드를 작성해야 할 것입니다. 상당히 완전한 테스트 베드를 게시 할 수 있다면 도움이 될 것입니다. –
JS에서 실행해야합니다. 물론 테스트 베드를 작성해야합니다. 몇 가지 트릭을 수행하여 효율적으로 교차를 계산할 수있는 유용한 하위 세트를 발견했습니다. 유용한 서브셋은 * 및 **가 시작/직후에 만 나타날 수 있고 /는 /에 인접 할 수없는 위치입니다. 즉 * foo *가 boo * baz와 일치 할 수 있는지 걱정할 필요가 없다는 것을 의미합니다. * 나 **를 항상 접미사 검사로 바꿀 수 있기 때문에 역 추적을해야하지만 어리석은 양은 아닙니다. –