ubcc/src/Data/String/Ubc/Parse/ParserState.hs

18 lines
415 B
Haskell

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)}