public void addFunction(Function function) { String functionSignature = function.getSignatureLabel(); if (functions.getValue(functionSignature) != null) { throw new DinaException( "Функция '" + function.getSignature().toString() + "' уже существует", DinaException.COMPILATION_ERROR); } if (Function.getNativeFunctionsTable().getValue(functionSignature) != null) { error(function); } InternalFunctionContainer functionContainer = InternalFunctions.getFunctionContainer(function.getName()); if (functionContainer != null) { if (functionContainer.check(function.getArguments())) { error(function); } } functions.put(functionSignature, function); }