1

私は今日これをantlr文法で見ましたが、それが何を意味するのかわかりません。グーグルが文字を検索させてくれるといいのですが...

resultList:(STAR | attributeList |)-> ^(RESULT attributeList?STAR?);

2番目の「|」に注意してください キャラクターには右側の要素がありませんか?どういう意味ですか?

ありがとう、ディーン

4

1 に答える 1

2

それは単に、何にも一致しないことを意味します。次の少し冗長なルールは、まったく同じことを行います。

resultList
 : STAR          -> ^(RESULT STAR)
 | attributeList -> ^(RESULT attributeList)
 | /* nothing */ -> RESULT
 ;

attributeList上記のバージョンはより明確であり、オプションの子ノードが 2 つないため、後で評価するのも簡単になるとSTAR思います。それらの存在を確認する必要があります。

于 2012-07-07T05:19:58.100 に答える