Add @if for blocks too

This commit is contained in:
Olivier 'reivilibre' 2021-06-23 19:38:22 +01:00
parent 4eede74f7f
commit 6a8704d2d7

View File

@ -152,7 +152,7 @@ class MenuBlock:
user_directive: Optional[str] = None
sous_directive: Optional[str] = None
control_directives: List[ForDirective] = attr.ib(factory=list)
control_directives: List[ControlDirective] = attr.ib(factory=list)
import_directives: List[str] = attr.ib(factory=list)
recipe_edges: List[RecipeEdgeDirective] = attr.ib(factory=list)
resource_edges: List[ResourceEdgeDirective] = attr.ib(factory=list)
@ -306,6 +306,13 @@ def convert_textx_block(txblock, parent: Optional[MenuBlock]) -> MenuBlock:
var = directive.variable
assert isinstance(var, str)
block.control_directives.append(IfSetDirective(var))
elif isinstance(directive, scoml_classes["IfCondDirective"]):
var = directive.variable
op = directive.operator
other_value = convert_textx_value(directive.other_value)
assert isinstance(var, str)
assert isinstance(op, str)
block.control_directives.append(IfCondDirective(var, op, other_value))
elif isinstance(directive, scoml_classes["ImportDirective"]):
block.import_directives.append(directive.importee)
elif isinstance(directive, scoml_classes["ResourceEdgeDirective"]):