private static Value _md5(FlowController flow, Value[] arguments) { stringConverter.SetContext(flow); var stringValue = stringConverter.EvaluateToString(arguments[0]); if (stringValue == null) { return(flow.OutSet.AnyStringValue); } var phpBytes = new PhpBytes(stringValue.Value); Debug.Assert(arguments.Length > 0); if (arguments.Length > 1) { booleanConverter.SetContext(flow.OutSet.Snapshot); var isRawOutput = booleanConverter.EvaluateToBoolean(arguments[1]); if ((isRawOutput == null) || isRawOutput.Value) { // TODO: Implement precisely return(flow.OutSet.AnyStringValue); } } return(flow.OutSet.CreateString(PhpHash.MD5(phpBytes))); }
bool ToBoolean(SnapshotBase snapshot, Value value, bool defaultValue) { var converter = new BooleanConverter(snapshot); var result = converter.EvaluateToBoolean(value); if (result != null) { return(result.Value); } else { return(defaultValue); } }
/// <summary> /// Gets the condition result. /// </summary> /// <returns>see <see cref="PossibleValues"/> for details of possible result.</returns> PossibleValues GetConditionResult(FlowOutputSet flowOutputSet, MemoryEntry evaluatedPart) { var converter = new BooleanConverter(flowOutputSet.Snapshot); var value = converter.EvaluateToBoolean(evaluatedPart); if (value == null) { return(PossibleValues.Unknown); } else if (value.Value) { return(PossibleValues.OnlyTrue); } else { return(PossibleValues.OnlyFalse); } }
/// <summary> /// Gets the condition result. /// </summary> /// <returns>see <see cref="PossibleValues"/> for details of possible result.</returns> private PossibleValues GetConditionResult(ConditionForm conditionForm, FlowOutputSet flowOutputSet, MemoryEntry evaluatedPart) { var converter = new BooleanConverter(flowOutputSet.Snapshot); var value = converter.EvaluateToBoolean(evaluatedPart); if (value == null) { return(PossibleValues.Unknown); } var flipResult = (conditionForm == ConditionForm.None) ? true : false; if (value.Value ^ flipResult) { return(PossibleValues.OnlyTrue); } else { return(PossibleValues.OnlyFalse); } }