А обязательно так страшно реализовывать? Если очень хочется парсить строку, можешь посмотреть, как это делается 
здесь. Но, по-моему, проще сделать так:
function evaluate(expression){
  try {
    return + Function( "return " + expression )();
  } catch(error) {
    return NaN;
  };
};
alert( evaluate( "5*8/3*6/10" ) );