wiki:aadlDeclarativeModel

AADL Declarative Model

The AADL parser (aadlrev) takes textual AADL files as input and produces a list of prolog predicates as output.
It is implemented with conventional Lex/Yacc technology and follows the AADL grammar (BNF) specified in the SAE AS-5506 standard documents.

Current version is aadlrev 2.17 dated 06 April 2023 that supports AADL 2.3, the Behavior Annex 2.0, the Error Annex 1.0 and 2.0 (EMV2).

The parser has been made as flexible as possible regarding past changes in the AADL grammar. When appropriate, warning messages are issued to report use of decrepeted syntax.

The output of the parser consists of a list of prolog predicates (facts base) that gives a formal and easy to use representation of the overall AADL declarative model. Efficient model processing tools can be built on top of this facts base using the power of the prolog language (rules bases). A set of prolog rules libraries has been developed to facilitate AADL model processing. In particular, rules are provided to create the AADL instance model, to search property values or to write the declarative model from its internal prolog representation. All these features (parser and libraries) are part of the LMP toolbox.

This page describes the AADL prolog API that can be used to create processing tools with LMP

Index

Core

BA

EMV1

EMV2


AADL v2 predicates

This part of the prolog API complies with document SAE AS-5506C (AADL 2.2)

isVersion/4
isWarning/4
isPackage/3
isPackageComment/4
isPackageEnd/3
isImportDeclaration/4
isAliasDeclaration/6
isComponentType/6
isCompTypeComment/5
isComponentTypeEnd/5
isComponentImplementation/8
isCompImpComment/6
isComponentImplementationEnd/7
isSubcomponent/9
isSubcompComment/6
isAnnex/7
isAnnexComment/6
isCallSequence/5
isCallSeqComment/6
isCall/7
isCallComment/7
isFeature/10
isFeatureComment/5
isInternalFeature/7
isInverseOf/4
isConnection/10
isConnection2/11
isConnectionComment/6
isProperty/9
isPropertyOpt/9
isPropertyComment/7
isRecordField/9
isRecordFieldOpt/9
isPrototype/10
isPrototypeComment/6
isPrototypeBinding/9
isPrototypeBindingComment/7
isFlowSpec/9
isFlowSpecComment/6
isFlowImplementation/8
isFlowImplementationComment/6
isMode/7
isModeComment/6
isModeTransition/8
isModeTransitionComment/6
isInMode/8
isPropertyBinding/8
isPropertySet/2
isPropertySetComment/3
isPropertySetEnd/3
isPropertyType/4
isPropertyTypeComment/4
isPropertyDefinition/8
isPropertyDefinitionComment/4
isPropertyConstant/6
isPropertyConstantComment/4
isPropertyReference/5

(back to index)


AADL Behavior Annex predicates

This part of the prolog API complies with document SAE AS-5506/2A (AADL BA 2.0)

isBAVersion/4
isBAVariable/9
isBAVariableComment/7
isBAProperty/10
isBAPropertyOpt/10
isBAState/7
isBAStateComment/7
isBATransition/9
isBATransitionComment/7
isBACondition/9
isBAConditionBlock/7
isBADispatchExpression/10
isBADispatchTrigger/8
isBAModeExpression/10
isBAModeTrigger/8
isBAAction/11
isBAActionBlock/7

(back to index)


AADL Error Annex v1 predicates

This part of the prolog API complies with document SAE AS-5506/1 (AADL EA)

isEAVersion/4
isEAProperty/7

(back to index)


AADL Error Annex v2 predicates

This part of the prolog API complies with document SAE AS-5506/1A (AADL EMV2)

isEMV2Version/4
isEMV2ExtendsLib/4
isEMV2TypeDef/5
isEMV2TypeAlias/5
isEMV2TypeSetDef/4
isEMV2TypeSetAlias/5
isEMV2TypeSetElement/7
isEMV2ErrorBehavior/4
isEMV2TypeMappings/4
isEMV2TypeMapping/6
isEMV2TypeTransformations/4
isEMV2TypeTransformation/7
isEMV2UseTypes/7
isEMV2UseBehavior/6
isEMV2UseTypeEquivalence/6
isEMV2UseMappings/6
isEMV2UseTransformations/7
isEMV2Event/10
isEMV2State/9
isEMV2Transition/12
isEMV2Condition/11
isEMV2ConditionTrigger/10
isEMV2TransitionBranch/10
isEMV2ErrorPropagation/8
isEMV2ErrorSource/11
isEMV2ErrorSink/8
isEMV2ErrorPath/11
isEMV2OutgoingPropagation/11
isEMV2ErrorDetection/11
isEMV2InModes/8
isEMV2CompositeState/9
isEMV2CompositeStateExpr/10
isEMV2CompositeStateElem/9
isEMV2ConnectionError/10
isEMV2PropagationPoint/6
isEMV2PropagationConnection/8
isEMV2Property/11

(back to index)


Last modified 7 months ago Last modified on 10/11/23 14:50:36
Note: See TracWiki for help on using the wiki.