//Проверка корректности выражений генерации public void Check(ITablStruct tabl) { if (_condition.Check(tabl) != DataType.Boolean) { AddError("Недопустимый тип данных условия"); } _prog.Check(tabl); }
//Проверка корректности выражений генерации public void Check(ITablStruct tabl) { if (tabl.Fields.ContainsKey(_var.Name)) { AddError("Имя переменной не должно совпадать с именем поля таблицы"); } _var.DataType = _var.DataType.Add(_nodeMean.Check(tabl)); }
//Получение типа данных public DataType Check(ITablStruct tabl) { if (_condition.Check(tabl) != DataType.Boolean) { AddError("Недопустимый тип данных условия"); return(DataType.Error); } return(_prog.Check(tabl).Add(_elseProg.Check(tabl))); }
//Проверка корректности выражений генерации 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); } }
//Проверка выражения 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)); }
//Получение типа данных 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); }
//Проверка корректности выражений генерации 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); }
//Проверка корректности выражений генерации, определение типа данных выражения public DataType Check(ITablStruct tabl) { _voidProg.Check(tabl); return(_expr.Check(tabl)); }