A simple arithmetic expression parser implementation using multiple design patterns