public void VerifyWithOptionStatement(string enumName, OptionIdentifierPath[] optionNames // ReSharper disable once IdentifierTypo , IVariant[] optionConsts) { IEnumerable <IEnumBodyItem> GetEnumBodyItems() { var inputs = optionNames.ToArray <object>() // optionName .Combine( optionConsts.ToArray <object>() // optionConst ); inputs.SilentOverflow = true; for (var i = 0; i < inputs.Count; i++, ++inputs) { var current = inputs.CurrentCombination.ToArray(); var optionName = (OptionIdentifierPath)current[0]; var optionConst = (IVariant)current[1]; yield return(new OptionStatement { Name = optionName, Value = optionConst }); } } ExpectedTopLevel = new EnumStatement { Name = enumName, Items = GetEnumBodyItems().ToList() }; }
/// <summary> /// Visits the <paramref name="statement"/>. /// </summary> /// <param name="statement"></param> protected virtual void VisitEnumStatement(EnumStatement statement) { VisitIdentifier(statement.Name); foreach (var item in statement.Items) { switch (item) { case EmptyStatement statementItem: VisitEmptyStatement(statementItem); break; case OptionStatement statementItem: VisitOptionDescriptor(statementItem); break; case EnumFieldDescriptor descriptorItem: VisitEnumFieldDescriptor(descriptorItem); break; case null: throw ReportUnexpectedAlternative <IEnumBodyItem>(); default: throw ReportUnexpectedAlternative(item); } } }
public void VerifyEnumStatementWithEmptyStatementAndWhiteSpace(string enumName, WhiteSpaceAndCommentOption option) { ExpectedTopLevel = new EnumStatement { Name = enumName, Items = { NewEmptyStatement } }; RenderingOptions = new StringRenderingOptions { WhiteSpaceAndCommentRendering = option }; }
public void VerifyEnumFields(string enumName, string[] fieldNames) { IEnumerable <IEnumBodyItem> GetEnumFields() => fieldNames.Select <string, IEnumBodyItem>( x => new EnumFieldDescriptor { Name = x } ); ExpectedTopLevel = new EnumStatement { Name = enumName, Items = GetEnumFields().ToList() }; }
public void VerifyEnumFieldsWithOptions(string enumName, string[] fieldNames , OptionIdentifierPath[] optionNames) { var optionConst = Constant.Create(true); IEnumerable <EnumValueOption> GetEnumValueOptions() => optionNames.Select( x => new EnumValueOption { Name = x, Value = optionConst } ); IEnumerable <IEnumBodyItem> GetEnumFields() => fieldNames.Select <string, IEnumBodyItem>( x => new EnumFieldDescriptor { Name = x, Options = GetEnumValueOptions().ToList() } ); ExpectedTopLevel = new EnumStatement { Name = enumName, Items = GetEnumFields().ToList() }; }
public void VerifyEnumStatementWithEmptyStatement(string enumName) { ExpectedTopLevel = new EnumStatement { Name = enumName, Items = { NewEmptyStatement } }; }
public void VerifyEmptyBody(string enumName) { ExpectedTopLevel = new EnumStatement { Name = enumName }; }