Hatena::Groupstudyroom

OpenIDを勉強するコミットメント

2008-08-21

2: Actions

15:08 | 2: Actions  - OpenIDを勉強するコミットメント を含むブックマーク はてなブックマーク - 2: Actions  - OpenIDを勉強するコミットメント

http://dinosaur.compilertools.net/yacc/index.html

それぞれの、グラマーに対してアクションを指定することができる。

A: '('  B  ')'
{hello( 1, "abc" );}

and

 XXX : YYY  ZZZ
 { printf("a message\n");
   flag = 25;}

$ はYaccコンテキストとして使われる。

1を返すだけ。

 {  $$ = 1;  }

$1,$2... という変数で、値を取ることが出来る。以下のような式の場合こんなかんじ。

 A : B  C  D ;
 
 $1 = B
 $2 = C
 $3 = D

デフォルトは $1 ドス。


間にアクションもいれれるよ。

A :B
{  $$ = 1;  }
C
 {   x = $2;   y = $3;  }
;
トラックバック - http://studyroom.g.hatena.ne.jp/tomyhero/20080821