Skip to content

cantry100/YLYExpParser

Repository files navigation

描述

纯C#实现的表达式解析器,包含词法和语法解析器,玩得开心~

特性

  • 支持常见的分隔符:

    ,;()[]{}

  • 支持常见的运算符:

    • 算术运算符:

      • 二元运算符:

        +-*/%

      • 一元运算符:

        ++

        --

    • 关系运算符:

      >

      <

      ==

      !=

      >=

      <=

    • 逻辑运算符:

      !

      &&

      ||

    • 位运算符:

      <<

      >>

      ~

      |

      ^

      &

    • 赋值运算符:

      =

      +=

      -=

      *=

      /=

      %=

      &=

      |=

      ^=

  • 支持常见的数值类型:

    bool,int,float,double,string

  • 支持常见的基础函数:

    abs,floor,ceil,cos,sin,tan,acos,asin,atan,log,max,min,round,random,print,printf,ifelse

  • 支持的保留字:

    false,true

  • 支持自定义变量和函数

  • 性能优越,支持字符串缓存,避免gc

代码示例

ExpEnv expEnv = new ExpEnv();
ExpIdentifierProvider identifierProvider = new ExpIdentifierProvider();
identifierProvider.RegVarGetter("ctrl", (System.Object userData, ref TValue returnValue) => {
    returnValue.SetFloat(1);
});
string sourceCode = "max(1 + 2 * ctrl, 1)";
TValue resultTv = expEnv.RunExp(sourceCode, identifierProvider);

示例

微信截图_20250828120523

About

表达式解析器

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages