working basic expression parser