コンパイラ指向ReVIEW

わかめ まさひろ
わかめ まさひろ @v vakame
GAE
ReVIEW
TypeScript
本書く
AngularJS
我々が目指すこと
さらに多くの人々に
ReVIEWを簡単に
使ってもらいたい
本音
僕が使いたい時に
一緒に作業する人
が使えないと困る
もっともっと
REVIEWを
良くしていきたい
本音

ちょっと
使いにくい

IDEがない
Atom
JavaScript oriented Editor

https://atom.io/
Brackets
JavaScript oriented Editor

http://brackets.io/
and Browser
JavaScript (battery included)
all your code are belong to us
この世の全ては
JavaScriptで
できている!!
Pythonとか興味ないし…
GitHub is 良い
で
Compiler as a Service
• サービスとしてのコンパイラ!
• コンパイルするだけがコンパイラの仕
事ではない!
• JSX, TypeScript, Roslyn(C#, F#…) !
• 優秀なコンパイラはIDEの実装を助ける!
• http://goo.gl/u7HwuZ
Compiler as a Service
• TypeScriptを例に取ると…!
• Vim, Emacs, Eclipse 様々な環境で!
• VisualStudio同等の機能を低コストで!
• フォーマッタも簡単に!
• http://goo.gl/sjYyhq
つまり
• コンパイラはコンパイルができる!
• コンパイラはASTを知っている!
• コンパイラは正しい文法を知っている
すると…?
• http://vvakame.github.io/review.js/!
• エラー報告ができる!
• 利用可能な文法を表示できる!
• 入力補完ができる!
• …脳内では!!
結論

ReVIEWもCompiler as a Service
したほうがいいと思うの…
閑話休題

少し話がマニアックな
方向に行き過ぎた…
わりとわかりやすいエラー
= サンプル
!

例(@<list>{hoge})。
!

//list[foo]{
alert("hello");
//}
[3,1] 参照先 list の hoge が見つかりません
[5,1] 引数の数に齟齬があります 期待値 2, 実際 1
記法の一覧表示
//cmd
コマンドラインのキャプチャを示します。
//cmd{
$ git clone git@github.com:vvakame/review.js.git
//}
という形式で書きます。

後から追加した本ごとの
独自記法もフォロー!
進
あかん
僕の目指すところ
Ruby版を置き換える

• 大きなこと言ったな!
辛そうなところ
• 業界知識や環境固有知識がまるで無い!
• Ruby版すごいよく出来てる…!
• preprocessor地味にきっつい…!
• でもわかめはめっちゃ使う
今日確認したいこと
• あと何がほしい?!
• Ruby版全てを実装しないとダメ?!
• やっぱダメだよなー!
• こんとりびゅーたーチョトほしい

コンパイラ指向ReVIEW