@@ -359,12 +359,36 @@ fn subscript(sbscrpt: &Subscript, val: &Value, plan: Plan, symbols: SymbolTableR
359359 result. as_index ( )
360360 } ,
361361 Subscript :: Bracket ( subs) => {
362+ let mut fxn_input = vec ! [ val. clone( ) ] ;
363+ /*match &subs[..] {
364+ [Subscript::Formula(ix)] => {
365+ let result = factor(&ix, plan.clone(), symbols.clone(), functions.clone())?;
366+ fxn_input.push(result.as_index()?);
367+ let new_fxn = MatrixAccessFormula{}.compile(&fxn_input)?;
368+ new_fxn.solve();
369+ let res = new_fxn.out();
370+ let mut plan_brrw = plan.borrow_mut();
371+ plan_brrw.push(new_fxn);
372+ return Ok(res);
373+ },
374+ [Subscript::Range(ix)] => (),
375+ [Subscript::All] => (),
376+ [Subscript::All,Subscript::All] => (),
377+ [Subscript::Formula(ix1),Subscript::Formula(ix2)] => (),
378+ [Subscript::Range(ix1),Subscript::Range(ix2)] => (),
379+ [Subscript::All,Subscript::Formula(ix2)] => (),
380+ [Subscript::Formula(ix1),Subscript::All] => (),
381+ [Subscript::Range(ix1),Subscript::Formula(ix2)] => (),
382+ [Subscript::Formula(ix1),Subscript::Range(ix2)] => (),
383+ [Subscript::All,Subscript::Range(ix2)] => (),
384+ [Subscript::Range(ix1),Subscript::All] => (),
385+ _ => unreachable!()
386+ }*/
362387 let mut resolved_subs = vec ! [ ] ;
363388 for s in subs {
364389 let result = subscript ( & s, val, plan. clone ( ) , symbols. clone ( ) , functions. clone ( ) ) ?;
365390 resolved_subs. push ( result) ;
366391 }
367- let mut fxn_input = vec ! [ val. clone( ) ] ;
368392 fxn_input. append ( & mut resolved_subs) ;
369393 let new_fxn = MatrixAccess { } . compile ( & fxn_input) ?;
370394 new_fxn. solve ( ) ;
@@ -374,7 +398,7 @@ fn subscript(sbscrpt: &Subscript, val: &Value, plan: Plan, symbols: SymbolTableR
374398 Ok ( res)
375399 } ,
376400 Subscript :: Brace ( x) => todo ! ( ) ,
377- Subscript :: All => todo ! ( ) ,
401+ Subscript :: All => Ok ( Value :: IndexAll ) ,
378402 }
379403}
380404
0 commit comments