Hi,

In revision #7545, it is now possible to inherit the Expression class to 
customize the expression evaluator.

It works that way:

' Gambas class file

Inherits Expression

Static Public Sub IsIdentifier(Name As String) As Boolean

   ' Return if 'Name' is an allowed identifier.

End

Static Public Sub IsSubr(Name As String) As Boolean

   ' Return if a the 'Name' Gambas subroutine is allowed.

End

Public Sub GetValue(Name As String) As Variant

   Return the value of the 'Name' identifier.

End

Public Sub MySubr(iVal As Integer) As Integer

  ' Example of a custom subroutine. The "MySubr" identifier
  ' must be allowed by the IsIdentifier() method.

End

It's mainly a present for Fabien so that he can write a simpler 
evaluator for the gb.report2 component, but it may be helpful for other 
people that need a custom evaluator.

It's not possible to disable Gambas operators or reimplement their 
behaviour, and I don't think I would allow that.

But if you have other customization needs, you can tell!

Note : you can now evaluate an expression or call Eval() recursively, 
and it should work. But it is not well tested and may crash.

Regards,

-- 
Benoît Minisini

------------------------------------------------------------------------------
_______________________________________________
Gambas-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/gambas-user

Reply via email to