mirror of
https://github.com/rm-dr/daisy
synced 2025-07-14 00:14:48 -07:00
Minor cleanup
This commit is contained in:
@ -61,8 +61,8 @@ fn lookback(
|
||||
|
||||
o.is_some() &&
|
||||
(
|
||||
o.unwrap().is_binary() ||
|
||||
!o.unwrap().is_left_associative()
|
||||
o.as_ref().unwrap().is_binary() ||
|
||||
!o.as_ref().unwrap().is_left_associative()
|
||||
)
|
||||
} {
|
||||
g.push_back(a);
|
||||
|
@ -80,9 +80,9 @@ impl PreToken {
|
||||
PreToken::PreWord(l, s) => {
|
||||
return Ok(match &s[..] {
|
||||
// Mathematical constants
|
||||
"π"|"pi" => { Token::Constant(3.141592653, String::from("pi")) },
|
||||
"π"|"pi" => { Token::Constant(3.141592653, String::from("π")) },
|
||||
"e" => { Token::Constant(2.71828, String::from("e")) },
|
||||
"phi"|"φ" => { Token::Constant(1.61803, String::from("phi")) },
|
||||
"phi"|"φ" => { Token::Constant(1.61803, String::from("φ")) },
|
||||
_ => { return Err((l, ParserError::Undefined(s))); }
|
||||
});
|
||||
}
|
||||
@ -148,9 +148,9 @@ pub fn parse(
|
||||
let tokens = tokenize(s);
|
||||
let (_, tokens) = find_subs(tokens);
|
||||
let g = groupify(tokens)?;
|
||||
let t = treeify(g)?;
|
||||
let g = treeify(g)?;
|
||||
|
||||
return Ok(t);
|
||||
return Ok(g);
|
||||
}
|
||||
|
||||
|
||||
|
@ -1,4 +1,3 @@
|
||||
|
||||
use std::collections::VecDeque;
|
||||
|
||||
use crate::parser::PreToken;
|
||||
@ -97,7 +96,7 @@ fn treeify_binary(
|
||||
let PreToken::PreOperator(l, s) = this else {panic!()};
|
||||
let o = Operator::from_string(s);
|
||||
if o.is_none() { return Err((*l, ParserError::Syntax)); }
|
||||
o.unwrap() as isize
|
||||
o.unwrap().as_int()
|
||||
};
|
||||
|
||||
// Precedence of the operators contesting our arguments
|
||||
@ -105,14 +104,14 @@ fn treeify_binary(
|
||||
let PreToken::PreOperator(l, s) = &g_inner[i-2] else {panic!()};
|
||||
let o = Operator::from_string(s);
|
||||
if o.is_none() { return Err((*l, ParserError::Syntax)); }
|
||||
Some(o.unwrap() as isize)
|
||||
Some(o.unwrap().as_int())
|
||||
} else { None };
|
||||
|
||||
let right_val = if i < g_inner.len()-2 {
|
||||
let PreToken::PreOperator(l, s) = &g_inner[i+2] else {panic!()};
|
||||
let o = Operator::from_string(s);
|
||||
if o.is_none() { return Err((*l, ParserError::Syntax)); }
|
||||
Some(o.unwrap() as isize)
|
||||
Some(o.unwrap().as_int())
|
||||
} else { None };
|
||||
|
||||
if {
|
||||
@ -213,7 +212,7 @@ fn treeify_unary(
|
||||
let PreToken::PreOperator(l, s) = this else {panic!()};
|
||||
let o = Operator::from_string(s);
|
||||
if o.is_none() { return Err((*l, ParserError::Syntax)); }
|
||||
o.unwrap() as isize
|
||||
o.unwrap().as_int()
|
||||
};
|
||||
|
||||
// Precedence of the operator contesting its argument
|
||||
@ -222,14 +221,14 @@ fn treeify_unary(
|
||||
let PreToken::PreOperator(l, s) = &g_inner[i-2] else {panic!()};
|
||||
let o = Operator::from_string(s);
|
||||
if o.is_none() { return Err((*l, ParserError::Syntax)); }
|
||||
Some(o.unwrap() as isize)
|
||||
Some(o.unwrap().as_int())
|
||||
} else { None }
|
||||
} else {
|
||||
if i < g_inner.len()-2 {
|
||||
let PreToken::PreOperator(l, s) = &g_inner[i+2] else {panic!()};
|
||||
let o = Operator::from_string(s);
|
||||
if o.is_none() { return Err((*l, ParserError::Syntax)); }
|
||||
Some(o.unwrap() as isize)
|
||||
Some(o.unwrap().as_int())
|
||||
} else { None }
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user