2017-01-20 1 views
1

Je souhaite que l'assistant de contenu suggère le nom des variables déjà déclarées dans le script. c'est la grammaire:Xtext Configuration d'aide au contenu

Script: 
    includes+=(Include)* assignments+=(Assignment)* g=GetLog? clock=Clock? tests+=Test* 
; 

Include: 
    'INCLUDE' includedScript=[Script|STRING] 
; 

Test: 
    'RUN' "(" name=STRING "," com=STRING "," association=STRING ")" '{' instructions+=Instruction* '}' 
; 

Instruction: 
    Set | 
    Get | 
    Verify | 
    Execute | 
    Wait | 
    Print | 
    Time | 
    SetTime | 
    PowerDown | 
    PowerUp | 
    GetIp | 
    GetLog 




Set: 
    'SET' '(' attribute=AttributeRef ',' value=(AttributeValue) ')' 
; 

Get : 

    'GET' '(' attribute=AttributeRef ')' 
; 
AttributeRef: 
    cosem=IDValue "." attributeRef =IDValue 

; 

la cosem dans AttributeRef partie est Wich doit déjà être déclarée avant.

par exemple, dans ce script lorsque le contenu taping aide tarification montre TarifficationScriptTable

TarifficationScriptTable = COSEM(9,0,"0.0.10.0.100.255") 



RUN("CheckConnectivity", "HDLC", "LOCAL_MANAGEMENT") { 

GET(Tariffi 
+0

À quoi ressemble votre attribut ref? Si vous faites un bon usage des références croisées et de la mise en œuvre de la portée en conséquence (en fonction de votre cas d'utilisation) cela fonctionnera hors de la boîte –

+0

Je l'ai ajouté au code –

+0

Pourquoi ne pas utiliser des références croisées? –

Répondre

2

c'est ce que les références croisées sont faites pour. vous les utilisez pour des scripts déjà. ils ressemblent à

nameOfTheReference=[TypeYouWantToReference] 

qui est en fait un court pour pour

nameOfTheReference=[TypeYouWantToReference|ID] 

qui signifie « référence à TypeYouWantToReferenceand parse un ID »

si vous avez une autre règle qui devrait être analysée vous pouvez utiliser

nameOfTheReference=[TypeYouWantToReference|OtherRULE]