#include #include #include "finalize.h" #include "lexer.h" #include "parser.h" void printHeader(FILE *out) { fprintf(out, "\\documentclass[preview, margin=0.2cm]{standalone}\n"); fprintf(out, "\\usepackage{amsmath}\n"); fprintf(out, "\\usepackage{forest}\n"); fprintf(out, "\\begin{document}\n"); } void printFooter(FILE *out) { fprintf(out, "\\end{document}\n"); } void usage(const char *prg) { fprintf(stderr, "usage: %s [out]\n", prg); finalizeExit(1); } int main(int argc, char *argv[]) { FILE *out = 0; if (argc > 2) { usage(argv[0]); } else if (argc == 2) { out = fopen(argv[1], "w"); if (!out) { fprintf(stderr, "can not open output file %s\n", argv[1]); finalizeExit(1); } } if (out) { setParserLog(out); printHeader(out); } getToken(); parse(); if (out) { printFooter(out); fclose(out); } finalize(); }