public override void VisitRequired <TOutput>(RequiredParser <TInput, TOutput> parser) { if (this.showRequired) { WriteRequired(parser.Parser); } else { this.Visit(parser.Parser); } }
public override int VisitRequired <TOutput>(RequiredParser <TInput, TOutput> parser, int start) { var len = Search(parser.Parser, start); if (len < 0) { _prevWasMissing = true; return(0); } return(len); }
private static IParser <ServiceFieldInfo> FieldParser(Context context) => from comments1 in CommentOrWhiteSpaceParser.Many() from attributes in AttributeParser(context).Delimited(",").Bracketed("[", "]").Many() from comments2 in CommentOrWhiteSpaceParser.Many() from name in NameParser.Named("field name") from colon in PunctuationParser(":") from typeName in TypeParser.Named("field type name") from required in RequiredParser.AtMostOnce() from semicolon in PunctuationParser(";") select new ServiceFieldInfo(name.Value, typeName.Value, attributes.SelectMany(x => x).Concat(required), BuildSummary(comments1, comments2), context.GetPart(ServicePartKind.Name, name), context.GetPart(ServicePartKind.TypeName, typeName));
public override Parser <TInput> VisitRequired <TOutput>(RequiredParser <TInput, TOutput> parser) { if (state.State == 0) { state.State = 1; return(parser.Parser); } else if (state.LastResult < 0) { state.InputLength = 0; return(null); } else { state.InputLength = state.LastResult; return(null); } }
public override Parser <TInput> VisitRequired <TOutput>(RequiredParser <TInput, TOutput> parser) { if (state.State == 0) { state.State = 1; state.NextOutputStart = output.Count; return(parser.Parser); } else if (state.LastResult < 0) { output.SetCount(state.OriginalOutputCount); output.Add(parser.Producer()); state.InputLength = 0; return(null); } else { state.InputLength = state.LastResult; return(null); } }