<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          YACEP輕量級高性能表達式解析器

          聯(lián)合創(chuàng)作 · 2023-10-02 05:44

          YACEP : yet another csharp expression parser

          YACEP是一款基于netstandard2.0構建的輕量級高性能表達式解析器

          特性:

          • 開箱即用,內置了一系列的字面值, 一元及二元操作符以及內置的統(tǒng)計類與時間類函數可滿足大部分使用場景
          • 跨平臺,基于netstandard2.0標準構建
          • 輕量級,只有500多行代碼實現的輕量級詞法分析器
          • 低消耗,詞法分析器使用 ReadOnlySpan 解析字符串
          • 高性能,使用EMIT命名空間生成IL來構建可執(zhí)行對象(查看基準測試報告)
          • 支持條件表達式
          • 支持索引器
          • 支持 in 表達式
          • 支持自定義字面量
          • 支持自定義一元操作符
          • 支持自定義二元操作符
          • 支持自定義函數

          樣例代碼 :

          var state = new	
          {	
              x = 7,
              y = 43.0f,
              z = new Dictionary<string, string>	
              {	
                  ["yacep"] = "yet another csharp expression parser",	
                  ["tupac-amaru"] = "was the last indigenous monarch (Sapa Inca) of the Neo-Inca State"	
              },	
              rand = new Func<object>(() => new Random().Next(1, 3)),	
              array = Enumerable.Range(1971, 1996 - 1971)	
          };	
          var expr = "x + y - z['yacep'].Length + max([1, 2, 3]) + (this.rand() > 2 ? 1971 : 1996) - len(array)";	
          var evaluator = expr.Compile();	
          var value = evaluator.EvaluateAs<decimal>(state); 

           

          瀏覽 19
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          編輯 分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          編輯 分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  青青激情视频 | 蜜芽av在线播放 免费成人性爱网站 | 日本亚洲黄色 | 人人操人人操人人操 | 翔田千里無碼破解 |