private Parser<ConjureType> typeParser() { return Parsers.or( MapTypeParser.INSTANCE, ListTypeParser.INSTANCE, SetTypeParser.INSTANCE, OptionalTypeParser.INSTANCE, TypeFromString.of("any", AnyType.of(), AnyType.class), TypeFromString.of("binary", BinaryType.of(), BinaryType.class), TypeFromString.of("datetime", DateTimeType.of(), DateTimeType.class), ForeignReferenceTypeParser.INSTANCE, TypeReferenceParser.INSTANCE); }
@Test public void testOrParser() throws ParseException { Parser<String> rawNoPunctuation = new RawStringParser(new RawStringParser.AllowableCharacters() { @Override public boolean isAllowed(char character) { return Character.isLetterOrDigit(character); } @Override public String getDescription() { return "Character.isLetterOrDigit"; } }); assertEquals("abcdef", Parsers.or(rawNoPunctuation, new QuotedStringParser()).parse(new StringParserState("abcdef"))); assertEquals("abcdef", Parsers.or(rawNoPunctuation, new QuotedStringParser()).parse(new StringParserState("\"abcdef\""))); }