2016-04-07 12 views
0

ANTLR4用に生成されたUCB Logo文法の表記に関する質問があります。いくつかの表記法は出てこないと思っています。誰かが明確にすることを望むなら、私は感謝します。 は、ここで私はかなり理解していない表記されている:このANLTR4表記は何を意味しますか?

WORD 
: {listDepth > 0}? ~[ \t\r\n\[\];] (~[ \t\r\n\];~] | LINE_CONTINUATION | '\\' ([ \t\[\]();~] | LINE_BREAK))* 
| {arrayDepth > 0}? ~[ \t\r\n{};] (~[ \t\r\n};~] | LINE_CONTINUATION | '\\' ([ \t{}();~] | LINE_BREAK))*; 

array 
: '{' (~('{' | '}') | array)* '}'; 

NAME 
: ~[-+*/=<> \t\r\n\[\]()":{}] (~[-+*/=<> \t\r\n\[\](){}] | LINE_CONTINUATION | '\\' [-+*/=<> \t\r\n\[\]();~{}])*; 

私は配列はそれがで始めることができることを意味し、{とレベルの任意の数を持っていますが、で終わる必要があり}と思います。 他のものは正規表現の形式ですか? あまりにも私の知識は、正規表現は、さまざまなプログラミング言語のために異なります。

私はそれを得ましたか?

答えて

1

Antlrは正規表現を行いません。同じ演算子のいくつかを実装していますが、類似点はほとんど終わりです。

WORDルールの最初のサブワード({listDepth > 0}?)は、正規表現の世界では何の関係もありません。それらはAntlrのドキュメントで定義され、TDARで詳しく説明されています。

arrayルールの理解は、基本的には正しいです。

関連する問題