2011-06-21 17 views
5

Biorąc pod uwagę Scala AST, czy istnieje sposób generowania kodu źródłowego Scala?Konwertuj Scala AST na kod źródłowy

Szukam sposobów autogenerowania źródła Scala przez analizowanie/analizowanie innych źródeł Scala. Wszelkie wskazówki będą mile widziane!

Odpowiedz

6

Z powodzeniem używam Scala-Refactoring przez Mirko Stockera do wykonania tego zadania.

Dla syntetycznie konstruujących AST, polega on mocno na istniejącym Tree DSL NSC Scala.

Mimo że kod jest trochę brudny, można znaleźć przykład użycia w moim projekcie ScalaCollider-UGens.

Mam również bardzo użyteczną klasę przez Johannes Rudolph.

0

Zobacz naszą DMS Software Reengineering Toolkit.

DMS zapewnia kompletny ekosystem do analizowania/optymalizacji/przekształcania kodu źródłowego w wielu językach. Osiąga to poprzez dostarczenie ogólnej maszyny do tych zadań jako jej podstawowych możliwości i specjalizacji tych zgodnie z jawnie dostarczonymi definicjami językowymi ("front end"). DMS ma interfejsy dla wielu języków (C, C++, C#, Java, COBOL, ...), które były używane w gniewie, i proces definiowania innych bardzo szybko.

Pracujemy nad rozszerzaniem zestawu językowego mniej więcej w sposób ciągły. DMS ma już zaimplementowane części interfejsu Scala i wiemy, jak go zakończyć w oparciu o pozostałe 30-te interfejsy, które zbudowaliśmy, ze szczególnym naciskiem na znajomość Java.

+0

"zostały użyte w gniewie"? Czy to była literówka? – Malvolio

+0

@Malvolio: to angielski idiom oznaczający "używany do prawdziwych celów" –