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; }