Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes

de.fraunhofer.isst.axbench.operations.AXLVisitor Class Reference

This is the visitor part of the AXLReader. More...

List of all members.

Public Member Functions

 AXLVisitor (IAXLFileOperation newReader, AXLFile newCurrentFile, de.fraunhofer.isst.axbench.axlang.elements.Model newModel, ReferenceHandler newReferenceHandler, Collection< de.fraunhofer.isst.axbench.axlang.elements.architecturemodel.AbstractConnection > newMissingDataLinkConnections)
 Constructor with needed handles.
de.fraunhofer.isst.axbench.axlang.elements.Model getModel ()
 Returns generated model.
void visit (AspectCompositionLinkApplication n)
void visit (AspectComposition n)
void visit (GlobalInstancePath n)
void visit (GlobalSubComponentInstance n)
void visit (GlobalSignalAtPortInstance n)
void visit (GlobalSignalInstance n)
void visit (GlobalFunctionAlternativeInstance n)
void visit (GlobalFunctionInstance n)
void visit (GlobalStorageInstance n)
void visit (GlobalOperationAtPortInstance n)
void visit (GlobalOperationInstance n)
void visit (GlobalPortInstance n)
void visit (GlobalHWPortInstance n)
void visit (GlobalHWSubComponentInstance n)
void visit (GlobalHWBusInstance n)
void visit (GlobalHWConnectionInstance n)
void visit (GlobalConnectionInstance n)
void visit (GlobalComponentInstance n)
void visit (AspectRelationLink n)
void visit (AspectRelationReplace n)
void visit (AspectRelationInner n)
void visit (AspectRelationIdentity n)
void visit (AspectRelationCopy n)
void visit (AspectMapping n)
void visit (ActivationTrigger n)
void visit (Activation n)
void visit (ActivityAttribute n)
void visit (Activity n)
void visit (Transaction n)
void visit (TransactionModel n)
void visit (HWBus n)
void visit (HWConnection n)
void visit (HWXORSubcomponent n)
void visit (HWAtomicSubcomponent n)
void visit (HWPort n)
void visit (HWComponent n)
void visit (ResourceModel n)
void visit (LocalPortInstance n)
void visit (LocalInstance n)
void visit (CardinalityAssignment n)
void visit (Con2Con_Link n)
void visit (P2P_Link n)
void visit (SC2SC_Link n)
void visit (A2RMapping n)
void visit (F2RLink n)
void visit (F2RMapping n)
void visit (F2ALink n)
void visit (F2AMapping n)
void visit (Operation n)
void visit (Signal n)
void visit (ReturnStatement n)
void visit (OperationCallStatement n)
void visit (WritePort n)
void visit (DoStatement n)
void visit (WhileStatement n)
void visit (ForStatement n)
void visit (IfStatement n)
void visit (OperationCallExpression n)
void visit (ComparisonOperator n)
void visit (BooleanBinaryOperator n)
void visit (ArithmeticBinaryOperator n)
void visit (AtomicOrPostfixOrInfixExpression n)
void visit (PrefixExpression n)
void visit (BracketsExpression n)
void visit (ReadPort n)
void visit (VariableExpression n)
void visit (ConstantExpression n)
void visit (Assignment n)
void visit (Block n)
void visit (XORFunction n)
void visit (Execute n)
void visit (LocalFunctionInstance n)
void visit (FunctionLink n)
void visit (Postcondition n)
void visit (Interaction n)
void visit (Precondition n)
void visit (Purpose n)
void visit (Behavior n)
void visit (WriteAccess n)
void visit (ReadAccess n)
void visit (Triggers n)
void visit (AtomicFunction n)
void visit (LocalStorageInstance n)
void visit (StorageLink n)
void visit (Storage n)
void visit (DataElementLink n)
void visit (DataElementLinks n)
void visit (Connection n)
void visit (XORSubcomponent n)
void visit (AtomicSubcomponent n)
void visit (PortSignature n)
void visit (Port n)
void visit (Component n)
void visit (ApplicationModel n)
void visit (DeSelectConfiguration n)
void visit (SelectConfiguration n)
void visit (Configuration n)
void visit (AtomicFeature n)
void visit (Cardinality n)
void visit (FeatureGroup n)
void visit (FeatureModel n)
void visit (Model n)
void visit (Attribute n)
void visit (IncludeFile n)
void visit (FeaturePath n)
void visit (AspectCompositionLinkAspectMapping n)

Private Member Functions

void addClock ()
 Add clock to application model.
void createGlobalInstance (NodeToken idNode)
 Marks a global instance as missing reference.
MetaInformation createMetaInformation (NodeToken startNodeToken, NodeToken endNodeToken)
 Creates meta information from a (local) node token and the (global) current axl-file.
MetaInformation createMetaInformation (NodeToken nodeToken)
 Creates meta information from a (local) node token and the (global) current axl-file.
void setCommonInformation (IAXLangElement axlElement, NodeToken ntCommentToken, NodeToken ntIdentifier)
 Sets the element's common information: identifier, comment (description), meta information.
void setDescription (IAXLangElement axlElement, NodeToken ntAfterComment)
 Sets the description for the given element from the tokens comment.
void setMetaInformation (IAXLangElement axlElement, NodeToken ntStart, NodeToken ntEnd)
 Sets the element meta information (filename, line, column).
void setMetaInformation (IAXLangElement axlElement, NodeToken ntStartAndEnd)
 Sets the element's meta information with the token representing start and end token.

Static Private Member Functions

static String cleanText (String sToClean, String...arrReplacees)
 Cleans a text from '$' and leading/trailing whitespaces.

Private Attributes

de.fraunhofer.isst.axbench.axlang.elements.Model axlModel = null
 aXLang model
List< String > currentIDPath = null
 last path that was read by visit(IDPath)
NodeToken idPathFirstNodeToken
 the first node token of the last visited id-path
NodeToken idPathLastNodeToken
 the last node token of the last visited id-path
List< String > lstGlobalInstanceContext
 context for global instances
List< String > lstGlobalInstancePath
 last path read by visit(GlobalInstancePath)
Collection
< de.fraunhofer.isst.axbench.axlang.elements.architecturemodel.AbstractConnection
missingDataLinkConnections = null
NodeToken ntSourceSubComponent
 node token for the source subcomponent of a connection, needed to define the source references of the data element links of the connection
NodeToken ntTargetSubComponent
 node token for the source subcomponent of a connection, needed to define the source references of the data element links of the connection
String sourceApplicationModelID
 id of the application model in an A2RMapping, needed for the context of the source instances of its links
Role statementRole = null
 erkärung : processed ifstatement element
String targetResourceModelID
 id of the resource model in an A2RMapping, needed for the context of the target instances of its links
IAXLFileOperation theAXLangReader = null
 aXLang reader (storing messages, errors, ...)
AXLFile theCurrentAXLFile = null
 current convert file
Role theGlobalInstanceRole
 is needed to define the child role of a global instance
IAXLangElement theParent = null
 processed parent element
ReferenceHandler theReferenceHandler = null

Detailed Description

This is the visitor part of the AXLReader.

It was separated as class for two reasons:

  1. the separation of management and visit methods
  2. direct implementation of the DepthFirstVisitor
  3. solving the extend-problem of the AXLReader

Included files have to be defined relative to the path of the model file.

This converter is a little more complicated in dealing with included files. They can not be opened within this file, because this file should be platform independent. Opening Java files or Eclipse files differs not only in detail.

Therefore, every include is collected in a file list. This list is processed by the AXLReader which extends the AbstractAXLFileOperation.

Author:
ekleinod
mgrosse
mmark
bmett
nschult
cknoppek
skaegebein
Version:
0.10.0
Since:
0.4.2

Constructor & Destructor Documentation

de.fraunhofer.isst.axbench.operations.AXLVisitor.AXLVisitor ( IAXLFileOperation  newReader,
AXLFile  newCurrentFile,
de.fraunhofer.isst.axbench.axlang.elements.Model  newModel,
ReferenceHandler  newReferenceHandler,
Collection< de.fraunhofer.isst.axbench.axlang.elements.architecturemodel.AbstractConnection newMissingDataLinkConnections 
)

Constructor with needed handles.

Parameters:
newReader calling aXLang reader
newCurrentFile current convert file
newModel given aXLang model (null allowed)
newReferenceHandler handler of missing references
newMissingDataLinkConnections missing data link connnections

Member Function Documentation

void de.fraunhofer.isst.axbench.operations.AXLVisitor.addClock (  )  [private]

Add clock to application model.

theParent is assumed to be an application model

  • component "clock"
  • signal "tick"
  • signal "tack"
  • port "clockOut"
static String de.fraunhofer.isst.axbench.operations.AXLVisitor.cleanText ( String  sToClean,
String...  arrReplacees 
) [static, private]

Cleans a text from '$' and leading/trailing whitespaces.

Parameters:
sToClean text to be cleaned
arrReplacees array of strings to replace with ""
Returns:
cleaned text
void de.fraunhofer.isst.axbench.operations.AXLVisitor.createGlobalInstance ( NodeToken  idNode  )  [private]

Marks a global instance as missing reference.

Parameters:
idNode id node needed for the error message
MetaInformation de.fraunhofer.isst.axbench.operations.AXLVisitor.createMetaInformation ( NodeToken  nodeToken  )  [private]

Creates meta information from a (local) node token and the (global) current axl-file.

Parameters:
nodeToken the node token that defines the line and column position
Returns:
the complete meta information generated from the node token and the current axl-file
MetaInformation de.fraunhofer.isst.axbench.operations.AXLVisitor.createMetaInformation ( NodeToken  startNodeToken,
NodeToken  endNodeToken 
) [private]

Creates meta information from a (local) node token and the (global) current axl-file.

Parameters:
nodeToken the node token that defines the line and column position
Returns:
the complete meta information generated from the node token and the current axl-file
de.fraunhofer.isst.axbench.axlang.elements.Model de.fraunhofer.isst.axbench.operations.AXLVisitor.getModel (  ) 

Returns generated model.

Returns:
model
void de.fraunhofer.isst.axbench.operations.AXLVisitor.setCommonInformation ( IAXLangElement  axlElement,
NodeToken  ntCommentToken,
NodeToken  ntIdentifier 
) [private]

Sets the element's common information: identifier, comment (description), meta information.

Parameters:
axlElement element to set information to
ntCommentToken node token with comment
ntIdentifier identifier node token
void de.fraunhofer.isst.axbench.operations.AXLVisitor.setDescription ( IAXLangElement  axlElement,
NodeToken  ntAfterComment 
) [private]

Sets the description for the given element from the tokens comment.

Parameters:
axlElement element to set description for
ntAfterComment node token that contains the description, i.e. the token after the comment (mainly the first token)
void de.fraunhofer.isst.axbench.operations.AXLVisitor.setMetaInformation ( IAXLangElement  axlElement,
NodeToken  ntStart,
NodeToken  ntEnd 
) [private]

Sets the element meta information (filename, line, column).

Parameters:
axlElement element to set information to
ntStart node token that starts the definition (start line and start column)
ntEnd node token that ends the definition (end line and end column)
void de.fraunhofer.isst.axbench.operations.AXLVisitor.setMetaInformation ( IAXLangElement  axlElement,
NodeToken  ntStartAndEnd 
) [private]

Sets the element's meta information with the token representing start and end token.

Parameters:
axlElement element to set information to
ntStartAndEnd node token representing start end end token
See also:
setMetaInformation(IAXLangElement, NodeToken, NodeToken)
void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( GlobalFunctionInstance  n  ) 

f0 -> <FUNCTION> f1 -> GlobalInstancePath()

Reimplemented from de.fraunhofer.isst.axbench.axlang.visitor.DepthFirstVisitor.

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( GlobalStorageInstance  n  ) 

f0 -> <STORAGE> f1 -> GlobalInstancePath()

Reimplemented from de.fraunhofer.isst.axbench.axlang.visitor.DepthFirstVisitor.

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( GlobalOperationAtPortInstance  n  ) 

f0 -> <OPERATION> f1 -> GlobalInstancePath()

Reimplemented from de.fraunhofer.isst.axbench.axlang.visitor.DepthFirstVisitor.

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( GlobalOperationInstance  n  ) 

f0 -> <OPERATION> f1 -> GlobalInstancePath()

Reimplemented from de.fraunhofer.isst.axbench.axlang.visitor.DepthFirstVisitor.

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( GlobalPortInstance  n  ) 

f0 -> <PORT> f1 -> GlobalInstancePath()

Reimplemented from de.fraunhofer.isst.axbench.axlang.visitor.DepthFirstVisitor.

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( GlobalHWPortInstance  n  ) 

f0 -> <HW_PORT> f1 -> GlobalInstancePath()

Reimplemented from de.fraunhofer.isst.axbench.axlang.visitor.DepthFirstVisitor.

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( GlobalHWSubComponentInstance  n  ) 

f0 -> <HW_COMPONENT> f1 -> GlobalInstancePath()

Reimplemented from de.fraunhofer.isst.axbench.axlang.visitor.DepthFirstVisitor.

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( GlobalHWBusInstance  n  ) 

f0 -> <HW_BUS> f1 -> GlobalInstancePath()

Reimplemented from de.fraunhofer.isst.axbench.axlang.visitor.DepthFirstVisitor.

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( GlobalHWConnectionInstance  n  ) 

f0 -> <HW_CONNECTION> f1 -> GlobalInstancePath()

Reimplemented from de.fraunhofer.isst.axbench.axlang.visitor.DepthFirstVisitor.

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( GlobalConnectionInstance  n  ) 

f0 -> <CONNECTION> f1 -> GlobalInstancePath()

Reimplemented from de.fraunhofer.isst.axbench.axlang.visitor.DepthFirstVisitor.

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( GlobalComponentInstance  n  ) 

f0 -> <COMPONENT> f1 -> GlobalInstancePath()

Reimplemented from de.fraunhofer.isst.axbench.axlang.visitor.DepthFirstVisitor.

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( AspectRelationLink  n  ) 

f0 -> GlobalInstanceInAspectRelation() f1 -> "->" f2 -> GlobalInstanceInAspectRelation() f3 -> ( "," GlobalInstanceInAspectRelation() )*

Reimplemented from de.fraunhofer.isst.axbench.axlang.visitor.DepthFirstVisitor.

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( AspectRelationReplace  n  ) 

f0 -> <REPLACE> f1 -> AspectRelationLink() f2 -> ";"

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( AspectRelationInner  n  ) 

f0 -> <INNER> f1 -> AspectRelationLink() f2 -> ";"

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( AspectRelationIdentity  n  ) 

f0 -> <IDENTITY> f1 -> AspectRelationLink() f2 -> ";"

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( AspectRelationCopy  n  ) 

f0 -> <COPY> f1 -> AspectRelationLink() f2 -> ";"

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( AspectMapping  n  ) 

f0 -> <ASPECT_MAPPING> f1 -> <IDENTIFIER> f2 -> "{" f3 -> ( AspectRelationCopy() | AspectRelationIdentity() | AspectRelationInner() | AspectRelationReplace() )* f4 -> "}"

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( ActivationTrigger  n  ) 

f0 -> GlobalFunctionInstance() ":" <IDENTIFIER> "." <IDENTIFIER> <ACTIVATIONKIND> | ( GlobalHWSubComponentInstance() | GlobalHWBusInstance() ) <ACTIVATIONKIND>

Reimplemented from de.fraunhofer.isst.axbench.axlang.visitor.DepthFirstVisitor.

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( Activation  n  ) 

f0 -> ActivationTrigger() f1 -> "{" f2 -> [ <PATTERNLENGTH> <NUMBER> ";" ] f3 -> [ <OFFSET> <NUMBER> [ <UNIT> ] ( "," <NUMBER> )* ";" ] f4 -> [ <PERIOD> <NUMBER> <UNIT> ";" ] f5 -> [ <MININTERARRIVALTIME> <NUMBER> <UNIT> ";" ] f6 -> [ <MAXINTERARRIVALTIME> <NUMBER> <UNIT> ";" ] f7 -> [ <JITTER> <NUMBER> <UNIT> ";" ] f8 -> "}"

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( ActivityAttribute  n  ) 

f0 -> ( GlobalFunctionInstance() | GlobalHWComponentInstance() | GlobalHWBusInstance() ) f1 -> "{" f2 -> [ <PRIORITY> <NUMBER> ";" ] f3 -> [ <WCET> <NUMBER> <UNIT> ";" ] f4 -> [ <JITTER> <NUMBER> <UNIT> ";" ] f5 -> [ <DEADLINE> <NUMBER> <UNIT> ";" ] f6 -> "}"

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( Activity  n  ) 

f0 -> ( GlobalFunctionInstance() | GlobalHWComponentInstance() | GlobalHWBusInstance() )

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( Transaction  n  ) 

f0 -> <TRANSACTION> f1 -> <IDENTIFIER> f2 -> "{" f3 -> [ Activity() ( "," Activity() )* ";" ] f4 -> "}"

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( TransactionModel  n  ) 

f0 -> <TRANSACTIONMODEL> f1 -> <IDENTIFIER> f2 -> <IDENTIFIER> f3 -> "{" f4 -> [ Transactions() ] f5 -> [ Activations() ] f6 -> [ ActivitiesAttributes() ] f7 -> "}"

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( HWBus  n  ) 

f0 -> <IDENTIFIER> f1 -> <IDENTIFIER> f2 -> ";"

Reimplemented from de.fraunhofer.isst.axbench.axlang.visitor.DepthFirstVisitor.

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( HWConnection  n  ) 

f0 -> [ "\'" <IDENTIFIER> "\'" ] f1 -> [ ( <IDENTIFIER> | <THIS> ) "." ] f2 -> <IDENTIFIER> f3 -> "--" f4 -> ( <IDENTIFIER> | <THIS> ) f5 -> "." f6 -> <IDENTIFIER> f7 -> ";"

Reimplemented from de.fraunhofer.isst.axbench.axlang.visitor.DepthFirstVisitor.

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( HWXORSubcomponent  n  ) 

f0 -> [ <OPTIONAL> ] f1 -> <XOR> f2 -> <IDENTIFIER> f3 -> "{" f4 -> ( HWAtomicSubcomponent() )+ f5 -> "}"

Reimplemented from de.fraunhofer.isst.axbench.axlang.visitor.DepthFirstVisitor.

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( HWAtomicSubcomponent  n  ) 

f0 -> [ <OPTIONAL> ] f1 -> <IDENTIFIER> f2 -> <IDENTIFIER> f3 -> ( "," <IDENTIFIER> )* f4 -> ";"

Reimplemented from de.fraunhofer.isst.axbench.axlang.visitor.DepthFirstVisitor.

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( HWPort  n  ) 

f0 -> [ <OPTIONAL> ] f1 -> <DIRECTION> f2 -> "<" f3 -> ( <HW_BUSTYPE> | <ANALOG> | <DIGITAL> ) f4 -> ">" f5 -> <IDENTIFIER> f6 -> ( "," <IDENTIFIER> )* f7 -> ";"

Reimplemented from de.fraunhofer.isst.axbench.axlang.visitor.DepthFirstVisitor.

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( HWComponent  n  ) 

f0 -> [ <TOP> ] f1 -> <HW_COMPONENT> f2 -> <IDENTIFIER> f3 -> [ Attributes() ] f4 -> "{" f5 -> [ HWPorts() ] f6 -> [ HWSubcomponents() ] f7 -> [ HWConnections() ] f8 -> [ HWBusses() ] f9 -> "}"

Reimplemented from de.fraunhofer.isst.axbench.axlang.visitor.DepthFirstVisitor.

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( ResourceModel  n  ) 

f0 -> <RESOURCEMODEL> f1 -> <IDENTIFIER> f2 -> "{" f3 -> ( HWComponent() )* f4 -> "}"

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( LocalPortInstance  n  ) 

f0 -> <IDENTIFIER> f1 -> "." f2 -> <IDENTIFIER>

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( LocalInstance  n  ) 

f0 -> ( <SUBCOMPONENT> <IDENTIFIER> ) | ( <PORT> LocalPortInstance() )

Reimplemented from de.fraunhofer.isst.axbench.axlang.visitor.DepthFirstVisitor.

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( CardinalityAssignment  n  ) 

f0 -> Cardinality() f1 -> "->" f2 -> LocalInstance() f3 -> ( "," LocalInstance() )* f4 -> ";"

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( Con2Con_Link  n  ) 

f0 -> GlobalConnectionInstance() f1 -> "->" f2 -> GlobalConnectionInstance() f3 -> ";"

Reimplemented from de.fraunhofer.isst.axbench.axlang.visitor.DepthFirstVisitor.

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( P2P_Link  n  ) 

f0 -> GlobalPortInstance() f1 -> "->" f2 -> GlobalPortInstance() f3 -> ";"

Reimplemented from de.fraunhofer.isst.axbench.axlang.visitor.DepthFirstVisitor.

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( SC2SC_Link  n  ) 

f0 -> GlobalSubComponentInstance() f1 -> "->" f2 -> GlobalSubComponentInstance() f3 -> ";"

Reimplemented from de.fraunhofer.isst.axbench.axlang.visitor.DepthFirstVisitor.

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( A2RMapping  n  ) 

f0 -> <A2R_MAPPING> f1 -> <IDENTIFIER> f2 -> <IDENTIFIER> f3 -> "->" f4 -> <IDENTIFIER> f5 -> "{" f6 -> ( SC2SC_Link() | P2P_Link() | Con2Con_Link() )* f7 -> "}"

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( F2RLink  n  ) 

f0 -> <FEATURE> f1 -> IDPath() f2 -> "->" f3 -> GlobalInstanceInF2RLink() f4 -> ( "," GlobalInstanceInF2RLink() )* f5 -> ";"

Reimplemented from de.fraunhofer.isst.axbench.axlang.visitor.DepthFirstVisitor.

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( F2RMapping  n  ) 

f0 -> <F2R_MAPPING> f1 -> <IDENTIFIER> f2 -> <IDENTIFIER> f3 -> "->" f4 -> <IDENTIFIER> f5 -> "{" f6 -> ( FeatureToResourceLink() )* f7 -> "}"

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( F2ALink  n  ) 

f0 -> <FEATURE> f1 -> IDPath() f2 -> "->" f3 -> GlobalApplicationModelInstance() f4 -> ( "," GlobalApplicationModelInstance() )* f5 -> ";"

Reimplemented from de.fraunhofer.isst.axbench.axlang.visitor.DepthFirstVisitor.

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( F2AMapping  n  ) 

f0 -> <F2A_MAPPING> f1 -> <IDENTIFIER> f2 -> <IDENTIFIER> f3 -> "->" f4 -> <IDENTIFIER> f5 -> "{" f6 -> ( FeatureToApplicationLink() )* f7 -> "}"

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( Operation  n  ) 

f0 -> [ <OPTIONAL> ] f1 -> <DATA_TYPE> f2 -> <IDENTIFIER> f3 -> "(" f4 -> [ <DATA_TYPE> <IDENTIFIER> ( "," <DATA_TYPE> <IDENTIFIER> )* ] f5 -> ")" f6 -> [ <BINDINGTIME> ] f7 -> ";"

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( Signal  n  ) 

f0 -> [ <OPTIONAL> ] f1 -> <DATA_TYPE> f2 -> <IDENTIFIER> f3 -> ( "," <IDENTIFIER> )* f4 -> [ <BINDINGTIME> ] f5 -> ";"

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( ReturnStatement  n  ) 

f0 -> <RETURN> f1 -> "(" f2 -> <IDENTIFIER> f3 -> "." f4 -> <IDENTIFIER> f5 -> "," f6 -> Expression() f7 -> ")" f8 -> ";"

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( OperationCallStatement  n  ) 

f0 -> <CALL> f1 -> "(" f2 -> <IDENTIFIER> f3 -> "." f4 -> OperationExpression() f5 -> ")"

Reimplemented from de.fraunhofer.isst.axbench.axlang.visitor.DepthFirstVisitor.

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( WritePort  n  ) 

f0 -> <WRITE> f1 -> "(" f2 -> <IDENTIFIER> f3 -> "." f4 -> <IDENTIFIER> f5 -> "," f6 -> Expression() f7 -> ")" f8 -> ";"

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( DoStatement  n  ) 

f0 -> <DO> f1 -> Block() f2 -> <WHILE> f3 -> "(" f4 -> Expression() f5 -> ")" f6 -> ";"

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( WhileStatement  n  ) 

f0 -> <WHILE> f1 -> "(" f2 -> Expression() f3 -> "(" f4 -> Block()

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( ForStatement  n  ) 

f0 -> <FOR> f1 -> "(" f2 -> AtomicVariable() f3 -> Expression() f4 -> ";" f5 -> Expression() f6 -> ")" f7 -> BLOCK()

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( IfStatement  n  ) 

f0 -> <IF> f1 -> "(" f2 -> Expression() f3 -> "(" f4 -> Block() f5 -> [ <ELSE> Block() ]

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( OperationCallExpression  n  ) 

f0 -> <IDENTIFIER> f1 -> "(" f2 -> [ AtomicExpression() ( "," AtomicExpression() )* ] f3 -> ")"

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( DataElementLinks  n  ) 

f0 -> <AST> | ( DataElementLink() )*

Reimplemented from de.fraunhofer.isst.axbench.axlang.visitor.DepthFirstVisitor.

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( BooleanBinaryOperator  n  ) 

f0 -> <ANDOPERATOR> | <OROPERATOR>

Reimplemented from de.fraunhofer.isst.axbench.axlang.visitor.DepthFirstVisitor.

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( ArithmeticBinaryOperator  n  ) 

f0 -> <PLUS> | <MINUS> | <AST> |

| <MOD>

Reimplemented from de.fraunhofer.isst.axbench.axlang.visitor.DepthFirstVisitor.

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( AtomicOrPostfixOrInfixExpression  n  ) 

f0 -> AtomicExpression() f1 -> [ <INCREMENT> | <DECREMENT> | BinaryOperator() Expression() ]

Reimplemented from de.fraunhofer.isst.axbench.axlang.visitor.DepthFirstVisitor.

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( PrefixExpression  n  ) 

f0 -> ( <NOT> | <INCREMENT> | <DECREMENT> ) f1 -> AtomicExpression()

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( BracketsExpression  n  ) 

f0 ->"(" f1 -> Expression() f2 -> ")"

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( ReadPort  n  ) 

f0 -> <READ> f1 -> "(" f2 -> <IDENTIFIER> f3 -> "." f4 -> <IDENTIFIER> f5 -> [ "," <IDENTIFIER> ] f6 -> ")"

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( VariableExpression  n  ) 

f0 -> <IDENTIFIER>

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( ConstantExpression  n  ) 

f0 -> <NUMBER> | <TRUE> | <FALSE> | <NULL>

Reimplemented from de.fraunhofer.isst.axbench.axlang.visitor.DepthFirstVisitor.

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( Assignment  n  ) 

f0 -> <IDENTIFIER> f1 -> "=" f2 -> ( Expression() | OperationCall() ) f3 -> ";"

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( Block  n  ) 

f0 -> "{" f1 -> ( Statement() )* f2 -> "}"

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( XORFunction  n  ) 

f0 -> <XOR> f1 -> <FUNCTION> f2 -> <IDENTIFIER> f3 -> [ <BINDINGTIME> ] f4 -> "{" f5 -> ( AtomicFunction() )+ f6 -> "}"

Reimplemented from de.fraunhofer.isst.axbench.axlang.visitor.DepthFirstVisitor.

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( Execute  n  ) 

f0 -> <EXECUTE> f1 -> Block()

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( LocalFunctionInstance  n  ) 

f0 -> <IDENTIFIER> f1 -> "." f2 -> <IDENTIFIER>

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( FunctionLink  n  ) 

f0 -> <IDENTIFIER> f1 -> "->" f2 -> LocalFunctionInstance() f3 -> ( "," LocalFunctionInstance() )* f4 -> ";"

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( Postcondition  n  ) 

f0 -> <POSTCONDITION> f1 -> "{" f2 -> "}"

Reimplemented from de.fraunhofer.isst.axbench.axlang.visitor.DepthFirstVisitor.

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( Interaction  n  ) 

f0 -> <INTERACTION> f1 -> "{" f2 -> "}"

Reimplemented from de.fraunhofer.isst.axbench.axlang.visitor.DepthFirstVisitor.

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( Precondition  n  ) 

f0 -> <PRECONDITION> f1 -> "{" f2 -> "}"

Reimplemented from de.fraunhofer.isst.axbench.axlang.visitor.DepthFirstVisitor.

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( Purpose  n  ) 

f0 -> <COMPUTATION> f1 -> "{" f2 -> "}"

Reimplemented from de.fraunhofer.isst.axbench.axlang.visitor.DepthFirstVisitor.

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( Behavior  n  ) 

f0 -> <BEHAVIOR> f1 -> "{" f2 -> [ Precondition() ] f3 -> [ Interaction() ] f4 -> [ Computation() ] f5 -> [ Postcondition() ] f6 -> "}"

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( WriteAccess  n  ) 

f0 -> <IDENTIFIER> "." <IDENTIFIER> | <IDENTIFIER>

Reimplemented from de.fraunhofer.isst.axbench.axlang.visitor.DepthFirstVisitor.

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( ReadAccess  n  ) 

f0 -> <IDENTIFIER> "." <IDENTIFIER> | <IDENTIFIER>

Reimplemented from de.fraunhofer.isst.axbench.axlang.visitor.DepthFirstVisitor.

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( Triggers  n  ) 

f0 -> ( <TRIGGER> <IDENTIFIER> "." <IDENTIFIER> ( "," <IDENTIFIER> "." <IDENTIFIER> )* ";" )+

Reimplemented from de.fraunhofer.isst.axbench.axlang.visitor.DepthFirstVisitor.

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( AtomicFunction  n  ) 

f0 -> <FUNCTION> f1 -> <IDENTIFIER> f2 -> [ Attributes() ] f3 -> "{" f4 -> [ Triggers() ] f5 -> [ Reads() ] f6 -> [ Writes() ] f7 -> [ Behavior() ] f8 -> [ Execute() ] f9 -> "}"

Reimplemented from de.fraunhofer.isst.axbench.axlang.visitor.DepthFirstVisitor.

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( LocalStorageInstance  n  ) 

f0 -> <IDENTIFIER> f1 -> "." f2 -> <IDENTIFIER>

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( StorageLink  n  ) 

f0 -> <IDENTIFIER> f1 -> "->" f2 -> LocalStorageInstance() f3 -> ( "," LocalStorageInstance() )* f4 -> ";"

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( Storage  n  ) 

f0 -> [ <OPTIONAL> ] f1 -> <DATA_TYPE> f2 -> <IDENTIFIER> f3 -> [ "=" ( <NUMBER> | <TRUE> | <FALSE> | "\"" ( <IDENTIFIER> | <NUMBER> | <TRUE> | <FALSE> ) """ ) ] f4 -> ";"

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( DataElementLink  n  ) 

f0 -> <IDENTIFIER> f1 -> "- >" f2 -> <IDENTIFIER> f3 -> ";"

Reimplemented from de.fraunhofer.isst.axbench.axlang.visitor.DepthFirstVisitor.

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( FeatureModel  n  ) 

f0 -> <FEATUREMODEL> f1 -> <IDENTIFIER> f2 -> "{" f3 -> [ Features() ] f4 -> "}"

Reimplemented from de.fraunhofer.isst.axbench.axlang.visitor.DepthFirstVisitor.

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( Connection  n  ) 

f0 -> [ "\'" <IDENTIFIER> "\'" ] f1 -> ( <IDENTIFIER> | <THIS> ) f2 -> "." f3 -> <IDENTIFIER> f4 -> "->" f5 -> ( <IDENTIFIER> | <THIS> ) f6 -> "." f7 -> <IDENTIFIER> f8 -> "{" f9 -> DataElementLinks() f10 -> "}"

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( XORSubcomponent  n  ) 

f0 -> [ <OPTIONAL> ] f1 -> <XOR> f2 -> <IDENTIFIER> f3 -> [ <BINDINGTIME> ] f4 -> [ Attributes() ] f5 -> "{" f6 -> ( AtomicSubcomponent() )+ f7 -> "}"

Reimplemented from de.fraunhofer.isst.axbench.axlang.visitor.DepthFirstVisitor.

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( AtomicSubcomponent  n  ) 

f0 -> [ <OPTIONAL> ] f1 -> <IDENTIFIER> f2 -> <IDENTIFIER> f3 -> ( "," <IDENTIFIER> )* f4 -> [ <BINDINGTIME> ] f5 -> [ Attributes() ] f6 -> ";"

Reimplemented from de.fraunhofer.isst.axbench.axlang.visitor.DepthFirstVisitor.

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( PortSignature  n  ) 

f0 -> "<" f1 -> <IDENTIFIER> f2 -> ( "," <IDENTIFIER> )* f3 -> ">"

Reimplemented from de.fraunhofer.isst.axbench.axlang.visitor.DepthFirstVisitor.

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( Port  n  ) 

f0 -> [ <OPTIONAL> ] f1 -> <DIRECTION> f2 -> [ PortSignature() ] f3 -> <IDENTIFIER> f4 -> [ <BINDINGTIME> ] f5 -> ";"

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( Component  n  ) 

f0 -> [ <TOP> ] f1 -> <COMPONENT> f2 -> <IDENTIFIER> f3 -> [ Attributes() ] f4 -> "{" f5 -> [ DataElements() ] f6 -> [ Ports() ] f7 -> [ Storages() ] f8 -> [ Functions() ] f9 -> [ Subcomponents() ] f10 -> [ Connections() ] f11 -> [ Decompositions() ] f12 -> [ Cardinalities() ] f13 -> "}"

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( ApplicationModel  n  ) 

f0 -> <APPLICATIONMODEL> f1 -> <IDENTIFIER> f2 -> "{" f3 -> ( Components() | IncludeFile() )* f4 -> "}"

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( DeSelectConfiguration  n  ) 

f0 -> <NO> f1 -> "{" f2 -> ( IDPath() ";" )+ f3 -> "}"

Reimplemented from de.fraunhofer.isst.axbench.axlang.visitor.DepthFirstVisitor.

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( SelectConfiguration  n  ) 

f0 -> <YES> f1 -> "{" f2 -> ( IDPath() ";" )+ f3 -> "}"

Reimplemented from de.fraunhofer.isst.axbench.axlang.visitor.DepthFirstVisitor.

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( Configuration  n  ) 

f0 -> <CONFIGURATION> f1 -> <IDENTIFIER> f2 -> <IDENTIFIER> f3 -> "{" f4 -> [ SelectConfiguration() ] f5 -> [ DeSelectConfiguration() ] f6 -> "}"

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( AtomicFeature  n  ) 

f0 -> [ <OPTIONAL> ] f1 -> <IDENTIFIER> f2 -> ";"

Reimplemented from de.fraunhofer.isst.axbench.axlang.visitor.DepthFirstVisitor.

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( Cardinality  n  ) 

f0 -> "[" f1 -> <NUMBER> f2 -> ".." f3 -> ( <NUMBER> | <AST> ) f4 -> "]"

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( FeatureGroup  n  ) 

f0 -> [ <OPTIONAL> ] f1 -> [ <XOR> | <OR> Cardinality() ] f2 -> <IDENTIFIER> f3 -> "{" f4 -> ( AtomicFeature() | FeatureGroup() )+ f5 -> "}"

Reimplemented from de.fraunhofer.isst.axbench.axlang.visitor.DepthFirstVisitor.

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( AspectCompositionLinkApplication  n  ) 

f0 -> <APPLICATIONMODEL> f1 -> <IDENTIFIER> f2 -> ";"

Reimplemented from de.fraunhofer.isst.axbench.axlang.visitor.DepthFirstVisitor.

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( Model  n  ) 

f0 -> <MODEL> f1 -> <IDENTIFIER> f2 -> [ Attributes() ] f3 -> "{" f4 -> ( FeatureModel() | Configuration() | ApplicationModel() | ResourceModel() | F2AMapping() | F2RMapping() | A2RMapping() | AspectMapping() | TransactionModel() | IncludeFile() )* f5 -> "}"

Reimplemented from de.fraunhofer.isst.axbench.axlang.visitor.DepthFirstVisitor.

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( Attribute  n  ) 

f0 -> <IDENTIFIER> f1 -> "=" f2 -> ( <NUMBER> | <IDENTIFIER> ) f3 -> ";"

Reimplemented from de.fraunhofer.isst.axbench.axlang.visitor.DepthFirstVisitor.

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( IncludeFile  n  ) 

f0 -> f1 -> <FILENAMEDELIMITER> f2 -> <FILENAME> f3 -> <FILENAMEDELIMITER> f4 -> <FILENAMEEND>

This is a bit tricky because of separating input stream opening from reading. Therefore all information about the file and the corresponding error has to be stored in order to be passed back again.

Reimplemented from de.fraunhofer.isst.axbench.axlang.visitor.DepthFirstVisitor.

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( FeaturePath  n  ) 

f0 -> <IDENTIFIER> f1 -> ( "." <IDENTIFIER> )*

Reimplemented from de.fraunhofer.isst.axbench.axlang.visitor.DepthFirstVisitor.

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( AspectCompositionLinkAspectMapping  n  ) 

f0 -> <ASPECT_MAPPING> f1 -> <IDENTIFIER> f2 -> ";"

Reimplemented from de.fraunhofer.isst.axbench.axlang.visitor.DepthFirstVisitor.

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( AspectComposition  n  ) 

f0 -> <ASPECT_COMPOSITION> f1 -> <IDENTIFIER> f2 -> "{" f3 -> ( AspectCompositionLinkApplication() | AspectCompositionLinkAspectMapping() )* f4 -> "}"

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( GlobalInstancePath  n  ) 

f0 -> <IDENTIFIER> f1 -> ( "." <IDENTIFIER> )*

Reimplemented from de.fraunhofer.isst.axbench.axlang.visitor.DepthFirstVisitor.

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( GlobalSignalAtPortInstance  n  ) 

f0 -> <SIGNAL> f1 -> GlobalInstancePath()

Reimplemented from de.fraunhofer.isst.axbench.axlang.visitor.DepthFirstVisitor.

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( ComparisonOperator  n  ) 

f0 -> <EQUAL> | <NOTEQUAL> | <LESS> | <LESSOREQUAL> | <GREATER> | <GREATEROREQUAL>

Reimplemented from de.fraunhofer.isst.axbench.axlang.visitor.DepthFirstVisitor.

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( GlobalSubComponentInstance  n  ) 

f0 -> <SUBCOMPONENT> f1 -> GlobalInstancePath()

Reimplemented from de.fraunhofer.isst.axbench.axlang.visitor.DepthFirstVisitor.

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( GlobalFunctionAlternativeInstance  n  ) 

f0 -> <FUNCTION> f1 -> GlobalInstancePath()

Reimplemented from de.fraunhofer.isst.axbench.axlang.visitor.DepthFirstVisitor.

void de.fraunhofer.isst.axbench.operations.AXLVisitor.visit ( GlobalSignalInstance  n  ) 

f0 -> <SIGNAL> f1 -> GlobalInstancePath()

Reimplemented from de.fraunhofer.isst.axbench.axlang.visitor.DepthFirstVisitor.


Member Data Documentation

aXLang model

last path that was read by visit(IDPath)

the first node token of the last visited id-path

the last node token of the last visited id-path

context for global instances

last path read by visit(GlobalInstancePath)

node token for the source subcomponent of a connection, needed to define the source references of the data element links of the connection

node token for the source subcomponent of a connection, needed to define the source references of the data element links of the connection

id of the application model in an A2RMapping, needed for the context of the source instances of its links

erkärung : processed ifstatement element

id of the resource model in an A2RMapping, needed for the context of the target instances of its links

aXLang reader (storing messages, errors, ...)

current convert file

is needed to define the child role of a global instance

processed parent element