Xtext验证程序-检查所有X元素以进行元素Y验证

问题描述 投票:0回答:1

我在这里试图找出是否有人在我的语法中知道我该如何做一个验证器,该验证器检查我的步骤是否仅使用我在'成分+ =成分+'中预先声明的成分。我已经尝试了很多事情,但是没有成功,我不知道如何获取在我的验证函数中声明的所有成分。

全力以赴。

这是我语法的相关部分。

Model:
    recipe+=Recipe*;

...

Ingredient:
    'ingredient' (
        (liquid_name=LIQUID_INGREDIENTS_NAME liquid_measure=LIQUID_TYPES_MEASURE)
        |
        (solid_Name=SOLID_INGREDIENTS_NAME solid_measure=SOLID_TYPES_MEASURE)
        )
        quantity=INT;

Step:
    '['
        action=ACTION_TYPES
        ('ingredient' ((ingredient_StepLiquid=LIQUID_INGREDIENTS_NAME)|(ingredient_StepSolid=SOLID_INGREDIENTS_NAME)) | 'place' place=TM_PLACES | 'utensil' utensil=TM_UTENSILS)
        ('time' minutes=INT ':' seconds=INT ',')?
        ('speed' velocidade=SPEED_TYPES ',')?
        ('temperature' temp=TM_TEMPS 'ºC')?
    ']';

Recipe:
    'recipe' recipeName=STRING '{'
        ingredients+=Ingredient+
        steps+=Step+
    '}';
dsl xtext
1个回答
0
投票

就像@Christian Deitrich所说的

我既可以使用eContainer,也可以从我的步骤中通过强制转换或在交叉引用的帮助下通过语法来获得我的食谱。

© www.soinside.com 2019 - 2024. All rights reserved.