C# 5.0 EBNF 语法

2024-01-14

我正在寻找 5.0 版编程语言 C# 的 EBNF 语法。这个语法应该是机器可读的,所以我可以用这个 EBNF 语法做一些处理

直到现在我才发现Visual Studio的安装中包含了C#的语言规范文档(%PROGRAMFILES(x86)%\Microsoft Visual Studio 12.0\VC#\Specifications\1033)本文档已包含嵌入文档中的 BNF 语法。然而,这只是 BNF 语法而不是 EBNF,并且它嵌入在 *.docx 文档中,没有单独的文件,这意味着它对我来说还不够。

此外,我还找到了这些资源:

  • MSDN 博客 http://blogs.msdn.com/b/lucian/archive/2010/04/19/grammar.aspx:这是 C# 4.0 版本的 EBNF 语法
  • slps.github.io http://slps.github.io/zoo/#Cs_4.0:这包含提取的 C# 版本 4.0 的 BNF 语法

所以这些资源对于我的项目来说是不够的。您知道 C# 5.0 的完整 EBNF 语法吗?


我知道您正在寻找 C# 5.0 语法,但是有一个ANTLRc# 6.0 的语法位于github https://github.com/antlr/grammars-v4/tree/master/csharp. ANTLR使用一种 EBNF 表示法,可以由计算机解析。如果您希望 ANTLR 允许您从该语法生成​​ C# 解析器。由于 C# 6.0 是 C# 5.0 的超集,因此版本差异应该不重要。

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

C# 5.0 EBNF 语法 的相关文章

  • C#中如何检测字符串是否为货币

    通常当我需要转换时currency string 如 1200 55 z 或 1 249 到十进制值我这样做 if currencyString Contains z decimal value Decimal Parse dataToCh
  • 如何从当前 .NET 表单/应用程序发送密钥 F12

    我非常确定以下按钮激活的表单代码应该在我的 C 应用程序中引发 Control F12 SendKeys F12 但它似乎并没有继续进入 Windows shell 并激活另一个正在侦听它的程序 我的键盘可以用 看起来发送键在某处被拦截 并
  • .NET 可移植类库中的 .ToShortDateString 发生了什么

    我想知道为什么没有 ToShortDateString在 NET 可移植类库中 我有 2 个项目 Silverlight 和常规 NET 类库 使用相同的代码 并且代码涉及调用 ToShortDateString on a DateTime
  • 使用 VSTO 更改 Outlook 设置

    我刚刚花了大约 4 个小时试图弄清楚如何以编程方式检索 设置 Microsoft Outlook 2010 的 Outlook 设置 我所说的 设置 是指文件 选项 邮件下的设置 我想做的是检索用户设置的设置列表 自动化我们每天需要在某些消
  • C++ 在 Vector 中使用不可分配的对象

    我想将对象列表存储在std vector 但对象包含引用且无法分配给 但是 我可以复制构造该对象 我能想到的唯一选择是使用指针来包装对象并在需要分配指针时重新设置指针 但这样做的语法会显着降低可读性 特别是在使用迭代器时 我更喜欢另一种选择
  • glDrawElements 只绘制半个四边形

    这是我的功能 void Object draw2 if mIsInitialised return Tell OpenGL about our vertex and normal data glEnableClientState GL VE
  • 成员初始值设定项列表中的求值顺序是什么?

    我有一个带有一些参数的构造函数 我假设它们是按照列出的顺序初始化的 但在一种情况下 它们似乎是按相反的顺序初始化的 导致中止 当我反转参数时 程序停止中止 下面是我正在使用的语法的示例 a 之前需要初始化b 在这种情况下 你能保证这个初始化
  • 如何检测斑点并将其裁剪成 png 文件?

    我一直在开发一个网络应用程序 我陷入了一个有问题的问题 我会尝试解释我想要做什么 在这里您看到第一个大图像 其中有绿色形状 我想要做的是将这些形状裁剪成不同的 png 文件 并使它们的背景透明 就像大图像下面的示例裁剪图像一样 第一张图像将
  • _mm_max_ss 在 clang 和 gcc 之间有不同的行为

    我正在尝试使用 clang 和 gcc 交叉编译一个项目 但在使用时发现一些奇怪的差异 mm max ss e g m128 a mm set ss std numeric limits
  • 使用 Linq 进行异步Where过滤

    我有一个List通过填充的元素async调用 WebService 没问题 我需要过滤该列表以便在应用程序视图上显示某些内容 我试过这个 List
  • 为什么 C 函数不能返回数组类型?

    我是 C 语言新手 想知道 为什么 C 函数不能返回数组类型 我知道数组名是数组第一个值的地址 而数组是 C 中的二等公民 您自己已经回答了这个问题 数组是二等公民 C 按值返回 数组不能按值传递 因此不能返回它们 至于为什么数组不能按值传
  • 如何在 C++ 中使用 PI 常数

    我想在一些 C 程序中使用 PI 常数和三角函数 我得到三角函数include
  • 如何使用 Clang 查找内存泄漏

    我在我的机器 ubuntu 中安装了 Clang 以便发现我的 C 代码中的内存泄漏 我编写了一个示例代码来检查它的工作情况 如下所示 File hello c for leak detection include
  • OpenMP C 程序运行速度比顺序代码慢

    我是 OpenMP 的新手 正在尝试并行化 Jarvis 的算法 然而事实证明 与顺序代码相比 并行程序花费的时间要长 2 3 倍 难道问题本身就不能并行化吗 或者我并行化它的方式有问题 这是我针对该问题的 openMP 程序 其中有 2
  • C# - 为什么我需要初始化 [Out] 参数

    我有几个从本机 dll 导入的方法 使用以下语法 internal static class DllClass DllImport Example dll EntryPoint ExampleFunction public static e
  • 删除对象时指针自动指向空

    假设我有一个对象和其他几个不同类类型的对象中的 10 个指向它的指针 如果对象被删除 这些指针必须设置为空 通常我会将对象的类与具有指向它的指针的类互连 以便它可以通知它们它正在被删除 并且它们可以将它们的指针设置为空 但这也有一个负担 即
  • 有没有办法让 VS2010 在我的方法中扩展或收缩 try 块?

    我的代码有很多 try catch finally 块 与我在 VS2010 中的方法不同 除了添加区域之外 我无法在开发时扩展或收缩这些区域来隐藏内容 try vm R vm Qu vm T vm D vm Fil vm Type vm
  • C++0x 中的新 unicode 字符

    我正在构建一个 API 它允许我获取各种编码的字符串 包括 utf8 utf16 utf32 和 wchar t 根据操作系统 可能是 utf32 或 utf16 新的 C 标准引入了新类型char16 t and char32 t没有这么
  • ASP.NET Core:会话 ID 始终变化

    今天启动了一个全新的 ASP NET Core 网站 按照说明添加会话 我们在索引页上打印出会话 ID 它始终是唯一的 我认为这可能是 cookie 合规性 所以我在 Chrome 的高级设置和调试器中删除了所有 cookie 但横幅不会再
  • 当我读取 500MB FileStream 时出现 OutOfMemoryException

    我使用 Filestream 读取大文件 gt 500 MB 但出现 OutOfMemoryException 任何有关它的解决方案 我的代码是 using var fs3 new FileStream filePath2 FileMode

随机推荐

  • 为什么 CLOCKS_PER_SEC 不是每秒的实际时钟数?

    我刚刚编写了这个简短的 C 程序来近似每秒的实际时钟滴答数 include
  • 如何从react-firebase获取有效令牌以进行节点js服务器验证

    我有一个reactJS Web应用程序 我正在使用react redux firebase进行身份验证 并且它工作正常 现在我想添加一个自己的nodejs服务器 后面有一个小数据库 我读到我可以使用react webapp登录中的fireb
  • 有没有办法在 Puppeteer for Firefox 中使用代理?

    有没有办法将 Puppeteer 配置为在 Firefox 中使用代理 而无需手动调整操作系统的代理设置 我可以通过使用命令行参数在 Chrome 中完成此操作args proxy server http 0 0 0 0 0000 但是Fi
  • 使用 C# Web api 和备用内容类型

    我是 web api 的新手 我需要为客户端创建一个服务器 我无法控制客户 无法改变任何事情 客户端在 POST 正文中发送 html 封装的 json 请求 但是 内容类型可能会有所不同 我需要做什么才能让我的 ApiController
  • 单击按钮时如何播放 Web URL 中的声音文件

    我有这个声音文件http www example com sound mp3 如何使用媒体播放器在单击按钮时播放它 Example b setOnClickListener new View OnClickListener Override
  • 随机数的分布

    我有两个代码选项 Option 1 int myFunc return new Random nextInt Or Option 2 private static final Random random new Random int myF
  • 如何在用户控件可见后调用方法

    我用 C 创建了一个带有两个用户控件的 Windows 应用程序 当表单加载时 第一个用户控件被加载 并显示 当我单击 下一步 时 我加载第二个用户控件 现在 我希望在用户控件可见时调用该用户控件的方法 我做不到 如果我从 Load 事件调
  • 如何从二维数组构建图表?

    我正在尝试学习图结构和算法 从概念上讲 我理解 DFS BFS 并且我可以通过提供图来实现它们 但是图传统上是如何组成的 通常 我将它们视为以边为指针的节点列表 具有它们连接的节点的边列表或二维矩阵 其中两个 arr node a node
  • Windows 7 上的 .NET 源调试

    我们正在尝试通过调试SQL Server 紧凑型 http en wikipedia org wiki SQL Server Compact运行 Windows 7 Enterprise RTM 64 位 桌面上的问题 NET http e
  • 安装时如何检查我的产品是否已安装?

    我想在导入步骤中执行部分代码 前提是产品本身尚未安装 我尝试使用快速安装工具的 listInstalledProduct 方法 但是 这将返回所有已安装的产品 但不会返回我自己的产品 如何检查我的产品是否已安装在网站中 在 Anne Wal
  • 在 C# 中使用 Linq 中的内部查询创建列表

    我正在尝试使用 Linq 创建一个子列表 但不明白其中的错误 我不认为我做错了 但我认为其他人的眼睛会帮助我解决这个问题 var dataList File ReadAllLines inputFile dataList from line
  • Docker Swarm 无法与自定义覆盖网络上的其他节点通信

    我的集群中有4个节点 其中两个在香港 其他在美国 我在群中创建了 4 个服务 Service Location foo USA bar HK haha USA hehe HK 这些服务使用相同的覆盖网络 当我尝试时ping foo or p
  • 计算两个矩形之间的重叠面积

    我想计算红色和蓝色矩形之间的重叠区域 灰色区域 每个矩形由其四个角坐标定义 重叠面积的结果单位是单位正方形 我无法想象我该怎么做 任何有创意的评论将不胜感激 这种类型的交集很容易通过 最大值的最小值 和 最小值的最大值 的想法来完成 为了将
  • 将 byte[] 转换为数据 URI 的 Base64 字符串

    我知道这个问题可能已经被问过 10000 次了 但是 我似乎找不到这个问题的直接答案 我的数据库中存储了一个代表图像的 LOB 我从数据库获取该图像 我想通过 HTML IMG 标签将其显示在网页上 这不是我的首选解决方案 但在我找到更好的
  • 如何为具有动态应用程序 ID 的应用程序指定外部路径

    我在我的应用程序中使用 FileProvider 当我从应用程序中拍摄照片时存储在那里 我的应用程序也有一个不同的应用程序 ID 用于调试和发布版本 com rkmax myapp com rkmax myapp debug 我已经像这样定
  • @SpringBootTest 干扰 EclipseLink 动态编织

    我的公司正在使用 Spring Boot Spring MVC JPA 以及 EclipseLink 和动态编织来开发 Web 应用程序 我的任务是准备 UI 的实现和集成测试 使用 JUnit 和 SpringBootTest 启动应用程
  • 为什么 TimeZone.getTimeZone("MST") 方法与 getTimeZone("US/Mountain") 不同?

    TimeZone getTimeZone US Mountain and TimeZone getTimeZone MST 返回不同的结果 这个java类中的MST不代表 山区标准时间 吗 您不应使用简短的三个字母名称 MST 在Java中
  • 如何让 KendoUI Validator 忽略隐藏的表单元素?

    我正在尝试将 KendoUI Validator 与 ASP NET WebForms 项目一起使用 我有一个简单的页面 有许多输入 当然 ASP NET 也添加了一些隐藏的表单元素 我有以下问题 为什么 KendoUI 验证器不忽略隐藏的
  • 实现 JTree 工具提示的最佳方法?

    由于 JTree 和 TreeModel 不直接提供开箱即用的工具提示 您认为为 JTree 提供特定于项目的工具提示的最佳方式是什么 编辑 之后回答我自己的问题 Zarkonnen 感谢 getTooltipText 的想法 我发现了另一
  • C# 5.0 EBNF 语法

    我正在寻找 5 0 版编程语言 C 的 EBNF 语法 这个语法应该是机器可读的 所以我可以用这个 EBNF 语法做一些处理 直到现在我才发现Visual Studio的安装中包含了C 的语言规范文档 PROGRAMFILES x86 Mi