private IList<CatchStatement> GetCatchStatements()
        {
            // TODO: Implement modifiers, EG: catch (final Exception ex) {...

            var returnData = new List<CatchStatement>();

            while (!Eof && CurrentInputElement.Data == Keywords.Catch)
            {
                Debug.Assert(CurrentInputElement.Data == Keywords.Catch);
                MoveToNextToken();

                Debug.Assert(CurrentInputElement.Data == "(");
                MoveToNextToken();

                var catchStatement = new CatchStatement();
                while (CurrentInputElement.Data != ")")
                {
                    if (NextNonWhiteSpaceInputElement.Data == ")")
                    {
                        catchStatement.ExceptionName = CurrentInputElement;
                        MoveToNextToken();
                        continue;
                    }

                    if (CurrentInputElement.Data == "|")
                    {
                        MoveToNextToken();
                        continue;
                    }

                    catchStatement.ExceptionTypes.Add(CurrentInputElement);

                    MoveToNextToken();
                    continue;
                }
                Debug.Assert(CurrentInputElement is SeperatorToken);
                Debug.Assert(CurrentInputElement.Data == ")");
                MoveToNextToken();

                Debug.Assert(CurrentInputElement is SeperatorToken);
                Debug.Assert(CurrentInputElement.Data == "{");
                catchStatement.Body = ParseBody();

                returnData.Add(catchStatement);
            }

            return returnData;
        }
 public CatchStatementCompiler(ICompiler compiler, CatchStatement catchStatement)
 {
     _compiler = compiler;
     _catchStatement = catchStatement;
 }