Perspectives.IndentParser
#ContextRoleParserState
type ContextRoleParserState = { contextInstances :: Object PerspectContext, nameCounter :: Int, namespace :: String, prefixes :: Object String, rolOccurrences :: Object Int, roleInstances :: Object PerspectRol, section :: QualifiedName, typeNamespace :: String }
A type to keep track of:
- the number of occurrences of a role type, and
- the namespace for context declarations. The namespace does not terminate on a $!
- the section, i.e. the current role that should be used to stick a role in a context;
- the prefixes: a map of prefixes to namespaces.
#defaultPrefixes
#initialContextRoleParserMonadState
#ContextRoleParserMonad
type ContextRoleParserMonad = StateT Position (StateT ContextRoleParserState (MonadPerspectives))
This is the monad stack we use for the ContextRoleParser. The underlying monad is MonadPerspectives, which we need to access couchdb. Then we have ContextRoleParserState, which we need to keep track of the number of instances of a particular role type in a context (to generate unique names). Finally, the StateT Position part is used by the IndentParser.
#IP
type IP a = ParserT String ContextRoleParserMonad a
This is the type that is produced by the ContextRoleParser. It can also be expressed in terms of the type synonym IndentParser: type IP a = IndentParser (StateT ContextRoleParserState (Aff e)) String a
#runIndentParser
runIndentParser :: forall a. String -> IP a -> MonadPerspectives (Either ParseError a)
Apply a parser, keeping only the parsed result.
#runIndentParser'
runIndentParser' :: forall a. String -> IP a -> MonadPerspectives (Tuple (Either ParseError a) ContextRoleParserState)
Apply a parser, keeping both state and the parsed result.
#liftAffToIP
liftAffToIP :: forall a. MonadPerspectives a -> IP a
As convienience, to lift functions on Aff all the way up:
#getRoleOccurrences
getRoleOccurrences :: RolName -> IP (Maybe Int)
Reach all the way into the stack to retrieve the number of times a particular role has been instantiated in a context:
#incrementRoleInstances
incrementRoleInstances :: RolName -> IP Unit
Increment the number of instances of a particular role.
#getRoleInstances
getRoleInstances :: IP (Object Int)
#getNamespace
getNamespace :: IP String
#generatedNameCounter
#setNamespace
setNamespace :: String -> IP Unit
#withExtendedNamespace
withExtendedNamespace :: forall a. String -> IP a -> IP a
#withNamespace
withNamespace :: forall a. String -> IP a -> IP a
#getTypeNamespace
#setTypeNamespace
setTypeNamespace :: String -> IP Unit
#withExtendedTypeNamespace
withExtendedTypeNamespace :: forall a. String -> IP a -> IP a
#withTypeNamespace
withTypeNamespace :: forall a. String -> IP a -> IP a
#setSection
setSection :: QualifiedName -> IP Unit
#getSection
#addContextInstance
#addRoleInstance
addRoleInstance :: RoleInstance -> PerspectRol -> IP Unit
Modules
- Affjax
- Affjax.RequestBody
- Affjax.RequestHeader
- Affjax.ResponseFormat
- Affjax.ResponseHeader
- Affjax.StatusCode
- Control.Aff.Sockets
- Control.Alt
- Control.Alternative
- Control.Applicative
- Control.Apply
- Control.Biapplicative
- Control.Biapply
- Control.Bind
- Control.Category
- Control.Comonad
- Control.Comonad.Cofree
- Control.Comonad.Cofree.Class
- Control.Comonad.Env
- Control.Comonad.Env.Class
- Control.Comonad.Env.Trans
- Control.Comonad.Store
- Control.Comonad.Store.Class
- Control.Comonad.Store.Trans
- Control.Comonad.Traced
- Control.Comonad.Traced.Class
- Control.Comonad.Traced.Trans
- Control.Comonad.Trans.Class
- Control.Coroutine
- Control.Coroutine.Aff
- Control.Extend
- Control.Lazy
- Control.Monad
- Control.Monad.AvarMonadAsk
- Control.Monad.Cont
- Control.Monad.Cont.Class
- Control.Monad.Cont.Trans
- Control.Monad.Error.Class
- Control.Monad.Except
- Control.Monad.Except.Trans
- Control.Monad.Free
- Control.Monad.Free.Class
- Control.Monad.Free.Trans
- Control.Monad.Gen
- Control.Monad.Gen.Class
- Control.Monad.Gen.Common
- Control.Monad.List.Trans
- Control.Monad.Maybe.Trans
- Control.Monad.RWS
- Control.Monad.RWS.Trans
- Control.Monad.Reader
- Control.Monad.Reader.Class
- Control.Monad.Reader.Trans
- Control.Monad.Rec.Class
- Control.Monad.ST
- Control.Monad.ST.Internal
- Control.Monad.ST.Ref
- Control.Monad.State
- Control.Monad.State.Class
- Control.Monad.State.Trans
- Control.Monad.Trampoline
- Control.Monad.Trans.Class
- Control.Monad.Writer
- Control.Monad.Writer.Class
- Control.Monad.Writer.Trans
- Control.MonadPlus
- Control.MonadZero
- Control.Parallel
- Control.Parallel.Class
- Control.Plus
- Control.Promise
- Control.Semigroupoid
- Data.Argonaut
- Data.Argonaut.Core
- Data.Argonaut.Decode
- Data.Argonaut.Decode.Class
- Data.Argonaut.Decode.Combinators
- Data.Argonaut.Encode
- Data.Argonaut.Encode.Class
- Data.Argonaut.Encode.Combinators
- Data.Argonaut.Gen
- Data.Argonaut.JCursor
- Data.Argonaut.JCursor.Gen
- Data.Argonaut.Parser
- Data.Argonaut.Prisms
- Data.Argonaut.Traversals
- Data.Array
- Data.Array.NonEmpty
- Data.Array.NonEmpty.Internal
- Data.Array.Partial
- Data.Array.ST
- Data.Array.ST.Iterator
- Data.Array.ST.Partial
- Data.ArrayBuffer.Types
- Data.Bifoldable
- Data.Bifunctor
- Data.Bifunctor.Clown
- Data.Bifunctor.Flip
- Data.Bifunctor.Join
- Data.Bifunctor.Joker
- Data.Bifunctor.Product
- Data.Bifunctor.Wrap
- Data.Bitraversable
- Data.Boolean
- Data.BooleanAlgebra
- Data.Bounded
- Data.CatList
- Data.CatQueue
- Data.Char
- Data.Char.Gen
- Data.Char.Unicode
- Data.Char.Unicode.Internal
- Data.CommutativeRing
- Data.Comparison
- Data.Const
- Data.Coyoneda
- Data.Date
- Data.Date.Component
- Data.Date.Component.Gen
- Data.Date.Gen
- Data.DateTime
- Data.DateTime.Gen
- Data.DateTime.ISO
- Data.DateTime.Instant
- Data.Decidable
- Data.Decide
- Data.Distributive
- Data.Divide
- Data.Divisible
- Data.DivisionRing
- Data.Either
- Data.Either.Inject
- Data.Either.Nested
- Data.Enum
- Data.Enum.Gen
- Data.Eq
- Data.Equivalence
- Data.EuclideanRing
- Data.Exists
- Data.Field
- Data.Foldable
- Data.FoldableWithIndex
- Data.FormURLEncoded
- Data.Function
- Data.Function.Uncurried
- Data.Functor
- Data.Functor.App
- Data.Functor.Compose
- Data.Functor.Contravariant
- Data.Functor.Coproduct
- Data.Functor.Coproduct.Inject
- Data.Functor.Coproduct.Nested
- Data.Functor.Invariant
- Data.Functor.Product
- Data.Functor.Product.Nested
- Data.Functor.Variant
- Data.FunctorWithIndex
- Data.Generic.Rep
- Data.Generic.Rep.Bounded
- Data.Generic.Rep.Enum
- Data.Generic.Rep.Eq
- Data.Generic.Rep.HeytingAlgebra
- Data.Generic.Rep.Monoid
- Data.Generic.Rep.Ord
- Data.Generic.Rep.Ring
- Data.Generic.Rep.Semigroup
- Data.Generic.Rep.Semiring
- Data.Generic.Rep.Show
- Data.HTTP.Method
- Data.HeytingAlgebra
- Data.Identity
- Data.Int
- Data.Int.Bits
- Data.Interval
- Data.Interval.Duration
- Data.Interval.Duration.Iso
- Data.JSDate
- Data.Lazy
- Data.Lens
- Data.Lens.At
- Data.Lens.Common
- Data.Lens.Fold
- Data.Lens.Fold.Partial
- Data.Lens.Getter
- Data.Lens.Grate
- Data.Lens.Index
- Data.Lens.Indexed
- Data.Lens.Internal.Bazaar
- Data.Lens.Internal.Exchange
- Data.Lens.Internal.Focusing
- Data.Lens.Internal.Forget
- Data.Lens.Internal.Grating
- Data.Lens.Internal.Indexed
- Data.Lens.Internal.Market
- Data.Lens.Internal.Re
- Data.Lens.Internal.Shop
- Data.Lens.Internal.Tagged
- Data.Lens.Internal.Wander
- Data.Lens.Internal.Zipping
- Data.Lens.Iso
- Data.Lens.Iso.Newtype
- Data.Lens.Lens
- Data.Lens.Lens.Product
- Data.Lens.Lens.Tuple
- Data.Lens.Lens.Unit
- Data.Lens.Lens.Void
- Data.Lens.Prism
- Data.Lens.Prism.Coproduct
- Data.Lens.Prism.Either
- Data.Lens.Prism.Maybe
- Data.Lens.Record
- Data.Lens.Setter
- Data.Lens.Traversal
- Data.Lens.Types
- Data.Lens.Zoom
- Data.List
- Data.List.Lazy
- Data.List.Lazy.NonEmpty
- Data.List.Lazy.Types
- Data.List.NonEmpty
- Data.List.Partial
- Data.List.Types
- Data.List.ZipList
- Data.Map
- Data.Map.Gen
- Data.Map.Internal
- Data.Maybe
- Data.Maybe.First
- Data.Maybe.Last
- Data.MediaType
- Data.MediaType.Common
- Data.Monoid
- Data.Monoid.Additive
- Data.Monoid.Alternate
- Data.Monoid.Conj
- Data.Monoid.Disj
- Data.Monoid.Dual
- Data.Monoid.Endo
- Data.Monoid.Multiplicative
- Data.NaturalTransformation
- Data.Newtype
- Data.NonEmpty
- Data.Nullable
- Data.Number
- Data.Number.Approximate
- Data.Number.Format
- Data.Op
- Data.Options
- Data.Ord
- Data.Ord.Down
- Data.Ord.Max
- Data.Ord.Min
- Data.Ord.Unsafe
- Data.Ordering
- Data.Posix
- Data.Posix.Signal
- Data.Predicate
- Data.Profunctor
- Data.Profunctor.Choice
- Data.Profunctor.Closed
- Data.Profunctor.Clown
- Data.Profunctor.Cochoice
- Data.Profunctor.Costar
- Data.Profunctor.Costrong
- Data.Profunctor.Cowrap
- Data.Profunctor.Join
- Data.Profunctor.Joker
- Data.Profunctor.Split
- Data.Profunctor.Star
- Data.Profunctor.Strong
- Data.Profunctor.Wrap
- Data.Ring
- Data.Semigroup
- Data.Semigroup.First
- Data.Semigroup.Foldable
- Data.Semigroup.Last
- Data.Semigroup.Traversable
- Data.Semiring
- Data.Set
- Data.Set.NonEmpty
- Data.Show
- Data.String
- Data.String.CaseInsensitive
- Data.String.CodePoints
- Data.String.CodeUnits
- Data.String.Common
- Data.String.Gen
- Data.String.NonEmpty
- Data.String.NonEmpty.CaseInsensitive
- Data.String.NonEmpty.CodePoints
- Data.String.NonEmpty.CodeUnits
- Data.String.NonEmpty.Internal
- Data.String.Pattern
- Data.String.Regex
- Data.String.Regex.Flags
- Data.String.Regex.Unsafe
- Data.String.Unsafe
- Data.Symbol
- Data.These
- Data.These.Gen
- Data.Time
- Data.Time.Component
- Data.Time.Component.Gen
- Data.Time.Duration
- Data.Time.Duration.Gen
- Data.Time.Gen
- Data.Traversable
- Data.Traversable.Accum
- Data.Traversable.Accum.Internal
- Data.TraversableWithIndex
- Data.Tuple
- Data.Tuple.Nested
- Data.Unfoldable
- Data.Unfoldable1
- Data.Unit
- Data.Validation.Semigroup
- Data.Validation.Semiring
- Data.Variant
- Data.Variant.Internal
- Data.Void
- Data.Yoneda
- Effect
- Effect.AVar
- Effect.Aff
- Effect.Aff.AVar
- Effect.Aff.Class
- Effect.Aff.Compat
- Effect.Class
- Effect.Class.Console
- Effect.Console
- Effect.Exception
- Effect.Exception.Unsafe
- Effect.Now
- Effect.Random
- Effect.Ref
- Effect.Timer
- Effect.Uncurried
- Effect.Unsafe
- Foreign
- Foreign.Class
- Foreign.Generic
- Foreign.Generic.Class
- Foreign.Generic.EnumEncoding
- Foreign.Generic.Types
- Foreign.Index
- Foreign.Internal
- Foreign.JSON
- Foreign.Keys
- Foreign.NullOrUndefined
- Foreign.Object
- Foreign.Object.Gen
- Foreign.Object.ST
- Foreign.Object.ST.Unsafe
- Foreign.Object.Unsafe
- Global
- Global.Unsafe
- Kishimen
- Main
- MainCouchdb
- Math
- Node.Buffer
- Node.Buffer.Unsafe
- Node.Encoding
- Node.FS
- Node.FS.Aff
- Node.FS.Async
- Node.FS.Internal
- Node.FS.Perms
- Node.FS.Stats
- Node.FS.Stream
- Node.FS.Sync
- Node.Globals
- Node.Path
- Node.Platform
- Node.Process
- Node.ReadLine
- Node.Stream
- Node.Yargs
- Node.Yargs.Applicative
- Node.Yargs.Setup
- PSCI.Support
- Partial
- Partial.Unsafe
- Perspectives.Actions
- Perspectives.Api
- Perspectives.ApiTypes
- Perspectives.Assignment.ActionCache
- Perspectives.Assignment.DependencyTracking
- Perspectives.Assignment.Update
- Perspectives.BasicConstructors
- Perspectives.Checking.PerspectivesTypeChecker
- Perspectives.Checking.PerspectivesTypeChecker.Messages
- Perspectives.ContextAndRole
- Perspectives.ContextRolAccessors
- Perspectives.ContextRoleParser
- Perspectives.CoreTypes
- Perspectives.Couchdb
- Perspectives.Couchdb.Databases
- Perspectives.CouchdbState
- Perspectives.Deltas
- Perspectives.DependencyTracking.Array.Trans
- Perspectives.DependencyTracking.Dependency
- Perspectives.Docu.InstancePersistence
- Perspectives.Docu.Instances
- Perspectives.Docu.Main
- Perspectives.Docu.TypePersistence
- Perspectives.Docu.TypeRepresentation
- Perspectives.DomeinCache
- Perspectives.DomeinFile
- Perspectives.EntiteitAndRDFAliases
- Perspectives.GlobalState
- Perspectives.GlobalUnsafeStrMap
- Perspectives.Guid
- Perspectives.Identifiers
- Perspectives.IndentParser
- Perspectives.InstanceRepresentation
- Perspectives.Instances.Aliases
- Perspectives.Instances.Combinators
- Perspectives.Instances.ComputedGetters
- Perspectives.Instances.Environment
- Perspectives.Instances.ObjectGetters
- Perspectives.LoadCRL
- Perspectives.ObjectGetterLookup
- Perspectives.ParseFromCommandLine
- Perspectives.Parser
- Perspectives.Parsing.Arc
- Perspectives.Parsing.Arc.AST
- Perspectives.Parsing.Arc.Comments
- Perspectives.Parsing.Arc.Expression
- Perspectives.Parsing.Arc.Expression.AST
- Perspectives.Parsing.Arc.Identifiers
- Perspectives.Parsing.Arc.IndentParser
- Perspectives.Parsing.Arc.PhaseThree
- Perspectives.Parsing.Arc.PhaseTwo
- Perspectives.Parsing.Arc.Token
- Perspectives.Parsing.Messages
- Perspectives.Parsing.TransferFile
- Perspectives.Parsing.TransferFile.Token
- Perspectives.Persistent
- Perspectives.PerspectivesState
- Perspectives.Query.Compiler
- Perspectives.Query.DescriptionCompiler
- Perspectives.Query.QueryTypes
- Perspectives.QueryAST
- Perspectives.Representation.ADT
- Perspectives.Representation.Action
- Perspectives.Representation.Assignment
- Perspectives.Representation.CalculatedProperty
- Perspectives.Representation.CalculatedRole
- Perspectives.Representation.Calculation
- Perspectives.Representation.Class.Action
- Perspectives.Representation.Class.Cacheable
- Perspectives.Representation.Class.EnumReadForeign
- Perspectives.Representation.Class.Identifiable
- Perspectives.Representation.Class.PersistentType
- Perspectives.Representation.Class.Property
- Perspectives.Representation.Class.Revision
- Perspectives.Representation.Class.Role
- Perspectives.Representation.Context
- Perspectives.Representation.EnumeratedProperty
- Perspectives.Representation.EnumeratedRole
- Perspectives.Representation.InstanceIdentifiers
- Perspectives.Representation.QueryFunction
- Perspectives.Representation.SideEffect
- Perspectives.Representation.ThreeValuedLogic
- Perspectives.Representation.TypeIdentifiers
- Perspectives.Representation.View
- Perspectives.RunMonadPerspectivesTransaction
- Perspectives.RunPerspectives
- Perspectives.SaveUserData
- Perspectives.SetupCouchdb
- Perspectives.SetupUser
- Perspectives.Sync.Class.Assumption
- Perspectives.Sync.DateTime
- Perspectives.Sync.Transaction
- Perspectives.Syntax
- Perspectives.Token
- Perspectives.TypePersistence.LoadArc
- Perspectives.Types.ObjectGetters
- Perspectives.TypesForDeltas
- Perspectives.User
- Perspectives.Utilities
- Prelude
- Prim
- Prim.Boolean
- Prim.Ordering
- Prim.Row
- Prim.RowList
- Prim.Symbol
- Prim.TypeError
- Random.LCG
- Record
- Record.Builder
- Record.ST
- Record.Unsafe
- Record.Unsafe.Union
- Simple.JSON
- Test.QuickCheck
- Test.QuickCheck.Arbitrary
- Test.QuickCheck.Gen
- Test.Unit
- Test.Unit.Assert
- Test.Unit.Console
- Test.Unit.Main
- Test.Unit.Output.Fancy
- Test.Unit.Output.Simple
- Test.Unit.Output.TAP
- Test.Unit.QuickCheck
- Text.Parsing.Indent
- Text.Parsing.Parser
- Text.Parsing.Parser.Combinators
- Text.Parsing.Parser.Expr
- Text.Parsing.Parser.Language
- Text.Parsing.Parser.Pos
- Text.Parsing.Parser.String
- Text.Parsing.Parser.Token
- Type.Data.Boolean
- Type.Data.Ordering
- Type.Data.Row
- Type.Data.RowList
- Type.Data.Symbol
- Type.Equality
- Type.Prelude
- Type.Proxy
- Type.Row
- Type.Row.Homogeneous
- URI
- URI.AbsoluteURI
- URI.Authority
- URI.Common
- URI.Extra.MultiHostPortPair
- URI.Extra.QueryPairs
- URI.Extra.UserPassInfo
- URI.Fragment
- URI.HierarchicalPart
- URI.Host
- URI.Host.Gen
- URI.Host.IPv4Address
- URI.Host.IPv6Address
- URI.Host.RegName
- URI.HostPortPair
- URI.HostPortPair.Gen
- URI.Path
- URI.Path.Absolute
- URI.Path.NoScheme
- URI.Path.Rootless
- URI.Path.Segment
- URI.Port
- URI.Port.Gen
- URI.Query
- URI.RelativePart
- URI.RelativeRef
- URI.Scheme
- URI.Scheme.Common
- URI.URI
- URI.URIRef
- URI.UserInfo
- Unsafe.Coerce
- Web.DOM
- Web.DOM.CharacterData
- Web.DOM.ChildNode
- Web.DOM.Comment
- Web.DOM.DOMTokenList
- Web.DOM.Document
- Web.DOM.DocumentFragment
- Web.DOM.DocumentType
- Web.DOM.Element
- Web.DOM.HTMLCollection
- Web.DOM.Internal.Types
- Web.DOM.MutationObserver
- Web.DOM.MutationRecord
- Web.DOM.Node
- Web.DOM.NodeList
- Web.DOM.NodeType
- Web.DOM.NonDocumentTypeChildNode
- Web.DOM.NonElementParentNode
- Web.DOM.ParentNode
- Web.DOM.ProcessingInstruction
- Web.DOM.Text
- Web.Event.CustomEvent
- Web.Event.Event
- Web.Event.EventPhase
- Web.Event.EventTarget
- Web.Event.Internal.Types
- Web.File.Blob
- Web.File.File
- Web.File.FileList
- Web.File.FileReader
- Web.File.FileReader.ReadyState
- Web.File.Url
- Web.Internal.FFI
- Web.XHR.EventTypes
- Web.XHR.FormData
- Web.XHR.ProgressEvent
- Web.XHR.ReadyState
- Web.XHR.ResponseType
- Web.XHR.XMLHttpRequest
- Web.XHR.XMLHttpRequestUpload