このように構造化/カスケードされたドメイン固有言語 (DSL) を定義したい
ROOT
NAME "my dsl"
TODO
DESC "foo"
END
TODO
DESC "bar"
END
END
私の理解では、次のルールが必要です。
- ROOT および TODO オブジェクトは、キーワードで始まり、END で終わる必要があります。
- ROOT には NAME 属性が必要です。
- TODO には DESC 属性が必要です
- TODO は ROOT で 0..n 回
このようなルールセットを BNF で表現するにはどうすればよいですか?