Parsing and storing formulas

From: Stefan Rosi (invalid_at_invalid.com)
Date: 10/28/04


Date: Thu, 28 Oct 2004 16:56:48 +0200

I was wondering how I can parse a mathematical formula in a storable way.
For example I have two parameters like X and Y. And the user has to specify
a formula to calculate the result. Like 2(Y+2X). Then this formula has to
be stored for in the database. Each time the user visits a specific page,
the calculations have to be done according to his own formula.

Till now I have two ideas, the first one is to store the formula in just a
string and make the variable names identical to their representation columns
in the database. So I can just execute the query against the proper table
and SQL Server will parse the string and return the result. Anyway this
method has two drawbacks, first I can't use stored procedure anymore, and
second the mathematical operations can be very complex, which will be a
problem because sql server is not a mathematic program.

The second idea is to represent the formula as a tree. Each inner node
stands for an operation like multiplication, addition . etc. and the leaves
are either variables or constants: to clarify this idea I will attach a
diagram with this post. When I want to make the calculations I have just to
cal a function on the root, and it will call the same function on it
children and so on recursively. The tree will be serialized and saved as xml
in the database.

Anyway this tree will be hard to implement.

So I just wanted to ask if somebody knows a better way to do this task. I am
sure I am not the first person faced with this problem.

How can I parse and store an entered formula? Is there any ready component
to do it?

Any answer will be appreciated.

Stefan

begin 666 Tree.jpg
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
M`%%%% !1110`4444`%%%% !1110`4444`%%%% !1110`4444`%%%% !1110!
M7N;2.Y*,2R2Q\QRI]Y?_`*WL>*F4,$ 8@MCD@8R:=10`4444`%%%% !1110`
M4444`%%%% !1110!!<P&X41M(RQG[ZKP6'IGL/I4J(L:*D:A448"@8 %.HH`
M****`"BBB@`HHHH`****`"BBB@`HHHH`****`"BBB@`HHHH`****`"BBB@`H
MHHH`****`"BBB@`HHHH`****`"BBB@`HHHH`****`"BBB@`HHHH`****`"BB
MB@`HHHH`****`"BBJ.J:G#ID"O(KR2R-LBAC&7D;T H`O45A)8:OJ7[S4;Y[
M&,]+:S(!'^])U)^F*<WA;3WYDDO9&_O-=R$_SH VZ*P_^$3TSUN__ J3_&C_
M`(1/3/6[_P# J3_&@#<HK#_X1/3/6[_\"I/\:/\`A$],];O_`,"I/\: -RBL
M/_A$],];O_P*D_QH_P"$3TSUN_\`P*D_QH W**Q%\+V"9\J:^B;^\EW(#_.F
M/;:SI7[RTN6U.W7[T%Q@2@?[+@<GV- &]1533M0M]3M!<6S$KDJRL,,C#JK#
ML15N@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH *P=$3^T]0N-:F&Y=[06@[+&IP6'NQ!_"MB[<QV<\@
MZK&Q'X"J/AA!'X:TT+T-NA_,9_K0!J4444 %%%% %'6-4@T:P:\N4D:)6 /E
M@$C/XBKBL&0,.A&:\]\3Z=.=3;3-,U"YN+B[8SRVKD%$'WL^QR.!BM?P5&+O
MS-4DU.YNKHKY4T,N!Y1ZXQ^''2@#K:*** "BBB@#!O$_LG7[:]B&VWOW%O<*
M.GF?P/\`7L?J*WJQO%@_XD,K_P`22Q,I]")%K9H`****`"BBB@`HHHH`****
M`"BBB@`HHHH`****`"BBB@`HHHH`****`"BBB@`HHHH`****`"BBB@`HHHH`
M****`"BBB@`HHHH`****`"BBB@`HHHH`****`"BBB@`HHHH`****`*^H?\@Z
MY_ZY/_(U5\-_\BYIO_7M'_Z"*M:A_P`@ZY_ZY/\`R-5?#?\`R+FF_P#7M'_Z
M"* -*BBB@ HHHH C\F/SO.\M?-V[=^.<=<9]*(H8H0PBC1 S%FVC&2>I/O4E
M% !1110`4444`8_BS_D7KC_?B_\`1BUL5C^+/^1>N/\`?B_]&+6Q0 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 5]0_Y!US_`-<G_D:J^&_^1<TW_KVC_P#015K4/^0=<_\`7)_Y&JOA
MO_D7--_Z]H__`$$4`:5%%% !1110`4444 %%%% !1110!C^+/^1>N/\`?B_]
M&+6Q6/XL_P"1>N/]^+_T8M;%`!1110`4444`%%%%`!1110`4444`%%%%`!11
M10`4444`%%%%`!1110`4444`%%%%`!1110`4444`%%%%`!1110`4444`%%%%
M`!1110`4444`%%%%`!1110`4444`%%%%`!1110!%<1^=;2Q_WT*_F*SO"L@E
M\-:>1U6$1D>A7Y3^HK6KG[:0:'K,MI,=ME?R&6WD/W4D/WD/IGJ/QH Z"BBB
M@ HHHH **** "BBB@ HHI"<#)Z4`8WBLYT80#[]Q<0Q(/4F13_(&MJL"&0:]
MKD=Q$=VG:>QV..DTW3(]0HSSZFM^@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *@O+2WOK9[>ZB66)Q
M@JPJ>B@#"2QUG3/EL+J.^MATAO"0ZCT#CK^(J0:CK7\6@C/^S>(1_*MFB@#'
M_M'6?^@#_P"3B?X4?VCK/_0!_P#)Q/\`"ENM?MTG:UL(WU"['6*#D+_O/T6H
MO[*O]3^;6;KRX3_RYVK%5(]&?JWT&!0!3_X2N\>\-I!HQN)U^\L-RKA?]Y@,
M#\34MAXCO]0$@M]%R\3;9(VNE5D/N",BMVUM;>S@6&UA2&)>BHN!5'5-'6[E
M6\M)3:ZA&,).H^\/[KC^): (_P"T=9_Z`/\`Y.)_A1_:.L_]`'_R<3_"G:;K
M#2W'V#48A:Z@HSLS\DH_O(>X]NHK6H QCJ&MGA="4'U:\4 ?D#4;Z7J6J_+K
M%W'%;'K:V>0']F<\D>PQ6[10!'!#%;PI#!&L<:#"HHP`*DHHH **** "BBB@
M`HHHH **** "BBB@`HHHH **** "BBB@`HHHH **** "BBB@`HHHH **** "
MBBB@`HHHH **** "BBB@`HHHH **** "BBB@`HHHH **** "BBB@`HHHH **
M** "BLBZU^W2=K6PC?4+L=8H.0O^\_1:B_LJ_P!3^;6;KRX3_P`N=JQ52/1G
MZM]!@4 2W6OVZ3M:V$;ZA=CK%!R%_P!Y^BU%_95_J?S:S=>7"?\`ESM6*J1Z
M,_5OH,"M:UM;>S@6&UA2&)>BHN!4U $-K:V]G L-K"D,2]%1<"IJ** "BBB@
M"GJ6FVVIV_DW*$X.Y'4X>-NS*>QK-AU&YT>9+36FWP,=L-^!A6]%D_NM[]#6
M]4<T,=Q"\4T:R1N,,K#((H >.1D4M<]Y=WX;YA$EYI(ZQ_>EMA_L_P!Y?;J*
MV[6Y@O+=+BVE66)QE74Y!H FHHHH`**** "BBB@`HHHH`**** "BBB@`HHHH
M`**** "BBB@`HHHH`**** "BBB@`HHHH`**** "BBB@`HHHH`**** "BBB@`
MHHHH`**** "BBB@`HHHH`**** "BBB@`HK(NM?MTG:UL(WU"['6*#D+_`+S]
M%J+^RK_4_FUFZ\N$_P#+G:L54CT9^K?08% $MUK]ND[6MA&^H78ZQ0<A?]Y^
MBU%_95_J?S:S=>7"?^7.U8JI'HS]6^@P*UK6UM[.!8;6%(8EZ*BX%34`0VMK
M;V<"PVL*0Q+T5%P*FHHH`**** "BBB@`HHHH`**** "L.ZTNXT^X>^T/:&<[
MIK-CB.;W']UO?H>];E% %'2]4M]3B9H=R2QG;+#(,/&WH15ZLO5-'6[E6\M)
M3:ZA&,).H^\/[KC^):;INL-+<?8-1B%KJ"C.S/R2C^\A[CVZB@#6HHHH`***
M* "BBB@`HHHH`**** "BBB@`HHHH`**** "BBB@`HHHH`**** "BBB@`HHHH
M`**** "BBB@`HHHH`**** "BBB@`HHHH`**** "BBB@`HK(NM?MTG:UL(WU"
M['6*#D+_`+S]%J+^RK_4_FUFZ\N$_P#+G:L54CT9^K?08% $MUK]ND[6MA&^
MH78ZQ0<A?]Y^BU%_95_J?S:S=>7"?^7.U8JI'HS]6^@P*UK6UM[.!8;6%(8E
MZ*BX%34`0VMK;V<"PVL*0Q+T5%P*FHHH`**** "BBB@`HHHH`**** "BBB@`
MHHHH`**** "J>I:;;:G;^3<H3@[D=3AXV[,I[&KE% &##J-SH\R6FM-O@8[8
M;\#"MZ+)_=;WZ&MT<C(IDT,=Q"\4T:R1N,,K#((K"\N[\-\PB2\TD=8_O2VP
M_P!G^\OMU% '0T5#:W,%Y;I<6TJRQ.,JZG(-34 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 45Y]X]\4,LO]E:?*5,; SR*><CD*/IW_+UK6T47'BK3DN]0OC]
MG)*M:6V8P2.N]NISUP,#F@#4NM?MTG:UL(WU"['6*#D+_O/T6HO[*O\`4_FU
MFZ\N$_\`+G:L54CT9^K?08%:UK:V]G L-K"D,2]%1<"IJ (;6UM[.!8;6%(8
MEZ*BX%3444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110!AW6EW&GW#WVA[0SG=-9L<1S>X_NM[]#WJ]I>J6^IQ,T.Y)8SME
MAD&'C;T(J]7)>.(KB..*ZTNSN3?'*M<6P.53'(;'7V],9H ZJ.6.9-\3JZY(
MRIR,@X/ZBGUP/PWU-XVN-'N=RL/WL088/^T/Y'\Z[Z@`HHHH`**** "BBB@`
MHHHH`**** "BBB@`HHHH`**** "BBB@`HHHH`**** "BBB@`HHHH`I:IJ46F
MP*[(TLLC;(84^](Q[#_'M6>NDW^I?O-8O9(T;I:6CE$4>C,.6_04:6O]I:W>
M:G)AH[=C:VH[`#[[?4GC/H*W: ,8>%-#[Z=$Q]6)8_F32_\`"*Z%_P! R#\C
M6Q10!C_\(KH7_0,@_(T?\(KH7_0,@_(UL5FWVOZ3I\ACN[^&.0=4SN8?4#D4
M`0_\(KH7_0,@_(T?\(KH7_0,@_(U9L-:TW4FVV5[#*_]P-AOR/-7Z ,?_A%=
M"_Z!D'Y&D/A70_\`H&PCW7(/Y@ULT4 83:)=6'[S1+Z6/;_R[7+&2)AZ#/*_
M4&KFDZHNH++')$UO=P';/ YR4/8@]P>QK1K"\0*+"YM=;C^4P.(KC'\<+'!S
M]"01^- &[1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !63J
M.J3+=C3M,B6>^*AG+G]W`I[O_0#DU=U"[2PL+B[D^[#&SD>N!TJGX>LFM=.$
MMQ\UW='S[AB.2S<X^@''X4 0+X<2X^?5[RXOY#R5+F.,'V1<?KFGCPIH0&/[
M,@_(ULT4`8__``BNA?\`0,@_(T?\(KH7_0,@_(UL44 8_P#PBNA?] R#\C1_
MPBNA?] R#\C6Q10!C_\`"*Z%_P! R#\C1_PBNA?]`R#\C6Q10!BGPIHO\%D(
MF[-$[(1^(-1/#JNBCS;::74[->7@F.9E'<JW\7T-;]% $%E>07]I'=6SAXI!
ME2/\]:GK"ME&E>)9+5/EM=11IT7LLJXW@?4$'\*W: "BBB@`HHHH`**** "B
MBB@`HHHH`**** "BBB@`HHHH`**** "BBB@#%\(\^'8'/5WE8_4R-6U6+X/_
M`.1:M?K)_P"C&K:H`**** .=\;ZO+I&A%K9]D\[B)&'51@DD?@/UK+\,>"[!
M],BO-4C-S/<*)-I8A5!Y'0\G_&NSDC25=LB*Z^C#(IRJ%4*H``& !VH`X#Q?
MX5MM*LAJVC[[9[=E+*KG'7 ()Y!SBNK\,ZD^K:#:WDN/-=2'(&,L#@G]*YOX
M@:VLD0T.RS+<2LOFA.<<Y"_4G%=+X;TUM)T*ULY,>8BY?!S\Q.3_`#H`U***
M* "LKQ2H;PSJ(/\`SP8_I6K67XG_`.1:U+_KW?\`E0!?M6+VL+'J44G\JEJ&
MS_X\H/\`KFO\JFH`****`"BBB@`HHHH`****`"BBB@`HHHH`****`"BBB@#&
M\7#=X;NE[,44_0NHK9K'\6?\B]<?[\7_`*,6MB@`HHHH`***Q_$%IK-T(/[&
MO8K4KN\TN,[NF.Q]Z *?B/5;RQU_1;6VE"0W4NV5=H.X;E'4CCJ:Z2O,-=L?
M$$.M:3'?:E#-=228MY%'$9RO)^4=\>O2NDLM,\6QWL#W6L6\MNLBF1 .67/(
M^YZ4`=71110`4444`8NM?+K6AL.OVAU_`QMFMJL76_\`D+Z'_P!?+?\`HMJV
MJ "BBB@`HHHH`**** "BBB@`HHHH`**** "BBB@`HHHH`**** "BBB@#%\'_
M`/(M6OUD_P#1C5M5B^#_`/D6K7ZR?^C&K:H`****`"N+\3>+W6<Z5H0,UX[;
M&D09VGT7U/OV_E:\?ZU)I>E);VS;9[LE=P/*J.I'OR!7*^%?$&C:# 9);2XF
MO7SNE"KA1Z+S0!U/A3PBNED7^HD3:@V3R=PCS[]V]ZZNN,_X61IG_/G=_DO^
M-='HFK0ZWIZWEO'(B%BNU\9X^E &A1110 5E^)_^1:U+_KW?^5:E9?B?_D6M
M2_Z]W_E0!>L_^/*#_KFO\JFJ&S_X\H/^N:_RJ:@`HHHH`**** "BBB@`HHHH
M`**** "BBB@`HHHH`**** ,?Q9_R+UQ_OQ?^C%K8K'\6?\B]<?[\7_HQ:V*
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
G,C_@3T_#% $.BV=P]Q-JVHILN[A0B1?\\(@<A?J>I]Z*V:* /__9
`
end


Loading