示例#1
0
        public void Interpret(GalaxyContext context)
        {
            if (context.Input.Length == 0)
            {
                return;
            }

            if (context.Input.TrimStart(' ').StartsWith(glob()))
            {
                context.RomanOutput = context.RomanOutput + one();
                context.Output      = String.IsNullOrWhiteSpace(context.Output) ? glob() : context.Output + " " + glob();
                context.Quantity++;
                context.Input          = context.Input.TrimStart(' ').Substring(4);
                context._previousToken = glob();
                context.IsKnown        = true;
            }
            if (context.Input.TrimStart(' ').StartsWith(prok()))
            {
                context.RomanOutput = context.RomanOutput + five();
                context.Output      = String.IsNullOrWhiteSpace(context.Output) ? prok() : context.Output + " " + prok();
                context.Input       = context.Input.TrimStart(' ').Substring(4);
                if (!String.IsNullOrWhiteSpace(context._previousToken))
                {
                    if (isLower(context._previousToken, prok()))
                    {
                        context.Quantity = 4;
                    }
                    else
                    {
                        context.Quantity = context.Quantity + 5;
                    }
                }


                context._previousToken = prok();
                context.IsKnown        = true;
            }
            if (context.Input.TrimStart(' ').StartsWith(pish()))
            {
                context.RomanOutput = context.RomanOutput + one();
                context.Output      = pish();
                context.Input       = context.Input.Substring(4);
                if (!String.IsNullOrWhiteSpace(context._previousToken))
                {
                    if (isLower(context._previousToken, pish()))
                    {
                        context.Quantity = 9;
                    }
                    else
                    {
                        context.Quantity = context.Quantity + multiplier();
                    }
                }
                else
                {
                    context.Quantity = context.Quantity + multiplier();
                }

                context._previousToken = pish();
                context.IsKnown        = true;
            }
            if (context.Input.TrimStart(' ').StartsWith(tegj()))
            {
                context.RomanOutput = context.RomanOutput + five();
                context.Output      = String.IsNullOrWhiteSpace(context.Output) ? tegj() : context.Output + " " + tegj();
                context.Input       = context.Input.TrimStart(' ').Substring(4);
                if (!String.IsNullOrWhiteSpace(context._previousToken))
                {
                    if (isLower(context._previousToken, tegj()))
                    {
                        context.Quantity = (5 * multiplier()) - 10;
                    }
                    else
                    {
                        context.Quantity = context.Quantity + (5 * multiplier());
                    }
                }
                else
                {
                    context.Quantity = context.Quantity + multiplier();
                }
                context._previousToken = tegj();
                context.IsKnown        = true;
            }
            else if (context.Input.TrimStart(' ').StartsWith(four()))
            {
                context.Output  = (context.Output + (4 * multiplier()));
                context.Input   = context.Input.Substring(2);
                context.IsKnown = true;
            }
            else if (context.Input.TrimStart(' ').StartsWith(five()))
            {
                context.Output  = (context.Output + (5 * multiplier()));
                context.Input   = context.Input.Substring(2);
                context.IsKnown = true;
            }
            while (context.Input.TrimStart(' ').Equals(one()))
            {
                context.Output  = (context.Output + (1 * multiplier()));
                context.Input   = context.Input.Substring(2);
                context.IsKnown = true;
            }

            while (context.Input.TrimStart(' ').StartsWith(glob()))
            {
                context.Quantity++;
                context.RomanOutput = context.RomanOutput + one();
                context.Output      = context.Output + " " + glob();
                context.Input       = context.Input.Substring(5);
            }
            while (context.Input.TrimStart(' ').StartsWith(pish()))
            {
                context.Quantity    = context.Quantity + multiplier();
                context.RomanOutput = context.RomanOutput + new Ten().multiplier();
                context.Output      = context.Output + " " + pish();
                context.Input       = context.Input.Substring(5);
            }
            if (context.Input.TrimStart(' ').StartsWith(Silver()))
            {
                context.Output  = context.Output + " " + Silver() + " is " + (context.Quantity * new SilverMaterial().multiplier() + " " + "Credits");
                context.Input   = context.Input.Substring(6);
                context.IsKnown = true;
            }
            if (context.Input.TrimStart(' ').StartsWith(Gold()))
            {
                context.Output  = context.Output + " " + Gold() + " is " + (context.Quantity * new GoldMaterial().multiplier() + " " + "Credits");
                context.Input   = context.Input.Substring(4);
                context.IsKnown = true;
            }
            if (context.Input.TrimStart(' ').StartsWith(Iron()))
            {
                context.Output  = context.Output + " " + Iron() + " is " + (context.Quantity * new IronMaterial().multiplier() + " " + "Credits");
                context.Input   = context.Input.Substring(4);
                context.IsKnown = true;
            }
            if (context.Input.Length == 0)
            {
                context.MessageRoman = string.Format("{0} is {1}", context.Output, context.RomanOutput);
                context.Output       = string.Format("{0} is {1}", context.Output, context.Quantity);
            }
        }
 public void Interpret(GalaxyContext context)
 {
 }