エスケープシーケンスを文法として表すにはどうしたら良いのだろう。
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;
となるかな。