Google新言語 Noopのビルド
Googleから新言語のNoopが公開されました。
JavaVMで動作するいろいろな言語のいいとこ取り言語のようです。
http://code.google.com/p/noop/
noopはこんな感じです。
namespace arithmetic; import noop.Application; import noop.Console; class Arithmetic(Console console) implements Application { Int main(List<String> args) { Int i = 1; Int j = 2; Int k = i + j; console.println(k); return 0; } }
Noopのビルド手順です。
環境構築
Noop
http://code.google.com/p/noop/
hg clone https://noop.googlecode.com/hg/ noop
以下をinstall
※mavenとeclipseがあるという方は、Builderは読まず環境構築のmavenまで飛ばしてOKです
Buildr
gemでinstall
gem install buildr
補足ですがjrubyだとinstallが出来なかった。ローカルにbuildrのgemファイルをdownloadしてきて--local指定もNG
yone098>jruby -S gem install buildr JRuby limited openssl loaded. gem install jruby-openssl for full support. http://wiki.jruby.org/wiki/JRuby_Builtin_OpenSSL ERROR: While executing gem ... (Gem::RemoteFetcher::FetchError)
buildrのinstallが完了したら, ダウンロードしてきたbuildfileを指定してbuildr
buildr -f buildfile
これでtestまで実行されると、scalatestフォルダが作成されテスト結果ファイル(16個)が出来上がります。
Maven2
まず、pom.xmlが無いので作成します。
mvn -s init.settings.xml org.twdata.maven:maven-yamlpom-plugin:0.4.1:sync
pom.xmlが出来たら、それでOKでは無いです。
repositoryのURLが、http:#となっている為にmvnコマンド実行後のdownloadの際にヌルポで落ちます。
ですので、以下のようにpom.xmlを書き換えます。
その後
mvn eclipse:eclipse
junit4runnerがリポジトリにないためEclipse上でビルドエラーが発生します。
ですので、junit4-runnerをgithubからダウンロードしローカルリポジトリにインストールします。
mavenリポジトリは何処?と思いきや、githubにしかないところが渋いですね。
git clone git://github.com/teigen/scalatest-junit4runner.git cd scalatest-junit4runner mvn clean install
やっとここで環境が整ったわけですが、NoopAST.javaでビルドエラーが出ます。
antlrでのpackage周りのエラーです。antlrのファイルをパッケージ名にあった以下のフォルダ構成に修正します。
src/main/antlr/noop/grammar/antlr
今度は、grammarファイルへ適切なimportが書かれていない為にビルドエラー。
ですので、適切なimportをgrammerファイルに記述してあげれば、ビルドは通りそう。
ただ、膨大な量なので時間切れ。