이것은 Rust로 작성된 무손실 LUA 5.1+ 파서를 진행하는 작업입니다. 그것은 모든 의견, 공백 및 인용문 및 탈출과 같은 스타일 차이를 보존합니다.
여러 가지 미래 프로젝트에 MAB를 사용하고 싶습니다.
기부금을 환영합니다.해야 할 일이 많이 있습니다!
MAB는 Rust 1.26 안정적이고 새롭게 지원됩니다.
이미 "예제 별"시스템으로 구현 된 상당히 상당한 상당한 테스트 스위트가 있습니다. 테스트 파일 입력은 parse_examples/source 에 있습니다.
테스트 러너 ( cargo test )는이 소스 파일을 읽고, 토큰 화하고, 구문 분석하고, 마지막으로 알려진 좋은 결과 폴더 ( parse_examples/results )를 확인하여 이전의 작업과 일치하는지 확인합니다.
파서의 AST를 수정하는 변경 사항이있는 경우 해당 직렬화 된 토큰 목록 및 AST JSON 파일을 삭제하십시오. 다음에 테스트 러너를 실행하면 변경 사항과 함께 수동으로 검토 및 제출 해야하는 파일이 생성됩니다. Git의 Diff Viewer는 변경된 내용이 의도적인지 확인하는 데 도움이 될 수 있습니다.
Windows에서 개발할 때 라인 엔딩에주의하십시오. 이 저장소에는 .editorconfig 파일과 .gitattributes 파일이있어 모든 LUA 파일에 CRLF 가 아닌 LF 라인 엔딩이 있음을 보장합니다. CRLF 라인 엔딩이 구워진 예제 토큰 목록에 의해 구문 분석을 확인하면 CI가 실패하게됩니다.
이 프로젝트는 Mozilla Public License, 버전 2.0의 조건에 따라 제공됩니다. 세부 사항은 라이센스로 제공됩니다.