1 #include "parser.h"
2 #include "printer.h"
3 #include "parser.h"
4 #include "gfanapplication.h"
5 
6 
7 class ToLatexApplication : public GFanApplication
8 {
9   SimpleOption optionAddHeader;
10   SimpleOption optionPolynomialSet;
11   SimpleOption optionPolynomialSetList;
12 public:
helpText()13   const char *helpText()
14   {
15     return "This program converts ASCII math to TeX math. The data-type is specified by the options.\n";
16   }
ToLatexApplication()17   ToLatexApplication():
18     optionPolynomialSet("--polynomialset_","The data to be converted is a list of polynomials."),
19     optionPolynomialSetList("--polynomialsetlist_","The data to be converted is a list of lists of polynomials."),
20     optionAddHeader("-h","Add a header to the output. Using this option the output will be LaTeXable right away.")
21   {
22     registerOptions();
23   }
24 
name()25   const char *name()
26   {
27     return "_tolatex";
28   }
29 
main()30   int main()
31   {
32     LatexPrinter out(Stdout);
33     FileParser in(Stdin);
34 
35 
36     if(optionAddHeader.getValue())
37       fprintf(Stdout,"\\documentclass{article}\n"
38 	    "\\usepackage[english]{babel}\n"
39 	    "\\begin{document}\n");
40 
41     if(optionPolynomialSet.getValue())
42       {
43 	out.printPolynomialSet(in.parsePolynomialSetWithRing());
44       }
45     else if(optionPolynomialSetList.getValue())
46       {
47 	out.printPolynomialSetList(in.parsePolynomialSetListWithRing());
48       }
49     else
50 
51       {
52 	fprintf(Stderr,"No type specified\n");
53 	assert(0);
54       }
55 
56     if(optionAddHeader.getValue())
57       fprintf(Stdout,"\\end{document}\n");
58     return 0;
59   }
60 };
61 
62 static ToLatexApplication theApplication;
63