11

Xtextを使用して、セマンティック空白を含む言語を解析するにはどうすればよいですか?CoffeeScriptの文法を書き込もうとしていますが、これに関する適切なドキュメントが見つかりません。

4

4 に答える 4

17

これは、XTextの空白に敏感な言語の例です。

于 2011-09-13T08:59:13.723 に答える
4

私の知る限り、できません。

Python のような言語を解析する場合は、lexer を発行してトークンを発行する必要がありINDENTますDEDENTterminalそのためには、入力の次の文字の現在の行内位置が 0 (行の先頭) に等しいかどうかを最初にチェックするレクサー規則 (Xtext の規則) 内でサポートされるセマンティック述語が必要です。および' 'または'\t'です。

しかし、ドキュメントを参照すると、現時点でこれが Xtext でサポートされているとは思えません。Xtext 2.0 以降、生成規則 ( 6.2.8. 構文述​​語 を参照) では意味述語のサポート追加されましたが、終端規則ではサポートされていません。

Xtext でこれを行う唯一の方法は、字句解析器に終端スペースと改行を生成させることですが、これでは生成規則が完全に混乱してしまいます。

Java(およびJava指向のパーサージェネレーター)を使用してそのような言語を解析したい場合は、そのようなトークンを非常に簡単に発行できるANTLRをお勧めしますしかし、Eclipse との統合に熱心であれば、Xtext を使用してこれを行う方法がわかりません。申し訳ありません。INDENTDEDENT

于 2011-08-26T19:22:14.197 に答える