18 lines
415 B
Haskell
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)}
|