comments and cleanup logic in process_func_str

This commit is contained in:
Simon Gardling 2022-03-28 11:55:20 -04:00
parent d5e5cd1c4a
commit 5671b9c172

View File

@ -120,27 +120,22 @@ pub fn process_func_str(function_in: &str) -> String {
let prev_letters_var = prev_char_is_variable | LETTERS.contains(&prev_char); let prev_letters_var = prev_char_is_variable | LETTERS.contains(&prev_char);
if prev_char == ')' { if prev_char == ')' {
// cases like `)x` like `(2x+3)x` // cases like `)x`, `)2`, and `)(`
if c_letters_var { if c_letters_var | c_is_number | (c == '(') {
add_asterisk = true; add_asterisk = true;
} else if c_is_number {
// cases like `(x+1)2`
add_asterisk = true;
} else if c == '(' {
// cases such as `)(` like `(x+1)(x-3)`
add_asterisk = true
} }
} else if c == '(' { } else if c == '(' {
if (prev_char_is_variable | (')' == prev_char) | prev_char_is_number) // cases like `x(` and `2(`
&& !LETTERS.contains(&prev_prev_char) if (prev_char_is_variable | prev_char_is_number) && !LETTERS.contains(&prev_prev_char) {
{
add_asterisk = true; add_asterisk = true;
} }
} else if prev_char_is_number { } else if prev_char_is_number {
if (c == '(') | c_letters_var { // cases like `2x` and `2sin(x)`
if c_letters_var {
add_asterisk = true; add_asterisk = true;
} }
} else if c_is_letter { } else if c_is_letter {
// cases like `e2` and `xx`
if prev_char_is_number if prev_char_is_number
| (prev_char_is_variable && c_is_variable) | (prev_char_is_variable && c_is_variable)
| prev_char_is_variable | prev_char_is_variable
@ -148,6 +143,7 @@ pub fn process_func_str(function_in: &str) -> String {
add_asterisk = true; add_asterisk = true;
} }
} else if (c_is_number | c_letters_var) && prev_letters_var { } else if (c_is_number | c_letters_var) && prev_letters_var {
// cases like `x2` and `xx`
add_asterisk = true; add_asterisk = true;
} }