示例#1
0
        public PftGroupStatement(PftParser.GroupStatementContext node)
            : base(node)
        {
            PftNonGrouped subTree = new PftNonGrouped(node.nonGrouped());

            Children.Add(subTree);

            // TODO: просматривать также ссылки на глобальные переменные

            List <PftFieldReference> refs = subTree
                                            .GetDescendants <PftFieldReference>();

            if (refs.Count != 0)
            {
                Field = refs[0];
                Tag   = Field.Field.Field;
                foreach (PftFieldReference fld in refs)
                {
                    if (fld.Field.Field == Tag)
                    {
                        fld.Group = this;
                    }
                }
            }

            // ѕомечаем все чувствительные элементы формата
            // как вход¤щие в повтор¤ющуюс¤ группу.
            subTree
            .GetDescendants <PftGroupItem>()
            .ForEach(item => item.Group = this);
        }