コンテキストキーワードの問題点
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/09/21 22:49 UTC 版)
「予約語」の記事における「コンテキストキーワードの問題点」の解説
文脈によってキーワードか否かが決まるので正規表現などでは判断しがたいこともあり、テキストエディタのシンタックスハイライトを正確に行うのが困難なこともある。しかし、パーサの設計次第ではあるが統合開発環境などでは言語処理系自体のパーサを利用するなどして構文解析を行って実現する、という手もある。 パーサ(構文規則)が複雑になる場合もある。 他のスコープの変数やクラスメンバなどを使用する際に、新しい構文の中でも識別子として利用しないといけない場合があり、コンテキストキーワードだけでは回避できない(以下のC#によるコード例を参照)。 public class MyClass {private string value; // value は setter でのみ使われるコンテキストキーワードなので、ここでは衝突しない。public string Value {get { return value; } // value は setter でのみ使われるコンテキストキーワードなので、ここでは衝突しない。set { value = value; } // フィールド MyClass.value への代入ではなく、パラメータ value への自己代入となる。//set { this.value = value; } // フィールドへの代入とするには、this による修飾が必要。}}var obj = new MyClass();obj.Value = "hoge";System.Console.WriteLine("Value = \"{0}\"", obj.Value);
※この「コンテキストキーワードの問題点」の解説は、「予約語」の解説の一部です。
「コンテキストキーワードの問題点」を含む「予約語」の記事については、「予約語」の概要を参照ください。
- コンテキストキーワードの問題点のページへのリンク