Added support for the ! (factorial) operator