Hatena::ブログ(Diary)

はけの徒然日記 このページをアンテナに追加 RSSフィード

2005 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2006 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 04 | 05 | 08 | 09 | 10 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 10 | 11 |
2011 | 01 | 02 | 03 | 04 | 11 | 12 |
2012 | 02 | 03 | 05 |
2014 | 02 | 03 | 04 | 05 | 12 |
2015 | 05 | 07 | 08 | 09 | 10 | 11 | 12 |
2016 | 01 | 02 | 04 | 05 | 08 | 09 | 11 | 12 |
2017 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 10 |
2018 | 02 | 03 | 04 | 05 |

2012-05-05(Sat)

MinGW gccでSJIS文字を扱う方法

コンパイルオプションとして-finput-charsetと-fexec-charset使えば良いらしい。gccデフォルトutf-8の様です。

ソース

#include <stdio.h>


int main(void)
{
  printf("ソース焼きそば\n");
  return 0;
}

実行結果

~/test$ gcc test.c
test.c: 関数 'main' 内:
test.c:7:10: 警告: 不明なエスケープシーケンス: '\201' [デフォルトで有効]
~/test$ ./a.exe
メ[ス焼きそば
~/test$ gcc test.c -finput-charset=CP932 -fexec-charset=CP932
~/test$ ./a.exe
ソース焼きそば

g++も同様

続きを読む

2012-05-02(Wed)

re2cメモ その2

字句解析対象の文字列ファイルから読み取る様にしてみました。

といってもre2cのソースファイル中のサンプルに既にYYFILL(n)で使用する為の関数fill()が用意されていたので基本的にそれを使用しました。一点open()とread()をそれぞれfopen(),fread()に変更しました。


続きを読む

2012-05-01(Tue)

re2cメモ その1

字句解析ツールでre2cというのがあるということを知ったので勉強メモ

テスト環境は、Windows上のMinGWで、本家サイト re2c HomeリンクからWindowsバイナリ(re2c-0.13.5-bin.zip)をダウンロードできるのでこれを使用しました。


基本の書き方は以下のとおり/*!re2c〜*/の中にマッチさせたい正規表現対応するアクション、設定などを記述し、re2cでこの部分をcのソースに変換する様です。(詳細は本家サイト re2c Homeオンラインマニュアルを参照)

設定する変数について


int scan(void){

/*!re2c

	正規表現	{アクション}

*/

}


サンプル 加減算の字句解析(test01.re)

続きを読む