anchor.diff:      if ((Tokens[i + 1] = '-') and (IsOperator(Tokens[i]))) then
         Tokens[i + 1] := '_';
     end;
  -
  -  //If the token is a function argument separator (e.g., a comma):
  -    //  Until the token at the top of the stack is a left parenthesis, pop operators off the stack onto the output queue. 
  -    //If no left parentheses are encountered, either the separator was misplaced or parentheses were mismatched.
     
     Output := TStack.Create;
     Stack := TStack.Create;
  
positive.code:   FunctionsList[2] := 'sqr';
    FunctionsList[3] := 'sqrt';
    FunctionsList[4] := 'pow';
  end;
    
  procedure GenerateOperatorMap;
  
negative.code:         end else if (Op.Simbol = '(') then begin
            Stack.Push(Op.Simbol);
          end else if (Op.Simbol = ')') then begin
            SawParenthesis := False;
            while (Stack.HasNext and (Stack.Peek <> '(')) do begin
              Output.Push(Stack.Pop);
            end;
            if (Stack.Peek = '(') then begin
              SawParenthesis := True;
  