[Gambas-user] Custom Eval (was Re: The new Border class)

Fabien Bodard gambas.fr at ...626...
Sun Feb 8 14:45:16 CET 2015


???
If I summarize  what i see I can answer :

iResult = MyCol[eval(eval("Sum_of_Value_page_" & CStr(Page_Nr), myCol)]

or simply

iResult = MyCol["Sum_of_Value_page_" & CStr(MyCol["Page_Nr"])]

Well if you have a point where you fill myCol so no need to store :

iResult = MyCol["Sum_of_Value_page_" & iPage]


BUT ... I'm not sure it was the goal of your query, so please be more
precise or give an example. :-)

2015-02-07 22:41 GMT+01:00 Charlie Reinl <Karl.Reinl at ...9...>:
> Am Montag, den 05.01.2015, 22:16 +0100 schrieb Fabien Bodard:
>> 2015-01-05 22:02 GMT+01:00 Benoît Minisini <gambas at ...1...>:
>> > Le 05/01/2015 21:46, Fabien Bodard a écrit :
>> >>> What do you mean?
>> >>>
>> >>> --
>> >>> Benoît Minisini
>> >>
>> >> I think about a tool that will be able to interpret inline formulas
>> >> like in a spreedsheet.
>> >>
>> >> i have done something like that for playing myself but i'm not a
>> >> specialist of interpreters like you.
>> >>
>> >> for example :
>> >>
>> >> =Myvar1 + 3 *(3*myvar2)
>> >> =MYFUNCTION(myvar1; myvar2) + MyVar3
>> >>
>> >> the function can be initialised for example like
>> >>
>> >> Interpret.Function.Add("MYFunction", nbreArgs, typeRetVal)
>> >>
>> >> And will call Public Sub Interpret_MyFunction(Arg1 as variant, arg2 as
>> >> variant,...) as variant
>> >>
>> >> A Special Event will query the vars values : Public Sub
>> >> Interpret_GetVar(sVarName as string) as Variant
>> >>
>> >> All the stuff of the interpreter will be to manage conditionnal
>> >> requirement and calculate values  or concatenate strings. So this tool
>> >> will be usefull for user level programmation.
>> >> Like in spreadsheet or in reports formulas. It can be extended near to
>> >> unlimited. Some functions can be hardcoded like mathematical ones.
>> >> Others are depend of the context so must be implemented for each
>> >> widget or component. It's not the fastest way to make compute but the
>> >> most flexible.
>> >>
>> >> I hope my english is not inapprehensible
>> >>
>> >
>> > If I understand well, you need some sort of custom Eval().
>> >
>> > More precisely, I think what you need is a Gambas hook inside the reader
>> > part of Eval() (the first part of its internal compiler) where you tell
>> > how to translate any symbol into a Gambas function or a call to a method
>> > into one of your classes, everything else being forbidden.
>> >
>> > That way, you keep the Gambas syntax, except that all function names are
>> > redefined, and every interpreter class is forbidden except the one you
>> > allow explicitly.
>>
>> Yes it can be the idea. But can it be compatible with 'STANDARD'
>> formulas style too ? were separtors are ';'...
>>
>> But your idea will be a great step too and i think you have understand
>> the back of my mind.
>>
>>
>>
>> >
>> > Just an idea...
>> >
>> > --
>> > Benoît Minisini
>
> Salut Benoît,
>
> searching something for my problem, I found this mail. What I need is
> something you describe as "Gambas hook inside the reader part of
> Eval()".
> In my Collection passed to eval, I have "Sum_of_Value_page_1" to
> "Sum_of_Value_page_35"  and the "Page_Nr". Now for picking the right
> value I need the eval("Sum_of_Value_page_" & CStr(Page_Nr), myCol).
> Done like that, I get "Sum_of_Value_page_1" to "Sum_of_Value_page_35" as
> return. That is nice, but I want the result of that, stored in myCol.
>
> Thought I could resolve that with a public function called by eval
> failed also.
> "Public Function Sum(sFiledName as string) as Variant" isn't called.
>
> So I need that what you call "Gambas hook inside the reader part of
> Eval()".... Or something that works like I know from Clipper, called
> Code-Blocks. Search I-net for "clipper code blocks"
>
>
>
>
> --
> Amicalement
> Charlie
>
>
> ------------------------------------------------------------------------------
> Dive into the World of Parallel Programming. The Go Parallel Website,
> sponsored by Intel and developed in partnership with Slashdot Media, is your
> hub for all things parallel software development, from weekly thought
> leadership blogs to news, videos, case studies, tutorials and more. Take a
> look and join the conversation now. http://goparallel.sourceforge.net/
> _______________________________________________
> Gambas-user mailing list
> Gambas-user at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/gambas-user



-- 
Fabien Bodard




More information about the User mailing list