Skip to content

Commit

Permalink
replace hscript: remove ConditionEvaluator
Browse files Browse the repository at this point in the history
  • Loading branch information
ianharrigan committed Aug 4, 2021
1 parent 22a6a81 commit ca3b9f8
Show file tree
Hide file tree
Showing 4 changed files with 14 additions and 31 deletions.
4 changes: 2 additions & 2 deletions haxe/ui/Toolkit.hx
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,11 @@ import haxe.ui.parsers.ui.ComponentParser;
import haxe.ui.parsers.ui.LayoutInfo;
import haxe.ui.parsers.ui.resolvers.AssetResourceResolver;
import haxe.ui.parsers.ui.resolvers.ResourceResolver;
import haxe.ui.scripting.ConditionEvaluator;
import haxe.ui.styles.CompositeStyleSheet;
import haxe.ui.themes.ThemeManager;
import haxe.ui.util.GenericConfig;
import haxe.ui.util.Properties;
import haxe.ui.util.SimpleExpressionEvaluator;
import haxe.ui.util.TypeConverter;
import haxe.ui.util.Variant;

Expand Down Expand Up @@ -205,7 +205,7 @@ class Toolkit {
}

private static function buildComponentFromInfo(c:ComponentInfo, callback:Component->Void):Component {
if (c.condition != null && new ConditionEvaluator().evaluate(c.condition) == false) {
if (c.condition != null && SimpleExpressionEvaluator.evalCondition(c.condition) == false) {
return null;
}

Expand Down
7 changes: 5 additions & 2 deletions haxe/ui/macros/ComponentMacros.hx
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ import haxe.ui.parsers.ui.ComponentInfo;
import haxe.ui.parsers.ui.ComponentParser;
import haxe.ui.parsers.ui.LayoutInfo;
import haxe.ui.parsers.ui.resolvers.FileResourceResolver;
import haxe.ui.scripting.ConditionEvaluator;
import haxe.ui.util.ExpressionUtil;
import haxe.ui.util.SimpleExpressionEvaluator;
import haxe.ui.util.StringUtil;
import haxe.ui.util.TypeConverter;

Expand Down Expand Up @@ -180,6 +180,9 @@ class ComponentMacros {
for (child in c.children) {
var componentId = "c" + n;
var r = buildComponentFromInfo(builder, child, buildData, function(componentInfo:ComponentInfo, codeBuilder:CodeBuilder) {
if (componentInfo.condition != null && SimpleExpressionEvaluator.evalCondition(componentInfo.condition) == false) {
return;
}
codeBuilder.add(macro $i{rootVarName}.addComponent($i{componentId}));
for (scriptString in componentInfo.scriptlets) {
fullScript += scriptString;
Expand Down Expand Up @@ -498,7 +501,7 @@ class ComponentMacros {

// returns next free id
private static function buildComponentNode(builder:CodeBuilder, c:ComponentInfo, id:Int, parentId:Int, buildData:BuildData, recurseChildren:Bool = true) {
if (c.condition != null && new ConditionEvaluator().evaluate(c.condition) == false) {
if (c.condition != null && SimpleExpressionEvaluator.evalCondition(c.condition) == false) {
return id;
}

Expand Down
27 changes: 0 additions & 27 deletions haxe/ui/scripting/ConditionEvaluator.hx

This file was deleted.

7 changes: 7 additions & 0 deletions haxe/ui/util/SimpleExpressionEvaluator.hx
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,13 @@ enum SimpleExpressionEvaluatorOperation {
}

class SimpleExpressionEvaluator {
public static function evalCondition(condition:String):Bool {
return eval(condition, {
Backend: Backend,
backend: Backend.id
});
}

public static function eval(s:String, context:Dynamic = null):Dynamic {
var result:Dynamic = null;

Expand Down

0 comments on commit ca3b9f8

Please sign in to comment.