查询过滤器表达式树的解析器

2024-02-01

我正在寻找一个可以对查询过滤器进行操作的解析器。然而,我不太清楚这些术语,所以事实证明这是一项艰苦的工作。我希望有人能帮助我。我读过有关“递归下降解析器”的内容,但我想知道这些是否适用于成熟的语言解析器,而不是我正在寻找的逻辑表达式评估。

理想情况下,我正在寻找 .NET 代码 (C#),但也在寻找可在 T-SQL 中工作的类似解析器。

我想要的是要解析的东西,例如:

((a=b)|(e=1))&(c

理想情况下,运算符可以是可定义的(例如 '

最好是解析器询问最少数量的问题来计算出最终结果 - 例如如果 AND 的一侧为假,则没有必要评估另一侧,并首先评估最简单的一侧(即在上面的表达式中,应假定 'c

我可以想象这需要做很多工作,但是却很常见。谁能给我任何指示吗?如果没有像上面那样灵活的解析器,是否有任何基本解析器可以作为开始使用?

非常感谢

Lee


看一眼this http://www.codeproject.com/KB/recipes/sota_expression_evaluator.aspx。 ANTLR 是一个很好的解析器生成器,链接到的文章有工作代码,您可以根据您的需要进行调整。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

查询过滤器表达式树的解析器 的相关文章

  • “构建”构建我的项目,“构建解决方案”则不构建

    我刚刚开始使用VS2010 我有一个较大的解决方案 已从 VS2008 成功迁移 我已将一个名为 Test 的控制台应用程序项目添加到解决方案中 选择构建 gt 构建解决方案不编译新项目 选择构建 gt 构建测试确实构建了项目 在失败的情况
  • Web 客户端和 Expect100Continue

    使用 WebClient C NET 时设置 Expect100Continue 的最佳方法是什么 我有下面的代码 我仍然在标题中看到 100 continue 愚蠢的 apache 仍然抱怨 505 错误 string url http
  • 按成员序列化

    我已经实现了template
  • 用于检查类是否具有运算符/成员的 C++ 类型特征[重复]

    这个问题在这里已经有答案了 可能的重复 是否可以编写一个 C 模板来检查函数是否存在 https stackoverflow com questions 257288 is it possible to write a c template
  • 类模板参数推导 - clang 和 gcc 不同

    下面的代码使用 gcc 编译 但不使用 clang 编译 https godbolt org z ttqGuL template
  • 关于 C++ 转换:参数 1 从“[some_class]”到“[some_class]&”没有已知的转换

    我正在研究 C 并且遇到了一个错误 我不知道确切的原因 我已经找到了解决方案 但仍然想知道原因 class Base public void something Base b int main Base b b something Base
  • 不同枚举类型的范围和可转换性

    在什么条件下可以从一种枚举类型转换为另一种枚举类型 让我们考虑以下代码 include
  • 将 VSIX 功能添加到 C# 类库

    我有一个现有的单文件生成器 位于 C 类库中 如何将 VSIX 项目级功能添加到此项目 最终目标是编译我的类库项目并获得 VSIX 我实际上是在回答我自己的问题 这与Visual Studio 2017 中的单文件生成器更改 https s
  • C# 中通过 Process.Kill() 终止的进程的退出代码

    如果在我的 C 应用程序中 我正在创建一个可以正常终止或开始行为异常的子进程 在这种情况下 我通过调用 Process Kill 来终止它 但是 我想知道该进程是否已退出通常情况下 我知道我可以获得终止进程的错误代码 但是正常的退出代码是什
  • C#中如何移动PictureBox?

    我已经使用此代码来移动图片框pictureBox MouseMove event pictureBox Location new System Drawing Point e Location 但是当我尝试执行时 图片框闪烁并且无法识别确切
  • C++ OpenSSL 导出私钥

    到目前为止 我成功地使用了 SSL 但遇到了令人困惑的障碍 我生成了 RSA 密钥对 之前使用 PEM write bio RSAPrivateKey 来导出它们 然而 手册页声称该格式已经过时 实际上它看起来与通常的 PEM 格式不同 相
  • 显示UnityWebRequest的进度

    我正在尝试使用下载 assetbundle统一网络请求 https docs unity3d com ScriptReference Networking UnityWebRequest GetAssetBundle html并显示进度 根
  • cmake 将标头包含到每个源文件中

    其实我有一个简单的问题 但找不到答案 也许你可以给我指一个副本 所以 问题是 是否可以告诉 cmake 指示编译器在每个源文件的开头自动包含一些头文件 这样就不需要放置 include foo h 了 谢谢 CMake 没有针对此特定用例的
  • C# 成员变量继承

    我对 C 有点陌生 但我在编程方面有相当广泛的背景 我想做的事情 为游戏定义不同的 MapTiles 我已经像这样定义了 MapTile 基类 public class MapTile public Texture2D texture pu
  • 混合 ExecutionContext.SuppressFlow 和任务时 AsyncLocal.Value 出现意外值

    在应用程序中 由于 AsyncLocal 的错误 意外值 我遇到了奇怪的行为 尽管我抑制了执行上下文的流程 但 AsyncLocal Value 属性有时不会在新生成的任务的执行范围内重置 下面我创建了一个最小的可重现示例来演示该问题 pr
  • 测试用例执行完成后,无论是否通过,如何将测试用例结果保存在变量中?

    我正在使用 NUNIT 在 Visual Studio 中使用 Selenium WebDriver 测试用例的代码是 我想在执行测试用例后立即在变量中记录测试用例通过或失败的情况 我怎样才能实现这一点 NUnit 假设您使用 NUnit
  • 是否可以在 .NET Core 中将 gRPC 与 HTTP/1.1 结合使用?

    我有两个网络服务 gRPC 客户端和 gRPC 服务器 服务器是用 NET Core编写的 然而 客户端是托管在 IIS 8 5 上的 NET Framework 4 7 2 Web 应用程序 所以它只支持HTTP 1 1 https le
  • C# 模拟VolumeMute按下

    我得到以下代码来模拟音量静音按键 DllImport coredll dll SetLastError true static extern void keybd event byte bVk byte bScan int dwFlags
  • IEnumreable 动态和 lambda

    我想在 a 上使用 lambda 表达式IEnumerable
  • 使用.NET技术录制屏幕视频[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有没有一种方法可以使用 NET 技术来录制屏幕 无论是桌面还是窗口 我的目标是免费的 我喜欢小型 低

随机推荐

  • 如何将具有像 ResNet 这样的非序列架构的 Keras 模型拆分为子模型?

    我的模型是 resnet 152 我想将其切成两个子模型 问题是第二个子模型 我不知道如何构建从中间层到输出的模型 我尝试了这段代码这个回应 https stackoverflow com questions 52800025 keras
  • 元组列表的列表,按第一个元素分组并添加第二个元素

    假设我有以下元组列表 tuples 2017 04 11 2000000 00 2017 04 12 1000000 00 2017 04 13 3000000 00 2017 04 12 472943 00 2017 04 13 1000
  • JavaScript 浮点好奇心

    我尝试进行一些浮点比较 这是我发现的 130 130 000000000000014210854715 true 130 130 000000000000014210854716 false 9 9 00000000000000088817
  • 我可以在猫鼬聚合之前使用填充吗?

    我有两种模型 一种是用户 userSchema new Schema userID String age Number 另一个是所有用户每天多次记录的分数 ScoreSchema new Schema userID type String
  • C++中继承私有成员

    假设一个类具有私有数据成员 但 setter 和 getter 位于公共范围内 如果从此类继承 您仍然可以调用这些 setter 和 getter 从而能够访问基类中的私有数据成员 既然提到派生类不能继承私有数据成员 这怎么可能 派生类不继
  • 将多个变量传递给内容脚本 chrome

    我正在编写我的第一个 chrome 扩展 几个小时前才开始 当硬编码时一切都运行良好 本质上 我正在填写一份 8 页的表格 表单的每个页面对应一个单独的内容脚本 内容脚本过去看起来像这样 查找字段有点困难 因为它们不是标准的 但我并不担心
  • 按照惯例,Java .class 文件存储在哪里?

    我有一个 Java src 文件夹 在其中存储 java 文件 然后 我使用终端编译它们 并最终在同一目录中获取 class 文件 这不一定会困扰我 但我从未见过专业人士这样做过 按照专业惯例 如果存在 应将编译后的 class 文件存储在
  • 如何在flutter中实现自定义对话框?

    我是 flutter 新手 需要创建一个图库应用程序 该应用程序需要自定义对话框来显示所选图像 我怎样才能实现呢 使用 Flutter 中 AlertDialog 类的父类 Dialog 类 对话框小部件有一个参数 shape 您可以使用它
  • MATLAB - 具有布尔值的棘手颂歌系统

    编辑 感谢您的支持 现在我终于添加了图像 添加了完整的 m file 尽管我认为没有必要 代码的关键是 xp 2 x 2 gt X2 xp 3 gt 0 xp 3 x 3 gt X3 xp 2 gt 0 完整代码 function xp u
  • Guice的injectMembers方法

    我了解使用构造函数注入相对于 setter 注入的好处 但在某些情况下我必须坚持仅使用基于 setter 的注入 我的问题是如何使用注入所有基于设置器的注入类的成员injector injectMembers method I am cal
  • getGenericParameterTypes 和 getParameterTypes 之间的区别

    我正在尝试了解之间的区别getGenericParameterTypes and getParameterTypes方法 我知道有人回来了Class 和另一个Type 但真正的区别是什么 考虑方法 public void method1 T
  • Git克隆存储库错误:RPC失败;结果=56,HTTP 代码=200

    我已经使用 Git 存储库几年了 但仍然感觉像个新手 非常欢迎帮助 它开始克隆一段时间 remote Counting objects 22394 br remote Compressing objects 100 12314 12314
  • iconv 返回奇怪的结果

    我正在研究一种方法来解决在 PHP 中创建帐户的自动脚本中使用特殊字符的问题 由于电子邮件地址和其他地方不需要特殊字符 因此我试图删除它们 但在将它们提供给脚本之前我无法删除它们 因为用户名必须正确显示给其他用户 例子 J rgen G t
  • scala 类中属性的可见性

    我通过以下方式在类的构造函数中定义了一个属性 class Step val message String 当我尝试访问时message从 Java 代码中获取可见性错误的值 为什么 如果添加 scala reflect BeanProper
  • 块递归和破坏保留周期

    为了更好地说明问题 请考虑以下块递归的简化形式 block void next int int index if index 3 return int i index next i next 0 XCode 启用 ARC 警告 在此块中强烈
  • 在 TypeScript 中输入 gql-tag

    我正在使用 GraphQL 并且希望严格输入gql 是否有可能使result变量的形状ResultData即使用最新版本的 TypeScript 它只与输入有关 与运行时无关 interface Data one string two nu
  • iOS 中的应用内购买测试

    我在用Xcode 8 0 斯威夫特 3 0并在我的 iPad 上进行应用程序购买测试 我想使用沙盒用户测试应用程序购买 设备设置中没有添加账户 问题是我没有获取产品列表来响应产品请求代码 请看一下我的代码 let PRODUCT ID MY
  • 使用大括号括起来的初始值设定项列表初始化结构时出错

    struct CLICKABLE int x int y BITMAP alt BITMAP bitmap CLICKABLE alt 0 CLICKABLE input 1 2 0 0 这段代码给我以下错误 无法从大括号括起来的初始值设定
  • 将表格放置在浮动图像旁边

    我想将表格放置在浮动图像旁边 同时保持表格宽度为 100 并且不会溢出父元素的宽度 我尝试了各种技术 但尚未达到我想要的结果 我的意思是 http jsfiddle net AX3UR 3 http jsfiddle net AX3UR 3
  • 查询过滤器表达式树的解析器

    我正在寻找一个可以对查询过滤器进行操作的解析器 然而 我不太清楚这些术语 所以事实证明这是一项艰苦的工作 我希望有人能帮助我 我读过有关 递归下降解析器 的内容 但我想知道这些是否适用于成熟的语言解析器 而不是我正在寻找的逻辑表达式评估 理