hakeの日記

Windows環境でプログラミングの勉強をしています。

2011-02-01から1ヶ月間の記事一覧

bison & flexメモ その6

C言語でbisonとflexを使う方法のメモ 式の構文木を作ってみる。 mainからyyparse()を呼んで入力した式の構文木を作成してそのポインタを返す。そのポインタからeval_tree()で式を評価、free_tree()で構文木の為に確保したメモリの解放を行う。構文木はNode型…

bison & flexメモ その5

C言語でbisonとflexを使う方法のメモ bison単体で使用する場合と比較して、字句解析の関数yylex()部分をflex側にまかせている。このときbisonが生成するヘッダファイルをflex側で読み込むことで、bison側で定義したトークンの種別をflex側で使用可能になる、…

bison & flexメモ その4

C言語でbisonを使う方法のメモ 基本的なフォーマットは以下、flexと同じような感じ %{ 初期Cコード %} BISON宣言 %% 構文規則 %% 他のCコード

bison & flexメモ その1

環境は、Windows XP上のMinGWで、flexのバージョンは2.5.35、bisonのバージョンは2.4.2 いきなり両者を使うとよく理解できないので、まずはC言語でflexを使う方法のメモ。基本的なフォーマットは以下 %{ 初期Cコード %} %% パターン アクション %% 他のCコー…

bison & flexメモ その2

C言語でflexを使う方法のメモ つづきファイルの入出力は、FILE*型の変数yyinとyyoutによって行われる。デフォルトではstdinとstdoutが選択されているので、これをfopen()で開いたファイルに変更することで、ファイルへの入出力が可能になる。

bison & flexメモ その3

C言語でflexを使う方法のメモ その3 スタート状態について %% 〜 %%間のどのルールを有効にするかを指定する。 %x state_name %s state_name%sまたは%xに続いて使用する状態名を記述する。 %x(排他的スタート)はその状態名が書かれたルールのみ有効になり…

MinGW+MSYSのインストール

インストール方法のメモ MinGW - Minimalist GNU for Windowsからインストールプログラムをダウンロード。現時点のファイル名はmingw-get-inst-20101030.exe。今回のインストール先はD:\MinGW ファイルを実行、言語はCとC++を選択。言語以外はとりあえず全部…