summaryrefslogtreecommitdiffstats
path: root/crates/rebel-parse
diff options
context:
space:
mode:
authorMatthias Schiffer <mschiffer@universe-factory.net>2024-05-01 16:09:34 +0200
committerMatthias Schiffer <mschiffer@universe-factory.net>2024-05-01 16:09:34 +0200
commit284564933c991d2f65f7c81bd8f4cf525ad93408 (patch)
treeb937fb81460d0a11b12122976b05b20c01a2bdf5 /crates/rebel-parse
parent8d15e1ab1c3c3bca3c794c5f1499e0108d60d42f (diff)
downloadrebel-284564933c991d2f65f7c81bd8f4cf525ad93408.tar
rebel-284564933c991d2f65f7c81bd8f4cf525ad93408.zip
rebel-parse, rebel-lang: rename base "expr"/"pat" fields to "base" in index/field projection
Diffstat (limited to 'crates/rebel-parse')
-rw-r--r--crates/rebel-parse/src/ast/expr.rs26
-rw-r--r--crates/rebel-parse/src/ast/pat.rs10
-rw-r--r--crates/rebel-parse/src/grammar/recipe.rs12
3 files changed, 24 insertions, 24 deletions
diff --git a/crates/rebel-parse/src/ast/expr.rs b/crates/rebel-parse/src/ast/expr.rs
index fda37e8..429dfa2 100644
--- a/crates/rebel-parse/src/ast/expr.rs
+++ b/crates/rebel-parse/src/ast/expr.rs
@@ -26,11 +26,11 @@ pub enum Expr<'a> {
params: Vec<Expr<'a>>,
},
Index {
- expr: Box<Expr<'a>>,
+ base: Box<Expr<'a>>,
index: Box<Expr<'a>>,
},
Field {
- expr: Box<Expr<'a>>,
+ base: Box<Expr<'a>>,
field: Ident<'a>,
},
Paren(Box<Expr<'a>>),
@@ -69,16 +69,16 @@ impl<'a> Expr<'a> {
}
}
- pub(crate) fn index(expr: Expr<'a>, index: Expr<'a>) -> Self {
+ pub(crate) fn index(base: Expr<'a>, index: Expr<'a>) -> Self {
Expr::Index {
- expr: Box::new(expr),
+ base: Box::new(base),
index: Box::new(index),
}
}
- pub(crate) fn field(expr: Expr<'a>, field: Ident<'a>) -> Self {
+ pub(crate) fn field(base: Expr<'a>, field: Ident<'a>) -> Self {
Expr::Field {
- expr: Box::new(expr),
+ base: Box::new(base),
field,
}
}
@@ -117,11 +117,11 @@ impl<'a> Expr<'a> {
}
expr.validate()
}
- Expr::Index { expr, index } => {
+ Expr::Index { base, index } => {
index.validate()?;
- expr.validate()
+ base.validate()
}
- Expr::Field { expr, field: _ } => expr.validate(),
+ Expr::Field { base, field: _ } => base.validate(),
Expr::Paren(expr) => expr.validate(),
Expr::Path(_) => Ok(()),
Expr::Literal(lit) => lit.validate(),
@@ -145,12 +145,12 @@ impl<'a> Expr<'a> {
impl<'a> From<&DestrPat<'a>> for Expr<'a> {
fn from(value: &DestrPat<'a>) -> Self {
match value {
- DestrPat::Index { pat, index } => Expr::Index {
- expr: Box::new(pat.as_ref().into()),
+ DestrPat::Index { base, index } => Expr::Index {
+ base: Box::new(base.as_ref().into()),
index: index.clone(),
},
- DestrPat::Field { pat, field } => Expr::Field {
- expr: Box::new(pat.as_ref().into()),
+ DestrPat::Field { base, field } => Expr::Field {
+ base: Box::new(base.as_ref().into()),
field: *field,
},
DestrPat::Paren(pat) => Expr::Paren(Box::new(pat.as_ref().into())),
diff --git a/crates/rebel-parse/src/ast/pat.rs b/crates/rebel-parse/src/ast/pat.rs
index 1a48372..7365b19 100644
--- a/crates/rebel-parse/src/ast/pat.rs
+++ b/crates/rebel-parse/src/ast/pat.rs
@@ -18,11 +18,11 @@ impl<'a> Pat<'a> {
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum DestrPat<'a> {
Index {
- pat: Box<DestrPat<'a>>,
+ base: Box<DestrPat<'a>>,
index: Box<Expr<'a>>,
},
Field {
- pat: Box<DestrPat<'a>>,
+ base: Box<DestrPat<'a>>,
field: Ident<'a>,
},
Paren(Box<DestrPat<'a>>),
@@ -32,12 +32,12 @@ pub enum DestrPat<'a> {
impl<'a> DestrPat<'a> {
pub fn validate(&self) -> Result<(), ValidationError> {
match self {
- DestrPat::Index { pat, index } => {
- pat.validate()?;
+ DestrPat::Index { base, index } => {
+ base.validate()?;
index.validate()?;
Ok(())
}
- DestrPat::Field { pat, field: _ } => pat.validate(),
+ DestrPat::Field { base, field: _ } => base.validate(),
DestrPat::Paren(pat) => pat.validate(),
DestrPat::Path(_) => Ok(()),
}
diff --git a/crates/rebel-parse/src/grammar/recipe.rs b/crates/rebel-parse/src/grammar/recipe.rs
index 8903eec..2aa665a 100644
--- a/crates/rebel-parse/src/grammar/recipe.rs
+++ b/crates/rebel-parse/src/grammar/recipe.rs
@@ -84,12 +84,12 @@ peg::parser! {
/ ident:ident() { Pat::Ident(ident) }
pub rule destr_pat() -> DestrPat<'a> = precedence! {
- pat:@ p('[') index:expr() p(']') {
- DestrPat::Index { pat: Box::new(pat), index: Box::new(index) }
+ base:@ p('[') index:expr() p(']') {
+ DestrPat::Index { base: Box::new(base), index: Box::new(index) }
}
--
- pat:@ p('.') field:field() {
- DestrPat::Field { pat: Box::new(pat), field }
+ base:@ p('.') field:field() {
+ DestrPat::Field { base: Box::new(base), field }
}
--
p('(') pat:destr_pat() p(')') { DestrPat::Paren(Box::new(pat)) }
@@ -126,12 +126,12 @@ peg::parser! {
expr:@ p('(') params:call_params() p(')') {
Expr::apply(expr, params)
}
- expr:@ p('[') index:expr() p(']') { Expr::index(expr, index) }
+ base:@ p('[') index:expr() p(']') { Expr::index(base, index) }
--
expr:@ p('.') method:field() p('(') params:call_params() p(')') {
Expr::method(expr, method, params)
}
- expr:@ p('.') field:field() { Expr::field(expr, field) }
+ base:@ p('.') field:field() { Expr::field(base, field) }
--
p('(') e:expr() p(')') { Expr::paren(e) }
e:atom() { e }