From 4d03535741427b4cc7c6bb6930de8bfba38298bd Mon Sep 17 00:00:00 2001 From: NotAFile Date: Mon, 17 Jan 2022 17:36:24 +0100 Subject: [PATCH] add xor operator --- src/parser.rs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/parser.rs b/src/parser.rs index 0b3d80f..4eea835 100644 --- a/src/parser.rs +++ b/src/parser.rs @@ -63,6 +63,7 @@ pub struct Assign<'a> { pub enum Operation<'a> { And { a: Expression<'a>, b: Expression<'a> }, Or { a: Expression<'a>, b: Expression<'a> }, + Xor { a: Expression<'a>, b: Expression<'a> }, Not(Expression<'a>), } @@ -113,6 +114,13 @@ fn operation(input: Span) -> IResult { b, }, ), + map( + separated_pair(ws0(expression_nonrecurse), char('^'), ws0(expression)), + |(a, b)| Operation::Xor { + a, + b, + }, + ), map( preceded(char('~'), expression), |expr| Operation::Not(expr),