From 816c0be37ee9ec363bfce362769ae1a835d99791 Mon Sep 17 00:00:00 2001 From: Jake Lishman Date: Tue, 16 Jan 2024 18:28:50 +0000 Subject: [PATCH] Add missing public interfaces to ASG --- crates/oq3_semantics/src/asg.rs | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/crates/oq3_semantics/src/asg.rs b/crates/oq3_semantics/src/asg.rs index 66e0c92..9363154 100644 --- a/crates/oq3_semantics/src/asg.rs +++ b/crates/oq3_semantics/src/asg.rs @@ -294,18 +294,29 @@ impl IndexExpression { #[derive(Clone, Debug, PartialEq, Eq, Hash)] pub struct IndexedIdentifier { - identifer: SymbolIdResult, + identifier: SymbolIdResult, indexes: Vec, } impl IndexedIdentifier { - pub fn new(identifer: SymbolIdResult, indexes: Vec) -> IndexedIdentifier { - IndexedIdentifier { identifer, indexes } + pub fn new(identifier: SymbolIdResult, indexes: Vec) -> IndexedIdentifier { + IndexedIdentifier { + identifier, + indexes, + } } pub fn to_texpr(self) -> TExpr { TExpr::new(Expr::IndexedIdentifier(self), Type::ToDo) } + + pub fn identifier(&self) -> &SymbolIdResult { + &self.identifier + } + + pub fn indexes(&self) -> &[IndexOperator] { + &self.indexes + } } #[derive(Clone, Debug, PartialEq, Eq, Hash)] @@ -392,6 +403,10 @@ impl SetExpression { pub fn new(expressions: Vec) -> SetExpression { SetExpression { expressions } } + + pub fn expressions(&self) -> &[TExpr] { + &self.expressions + } } #[derive(Clone, Debug, PartialEq, Eq, Hash)]