diff options
| author | Laurenz <laurmaedje@gmail.com> | 2020-01-14 20:17:50 +0100 |
|---|---|---|
| committer | Laurenz <laurmaedje@gmail.com> | 2020-01-14 20:17:50 +0100 |
| commit | 15ad30555bdad8e7b192fdcf7d4543c0d3fb18ce (patch) | |
| tree | 814a1863e6a50d433613e5b362d30ede2df0bb21 /src/syntax/expr.rs | |
| parent | dde69276d47818174c35523c8ed86b6888b6d02b (diff) | |
Parser testing prototype 🥥
Diffstat (limited to 'src/syntax/expr.rs')
| -rw-r--r-- | src/syntax/expr.rs | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/src/syntax/expr.rs b/src/syntax/expr.rs index e2df3c4e..b06b29c8 100644 --- a/src/syntax/expr.rs +++ b/src/syntax/expr.rs @@ -91,12 +91,6 @@ pub struct Object { pub pairs: Vec<Pair>, } -#[derive(Clone, PartialEq)] -pub struct Pair { - pub key: Spanned<Ident>, - pub value: Spanned<Expression>, -} - impl Object { pub fn new() -> Object { Object { pairs: vec![] } @@ -120,7 +114,7 @@ impl Display for Object { if !first { write!(f, ", ")?; } - write!(f, "{}: {}", pair.key.v, pair.value.v)?; + write!(f, "{}", pair)?; first = false; } @@ -128,10 +122,23 @@ impl Display for Object { } } +#[derive(Clone, PartialEq)] +pub struct Pair { + pub key: Spanned<Ident>, + pub value: Spanned<Expression>, +} + +impl Display for Pair { + fn fmt(&self, f: &mut Formatter) -> fmt::Result { + write!(f, "{}: {}", self.key.v, self.value.v) + } +} + debug_display!(Ident); debug_display!(Expression); debug_display!(Tuple); debug_display!(Object); +debug_display!(Pair); /// Kinds of expressions. |
