What about treating the return type of the python expression as object then 
coerce the object into the type required by the database?  If the coercion 
fails, then that could be treated as a type error.

For example, after using python to evaluate the expression '2+(4*5)', the 
returned object could be converted to an integer using System.Convert.ToInt32() 
or to a string with System.Convert.ToString().  System.Convert throws 
InvalidCastException for those cases that cannot be converted.


-----Original Message-----
From: users-boun...@lists.ironpython.com 
[mailto:users-boun...@lists.ironpython.com] On Behalf Of Michael Foord
Sent: Monday, October 19, 2009 4:21 AM
To: Discussion of IronPython
Subject: Re: [IronPython] Type analysis of expression

Christian Schmidt wrote:
> Hello,
>
> we are using IronPython embedded into our application to evaluate user
> defined expression. The "variables" used in the expressions are strongly
> typed and the results need to be written back into a database.
>
> I know that the return type of a dynamic expression cannot be determined
> in general. But what would be a pragmatic way to guess the return type
> of an expression?

Hehe. If you're evaluating arbitrary functions provided by the user then 
I don't know of any way of 'inferring' the return type - beyond parsing 
it and modelling the type flow through the expression (which would be a 
lot of work).

All the best,

Michael
>
> Thanks,
> Christian
>
>
>
> _______________________________________________
> Users mailing list
> Users@lists.ironpython.com
> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com


-- 
http://www.ironpythoninaction.com/
http://www.voidspace.org.uk/blog


_______________________________________________
Users mailing list
Users@lists.ironpython.com
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
_______________________________________________
Users mailing list
Users@lists.ironpython.com
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com

Reply via email to