2012-08-26 7 views
2

필자는 항상 입력 앵커 (^)의 시작 부분이 FSA로 변환되었는지 궁금해했습니다. 줄 끝 ($)의 끝이 r/\n과 일치한다는 것을 알고 있습니다. 여기서 r은 일치하는 표현식입니다. 입력 앵커의 시작 부분은 어땠습니까? 내가 볼 수있는 유일한 해결책은 시작 조건을 사용하는 것입니다. 프로그램에서 어떻게 구현 될 수 있습니까? 그것뿐만 아니라 EOF 일치에 라인 마커 $플렉스가 라인 앵커의 시작과 어떻게 일치합니까?

답변

2

끝의 라인 마감 부호 \n 또는 \r\n가 파일의 끝에서 발견되지 않는 경우에도, \n 다릅니다.

나는 flex의 구현을 보지 않았지만 부울 플래그를 사용하여 ^$을 모두 구현했습니다. ^ 플래그는 처음에 설정되고 줄의 첫 번째 문자 다음에 false으로 재설정 된 후 다음 줄 끝 표시 문자 다음에 true 등으로 다시 설정됩니다.

+0

이렇게 구현하는 방법은 시작 조건과 비슷할까요? –

+0

@AaditMShah "시작 조건"이 무슨 뜻인지 잘 모르겠습니다. 오타와 누락 된 부분을 수정하기위한 답을 편집했습니다. – dasblinkenlight