<!--Задача:
Реализовать средствами javascript калькулятор, понимающий функции синуса, косинуса, возведения в степень и факториала. Калькулятор должен поддерживать вложенные выражения в скобках любой вложенности и приоритет арифметических операторов (2+2*2 должно выдавать результат 6, а (2+2)*2 - 8).
Разбор строки осуществляется с помощью регулярных выражений без применения дополнительных алгоритмов (по крайней мере - C-style парсинга строки, подсчета скобок и т.д.). Незаконченная функция specFuncsEx (если присутствует) была попыткой реализовать изначально задуманный функционал вложенных функций ( sin(0.5*(0.5+1)) ). На данный момент калькулятор понимает только функции первого порядка и арифметические выражения любого уровня вложенности.-->
<div class="wrapper"><input id="input" type="text" /><br />
<button id="calculate">Calculate</button><br />
<input id="output" disabled="true" type="text" />
<br /><br />
<div class="syntax">Syntax:<br /><ul><li>* or x, /, - and + operators may be used with or without spaces. If "-" is ised as a negative sign it shouldn't be followed by spaces.</li><li>Parentheses are welcome, but they won't do multiplication when not separated by * sign. In that case they will concatenate their values;<ul><li>(a+b)(c-d) WON'T do multiplication but will concatenate themselves: (2+2)(2-2) => 40,</li><li>(a+b)*(c-d) should work as usual: (2+2)*(2-2) => 0.</li></ul></li><li>sin(), cos(), pow (e.g. 2^2) and factorial (e.g. 5!) functions are supported at the moment. They may NOT be nested and can NOT contain arithmetic expressions (planned but not implemented yet).</li> </ul></div>
</div>