StatementParser { static Parser<Modifier> systemModifier(SystemModifier... modifiers) { List<Parser<Modifier>> list = new ArrayList<Parser<Modifier>>(modifiers.length); for (Modifier modifier : modifiers) { list.add(term(modifier.toString()).retn(modifier)); } return Parsers.or(list); }    }
@Test public void testSystemModifier() { Parser<Modifier> parser = StatementParser.SYSTEM_MODIFIER; TerminalParserTest.assertParser(parser, "private", SystemModifier.PRIVATE); TerminalParserTest.assertParser(parser, "protected", SystemModifier.PROTECTED); TerminalParserTest.assertParser(parser, "public", SystemModifier.PUBLIC); TerminalParserTest.assertParser(parser, "static", SystemModifier.STATIC); TerminalParserTest.assertParser(parser, "transient", SystemModifier.TRANSIENT); TerminalParserTest.assertParser(parser, "volatile", SystemModifier.VOLATILE); TerminalParserTest.assertParser(parser, "final", SystemModifier.FINAL); TerminalParserTest.assertParser(parser, "abstract", SystemModifier.ABSTRACT); TerminalParserTest.assertParser(parser, "synchronized", SystemModifier.SYNCHRONIZED); TerminalParserTest.assertParser(parser, "native", SystemModifier.NATIVE); }