要約:自分の言語(文法チェックが除外されているコードの領域)に左右のマージンを設定したいと思います。
背景: xtextを使用して、優れたCOBOLエディターを作成しようとしています。これまでのところ、文法を終えて、余白とコメントの問題に遭遇しました。
文法内に含めることができる左マージン:'\ n'の後から6まで!'\n'文字。
しかし、それは私の問題を解決していません。SLCommentは、左から7番目の位置にある「*」から始まります。'\ n''*'->'\ n'ルールを使用すると、各行の最初の6文字をなんらかの方法で除外すると、それをキャッチできます。
'*'->'\ n'のままにして、位置チェックを委任して検証することはできません。これは、もちろん'*'を使用する乗算ルールが台無しになっているためです。文法マージンルールの直後にコメントルールを配置することも解決策ではありません。そうすると、コードの最初の行内でマージンをキャッチできないためです。
また、文法規則を使用して右マージンの問題(たとえば、78の位置の後の領域を除外する)を解決しないことも知っています。
xtextがチェックしているテキストに干渉する方法があると思いますが、解決策を見つけたり、これを達成する方法を示唆したりしていません。
また、これが何らかの方法で前処理によって行われるかどうかを調べようとしましたが、その方法のヒントも見つかりませんでした。
または、2つの文法を同時に使用することも可能です。余分なものは各行を取得し、マージンを非表示にしますか?
私が直面している問題とこれまでに試したことを説明できたと思います。