注釈付きでマークされた文字列の解析 #7

生成規則が書けたので後は実際のコードを書いてみるだけだったのだが、大きな問題があった。
終端記号<string-except-special><string-except-parenthesis>は字句解析器から供給することになる。
ところが、字句解析器では与えられた入力に含まれる部分文字列をどちらの記号として返せばいいか分からないのだ。
構文解析器での解析の文脈を字句解析器が知っていないと、返すべき文字列にコロンが含まれてもいいのかどうかが決定できない。
つまり、構文解析段階での生成規則に問題があるわけではない。
受容されることが期待される正当な終端記号列が与えられれば開始記号まで還元できる。
問題は入力文字列から終端記号列への変換、つまり字句解析段階で次の段階である構文解析の情報が必要になることである。
部分文字列をどちらの終端記号とするかを決める方法を検討しないといけない。