Recent

Author Topic: RunFormula: math expression parser and evaluator  (Read 550 times)

stormray

  • Newbie
  • Posts: 2
RunFormula: math expression parser and evaluator
« on: April 15, 2026, 01:16:24 pm »
Hello!

I would like to announce you RunFormula, my math expression parser and scripting engine for FreePascal and Lazarus.

Key features:

Supported
    integers in decimal, hexadecimal and binary formats;
    floating-point numbers in decimal and scientific notation;
    complex numbers and operations on them;
    intervals and operations on them;
    strings and ASCII characters;

Arithmetic and logical operations: + - * / or and xor not shl (<<) shr (>>) mod (%) div == <> < <= >= > & (string concatenation) ** (integer exponentiation).
Variables and runtime initialization of variables via external callback function.
A set of built-in functions and the ability to register and use additional user-defined functions.
Control flow functions: if() repeat() exit() result() continue() break()
Ability to use inline function definitions directly within the formula (subroutines).
Support for the define directive.
Compiling the source formula into bytecode for multiple execution.
Minimal dependencies (only SysUtils in the base configuration).

Source code, Demo project, Help, Examples on GitHub:

https://github.com/runnfla/RunFormula

Any feedback are appreciated.
« Last Edit: May 09, 2026, 02:55:34 pm by stormray »

Handoko

  • Hero Member
  • *****
  • Posts: 5537
  • My goal: build my own game engine using Lazarus
Re: RunFormula: math expression parser and evaluator
« Reply #1 on: April 15, 2026, 01:24:30 pm »
Hello stormray,
Welcome to the forum.

Nice, I like. I may need it someday, bookmarked.
Thank you for sharing it.

stormray

  • Newbie
  • Posts: 2
Re: RunFormula: math expression parser and evaluator
« Reply #2 on: May 09, 2026, 03:05:54 pm »
Version 0.0 is released. Added experimental support for physical dimensions, including unit consistency checks, automatic result dimensioning and automatic conversion between unit systems.

LeP

  • Sr. Member
  • ****
  • Posts: 294
Re: RunFormula: math expression parser and evaluator
« Reply #3 on: May 09, 2026, 03:39:53 pm »
I just want to make a note: when generating commits, give them a meaningful name that helps understand the story (not a generic UPD)
Un Sistema per domarli, un IDE per trovarli, un codice per ghermirli e nel framework incatenarli.
An operating system to tame them, an IDE to find them, a code to catch them and in the framework chain them.

valdir.marcos

  • Hero Member
  • *****
  • Posts: 1263
Re: RunFormula: math expression parser and evaluator
« Reply #4 on: May 10, 2026, 10:49:20 pm »
Hello!

I would like to announce you RunFormula, my math expression parser and scripting engine for FreePascal and Lazarus.

Key features:

Supported
    integers in decimal, hexadecimal and binary formats;
    floating-point numbers in decimal and scientific notation;
    complex numbers and operations on them;
    intervals and operations on them;
    strings and ASCII characters;

Arithmetic and logical operations: + - * / or and xor not shl (<<) shr (>>) mod (%) div == <> < <= >= > & (string concatenation) ** (integer exponentiation).
Variables and runtime initialization of variables via external callback function.
A set of built-in functions and the ability to register and use additional user-defined functions.
Control flow functions: if() repeat() exit() result() continue() break()
Ability to use inline function definitions directly within the formula (subroutines).
Support for the define directive.
Compiling the source formula into bytecode for multiple execution.
Minimal dependencies (only SysUtils in the base configuration).

Source code, Demo project, Help, Examples on GitHub:

https://github.com/runnfla/RunFormula

Any feedback are appreciated.


Version 0.0 is released. Added experimental support for physical dimensions, including unit consistency checks, automatic result dimensioning and automatic conversion between unit systems.

Welcome to the forum.

Interesting. Thanks for sharing.

 

TinyPortal © 2005-2018