学校のプロジェクトでは、ユーザーインターフェイス用の(おそらくXMLベースの)マークアップ言語のパーサーを実装する必要があります。入力に基づいて、さまざまなUIコンポーネント(テキストエリア、入力、パネル、ダイアログなど)を含むHTMLドキュメントを生成します。
これに使用する可能性のあるツール/ライブラリについて何か提案はありますか?(学校ではFlexとBisonを使用していますが、最新のツールを使用することは許可されています。おそらく、lexとyaccの両方の機能を備えたツールです)
学校のプロジェクトでは、ユーザーインターフェイス用の(おそらくXMLベースの)マークアップ言語のパーサーを実装する必要があります。入力に基づいて、さまざまなUIコンポーネント(テキストエリア、入力、パネル、ダイアログなど)を含むHTMLドキュメントを生成します。
これに使用する可能性のあるツール/ライブラリについて何か提案はありますか?(学校ではFlexとBisonを使用していますが、最新のツールを使用することは許可されています。おそらく、lexとyaccの両方の機能を備えたツールです)
提案されているように、入力がXMLであり、出力がHTMLである場合、それがXSLTの基本的なユースケースです。XMLの要点は、独自のパーサーを作成する必要がないことです。したがって、これが学校のプロジェクトとしてではなく、仕事の仕事として行われる場合、最初に使用する手法になります。それを変容として表現できない場合は、他の場所を探すかもしれません。
XMLを使用したくない場合は、プレーンテキスト言語用の最新のツールには、パーサー式の文法やMicrosoftMなどのDSL合成ツールが含まれます。
PEGを使用すると、lexと解析を別々に行う必要がなくなるため、文法を複雑にすることなくトークンを状況依存にすることができます(多くのトークンは多くの言語で使用されているため)。実装によっては、左右の再帰ループについて心配する必要がないことを意味します。
DSL合成ツールは、IDEベースの文法とランタイムセマンティクスを組み合わせたものです。Martin Fowlerは、彼のサイトにDSLに関する本を持っています。
しかし、変換への入力であるUI定義言語の場合、SAXインターフェイスを介してXSLTプロセッサーへの入力として機能できるXMLまたは構造のその他の標準マッピング(JSON、YAML)のいずれかを最初に試します。 。