D言語

Ddbg

%pwd ~/devel/env/d/dmd/bin #何このPATH %wget http://ddbg.mainia.de/Ddbg-0.09.2-beta.zip %unzip Ddbg-0.09.2-beta.zip %chmod +x *.exe *.bat %cd ~/work/d %cat > hello.d class Stdio { void writefln(char[] str) { str is null ? printf("(nil)\n")…

std.signals

の、 import std.signals; import std.stdio; class Observer { // スロットとして使うメソッド void watch(char[] msg, int i) { writefln("Observed msg '%s' and value %s", msg, i); } } class Foo { int value() { return _value; } int value(int v) {…

Ddbg

おいおい〜こういうのが既にあるジャマイカ!! ・・・試してないけど。

stdoutとstderr

import std.stdio; import std.string; void main() { fwritef(stdout, "What your name?: "); fwritefln(stdout, "Hi %s!", chomp(readln(stdin))); } これだと、 stderr ストリームはバッファリングされていない。 stdout ストリームは、端末に接続されて…

そっか・・・

Model console input as a buffer. Note that we read utf8 only. TangoもIOはUTF-8オンリーなんだ・・・ 今のTangoはRedirectとか使ってて違うらしい。

そうか

import std.stdio; char[] toupper(char[] str) { for (int i = 0; i < str.length; ++i) { char c = str[i]; if (c >= 'a' && c <= 'z') str[i] = c - (cast(char)'a' - 'A'); } return str; } char[] tolower(char[] str) { for (int i = 0; i < str.lengt…

う〜ん・・・

import std.stdio; class Stdio { public: enum Type { Input = 0, Output } this(Type type) { type_ = type; } void stream(char[] string) { if (type_ == Type.Output) { writefln(string); } } private: Type type_; } class Stream { private: char[] …

hogehoge

//hogehoge ... ( (new Stdio(Stdio.Type.Output)).stream( (new Stream(new URI("hogehoge.txt"))).readStream())); ... forクラスとか、ifクラスとか書けばnew言語とか書けるんジャマイカ?

構文

/// abstract code abstract class IFoo { private: uint value; public: void set(uint value); uint get(); } class IHoge : IFoo { public: this(uint value) { this.set(value); } void set(uint value) { super.value = value; } uint get() { return s…

TMP3・・・?

/// abstract code abstract class IFoo { private: uint value; public: void set(uint value); uint get(); } class IHoge : IFoo { public: this(uint value) { this.set(value); } void set(uint value) { /// ※このコメントアウトはフレンドのみ閲覧可…

Windbg vs GDB

絶対GDBの方が使いやすいんだぜwwwwwwwwwwwwwww('∀`)追記:お! >>p Module Load: D:\USER_NAME\WORK\D\ABSTRACT.EXE (symbol loading deferred) Thread Create: Process=0, Thread=0 Module Load: c:\WINDOWS\system32\NTDLL.DLL (symbol lo…

GDB4D

patch当てたのにぃぃぃぃぃぃぃぃぃぃっ!!! :not in executable format: File format not recognizedって何だようぅぅぅぅぅ!!! ちゃんと dmd -g hogeでデバッグ情報付加してコンパイルしたのにぃぃぃぃぃぃっ!!! コレのためにgdb6.5を今の今までコ…

プロジェクトD ~車輪を再発明せよ!~ プロジェクト日本語トップページ - OSDN

ってwwwwここって、d:id:outland_karasuさんのトコだったのかw

v1.014

になったらしい。

ls

今ls系のプログラムをDで書いてるんだけど、GNU lsの速いコト速いコト。やっぱCの方が速いか。まぁgcとかあるし、lsのコードの方が洗練されてるってのがあるんだろうけど。

call

う〜ん・・・call()を挟まないとダメか・・・ 1 import std.stdio; 2 3 typedef void function() voidfunc_t; // test 4 typedef void function(char[]) OptionHandler; 5 6 void func() 7 { 8 writefln("hi :)"); 9 } 10 11 void usage(char[] dummy) 12 { …

でも、

最近はふたりはバイナリアンを読んでるせいか、C言語よりだなぁ。でもWinだからせいぜいcygwinレイヤーレベルでのプログラミングしかできない・・・VMWareでdebianって考えてみたりもしたけど、そういえば前はメモリが足りないとか言われたり言われなかった…

色々と

D言語とは - はてなキーワードとか見て、今のD言語の状況を見てみたら、結構、D言語人口が増えてるね。D言語の実装のバイナリをPSPで走らせようとしてる人が居たり、ついに、SaintSonicがリリースになったり。PSPでD言語ってのはwktkだけど、dmdってクロ…

D言語とか・・・

なんだこりゃ・・・ - (EE) Unknown Device このエントリで、何か通らねぇ〜とかほざいてたけど、fileしてみたらASCIIだったという罠。UTF-8にしたらちゃんと通ったけど、あのコードで良かったのかまではまだ試してない。後、ネットに接続できないときに、Sc…

なんだこりゃ・・・

ITproのフォルダやサブフォルダを操作する(Directoryクラス) | 日経 xTECH(クロステック)をD風に書こうと思ったけど、なんだか無理っぽい。 お題:http://itpro.nikkeibp.co.jp/article/COLUMN/20070205/260746/?SS=tech_codezone&FD= import std.cstrea…

ddgen

いや、落ち着いて考えよう。そもそも自分は大したものは書いてないはずだ。ただコメントを抽出してそれらをドキュメント化するだけだ。そもそもレキサは必要無い。

ddgen

_lineとか、ただ数えるだけだと前後関係が分からんな。

ddgen...その11

あぁ〜もう全然違う・・・ /** * Hoge * * foo */ BEGIN_COMMENT_BLOCK id: Hoge id: foo END_COMMENT_BLOCK 只出力させればいいだけならいいけど、何かしらの形式にコンバートしようとすると思考停止に陥る。 何にコンバートすりゃいいんだ?そもそもlexやf…

ddgen...その10

以下自問 and 整理。 ドキュメントジェネレーター ドキュメントジェネレーターとは、入力を処理し、ドキュメントを生成すること。 入力 入力はD言語のソースファイル。 ... if (std.regexp.find(arg, "\\.d$") != -1) ... で調べる。 処理 処理はコメント部…

・・・orz

あぁ〜正規表現文字列自体にマッチしちまう・・・ std.regexp.find("[^\"]///"); これじゃダメなんだろうか・・・ `"`にマッチしなくて、なおかつ///が続く文字列ってことだろ?追記: std.regexp.find("([ ]*|\t*)///"); これでおkだった。

ddgen...その9

一行ずつ正規表現でコメントかどうか調べて、その場で何か実行するよりも、字句解析して別の形式にコンバートしてから実行する方が良いと思った。 なので、以下lexer考察。 字句解析とは何か? 字句解析 - Wikipedia らしい。ドキュメントジェネレーターの場…

あぁ書きたい。

WikipediaのD言語項目の歴史の所に、 2007/03/14 2ちゃんねるにおいて、文字コードに関して活発に議論がなされた。これは質問スレッドや初心者スレッドを除くとUnix板においては、一番の勢いであった。しかし、誰もコミットする者は現れなかった。現れたとす…

へぇ〜すげぇ

各モジュールのtitlelengthって"1byte"じゃなくて、"1文字"なんだな。 ・・・D言語もこういう風だったらなぁ〜追記:いや、すごくないか、そもそもUnicodeは可変長・・・ん?いや、EUC-JPか・・・?あぁーD言語を使ってると感覚が麻痺してくるな・・・

何故だ・・・

何故か、 import std.cstream; int main(char[][] args) { dout.writeLine("do you question? "); char[] s; while (!din.eof()) s = din.readLine(); dout.writeLine(s); return 0; } というコードで、最初のwriteLine()が実行されない。追記:dmdは1.007

ddgen...その8

isFunctionはこんなもんなんだろうか。 import std.stdio; import std.string, std.regexp; const char[] func_pattern = "[a-zA-Z]( .*|\t.*|\r.*|\n.*)[a-zA-Z].*"; bool isFunction(char[] token) { auto r = new RegExp(func_pattern); return cast(bool…