wiki:CoqFlowVR
  • La grammaire

<!ELEMENT flowvr (applicationTree,application)> # Il faut un élément racine

<!ELEMENT applicationTree (includeDirectory,sourceDirectory,binaryDirectory,applicationDirectory)> # On peut remplacer installFlowvrRepertoire par la variable d'environnement FLOWVR_PREFIX

<!ELEMENT includeDirectory (#PCDATA)>

<!ELEMENT sourceDirectory (#PCDATA)>

<!ELEMENT binaryDirectory (#PCDATA)>

<!ELEMENT applicationDirectory (#PCDATA)>

<!ELEMENT application (metaModuleList,connectionList,comsyncList,filterList)>

<!ATTLIST application

name CDATA #REQUIRED>

<!ELEMENT metaModuleList (metModule+)>

<!ELEMENT metaModule (description?,className,option*,(absoluteModuleHeaderFileName,absoluteMetaModuleHeaderFileName,absoluteBinaryFileName,absoluteLibraryFileName)?),module>

<!ATTLIST metaModule

id CDATA #REQUIRED

commandLine CDATA #REQUIRED>

<!ELEMENT option (#PCDATA)>

<!ELEMENT option EMPTY>

<!ATTLIST option

name (OpenMPIRun|....) #REQUIRED openGl (true|false)>

<!ELEMENT absoluteModuleHeaderFileName (#PCDATA)>

<!ELEMENT absoluteMetaModuleHeaderFileName (#PCDATA)>

<!ELEMENT absoluteBinaryFileName (#PCDATA)> #Normalement c'est inutile car le chemin vers l'exécutable doit se trouver dans le PATH

<!ELEMENT absoluteLibraryFileName (#PCDATA)>

<!ELEMENT module (description?,nomClasse,listePort)

<!ELEMENT description (#PCDATA)>

<!ELEMENT className (#PCDATA)>

<!ELEMENT portList (port+)>

<!ELEMENT port EMPTY>

<!ATTLIST port

id CDATA #REQUIRED

type (INPUT|OUTPUT) #REQUIRED

messageType (FULL|AUTO|SAMEAS)

samePortAs CDATA>#depend de SAMEAS

<!ELEMENT connectionList (connection*)>

<!ELEMENT connection (scatterType?,metaModuleIn+,metaModuleOut+)>

<!ATTLIST connection

connectionType (fifo|Com1ToN|ComNTo1) #REQUIRED

messageType(stamps|normal) #REQUIRED

<!ELEMENT scatterType (#PCDATA)>

<!metaModuleIn EMPTY>

<!ATTLIST metaModuleIn

id CDATA #REQUIRED

port CDATA #REQUIRED>

<!metaModuleOut EMPTY>

<!ATTLIST metaModuleOut

id CDATA #REQUIRED

port CDATA #REQUIRED>

<!ELEMENT comSyncList (comSync*)>

<!ELEMENT comSync (comIn,comStamps,comOut,comEndIt,filter,synchronizer,

metaModuleIn,metaModuleOut,metaModuleSync)>

<!ATTLIST comSync

id (#PCDATA)>

<!ELEMENT comIn (#PCDATA)>

<!ELEMENT comStamps (#PCDATA)>

<!ELEMENT comOut (#PCDATA)>

<!ELEMENT comEndIt (#PCDATA)>

<!ELEMENT filter (#PCDATA)>

<!ELEMENT synchronizer (#PCDATA)>

<!ELEMENT synchronizerList (synchronizer*)>

<!ELEMENT metaModuleSync EMPTY>

<!ATTLIST metaModuleSync

id CDATA #REQUIRED

port CDATA #IMPLIED>

<!ELEMENT filterList (filter*)>

<!ELEMENT filter (type,portList,parameterList?)>

<!ATTLIST filter

id (#PCDATA) #REQUIRED>

<!ELEMENT type (#PCDATA)>

#parametre servent à générer des lignes de code
#dans les metamodule.comp.h uniquement
<!ELEMENT parameter (type+,position?,name,value?,typeValue?)>

<!ELEMENT type (ADD|SSH|SSHEXISTING|SET|TOKENINTERFACE)> #xml == fonction
#ADD == addParameter()
#SET == setParameter()
#SSH == ssh->addArg()avec declaration préalable de ssh
#SSHEXISTING == ssh->addArg(getParameteter())
#TOKENINTERFACE == ssh->addArg(TokenParameter?(*this,))

<!ELEMENT position (#PCDATA)> #necessaire pour connaitre l'ordre d'appel des fonction addArg()

<!ELEMENT name (#PCDATA)>

<!ELEMENT value (#PCDATA)>

<!ELEMENT typeValue (#PCDATA)> #int, const char*, std::string etc...

  • Les composants connection
  • Les paramètres
Last modified 8 years ago Last modified on Jul 30, 2009, 8:58:39 AM