fn read_exp(&mut self, token: Result<Option<String>, Box<dyn Error>>) -> Result<Exp, ScmErr> {
        self.ended = false;
        let res = match token {
            Ok(Some(t)) => match self.read_ahead(&t) {
                // * Enable/Disable desugaring
                Ok(exp) => desugar(exp),
                // Ok(exp) => Ok(exp),
                Err(e) => Err(e),
            },
            Ok(None) => Ok(Exp::Empty),
            Err(e) => Err(ScmErr::from(&format!("{}", e))),
        };
        self.ended = true;
        res
    }
/// Read an Exp starting from given token.
/// Modify the self.ended flag at the same time.
Read an Exp starting from given token.
Modify the self.ended flag at the same time.
Read an Exp starting from given token . Modify the self . ended flag at the same time .
fn read_exp(&mut self, token: Result<Option<String>, Box<dyn Error>>) -> Result<Exp, ScmErr> {
        self.ended = false;
        let res = match token {
            Ok(Some(t)) => match self.read_ahead(&t) {
                // * Enable/Disable desugaring
                Ok(exp) => desugar(exp),
                // Ok(exp) => Ok(exp),
                Err(e) => Err(e),
            },
            Ok(None) => Ok(Exp::Empty),
            Err(e) => Err(ScmErr::from(&format!("{}", e))),
        };
        self.ended = true;
        res
    }
fn read_exp ( & mut self , token : Result < Option < String > , Box < dyn Error > > ) -> Result < Exp , ScmErr > { self . ended = false ; let res = match token { Ok ( Some ( t ) ) => match self . read_ahead ( & t ) { // * Enable/Disable desugaring Ok ( exp ) => desugar ( exp ) , // Ok(exp) => Ok(exp), Err ( e ) => Err ( e ) , } , Ok ( None ) => Ok ( Exp :: Empty ) , Err ( e ) => Err ( ScmErr :: from ( & format ! ( " " e ) ) ) , } ; self . ended = true ; res }
Read an Exp starting from given token.
Read an Exp starting from given token .
&mut self
token
Result<Option<String>, Box<dyn Error>>
&mut self
token
Result<Option<String>, Box<dyn Error>>