0

HTMLを出力する独自のカスタムドメイン固有言語を作成したいと思っています。

基本的に、自分のマークアップを使用してクイズを作成できるようにしたいのですが、それをHTMLにコンパイル/生成します。例えば:

> What is your favorite color?
* Blue
* Green
* Red

出力する必要があります

<form action="" method="post">
<ul>
  <li>What is your favorite color?</li>
  <input type="radio" name="q1" answer="a" /> Blue <br />
  <input type="radio" name="q1" answer="b" /> Green <br />
  <input type="radio" name="q1" answer="c" /> Red <br />
</ul>

ANTLRはそれに似たようなことをしますが、HTML出力がないことを私は知っています。他に何か提案はありますか?

4

5 に答える 5

1

PythonLex-Yaccを使用してみることができます。私は過去にいくつかの学術実験にそれを使用しました、そしてそれはうまく働きました。

于 2009-07-26T04:15:24.100 に答える
0

ANTLRをStringTemplateと組み合わせて、 HTMLを出力できます。このラボでは、TerenceがANTLRとStringTemplateを一緒に使用する方法を示します。

于 2009-07-26T04:20:23.700 に答える
0

個人的には、この場合はantlrは必要ないと思います。これを実現するには、String.splitをいくつか使用するだけです。たとえば、「>」と「*」が予約語である場合、

String[] questions = text.split(">");
for(String question: questions){
    String[] item = question.split("*");
    System.out.println("<ul>);
    System.out.println("<li>" + item[0] + "</li>");
    for(int i = 1; i<item.length; i++){
        System.out.println("<input type=\"radio\" name=\"q1\" answer=\"" + i + "\" />" + item[i] + "<br />);
    }
    System.out.println("</ul>);
}

あなたのニーズにぴったりです。

于 2009-07-29T07:05:47.030 に答える
0

私はEclipseプロジェクトのTMFXtextを使用するのが好きです。これは非常にシンプルで、M2TXpandと組み合わせることで簡単に目標を達成できます。

于 2010-01-13T02:48:52.207 に答える
-1

XMLを生成できるツールを探す(または自分で作成する)と思います。

<question text="What is you favorite color?">
  <choice text="Blue"/>
  <choice text="Green"/>
  <choice text="Red"/>
</question>

次に、XSLTを使用してXMLをHTMLに変換します。このようにして、プレゼンテーションを構文解析から切り離します。

于 2009-07-26T04:17:59.027 に答える