2009-03-20 6 views
1

Groovy AST 변환을 사용하여 언어를 확장하는 방법에 대한 예를 보았습니다. here과 같이 메소드 호출 전후에 기록하십시오. 그러나이 프레임 워크를 사용하여 언어 자체의 구문을 확장 할 수 있습니까? 예를 들어, 나는 문장의 집합 구문 분석 및 AST에 다음을 변환하고 생성 할 수 무엇을 원하는 경우 :Groovy에서 AST 변환을 사용하여 구문을 확장 할 수 있습니까?

newClassKeyword C { /* something here */ } 

답변

1

AST 변환으로 Groovy의 구문을 확장 할 수는 없지만 기존 구문에 완전히 새로운 의미를 부여 할 수 있습니다. Groovy의 신택스는 매우 유연하기 때문에 꽤 멀리 할 수 ​​있습니다.

2

내가 더 멋져요 전문가는 아니지만, 그러나 나는 몇 가지에서 찾고있다 1.6 릴리스에서 나왔고 특히 관심이있는 새로운 프레임 워크는 Spock입니다. AST 변환을 사용하여 테스트를위한 전체 사양 언어를 정의하기 때문에 이것이 아마도 당신이 원하는 것일 것입니다.

Groovy 1.6의 새로운 기능을 설명하는 InfoQ has an article을 추가하는 것을 잊어 버렸습니다. Guillaume LaForge가이 기사를 썼으며 그 안에 AST에 대해 약간 설명합니다.

관련 문제