module ctpg; import ctpg.caller : Caller; import ctpg.input : Input; import ctpg.parser_kind : ParserKind; auto parse(alias parser, alias kind = ParserKind!(true, true), SrcType)(SrcType src, size_t line = __LINE__ , string file = __FILE__) if(__traits(compiles, parser.build)) { return parser.build!(kind, SrcType).parse(Input!SrcType(src), Caller(line, file)); } auto parse(alias parser, alias kind = ParserKind!(true, true), SrcType)(SrcType src, size_t line = __LINE__ , string file = __FILE__) if(__traits(compiles, parser!().build)) { return parser!().build!(kind, SrcType).parse(Input!SrcType(src), Caller(line, file)); }