Skip to content

Commit 62a2159

Browse files
authored
Minor AST refactor (#157)
1 parent 735aca1 commit 62a2159

File tree

2 files changed

+12
-17
lines changed

2 files changed

+12
-17
lines changed

partiql-ast/src/ast.rs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -402,7 +402,6 @@ pub enum DateTimeLit {
402402
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
403403
pub struct VarRef {
404404
pub name: SymbolPrimitive,
405-
pub case: CaseSensitivity,
406405
pub qualifier: ScopeQualifier,
407406
}
408407

@@ -479,7 +478,8 @@ pub struct Between {
479478
#[derive(Clone, Debug, PartialEq)]
480479
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
481480
pub struct In {
482-
pub operands: Vec<Box<Expr>>,
481+
pub lhs: Box<Expr>,
482+
pub rhs: Box<Expr>,
483483
}
484484

485485
#[derive(Clone, Debug, PartialEq)]
@@ -550,13 +550,6 @@ pub struct LitTime {
550550
pub value: TimeValue,
551551
}
552552

553-
#[derive(Clone, Debug, PartialEq)]
554-
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
555-
pub struct Path {
556-
pub root: Box<Expr>,
557-
pub steps: Vec<PathStep>,
558-
}
559-
560553
#[derive(Clone, Debug, PartialEq)]
561554
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
562555
pub struct Call {
@@ -643,6 +636,13 @@ pub struct TimeValue {
643636
pub tz_minutes: Option<i32>,
644637
}
645638

639+
#[derive(Clone, Debug, PartialEq)]
640+
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
641+
pub struct Path {
642+
pub root: Box<Expr>,
643+
pub steps: Vec<PathStep>,
644+
}
645+
646646
/// A "step" within a path expression; that is the components of the expression following the root.
647647
#[derive(Clone, Debug, PartialEq)]
648648
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]

partiql-parser/src/parse/partiql.lalrpop

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -637,9 +637,9 @@ ExprPrecedence09: ast::Expr = {
637637
)}
638638
},
639639
<lo:@L> <l:ExprPrecedence09> "IN" <r:ExprPrecedence08> <hi:@R> =>
640-
ast::Expr{ kind: ast::ExprKind::In( ast::In{ operands: vec![Box::new(l),Box::new(r)] }.ast(lo..hi) ) },
640+
ast::Expr{ kind: ast::ExprKind::In( ast::In{ lhs: Box::new(l), rhs: Box::new(r) }.ast(lo..hi) ) },
641641
<lo:@L> <l:ExprPrecedence09> "NOT" "IN" <r:ExprPrecedence08> <hi:@R> => {
642-
let in_expr = ast::Expr{ kind: ast::ExprKind::In( ast::In{ operands: vec![Box::new(l),Box::new(r)] }.ast(lo..hi) ) };
642+
let in_expr = ast::Expr{ kind: ast::ExprKind::In( ast::In{ lhs: Box::new(l), rhs: Box::new(r) }.ast(lo..hi) ) };
643643
ast::Expr{ kind: ast::ExprKind::UniOp(
644644
ast::UniOp {
645645
kind: ast::UniOpKind::Not,
@@ -1006,8 +1006,7 @@ PathSteps: Vec<ast::PathStep> = {
10061006
PathExprVarRef: ast::Expr = {
10071007
<lo:@L> <s:"String"> <hi:@R> => ast::Expr {
10081008
kind: ast::ExprKind::VarRef(ast::VarRef {
1009-
name: ast::SymbolPrimitive { value: s.to_owned(), case: None },
1010-
case: ast::CaseSensitivity::CaseInsensitive,
1009+
name: ast::SymbolPrimitive { value: s.to_owned(), case: Some(ast::CaseSensitivity::CaseInsensitive) },
10111010
qualifier: ast::ScopeQualifier::Unqualified
10121011
}.ast(lo..hi)),
10131012
},
@@ -1018,28 +1017,24 @@ VarRefExpr: ast::Expr = {
10181017
<lo:@L> <ident:"UnquotedIdent"> <hi:@R> => ast::Expr {
10191018
kind: ast::ExprKind::VarRef(ast::VarRef {
10201019
name: ast::SymbolPrimitive { value: ident.to_owned(), case: Some(ast::CaseSensitivity::CaseInsensitive) },
1021-
case: ast::CaseSensitivity::CaseInsensitive,
10221020
qualifier: ast::ScopeQualifier::Unqualified
10231021
}.ast(lo..hi)),
10241022
},
10251023
<lo:@L> <ident:"QuotedIdent"> <hi:@R> => ast::Expr {
10261024
kind: ast::ExprKind::VarRef(ast::VarRef {
10271025
name: ast::SymbolPrimitive { value: ident.to_owned(), case: Some(ast::CaseSensitivity::CaseSensitive) },
1028-
case: ast::CaseSensitivity::CaseSensitive,
10291026
qualifier: ast::ScopeQualifier::Unqualified
10301027
}.ast(lo..hi)),
10311028
},
10321029
<lo:@L> <ident:"UnquotedAtIdentifier"> <hi:@R> => ast::Expr {
10331030
kind: ast::ExprKind::VarRef(ast::VarRef {
10341031
name: ast::SymbolPrimitive { value: ident.to_owned(), case: Some(ast::CaseSensitivity::CaseInsensitive) },
1035-
case: ast::CaseSensitivity::CaseInsensitive,
10361032
qualifier: ast::ScopeQualifier::Unqualified
10371033
}.ast(lo..hi)),
10381034
},
10391035
<lo:@L> <ident:"QuotedAtIdentifier"> <hi:@R> => ast::Expr {
10401036
kind: ast::ExprKind::VarRef(ast::VarRef {
10411037
name: ast::SymbolPrimitive { value: ident.to_owned(), case: Some(ast::CaseSensitivity::CaseSensitive) },
1042-
case: ast::CaseSensitivity::CaseInsensitive,
10431038
qualifier: ast::ScopeQualifier::Unqualified
10441039
}.ast(lo..hi)),
10451040
},

0 commit comments

Comments
 (0)