And then, for a heavyweight experience, we have the virtually unusable and wholly undocumented (and thus useless) BCScript and BCEval:
D:\VBPROJ\VB\BASeParser\bceval>bceval Sqr(12-14*2)+23
parsed Expression Sqr(12-14*2)+23
result:
23 + 4i
D:\VBPROJ\VB\BASeParser\bceval>BCeval {1,2,3}*{4,5,6}
parsed Expression {1,2,3}*{4,5,6}
result:
{{4,5,6},{8,10,12},{12,15,18}}
D:\VBPROJ\VB\BASeParser\bceval>BCeval ({1,2,3}*{4,5,6})*2
parsed Expression ({1,2,3}*{4,5,6})*2
result:
{{8,10,12},{16,20,24},{24,30,36}}
D:\VBPROJ\VB\BASeParser\bceval>BCeval ({1,2,3}*{4,5,6})*i
parsed Expression ({1,2,3}*{4,5,6})*i
result:
!Error #438("Object doesn't support this property or method in op *")!
D:\VBPROJ\VB\BASeParser\bceval>
Note that the last one, multiplying an Array (list) by imaginary number i fails. I thought about it and it's because I didn't implement that yet.
I also need to make it's output batch-friendly. I've only reaffirmed to myself that I NEED documentation on the functions and operators and so forth in the Evaluator. I forgot the syntax for my SEQ() and SEQEX() functions...