// FIXME: used by source_t - need a different approach at some time public bool parse_stream(plib.istream_uptr istrm, string name) //bool parse_stream(plib::istream_uptr &&istrm, const pstring &name); { var filename = istrm.filename(); var preprocessed = new MemoryStream( //auto preprocessed = std::make_unique<std::stringstream>(putf8string( Encoding.ASCII.GetBytes(new plib.ppreprocessor(m_includes, m_defines).process(istrm, filename))); //plib::ppreprocessor(m_includes, &m_defines).process(std::move(istrm), filename))); parser_t_token_store st = new parser_t_token_store(); parser_t parser = new parser_t(this); parser.parse_tokens(new plib.istream_uptr(preprocessed, filename), st); return(parser.parse(st, name)); }
public void parse_tokens(plib.istream_uptr strm, parser_t_token_store tokstor) { //plib::putf8_reader u8reader(strm.release_stream()); m_tokenizer.append_to_store(new StreamReader(strm.release_stream()), tokstor); }