ANTLR パーサーとツリー文法が正常に動作しています。ユーザーに JTextarea に文法を入力してもらいたい (GUI 開発に Java swing を使用している)。文法が JTextarea に入ったら、ユーザーがボタンを押す (実行) と、文法の結果 (アクション) が別のテキスト領域に表示されます。
簡単にするために、最も単純な HelloWorld ANTLR 文法 (パーサーとツリー文法) を使用して、Java Swing gui の JTextarea から ANTLR 文法を実行する方法を示すことができます。
ANTLR を JavaSwing GUI に関連付けるものや、Java Swing GUI の JTextArea から ANTLR Grammar を実行する方法を示すものは見つかりませんでした。
考え/提案/簡単な例/デモンストレーションはありますか?
EDIT-Solution
以下は、シミュレート ボタンを処理する GUI クラスのコードの一部です。ユーザーは JTextarea に ANTLR 文法を入力します。
private void addReRunButtonListener() {
btnReRun.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
try {
//for Random Simulation
if(rdbtnRandomWithSeed.isSelected())
{
String line = "";
String nl ;
Process p = Runtime.getRuntime().exec("java org.antlr.Tool protocol.g protocolWalker.g");
p.waitFor();
p = Runtime.getRuntime().exec("javac protocolLexer.java protocolParser.java protocolWalker.java SimulatorRandom.java");
p.waitFor();
p = Runtime.getRuntime().exec("java RandomSimulator");
OutputStreamWriter stdin = new OutputStreamWriter(p.getOutputStream ());
stdin.write(simAlgoEdit.getText()+"\n");
stdin.close();
BufferedReader bri = new BufferedReader
(new InputStreamReader(p.getInputStream()));
nl = bri.readLine();
while (nl != null) {
line = line + nl + "\n";
nl = bri.readLine();
}
bri.close();
System.out.println("Done.");
simGraphicsArea.setText(line);
graphicsArea.setText(line);
}
上記のコードも出力を取得し、GUI の別の JTextarea に挿入します。@trashgod: ご協力ありがとうございます。
ありがとうございました