タグ

yaccに関するMASSIのブックマーク (2)

  • Bison 1.28: 構文解析器のC言語インターフェイス

    URL="https://bookshelf.jp/cgi-bin/goto.cgi?file=bison-ja&node=Interface" "bison/構文解析器のC言語インターフェイス"へのコメント(無し) Bison構文解析器の正体は、yyparseという名前のCの関数です。 ここでは、yyparseとほかに使う必要がある関数の間の インターフェイスの方法を示します。 構文解析器の内部では、多くの`yy'または`YY'で始まるCの識別子が 使われていることに注意してください。 書で説明しているものを除いて、そのような識別子を 文法ファイルのアクションや追加のCプログラムの中で使うと、 問題が起きるでしょう。

  • プログラミング言語を作る yaccとlex

    yacc/lexとは Cでプログラミング言語の処理系を実装するのであれば、 多くの場合、yaccとlexというツールを使います。 実のところ、Cとyacc/lexで簡単なプログラミング言語を作る、というのは、 以前、「C言語ヨタ話 」で書いた「 電卓を作ってみよう」 の焼き直しになります。yaccとlexの説明もそちらに簡単に書いたので、 そちらを見てください――と言いたいところですが、 まあここでも軽く説明します。 内容的には重複、というかコピペしている部分もありますが。 プログラミング言語の処理系は、通常、以下のような手順を取ります。 字句解析 ソースプログラムを、「字句(トークン)」の並びに分割する処理です。 構文解析 トークンの並びから、解析木を構築する処理です。 この後、Cなどの機械語を吐くコンパイラや Javaのようなバイトコードを吐くコンパイラなら、 「コード生成」という処理

  • 1