internal static ParseStep Fail(RegexNode node, State initialState, State currentState, string additionalMessage = null) { return(new ParseStep { Type = ParseStepType.Fail, Node = node, InitialState = initialState, CurrentState = currentState }.WithMessage(step => (additionalMessage != null ? additionalMessage + ": " : "") + node.GetFailMessage(step.InitialState))); }