Пример #1
0
 public override void CheckSanity(Project project, Whee.WordBuilder.ProjectV2.IProjectSerializer serializer)
 {
     foreach (CommandBase cmd in Commands)
     {
         cmd.CheckSanity(project, serializer);
     }
 }
Пример #2
0
 public override void CheckSanity(Project project, Whee.WordBuilder.ProjectV2.IProjectSerializer serializer)
 {
     m_project = project;
     if (project.Rules.GetRuleByName(Rule) == null)
     {
         serializer.Warn(string.Format("The rule '{0}' does not exist.", Rule), this);
     }
 }
Пример #3
0
        public override void LoadCommand(Whee.WordBuilder.ProjectV2.IProjectSerializer serializer)
        {
            double num   = 0;
            bool   found = true;

            Token amount = null;

            while (found)
            {
                amount = serializer.ReadNumericToken(this, ref num, out found);
                if (amount != null)
                {
                    _Repetitions.Add((int)num);
                }

                if (amount == null && found)
                {
                    int    reps = 0;
                    string data;
                    amount = serializer.ReadRepeatingToken(this, out reps, out data);

                    if (amount != null)
                    {
                        List <int> numbers = new List <int>();
                        foreach (string numstring in data.Split(' '))
                        {
                            int number = 0;
                            if (int.TryParse(numstring, out number))
                            {
                                numbers.Add(number);
                            }
                            else
                            {
                                serializer.Warn("Expected numbers only", this);
                            }
                        }

                        for (int i = 0; i < reps; i++)
                        {
                            _Repetitions.AddRange(numbers);
                        }
                    }
                    else
                    {
                        found = false;
                    }
                }
            }

            CommandBlockNode cbn = new CommandBlockNode(serializer);

            Children.Add(cbn);

            foreach (CommandBase cmd in cbn.Commands)
            {
                Commands.Add(cmd);
            }
        }
Пример #4
0
        public override void LoadCommand(Whee.WordBuilder.ProjectV2.IProjectSerializer serializer)
        {
            m_lineNumber = serializer.LineNumber;
            Token name = serializer.ReadTextToken(this);

            if (name != null)
            {
                name.Type = TokenType.Name;
                Rule      = name.Text;
            }

            if (serializer.ReadTextToken(this) != null)
            {
                serializer.Warn("The rule command requires 1 argument.", this);
            }
        }
Пример #5
0
 public abstract void CheckSanity(Project project, Whee.WordBuilder.ProjectV2.IProjectSerializer serializer);