bison/flex を使用して単純な xml パーサーを作成したいと考えています。検証、コメント、引数のみは必要ありません<tag>value</tag>
。値は数値、文字列、またはその他のいずれか<tag>value</tag>
です。
たとえば、次のようになります。
<div>
<mul>
<num>20</num>
<add>
<num>1</num>
<num>5</num>
</add>
</mul>
<id>test</id>
</div>
それが役に立てば、発生する可能性のあるすべてのタグの名前を知っています。特定のタグで保持できるサブタグの数を知っています。そのようなことをするバイソンパーサーを作成することは可能ですか:
- new Tag("num", 1) // tag1
- new Tag("num", 5) // tag2
- new Tag("add", tag1, tag2) // tag3
- new Tag("num", 20) // tag4
- new Tag("mul", tag4, tag3)
...
- root = top_tag
タグとサブタグの数:
- 数値: 1 (値のみ)
- str: 1 (値のみ)
- 追加 | サブ | サブ | ムル | div: 2 (num | str | タグ、num | str | タグ)
上記のような AST を作成するための文法を教えていただけませんか?