2012-02-25 9 views
1

pがIDで2がNUMの2pのような変数の前に任意の文字を入れたいと思います。私のIDは文字のみと一致しますので、そのまま使用します(IDの正規表現を変更したくないなど)。このようなことを試しましたが、うまくいきませんでした。YACC文法変数の任意の接頭辞

NUMは数字にのみ一致するため、これは機能しません。

num  ({digits}{fraction}{exponent}|"") 

が、idは動作しませんでした:私はNUMは、空の文字列を(私はこれがあなたがそれを行う方法だと思います)と一致するために正規表現を変更してみました。

var 
    : number ID; 

number: 
    : NUM 
    | '' 
    ; 

私は文法に置くことができ、空の文字列の世話をするためにはyaccでいくつかのシンボルがある推測していますが、私はわからない:私はまた、このような別のルールを導入してみました。どんな援助も感謝されるだろう。私は以上のことを考えていた

答えて

2

はとにかく、この

var 
    : NUM ID {...} 
    | ID  {...} 
; 
+0

@Iが、それはカップル分後の考え出し感謝をしてみてください。 – mihajlv

2

、これはそれを行うだろう:

var 
: ID 
| NUM ID 
;