2011-11-24 1 views
5

AST를 JavaScript 대신 CoffeeScript로 되돌릴 수 있습니까? 내가 작업중인 프로젝트는 기본적으로 모든 CoffeeScript를 AST로 변환하고 AST를 분석 한 다음 AST의 일부를 다시 CoffeeScript로 변환해야합니다. 전 변환 코드가 원래 코드와 관련하여 '손실'이라고 생각하지만 괜찮습니다.CoffeeScript AST를 JavaScript 대신 CoffeeScript로 컴파일하려면 어떻게해야합니까?

JavaScript로 컴파일 한 다음 CoffeeScript로 다시 컴파일하지 않아도됩니다.

답변

4

참조 round_trip.coffee.

+0

이것은 유망 해 보입니다! 나는 여기에 내 머리를 조금 넘어 ... 어떻게 (브라우저 환경에서) AST 부분을 입력하고 coffeescript 코드를 다시받을 수 있습니까? 그게 가능한가? 감사! – gkz

3

가능하지만 Coffeescript의 소스 코드로 게임해야합니다. Coffeescript가 토큰 화하는 방식에 익숙해 져야합니다. 그런 다음 토큰을 AST로 변환하는 방법에 대해 알아야합니다. 문제의 소스 코드는 Github의 coffee-script/src에 있습니다.

coffee-script/src/nodes.coffee 파일을 보면 각각 자신의 컴파일 기능 (예 : compile(), compileNode() 등)이있는 일련의 노드 하위 클래스가 표시됩니다. 트리가 자바 스크립트 코드로 변환되는 방법을 정의합니다. 대신 Coffeescript 코드를 생성하려면 프로젝트의 사용자 지정 포크에서 모든 코드를 무시해야합니다.

나는 모든 경우에 적용되지 않지만, 그것은 시작의 : CoffeeCoffee 프로젝트 (나는 저자 해요)에