www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - D symbol demangler

reply James Dunne <jdunne4 bradley.edu> writes:
I dont know why I'm posting this now, since I have no way of getting the module
on to the internet right now, but anyway..

I've written a nice set of D classes today that extract the type information
from a mangled D symbol, like "_D3std4testFAaZv".  You've all seen them before
I'm sure.  Anyway, this module will transform that string into "void
std.test(char[])" (with optional support for ANSI syntax highlighting on the
Linux console    Ooooohh Aaaaah).

A nice way of storing the types in classes is employed.  A DType class is the
base class of any D type.  A DReservedType class exists to hold a basic type
(int, uint, void, etc.), but I should really use DTypeInt, DTypeUInt, DTypeVoid,
etc. instead (separate class per each basic type).  Every class overrides the
toString() function to return the D type as a string, which is very nice.

This should prove to be useful in writing my IDE once I get the code-parsing
module done.  Then I can have both compiled-library AND source-code-parsed
code-completion info to play with!

P.S. - I'll release the module once I get my network switch back from a friend.
I left it there at a LAN party... dammit.  Then I can connect the internet
modem-equipped PC with my development PC and upload the module!  Yargh.

Regards,
James Dunne
Jan 05 2005
parent reply James Dunne <jdunne4 bradley.edu> writes:
I threw it on a digital camera!  How nice... Enjoy it!

In article <crievv$qhv$1 digitaldaemon.com>, James Dunne says...
I dont know why I'm posting this now, since I have no way of getting the module
on to the internet right now, but anyway..

I've written a nice set of D classes today that extract the type information
from a mangled D symbol, like "_D3std4testFAaZv".  You've all seen them before
I'm sure.  Anyway, this module will transform that string into "void
std.test(char[])" (with optional support for ANSI syntax highlighting on the
Linux console    Ooooohh Aaaaah).

A nice way of storing the types in classes is employed.  A DType class is the
base class of any D type.  A DReservedType class exists to hold a basic type
(int, uint, void, etc.), but I should really use DTypeInt, DTypeUInt, DTypeVoid,
etc. instead (separate class per each basic type).  Every class overrides the
toString() function to return the D type as a string, which is very nice.

This should prove to be useful in writing my IDE once I get the code-parsing
module done.  Then I can have both compiled-library AND source-code-parsed
code-completion info to play with!

P.S. - I'll release the module once I get my network switch back from a friend.
I left it there at a LAN party... dammit.  Then I can connect the internet
modem-equipped PC with my development PC and upload the module!  Yargh.

Regards,
James Dunne
begin 0644 dsymextract.d M+R\ 1&5M86YG;&5S(&$ ;6%N9VQE9"!$(&ED96YT:69I97( 86YD('!R;V1U M8V5S('1H92!R97-U;'0 :6X-"B\O(&EN:&5R:71E9"!C;VYT86EN97( 8VQA M('5S960 =&\ 97AT<F%C="!C;V1E+6-O;7!L971I;VX :6YF;R!F<F]M(&$ M;6)O;"!T86)L92X-" T*+R\ 8GD 2F%M97, 1'5N;F4-"B\O($IA;BX -B`R M=&]R<SL)"0D)"2\O(&EN8VQU9&4 9&5S=')U8W1O<B!C;V1E("AF;W( 97AP M<F%C:&%R<SL)"0D)+R\ 8VAE8VL 9F]R(&5X=')A(&-H87)A8W1E<G, 869T M=F5R<VEO;B`](&%N<VE?8V]L;W(["0D)"2\O('5S92!!3E-)(&-O;&]R('-T M<FEN9W, 9F]R(&-H96%P('-Y;G1A>"!H:6=H;&EG:'1I;F<-"GT-"B\O9&5B M=6< /2!D97-T<G5C=#L)"0D)"0DO+R!D=6UP(&1E<W1R=6-T;W( 8V%L;',- M;W( =&AE('-Y;6)O;`T*"0E$5'EP90ET>7!E.PD)+R\ ='EP92!O9B!T:&4 M87-S($1&=6YC=&EO;B`Z($13>6UB;VP >PT*"7!U8FQI8SH-" D)+R]C:&%R M6UT);F%M93L)"2\O(&YA;64 9F]R('1H92!F=6YC=&EO; T*"0DO+T14>7!E M"0ET>7!E.PD)+R\ <F5T=7)N('1Y<&4 9F]R('1H92!F=6YC=&EO; T*"0E$ M5'EP95M="0EP87)A;7,["0DO+R!P87)A;65T97)S(&9O<B!T:&4 9G5N8W1I M<G,I('YT:&ES*"D >PT*"0D)9F]R96%C:"`H:6YO=70 1%1Y<&4 =#L <&%R M86US*0T*"0D)"6EF("AC87-T*$1297-E<G9E9%1Y<&4I="!I<R!N=6QL*0T* M"0D)"0ED96QE=&4 =#L- M"0EI9B`H='EP92!I<R!N=6QL*2!R971U<FX ;F%M93L-" T*"0D)<R`]('1Y M<&4N=&]!3E-)4W1R:6YG*"D ?B`B(%PP,S-;,#LS-VTB('X ;F%M92!^(")< M+G1O4W1R:6YG*"D ?B`B("( ?B!N86UE('X (B B.PT*"0D)9F]R96%C:"`H M1%1Y<&4 9'0[('!A<F%M<RD >PT*"0D)"6EF(" A9FER<W0I(', ?CT (BP M($13>6UB;VP >PT*"7!U8FQI8SH-" D)+R\ 1&]E<VXG="!H879E(&UU8V N M=&AI<RYN86UE(#T M:6]N. T*8VQA<W, 1$UO9'5L92`Z($13>6UB;VP >PT*"7!U8FQI8SH-" D) M8V]N=&%I;B!C;&%S<R!D969I;FET:6]N<RP 9G5N8W1I;VYS+"!A;F0 ;W1H M:71H(&$ <W1R:6YG(')E<')E<V5N=&%T:6]N. T*"0ET:&ES*&-H87);72!C M;VX *&1E<W1R=6-T;W)S*2!^=&AI<R I('L-" D)"61E8G5G("AD97-T<G5C M"6-H87);70EA<U-T<FEN9SL)"2\O('=H870 =&AI<R!T>7!E(&ES(&%S(&$ M<&5S. T*"0ES=&%T:6, 1%)E<V5R=F5D5'EP92!.;VYE.PD)+R\ 979E<B!U M<V5D/PT*"0ES=&%T:6, 1%)E<V5R=F5D5'EP92!6;VED.PT*"0ES=&%T:6, M1%)E<V5R=F5D5'EP92!">71E.PT*"0ES=&%T:6, 1%)E<V5R=F5D5'EP92!5 M8R!$4F5S97)V9614>7!E(%53:&]R=#L-" D)<W1A=&EC($1297-E<G9E9%1Y M<&4 26YT.PT*"0ES=&%T:6, 1%)E<V5R=F5D5'EP92!526YT.PT*"0ES=&%T M:6, 1%)E<V5R=F5D5'EP92!,;VYG.PT*"0ES=&%T:6, 1%)E<V5R=F5D5'EP M871I8R!$4F5S97)V9614>7!E($1O=6)L93L-" D)<W1A=&EC($1297-E<G9E M9%1Y<&4 4F5A;#L- M"7-T871I8R!$4F5S97)V9614>7!E($E&;&]A=#L-" D)<W1A=&EC($1297-E M<G9E9%1Y<&4 241O=6)L93L-" D)<W1A=&EC($1297-E<G9E9%1Y<&4 25)E M($1297-E<G9E9%1Y<&4 0T1O=6)L93L-" D)<W1A=&EC($1297-E<G9E9%1Y M97)V9614>7!E($)I=#L-" D)<W1A=&EC($1297-E<G9E9%1Y<&4 0VAA<CL- M('1Y<&5S. T*"0ES=&%T:6, =&AI<R I('L-" D)"2\O(&)A<VEC('1Y<&5S M. T*"0D)3F]N92`](&YE=R!$4F5S97)V9614>7!E*")N;VYE(BD["0DO+R!E M*3L-" D)"4)Y=&4 /2!N97< 1%)E<V5R=F5D5'EP92 B8GET92(I.PT*"0D) M54)Y=&4 /2!N97< 1%)E<V5R=F5D5'EP92 B=6)Y=&4B*3L-" D)"5-H;W)T M(#T M<&4H(G5I;G0B*3L-" D)"4QO;F< /2!N97< 1%)E<V5R=F5D5'EP92 B;&]N M9R(I.PT*"0D)54QO;F< /2!N97< 1%)E<V5R=F5D5'EP92 B=6QO;F<B*3L- M" D)"49L;V%T(#T M(#T ;F5W($1297-E<G9E9%1Y<&4H(G)E86PB*3L-" T*"0D)+R\ :6UA9VEN M87)Y(&%N9"!C;VUP;&5X. T*"0D)249L;V%T(#T ;F5W($1297-E<G9E9%1Y M<&4H(FEF;&]A="(I.PT*"0D)241O=6)L92`](&YE=R!$4F5S97)V9614>7!E M<F5A;"(I.PT*"0D)0T9L;V%T(#T ;F5W($1297-E<G9E9%1Y<&4H(F-F;&]A M="(I.PT*"0D)0T1O=6)L92`](&YE=R!$4F5S97)V9614>7!E*")C9&]U8FQE M>7!E*")B:70B*3L-" D)"4-H87( /2!N97< 1%)E<V5R=F5D5'EP92 B8VAA M<B(I.PT*"0D)5T-H87( /2!N97< 1%)E<V5R=F5D5'EP92 B=V-H87(B*3L- M" T*"0EV97)S:6]N("AD97-T<G5C=&]R<RD <W1A=&EC('YT:&ES*"D >PT* M"0D)9&5B=6< *&1E<W1R=6-T*2!P<FEN=&8H(G-T871I8R!$5'EP93HZ?G1H M0GET93L-" D)"61E;&5T92!50GET93L-" D)"61E;&5T92!3:&]R=#L-" D) M;&5T92!&;&]A=#L- M;#L-" T*"0D)+R\ :6UA9VEN87)Y(&%N9"!C;VUP;&5X. T*"0D)9&5L971E M($E&;&]A=#L-" D)"61E;&5T92!)1&]U8FQE.PT*"0D)9&5L971E($E296%L M.PT*"0D)9&5L971E($-&;&]A=#L- M"61E;&5T92!$0VAA<CL-" D)"61E8G5G("AD97-T<G5C="D <')I;G1F*")S M8FQI8SH-" D)+R\ 3F]T('-U<F4 =VAY+"!B=70 =&AE(&-O;7!I;&5R(&-O M;G1A=&EO;CH-" D)8VAA<EM=('1O04Y325-T<FEN9R I('L-" D)"7)E='5R M5&AI<R!E>&-E<'1I;VX :7, =&AR;W=N(&]N('!A<G-I;F< 97)R;W)S(&%N M9"!T>7!E(&5R<F]R<SH-"F-L87-S($14>7!E17AC97!T:6]N(#H 17AC97!T M(#H M*$14>7!E('-I;F=L951Y<&4I('L-" D)"71H:7,N:6YT97)N86Q4>7!E(#T M=&AI<R I('L-" D)"61E8G5G("AD97-T<G5C="D <')I;G1F*")$5'EP94%R M<F%Y+GYT:&ES*"E<;B(I.PT*"0D):68 *&-A<W0H1%)E<V5R=F5D5'EP92EI M;G1E<FYA;%1Y<&4 :7, ;G5L;"D-" D)"0ED96QE=&4 :6YT97)N86Q4>7!E M='EP93H-" D)8VAA<EM=('1O04Y325-T<FEN9R I('L-" D)"7)E='5R;B!I M('-I;F=L951Y<&4I('L-" D)"71H:7,N:6YT97)N86Q4>7!E(#T <VEN9VQE M('L-" D)"61E8G5G("AD97-T<G5C="D <')I;G1F*")$5'EP95-!<G)A>2Y^ M=&AI<R I7&XB*3L-" D)"6EF("AC87-T*$1297-E<G9E9%1Y<&4I:6YT97)N M86Q4>7!E+G1O04Y325-T<FEN9R I('X (EPP,S-;,3LS,6U;75PP,S-;,#LS M+R!$>6YA;6EC(&%R<F%Y. T*8VQA<W, 1%1Y<&5$07)R87D .B!$5'EP92![ M9VQE5'EP92D >PT*"0D)=&AI<RYI;G1E<FYA;%1Y<&4 /2!S:6YG;&54>7!E M"0D)9&5B=6< *&1E<W1R=6-T*2!P<FEN=&8H(D14>7!E1$%R<F%Y+GYT:&ES M*"E<;B(I.PT*"0D):68 *&-A<W0H1%)E<V5R=F5D5'EP92EI;G1E<FYA;%1Y M" D)+R\ 87!P96YD(&$ 6UT =&\ =&AE(&5N9"!O9B!T:&4 ='EP93H-" D) M8VAA<EM=('1O04Y325-T<FEN9R I('L-" D)"7)E='5R;B!I;G1E<FYA;%1Y M93H-" D)1%1Y<&4):6YT97)N86Q4>7!E.PD)+R\ =&AE('1Y<&4 ;V8 <&]I M" D)"71H:7,N:6YT97)N86Q4>7!E(#T M"79E<G-I;VX *&1E<W1R=6-T;W)S*2!^=&AI<R I('L-" D)"61E8G5G("AD M8V%S="A$4F5S97)V9614>7!E*6EN=&5R;F%L5'EP92!I<R!N=6QL*0T*"0D) M4W1R:6YG*"D >PT*"0D)<F5T=7)N(&EN=&5R;F%L5'EP92YT;T%.4TE3=')I M<EM=('1O4W1R:6YG*"D >PT*"0D)<F5T=7)N(&EN=&5R;F%L5'EP92YT;U-T M($14>7!E4F5F97)E;F-E(#H M<'5B;&EC. T*"0ET:&ES*$14>7!E('-I;F=L951Y<&4I('L-" D)"71H:7,N M:6YT97)N86Q4>7!E(#T M*&1E<W1R=6-T;W)S*2!^=&AI<R I('L-" D)"61E8G5G("AD97-T<G5C="D M<')I;G1F*")$5'EP95)E9F5R96YC92Y^=&AI<R I7&XB*3L-" D)"6EF("AC M87);72!T;U-T<FEN9R I('L-" D)"7)E='5R;B!I;G1E<FYA;%1Y<&4N=&]3 M" EP<FEV871E. T*"0E$5'EP90EI;G1E<FYA;%1Y<&4["0DO+R!A;B!O=70 M92D >PT*"0D):68 *"$H8V%S="A$5'EP94EN3W5T*7-I;F=L951Y<&4 :7, M86YN;W0 8F4 9F]L;&]W960 8GD ;W5T(2(I.PT*"0D):68 *"$H8V%S="A$ M5'EP94]U="ES:6YG;&54>7!E(&ES(&YU;&PI*0T*"0D)"71H<F]W(&YE=R!$ M5'EP945X8V5P=&EO;B B;W5T(&-A;FYO="!B92!F;VQL;W=E9"!B>2!O=70A M8G5G("AD97-T<G5C="D <')I;G1F*")$5'EP94]U="Y^=&AI<R I7&XB*3L- M" D)"6EF("AC87-T*$1297-E<G9E9%1Y<&4I:6YT97)N86Q4>7!E(&ES(&YU M. T*8VQA<W, 1%1Y<&5);D]U="`Z($14>7!E('L-" EP<FEV871E. T*"0E$ M5'EP90EI;G1E<FYA;%1Y<&4["0DO+R!A;B!I;F]U="!P87)A;65T97(-" T* M(2AC87-T*$14>7!E26Y/=70I<VEN9VQE5'EP92!I<R!N=6QL*2D-" D)"0ET M:')O=R!N97< 1%1Y<&5%>&-E<'1I;VXH(FEN;W5T(&-A;FYO="!B92!F;VQL M;W=E9"!B>2!I;F]U="$B*3L-" D)"6EF(" A*&-A<W0H1%1Y<&5/=70I<VEN M9VQE5'EP92!I<R!N=6QL*2D-" D)"0ET:')O=R!N97< 1%1Y<&5%>&-E<'1I M"71H:7,N:6YT97)N86Q4>7!E(#T M<G-I;VX *&1E<W1R=6-T;W)S*2!^=&AI<R I('L-" D)"61E8G5G("AD97-T M<G5C="D <')I;G1F*")$5'EP94EN3W5T+GYT:&ES*"E<;B(I.PT*"0D):68 M*&-A<W0H1%)E<V5R=F5D5'EP92EI;G1E<FYA;%1Y<&4 :7, ;G5L;"D-" D) M4W1R:6YG*"D >PT*"0D)<F5T=7)N(")I;F]U="`B('X :6YT97)N86Q4>7!E M<'5B;&EC. T*"0ET:&ES*&-H87);72!I9&5N="D >PT*"0D)=&AI<RYI9&5N M=&EF:65R(#T M"6ED96YT:69I97(["0D)+R\ =&AE(&YA;64 ;V8 =&AE('1Y<&5D968 ='EP M<RYI9&5N=&EF:65R(#T M;&%S<R!$5'EP941E;&5G871E(#H M87);70EI9&5N=&EF:65R.PD)"2\O('1H92!N86UE(&]F('1H92!D96QE9V%T M"0ET:&ES+FED96YT:69I97( /2!I9&5N=#L- M*&1E<W1R=6-T;W)S*2!^=&AI<R I('L-" D)"61E8G5G("AD97-T<G5C="D M<G-I;VX *&1E<W1R=6-T;W)S*2!^=&AI<R I('L-" D)"61E8G5G("AD97-T M<')I=F%T93H-" D)8VAA<EM="6ED96YT:69I97(["0D)+R\ =&AE(&YA;64 M("AD97-T<G5C="D <')I;G1F*")$5'EP95-T<G5C="Y^=&AI<R I7&XB*3L- M(EPP,S-;,#LS-VTB M97( /2!I9&5N=#L- M=&AI<R I('L-" D)"61E8G5G("AD97-T<G5C="D <')I;G1F*")$5'EP94ED M+R!E>'1R86-T<R!A('-E<FEE<R!O9B!D;W0M<V5P87)A=&5D(&ED96YT:69I M97)S. T*"0EC:&%R6UT 97AT<F%C=&ED96YT:69I97)S*&-H87);72!I9"P M:6YO=70 :6YT(&DI('L-" D)"6-H87);70ES.PT*"0D)8F]O;"!F:7)S="`] M"0D)"2\O(%!A<G-E(&YU;65R:6, ;&5N9W1H. T*"0D)"7=H:6QE("AI(#P M="!T:&4 :61E;G1I9FEE< T*"0D)"6EF(" A9FER<W0I(', ?CT (BXB.PT* M1%1Y<&5%>&-E<'1I;VXH(FQE;F=T:"!O9B!I9&5N=&EF:65R('=O=6QD(&5X M"7T-" T*"0D)+R\ 4F5T=7)N('1H92!I9&5N=&EF:65R('-T<FEN9SH-" D) M:6YI=&EO;B`H;&EK92!A('!A<F%M971E<BD-" D)1%1Y<&4 97AT<F%C='1Y M<&5I;F9O*&-H87);72!I9"P :6YO=70 :6YT(&DI('L-" D)"6EF("AI(#X] M(&ED+FQE;F=T:"D-" D)"0ET:')O=R!N97< 1%1Y<&5%>&-E<'1I;VXH(G5N M8W0 =&AE('1Y<&4 :6YF;SH-" D)"7-W:71C:"`H:61;:5TI('L-" D)"0DO M+R!A<G)A>2P <W1A=&EC(&%R<F%Y+"!D>6YA;6EC(&%R<F%Y. T*"0D)"6-A M<V4 )T$G.B`K*VD[(')E='5R;B!N97< 1%1Y<&5!<G)A>2AE>'1R86-T='EP M96EN9F\H:60L(&DI*3L-" D)"0EC87-E("=')SH *RMI.R!R971U<FX ;F5W M($14>7!E4T%R<F%Y*&5X=')A8W1T>7!E:6YF;RAI9"P :2DI.PT*"0D)"6-A M<V4 )T G.B`K*VD[(')E='5R;B!N97< 1%1Y<&5$07)R87DH97AT<F%C='1Y M)SH *RMI.R!R971U<FX ;F5W($14>7!E4&]I;G1E<BAE>'1R86-T='EP96EN M("LK:3L <F5T=7)N(&YE=R!$5'EP95)E9F5R96YC92AE>'1R86-T='EP96EN M<F5T=7)N(&YE=R!$5'EP94]U="AE>'1R86-T='EP96EN9F\H:60L(&DI*3L- M" D)"0DO+R!I;F]U=#H-" D)"0EC87-E("=+)SH *RMI.R!R971U<FX ;F5W M+R!E;G5M. T*"0D)"6-A<V4 )T4G.B`K*VD[(')E='5R;B!N97< 1%1Y<&5% M;G5M97)A=&EO;BAE>'1R86-T:61E;G1I9FEE<G,H:60L(&DI*3L-" D)"0DO M+R!T>7!E9&5F. T*"0D)"6-A<V4 )U0G.B`K*VD[(')E='5R;B!N97< 1%1Y M<&54>7!E9&5F*&5X=')A8W1I9&5N=&EF:65R<RAI9"P :2DI.PT*"0D)"2\O M(&1E;&5G871E. T*"0D)"6-A<V4 )T0G.B`K*VD[(')E='5R;B!N97< 1%1Y M<&5$96QE9V%T92AE>'1R86-T:61E;G1I9FEE<G,H:60L(&DI*3L-" D)"0DO M=6-T. T*"0D)"6-A<V4 )U,G.B`K*VD[(')E='5R;B!N97< 1%1Y<&53=')U M9FEE<CH-" D)"0EC87-E("=))SH *RMI.R!R971U<FX ;F5W($14>7!E261E M;G1I9FEE<BAE>'1R86-T:61E;G1I9FEE<G,H:60L(&DI*3L-" T*"0D)"2\O M(&)A<VEC('1Y<&5S. T*"0D)"6-A<V4 )VXG.B`K*VD[(')E='5R;B!$5'EP M92Y.;VYE.PD)+R\ 979E<B!U<V5D/PT*"0D)"6-A<V4 )W8G.B`K*VD[(')E M='5R;B!$5'EP92Y6;VED.PT*"0D)"6-A<V4 )V<G.B`K*VD[(')E='5R;B!$ M5'EP92Y">71E.PT*"0D)"6-A<V4 )V G.B`K*VD[(')E='5R;B!$5'EP92Y5 M0GET93L-" D)"0EC87-E("=S)SH *RMI.R!R971U<FX 1%1Y<&4N4VAO<G0[ M"0EC87-E("=I)SH *RMI.R!R971U<FX 1%1Y<&4N26YT.PT*"0D)"6-A<V4 M)VLG.B`K*VD[(')E='5R;B!$5'EP92Y526YT.PT*"0D)"6-A<V4 )VPG.B`K M*VD[(')E='5R;B!$5'EP92Y,;VYG.PT*"0D)"6-A<V4 )VTG.B`K*VD[(')E M='5R;B!$5'EP92Y53&]N9SL-" D)"0EC87-E("=F)SH *RMI.R!R971U<FX M+D1O=6)L93L-" D)"0EC87-E("=E)SH *RMI.R!R971U<FX 1%1Y<&4N4F5A M;#L-" T*"0D)"2\O(&EM86=I;F%R>2!A;F0 8V]M<&QE>#H-" D)"0EC87-E M("=O)SH *RMI.R!R971U<FX 1%1Y<&4N249L;V%T.PT*"0D)"6-A<V4 )W`G M.B`K*VD[(')E='5R;B!$5'EP92Y)1&]U8FQE.PT*"0D)"6-A<V4 )VHG.B`K M*VD[(')E='5R;B!$5'EP92Y)4F5A;#L-" D)"0EC87-E("=Q)SH *RMI.R!R M971U<FX 1%1Y<&4N0T9L;V%T.PT*"0D)"6-A<V4 )W(G.B`K*VD[(')E='5R M5'EP92Y$0VAA<CL-" T*"0D)"6-A<V4 )UHG.B!T:')O=R!N97< 1%1Y<&5% M>&-E<'1I;VXH9F]R;6%T*"):("AR971U<FX ='EP92D 8V%N;F]T(&)E('5S M960 87, 82!T>7!E(&%T('!O<VET:6]N("5D(2(L(&DI*3L-" T*"0D)"2\O M:3L <F5T=7)N(&YU;&P["0DO+R!"54<Z($9)6$U%(2$-" T*"0D)"61E9F%U M;'0Z('1H<F]W(&YE=R!$5'EP945X8V5P=&EO;BAF;W)M870H(G5N:VYO=VX M='EP92!M86YG;&4 8VAA<F%C=&5R("<E<R< 870 <&]S:71I;VX )60A(BP M=')U8W1O<B!D;V5S;B=T(&1O(&%N>71H:6YG+ T*"0ET:&ES*"D >PT*"0D) M8GD =&AE(&UA;F=L960 <W1R:6YG. T*"0DO+R!R:6=H="!N;W<L(&]N;'D M8VQA<W, 9&5C;&%R871I;VYS(&%N9"!F=6YC=&EO;B!D96-L87)A=&EO;G,N M=6YD97)S8V]R97, 97AC97!T(&]N93H-" D)"6D /2`P.PT*"0D)=VAI;&4 M*&ED6VE=(#T M"6ED(#T M(#T]("=$)RD >PT*"0D)"0EI9B`H:60N;&5N9W1H(#P M:')O=R!N97< 1%1Y<&5%>&-E<'1I;VXH(FUA;F=L960 9G5N8W1I;VX :61E M;C\-" D)"0D):68 *"AI9"YL96YG=& /CT -BD )B8 *&ED6S( +BX -ET M/3T (FUA:6XB*2D >PT*"0D)"0D)1$9U;F-T:6]N"61F=6YC(#T ;F5W($1& M=6YC=&EO;B I.PT*"0D)"0D)+R\ 87=W('1H870G<R!E87-Y. T*"0D)"0D) M9&9U;F,N;F%M92`](")M86EN(CL-" D)"0D)"61F=6YC+G1Y<&4 /2!$5'EP M"61F=6YC+G!A<F%M<ULP72`](&YE=R!$5'EP94%R<F%Y*&YE=R!$5'EP94%R M<F%Y*$14>7!E+D-H87(I*3L-" D)"0D)"7)E='5R;B!D9G5N8SL-" D)"0D) M"0D)1$9U;F-T:6]N"61F=6YC(#T ;F5W($1&=6YC=&EO;B I.PT*"0D)"0ED M9G5N8RYN86UE(#T 97AT<F%C=&ED96YT:69I97)S*&ED+"!I*3L-" T*"0D) M"0DO+R!F=6YC=&EO;CH-" D)"0D):68 *&D /CT :60N;&5N9W1H*0T*"0D) M"0D)=&AR;W< ;F5W($14>7!E17AC97!T:6]N*&9O<FUA=" B97AP96-T960 M("=&)RD >PT*"0D)"0D)+R\ 97AT<F%C="!A;&P =&AE('!A<F%M971E<G,Z M" D)"0D)"7=H:6QE("AI(#P M6VE=(#T M<RYL96YG=& *R`Q.PT*"0D)"0D)"61F=6YC+G!A<F%M<UML96YG=& +2`Q M"2\O(&5X=')A8W0 =&AE(')E='5R;B!T>7!E. T*"0D)"0D):68 *"AI(#X] M;F5W($14>7!E17AC97!T:6]N*&9O<FUA=" B6B!E>'!E8W1E9"!A="!P;W-I M(&MN;W< :70G<R!A(')E='5R;B!T>7!E. T*"0D)"0D)*RMI.PT*"0D)"0D) M"79E<G-I;VX *&5R<F]R7V5X=')A8VAA<G,I('L-" D)"0D)"0DO+R!C:&5C M:R!F;W( 97AT<F$ 8VAA<F%C=&5R<SH-" D)"0D)"0EI9B`H:2`\(&ED+FQE M;F=T:"D-" D)"0D)"0D)=&AR;W< ;F5W($14>7!E17AC97!T:6]N*&9O<FUA M=" B)60 97AT<F$ 8VAA<F%C=&5R<R!A="!P;W-I=&EO;B`E9"(L(&ED+FQE M;F=T:"`M(&DL(&DI*3L-" D)"0D)"7T-" T*"0D)"0D)+R\ 4F5T=7)N('1H M92!$1G5N8W1I;VX 87, 82!$4WEM8F]L. T*"0D)"0D)<F5T=7)N(&1F=6YC M.PT*"0D)"0E](&5L<V4 >PT*"0D)"0D)+R\ <VAO=6QD(&%L=V%Y<R!B92!A M(&9U;F-T:6]N(&EF(&ET(&AA<R!?1"!L:6YK86=E(0T*"0D)"0D)=&AR;W< M;F5W($14>7!E17AC97!T:6]N*&9O<FUA=" B97AP96-T960 1B!A="!P;W-I M9&5N=&EF:65R<RAI9"P :2DI.PT*+R\ 3F]T('-U<F4 =VAA="!T;R!D;R!W M:71H('1H97-E. T*+RL-" D)"0E](&5L<V4 :68 *&ED6S$ +BX -5T /3T M"0D)<')I;G1F*")V=&)L("4N*G-<;B(L(&5X=')A8W1I9&5N=&EF:65R<RAI M9"P :2DI.PT*"0D)"7T 96QS92!I9B`H:61;,2`N+B`X72`]/2`B;6]D8W1O M<B(I('L-" D)"0D):2`](#D M+"!E>'1R86-T:61E;G1I9FEE<G,H:60L(&DI*3L-" D)"0E](&5L<V4 :68 M"0EP<FEN=&8H(F1T;W( )2XJ<UQN(BP 97AT<F%C=&ED96YT:69I97)S*&ED M36]D=6QE*&5X=')A8W1I9&5N=&EF:65R<RAI9"P :2DI.PT*"0D)"7T-" D) M"0ER971U<FX ;G5L;#L-" D)"7T-" T*"0D)+R\ 1V]T(&YO=&AI;B< =&\ M:6UP;&4 =&5S="!P<F]G<F%M. T*:6YT(&UA:6XH8VAA<EM=6UT 87)G<RD M('=E<F4 =&%K96X 9G)O;2!P:&]B;W,N;&EB. T*"0DB7T0S<W1D-G-T<F5A M;31&:6QE-5]C=&]R1E0S<W1D,6,W=VEN9&]W<S=W:6YD;W=S-DA!3D1,144X M-G-O8VME=#E59'!3;V-K970B+`T*"0DB7T0S<W1D-G-T<F5A;31&:6QE-FAA M6G8B+`T*"0DB7T0S<W1D-6UA=& R-'!O;'E&94%E6F4B+`T*"0DB7T0S<W1D M.')E9VES=')Y-$A+15E!86M%-E)%1U-!35!V2E0S<W1D-W=I;F1O=W,X<F5G M:7-T<GDT2$M%64IK6FDB+`T*"0DB7T0S<W1D-G-T<FEN9S5I9FEN9$9!87=: M(BP-" D)+R\ =&AE<V4 =V5R92!T86ME;B!F<F]M('1H92!C;VUP:6QE9"!% M96YT:69I97)S1D%A2VE:06$B+`T*"0DB7T0X9&5M86YG;&4Q-65X=')A8W1T M871E('1H92!S>6UB;VP 97AT<F%C=&]R. T*"413>6UB;VQ%>'1R86-T;W() M9'-E(#T ;F5W($13>6UB;VQ%>'1R86-T;W(H*3L-" T*"7!R:6YT9B B7&XB M*3L-" EI9B`H87)G<RYL96YG=& /#T ,2D >PT*"0DO+R!5<V4 :70 ;VX M8V%S97,I('L-" D)"413>6UB;VP 9'-Y;2`](&1S92YD96UA;F=L92AT97-T M*3L-" D)"2\O(%!R:6YT(&]U="!T:&4 9&5M86YG;&5D('-Y;6)O;#H-" D) M"6EF(" A*&1S>6T :7, ;G5L;"DI('L-" D)"0EV97)S:6]N("AA;G-I7V-O M;&]R*0T*"0D)"0EP<FEN=&8H(B4N*G-<;B(L(&1S>6TN=&]!3E-)4W1R:6YG M*"DI.PT*"0D)"65L<V4-" D)"0D)<')I;G1F*"(E+BIS7&XB+"!D<WEM+G1O M;'-E('L-" D)+R\ 57-E(&ET(&]N('1H92!A<F=U;65N=#H-" D)1%-Y;6)O M;`ED<WEM(#T 9'-E+F1E;6%N9VQE*&%R9W-;,5TI.PT*"0DO+R!0<FEN="!O M+BIS7&XB+"!D<WEM+G1O04Y325-T<FEN9R I*3L-" D)"65L<V4-" D)"0EP M(&-H96-K('1H92!P<F5F:7 ;V8 =&AE(&UA;F=L960 ;F%M92X-"B\O("` M9B!?7T-L87-S7R!T:&5N(&-L87-S(&1E9FEN:71I;VX-"B\O("` (&,N(&EF M(%]?:6YI=%\ =&AE;B!I;FET+71A8FQE(&9O<B!C;&%S<PT*+R\ ("` 9"X M:68 7U]V=&)L7R!T:&5N(&EN:&5R:71E9"!C;&%S<R]I;G1E<F9A8V4 9F]R M=')U8W1O<B!F;W( 8VQA<W,-"B\O("` (&<N(&EF(%]?36]D=6QE26YF;U\ M=&AE;B!M;V1U;&4 9&5F:6YI=&EO; T*+R\ ,BX 5&\ <&%R<V4 86X :61E M+R`S+B!4;R!P87)S92!T:&4 <&%R86UE=&5R(&QI<W0 ;V8 82!F=6YC=&EO M;B!D969I;FET:6]N. T*+R\ ("` ,2X ;6%K92!S=7)E(&9U;F-T:6]N('-T M87)T<R!W:71H("=?1"<L(&AA<R!A;B!I9&5N=&EF:65R+"!A;F0 =&AE;B!A M=6YC=&EO;B`B97AT<F%C='1Y<&5I;F9O(B!T;R!A<'!R;W!R:6%T92!A8W1I M8R!T>7!E<PT*+R\ ("` -"X 86QL('5P<&5R+6-A<V4 ;&5T=&5R<R!A<F4 M8V]M<&QE>"!T>7!E<R`H;&EK92!A<G)A>7,L('-T<G5C=',L(&-L87-S97,L M(&9O;&QO=V5D(&)Y(&QO=V5R+6-A<V4 ;&5T=&5R<R`H8F%S:6, ='EP97,I M(&1E9FEN:71I;VX 96YD<R!W:71H(%H 9F]L;&]W960 8GD 82!T>7!E(&9O ` end
Jan 05 2005
next sibling parent reply John Reimer <brk_6502 yahoo.com> writes:
James Dunne wrote:
 I threw it on a digital camera!  How nice... Enjoy it!
 
Lol! Now that's a McGyver move, if I ever saw one!
Jan 05 2005
parent James Dunne <jdunne4 bradley.edu> writes:
In article <crik5r$10m2$1 digitaldaemon.com>, John Reimer says...
James Dunne wrote:
 I threw it on a digital camera!  How nice... Enjoy it!
 
Lol! Now that's a McGyver move, if I ever saw one!
lol. Yeah, i'm resourceful!
Jan 06 2005
prev sibling parent reply "Carlos Santander B." <csantander619 gmail.com> writes:
James Dunne wrote:
 I threw it on a digital camera!  How nice... Enjoy it!
 
 In article <crievv$qhv$1 digitaldaemon.com>, James Dunne says...
 
I dont know why I'm posting this now, since I have no way of getting the module
on to the internet right now, but anyway..

I've written a nice set of D classes today that extract the type information
from a mangled D symbol, like "_D3std4testFAaZv".  You've all seen them before
I'm sure.  Anyway, this module will transform that string into "void
std.test(char[])" (with optional support for ANSI syntax highlighting on the
Linux console    Ooooohh Aaaaah).

A nice way of storing the types in classes is employed.  A DType class is the
base class of any D type.  A DReservedType class exists to hold a basic type
(int, uint, void, etc.), but I should really use DTypeInt, DTypeUInt, DTypeVoid,
etc. instead (separate class per each basic type).  Every class overrides the
toString() function to return the D type as a string, which is very nice.

This should prove to be useful in writing my IDE once I get the code-parsing
module done.  Then I can have both compiled-library AND source-code-parsed
code-completion info to play with!

P.S. - I'll release the module once I get my network switch back from a friend.
I left it there at a LAN party... dammit.  Then I can connect the internet
modem-equipped PC with my development PC and upload the module!  Yargh.

Regards,
James Dunne
A couple of weeks ago I went from Outlook Express to Thunderbird. Both files attached yesterday (this one and phobos-nogc.zip) couldn't be downloaded by TB. I mean, the message is downloaded, and the attachements are there, but it just doesn't open them. I had to save the messages as .eml and then open them with OE to get the dsymextract.d (phobos-nogc.zip was a no-go since it's a 2 part message). Anyway, did anyone else experience that? Does it have a solution? _______________________ Carlos Santander Bernal
Jan 07 2005
parent reply John Reimer <brk_6502 yahoo.com> writes:
Carlos Santander B. wrote:

 A couple of weeks ago I went from Outlook Express to Thunderbird. Both 
 files attached yesterday (this one and phobos-nogc.zip) couldn't be 
 downloaded by TB. I mean, the message is downloaded, and the 
 attachements are there, but it just doesn't open them. I had to save the 
 messages as .eml and then open them with OE to get the dsymextract.d 
 (phobos-nogc.zip was a no-go since it's a 2 part message).
 Anyway, did anyone else experience that? Does it have a solution?
 
 _______________________
 Carlos Santander Bernal
Hello Carlos, I'm using Thunderbird v1.0 on WinXP for email and newsgroup management. It worked for me. The attachment appears as a file listed in a separate widget just below the message window. It says "Attachments:" to the left of it followed by the file name. I'm not sure why it's not working for you. Perhaps there's a feature in the settings that enables/disables attachments? Later, John
Jan 07 2005
parent reply "Carlos Santander B." <csantander619 gmail.com> writes:
John Reimer wrote:
 Carlos Santander B. wrote:
 
 A couple of weeks ago I went from Outlook Express to Thunderbird. Both 
 files attached yesterday (this one and phobos-nogc.zip) couldn't be 
 downloaded by TB. I mean, the message is downloaded, and the 
 attachements are there, but it just doesn't open them. I had to save 
 the messages as .eml and then open them with OE to get the 
 dsymextract.d (phobos-nogc.zip was a no-go since it's a 2 part message).
 Anyway, did anyone else experience that? Does it have a solution?

 _______________________
 Carlos Santander Bernal
Hello Carlos, I'm using Thunderbird v1.0 on WinXP for email and newsgroup management. It worked for me. The attachment appears as a file listed in a separate widget just below the message window. It says "Attachments:" to the left of it followed by the file name. I'm not sure why it's not working for you. Perhaps there's a feature in the settings that enables/disables attachments? Later, John
Hi John, No, the attachments show up, but I can't open them (nothing happens) or save them ("unable to save"). And if I try to see the message source, the source window shows up empty. Then I save the message, and OE can open it and the attachment, but TB just shows the message and no attachment. And I don't think there's something wrong with my configuration, because email attachments work fine. Kinda weird, me thinks. _______________________ Carlos Santander Bernal
Jan 07 2005
parent reply John Reimer <brk_6502 yahoo.com> writes:
Carlos Santander B. wrote:
 John Reimer wrote:
 
 Carlos Santander B. wrote:

 A couple of weeks ago I went from Outlook Express to Thunderbird. 
 Both files attached yesterday (this one and phobos-nogc.zip) couldn't 
 be downloaded by TB. I mean, the message is downloaded, and the 
 attachements are there, but it just doesn't open them. I had to save 
 the messages as .eml and then open them with OE to get the 
 dsymextract.d (phobos-nogc.zip was a no-go since it's a 2 part message).
 Anyway, did anyone else experience that? Does it have a solution?

 _______________________
 Carlos Santander Bernal
Hello Carlos, I'm using Thunderbird v1.0 on WinXP for email and newsgroup management. It worked for me. The attachment appears as a file listed in a separate widget just below the message window. It says "Attachments:" to the left of it followed by the file name. I'm not sure why it's not working for you. Perhaps there's a feature in the settings that enables/disables attachments? Later, John
Hi John, No, the attachments show up, but I can't open them (nothing happens) or save them ("unable to save"). And if I try to see the message source, the source window shows up empty. Then I save the message, and OE can open it and the attachment, but TB just shows the message and no attachment. And I don't think there's something wrong with my configuration, because email attachments work fine. Kinda weird, me thinks. _______________________ Carlos Santander Bernal
That is kinda weird. I'm able to simply right click on the file attachment, choose "save as" and voila... it works. Strange that your's doesn't want to save :-(. I hope you figure it out.
Jan 07 2005
parent reply "Carlos Santander B." <csantander619 gmail.com> writes:
John Reimer wrote:
 
 That is kinda weird.  I'm able to simply right click on the file 
 attachment, choose "save as" and voila... it works.  Strange that your's 
 doesn't want to save :-(.  I hope you figure it out.
 
Thanks. _______________________ Carlos Santander Bernal
Jan 07 2005
parent reply Lars Ivar Igesund <larsivar igesund.net> writes:
Carlos Santander B. wrote:
 John Reimer wrote:
 
 That is kinda weird.  I'm able to simply right click on the file 
 attachment, choose "save as" and voila... it works.  Strange that 
 your's doesn't want to save :-(.  I hope you figure it out.
Thanks. _______________________ Carlos Santander Bernal
Really strange. Mine works too. Lars Ivar Igesund
Jan 08 2005
parent reply James Dunne <jdunne4 bradley.edu> writes:
In lieu of your problems, I've posted the zip in the bindings project at
dsource.org.  Here's a link:

http://svn.dsource.org/svn/projects/bindings/trunk/

There are all my other goodies there too: id3tag, dparse, dlexer, dsymextract.

In article <croruo$1ugf$1 digitaldaemon.com>, Lars Ivar Igesund says...
Carlos Santander B. wrote:
 John Reimer wrote:
 
 That is kinda weird.  I'm able to simply right click on the file 
 attachment, choose "save as" and voila... it works.  Strange that 
 your's doesn't want to save :-(.  I hope you figure it out.
Thanks. _______________________ Carlos Santander Bernal
Really strange. Mine works too. Lars Ivar Igesund
Jan 12 2005
parent "Carlos Santander B." <csantander619 gmail.com> writes:
James Dunne wrote:
 In lieu of your problems, I've posted the zip in the bindings project at
 dsource.org.  Here's a link:
 
 http://svn.dsource.org/svn/projects/bindings/trunk/
 
 There are all my other goodies there too: id3tag, dparse, dlexer, dsymextract.
 
Thanks. _______________________ Carlos Santander Bernal
Jan 12 2005