private static boolean parseHas(PerlBuilder b, int l) { PerlBuilder.Marker m = b.mark(); PerlParserImpl.annotations(b, l); if (PerlParserUtil.consumeToken(b, RESERVED_HAS) && parseHasArguments(b, l)) { PerlParserUtil.parseStatementModifier(b, l); m.done(MOOSE_STATEMENT_HAS); return true; } m.rollbackTo(); return false; }
private static boolean parseHasArgumentsParenthesised(PerlBuilder b, int l) { if (b.getTokenType() == LEFT_PAREN) { PerlBuilder.Marker m = b.mark(); if (PerlParserUtil.consumeToken(b, LEFT_PAREN) && parseHasArgumentsBare(b, l) && PerlParserUtil.consumeToken(b, RIGHT_PAREN)) { m.done(CALL_ARGUMENTS); return true; } m.rollbackTo(); } return false; }
private static boolean parseDefault(PerlBuilder b, int l) { PerlBuilder.Marker m = b.mark(); IElementType tokenType = b.getTokenType(); if (MOOSE_TOKEN_SET.contains(tokenType)) { b.advanceLexer(); if (PerlParserImpl.expr(b, l, -1)) { PerlParserUtil.parseStatementModifier(b, l); m.done(RESERVED_TO_STATEMENT_MAP.get(tokenType)); return true; } } m.rollbackTo(); return false; }
private static boolean parseAnnotatedSimpleStatement( PerlBuilder b, int l, IElementType keywordToken, IElementType statementToken) { PerlBuilder.Marker m = b.mark(); PerlParserImpl.annotations(b, l); if (PerlParserUtil.consumeToken(b, keywordToken)) { if (PerlParserImpl.expr(b, l, -1)) { PerlParserUtil.parseStatementModifier(b, l); m.done(statementToken); return true; } } m.rollbackTo(); return false; }