@@ -18,6 +18,38 @@ pub fn var(
1818 if cmd[ 3 ] . trim ( ) == "vec" {
1919 if cmd[ 4 ] . trim ( ) == "push" {
2020 // var <name_vec> str vec push >> string/lxstring/var <name>
21+ if cmd[ 6 ] == "string" . trim ( ) || cmd[ 6 ] == "lxstring" . trim ( ) || cmd[ 6 ] == "var" {
22+ let mut new_vec: Vec < String > = vec ! [ ] ;
23+ match hash_vars. hash_str_vec . get ( cmd[ 1 ] ) {
24+ Some ( value) => new_vec = value. to_vec ( ) ,
25+ _ => errors:: var_error ( cmd[ 3 ] . trim ( ) , b, l) ,
26+ }
27+ if cmd[ 6 ] == "string" . trim ( ) {
28+ new_vec. push ( vars. string . clone ( ) ) ;
29+ if let Some ( x) = hash_vars. hash_str_vec . get_mut ( cmd[ 1 ] ) {
30+ * x = new_vec;
31+ }
32+ } else if cmd[ 6 ] == "lxstring" . trim ( ) {
33+ new_vec. push ( vars. lxstring . clone ( ) ) ;
34+ if let Some ( x) = hash_vars. hash_str_vec . get_mut ( cmd[ 1 ] ) {
35+ * x = new_vec;
36+ }
37+ } else if cmd[ 6 ] == "var" {
38+ let mut var_value: String = "" . to_string ( ) ;
39+ match hash_vars. hash_str . get ( cmd[ 7 ] . trim ( ) ) {
40+ Some ( value) => var_value = value. to_string ( ) ,
41+ _ => errors:: var_error ( cmd[ 7 ] . trim ( ) , b, l) ,
42+ }
43+ new_vec. push ( var_value. clone ( ) ) ;
44+ if let Some ( x) = hash_vars. hash_str_vec . get_mut ( cmd[ 1 ] ) {
45+ * x = new_vec;
46+ }
47+ } else {
48+ errors:: args_error ( b, l) ;
49+ }
50+ } else {
51+ errors:: args_error ( b, l) ;
52+ }
2153 } else if cmd[ 4 ] == ">>" {
2254 let lits: Vec < & str > = statement. split ( ">>" ) . collect ( ) ;
2355 let value: String = lits[ 1 ] . trim ( ) . to_string ( ) ;
@@ -45,6 +77,38 @@ pub fn var(
4577 if cmd[ 3 ] . trim ( ) == "vec" {
4678 if cmd[ 4 ] . trim ( ) == "push" {
4779 // var <name_vec> int vec push >> lx/rv/var <name>
80+ if cmd[ 6 ] == "lx" . trim ( ) || cmd[ 6 ] == "rv" . trim ( ) || cmd[ 6 ] == "var" {
81+ let mut new_vec: Vec < f64 > = vec ! [ ] ;
82+ match hash_vars. hash_int_vec . get ( cmd[ 1 ] ) {
83+ Some ( value) => new_vec = value. to_vec ( ) ,
84+ _ => errors:: var_error ( cmd[ 3 ] . trim ( ) , b, l) ,
85+ }
86+ if cmd[ 6 ] == "lx" . trim ( ) {
87+ new_vec. push ( vars. lx . clone ( ) ) ;
88+ if let Some ( x) = hash_vars. hash_int_vec . get_mut ( cmd[ 1 ] ) {
89+ * x = new_vec;
90+ }
91+ } else if cmd[ 6 ] == "rv" . trim ( ) {
92+ new_vec. push ( vars. rv . clone ( ) ) ;
93+ if let Some ( x) = hash_vars. hash_int_vec . get_mut ( cmd[ 1 ] ) {
94+ * x = new_vec;
95+ }
96+ } else if cmd[ 6 ] == "var" {
97+ let mut var_value: f64 = 0.0 ;
98+ match hash_vars. hash_int . get ( cmd[ 7 ] . trim ( ) ) {
99+ Some ( & value) => var_value = value,
100+ _ => errors:: var_error ( cmd[ 7 ] . trim ( ) , b, l) ,
101+ }
102+ new_vec. push ( var_value. clone ( ) ) ;
103+ if let Some ( x) = hash_vars. hash_int_vec . get_mut ( cmd[ 1 ] ) {
104+ * x = new_vec;
105+ }
106+ } else {
107+ errors:: args_error ( b, l) ;
108+ }
109+ } else {
110+ errors:: args_error ( b, l) ;
111+ }
48112 } else if cmd[ 4 ] == ">>" {
49113 let lits: Vec < & str > = statement. split ( ">>" ) . collect ( ) ;
50114 let value: String = lits[ 1 ] . trim ( ) . to_string ( ) ;
0 commit comments