Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
            }
        }
Beispiel #3
0
        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;
            }
            }
        }