解析步骤文件(使用javascript)

解析步骤文件(使用javascript),javascript,regex,parsing,peg,step,Javascript,Regex,Parsing,Peg,Step,我正在尝试使用javascript从STEP文件()读取信息。我根本不知道如何解决这个问题 我已经找到了开源的替代方案,但除了Javascript之外,其他语言都有。。。所以我不能从他们身上学到很多东西 由于文本非常不规则,因此很难仅使用正则表达式来提取信息 ISO-10303-21; HEADER; FILE_DESCRIPTION( /* description */ ('A minimal AP214 example with a single part'), /* implementat

我正在尝试使用javascript从STEP文件()读取信息。我根本不知道如何解决这个问题

我已经找到了开源的替代方案,但除了Javascript之外,其他语言都有。。。所以我不能从他们身上学到很多东西

由于文本非常不规则,因此很难仅使用正则表达式来提取信息

ISO-10303-21;
HEADER;
FILE_DESCRIPTION(
/* description */ ('A minimal AP214 example with a single part'),
/* implementation_level */ '2;1');
FILE_NAME(
/* name */ 'demo',
/* time_stamp */ '2003-12-27T11:57:53',
/* author */ ('Lothar Klein'),
/* organization */ ('LKSoft'),
/* preprocessor_version */ ' ',
/* originating_system */ 'IDA-STEP',
/* authorization */ ' ');
FILE_SCHEMA (('AUTOMOTIVE_DESIGN { 1 0 10303 214 2 1 1}'));
ENDSEC;
DATA;
#10=ORGANIZATION('O0001','LKSoft','company');
#11=PRODUCT_DEFINITION_CONTEXT('part definition',#12,'manufacturing');
#12=APPLICATION_CONTEXT('mechanical design');
#13=APPLICATION_PROTOCOL_DEFINITION('','automotive_design',2003,#12);
#14=PRODUCT_DEFINITION('0',$,#15,#11);
#15=PRODUCT_DEFINITION_FORMATION('1',$,#16);
#16=PRODUCT('A0001','Test Part 1','',(#18));
#17=PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,(#16));
#18=PRODUCT_CONTEXT('',#12,'');
#19=APPLIED_ORGANIZATION_ASSIGNMENT(#10,#20,(#16));
#20=ORGANIZATION_ROLE('id owner');
#21=IFCPROPERTYSINGLEVALUE('Visa 2D F\S\dstpunkter i 3D',$,IFCBOOLEAN(.F.),$);
ENDSEC;
END-ISO-10303-21;
不同的导出工具以不同的变体导出:

#95=STYLED_ITEM('',(#94),#92);
#12 = CARTESIAN_POINT ( 'NONE',  ( 1.213, 5.617, -7.500 ) ) ;
#263 = TEST ( 'Spaces must not be ignored here' ) ;


读取step文件的最佳方式是什么?解析器生成器、正则表达式或其他东西?

您可以在以下内容中找到有关实体的精确信息(对应于产品结构的不同AP的子集)。它解释了元素中包含的信息以及它们之间的关系。

首先,您可能想看看

STEP文件(第21部分)有不同的语法和不同的方法可以帮助实现您想要做的事情。我没有测试过这些方法中的任何一种

  • 使用并使用生成javascript
  • 使用,尤其是nl.tue.buildingsmart.express.population。它是一个基于JavaCC的STEP文件读取器。有很多方法可以解决这个问题

我很好地理解了语法以及所有东西是如何协同工作的。这不是我的问题,而是如何解析文本。