以前、Study CというC言語インタープリタを作成したので、バッカス表記からパーサを作るのは簡単なのですが、この定義を見ていると本当に正しいのか疑問が出てきます。
たとえば、小カッコ'(' ')'が使用されている定義を見てみると
location ::= <absolute_location> | <feature_name> | <functional_operator>(<location_list>)
だけしか見つけることができません。
しかし、同ページには、「(122.133)..(204.221)」と言った例が載っています。
その他にも幾つか不明の点があり、WEBで調べたりしてLocationパーサを作成しました。
まだ、あまりテストしていませんが、CGIから解析プログラムを呼び出せるようにしたので複雑なLocationがありましたら入力してみてください。
ログを見てエラーになってしまうようなものがあったら修正しておきます。
Location解析CGI