0

プロジェクト作業用の新しいプログラミング言語を開発しています。html への新しい言語コンパイラー、私は現在コンパイラーに取り組んでいます。コンパイラには 3 つの段階があることを知っています。#1 トークンが言語の文法から生成される字句段階、次の段階はパーサー、そして出力です。私の質問は、文法をどのように書き始めるかです。私はそれをエッセイ形式で行うか、それとも短い文で行いますか. 役立つリソースを教えてください。私はたくさん読んだことがありますが、すべてが文法の書き方を教えているわけではないので、例を挙げていただければ. 私はPythonでコンパイラを書いており、PLYと呼ばれるlax/yaccモジュールを使用しています

例は次のとおりです。

HTML5 main{
      myHead.id = "cat";
      myTitle;
}

HEAD myHead;
TITLE myTitle = "text";

上記のコードの html での出力は次のとおりです。

<DOCTYPE>

<HTML>
   <head id="cat">
       <TITLE>text</TITLE>
   </head>

   <body>
   </body>
</HTML>
4

1 に答える 1

1

これがある種のクラス割り当てである場合は、明確化または詳細な指示を探す必要があります。あなたがやろうとしていることの詳細を教えていただければ、より具体的なガイドを提供できます。

文法の書き方の例については、Bison のマニュアルを参照してください (bison は GNU yacc に似ていますが、風変わりなものを除けば、どんな yacc にも適用できるはずです)。Python を出力する yacc/lex ツールについては知りません。bison/flex は C++ やおそらく Java に統合できますが、Python には統合できません。結果として得られるパーサーを Python に接続することは、おそらく利益よりもはるかに苦痛です。

ANTLRのように、より高レベルの (つまり、より多くのルーチン作業を行う) ツールは他にもあります。

comp.compìlers ニュースグループの FAQ を確認してください。特定のツールが紹介されているはずです。

于 2013-01-14T17:59:56.957 に答える