約 2,411,911 件
https://w.atwiki.jp/bambooflow/pages/176.html
字句解析ツールre2c 字句解析ツールre2cはじめに re2cを選択する理由 ダウンロード 記述サンプル 参考リンク はじめに 字句解析ツールの代表といえば、lex、flexだと思いますが、いまいちつかいづらいと感じていました。 ほかにないかと探していたら、re2cというものを見つけました。 re2cを調べるとあまり載っていないので、ここにまとめます。 re2cを選択する理由 re2cは次の特徴があります。 処理が高速である 出力コードはクリーンであり、ランタイムを必要としない ASCIIからEBCDICへのクロスコンパイルやワイド文字(UCS-2)やUTF-32もサポートする 正規表現をgoto文に変換する re2cは、半分手設計で、半分自動生成という感じ。 出力するコードは、ツール依存はなく、クリーンなものです。 CもしくはC++といった限定はなく、どちらでも適した記述に合わせることができます。 速度面でも優秀のようです。 はじめから手書きで書くよりも効率的。 goto文は、多くの人に嫌われる記述だと思いますが、私はむやみに嫌う必要はないと思っています。適切な場所で効率的にgoto文を使うことはコードの読みやすさを向上させます。 re2cは、固定の正規表現マッチングを行うには、軽量で最適なツールなのではないかと思います。 ダウンロード http //sourceforge.net/projects/re2c/ おおよそのLinuxでは、yumもしくはapt-getでインストールできるかと。 チェック % yum search re2c または、 % apt-cache search re2c インストール # yum install re2c または、 # apt-get install re2c 記述サンプル サンプル1 サンプル2 サンプル3 正規表現 参考リンク http //re2c.org/ - 公式サイト http //re2c.org/manual.html
https://w.atwiki.jp/bambooflow/pages/266.html
re2cの始めかた re2cの始めかたサンプルコード"Hello World" コンパイル 結果 説明 re2cを始めるには、小さいプログラムだと理解が早いと思います。 ここでは、"Hello,World"を字句解析するプログラムを用意しました。 文字もしくは文字列パタンに1対1で対応した番号を返す処理を行います。 サンプルコード"Hello World" hello.re #include stdio.h #include stdlib.h enum { TOKEN_HELLO = 1, TOKEN_WORLD = 2, TOKEN_COMMA = 3, TOKEN_ERR = -1 }; char* yyin; char* yymarker; int yylex() { /*!re2c re2c define YYCTYPE = "char"; re2c define YYCURSOR = yyin; re2c define YYMARKER = yymarker; re2c yyfill enable = 0; re2c indent top = 1; "Hello" { return TOKEN_HELLO; } "World" { return TOKEN_WORLD; } "," { return TOKEN_COMMA; } [^] { return TOKEN_ERR; } */ } int main( int argc, char* argv[] ) { char* pBuf = "Hello,World"; yyin = pBuf; printf( "str = %s\n", pBuf ); printf( "yylex = %d\n", yylex() ); printf( "yylex = %d\n", yylex() ); printf( "yylex = %d\n", yylex() ); printf( "yylex = %d\n", yylex() ); printf( "yylex = %d\n", yylex() ); return 0; } コンパイル re2c -o hello.cpp hello.re g++ -o run.x hello.cpp 最適化 re2c -is -o hello.cpp hello.re -i #lineを表示しません。 -s switch文の代わりにをネストしたif文を吐き出します。 コードは最適化されます。(人には読みづらくなります) 結果 実行 ./run.x str = Hello,World yylex = 1 yylex = 3 yylex = 2 yylex = -1 yylex = -1 説明 re2cの変換は、/*!re2cから*/で囲まれた部分が対象となります。 /*!re2c この部分が変換対象 */ 最低限、次が必要です。 re2c define YYCTYPE = "char"; re2c define YYCURSOR = yyin; re2c define YYMARKER = yymarker; re2c yyfill enable = 0; YYCTYPEには、文字型を指定します。普通は"char"もしくは"unsigned char"になります。 YYCURSORには、解析する文字列の先頭ポインタを示す変数名を指定します。 YYMARKERには、解析中に現在の位置を示すポインタ変数を指定します。 yyfill enable=0とすることで、バッファに充填する関数を必要としなくなります。大きなソースコードの場合は、これを有効(1)にし、fill関数を用意することになります。
https://w.atwiki.jp/bambooflow/pages/267.html
サンプル3 サンプル3記述 結果 説明 ここでは、字句解析をクラスとして生成するようにしてみました。 簡単なC記述をターゲットとしています。 サンプル「Hello2」 記述 hello2.re #include cstdio #include cstdlib //#include cstring #include cassert #include fstream #include iostream //-------------------------- enum { TOKEN_ERR = -1, TOKEN_EOF = 0, TOKEN_SEMI = 10, TOKEN_INT, TOKEN_VOID, TOKEN_RETURN, TOKEN_LPALEN, TOKEN_RPALEN, TOKEN_LCURLY, TOKEN_RCURLY, TOKEN_ASSIGN, TOKEN_ADD, TOKEN_IDENT, TOKEN_NUM, }; class Scanner { private std ifstream ifs; char* m_buffer; char* m_cursor; char* m_limit; char* m_token; char* m_marker; int m_buffer_size; int m_lineno; public Scanner( const std string path, int init_size=1024 ) m_buffer(0) , m_cursor(0) , m_limit(0) , m_token(0) , m_marker(0) , m_buffer_size(init_size) , m_lineno(1) { m_buffer = new char[m_buffer_size]; ifs.open( path.c_str(), std ios in ); if (!ifs) { std cerr "can t not open file" std endl; exit( 1 ); } m_cursor = m_limit = m_token = m_marker = m_buffer; } ~Scanner() { ifs.close(); delete [] m_buffer; } bool fill(int n) { // EOF判定 if (ifs.eof()) { if ((m_limit-m_cursor) = 0) return false; } int restSize = m_limit-m_token; if (restSize+n = m_buffer_size) { // バッファサイズが足りないため拡張する m_buffer_size *= 2; char* newBuffer = new char[m_buffer_size]; for (int i=0; i restSize; ++i) { // memcpy *(newBuffer+i) = *(m_token+i); } m_cursor = newBuffer + (m_cursor-m_token); m_token = newBuffer; m_limit = newBuffer + restSize; delete [] m_buffer; m_buffer = newBuffer; } else { // バッファに残っているデータを先頭に移動 for (int i=0; i restSize; ++i) { //memmove( m_buffer, m_token, (restSize)*sizeof(char) ); *(m_buffer+i) = *(m_token+i); } m_cursor = m_buffer + (m_cursor-m_token); m_token = m_buffer; m_limit = m_buffer+restSize; } // バッファに充填 int read_size = m_buffer_size - restSize; ifs.read( m_limit, read_size ); m_limit += ifs.gcount(); return true; } std string text() { return std string( m_token, m_token+length() ); } int length() { return (m_cursor-m_token); } int lineno() { return m_lineno; } int scan(void) { start m_token = m_cursor; /*!re2c re2c define YYCTYPE = "char"; re2c define YYCURSOR = m_cursor; re2c define YYMARKER = m_marker; re2c define YYLIMIT = m_limit; re2c define YYFILL naked = 1; re2c define YYFILL@len = #; re2c define YYFILL = "if (!fill(#)) { return TOKEN_eof; }"; re2c yyfill enable = 1; re2c indent top = 2; re2c indent string=" "; IDENT = [a-zA-Z_][a-zA-Z_0-9]*; "/*" { goto comment; } [ \t\v\f]+ { goto start; } [\r]?|[\n] { m_lineno++; goto start; } "int" { return TOKEN_INT; } "void" { return TOKEN_VOID; } "return" { return TOKEN_RETURN; } ";" { return TOKEN_SEMI; } "(" { return TOKEN_LPALEN; } ")" { return TOKEN_RPALEN; } "{" { return TOKEN_LCURLY; } "}" { return TOKEN_RCURLY; } "=" { return TOKEN_ASSIGN; } "+" { return TOKEN_ADD; } [0-9]+ { return TOKEN_NUM; } IDENT { return TOKEN_IDENT; } [\000] { return TOKEN_EOF; } . { return TOKEN_ERR; } */ comment /*!re2c "*/" { goto start; } "\n" { m_lineno++; goto comment; } . { goto comment; } */ } }; int main( int argc, char* argv[] ) { Scanner s( "func.c", 1024 ); int v; while ((v=s.scan()) 0) { printf( "scan = %3d, line=%3d, %s\n", v, s.lineno(), s.text().c_str() ); } printf( "scan = %d\n", v ); return 0; } 結果 func.c int a_0 = 100; /* function */ int func(int x) { x = x + a_0; return x; } 実行結果 scan = 11, line= 3, int scan = 20, line= 3, a_0 scan = 18, line= 3, = scan = 21, line= 3, 100 scan = 10, line= 3, ; scan = 11, line= 6, int scan = 20, line= 6, func scan = 14, line= 6, ( scan = 11, line= 6, int scan = 20, line= 6, x scan = 15, line= 6, ) scan = 16, line= 6, { scan = 20, line= 7, x scan = 18, line= 7, = scan = 20, line= 7, x scan = 19, line= 7, + scan = 20, line= 7, a_0 scan = 10, line= 7, ; scan = 13, line= 9, return scan = 20, line= 9, x scan = 10, line= 9, ; scan = 17, line= 10, } scan = 0 説明 re2c define YYCTYPE = "char"; 文字の型を指定します。大抵の場合"char"または"unsigned char"です。 re2c define YYCURSOR = m_cursor; バッファの先頭を指します。トークンを読むと、ポインタが進みます。 ここでは、トークンを読む前に一旦m_tokenにm_cursorのポインタを保存しておき、トークン読み込み後、m_tokenとm_cursorの差から1つのトークンの長さを求めています。 re2c define YYLIMIT = m_limit; バッファの文字列が詰まっている一番後ろを指します。 re2c define YYMARKER = m_marker; 得に使いませんが、宣言しないといけないようです。 re2c define YYFILL naked = 1; re2c define YYFILL@len = #; re2c define YYFILL = "if (!fill(#)) { return TOKEN_eof; }"; re2c yyfill enable = 1; バッファにある文字列が少なくなったとき(m_limit-m_cursor 任意の長さn)、バッファに文字列を充填する必要があります。ここでは充填する記述を指定します。 デフォルトでは、YYFILLに関数を指定するのですが、YYFILL naked=1とすることで、YYFILLに文字列を直接していできるようになります。 ここでは、バッファに文字列を充填するfill関数にEOF判定を返す機能を持たせるため、少し複雑になっています。 re2c indent top = 2; re2c indent string=" "; インデントを指定します。主に見栄えがよくなります。 stringのデフォルトは"\t"のようです。
https://w.atwiki.jp/bambooflow/pages/265.html
re2cで改行のカウント re2cで改行のカウントソースコード コンパイル 結果 文字列に含まれる改行をカウントするプログラム。 文字列の最後は \0 であること。 改行は、"\r", "\n", "\r\n"のいずれかを1とカウントする。 ソースコード lineCntr.re #include stdio.h #include string int lineCntr(std string buf) { int cnt = 0; char* p = const_cast char* (buf.c_str()); for (;;) /*!re2c re2c define YYCTYPE = "char"; re2c define YYCURSOR = p; re2c yyfill enable = 0; re2c indent top = 1; re2c indent string = " "; re2c labelprefix = l_linecnt_; ret = \r | \r ? \n ; any = . ; [\000] { break; } ret { ++cnt; continue; } any { continue; } */ return cnt; } int main(int argc, char** argv) { std string str = "abcd\r\nefgc\n\n\n\raaa\n \r\n \n"; int x = lineCntr(str) ; printf( "cnt = %d, size=%d\n", x, str.length() ); return 0; } コンパイル % re2c -i -o lineCntr.cpp lineCntr.re % g++ -o run.x lineCntr.cpp 結果 % ./run.x cnt = 8, size=24
https://w.atwiki.jp/javadsge/pages/324.html
!DOCTYPE html html head script src="react.js" /script script src="JSXTransformer.js" /script /head body div id="ex2" /div script src="sample.js" /script /body /html React.render( React.createElement( h1 , null, Hello ), document.getElementById( ex2 ) );
https://w.atwiki.jp/cscs/pages/2089.html
サンライズクルセイド Reloaded2~復活の象徴~ BEFORE PACK:勇者の再臨 この章に収録されているカード 全165種 サンライズクルセイド Reloaded2~復活の象徴~ この章に収録されているカード 全165種青 緑 黒 赤 紫 青 ユニット メタルユニットレアグランチャー(クインシィ機&ジョナサン機) マイトガイン&マイトカイザー レアカードハイパーガラバ アザルトガリアン グランチャー(ユウ機)(3章再録) ビルバイン (5章再録) アンコモンカードウィンガル・ジー (3章再録) ビルバイン(ウイングキャリバー) (5章再録) ビアレス(ガラミティ機) (7章再録) ライネック (8章再録) コモンカードドラムロ (1章再録) ドロ (2章再録) ナムワン (3章再録) ウィル・ウィプス (5章再録) ボチューン (6章再録) グランチャー(ナッキィ機) (6章再録) カントブレン (7章再録) プロマキス・ヴィー (7章再録) ダンバイン(トカマク機) (8章再録) ラッセブレン (8章再録) キャラクター メタルキャラクターレアジョジョ レアカードジョナサン・グレーン ジェリル・クチビ(4章再録) 旋風寺舞人 (6章再録) アンコモンカード宇都宮比瑪 (2章再録) ジルムセン・ランベル (6章再録) 吉永サリー (6章再録) コモンカードトッド・ギネス (2章再録) ナンガ・シルバレー (5章再録) ダルタス (5章再録) ガラミティ・マンガン (7章再録) トカマク・ロブスキー (8章再録) ジャバ (8章再録) コマンド レアカード相応しき戦士 戦意高揚 特急合体 (6章再録) アンコモンカードチャクラ・シールド (3章再録) 嵐を呼ぶ旋風児 (6章再録) トリプラー (7章再録) コモンカード日輪の輝き (1章再録) 聖戦士の帰還 (5章再録) 緑 ユニット メタルユニットレアウォーカーギャリア(ミサイルランチャー) レイズナー&ザカール レアカードソードフィッシュⅡ&ハンマーヘッド 龍神丸(龍雷拳) レイズナー(V-MAX) (3章再録) ガッタイダー (8章再録) アンコモンカード戦神丸 (5章再録) オケアノス (6章再録) ダンコフ (7章再録) エルダール (8章再録) コモンカードダッガー (1章再録) ドトール (1章再録) アースサンダー (3章再録) スカルガンナー (3章再録) プロメウス (5章再録) セカンドガン (5章再録) ムーンウルフ (6章再録) レッグ(ビリン機) (7章再録) ファイヤーパック (7章再録) キングヘラクロス (7章再録) キャラクター メタルキャラクターレアアルバトロ・ナル・エイジ・アスカ レアカードヴィンセント・ボラージュ ビシャス (5章再録) 守凪了子 (8章再録) アンコモンカード三崎紫雫乃 (6章再録) EXマン (7章再録) アビス (8章再録) コモンカードブルメ (1章再録) ジェット・ブラック (2章再録) アブドゥル・ハキム (4章再録) クルージング・トム (5章再録) 剣部シバラク (6章再録) 美炎 (7章再録) コマンド レアカード新たな世代 バイオテロ 登龍剣 (5章再録) アンコモンカード疾風のように (1章再録) 時は流れた! (6章再録) 公開処刑 (7章再録) コモンカードポタン砲 (5章再録) 忍法・ひっつきワンワンの術 (7章再録) 黒 ユニット メタルユニットレア美袋命 カズマ&君島邦彦 レアカードファルゲンカスタム イデオン(イデオンソード) ストライクドッグ (5章再録) カズマ (8章再録) アンコモンカードロッグ・マック (5章再録) デュラン (5章再録) ドロワ・ザン (6章再録) ラディカル・グッドスピード (8章再録) コモンカードスタンディングトータス (1章再録) パープルベアー (2章再録) ガタマン・ザン (4章再録) ロッグ・マック(外殻装着時) (5章再録) ドラグナー2型(リフター装備) (6章再録) ドラグナー3型(リフター装備) (6章再録) ハリー (6章再録) ドラグーン (7章再録) ゲンナイ (7章再録) NRハンマー (8章再録) キャラクター メタルキャラクターレアマイヨ・プラート レアカードギジェ・ザラル 鴇羽舞衣 (5章再録) グン・ジェム (7章再録) アンコモンカードフィアナ (1章再録) 美袋命 (5章再録) 深優・グリーア (7章再録) コモンカードベン・ルーニー (3章再録) ダン・クリューガー (4章再録) ファトム・モエラ (6章再録) 日暮あかね (6章再録) ガナン (8章再録) ビフ (8章再録) コマンド レアカード蒼き鷹の復活 ミロク 空回り (8章再録) アンコモンカード危険な誘惑 (6章再録) ギガノスの汚物 (7章再録) シェルブリット (8章再録) コモンカードギガノスの蒼き鷹 (2章再録) ファンタムクラブ (4章再録) 赤 ユニット メタルユニットレアザンボット3(イオン砲) ランスロット&紅蓮弐式 レアカードオージェ(ネイ機) ガオガイガー(ディメンジョンプライヤー) グロースター(コーネリア機) (4章再録) エルガイムMk-Ⅱ (7章再録) アンコモンカードバッシュ (1章再録) ガイガー(ウイングモード) (6章再録) モルドレッド (7章再録) アモン・デュール“スタック” (8章再録) コモンカードゼッタ (1章再録) サザーランド (3章再録) 無頼 (その名はゼロ 再録) ディザード (5章再録) グロースター (5章再録) スペース・リスタ (6章再録) スレンダースカラ (6章再録) ベアズ (7章再録) プローラー (7章再録) 竜胆 (8章再録) キャラクター メタルキャラクターレア神ファミリー レアカードマオ ゼロ (その名はゼロ 再録) 紅月カレン (5章再録) アンコモンカードコーネリア・リ・ブリタニア (4章再録) ジノ・ヴァインベルグ (7章再録) プリマーダ(8章再録) コモンカードハッシャ・モッシャ (2章再録) キューエル・ソレイシィ (4章再録) 玉城真一郎 (5章再録) 獅子王麗雄 (6章再録) グラストンナイツ (7章再録) リィリィ・ハッシー (8章再録) コマンド レアカード星が輝く時 喝采のマオ ザンボット・ムーンアタック (7章再録) アンコモンカード真の勇者 (3章再録) ブリタニアの白き死神 (7章再録) 籠の中の鳥 (8章再録) コモンカード反逆のルルーシュ (その名はゼロ 再録) 仇敵の篭絡 (6章再録) 紫 コマンド サンライズレアカード響き合う想い
https://w.atwiki.jp/lord_of_vermilion/pages/999.html
デッキ名 重戦車デッキver.Re2 解説 文字通り速度1の使い魔だけで組むデッキである。 ver.2になり25コストという高コストアルカナ持ちであるオークドクターの参加 そしてアルティメットスペルの追加により前作の重戦車よりも大幅に戦略性が増した。 凶悪なまでのアルカナストーン制圧速度が特徴。 デッキによっては旧カードを使用するが旧カードのアルカナ持ちは攻撃範囲が短いので注意。 旧カードはすべてシングルアルカナなので割る速度はたいしたことない。Wアルカナと合わせて使おう。 候補カード Re2による新たなアルカナ持ちの使い魔の参戦はなかった。 人獣 オークドクター 重戦車の定番。罠解除をもつイケメン。シングルアルカナが痛いけど対不死戦で大活躍!Re2ではさらに硬さも加わり壁もこなせる。 マスタードワーフ ver2.6にて加わったWアルカナ持ち。Re2ではSSに単スマを持ち、重戦車の火力UPに貢献している。 ドワーフ 旧カード。今では無理にいれなくてもよし。敵1体の攻撃力を半減させる特殊をもつ 神族 グリンブルスティ 特殊が重戦車だと使いずらい。ATK重視のスペックになったため、戦闘も出来るようになった!神主重戦車には採用の価値あり。 新セルケト 動く壁。RE2では硬さとATKの高さが際立つ優秀カードに。DEF号令からの戦闘、低HPの死滅しやすさも時には利点となる。しかも10コスト セルケト 旧カード。貴重なサーチ持ちかつ攻撃系特殊だがダメージ量は期待しないほうが… 魔種 アーリマン 特殊が実は色々な場面で役に立つ出来る子。高攻撃力なのも素晴らしい。RE2ではさらなる火力と、防御が増加。死滅しやすさはご愛嬌。 マンドレイク 旧カード。15コストでドクター並の火力かつ攻撃系特殊だが耐久力は紙のごとし 海種 モケーレムベンベ 戦闘型Wアルカナ。RE2では現時点最強クラスの1速。アーリマン並の火力でDEF号令、育てばDEFが100近くなる。FSも優秀だが低HPなので運用には注意 白ワニ サーチを一発で修復可能な大抵の重戦車には入るキーカード。RE2ではATK特化スペックとなり死滅しやすいが戦闘力はUPした 海坊主 罠解除その2。RE2では、ATKがそれなりにあがったので選択肢の一つとしてくめる!10コスの罠解除は結構ありがたい クローラー サポートスキルが優秀なWアルカナ。こいつが控えにいるだけで味方が死滅しにくくなる。RE2で唯一ATKがさがった1速。RE2では採用厳しいかも・・・運用に注意 自我カペラ 旧カード。貴重なサーチ持ちで意外と攻撃と防御が高い。特殊は味方にしか効果がないので注意 カペラ 旧カード。貴重サーチ持ちで罠解除持ち。軍師重戦車の方にどうぞ デネブ 旧カード。相手の防御力を半減させる強力な特殊をもつが、耐久力はあまりないので運用には注意 レグルス 旧カード。硬くてそれなりの攻撃力、選択肢に入る 暴走デネブ 旧カード。今では使えるってか強い。主の攻撃属性に一定時間雷属性付加しokも雷+元の属性になる アルタイル 旧カード。スペックは10コス最強、HPは最低。神が憎いという方に ポルックス 旧カード。貴重なサーチ持ちで範囲内の敵の攻撃力4割減する。 不死 ナイトメア 1体に闇弱点付加できる。闇武器を持って使いましょう。RE2ではATKがあがったため戦闘もある程度こなせる!! マミー 旧カード。1体に闇弱点付加できる。運用はナイトメアと一緒、同時採用もあり デッキサンプル 天地6型 オークドクター 白ワニ モケーレムベンベ アーリマン ナイトメア グリンブルスティ 主 闇 四天6型 オークドクター アーリマン 白ワニ モケーレムベンベ ナイトメア クローラー 主 闇 三界7型 モケーレムベンベ 自我カペラorポルックスorレグルス 白ワニ アーリマン ナイトメア クローラー 暴走デネブ 主 闇 解説 クイック系の使い方 基本は運搬、脱出につかいます。なるべく即うちしない方がいいです ここだ!という時に使おう! 使うならUがおすすめ!戦闘号令やムーヴにも。そして逆転もねらえるぜ!!応用がかなり利きます! なお無印クイックでは敵ゲートを封印しに行くのもありですww シーリングUの使い方 基本はドルイドムーヴをねらいます。 戦闘を濁しつつ相手をゲートに追い返し、相手よりはやくゲートから出撃し発動します すると出撃したライン上のゲートを封印かつ、サーチ封印による移動速度上昇で 使用したライン上の石を1本ほぼ確実にもっていくことができます。 ただしクロノがはいってるデッキ相手には一工夫しないといけないです。 アディション系の使い方 突破!→ないすアディション!や、単騎でドーン!!がおもな使用方法。 単騎はわかってる人には通じないから一工夫しましょう たとえば石1本とれたあと、相手に使い魔を倒させ・・・ リザレクションUの使い方 やりたいことはわかるだろ?超絶強化PTで無双します。降魔も倒せます。 普通のデッキなら強化中はにげたりすればいいんだろうけど、こっちは重戦車だぜ? 逃げれない 迎撃するしかない。さあ中央から左右へ攻め上れ。 キュア系の使い方 突破するのが快感のあなたにおすすめです ゴリ押し安定、壁の維持。 このデッキへの対抗策 気合だ。もしくはホームの上手い人に聞きましょう コメント *編集が苦手な方はこちらへデッキ案、訂正指摘等々、お願いします 勝手に編集しなおしました。すみません -- (名無しさん) 2011-09-19 23 33 12 とりあえずwとか使うのはやめようぜ -- (名無しさん) 2011-09-21 05 54 58 あーあ、注意したから消しちゃったじゃん、参考にしてたのに -- (名無しさん) 2011-09-21 08 54 14 勝手に編集しなおしましたすいません って書いたものですが wが嫌ならw消せば 良かったんじゃないのか? 関係ないとこまで消えてるぞ Re2でカード追加なかったから 場合によっては 旧カード使わないと重戦車組めないから 旧カードの表記も必要なんだぜ? USは実際に使用して試した 使用方法だったんだがねぇ… -- (名無しさん) 2011-09-21 09 01 12 とりあえず自分が気に食わないからって代替案無しで消すのはやめようぜ -- (名無しさん) 2011-09-21 13 08 53 大幅に文を削除する際はコメントアウトするのがwikiのマナーだろうよ といってもこの暗黙の了解知らない人のためにトップページにこの旨書くべきじゃないか? -- (名無しさん) 2011-09-21 14 57 31 流れぶった切って悪いんだが、【】ジャンヌとかどうだろう… 鳥かごされる前に生贄にして、ごまかして帰るってのは? -- (名無しさん) 2011-09-21 22 11 20 無視してもいいんだけど… そういうことは重戦車じゃなく軍師でやってください。 -- (名無しさん) 2011-09-21 22 17 04 やっぱそうなるのね 幼稚発言すまそ -- (名無しさん) 2011-09-21 22 32 53 名前 コメント すべてのコメントを見る
https://w.atwiki.jp/toho/pages/4218.html
Re2-Y- サークル:Iemitsu. Number Track Name Arranger Lyrics Vocal Original Works Original Tune Length 01 Night Lights Punk Dirty Channel 蒼咲 雫 蒼咲 雫 秋霜玉 スプートニク幻夜 [-- --] 02 世界で今僕だけが喧噪の中で きくお ちょろ 蒼咲 雫 東方怪綺談 Romantic Children [-- --] 03 決定☆晴れのち曇りなメガネ! きくお ちょろ 蒼咲 雫 東方紅魔郷 おてんば恋娘 [-- --] 04 紅烏 天音 蒼咲 雫 蒼咲 雫 東方文花帖 レトロスペクティブ京都 [-- --] 05 Blikje Phantasm Punk Dirty Channel ちょろ 茶太 東方花映塚 此岸の塚 [-- --] 06 SAKURA Punk Dirty Channel 蒼咲 雫 蒼咲 雫 東方妖々夢 さくらさくら [-- --] 07 Night Lights-JiNG*da*LaW RMX- JiNG*da*LaW 蒼咲 雫 蒼咲 雫 秋霜玉 スプートニク幻夜 [-- --] 08 世界で今僕だけが喧噪の中で-JiNG*da*LaW RMX- JiNG*da*LaW ちょろ 蒼咲 雫 東方怪綺談 Romantic Children [-- --] 09 Blikje Phantasm-JiNG*da*LaW RMX- JiNG*da*LaW ちょろ 茶太 東方花映塚 此岸の塚 [-- --] 10 Night Lights -Inst- Punk Dirty Channel - - 秋霜玉 スプートニク幻夜 [-- --] 11 決定☆晴れのち曇りなメガネ! -Inst- きくお - - 東方紅魔郷 おてんば恋娘 [-- --] 12 Blikje Phantasm -Inst- Punk Dirty Channel - - 東方文花帖 此岸の塚 [-- --] 詳細 コミックマーケット76(2009/8/15)にて頒布 イベント価格:1,000円 ショップ価格:?円 レビュー 名前 コメント
https://w.atwiki.jp/bambooflow/pages/268.html
re2cの正規表現 サンプル ws = [ \t\v\f\r]+; digit = [0-9]+; real = ([+-]*[0-9]+"."[0-9]*|([0-9]*)"."[0-9]+); integer = ([+-]*[0-9]+); ident = [_$a-zA-Z][_$0-9a-zA-Z]*;
https://w.atwiki.jp/yo-kichi/pages/155.html
OSの制御方式で特に排他制御に使われるセマフォについて書こうと思う。排他制御とは資源に対して複数のプロセスから読み込みや書き込みがあった場合に矛盾が生じることを防ぐ役割を持っている。その一つにセマフォが使われる。他にも排他制御は場面によって様々に使い分けられている。セマフォは主にファイルアクセスの排他に使われる。 セマフォのアルゴリズムは単純である。セマフォを鍵として考えると分かりやすい、資源に鍵を1つ持たせる。その資源にアクセスするには資源から鍵をもらわなくてはならない。そして資源にアクセスする際に資源から鍵をもらうことができれば資源を使うことができる、なければ鍵が解放されるのを待つという仕組みである。また資源のアクセスをやめるときに鍵を解放して他のプロセスから資源にアクセスできるようにする。これによって複数のプロセスから同時にアクセスされて資源に矛盾が生じることを防ぐことができる。だが資源のアクセスで読み込み処理が多い場合はこの仕組みだと非効率である。読み込みアクセスのみの場合は資源の矛盾が起きないからである。よって読み込み処理を多く行われる資源なら読み込みセマフォを用意し、複数のプロセスからアクセスできるようにした方が効率的である。一方書き込みでは、複数のプロセスから資源に書きこむと矛盾が生じてしまうため資源に対して1つだけの書き込みセマフォを用意して1つのプロセスのみがアクセスできるようにする。 ここまでセマフォのアルゴリズムを説明したが注意しなくてはならない現象がいくつかある。デッドロックと言われるものである。プロセスAが資源aにアクセスしている、プロセスBが資源bアクセスしている状態でプロセスAが資源bにプロセスBが資源aにアクセスしようとすると互いにセマフォが解放されるのを待つことになる。これでは処理が一向に進まないのでデッドロックを防ぐ仕組みが必要である。 セマフォは簡単なアルゴリズムだが、排他制御の多くは注意深く実装しないとデッドロックや割り込み処理などでバグが起こる可能性が高いのである。また場面によっていろいろな排他制御のアルゴリズムがある。