From 7d8e1295ff6bd4a768a658690b850d58aba01b0b Mon Sep 17 00:00:00 2001 From: Grégoire Duchêne Date: Sat, 4 Dec 2010 21:34:06 +0100 Subject: Emphasized text support added. I will try to add both parsing and generation at the same time for each mdown feature I will implement. Do not expect this to last. --- src/main.cpp | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 src/main.cpp (limited to 'src/main.cpp') diff --git a/src/main.cpp b/src/main.cpp new file mode 100644 index 0000000..f4113fd --- /dev/null +++ b/src/main.cpp @@ -0,0 +1,70 @@ +/* +Copyright (c) 2010, Grégoire Duchêne + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +*/ +#include +#include +#include +#include +#include +#include "elements.h" +#include "generators/latex_g.h" +#include "parser/document_p.h" + +namespace ka = boost::spirit::karma; +namespace qi = boost::spirit::qi; + +int main(int argc, char **argv) { + using namespace std; + + if (argc != 2) + return 1; + + wifstream ifile(argv[1]); + + if (ifile.fail()) { + cerr << "Error while reading the file." << endl; + return 1; + } + + wchar_t buffer; + wstring input; + + while (ifile.get(buffer)) + input.push_back(buffer); + + ifile.close(); + + document_p parser; + iiterator begin = input.begin(); + iiterator end = input.end(); + document_t ast; + + if (!qi::parse(begin, end, parser, ast) || begin != end) { + cerr << "Error while parsing the file." << endl; + return 1; + } + + latex_g generator; + wstring output; + oiterator sink(output); + + if (!ka::generate(sink, generator, ast)) { + cerr << "Error while generating the output." << endl; + return 1; + } + + wcout << output << flush; + return 0; +} -- cgit v1.2.3-70-g09d2