Module

Perspectives.ContextRoleParser

#inLineComment

#manyOneLineComments

#reservedOp

#reserved

#identifier

#lexeme

lexeme :: forall a. IP a -> IP a

#int

#bool

#string

#simpleValue

#identLetter

#identLetterString

#capitalizedString

#lower

#uncapitalizedString

#domeinName

#modelName

#segmentedName

#defaultEmbedded

#localContextName

#localPropertyName

#localRolName

#prefix

#prefixedContextName

#prefixedPropertyName

#expandedPropertyName

#contextInstanceIDInCurrentNamespace

#relativeContextTypeName

#relativeRolTypeName

#relativePropertyTypeName

#relativeRolTypeNameOutsideNamespace

#typeContextName

#perspectEntiteitIdentifier

#dataTypes

#dataType

#getPosition

getPosition :: IP Position

@ getPosition @ returns current position should probably be added to Text.Parsing.Parser.Pos

#sourceColumn

#sourceLine

#nextLine

nextLine :: IP Unit

Parses only on the next line as the reference

#enclosingContextDeclaration

enclosingContextDeclaration :: IP EnclosingContextDeclaration

enclosingContextDeclaration = Context PerspectEntiteitIdentifier

#contextDeclaration

contextDeclaration :: IP ContextDeclaration

contextDeclaration = contextName contextName

#typedPropertyAssignment

#publicContextPropertyAssignment

publicContextPropertyAssignment :: IP (Tuple ID (Array Value))

publicContextPropertyAssignment = 'extern' propertyName '=' simpleValue

#privateContextPropertyAssignment

privateContextPropertyAssignment :: IP (Tuple ID (Array Value))

privateContextPropertyAssignment = 'intern' propertyName '=' simpleValue

#rolePropertyAssignment

rolePropertyAssignment :: IP (Tuple ID (Array Value))

rolePropertyAssignment = propertyName '=' simpleValue

#isRoleDeclaration

#roleOccurrence

#Arrow

data Arrow

Constructors

Instances

#inlineContextBinding

inlineContextBinding :: QualifiedName -> IP (Tuple RolName RoleInstance)

The inline context may itself use a contextInstanceIDInCurrentNamespace to identify the context instance. However, what is returned from the context parser is the QualifiedName of its buitenRol.

#relativeInstanceID

#butLastNNamespaceLevels

#roleBinding

roleBinding :: QualifiedName -> IP (Tuple RolName RoleInstance)

roleBinding = roleName '=>' (contextName | context) rolePropertyAssignment*

#withRoleCounting

withRoleCounting :: forall a. IP a -> IP a

#context

context :: IP RoleInstance

context = contextDeclaration publicContextPropertyAssignment* privateContextPropertyAssignment* roleBinding* The parser never backtracks over a Context. This means we can safely perform the side effect of storing its constituent roles and contexts. NOTE: we do not construct an inverse binding from an eventual prototype.

#allTheRest

#expression

#sectionHeading

#importExpression

Modules