Exemple #1
0
 //Проверка корректности выражений генерации
 public void Check(ITablStruct tabl)
 {
     if (_condition.Check(tabl) != DataType.Boolean)
     {
         AddError("Недопустимый тип данных условия");
     }
     _prog.Check(tabl);
 }
Exemple #2
0
 //Проверка корректности выражений генерации
 public void Check(ITablStruct tabl)
 {
     if (tabl.Fields.ContainsKey(_var.Name))
     {
         AddError("Имя переменной не должно совпадать с именем поля таблицы");
     }
     _var.DataType = _var.DataType.Add(_nodeMean.Check(tabl));
 }
Exemple #3
0
 //Получение типа данных
 public DataType Check(ITablStruct tabl)
 {
     if (_condition.Check(tabl) != DataType.Boolean)
     {
         AddError("Недопустимый тип данных условия");
         return(DataType.Error);
     }
     return(_prog.Check(tabl).Add(_elseProg.Check(tabl)));
 }
Exemple #4
0
 //Проверка корректности выражений генерации
 public void Check(ITablStruct tabl)
 {
     if (tabl.Child == null)
     {
         AddError("Недопустимый переход к подтаблице");
     }
     else if (_condition != null && _condition.Check(tabl.Child) != DataType.Boolean)
     {
         AddError("Недопустимый тип данных условия");
     }
     else
     {
         _prog.Check(tabl.Child);
     }
 }
Exemple #5
0
        //Проверка выражения
        public ITablStruct Check(TablsList dataTabls, ITablStruct parentStruct)
        {
            if (!dataTabls.Structs.ContainsKey(_tablName))
            {
                AddError("Не найдена таблица");
                return(null);
            }
            var tstruct = dataTabls.Structs[_tablName].Tabls[0];

            if (_condition != null && _condition.Check(tstruct) != DataType.Boolean)
            {
                AddError("Недопустимый тип данных условия");
            }
            return(ChildNode == null ? tstruct : ChildNode.Check(dataTabls, tstruct));
        }
Exemple #6
0
 //Получение типа данных
 public DataType Check(ITablStruct tabl)
 {
     if (tabl is RowGroupStruct)
     {
         AddError("Переход к надтаблице недопустим для сгруппированных строк");
     }
     else if (tabl.Parent == null)
     {
         AddError("Недопустимый переход к надтаблице");
     }
     else
     {
         return(_expr.Check(tabl.Parent));
     }
     return(DataType.Error);
 }
Exemple #7
0
        //Проверка корректности выражений генерации
        public DataType Check(ITablStruct tabl)
        {
            var child = tabl.Child;

            if (child == null)
            {
                AddError("Недопустимый переход к подтаблице");
                return(DataType.Error);
            }
            if (_pars.Length > 1 && _pars[0].Check(child) == DataType.Boolean)
            {
                _condition = _pars[0];
                _expr      = _pars[1];
                if (_pars.Length == 3)
                {
                    _separator = _pars[2];
                }
            }
            else
            {
                _expr = _pars[0];
                if (_pars.Length == 2)
                {
                    _separator = _pars[1];
                }
                if (_pars.Length == 3)
                {
                    AddError("Недопустимый тип данных условия");
                }
            }

            _expr.Check(child);
            if (_separator != null)
            {
                _separator.Check(child);
            }
            return(DataType.String);
        }
Exemple #8
0
 //Проверка корректности выражений генерации, определение типа данных выражения
 public DataType Check(ITablStruct tabl)
 {
     _voidProg.Check(tabl);
     return(_expr.Check(tabl));
 }