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