structures are possible
- Posted by Lucius Hilley <lhilley at CDC.NET> Jan 13, 1999
- 616 views
Partial structure code already exist. I have partially created my struct.e library file. It does not as of yet handle type_checking. It also has not yet been speed optimized. The speed optimizing will require some additional routines. I fully intend to complete this library. The routine names are subject to change according to whatever naming suggestions I recieve. I want these routines to be fully accepted by all those that are interested in structures in the programming. I am trying to make use of the routines as simple as possible and plan to make the routines as flexible as I possibly can. Example: You can assign an entire structure a sequence. It may not be speed optimized when finished because of the requirement of type_checking every element in the sequence. I am still pondering how to detect whether type_checking is on or not. If I am unable to detect I will be force to create additional routines to instruct the struct.e library to disable or enable it's type_checking. Default will be SLOW enabled. Another example of the flexibilty is you can also recieve an entire structure. IE: say you have cat subdivided as cat.name, cat.birthyear, cat.sex you can retrieve either cat.name seperately or part of the entire cat structure. Example: assign("cat.name", "Fluffy") assign("cat.birthyear", 1998) assign("cat.sex", "Female") Assuming that you initialized cat with a structure of {"name", "birthyear", "sex"} you will be able to get the value_of cat in either of two ways. ? value_of("cat.birthyear") -- this prints 1998 or ? value_of("cat") -- this prints {{70,117,102,102,121},1998, {70,101,109,97,108,101}} BTW, {70,117,102,102,121} = "Fluffy" and {70,101,109,97,108,101} = "Female" NOTE: value_of() will not be subject to type_check ing. for obvious reasons. You are only getting data. However assign() will be subject to type_check ing. In fact assign() will be the only routine that does the type_checking. CODE is attached Below. _________________________ "I'm good ! Not god." Lucius L. Hilley III - 1998 _________________________ Lucius L. Hilley III lhilley at cdc.net http://www.cdc.net/~lhilley http://www.dragonvet.com _________________________ <IMG SRC="http://www.cdc.net/~ceace/images/lu4.jpg"> _________________________ begin 600 STRUCT.EX M/2![?0T*<U]D871A(#T@>WT-"G-?=F%R(#T@>WT-"G-?=F%R7W-T<G5C=" ] M('M]#0H-"BTM+2UF=6YC=&EO;B B3'5C:75S($PN($AI;&QE>2!)24DB*"D- M*'-T<G5C='5R92P@<U]N86UE<RD@=&AE;@T*(" @(&US9R ](")!='1E;7!T M('1O(')E9&5F:6YE('-T<G5C=#H@(B F('-T<G5C='5R92 F(#$P#0H@(" @ M(&5X+F5R<B(-"B @("!M86-H:6YE7W!R;V,H,S<L(&US9RD-"B @(" _(#$O M, T*("!E;'-E#0H@(" @<U]N86UE<R ](&%P<&5N9"AS7VYA;65S+"!S=')U M8W1U<F4I#0H@(" @<U]F:65L9',@/2!A<'!E;F0H<U]F:65L9',L(&9I96QD M<RD-"B @96YD(&EF#0IE;F0@<')O8V5D=7)E#0HM+2TM+2TM+2TM+2TM+2TM M*0T*("!I;G1E9V5R(&8L(&YA;64L(&9I96QD#0H-"B @9B ](&9I;F0H)RXG M+"!V87(I#0H@(&EF(&8@=&AE;@T*(" @(&YA;64@/2!F:6YD*'9A<ELQ+BYF M+3%=+"!S7W9A<BD-"B @("!F:65L9" ](&9I;F0H=F%R6V8K,2XN;&5N9W1H M*'9A<BE=+"!S7V9I96QD<UMS7W9A<E]S=')U8W1;;F%M95U=*0T*(" @('-? M9&%T85MN86UE75MF:65L9%T@/2!D871A#0H@(&5L<V4-"B @("!N86UE(#T@ M9FEN9"AV87(L('-?=F%R*0T*(" @('-?9&%T85MN86UE75LQ+BYL96YG=&@H M;F-E('9A<BD-"B @:6YT96=E<B!F+"!N86UE+"!F:65L9 T*#0H@(&8@/2!F M:6YD*"<N)RP@=F%R*0T*("!I9B!F('1H96X-"B @("!N86UE(#T@9FEN9"AV M87);,2XN9BTQ72P@<U]V87(I#0H@(" @9FEE;&0@/2!F:6YD*'9A<EMF*S$N M"B @("!R971U<FX@<U]D871A6VYA;65=6V9I96QD70T*("!E;'-E#0H@(" @ M;F%M92 ](&9I;F0H=F%R+"!S7W9A<BD-"B @("!R971U<FX@<U]D871A6VYA M<W1R=6-T=7)E*0T*("!I;G1E9V5R(&8-"B @<V5Q=65N8V4@;7-G#0H-"B @ M:68@9FEN9"AV87(L('-?=F%R*2!T:&5N#0H@(" @;7-G(#T@(D%T=&5M<'0@ M=&\ at <F5D969I;F4 at =F%R.B B("8@=F%R("8@,3 -"B @("!M<V<@/2!M<V<@ M)B B7'0@9F]R(&1E=&%I;&5D(&EN9F]R;6%T:6]N('9I97<@97@N97)R(@T* M(" @(&UA8VAI;F5?<')O8R@S-RP@;7-G*0T*(" @(#\@,2\P#0H@(&5L<V4- M"B @("!F(#T@9FEN9"AS=')U8W1U<F4L('-?;F%M97,I#0H@(" @:68@9B ] M(# @=&AE;@T*(" @(" @;7-G(#T@(E-T<G5C='5R92 B("8@<W1R=6-T=7)E M("8@(B!N;W0@9&5F:6YE9"XB("8@,3 -"B @(" @(&US9R ](&US9R F(")< M="!F;W(@9&5T86EL960@:6YF;W)M871I;VX@=FEE=R!E>"YE<G(B#0H@(" @ M("!M86-H:6YE7W!R;V,H,S<L(&US9RD-"B @(" @(#\@,2\P#0H@(" @96YD M(&EF#0H@(" @<U]V87(@/2!A<'!E;F0H<U]V87(L('9A<BD-"B @("!S7W9A M92P@<U]N86UE<RDI#0H@(" @<U]D871A(#T@87!P96YD*'-?9&%T82P@<F5P M96%T*# L(&QE;F=T:"AS7V9I96QD<UMF72DI*0T*("!E;F0@:68-"F5N9"!P M<BAS97%U96YC92!V87(I#0H@(&EN=&5G97(@9BP@; T*#0H@(&8@/2!F:6YD M*'9A<BP@<U]V87(I#0H@(&EF(&8@=&AE;@T*(" @(&P@/2!L96YG=&@H<U]V M87(I#0H@(" @<U]V87(@/2!S7W9A<ELQ+BYF+3%=("8@<U]V87);9BLQ+BYL M70T*(" @('-?9&%T82 ]('-?9&%T85LQ+BYF+3%=("8@<U]D871A6V8K,2XN M;%T-"B @("!S7W9A<E]S=')U8W0@/2!S7W9A<E]S=')U8W1;,2XN9BTQ72 F M#0IP=71S*#$L('9A;'5E7V]F*")C870N<V5X(BDI('!U=',H,2P@>S$P+" Q M,3 I#0H_('9A;'5E7V]F*")D;V<N8FER=&AY96%R(BD-"G!U=',H,2P@=F%L M=65?;V8H(F1O9RYS97@B*2D@<'5T<R@Q+"![,3 L(#$P?2D-"@T*/R!V86QU /95]O9B@B8V%T(BD-"@T* ` end