Ejemplo n.º 1
0
 public override void PrzypiszReferencje(ISlownikSkryptu slownik)
 {
     base.PrzypiszReferencje(slownik);
     if (_funkcjaNazwa != null)
     {
         // sprawdzenie czy jest taka funkcja wbudowana
         FunkcjaInformacje fi = slownik.PobierzFunkcje(_funkcjaNazwa);
         if (fi != null)
         {
             if (fi.IloscParametrow != 1)
             {
                 throw new CheckingScriptException(string.Format(UI.Language.Instance.GetString(UI.UIStrings.IncorrectNumberOfVariablesForVariableFunction), _funkcjaNazwa, Nazwa, fi.IloscParametrow));
             }
             _funkcja   = fi.Funkcja;
             _argumenty = new Argument[] { new Argument()
                                           {
                                               argument = this
                                           } };
         }
         else
         {
             throw new CheckingScriptException(string.Format(UI.Language.Instance.GetString(UI.UIStrings.FunctionNotFound), _funkcjaNazwa));
         }
     }
 }
Ejemplo n.º 2
0
        public override void PrzypiszReferencje(ISlownikSkryptu slownik)
        {
            // sprawdzenie czy jest taka funkcja wbudowana
            FunkcjaInformacje fi = FunkcjeWbudowane.PobierzFunkcje(Nazwa);

            if (fi != null)
            {
                if (!fi.DobraIloscParametrow(argumenty.Length))
                {
                    throw new CheckingScriptException(string.Format(UI.Language.Instance.GetString(UI.UIStrings.IncorrectArgumentNumber), Nazwa, fi.IloscParametrow.ToString()));
                }
                _funkcja = fi.Funkcja;
            }

            // nie ma więc poszukanie w zdefiniowanych
            if (_funkcja == null)
            {
                fi = slownik.PobierzFunkcje(Nazwa);
                if (fi != null)
                {
                    if (!fi.DobraIloscParametrow(argumenty.Length))
                    {
                        throw new CheckingScriptException(string.Format(UI.Language.Instance.GetString(UI.UIStrings.IncorrectArgumentNumber), Nazwa, fi.IloscParametrow.ToString()));
                    }
                    _funkcja = fi.Funkcja;
                }
                else
                {
                    throw new CheckingScriptException(string.Format(UI.Language.Instance.GetString(UI.UIStrings.FunctionNotFound), Nazwa));
                }
            }

            if (argumenty != null)
            {
                foreach (Argument a in argumenty)
                {
                    a.PrzypiszReferencje(slownik);
                }
            }
        }