エスケープシーケンス

エスケープシーケンスを文法として表すにはどうしたら良いのだろう。

terminal-stringを以下の様に定義する。

terminal-string = first-quote-symbol terminal-character+ first-quote-symbol;

terminal-characterとfirst-quote-symbolに「’」を用いる。

terminal-character = ‘;

first-quote-symbol = ‘;

すると、シングルクォーテーションを含む文字列は以下のようになる。

include-single-quotation =  ”’;

これは文法として合っているが、機械処理は難しいことになる。

したがって、エスケープさせたい。

include-single-quotation = ‘\”;

エスケープシーケンスは制御文字のあとに必ずキャラクタが必要であるので、

control-symbol = \;

terminal-string = first-quote-symbol (terminal-character* (control-symbol terminal-character)* terminal-character*)? first-quote-symbol;

となるかな。

コメントを残す