D - current D grammar
- Peter Hercek (13/13) Feb 13 2003 Hi all,
- Walter (5/16) Feb 14 2003 There's both at www.digitalmars.com/d/ Download the compiler, which come...
- Peter Hercek (303/319) Feb 14 2003 Hi Walter,
- Walter (9/49) Feb 15 2003 No, it's all written by hand.
- Peter Hercek (137/145) Feb 15 2003 It's quite easy to find easy errors of the grammar itself. I do not have...
- Walter (8/21) Feb 15 2003 the
- Peter Hercek (12/14) Feb 15 2003 I really do understand this :), also I do not consider it important for ...
Hi all, where can I find most current D grammar? It may be a source file or some documentation. Please, download location and filename. If the process could be reasonably automated I would like to put it in an xml format just to test one xslt I have, which transforms grammar descriptions to a nice html. Result would be interesting :) I hope. I believe result may be available to public then. I mean: is this allowed from the legal point of view? Peter.
Feb 13 2003
"Peter Hercek" <vvp no.post.spam.sk> wrote in message news:b2hler$64r$1 digitaldaemon.com...where can I find most current D grammar? It may be a source file or some documentation.There's both at www.digitalmars.com/d/ Download the compiler, which comes with source for the parser.Please, download location and filename. If the process could be reasonably automated I would like to put it in an xml format just to test one xslt I have, which transforms grammar descriptions to a nice html. Result would be interesting :) I hope. I believe result may be available to public then. I mean: is this allowed from the legal point of view?Yes.
Feb 14 2003
Hi Walter, Thanks for info. Although I was not delighted when I found you have completely custom parser implementation. I wanted to write some small conversion program which would select the grammar from sources directly to ensure that it is correct and current. I think I would be able to do so if you would have used yacc or antlr. I suppose that the file parser.c is not generated by some parser generator (it was somewhat similar to antlr [http://www.antlr.org/] output). Well, finaly I selected grammar from the web site. I was able to automate it only minimaly to get the grammar in a text form (see the attached text document). The conversion from the text document to the actual html file is automatic. The grammar has errors: undefined symbols (they apear during xml validation); to many top levels (you can see them in the resulting html); plus some semantical errors probably too. This is mostly because the grammar specificiation on the web is not complete and partially because of my own errors ... part of the work was manual :( Please, check the txt file. If you think that there is a way to get the text file correct, then the rest is very easy. I can provide sw to transform the text file to xml. The html form is retrieved using dtd validation and xslt transformation. I would be very glad if somebody can help me get the text file correct. I would be forced to study your custom parser and I do not have enough courage for this. One of my reasons to get the D grammar correct is to post it to antlr discussion group as example - I would like to make them to extend antlr parser generator so that it generates the xml file :) I'm not successful with this currently :( antlr generates an html form of a grammar, but the html file has less features. The resulting html contains both forward links and also backward "multi-links" using popup menus (dhtml). It works on win32 IE 6.0 and higher. May be it works with something else too, but I never tried so probably does not work with different viewers. Whoever knows, how to make the text file correct, please, let me know. "Walter" <walter digitalmars.com> wrote in message news:b2idtp$qjf$1 digitaldaemon.com..."Peter Hercek" <vvp no.post.spam.sk> wrote in message news:b2hler$64r$1 digitaldaemon.com...begin 666 d-grammar.zip MV7+<N/&=5?P'RHF/M2W)V;?01TJVI+4J6EM9R?96;&_ F<',H,PA9WE84CSV M*ET`;12487*:6#ZI\&?<M"=_QX67N/ *U:M;O<E>U:L5K3JAUH!<<4;V'Y+L M3OE -46I1I&72_JOON[H3%&51-U/(NBC=EJLZ3G]LZ>5'N>8O&CJ?>+HQM:^ M`WTR4&& B8'F!JH,U!BH,]!7`Q&\+A7JBF2OZ94<9P-8]K?3KB '<>/)$<X^ M4G&L*7RJ5AU=T 9//HV2NC0,W_-^/F=72$X*'-(I6TGA3?:2545S+4'9+ GQ M?.9JQ_BFKOY-F]K:%B-LO]/$=%O(3H V V1KI2#A'M7#I E82%:(AE$27:,) M%C2=0.GO#LH1 M*( _Y-+UX8ECZ^-MTP7-AJ8$T4N2'.NO'D"BAB]L#A=AFN5$LOR37E_6S4R1 MG0&[Z1) 'B8`Y"X0P)+7#G"]6I?TRI0JJZ?F(:;JH889G?0+`\^+ONQ,J:2+ M\V$K,5R"%>=B" !< S':?DT!KOH21"MZ"0Q+VPAFS%G6%5B#P5R!,DRM]I+9 MH6BOJ^FRJ2OV7].'AG:]Z<.B-G. 3Z5^BJJDS9PG6J8V9)2V*SHVU87Z*VT: M-C.,H+GNK2X+KQOVU0[:NN%!<VJ':<T'QRAFU=>B887I>[=DK0&;& S%6TT- MW8,O\-X#S M3Q4Y8+NF4S=)!6P*N7&8#Q M0>8Q0,B! )EBS)+WH.,K:-*+[2*/RV9=G4CWA:J6V"/N]'W<*Q&E?.0)>$.? M*6N[L#Z!17-)-\&M\[&O1DU*5*>:F4$C(&C(P5,&4AF512A R2HAE;L $1T< M$4;E!I %!V6$1VF+Q;XL6C:]X$VST,]F>M5BV6F_$F4\[JNIZ*$5P%VO&[O" M (HF;]U(:SK<?)L`VI4!4!A$620*N C&P;2/9SA]--G!X1D'< 3C/,O-\MP4 MSL^;O%0416X-B\ESUM0\7^N8=FK21_+HJ]%ZS[3'*F. O98/+L"KXLJ )C_B M6U::=(?W J_CMBU0KXZNUH-]% >$_<H:3G<(&0")Z*X)4QL/KDP==>C(SYMP M:C$Z'KPLZ^D71\41S]<'U A2J$IB774WDO668K %LE(>2[\4"XJ17*G8K[FH M<!NS1?;L[&*<A!UO5;SDW=M/XGV9WBQZUDR5]^!AQVVZ#CD(:<(TV-&-ZSQY MX: \&)K<VUY+6-8+R9.N,[!,[N]H!1Q*^C030D$Q(7SI-;1M332S936Q6^$& M+?GO;<F_V9+_CRWY?VS)+S9M6PF(S=J6`G$)<4T3GXMY]K9YVWC:7938D66X MF).AJ9TF 3:^IJH9__6J\)%RIQQAY4LK%!>-#IKLS)1[Q&,1+?-T_%[[2AR, M[4P[8YB>CU05<J6)+Y9GYTLV[SQ5'DX<C(SD>SZ2\<58OK$*Y2G):-:1G%LP MCJY\K,J=\2K'CL[.Z.'AR6_(F":A+%^.LV Y8HP\0[N=Z<6+44PA%U_:GAC? M=/?^VG PX 3P=I[=$3P_`IXT\87R[)W8Q7F*/)PX01O'MS^2[VZ$+TU"T3P[ MJ]MNSJX\A<+UQ2H2AZ5QPN[N`&& :V2(?ZB"G0'\CP&\OFJ)$M_02Y^=)["0 MA\?U88;PQ"AF1F[<AN_C`U4!;Z OS 0'U1$2G&Y'2+S=!\VB%Z]&U&G53X.L M;PXWBMD#MX-JEX M&F5'E)C _]FV<2IO;O 8'3+^=/">J*KY?--/<NSM`[&LA(BC9RHTJHVG*4KY M<WF-ZN)>%:VO2]U)>VSZ#MNS KA.=U&_R:M8%_=+W=5>%UCGM>/<'B"[A(OF MVD.(FU(7=="N$")-Y)!Y8Y8[9PZY''\K$8QG'IS?&*J:=M_=J6(< M<M*&4> M:+:THDW8G?$6S#U[LGGH4SUSW<(#AY'.T 4S/X<K:NDLANL3[]P\N5GMU)9) M/?%(X*VN7#V M]?N42#V M8+"/BF+!-"HY+"$F(50K(G;;R7*J(IP#V0:*.&$9<WCP-:3<X1%C<L87XXIO M&YJ!(0D"50[/?"(3Q0UA6:Z>N+E!R& X\XF^/.<J<#P**5*9BS;WJR$ZHAI2 M)(%J'XN;_+KB7W$5IN^SXB\&>' J%I&;#Q M!5UP"RY?PF7,K5!P_DI7$_G,`RRL.&\ALZ!5B%G6:,M2SA;-RQD7E3D*L+[T M]OCKNG-"Y',/?=48>?J1P[-%K.?CN=B'2>[LF\P(X'F(PGW_K%Z1O*QGU]+; MH$2O;(6^L.ZV9;AM<!X'*ITN!+W'MX.$7/"(719P:0REH-^=)HA,0T&X"0\L MVK KLVV*U1LJB0Q>5*5:\CY%K64?*VTSH"6B7JGFR:ZK]GU1]AC%)3V>&X<G M5X<T0L[7E.5NMN5F7U(T=I-CC,<]: '_\< GG"H%(^0-4+CKM1H/Q*N=P+]Z MU662*W2:'OJ&`0V.-WR",YR =$;3/^:(:,BUW;/PI"1-_ =02P,$% ```` ` M+[5.+BQ^T#D.( ``5IH!``T```!D+6=R86UM87(N:'1M[5U[<]PVDO__JNX[ M4)/+R \];&]V[U:V)J575JJ38UTD.]G;S5Y1,Y 1RQQRE ]+BI-\] / %P!B M0*!)#J HJ91%8-! H_O7C08(`F].K]Z>C__]W]Z<GAP<D[]O3ZX.G)LD66ZC M?Z7>I_W141 D*$BVK^Z7:.1,LM3^*$%WR>Y-LO!?.Y,;-XI1LO_^ZIOMEW\> MD5HNK_YV?H(?'/+?SMQQ/L\PX=[==KQP?=_9_("BJ1NXF[\41:(;Y_/"C>9> ML.VC6;+W%5J\=D ;VUXPQ0WN;>.<JG3L?+[UILD-4\[UO7FP-\%E4505O.:K M7A &" N%4ES[*7E.HQ G;MR JO4ZR62R?8N\^4VR=QWZU8]!PK/]1W0GL(US MJM(EV]>^._E8YJ.[EWD;<7+OHSTOP3*:O'96-HON7M69>NU<XTKG49 &T^VL M2)JL6OSD1DYPAF5WQS5(L]^Z=^<HX/)G8?3$VW_QVO'>,/7O^"B8)S<X]_GS MJFK'FSDL%W_W?LP+CO.JF;),:U*2UTS) EVOROQE=]>;%2F<P'P6J=U=ME,A M%0XFOL6 "6]W)A%RDUQB3[GNA]^&4T38H3_N3,-)NL (RRE.?$123T;'9Q]& M%2$EVJ&HVEEF(C_'.,75%!I0%?TN5_RK9RM*>T& HBL,=T%,F4A^K$H+/%^' M7^%_F4H)TBHTR]N =9[2, )A`7<%W?>DB,C/C3=%E2IK-G(<O W3&)T0;RA: M7M9C:LJXX='MC9> T6M)D<KPCXK""V\:D%X0QS9J:OT<N9]J=B^TKMNPJK$C M[%WD84^-?<Y!,+D)(XI5P?5\&UY257X7WA[A;A& _(DTC<<9-/,"1!LFGN0^ ML,(P> =.1IA"JJP.1)]*''55^,W^BZ>.ZZ,(>S=:W G"Q/$"+_'P,/D3FFYL M;(SDOC)(?9\=*YQBL*AJ%P<)D)O-W6$IONPA%YASBS*INX'C3E <8_'G*F%L M!>]JU+C86RGVFF*,U65_V-_$XQ".^:O"..XCW:NC NWF<^SD"7L,;%_SY?)> MJ0H*H4\^T.V$LQF>[F7T6VRK6US5)4$UAN*(M39\%BX*SR.R"<2;W6(N>OCN M^&_.Q'?C>'\TI_/*TY?C8^>OD;O LR-"A\N^)/G8;XZOPJ7CHT_(=^+[!9ZY MQ'MO=DD^_OD]G>*>G^&ZR3\'1:5^,')(<+ _^N*,S*N\F8>BR\2-DM%8R'BS M_(B"T9C^:2Y]$;GSA3L:9W^;R[\-IZF/1N/L;W/Y,SP S"/7OXC")1Z_[[&L MGGJF?DT'ON?&TNK$7VB=NYG)GWXW?G.!4Q>YDR :N,8=>NF<HSMOXOJEFV * MF\[6YDD\<9?H$OTK1<$$YSQ]2L"2UTDYO[PX^+9T>A "SM[>/G&..'M<<GIU M<'A^4KE&AXYD^Z.7+UY\2?WD%>[WU7'9F9AF[EX=DURQI]=B3W/)+V_N8R(> MPSO:K7')6<\.4X\%62E&"8(P.]!P2^7VKM=2I%*S>_5":I54*6I[_0N4\!!* MN.+JN:X$4M6SW?6,!+4N[(*[8(:Z]?;J.;A78E7/U8HQ`G^UE*"/?SI7)U%> M[!&1E%#B MLF6(TZG2]OR.8IE*7.=BEKEZMCDH4PJZ?(TM%A?=XHZB%K$9;2/D 2-4(^*D MY'B 8.&6-*L539M06<G2(("2`=FAJ_G[HWP'$-G"(U]9[DGCJ\/9_P.&A^<H MH0O)V=^609VP9-X K7(9O7=A05V4F2B/O;E'%E;)GY:"O,3C>3 _QY.ER/7U MW5,9(TC&=CK=8JOM4_3F;H!=[<K8Y%^59'F6?!2[XE8P5\^SQ!R_!(WC;2[= MD2.4J$<;E1SJ<B!*-6L'C:(GW50:N715-E[Q6F_%5&*SUJ=.]%*]%I0ZWM4O M'GL2N]K_,B\Q.6Y,O:YBI D5JL3<VX!=[BGZDKH9V$?J$4WVIB%>\=9Y!=A' MW8%=_ Y<"O;5[\5[$ON:P*[AZPUK[-Y\!":AIK/R11=]O57K>%^*-;.G?ZA] M>V>!0*U=M9GUU^[7EMK]AZ5V74OM7EMJ=V:IW<!2NY&E=A-+[7ZRU&[SH*3] M2KH_)N^47)ZBNWS*7SRM7J]:57:]_5%VY]TD<?V<R>KY0;%I6OXWVBW3\NL5 M0]J[4?555B8GH\B8;FM%$71=C[Y>X*JP%_A*EU0SWDHFUX N?384)2_3V<R[ M*\MGR6Y5KJ]K7L&;S+8^^F)R'G O>\77OPQ$^L1&J1+YL &:> N,[W'^`)F7 M'GKD-?9HG/V%U$"]7.[L(/38]MUIT1,FT;*N4ZZRTY9S;1[!8) QL*G0WS]X MQ+'!+VM?+5Z1YAQ DP)HW -H?$A#YQ B'\+>.80HA2 IA6CI/:2E]U5+8*,J M_)>I.64.F=+F*[^5Q^C+F,R"KS7ML)>YP&_#X']1%.:!%9NR%"8T,:0_LK4. M$O+!SAQO!&35"#D0C%5+5:L'=BKGN& ^2ZT!!S5>#SOGU4CQ68P"TWL9V Q$ M][=A--47'S.LY[1VY.5>QPG9H000FTN^-X+1S0,(7;P`4<4H`G4O34(`V;4' M:8P<)P<A(U^P0>CN$P0 F[ QD PBDXF;3&X =" `-7?C1A R\ BA"Q=+']V! M* .8//-O( &D4_*^#D0W<U,?PNP4^?2[2R ID' 9(8PZ-(400YS%E&X5!1"2 MH]< 9$$*\:'H;AF"?"BZ2U P!<F3D$:086+FPF0SP[&+#Z7S(=Y[1D(H"%T( M9B':"%-(][P`1K>,O$^P 7L9A0F:P(;?)1Y(0<KP D_DG B0_Z#G'$/(HA#B M]""V]"GTL6<#Q:6WP%G4[0VP/2]A7B-!5V^R<V6E7^159\V*3'6^-"-="Z^. MW!&.<C%=X.6_S:]_4V]:G[ I6++#U[1&[OU8[667:6W%BAR[O*:J0T36KO27 M$.Z>0UKZ Y] `$'((#P2NA9-MFIV#F]V#FP6V M3G>9NU)$ICJ:[ZKWF8G]_<(G5[P5K2KFH1J?30[D<-\NNT1.&(B7:(*GR_E3 M5]TW0E3)AO;V%_;.!Y;U8:!.?;R4R?'+ &.DR*4PKYSLN.2X)-/00GY_D=2N MEGD^],/)1]69UN6AT^0"./;<::Y<_H% V='AX"GGJF3/+AX$-FP 1Q\XJ^'" MJ'M8VBY/#Y M6;$9 B \?[3$ROO 2Q(LC]&X>++$R"7=YL.AII9EE34606*.)<;H^3[Y(#PI MIIRL5]<.%3TAS_+)>N>RI\T:"EV8E/'7)E6I<R].6/T4O;*C&.E8HMBZTJM) MM87!CA)0IMTR DU]WJ"-GGR25GR*)YELV(&&*%UANZU:603EK,)(>HVV2YO7 MX8/KI^PU<,5ZS>#L7MQ MA<R-/'OATG-B/I0(AW8E*"M+'1GV"A\5,V9QJMIB6H.CPKDQ-+Y%M^*]C)RI M$/!3%MI\RM[B!!/ 1X(<7:,3)-/TKYR+*%RB*/',]E+1G7>1Z^?4]RLN!19* M3KFCSFCTE.S-,YIOE.^QY!OZ^M*4^<2OY(]A53[MVZOQM[;9Z6HF5\U B^V? MY=9/FNIH#EKR<.+'+$!D5BHO.U ,$!X%EH>+A97,=H6)!] -44_<(7N0"KNS M%7W_67>9 BL=EO6<>\%'=XX8'R7FV((8=VD=EA^77 -3(AHEKQ36VKYXKM>: M&Q>/!EMO\_SI8FMM6SA\<ZUM"^\JU]HV_QYRK4W7#NA;:^NU([G7VCK_]GRM M37,G;G<W=M(8P7S\Y$).80PMXHSAC*/\C:KY;NMU#E<RIO(]U0Q;8DY'<1(7 MB)FKFE'SEA(`8H W)/VO_>-'T7SEIX*07WZQXT\JAA02B\6O+\V8-X)I+= U MA;U7\D=2X:O7)8\!--][`1819"7]PHTG;% )U9HP/=16G*"Q^JRR+Z69F1)_ M8YI'`C=W;^5[GS\[U58OHQ<_%9F^*;"[RK8VC\) ZI&-D:[/_W 1QLG,N^,S M(S?F:_V.7J' -^TE/-%EM:69R[\BY\1S.>2MY5NTN"[F(U5?[?D+Z>)I3-[J M,V 8BSEKF)^T84PTI"VE2;+UZ731:(BIL0RT++$>FA?-4X*M[-NTVB;/^N=% MS4'EG=*>B(I<*19ZR&1RI:R&,Z-\%[V+6+GS:4O0TV%*!-O72H"QM375M*>L MR=PL6H-6$(<V6A7(K$MT.) \"*;X?\X9"#F68*G+6"WN^UF)*-UJ6^.HUI V ME[0$F&:6:GY&B93F^EICA6]"&RQUWU)C;CA(J;MJ'3'VBI1FEFKS\:8!"=!% M^'R'.&ER24O0:69)A,V^>N+?7.$#Z./&(^CC_N-09!^=-/)N?!/:ODUP9)EW MJ_$W'-]V>>/-$E:60H8ER.BQ51L:V6M?X=4^H-ZJS42OWH?2W?FC4F[C4KU> MO0^DNY+KGN&5/[0^/YXN/]X>/RI</RH-;SPZ]3ZJ*&OCD859S %B\$I;S[[$ M9K3G7]Q4*YM]23 <SOSK8#IEI<DE+>&FF27I(-?D%9JK?0 ]G6L$,,W5/J"> M]M1;(V_ -Z'M"P3#SU]3B/P-QQ>\3;E5+2YI"3?-+(FX>:X$2W-]#Z"+V[_] M+O[:0Q>-3)YO0MOD.>O.[T83N1N.P;\GYZ2SDA0R+,%%CRT1,L^4D-&K\X%T M#X M6G H/2.(1(S2"&Q ,6/D+02LU;+6 +9VX6R_F!IH)YD(]0%QS42I#XAKM?-C M#S(:C=E4DS-\0"+XNU($;(5--?VH[+Z9!Z]Y+VT/OLI=RYS?<-RU-=\E*I$( M=#TP M#R*LB=S.V"%*V:6<.>HXQF00!QSNNE(-;/BDKP+ID:SJ(R6ICH3PS(Y^5I P M^$"57DU8ES$1(^IS2YNBYM:XXM>+M($E?>]36VRR`YM:0(+Y5LGXT(V]2>:! M9EW:ZD-HOYOU(U!J7[S_KAR <EH',UF5VD%,[2QU2I]O<B_8LA/#R 06A+ + MQGB/.1KS:4M,'8<B6V*.)<;8X6,T9E.6&!(N;<(C$I]AB2UN6!V-N:0EEL2! MTA)+W-5LY)K1Q+ICD(72V&E)<BTQ>!7=,XRQ*5L,<=?F89:XM"6F#N(%PQ*; M,IQ4KKQ&6)S]C9PXN??Q+Y,TBL-H+T%WQ;1&G-<,9QYF<KFE^L!YUE Z%K4P M)].>H)<D*RZ/K%T,R1H329^[<7+D8K)L(DX?R*2Z/BFTHU%10P_L1OA2 MF" M;XH= )]0KRDU[WQYW9W92=>*H$)>M<0T'"F+6\'48W &;3[=NT:$YK5U(1,^ M7?#FZLL45 MP\&#Z?[+7C%A$I^KCV$[H!L8B)'6MS7PN1UAA%UTUX:)X."%M7H[(!'E[,UZ MV51J%B+UBL1!]EBL![&;],VJ:HUM8?$?"N_Z&X-A(/R6\+5R+FD?"JWUQ[QS MO9]P<% ]-TT-I!,21()"\B^$^BR81#G MB[0RT!9RY4S[=^&6PA6W,FB+6)"O9 =$7U(V&Z!BRAAPC-)U-\VC`W0/GI$R M^0T 4%76]HT,0Y$3MV%N9*(L:^_]:AMBH%J2[:,9AJ*F&6?61%S?V .5L71' MV]. 2I?L:AN&UB/*F"6U9XUW-OAVJ'=^_Q]4Z[5M \/0^1RS-41CXW<X0H5> M0DS<%CP,:"71?6M3EM'1K9DH)M-Q^F !A>OMFMCZS M<WV_/P8,3V3H%863% M;;QQ^.+T9P=AHB5/7'8IVJX=`Z4Z:(F*OZHCIPLWPN)(R.2I?(3$36O1F?!! MPC\+XB1*)^3U?GZ.4"U/#J0.O\V1L*$-)Q8_]'S,6ETESB3=LH.V9E6(_$)L M&Z.$Z!C-<B!*JAH6%*_<.1X-W;E<BVJ/DG<USO8-D2>(]^ 5NGSW9"5,UHY_ M%X>!2S(:%0ACVB8FLZH\K,NZUI=YE>*NB2+S6]*1F=_0)!*FQ$M5K$'E1YQ< M>W<EU-*G*-78%:6$,&-*V_,8V'JMK)C(X"U:7"/")9.P:LM*>?S6^]=6WQVZ M*59XVB8F6!4)7)EZ*LMC%&''ZM1P89FTM ZG8D;4^M9ZD-L=F^;&VB&<S="\ M%UXOR=5/5!2C<?7<5).9!SD+$A3-W G*V^'3\K:>/I,V1G_Z6MD:K?0PG-[G M*B:/AM!<N4NC$I8VYD28Y5LT.%$/`W;J3<*FKLQ(L )"6 JWCJ^^!%R*UUQD M4%%5\&XI)<XX^A*0&0*;US;R'L3<9V* ></*,>GE"Z<$D-&X5%*U'YMD50U' M35[!'=AA*$>)S'=SR35$3-UWTLR_TA&A`EX^1+!([%9P1DY'9$X;U3( TT/- M^ J909'OL1W FVJZ5V":,F,6F^G!KC6 >(RVA _G(1_:"-9^=7[UR/72N4*+ MI>\F9 -70<2-6[)3*R0%AR/Z)&=.J8&B!ZP!U?/D6E%/I(I:RNTKV1M%:;:\ M:BQ*N+8TR.JS9C;DFGN*SNRUZHHQZG3 U2>TU/9*3L!D]<0FY0M,ZO,=/KA^ MRE;(I]OZ`8Y9N"9R+8A][4L#YA;T8&-F]51-/'2UM7D*:&N+B#I8AP,)-L:4 M'/6S;E"HV3&#Q4&L=ZEG:[B4 5(0)VXP,3B(JJ \\#VWOB(HUFL/.:+ O9PC MK7$U-VY):-\NLN>OOY3E-L7UG6E>U)]ZNB:6MJ=7I=H*-$MQ*%_ZHCUC';N0 M(5=(AYLQ1 8ZLD1)-_I2F#JNZG4>Q!F4L>0*=+!S(+9&WJ>)9MJ7..'X+SBL M^.'_`5!+`0(4"Q0````(`*FQ3BY$G(N51 P``-(U```-``````````$`( `` M``````!D+6=R86UM87(N='AT4$L!`A0+% ```` `+[5.+BQ^T#D.( ``5IH! M``T``````````0` ````<0P``&0M9W)A;6UA<BYH=&U02P4&``````(`` !V )````JBP````` ` endwhere can I find most current D grammar? It may be a source file or some documentation.There's both at www.digitalmars.com/d/ Download the compiler, which comes with source for the parser.Please, download location and filename. If the process could be reasonably automated I would like to put it in an xml format just to test one xslt I have, which transforms grammar descriptions to a nice html. Result would be interesting :) I hope. I believe result may be available to public then. I mean: is this allowed from the legal point of view?Yes.
Feb 14 2003
"Peter Hercek" <vvp no.post.spam.sk> wrote in message news:b2kf62$16mh$1 digitaldaemon.com...Thanks for info. Although I was not delighted when I found you have completely custom parser implementation. I wanted to write some small conversion program which would select the grammar from sources directly to ensure that it is correct and current. I think I would be able to do so if you would have used yacc or antlr. I suppose that the file parser.c is not generated by some parser generator (it was somewhat similar to antlr [http://www.antlr.org/] output).No, it's all written by hand.Well, finaly I selected grammar from the web site. I was able to automate it only minimaly to get the grammar in a text form (see the attached text document). The conversion from the text document to the actual html file is automatic. The grammar has errors: undefined symbols (they apear during xml validation); to many top levels (you can see them in the resulting html); plus some semantical errors probably too. This is mostly because the grammar specificiation on the web is not complete and partially because of my own errors ... part of the work was manual :(I know the documentation incomplete. But it's nice that you've found a way to automatically find those errors.Please, check the txt file. If you think that there is a way to get the text file correct, then the rest is very easy. I can provide sw to transform the text file to xml. The html form is retrieved using dtd validation and xslt transformation. I would be very glad if somebody can help me get the text file correct. I would be forced to study your custom parser and I do not have enough courage for this. One of my reasons to get the D grammar correct is to post it to antlr discussion group as exampleThe parser isn't too hard to figure out. It's not LALR(1), some of the constructs require arbitrary lookahead. That's the only tricky part, but that stuff yacc should be able to handle in its sleep.- I would like to make them to extend antlr parser generator so that it generates the xml file :) I'm not successful with this currently :( antlr generates an html form of a grammar, but the html file has less features. The resulting html contains both forward links and also backward "multi-links" using popup menus (dhtml). It works on win32 IE 6.0 and higher. May be it works with something else too, but I never tried so probably does not work with different viewers. Whoever knows, how to make the text file correct, please, let me know.ok.
Feb 15 2003
"Walter" <walter digitalmars.com> wrote in message news:b2l2oh$1o27$2 digitaldaemon.com...I know the documentation incomplete. But it's nice that you've found a way to automatically find those errors.It's quite easy to find easy errors of the grammar itself. I do not have any chance to locate errors in semantics :( I think I could also find some more hiden errors, like grammar conflicts (I can update the xslt so that it generates antlr compliant output and then send the output into antlr - it would find more hidden problems).The parser isn't too hard to figure out. It's not LALR(1), some of the constructs require arbitrary lookahead. That's the only tricky part, but that stuff yacc should be able to handle in its sleep.Looks, just like LL(k) grammar, which is recognized by antlr (it has also syntactic/semantic predicates to handle situations when arbitrary lookahead is required.I have added list of undefined symbols (the attached text file). Some of the erros are trivial (like symbol physicalEndOfTheFile should be in backticks, so that it is treated as terminal). Some may represent a missing stuff. I can provide you with tools I used, but they are all in c sharp, so they require net framework installed (it is free). To translate it one needs also a complete antlr instalation (free too), which requires java runtime instalation :( ........ again free, but in summary a lot of installing. Anyway if you have net framework already instaled I can send you only executable files and it would work (well first I should make the programs more user friendly - this would take a while). Or if somebody just sends me the updated text file (the one in my previous post, not the error listing in this post) I can check and fix some trivial errors and return back the results. begin 666 d-grammar.zip M;7,;MQ'^WIG^!XIMHL2V1,6?VL2T1V^N-95M-9+CI(G=.9$ B?'QCKD7O;1. M4";C?K<L1GM_ZW;R(DJ&49PFHM]-TNZ+YW_^T[.=O;W.<3J[S^1X4G2>'AP\ M[5R(0F2=5R(;B$]/.H=QW*F(>2<3N<ANQ'"_L[=7U3UY>WSUT\5I9YQ%TVF4 M=2Y_NKPZ?=WI+OZ^/RR&7<VHP>WEQ7TL\HD016>2B5&_.WXZG!33>/\NCXMN M-;(R%ATY[.^>)L.WHY<R%KO/GT5Q\?R9TMDITO[N;'*?:_:*X6HB*I[>\V>] MV?P>AOA^( MQ.8L&EI'FA3U6=$.K"PPQ#F4M/743GCHL?/!W!^W(03OVF*5R M"M^VXW0Z%4GA:D?-8FCM/5IH;,1,HBP:J&Z4:TF:]*C'`^[UG%5]N"L1C[W: M'[>UVXTZ&ZHFR9$4&8V$!45DET64%<!L-A.A*,$:5>XR+&5%.C35AZ/F>1", M>6,,2_\'!]:Y*)3!P^16X+P69)2<R+%TQN9ED:F$?ZZZ8Z;S(>FWBA2+?Y5I MS>YPMB;&4$:KNJ15)K?=JJZG56SME5L%'+9ZTXDD,P7OVKVD*N^"\A> _!=0 M'H'R:U ^`N4)*,] >0'*;T Y<3\S(B]Y[PCS*W'7=':NS*/K[:"(XO68MR8B M3'"YHB%"RV!63 HQ%AE(F0LJ&FV65%)T68Y&\BY +U5X( 9RJG#P"H]D$F7W M %C9%="4):*A4[3!\2H`]Z*!AN=BOA><\\4E7_R.+XX!^SDHCX&<<U!>`O E M0/\.\+]K\S-)?.$#HPXS`:Y]\B9-_BVRE.LKB 7&D8UE$4PFE#J#MN.M$IX3 M`!7_41"_K7H>JHP1[!SAE&.&M2D-95.V$3_ZF9V:7]$^W!* 14^PBRW>5YX( M$2$7&5)5%BE/N9: RG4ZO >43$2?`.F^$#QE$.68`B ,HF+ =."*I)9L *+F MX8 2*Q,!4CJ=Q>(.$1.(,%4KQZ0$+1N*ZW*,2*.HC('4H8C%.$*6U%1,FV5" MF4T,`1U$P;!:X? T$2//B:0$L2CN9BF*17%7B&2($&IJ!D)_%$$H(]6702:H MR^^3P21+$_E?Y+-,%"7RV3A%F4>EQA*E1M5RD8VB`?"VG.+PRHNHD .>EMZ( M4/D!`"U0'.D3`Y7">&*)1X$2Y^T21GN)P[U,9 J\5CHZUN*P!A!3"1QSD\8J MME">O,4CS^T$UY)%N]_9$XNK])-(P*:EA"OD]GZD<Q7M9FI->WF6>NIC3_'1 M<8%,I2C(4HKDKNBK/'96'N/*N**[4 `Y ,4O .?8`<5 W4X?$=S&V_%8;P<[ M;<?AL1V71JSM*[[X:[[X9[[X`U_\/[[X-[X8;'0_X8M!4[_EB__*%P.;(,?V M$>$1* ;L7X!BP/X1% /VWT%QF]T>PRZR:#R-S+7Q7V*9U&.B8U?7=?H:*$)O MS=0T)$W(IF-\(D9TEPV3V0W2.0]?URW9C04JH[H."S5KN2[UE08Q<,UNSJH5 MTXI(NO6\QAO51^MN'::CJD%M[YNJV\KV:59C1'![FK13&,ULK9EMS>=R[OS5 MFEK5<K8FJ+E/O+""DJG1<I)1 4W:RUBS0S)!9F[7.EAY$I\!32SF+J,'26N+ M$^A]F:"8V<]52 "D:02:LS]%^ZE*'#G M,1LR<UQ-Y N-$%">I-D4G5WL#ZL3:D 4LUS&:!M3>49-&?(<7-G2CCN]FSW8 MN')Y4_DTS / :*Y5(-7\;ECKU=7*C0/!M5M.&ZN6XI^BL6B9E<.IS\41DT;D MG" F"J THNTX3892KZ^BV(L,\FI<?0(OL+5.F8^W(71O&T(?;4-H;QM"O]B& MT-9![28%?]Z&T(_;$/K[-H32P]F-RB:'J-N0O9I\.WOQ2 B2M]G;S O79M* M`Q+(;"405J+T>^$'9O%H+'V:/]:6M+,Q2?U- H495N\S4B474[DJ/!"8KCJ M88> >K \VLR'"1QO&" S3CU(H'6W9[-2-RETFS(WW/H-H]S9`L0-]YR=C7>= M:'TS%E:MYGHC;IVBZ1XHMZL=IC%4FO[9)WQA%Z3L`*81GLEIB%'8GA"**TP2 M=UW?6XG[5,!;B=K\,!N7^IDE\TH8LR'NE?LSD6MS?&A)9?QEN8/HAN;58O'' MA _>*5L7R)K]>QUUL/JJ.,+4_0%FWA[P5:3^P?!0_Y SD$Z8I"K16N^4:6WH MRQ6"!:GE#TGU MR,<QOR_O8:KORGO8WNMO47U,)VD0V\LT\[%<5E^6^[B.H]RK[&3^9(*/[7CQ M)(./[TB_8N%C^K[ZLMW']8^T2'T\[V7AM<+E\ *VC_4JN_>RZ"^^?4R'^91A ML M,0'5[?!]KL(F(A H9");.7.6S$%*+IB?]_=&U]00?1]9:Z!3.AH1 -)*< M$<KE82N$^6-F;4%N:LI89,2&LARM,'WVA=YF!&H*<Z\SJ,^2H<+ 9;Y[H'\> M'F2MUJQE.P,#Z0YB.BO0 X?>E1G[4:.MO6K?`_5R;:HMLW'1=#IC^+KUALYZ M! T5U6MG0+WY$MKZNNDDTU P?UD):&\]NX2=[5/?GKT:\HVGF]9O7'O>:XX- MRX=O],\V.PL[KS9[+O[PT37JFM56&$-6ZARM>;ZA>_DR$S9'33G6S^ );G]F M-!5[JF;]VPR6FGB4#N MSFV0,E_K6\\-&4#H(ZG(S\1-;2>L*(WS1^4UHQ%^I<#SIB MZ(2X/N"+4M[M5V(ZBR/K._6Z&#B]6) )DKJ6;0?K1LV"LYD6<L>$#VBLU1 M4H!7L9PV8#KT4R80)RP?%R[03,$P+8CW,R^\'Z*XY) 8=2UI`8;U=!?:J>LC M`:2?("7RV>T_%P<'896/NII 4Y/DB/Q?D>2BS-UE_#W&?T"/<1WJQZ-<DVN* M5'_[/U!+`P04````" #U8D MF=]/VS 0Q]^1^!_\QB9U)8GSDX=)T()6"<$&;).FO;B):2TE3N4ZJ/WO=VZA M$V]WMLICU"B?WMWWOC[;DXN_5G:KKR^B58VP<BPWDC5?%D9TG3#C3=>>GEP; MTYL+]B"?I9&ZELSV;-"-K%MA9,-FTQ$[>]JNY-F876HFW=NLK^O!N%^%99.+ M<\<X?_?93W&6C1BO/H^1`/A""W]PUDAM%;Q(I<4CEI5H&CV<M!JQ..)8PG3W M4"DZ>=]!"IVT]-PY5>=8"GS ;HF$J(0N38Y*`#DGQ5$).<1 4-A:+70':K[> MK(R$)W+Q(RA+=42SJ:!E4G1 T_[W4K7RT8)]NK"(+! R3]%-\TL:E[ `6)*C MO6TJY\,B!(77W:V8RU8V`3!\%^G>+I5>$!& N02MN;?EIR<Z3A6!\BKTJAV" M4?/!$F$YM$J!]S9/ 64)Y P=40B%H]WL9M"[2<.;! [ \66Z$FM5.S$D'AB\ MW$(P28&>;=[6G96L80BM!7UD2SFH'+]%V*\] 3B\`[F%1]53N9]'J=)PL+1 M)DOPH1K6/.(6E9>4^?2;W-RTO2!6ACL'1S/ 4U4G6D\.?JZ"6*9JH2PU83#O M[GK]1YI^!R)R8+]=HELFC(,_.7K3&I'A;*;\" C>S ( )%?VA21HR/_6I&.R M,QXDCG;16VGIY7%G4^ F/<3B:D,$I5Y)\P/A][9!U8'-6H$>"T-)^/7'NW' MY^(<O<L)PD3H,3<$ Y^F5LOM6M6BO=;-_?/34MZHEG N>KB'.SUYD*(!(V/] M\_NK>E;WW:J5X&V[UR:O=_O_`%!+`0(4"Q0````(`,NS3BZQAGLG40\``/5S M```-``````````$`( ````````!D+6=R86UM87(N>&UL4$L!`A0+% ```` ` M]6)/+BXAD+9K`P``Y!\```H``````````0` ````? \``&5R<F]R<RYT>'10 52P4&``````(`` !S````#Q,````` ` endWhoever knows, how to make the text file correct, please, let me know.ok.
Feb 15 2003
"Peter Hercek" <vvp no.post.spam.sk> wrote in message news:b2luu1$2e59$1 digitaldaemon.com...I have added list of undefined symbols (the attached text file). Some oftheerros are trivial (like symbol physicalEndOfTheFile should be inbackticks,so that it is treated as terminal). Some may represent a missing stuff. I can provide you with tools I used, but they are all in c sharp, so they require net framework installed (it is free). To translate it one needsalsoa complete antlr instalation (free too), which requires java runtime instalation :( ........ again free, but in summary a lot of installing. Anyway if you have net framework already instaled I can send you only executable files and it would work (well first I should make the programs more user friendly - this would take a while). Or if somebody just sends me the updated text file (the one in my previous post, not the error listing in this post) I can check and fix sometrivialerrors and return back the results.One of the great features of D is none of that is required!
Feb 15 2003
"Walter" <walter digitalmars.com> wrote in message news:b2m52q$2k9d$2 digitaldaemon.com...One of the great features of D is none of that is required!I really do understand this :), also I do not consider it important for PC aplications, I like IL virtual machine and it has also good points. 1) no virtual machine 2) pssibility to manualy alocate 3) no dependence on the "erratic" company It has good chances to get videly adopted (at least I hope - one may need quick startup times or something embedded, small disk usage or backup when MS gets crazy again :) ... whatever). Ok, sorry, I should not continue this thread this way, it is supposed to be about the grammar.
Feb 15 2003