nginx
ドキュメントとして使用するダイアグラムを動的に生成するために、構成ファイルを解析する方法を見つけたいと考えています。
構成ファイルの構文は次のnginx
ようになります (この例は、簡潔にするために意図的に基本的なものになっています。私が管理する構成ファイルは、実際にはもっと複雑です)。
location / {
if (GET) {
echo_exec @memcache;
}
if (POST) {
echo_exec @application;
}
}
location @memcache {
# try to get content from cache
if (notfound) {
# fallback to application
echo_exec @application;
}
}
location @application {
# forwarding request to application
}
そして、このような図を生成したいと思います (マウスをプロセスボックスの上に移動すると、どのディレクティブが呼び出されているかのコメントが表示されます...):
私の知る限り、nginx
構成ファイルの構文はカスタムです。ソース内src/core/ngx_conf_file.c
に次のようなパーサーを見つけることができました。
case ';':
case '{':
if (cf->args->nelts == 0) {
ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
"unexpected \"%c\"", ch);
return NGX_ERROR;
}
if (ch == '{') {
return NGX_CONF_BLOCK_START;
}
return NGX_OK;
残念ながら、私は無知なC
ので、そのコードを再利用する方法がわかりません。
nginx
構成ファイルの構文が、必要に応じて再利用および微調整できるパーサーが既に存在する別の既知の構文に近いかどうか知っていますか?