Ruby on Railsのインストール
興味再燃。以前購入した入門書は訳がわからずに挫折したので、2ちゃんのRailsスレで最新のRailsに対応?していると紹介されていた入門書を購入。
Head First Rails ―頭とからだで覚えるRailsの基本
- 作者: David Griffiths,松田明,児島修
- 出版社/メーカー: オライリージャパン
- 発売日: 2010/01/18
- メディア: 大型本
- 購入: 11人 クリック: 273回
- この商品を含むブログ (31件) を見る
この本には既にRailsがインストール済みの状態から書かれていたので、インストール方法をメモ。環境はWindows XPです。
続きを読むRuby 1.9で書いたスクリプトのexe化
Rubyでコンパイラを作ってみる その2
関数を定義して使えるように拡張しました。
関数の引数とローカル変数はスタック上に置くので、それをアクセスする基準となるベースポインタと、関連するオペコードを追加。
リファレンスマニュアル(chm版)の開き方
こちらで月一で更新されているマニュアルのchm版について、内容が表示されるはずの右ペインに
「Web ページへのナビゲーションは取り消されました」
と表示されて使用できない。何度かトライしたのですが、どうやらセキュリティ関係のブロックを外す処理が必要みたい。手順は以下のとおり
- ファイルのプロパティを開く
- 「全般」タブの一番したの「ブロックの解除」をクリック
- そのままOKでプロパティを閉じる
Web版はこちら
http://doc.okkez.net/
raccを試す その2
マニュアルページを参考にif文を追加してみる。
if expr [then] statement [else statement] end
追加したstatementには現状if文と式(expr)しか存在しない。
if文の文法は上記のようにトークンthenと、else節を省略可能にしてendで終了。条件式は0以外を真とする。else節がない場合はnilを返す、これに合わせてfooterの記述もnilが帰ったら文字列"nil"を表示するように変更。
? if 1 then 10 else 100 end # 省略なしの文法 => 10 ? if 0 then 10 else 100 end => 100 ? if 1 10 else 100 end # thenを省略 => 10 ? if 0 10 else 100 end => 100 ? if 1 10 end # else節を省略 => 10 ? if 0 10 end => nil
上手く行ってるみたいなのだけれども、生成の際に1件conflictが発生した
state 14 contains 1 shift/reduce conflicts -------- Grammar -------- rule 1 target: statement rule 2 target: rule 3 statement: if_stmt rule 4 statement: expr rule 5 if_stmt: IF expr then statement else END rule 6 then: THEN rule 7 then: rule 8 else: ELSE statement rule 9 else: rule 10 expr: expr "+" expr rule 11 expr: expr "-" expr rule 12 expr: expr "*" expr rule 13 expr: expr "/" expr rule 14 expr: "(" expr ")" rule 15 expr: "-" NUMBER rule 16 expr: NUMBER rule 17 expr: IDENT "=" expr rule 18 expr: IDENT 中略 state 14 5) if_stmt : IF expr _ then statement else END 10) expr : expr _ "+" expr 11) expr : expr _ "-" expr 12) expr : expr _ "*" expr 13) expr : expr _ "/" expr "*" shift, and go to state 15 "/" shift, and go to state 16 "+" shift, and go to state 17 "-" shift, and go to state 18 "-" [reduce using rule 7 (then)] THEN shift, and go to state 22 $default reduce using rule 7 (then) then go to state 23
このconflictは、UMINUSの定義を消すとなくなるので、その部分に原因があるような気がします。でも、outputの出力はルール7でreduceできるよ、というもの。ルール7はthenの省略についての定義のはずなので、これが何で関係あるのかよく解からん。
続きを読む