mirror of
https://github.com/HigherOrderCO/Bend.git
synced 2024-09-11 03:45:29 +03:00
Merge pull request #314 from HigherOrderCO/add-pow-operation
Add exponentiation operator
This commit is contained in:
commit
530f8d777f
@ -238,7 +238,7 @@ impl fmt::Display for Op {
|
||||
Op::AND => write!(f, "&"),
|
||||
Op::OR => write!(f, "|"),
|
||||
Op::XOR => write!(f, "^"),
|
||||
Op::POW => todo!(),
|
||||
Op::POW => write!(f, "**"),
|
||||
Op::LOG => todo!(),
|
||||
Op::ATN => todo!(),
|
||||
}
|
||||
|
@ -994,6 +994,8 @@ pub trait ParserCommons<'a>: Parser<'a> {
|
||||
Op::ADD
|
||||
} else if self.try_consume_exactly("-") {
|
||||
Op::SUB
|
||||
} else if self.try_consume_exactly("**") {
|
||||
Op::POW
|
||||
} else if self.try_consume_exactly("*") {
|
||||
Op::MUL
|
||||
} else if self.try_consume_exactly("/") {
|
||||
@ -1025,6 +1027,8 @@ pub trait ParserCommons<'a>: Parser<'a> {
|
||||
Op::ADD
|
||||
} else if self.starts_with("-") {
|
||||
Op::SUB
|
||||
} else if self.starts_with("**") {
|
||||
Op::POW
|
||||
} else if self.starts_with("*") {
|
||||
Op::MUL
|
||||
} else if self.starts_with("/") {
|
||||
|
@ -8,12 +8,17 @@ use crate::{
|
||||
};
|
||||
use TSPL::Parser;
|
||||
|
||||
const PREC: &[&[Op]] =
|
||||
&[&[Op::OR], &[Op::XOR], &[Op::AND], &[Op::EQL, Op::NEQ], &[Op::LTN], &[Op::GTN], &[Op::ADD, Op::SUB], &[
|
||||
Op::MUL,
|
||||
Op::DIV,
|
||||
Op::REM,
|
||||
]];
|
||||
const PREC: &[&[Op]] = &[
|
||||
&[Op::OR],
|
||||
&[Op::XOR],
|
||||
&[Op::AND],
|
||||
&[Op::EQL, Op::NEQ],
|
||||
&[Op::LTN],
|
||||
&[Op::GTN],
|
||||
&[Op::ADD, Op::SUB],
|
||||
&[Op::MUL, Op::DIV, Op::REM],
|
||||
&[Op::POW],
|
||||
];
|
||||
|
||||
pub struct PyParser<'i> {
|
||||
pub input: &'i str,
|
||||
|
Loading…
Reference in New Issue
Block a user