module Data.String.Ubc.Parse.ParserState ( ParserState(..) , initialState , pushScope ) where import Data.String.Ubc.Parse.Scope (Scope) data ParserState = ParserState { scopes :: [Scope] } initialState :: ParserState initialState = ParserState [] pushScope :: Scope -> ParserState -> ParserState pushScope scope oldState@ParserState{scopes = oldScopes} = oldState{scopes = (scope : oldScopes)}