2016-06-24 10 views
0

Rascalで大文字と小文字を区別しない方法でキーワードを予約する方法を知っている人はいますか?Rascalでcase-insensitveキーワードを使用する(回避策)

GitHub(https://github.com/usethesource/rascal/issues/968)で報告されている#968の問題のため、単引用符は使用できません。この問題はおそらく解決されます。私は現在、キーワードが大文字と小文字を区別しないで、誰かがランダムにカメルケースを適用したり、キーワードですべての大文字を使用したコードを分析しようとしている言語を使っていますが、回避策を探しています。今のところ私は3つの方法で各キーワードを定義しています。 camelcaseの適用に間違いがあるので(GroupByGroupはCamelcaseのGroupByGroupであったはずのGroupbyGroupのように)、私はさらにさまざまな方法でキーワードを再定義する必要があります。したがって、私は誰かがより良い回避策を知っている(またはこの問題を明らかに解決できる)ことを望んでいました。

答えて

1

次の文法は自動的'abc'

lexical CaseInsensitive = 'abc'; 

そうのような何を意味するかを定義するために拡張されて:あなたは、あなたの文法のためだけでなく、自分でそれを行うことができ

lexical CaseInsensitive = 'abc'; 
lexical 'abc' = [aA][bB][cC]; 

が、それは変更されません曖昧さ回避の意味論。 \という表記法は、文脈自由言語からまだ[aA][bB][cC]によって生成された正規言語を引くことはありません。実装されていません。

適切な一時的な回避策は、文法が曖昧なままにしておき、正しいツリーをフィルタリングするためにいたずらなコードを使用することです。

+0

返信いただきありがとうございます。完璧な状況ではありませんが、回避策として考慮すべきいくつかの有用なオプションはあります。 –

+0

この機能を追加する必要があります。コードにはいくつかのTODOがあります。 – jurgenv

関連する問題