www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - D grammar (again)

As there isn't any written i have decided to try to write one.

So these are the thing that i have succeaded in parsing:

<CODE>
module IDN . IDN ;

import IDN , IDN . IDN ;
import IDN ;
import IDN . IDN , IDN . IDN . IDN , IDN ;

private
{
 import IDN . IDN ;
 struct IDN
 {
  enum IDN
  {
   IDN , IDN , IDN = IDN / IDN
  }
 }
}


struct IDN
{
 enum { IDN }
}

union
{
}

enum IDN
{
 IDN , IDN
}

int IDN , IDN ;
float [ ] [ ] IDN ;

int function ( int IDN , int [ ] IDN ) IDN ;

</CODE>

The first problem is the last line:
int function ( int IDN , int [ ] IDN ) IDN ;
with the current grammar i can't get:
int function ( int , int [ ] ) IDN ;
and this can be writen in the language.

And i figured out that something neads to be added
to Declarator but what? I'am not very good at grammars
so i would appreciate any help! Thanks :)





begin 666 dgram.gram
M/&UO9'5L93X +3X /$UO9'5L941E8VQA<F%T:6]N/B \1&5C;$1E9G,^#0H\
M;6]D=6QE/B M/B \1&5C;$1E9G,^#0H-"CQ-;V1U;&5$96-L87)A=&EO;CX 
M+3X ;6]D=6QE(#Q-;V1U;&5.86UE/B [#0H-"CQ-;V1U;&5.86UE/B M/B!)
M1$X-"CQ-;V1U;&5.86UE/B M/B \36]D=6QE3F%M93X +B!)1$X-" T*/$1E
M8VQ$969S/B M/B \1&5C;$1E9CX /$1E8VQ$969S/ T*/$1E8VQ$969S/B M
M/B D#0H-"CQ$96-L1&5F/B M/B \16YU;41E8VQA<F%T:6]N/ T*/$1E8VQ$
M968^("T^(#Q#;&%S<T1E8VQA<F%T:6]N/ T*/$1E8VQ$968^("T^(#Q);G1E
M<F9A8V5$96-L87)A=&EO;CX-"CQ$96-L1&5F/B M/B \06=G<F5G871E1&5C
M;&%R871I;VX^#0H\1&5C;$1E9CX +3X /$EM<&]R=$1E8VQA<F%T:6]N/ T*
M/$1E8VQ$968^("T^(#Q496UP;&%T941E8VQA<F%T:6]N/ T*/$1E8VQ$968^
M("T^(#Q!='1R:6)U=&53<&5C:69I97(^#0H\1&5C;$1E9CX +3X /$1E8VQA
M<F%T:6]N/ T*/$1E8VQ$968^("T^(#Q#;VYS=')U8W1O<CX-"CQ$96-L1&5F
M/B M/B \1&5S=')U8W1O<CX-"CQ$96-L1&5F/B M/B \26YV87)I86YT/ T*
M/$1E8VQ$968^("T^(#Q5;FET=&5S=#X-"CQ$96-L1&5F/B M/B \4W1A=&EC
M0V]N<W1R=6-T;W(^#0H\1&5C;$1E9CX +3X /%-T871I8T1E<W1R=6-T;W(^
M#0H\1&5C;$1E9CX +3X /$1E8G5G4W!E8VEF:6-A=&EO;CX-"CQ$96-L1&5F
M/B M/B \5F5R<VEO;E-P96-I9FEC871I;VX^#0H-"CQ$96-L87)A=&EO;CX 
M+3X ='EP961E9B \1&5C;#X-"CQ$96-L87)A=&EO;CX +3X 86QI87, /$1E
M8VP^#0H\1&5C;&%R871I;VX^("T^(#Q$96-L/ T*#0H\1&5C;#X +3X /%-T
M;W)A9V5#;&%S<SX /$1E8VP^#0H\1&5C;#X +3X /$)A<VEC5'EP93X /$1E
M8VQA<F%T;W)S/B [#0H\1&5C;#X +3X /$)A<VEC5'EP93X /$1E8VQA<F%T
M;W(^(#Q&=6YC=&EO;D)O9'D^#0H-"CQ$96-L87)A=&]R<SX +3X /$1E8VQA
M<F%T;W));FET:6%L:7IE<CX-"CQ$96-L87)A=&]R<SX +3X /$1E8VQA<F%T
M;W));FET:6%L:7IE<CX +" \1&5C;&%R871O<G,^#0H\1&5C;&%R871O<G,^
M("T^(#Q$96-L87)A=&]R26YI=&EA;&EZ97(^("P /$1E8VQA<F%T;W))9&5N
M=&EF:65R3&ES=#X-" T*/$1E8VQA<F%T;W));FET:6%L:7IE<CX +3X /$1E
M8VQA<F%T;W(^#0H\1&5C;&%R871O<DEN:71I86QI>F5R/B M/B \1&5C;&%R
M871O<CX /2 \26YI=&EA;&EZ97(^#0H-"CQ$96-L87)A=&]R261E;G1I9FEE
M<DQI<W0^("T^(#Q$96-L87)A=&]R261E;G1I9FEE<CX-"CQ$96-L87)A=&]R
M261E;G1I9FEE<DQI<W0^("T^(#Q$96-L87)A=&]R261E;G1I9FEE<CX +" \
M1&5C;&%R871O<DED96YT:69I97),:7-T/ T*#0H\1&5C;&%R871O<DED96YT
M:69I97(^("T^($E$3 T*/$1E8VQA<F%T;W))9&5N=&EF:65R/B M/B!)1$X 
M/2 \26YI=&EA;&EZ97(^#0H-"CQ"87-I8U1Y<&4^("T^( EB:70-"CQ"87-I
M8U1Y<&4^("T^( EB>71E#0H\0F%S:6-4>7!E/B M/B )=6)Y=&4-"CQ"87-I
M8U1Y<&4^("T^( ES:&]R= T*/$)A<VEC5'EP93X +3X "75S:&]R= T*/$)A
M<VEC5'EP93X +3X "6EN= T*/$)A<VEC5'EP93X +3X "75I;G0-"CQ"87-I
M8U1Y<&4^("T^( EL;VYG#0H\0F%S:6-4>7!E/B M/B )=6QO;F<-"CQ"87-I
M8U1Y<&4^("T^( EC:&%R#0H\0F%S:6-4>7!E/B M/B )=V-H87(-"CQ"87-I
M8U1Y<&4^("T^( ED8VAA< T*/$)A<VEC5'EP93X +3X "69L;V%T#0H\0F%S
M:6-4>7!E/B M/B )9&]U8FQE#0H\0F%S:6-4>7!E/B M/B )<F5A; T*/$)A
M<VEC5'EP93X +3X "6EF;&]A= T*/$)A<VEC5'EP93X +3X "6ED;W5B;&4-
M"CQ"87-I8U1Y<&4^("T^( EI<F5A; T*/$)A<VEC5'EP93X +3X "6-F;&]A
M= T*/$)A<VEC5'EP93X +3X "6-D;W5B;&4-"CQ"87-I8U1Y<&4^("T^( EC
M<F5A; T*/$)A<VEC5'EP93X +3X "79O:60-"CQ"87-I8U1Y<&4^("T^( DN
M(#Q)9&5N=&EF:65R3&ES=#X-"CQ"87-I8U1Y<&4^("T^( D\261E;G1I9FEE
M<DQI<W0^#0H\0F%S:6-4>7!E/B M/B )/%1Y<&5O9CX-"CQ"87-I8U1Y<&4^
M("T^( D\5'EP96]F/B N(#Q)9&5N=&EF:65R3&ES=#X-" T*/$)A<VEC5'EP
M93(^("T^("H-"CQ"87-I8U1Y<&4R/B M/B!;(%T-"CQ"87-I8U1Y<&4R/B M
M/B!;(#Q%>'!R97-S:6]N/B!=#0H\0F%S:6-4>7!E,CX +3X 6R \5'EP93X 
M70T*/$)A<VEC5'EP93(^("T^(&1E;&5G871E("  /%!A<F%M971E<DQI<W0^
M("D-"CQ"87-I8U1Y<&4R/B M/B!F=6YC=&EO;B H(#Q087)A;65T97),:7-T
M/B I#0H-"CQ$96-L87)A=&]R/B M/B \0F%S:6-4>7!E/B \1&5C;&%R871O
M<CX-"CQ$96-L87)A=&]R/B M/B \0F%S:6-4>7!E,CX /$1E8VQA<F%T;W(^
M#0H\1&5C;&%R871O<CX +3X 241.#0H\1&5C;&%R871O<CX +3X *" \1&5C
M;&%R871O<CX *0T*/$1E8VQA<F%T;W(^("T^($E$3B \1&5C;&%R871O<E-U
M9F9I>&5S/ T*/$1E8VQA<F%T;W(^("T^("  /$1E8VQA<F%T;W(^("D /$1E
M8VQA<F%T;W)3=69F:7AE<SX-" T*/$1E8VQA<F%T;W)3=69F:7AE<SX +3X 
M/$1E8VQA<F%T;W)3=69F:7 ^#0H\1&5C;&%R871O<E-U9F9I>&5S/B M/B \
M1&5C;&%R871O<E-U9F9I>#X /$1E8VQA<F%T;W)3=69F:7AE<SX-" T*/$1E
M8VQA<F%T;W)3=69F:7 ^("T^(%L 70T*/$1E8VQA<F%T;W)3=69F:7 ^("T^
M(%L /$5X<')E<W-I;VX^(%T-"CQ$96-L87)A=&]R4W5F9FEX/B M/B!;(#Q4
M>7!E/B!=#0H\1&5C;&%R871O<E-U9F9I>#X +3X *" \4&%R86UE=&5R3&ES
M=#X *0T*#0H\4&%R86UE=&5R3&ES=#X +3X /$1E8VQA<F%T;W)S/B -" T*
M#0H\261E;G1I9FEE<DQI<W0^("T^($E$3 T*/$ED96YT:69I97),:7-T/B M
M/B!)1$X +B \261E;G1I9FEE<DQI<W0^#0H\261E;G1I9FEE<DQI<W0^("T^
M(#Q496UP;&%T94EN<W1A;F-E/ T*/$ED96YT:69I97),:7-T/B M/B \5&5M
M<&QA=&5);G-T86YC93X +B \261E;G1I9FEE<DQI<W0^#0H-"CQ4>7!E;V8^
M("T^('1Y<&5O9B H(#Q%>'!R97-S:6]N/B I#0H-"CQ3=&]R86=E0VQA<W,^
M("T^(&%B<W1R86-T#0H\4W1O<F%G94-L87-S/B M/B!A=71O#0H\4W1O<F%G
M94-L87-S/B M/B!C;VYS= T*/%-T;W)A9V5#;&%S<SX +3X 9&5P<F5C871E
M9 T*/%-T;W)A9V5#;&%S<SX +3X 9FEN86P-"CQ3=&]R86=E0VQA<W,^("T^
M(&]V97)R:61E#0H\4W1O<F%G94-L87-S/B M/B!S=&%T:6,-"CQ3=&]R86=E
M0VQA<W,^("T^('-Y;F-H<F]N:7IE9 T*#0H\5'EP93X +3X /$)A<VEC5'EP
M93X-"CQ4>7!E/B M/B \0F%S:6-4>7!E/B \1&5C;&%R871O<C(^#0H-"CQ$
M96-L87)A=&]R,CX +3X /$)A<VEC5'EP93(^(#Q$96-L87)A=&]R,CX-"CQ$
M96-L87)A=&]R,CX +3X *" \1&5C;&%R871O<C(^("D-"CQ$96-L87)A=&]R
M,CX +3X *" \1&5C;&%R871O<C(^("D /$1E8VQA<F%T;W)3=69F:7AE<SX-
M" D-" T*#0H\26UP;W)T1&5C;&%R871I;VX^("T^(&EM<&]R=" \36]D=6QE
M3F%M94QI<W0^(#L-" T*/$UO9'5L94YA;65,:7-T/B M/B \36]D=6QE3F%M
M93X-"CQ-;V1U;&5.86UE3&ES=#X +3X /$UO9'5L94YA;64^("P /$UO9'5L
M94YA;65,:7-T/ T*#0H\06=G<F5G871E1&5C;&%R871I;VX^("T^(#Q486<^
M('L /$1E8VQ$969S/B!]#0H\06=G<F5G871E1&5C;&%R871I;VX^("T^(#Q4
M86<^($E$3B![(#Q$96-L1&5F<SX ?0T*/$%G9W)E9V%T941E8VQA<F%T:6]N
M/B M/B \5&%G/B!)1$X .PT*#0H\5&%G/B M/B!S=')U8W0-"CQ486<^("T^
M('5N:6]N#0H-"CQ!='1R:6)U=&53<&5C:69I97(^("T^(#Q!='1R:6)U=&4^
M(#H-"CQ!='1R:6)U=&53<&5C:69I97(^("T^(#Q!='1R:6)U=&4^(#Q$96-L
M1&5F0FQO8VL^#0H\071T<FEB=71E4W!E8VEF:65R/B M/B \4')A9VUA/B [
M#0H-"CQ!='1R:6)U=&5%;'-E4W!E8VEF:65R/B M/B \071T<FEB=71E16QS
M93X . T*/$%T=')I8G5T945L<V53<&5C:69I97(^("T^(#Q!='1R:6)U=&5%
M;'-E/B \1&5C;$1E9D)L;V-K/ T*/$%T=')I8G5T945L<V53<&5C:69I97(^
M("T^(#Q!='1R:6)U=&5%;'-E/B \1&5C;$1E9D)L;V-K/B!E;'-E(#Q$96-L
M1&5F0FQO8VL^#0H-"CQ!='1R:6)U=&4^("T^(#Q,:6YK86=E071T<FEB=71E
M/ T*/$%T=')I8G5T93X +3X /$%L:6=N071T<FEB=71E/ T*/$%T=')I8G5T
M93X +3X /%!R86=M83X-"CQ!='1R:6)U=&4^("T^(&-O;G-T#0H\071T<FEB
M=71E/B M/B!S=&%T:6,-"CQ!='1R:6)U=&4^("T^(&9I;F%L#0H\071T<FEB
M=71E/B M/B!D97!R96-A=&5D#0H\071T<FEB=71E/B M/B!P<FEV871E#0H\
M071T<FEB=71E/B M/B!P<F]T96-T960-"CQ!='1R:6)U=&4^("T^('!U8FQI
M8PT*/$%T=')I8G5T93X +3X 97AP;W)T#0H\071T<FEB=71E/B M/B!O=F5R
M<FED90T*/$%T=')I8G5T93X +3X 86)S=')A8W0-"CQ!='1R:6)U=&4^("T^
M(&%U=&\-" T*/$%T=')I8G5T945L<V4^("T^(#Q$96)U9T%T=')I8G5T93X-
M"CQ!='1R:6)U=&5%;'-E/B M/B \5F5R<VEO;D%T=')I8G5T93X-" T*/$1E
M8VQ$969";&]C:SX +3X /$1E8VQ$968^#0H\1&5C;$1E9D)L;V-K/B M/B![
M('T-"CQ$96-L1&5F0FQO8VL^("T^('L /$1E8VQ$969S/B!]#0H-"CQ%;G5M
M1&5C;&%R871I;VX^("T^(&5N=6T 241.('L /$5N=6U-96UB97)S/B!]#0H\
M16YU;41E8VQA<F%T:6]N/B M/B!E;G5M('L /$5N=6U-96UB97)S/B!]#0H\
M16YU;41E8VQA<F%T:6]N/B M/B!E;G5M($E$3B [#0H-"CQ%;G5M365M8F5R
M<SX +3X /$5N=6U-96UB97(^#0H\16YU;4UE;6)E<G,^("T^(#Q%;G5M365M
M8F5R/B L#0H\16YU;4UE;6)E<G,^("T^(#Q%;G5M365M8F5R/B L(#Q%;G5M
M365M8F5R<SX-" T*/$5N=6U-96UB97(^("T^($E$3 T*/$5N=6U-96UB97(^
M("T^($E$3B ](#Q%>'!R97-S:6]N/ T*#0H\3&EN:V%G94%T=')I8G5T93X 
M+3X 97AT97)N#0H\3&EN:V%G94%T=')I8G5T93X +3X 97AT97)N("  /$QI
M;FMA9V54>7!E/B I#0H-"CQ,:6YK86=E5'EP93X +3X "4,-"CQ,:6YK86=E
M5'EP93X +3X "40-"CQ,:6YK86=E5'EP93X +3X "5=I;F1O=W,-"CQ,:6YK
M86=E5'EP93X +3X "5!A<V-A; T*#0H\06QI9VY!='1R:6)U=&4^("T^( EA
M;&EG; T*/$%L:6=N071T<FEB=71E/B M/B )86QI9VX *"!)3E0 *0T*#0H\
M4')A9VUA/B M/B!P<F%G;6$ *"!)1$X *0T*/%!R86=M83X +3X <')A9VUA
M("  241.("P /$5X<')E<W-I;VY,:7-T/B I#0H-"CQ%>'!R97-S:6]N3&ES
M=#X +3X /$5X<')E<W-I;VX^(#Q%>'!R97-S:6]N3&ES=$UO<F4^#0H\17AP
M<F5S<VEO;DQI<W1-;W)E/B L(#Q%>'!R97-S:6]N3&ES=#X #0H\17AP<F5S
M<VEO;DQI<W1-;W)E/B M/B D#0H-"CQ%>'!R97-S:6]N/B M/B \87-S:6=N
M;65N=%]E>'!R97-S:6]N/ T*#0H\87-S:6=N;65N=%]E>'!R97-S:6]N/B M
M/B \8V]N9&ET:6]N86Q?97AP<F5S<VEO;CX-"CQA<W-I9VYM96YT7V5X<')E
M<W-I;VX^("T^(#QA<W-I9VYM96YT7V5X<')E<W-I;VX^(#QA<W-I9VYM96YT
M7V]P97)A=&]R/B \8V]N9&ET:6]N86Q?97AP<F5S<VEO;CX-" T*/&%S<VEG
M;FUE;G1?;W!E<F%T;W(^("T^(#T-"CQA<W-I9VYM96YT7V]P97)A=&]R/B M
M/B K/0T*/&%S<VEG;FUE;G1?;W!E<F%T;W(^("T^("T]#0H\87-S:6=N;65N
M=%]O<&5R871O<CX +3X *CT-"CQA<W-I9VYM96YT7V]P97)A=&]R/B M/B O
M/0T*/&%S<VEG;FUE;G1?;W!E<F%T;W(^("T^("4]#0H\87-S:6=N;65N=%]O
M<&5R871O<CX +3X )CT-"CQA<W-I9VYM96YT7V]P97)A=&]R/B M/B!\/0T*
M/&%S<VEG;FUE;G1?;W!E<F%T;W(^("T^(%X]( T*/&%S<VEG;FUE;G1?;W!E
M<F%T;W(^("T^('X]#0H\87-S:6=N;65N=%]O<&5R871O<CX +3X /#P]#0H\
M87-S:6=N;65N=%]O<&5R871O<CX +3X /CX]#0H\87-S:6=N;65N=%]O<&5R
M871O<CX +3X /CX^/0T*#0H\8V]N9&ET:6]N86Q?97AP<F5S<VEO;CX +3X 
M/&QO9VEC86Q?;W)?97AP<F5S<VEO;CX-"CQC;VYD:71I;VYA;%]E>'!R97-S
M:6]N/B M/B \;&]G:6-A;%]O<E]E>'!R97-S:6]N/B _(#QE>'!R97-S:6]N
M/B Z(#QC;VYD:71I;VYA;%]E>'!R97-S:6]N/ T*#0H\;&]G:6-A;%]O<E]E
M>'!R97-S:6]N/B M/B \;&]G:6-A;%]A;F1?97AP<F5S<VEO;CX-"CQL;V=I
M8V%L7V]R7V5X<')E<W-I;VX^("T^(#QL;V=I8V%L7V]R7V5X<')E<W-I;VX^
M('Q\(#QL;V=I8V%L7V%N9%]E>'!R97-S:6]N/ T*#0H\;&]G:6-A;%]A;F1?
M97AP<F5S<VEO;CX +3X /&]R7V5X<')E<W-I;VX^#0H\;&]G:6-A;%]A;F1?
M97AP<F5S<VEO;CX +3X /&QO9VEC86Q?86YD7V5X<')E<W-I;VX^("8F(#QO
M<E]E>'!R97-S:6]N/ T*#0H\;W)?97AP<F5S<VEO;CX +3X /'AO<E]E>'!R
M97-S:6]N/ T*/&]R7V5X<')E<W-I;VX^("T^(#QO<E]E>'!R97-S:6]N/B!\
M(#QX;W)?97AP<F5S<VEO;CX-" T*/'AO<E]E>'!R97-S:6]N/B M/B \86YD
M7V5X<')E<W-I;VX^#0H\>&]R7V5X<')E<W-I;VX^("T^(#QX;W)?97AP<F5S
M<VEO;CX 7B \86YD7V5X<')E<W-I;VX^#0H-"CQA;F1?97AP<F5S<VEO;CX 
M+3X /&5Q=6%L:71Y7V5X<')E<W-I;VX^#0H\86YD7V5X<')E<W-I;VX^("T^
M(#QA;F1?97AP<F5S<VEO;CX )B \97%U86QI='E?97AP<F5S<VEO;CX-" T*
M/&5Q=6%L:71Y7V5X<')E<W-I;VX^("T^(#QR96QA=&EO;F%L7V5X<')E<W-I
M;VX^#0H\97%U86QI='E?97AP<F5S<VEO;CX +3X /&5Q=6%L:71Y7V5X<')E
M<W-I;VX^(#QE<75A;&ET>5]O<&5R871O<CX /')E;&%T:6]N86Q?97AP<F5S
M<VEO;CX-" T*/&5Q=6%L:71Y7V]P97)A=&]R/B M/B ]/0T*/&5Q=6%L:71Y
M7V]P97)A=&]R/B M/B A/0T*/&5Q=6%L:71Y7V]P97)A=&]R/B M/B ]/3T-
M"CQE<75A;&ET>5]O<&5R871O<CX +3X (3T]#0H-"CQR96QA=&EO;F%L7V5X
M<')E<W-I;VX^("T^(#QS:&EF=%]E>'!R97-S:6]N/ T*/')E;&%T:6]N86Q?
M97AP<F5S<VEO;CX +3X /')E;&%T:6]N86Q?97AP<F5S<VEO;CX /')E;&%T
M:6]N86Q?;W!E<F%T;W(^(#QS:&EF=%]E>'!R97-S:6]N/ T*#0H\<F5L871I
M;VYA;%]O<&5R871O<CX +3X / T*/')E;&%T:6]N86Q?;W!E<F%T;W(^("T^
M(#P]#0H\<F5L871I;VYA;%]O<&5R871O<CX +3X / T*/')E;&%T:6]N86Q?
M;W!E<F%T;W(^("T^(#X]#0H\<F5L871I;VYA;%]O<&5R871O<CX +3X (3P^
M/0T*/')E;&%T:6]N86Q?;W!E<F%T;W(^("T^("$\/ T*/')E;&%T:6]N86Q?
M;W!E<F%T;W(^("T^(#P^#0H\<F5L871I;VYA;%]O<&5R871O<CX +3X /#X]
M#0H\<F5L871I;VYA;%]O<&5R871O<CX +3X (3X-"CQR96QA=&EO;F%L7V]P
M97)A=&]R/B M/B A/CT-"CQR96QA=&EO;F%L7V]P97)A=&]R/B M/B A/ T*
M/')E;&%T:6]N86Q?;W!E<F%T;W(^("T^("$\/0T*/')E;&%T:6]N86Q?;W!E
M<F%T;W(^("T^(&EN#0H-"CQS:&EF=%]E>'!R97-S:6]N/B M/B \861D:71I
M=F5?97AP<F5S<VEO;CX-"CQS:&EF=%]E>'!R97-S:6]N/B M/B \<VAI9G1?
M97AP<F5S<VEO;CX /'-H:69T7V]P97)A=&]R/B \861D:71I=F5?97AP<F5S
M<VEO;CX-" T*/'-H:69T7V]P97)A=&]R/B M/B \/ T*/'-H:69T7V]P97)A
M=&]R/B M/B ^/ T*/'-H:69T7V]P97)A=&]R/B M/B ^/CX-" T*/&%D9&ET
M:79E7V5X<')E<W-I;VX^("T^(#QM=6QT:7!L:6-A=&EV95]E>'!R97-S:6]N
M/ T*/&%D9&ET:79E7V5X<')E<W-I;VX^("T^(#QA9&1I=&EV95]E>'!R97-S
M:6]N/B \861D:71I=F5?;W!E<F%T;W(^(#QM=6QT:7!L:6-A=&EV95]E>'!R
M97-S:6]N/ T*#0H\861D:71I=F5?;W!E<F%T;W(^("T^("L-"CQA9&1I=&EV
M95]O<&5R871O<CX +3X +0T*/&%D9&ET:79E7V]P97)A=&]R/B M/B!^#0H-
M"CQM=6QT:7!L:6-A=&EV95]E>'!R97-S:6]N/B M/B \=6YA<GE?97AP<F5S
M<VEO;CX-"CQM=6QT:7!L:6-A=&EV95]E>'!R97-S:6]N/B M/B \;75L=&EP
M;&EC871I=F5?97AP<F5S<VEO;CX /&UU;'1I<&QI8V%T:79E7V]P97)A=&]R
M/B \=6YA<GE?97AP<F5S<VEO;CX-" T*/&UU;'1I<&QI8V%T:79E7V]P97)A
M=&]R/B M/B J#0H\;75L=&EP;&EC871I=F5?;W!E<F%T;W(^("T^("\-"CQM
M=6QT:7!L:6-A=&EV95]O<&5R871O<CX +3X )0T*#0H-"CQU;F%R>5]E>'!R
M97-S:6]N/B M/B \<&]S=&9I>%]E>'!R97-S:6]N/ T*/'5N87)Y7V5X<')E
M<W-I;VX^("T^("8 /'5N87)Y7V5X<')E<W-I;VX^#0H\=6YA<GE?97AP<F5S
M<VEO;CX +3X *RL /'5N87)Y7V5X<')E<W-I;VX^#0H\=6YA<GE?97AP<F5S
M<VEO;CX +3X +2T /'5N87)Y7V5X<')E<W-I;VX^#0H\=6YA<GE?97AP<F5S
M<VEO;CX +3X *B  /'5N87)Y7V5X<')E<W-I;VX^#0H\=6YA<GE?97AP<F5S
M<VEO;CX +3X +2  /'5N87)Y7V5X<')E<W-I;VX^#0H\=6YA<GE?97AP<F5S
M<VEO;CX +3X *R  /'5N87)Y7V5X<')E<W-I;VX^#0H\=6YA<GE?97AP<F5S
M<VEO;CX +3X (2  /'5N87)Y7V5X<')E<W-I;VX^#0H\=6YA<GE?97AP<F5S
M<VEO;CX +3X ?B  /'5N87)Y7V5X<')E<W-I;VX^#0H\=6YA<GE?97AP<F5S
M<VEO;CX +3X 9&5L971E(#QU;F%R>5]E>'!R97-S:6]N/ T*/'5N87)Y7V5X
M<')E<W-I;VX^("T^(&YE=R  /&YE=U]E>'!R97-S:6]N/ T*/'5N87)Y7V5X
M<')E<W-I;VX^("T^("  /'1Y<&5N86UE/B I(#QU;F%R>5]E>'!R97-S:6]N
M/ T*/'5N87)Y7V5X<')E<W-I;VX^("T^("  /'1Y<&5N86UE/B I("X 241.
M#0H-"CQP;W-T9FEX7V5X<')E<W-I;VX^("T^(#QP<FEM87)Y7V5X<')E<W-I
M;VX^#0H\<&]S=&9I>%]E>'!R97-S:6]N/B M/B \<&]S=&9I>%]E>'!R97-S
M:6]N/B N($E$3 T*/'!O<W1F:7A?97AP<F5S<VEO;CX +3X /'!O<W1F:7A?
M97AP<F5S<VEO;CX *RL-"CQP;W-T9FEX7V5X<')E<W-I;VX^("T^(#QP;W-T
M9FEX7V5X<')E<W-I;VX^("TM#0H\<&]S=&9I>%]E>'!R97-S:6]N/B M/B \
M<&]S=&9I>%]E>'!R97-S:6]N/B H(#QO<'1?87)G=6UE;G1?;&ES=#X *0T*
M/'!O<W1F:7A?97AP<F5S<VEO;CX +3X /'!O<W1F:7A?97AP<F5S<VEO;CX 
M*" \17AP<F5S<VEO;CX *0T*#0H-"CQP<FEM87)Y7V5X<')E<W-I;VX^("T^
M($E$3 T*/'!R:6UA<GE?97AP<F5S<VEO;CX +3X =&AI<PT*/'!R:6UA<GE?
M97AP<F5S<VEO;CX +3X <W5P97(-"CQP<FEM87)Y7V5X<')E<W-I;VX^("T^
M(#QN=6QL7VQI=&5R86P^#0H\<')I;6%R>5]E>'!R97-S:6]N/B M/B \8F]O
M;%]L:71E<F%L/ T*/'!R:6UA<GE?97AP<F5S<VEO;CX +3X /&YU;65R:6-?
M;&ET97)A;#X-"CQP<FEM87)Y7V5X<')E<W-I;VX^("T^(#QS=')I;F=?;&ET
M97)A;#X-"CQP<FEM87)Y7V5X<')E<W-I;VX^("T^(#QA<W-E<G1?97AP<F5S
M<VEO;CX-"CQP<FEM87)Y7V5X<')E<W-I;VX^("T^(#QT>7!E;F%M93X +B!)
M1$X-" T*/&%S<V5R=%]E>'!R97-S:6]N/B M/B!A<W-E<G0 *" \17AP<F5S
+<VEO;CX *0T*#0H`
`
end
May 21 2004