공백과 주석
일반적으로 AST에는 공백, 줄 종결 자 및 주석이 포함되지 않습니다.
의미있는 형식
대부분의 경우 이것이 긍정적 인 것 (성전 형식화를 제거함)이며 원본 코드의 서식이 여러 줄 문자열 리터럴 및 "코드 단락"(예 : 빈 줄이있는 문장).
컴파일 할 수없는 코드
많은 파서는 구문 누락에 매우 탄력적이지만, 오류가있는 코드는 종종 매우 이상한 구문 트리를 생성하는데, 이는 사용자가 파일을 다시로드 할 때까지 훌륭하고 멋집니다. IDE에서 실수를 한 다음 갑자기 전체 파일에 "squigglies"가 있습니까? 다른 언어로 어떻게 다시로드 될지 상상해보십시오.
어쩌면 사용자는 구문 분석 할 수없는 코드를 커밋하지 않지만 로컬로 저장해야 할 수도 있습니다.
완벽한 두 언어는 없습니다
다른 사람들이 지적했듯이 완벽한 기능 패리티를 가진 두 개의 언어는 거의 없습니다. 내가 생각할 수있는 가장 가까운 것은 VB 및 C # 또는 JavaScript 및 CoffeeScript이지만 VB에도 C #과 동등한 기능이없는 XML 리터럴과 같은 기능이 있으며 JavaScript에서 CoffeeScript로 변환하면 많은 JavaScript 리터럴이 발생할 수 있습니다.
개인 경험 :
필자가 작성한 소프트웨어 응용 프로그램에서는 실제로 사용자가 백그라운드에서 JS로 변환되는 "일반 영어"식을 입력해야하므로 실제로이 작업을 수행해야합니다. 우리는 JS 버전 만 저장하는 것을 고려했지만 안정적으로로드 및 언로드되도록 허용 할 수있는 방법이 거의 없었기 때문에 사용자 텍스트와 JS 버전 및 "일반 영어" "버전이 완벽하게 파싱되었습니다.