An simple arithmetic expression parser using various design patterns