public EnumsGeneratorItem WithEnum(string typeName, string s, ParserKind parserKind = ParserKind.Default) { var tmp = new EnumsGeneratorItem { Names = typeName, Options = OptionsCollection.Parse(s, parserKind), TargetAssembly = _currentTargetAssembly }; ItemsToCreate.Add(tmp); return(tmp); }
public static OptionsCollection Parse(string text, ParserKind parserKind) { switch (parserKind) { case ParserKind.Default: return(ParseDefault(text)); case ParserKind.Style1: return(ParseStyle1(text)); break; default: throw new ArgumentOutOfRangeException(nameof(parserKind), parserKind, null); } }
public void UpdateFromParsedOption(string option, ParserKind parserKind) { switch (parserKind) { case ParserKind.Style1: { var m = Style1OptionParserRegex.Match(option); if (!m.Success) { throw new Exception("Invalid format"); } var name = m.Groups[1].Value.Trim(); if (name.StartsWith("$")) { this.ForceCsName = name.Substring(1).Camelise(); return; } else { AnyWithMinus = name; } var a = m.Groups[2].Value; var b = m.Groups[3].Value; AppendOptionPart(a, b); break; } case ParserKind.Default: { var optionParts = option.Trim().Split(' '); optionParts = TextLinesUtils.SplitBySpace(option, true); var first = optionParts[0]; if (first.StartsWith("$")) { ForceCsName = first.Substring(1).Camelise(); return; } if (first.Contains('=')) { if (optionParts.Length != 1) { throw new NotImplementedException(); } var g = first.Split('='); AnyWithMinus = g[0]; AppendOptionPart(g[1]); } else { AnyWithMinus = first; if (optionParts.Length > 2) { throw new NotImplementedException("Unable to parse " + option); } if (optionParts.Length == 2) { AppendOptionPart(optionParts[1]); } } break; } } }