ledger/textual.h
John Wiegley 4518ea9540 Value expression architecture is now rewritten, but the functionality of the
old system (for example, the meaning of 'a') has yet to be restored.  In the
new scheme, this will be done by definition a function outside of the value
expression logic, rather than the tight coupling between journal innards and
value expressions that occurred in 2.x.
2008-07-29 05:59:38 -04:00

48 lines
1.2 KiB
C++

#ifndef _TEXTUAL_H
#define _TEXTUAL_H
#include "journal.h"
#include "format.h"
#include "walk.h"
namespace ledger {
class textual_parser_t : public journal_t::parser_t
{
public:
virtual bool test(std::istream& in) const;
virtual unsigned int parse(std::istream& in,
session_t& session,
journal_t& journal,
account_t * master = NULL,
const path * original_file = NULL);
};
transaction_t * parse_transaction_text(char * line, account_t * account);
transaction_t * parse_transaction(std::istream& in, account_t * account);
void write_textual_journal(journal_t& journal, path pathname,
item_handler<transaction_t>& formatter,
const string& write_hdr_format,
std::ostream& out);
class include_context : public file_context
{
public:
include_context(const path& file, unsigned long line,
const string& desc = "") throw()
: file_context(file, line, desc) {}
virtual ~include_context() throw() {}
virtual void describe(std::ostream& out) const throw() {
if (! desc.empty())
out << desc << ": ";
out << "\"" << file.string() << "\", line " << line << ":"
<< std::endl;
}
};
} // namespace ledger
#endif // _TEXTUAL_H