Small adjustments for integration

This commit is contained in:
elkowar 2021-07-17 12:57:12 +02:00
parent 228d10aeb3
commit 1118182156
No known key found for this signature in database
GPG key ID: E321AD71B1D1F27F
4 changed files with 11 additions and 5 deletions

View file

@ -32,7 +32,7 @@ impl std::fmt::Debug for Span {
} }
#[rustfmt::skip] #[rustfmt::skip]
#[derive(Clone, PartialEq, Serialize, Deserialize, Debug, strum::EnumString, strum::Display)] #[derive(Clone, PartialEq, Eq, Serialize, Deserialize, Debug, strum::EnumString, strum::Display)]
pub enum BinOp { pub enum BinOp {
#[strum(serialize = "+") ] Plus, #[strum(serialize = "+") ] Plus,
#[strum(serialize = "-") ] Minus, #[strum(serialize = "-") ] Minus,
@ -49,13 +49,13 @@ pub enum BinOp {
#[strum(serialize = "=~")] RegexMatch, #[strum(serialize = "=~")] RegexMatch,
} }
#[derive(Clone, PartialEq, Serialize, Deserialize, Debug, strum::EnumString, strum::Display)] #[derive(Clone, PartialEq, Eq, Serialize, Deserialize, Debug, strum::EnumString, strum::Display)]
pub enum UnaryOp { pub enum UnaryOp {
#[strum(serialize = "!")] #[strum(serialize = "!")]
Not, Not,
} }
#[derive(Clone, PartialEq, Serialize, Deserialize)] #[derive(Clone, PartialEq, Eq, Serialize, Deserialize)]
pub enum SimplExpr { pub enum SimplExpr {
Literal(Span, DynVal), Literal(Span, DynVal),
VarRef(Span, String), VarRef(Span, String),

View file

@ -23,7 +23,7 @@ impl ConversionError {
} }
} }
#[derive(Clone, Deserialize, Serialize, Default)] #[derive(Clone, Deserialize, Serialize, Default, Eq)]
pub struct DynVal(pub String, pub Option<Span>); pub struct DynVal(pub String, pub Option<Span>);
impl MaybeSpanned for DynVal { impl MaybeSpanned for DynVal {

View file

@ -6,6 +6,12 @@ pub mod dynval;
pub mod error; pub mod error;
pub mod eval; pub mod eval;
pub mod parser; pub mod parser;
use ast::SimplExpr;
use lalrpop_util::lalrpop_mod; use lalrpop_util::lalrpop_mod;
lalrpop_mod!(pub simplexpr_parser); lalrpop_mod!(pub simplexpr_parser);
pub fn parse_string(s: &str) -> Result<SimplExpr, error::Error> {
parser::parse_string(s)
}
pub use ast::Span;

View file

@ -1,7 +1,7 @@
use logos::Logos; use logos::Logos;
#[rustfmt::skip] #[rustfmt::skip]
#[derive(Logos, Debug, PartialEq, Eq, Clone, strum::Display)] #[derive(Logos, Debug, PartialEq, Eq, Clone, strum::Display, strum::EnumString)]
pub enum Token { pub enum Token {
#[strum(serialize = "+") ] #[token("+") ] Plus, #[strum(serialize = "+") ] #[token("+") ] Plus,
#[strum(serialize = "-") ] #[token("-") ] Minus, #[strum(serialize = "-") ] #[token("-") ] Minus,