public override Var Parse(Scope scope) { Var ret = null; while (_condition.Parse(scope)?.AsBool() ?? false) { ret = _action.Parse(scope); if (scope.Escape.Count <= 0) { continue; } Escaper esc = scope.Escape.Peek(); if (esc.Method == Escape.Break) { scope.Escape.Pop(); } return(esc.Value); } return(ret); }
override public Var Parse(Scope scope) { initial?.Parse(scope); Var ret = null; while (condition == null || (condition.Parse(scope)?.AsBool() ?? false)) { ret = body?.Parse(scope); if (scope.Escape.Count > 0) { Escaper esc = scope.Escape.Peek(); if (esc.Method == Escape.Break) { scope.Escape.Pop(); } return(esc.Value); } after?.Parse(scope); } return(ret); }
public override Var Parse(Scope scope) { Var should = _condition.Parse(scope); return(should?.AsBool() ?? false?_action.Parse(scope) : _otherwise?.Parse(scope)); }
public override Var Parse(Scope scope) { return(_op.Parse(_leftArg.Parse(scope), _rightArg.Parse(scope))); }