EXPRESS 数据建模语言的自定义解析器

2024-02-04

我需要为 EXPRESS 编写一个自定义解析器 - 据称这是一种数据建模语言,用于定义和传递 CAD 软件的构造信息。 以下是一些资源:

https://en.wikipedia.org/wiki/EXPRESS_(data_modeling_language) https://en.wikipedia.org/wiki/EXPRESS_(data_modeling_language) https://www.loc.gov/preservation/digital/formats/fdd/fdd000449.shtml https://www.loc.gov/preservation/digital/formats/fdd/fdd000449.shtml

好吧,我需要为这种“数据建模语言”设计一个自定义解析器。但是,我不知道在开始实现一个像样的解析器之前需要注意哪些细节。在决定如何解析它并以有意义的方式表示它之前,我应该以什么方式分析这种基于文本的格式?

关于这种“数据建模语言”及其语法,我特别需要了解什么,以便我能够提出合理的解析器?


Backus-Naur-Form中有EXPRESS语言的描述在 github 上 https://github.com/dustintownsend/EXPRESS-Modeling-Language-References。有些工具可以采用 BNF 格式的描述并从中生成解析器(例如bison https://www.gnu.org/software/bison/ or 提升::精神 https://www.boost.org/doc/libs/1_67_0/libs/spirit/doc/html/index.html).

这些将为您提供该语言的有效文本解析器。下一步是赋予解析后的文本含义。 EXPRESS 通常描述类层次结构和某些约束,因此您需要使用从解析器获得的标记对其进行建模。

例如,您可能想看看现有的实现stepcode https://github.com/stepcode/stepcode。他们有一个 EXPRESS 解析器,它采用 EXPRESS 模式并生成一个 STEP 解析器,该解析器可以加载 EXPRESS 模式描述的文件。

您应该知道 EXPRESS 和 STEP 是非常强大且广泛的工具,因此您应该考虑使用/修改现有的实现,而不是自行开发。

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

EXPRESS 数据建模语言的自定义解析器 的相关文章

  • 是否有一个实用程序可以在给定 ANTLR 语法的情况下生成匹配的字符串?

    我有一个 ANTLR 语法 我想模 糊我的解析器 您是否正在寻找 CFG 语法的生成 IE 语法接受的字符串的生成 这可能是检查语法正确性的好主意 但请记住 可接受的字符串集很可能是无限的 任何真正严重的错误应该已经在语法规范中显而易见 并
  • 如何在Java中有效地读取由大量小项目组成的大型XML文件?

    我有一个很大的 XML 文件 其中包含相对固定大小的项目 即
  • 如何在 powershell 中使用正则表达式选择“catch”代码块?

    我正在尝试分析多个目录中的大量 powershell 脚本 并且希望将任何 Catch 代码块拉入列表 变量中 我正在尝试编写一个正则表达式来选择以下格式的任何块 Catch write Host Function MyInvocation
  • 图像上的文字

    是否可以在 php 中动态地将文本放置在图像上 然后将其发送到 rss feed 是的 可以使用GD http www php net gd函数或图像魔术师 http www php net imagemagick功能 具体取决于您的服务器
  • 使用 R 读取和转换二进制原始数据

    我有一个file https drive google com file d 0BxMpk0nhnJy6SFhxd2xuMzJYYlk edit usp sharing其中包含原始 二进制数据和 ascii 它包含一个时间戳和一个代表速度的
  • Parse::RecDescent 语法未按预期工作

    我所能做的就是 STRING PARAMS VARIABLE 和 FUNCNAME FUNCTION 似乎有问题 但我就是看不到它 use strict use Parse RecDescent RD ERRORS 1 Make sure
  • 预处理后解析 C++ 源文件

    我正在尝试分析c 使用我定制的解析器的文件 写在c 在开始解析之前 我想摆脱所有 define 我希望源文件在预处理后可以编译 所以最好的方法是运行C Preprocessor在文件上 cpp myfile cpp temp cpp or
  • 用 C++ 生成 AST

    我正在用 C 制作一个解释器 到目前为止我已经有了词法分析器来生成标记 问题是我不确定如何生成 行走 解析树 我正在考虑使用数组数组来制作解析树 但我不确定如何以正确的顺序将标记实际插入到解析树中 我不确定是自上而下 左右还是自下而上 左右
  • python 3 argparse 调用函数

    我想在 python3 中创建一个类似命令行 类似 shell 的界面 Argparse 似乎负责解析和显示帮助 错误消息 根据argparse 的 python3 文档 https docs python org 3 5 library
  • 在Python中连续解析文件

    我正在编写一个脚本 该脚本使用 HTTP 流量行解析文件 并取出域 目前仅将它们打印到屏幕上 我正在使用 httpry 将流量连续写入文件 这是我用来删除域名的脚本 usr bin python import re input open r
  • 如何使用 Perl 分割文本文件并将其存储到二维数组中?

    230215 01 16 2000 57533 0 1045403 0 0 217623 230215 01 18 2000 77659 0 1045403 0 0 217624 230215 01 25 2000 76583 0 1045
  • 从文本文件 PHP 读取数据

    我只是想知道如何在 php 中读取文本文件 我想让它显示文本文件中的最后 200 个条目 每个条目都在一个新行上 Like John White Jane Does John Does Someones Name 等等 Thanks Use
  • SQL 查询将文本数据存储在 Varbinary(max) 中

    有没有办法让 varbinary 在 SQL Server 中接受文本数据 这是我的情况 我有相当大量的 XML 我计划以 压缩 格式存储它们 这意味着 Varbinary 但是 当我进行调试时 我希望能够翻转配置开关并以纯文本形式存储 以
  • 有一种简单的方法可以忽略时间戳来区分日志文件吗?

    我需要比较两个日志文件 但忽略每行的时间戳部分 确切地说是前 12 个字符 有没有一个好的工具 或者一个聪明的 awk 命令 可以帮助我 根据您使用的 shell 您可以改变方法 Blair https stackoverflow com
  • 为正则表达式编写解析器

    即使经过多年的编程 我很羞愧地说我从未真正完全掌握正则表达式 一般来说 当问题需要正则表达式时 我通常可以 在一堆引用语法之后 想出一个合适的正则表达式 但我发现自己越来越频繁地使用这种技术 所以 自学并理解正则表达式properly 我决
  • 将纯文本转换为 HTML

    我有一个脚本 在某个时刻我可以通过 Ajax 调用获取 HTML 数据 我必须将此 HTML 转换为纯文本 如下所示 div text data 我现在想扭转这一局面 再次将文本设为 HTML 我有一个简单的 Jquery 方法可以做到这一
  • C# 中的编译器

    我正在寻找一个可定制的解析器和 或词法分析器 它可以让我在 C 中构建自定义语法检查器 本质上 用户将输入一行代码 自定义 语法检查器将能够响应是否编写正确 That s Irony http irony codeplex com 请务必阅
  • 如何使用 SimpleDateFormat 解析多种格式的日期

    我正在尝试解析文档中的一些日期 用户似乎以类似但不完全相同的格式输入了这些日期 以下是格式 9 09 9 2009 09 2009 9 1 2009 9 1 2009 尝试解析所有这些内容的最佳方法是什么 这些似乎是最常见的 但我想让我困扰
  • Linux - 从第二个选项卡获取文本

    假设我们有这样的文件 一些文本11 一些文本12 一些文本13 一些文本21 一些文本22 一些文本23 文本由制表符分隔 我们知道第 1 列中的一些文本 但希望从第 2 列中获取文本 我知道我可以通过以下方式获取线路 grep somet
  • 如何在 Python 中使这个随机文本生成器更加高效?

    我正在研究一个随机文本生成器 不使用马尔可夫链 目前它的工作没有太多问题 首先 这是我的代码流程 输入一个句子作为输入 这称为触发字符串 被分配给一个变量 获取触发字符串中最长的单词 在所有古腾堡计划数据库中搜索包含该单词的句子 无论大写还

随机推荐

  • 嵌套的 Angular2 异步管道如何解决?

    我对嵌套异步管道如何以及何时在 angular2 模板中解析感到有点困惑 而且文档现在的位置不是很好 所以我希望有人可以提供帮助 我有一个非常简单的 Rxjs Observable 从服务返回 通过Observable of myArray
  • 从已删除的远程分支中获取原点?

    当我做git fetch origin并且 origin 有一个已删除的分支 它似乎没有在我的存储库中更新它 当我做git branch r它仍然显示origin DELETED BRANCH 我怎样才能解决这个问题 您需要执行以下操作 g
  • ASP.NET Core Signalr 无法在 AWS 上运行

    我们有两个应用程序 服务器端 Net Core 2 0 和客户端 AngulerJs 它们托管在AWS elistic容器服务上 另外 还有一层云耀斑 此外 我们正在使用指向我们的 docker 容器的 ALB 我们的解决方案应该有一个实时
  • 在 Chrome 中清除焦点上的 HTML5 占位符属性文本

    有什么办法可以清除吗placeholder焦点上的文字Chrome Firefox 会清除焦点上的文本 但 Chrome 不会 这会让用户感到困惑的是 栏中的文本是键入的 还是占位符文本 即使我将文本颜色更改为浅灰色 我不想为此使用不必要的
  • 从对象字面量获取链接值,onchange--Javascript/HTML select

    我知道如何使用 switch case 例程操作此菜单 但我想将 switch case 更改为对象文字 A 部分知道如何获取 onchange 值并打开一个窗口 B 部分知道如何在对象中的名称 值对中查找值 但前提是给它一个硬编码名称来匹
  • cvs更新错误

    我正在使用 WinCVS 当我尝试更新模块时 我不断收到此错误 cvs 更新中止 从服务器读取 错误 1 这里的实际问题是什么以及如何解决这个问题 我遇到了这个问题和类似的问题 通过尝试 CVSROOT pserver 字符串的变体来解决
  • 二元运算符 + 的错误操作数类型

    我需要一个最多 20 位的数字 并且我正在使用 bigint 它在下面的行给了我这个错误 二元运算符 的操作数类型错误 BigInteger t new BigInteger my number getText toString my nu
  • Spring 没有独特的 bean 类型

    我在 Spring 中遇到了一个服务的两个组件的小问题 我有这个组件 Component public class SmartCardWrapper 和这个 Component public class DummySmartCardWrap
  • 使用 Symfony 和 Doctrine 调用 null 500 上的成员函数 has()

    我在设置要从以下服务文件运行的学说时遇到一些问题
  • 如何使用 root 权限在 VS Code 中调试 Go 文件?

    如何强制 Delve in VS Code 使用 root 权限 我正在尝试调试涉及 gopacket pcap 的 go 文件 hndl err pcapgo NewEthernetHandle ifname err couldn t o
  • iterrows 无法迭代 DataFrame 错误:元组对象没有属性“A”

    当我尝试迭代数据帧时 数据类型以某种方式发生了变化 dates pd date range 20130101 periods 6 df pd DataFrame np random randn 6 4 index dates columns
  • Wtf IE7 - 使用 setTimeout 的 AJAX 调用

    我已经在 Firefox Opera 和 Seamonkey 上对此进行了测试 效果很好 当谈到 Internet Explorer 7 时 它可以工作 但只能达到一定程度 我每隔几秒就会对 PHP 脚本进行一次 AJAX 调用 在 IE7
  • 如何使用 .net 紧凑框架 3.5 隐藏数据网格中的列

    我有一个使用 DataReader 作为其数据源的 DataGrid 我想隐藏数据网格的第一列 我正在使用 net 紧凑框架 3 5 我可以找到 Windows 窗体的示例 但 api 已更改得足够多 以至于它们不起作用 您可以将列样式宽度
  • 根据列值删除 Pandas 中的 DataFrame 行 - 要删除的多个值

    我有一个值列表 在 Python 列表中事先不知道 我的 Panda DataFrame 中的一列不得包含所有行 网络上的所有食谱 例如this one https stackoverflow com questions 18172851
  • 使用 Optimize R 优化向量

    我想使用 R 的优化函数构建自己的优化 目标函数是多样化比率 最大化它 希望它是正确的 div ratio lt function weight vol cov mat dr lt t weight vol sqrt t weight co
  • 当本机库不存在时,如何构建 FFI 箱的 docs.rs 文档?

    我有一个静态链接到库的 sys 箱 货物 toml package links foo 1 0 构建 rs fn main println cargo rustc link lib dylib foo 1 0 当我发布包时 docs rs无
  • 如何使用水平投影清理二值图像?

    我想使用二元过滤器从车牌中删除除文本之外的任何内容 我在每个轴上都有投影 但我不知道如何应用它 我的想法是擦除白色轮廓 这是我现在正在工作的图像 这是 X 轴上的投影 from matplotlib import pyplot as plt
  • 在 Firebase 中执行多位置更新时如何使用事务?

    在我的 Firebase 数据库中 我需要同时对两个位置进行两次写入 我对这两个位置都有规则 以确保用户在不同时写入另一个位置的情况下无法在那里写入 对这些位置之一的写入需要递增 递减 当然 这必须通过事务来完成 否则我无法保证用户不会覆盖
  • 将 navigation.navigate 传递给子组件

    使用反应导航构建应用程序 我有一个从 firebase 中提取数据并在列表视图中呈现数据的父组件 列表视图渲染组件 ListName 具有 onRowPress 函数 但 this props navigation navigate 未定义
  • EXPRESS 数据建模语言的自定义解析器

    我需要为 EXPRESS 编写一个自定义解析器 据称这是一种数据建模语言 用于定义和传递 CAD 软件的构造信息 以下是一些资源 https en wikipedia org wiki EXPRESS data modeling langu