analyze.C

Go to the documentation of this file.
00001 {
00002    //
00003    //This macro produces the flowchart of TFormula::Analyze
00004    //Author: Rene Brun
00005    
00006    gROOT->Reset();
00007    c1 = new TCanvas("c1","Analyze.mac",620,790);
00008    c1->Range(-1,0,19,30);
00009    TPaveLabel pl1(0,27,3.5,29,"Analyze");
00010    pl1.SetFillColor(42);
00011    pl1.Draw();
00012    TPaveText pt1(0,22.8,4,25.2);
00013    TText *t1=pt1.AddText("Parenthesis matching");
00014    TText *t2=pt1.AddText("Remove unnecessary");
00015    TText *t2a=pt1.AddText("parenthesis");
00016    pt1.Draw();
00017    TPaveText pt2(6,23,10,25);
00018    TText *t3=pt2.AddText("break of");
00019    TText *t4=pt2.AddText("Analyze");
00020    pt2.Draw();
00021    TPaveText pt3(0,19,4,21);
00022    TText *t4=pt3.AddText("look for simple");
00023    TText *t5=pt3.AddText("operators");
00024    pt3.Draw();
00025    TPaveText pt4(0,15,4,17);
00026    TText *t6=pt4.AddText("look for an already");
00027    TText *t7=pt4.AddText("defined expression");
00028    pt4.Draw();
00029    TPaveText pt5(0,11,4,13);
00030    TText *t8=pt5.AddText("look for usual");
00031    TText *t9=pt5.AddText("functions :cos sin ..");
00032    pt5.Draw();
00033    TPaveText pt6(0,7,4,9);
00034    TText *t10=pt6.AddText("look for a");
00035    TText *t11=pt6.AddText("numeric value");
00036    pt6.Draw();
00037    TPaveText pt7(6,18.5,10,21.5);
00038    TText *t12=pt7.AddText("Analyze left and");
00039    TText *t13=pt7.AddText("right part of");
00040    TText *t14=pt7.AddText("the expression");
00041    pt7.Draw();
00042    TPaveText pt8(6,15,10,17);
00043    TText *t15=pt8.AddText("Replace expression");
00044    pt8.Draw();
00045    TPaveText pt9(6,11,10,13);
00046    TText *t16=pt9.AddText("Analyze");
00047    pt9.SetFillColor(42);
00048    pt9.Draw();
00049    TPaveText pt10(6,7,10,9);
00050    TText *t17=pt10.AddText("Error");
00051    TText *t18=pt10.AddText("Break of Analyze");
00052    pt10.Draw();
00053    TPaveText pt11(14,22,17,24);
00054    pt11.SetFillColor(42);
00055    TText *t19=pt11.AddText("Analyze");
00056    TText *t19a=pt11.AddText("Left");
00057    pt11.Draw();
00058    TPaveText pt12(14,19,17,21);
00059    pt12.SetFillColor(42);
00060    TText *t20=pt12.AddText("Analyze");
00061    TText *t20a=pt12.AddText("Right");
00062    pt12.Draw();
00063    TPaveText pt13(14,15,18,18);
00064    TText *t21=pt13.AddText("StackNumber++");
00065    TText *t22=pt13.AddText("operator[StackNumber]");
00066    TText *t23=pt13.AddText("= operator found");
00067    pt13.Draw();
00068    TPaveText pt14(12,10.8,17,13.2);
00069    TText *t24=pt14.AddText("StackNumber++");
00070    TText *t25=pt14.AddText("operator[StackNumber]");
00071    TText *t26=pt14.AddText("= function found");
00072    pt14.Draw();
00073    TPaveText pt15(6,7,10,9);
00074    TText *t27=pt15.AddText("Error");
00075    TText *t28=pt15.AddText("break of Analyze");
00076    pt15.Draw();
00077    TPaveText pt16(0,2,7,5);
00078    TText *t29=pt16.AddText("StackNumber++");
00079    TText *t30=pt16.AddText("operator[StackNumber] = 0");
00080    TText *t31=pt16.AddText("value[StackNumber] = value found");
00081    pt16.Draw();
00082    TArrow ar(2,27,2,25.4,0.012,"|>");
00083    ar.SetFillColor(1);
00084    ar.Draw();
00085    ar.DrawArrow(2,22.8,2,21.2,0.012,"|>");
00086    ar.DrawArrow(2,19,2,17.2,0.012,"|>");
00087    ar.DrawArrow(2,15,2,13.2,0.012,"|>");
00088    ar.DrawArrow(2,11,2, 9.2,0.012,"|>");
00089    ar.DrawArrow(2, 7,2, 5.2,0.012,"|>");
00090    ar.DrawArrow(4,24,6,24,0.012,"|>");
00091    ar.DrawArrow(4,20,6,20,0.012,"|>");
00092    ar.DrawArrow(4,16,6,16,0.012,"|>");
00093    ar.DrawArrow(4,12,6,12,0.012,"|>");
00094    ar.DrawArrow(4, 8,6, 8,0.012,"|>");
00095    ar.DrawArrow(10,20,14,20,0.012,"|>");
00096    ar.DrawArrow(12,23,14,23,0.012,"|>");
00097    ar.DrawArrow(12,16.5,14,16.5,0.012,"|>");
00098    ar.DrawArrow(10,12,12,12,0.012,"|>");
00099    TText ta(2.2,22.2,"err = 0");
00100    ta.SetTextFont(71);
00101    ta.SetTextSize(0.015);
00102    ta.SetTextColor(4);
00103    ta.SetTextAlign(12);
00104    ta.Draw();
00105    ta.DrawText(2.2,18.2,"not found");
00106    ta.DrawText(2.2,6.2,"found");
00107    TText tb(4.2,24.1,"err != 0");
00108    tb.SetTextFont(71);
00109    tb.SetTextSize(0.015);
00110    tb.SetTextColor(4);
00111    tb.SetTextAlign(11);
00112    tb.Draw();
00113    tb.DrawText(4.2,20.1,"found");
00114    tb.DrawText(4.2,16.1,"found");
00115    tb.DrawText(4.2,12.1,"found");
00116    tb.DrawText(4.2, 8.1,"not found");
00117    TLine l1(12,16.5,12,23);
00118    l1.Draw();
00119 }

Generated on Tue Jul 5 15:44:20 2011 for ROOT_528-00b_version by  doxygen 1.5.1