diff --git a/src/Ubc/Parse/Syntax/Expression.hs b/src/Ubc/Parse/Syntax/Expression.hs index 55dc542..3bff8ad 100644 --- a/src/Ubc/Parse/Syntax/Expression.hs +++ b/src/Ubc/Parse/Syntax/Expression.hs @@ -30,6 +30,9 @@ data Expression = Binary BinaryOperator Expression Expression operatorTable :: Monad m => [[Operator String u m Expression]] operatorTable = [ + [ Infix (UbcLanguage.reservedOperator "." $> Binary StructureAccess) AssocLeft + ] + , [ Infix (UbcLanguage.reservedOperator "*" $> Binary Multiply) AssocLeft , Infix (UbcLanguage.reservedOperator "/" $> Binary Divide) AssocLeft , Infix (UbcLanguage.reservedOperator "%" $> Binary Modulo) AssocLeft diff --git a/src/Ubc/Parse/Syntax/Operators.hs b/src/Ubc/Parse/Syntax/Operators.hs index 435a57b..5ae7fe7 100644 --- a/src/Ubc/Parse/Syntax/Operators.hs +++ b/src/Ubc/Parse/Syntax/Operators.hs @@ -26,4 +26,5 @@ data BinaryOperator = Plus | LogicAnd | LogicOr | Assign + | StructureAccess deriving (Show)