标签: gold-parser

VBScript部分解析器

我正在尝试创建一个VBScript解析器.我想知道最好的方法是什么.我研究过和研究过.最流行的方式似乎是像Gold Parser或ANTLR这样的东西.

我想实现的功能是动态检查VBScript中的语法错误.每次文本更改时,我都不想编译整个VBS.我该怎么做呢?我尝试使用Gold Parser,但我认为没有增量方法可以通过它进行解析,比如部分解析树...有关如何为这种情况实现部分解析树的任何想法?

我通过GOLD Parser实现了VBscript Parsing.但是它仍然不是部分解析器,在每次文本更改后解析整个脚本.有没有办法建立这样的东西.

THKS

vbscript parsing antlr gold-parser

6
推荐指数
1
解决办法
3754
查看次数

金分析系统 - 在编程中可以使用什么?

我已经阅读了GOLD主页(http://www.devincook.com/goldparser/)文档,常见问题解答和维基百科,以了解GOLD可能有哪些实际应用.我正在考虑为我的系统提供一种编程语言(很容易),例如SAP上的ABAP或Axapta上的X ++ - 但它对我来说看起来不可行,至少不容易 - 即使你使用GOLD.

GOLD生成的解析结果的最终用法让我感到惊讶 - 你如何处理解析的结果?

编辑:一个实际的例子(描述)会很棒.

parsing gold-parser

2
推荐指数
1
解决办法
2958
查看次数

BNF语法+ Gold LALR解析器,无法区分特殊情况NewLine和Whitespace

  • 我想将空格和换行视为普通的空格.
  • 我想区分换行符和其他空格而且允许特殊情况.

首次尝试编写兼容语法失败.

这是语法:

! ------------------------------------------------- Sets

{WS}           = {Whitespace} - {CR} - {LF}
{ID Head}      = {Letter} + [_]
{ID Tail}      = {Alphanumeric} + [_]
{String Chars} = {Printable} + {HT} - ["\]

! ------------------------------------------------- Terminals

! The following defines the Whitespace terminal using the {WS}
! set - which excludes the carriage return and line feed 
! characters

Whitespace    = {WS}+ | {CR}{LF} | {CR} | {LF}
!NewLine       = {CR}{LF} | {CR} | {LF}
MyNewLine      = {CR}{LF} | …
Run Code Online (Sandbox Code Playgroud)

gold-parser

2
推荐指数
1
解决办法
833
查看次数

最好的解析器生成器,用于解析C++中的许多小文本?

出于性能原因,我将C#库移植到C++.在正常操作期间,此库需要解析大约150'000个数学表达式(想想excel公式),平均长度小于150个字符.

在C#版本中,我使用GOLD解析器生成解析代码.它可以在一秒钟内解析所有150'000个表达式.

因为我们正在考虑扩展我们的语言,所以我认为转向C++可能是改为ANTLR的好机会.我已将(简单)语法移植到ANTLR并从中生成C代码.解析150'000表达式需要12秒,因为对于每个表达式,我需要创建一个新的ANTL3_INPUT_STREAM,令牌流,词法分析器和解析器 - 至少在版本3.4中,没有办法重用它们.

我很感激有人可以给我一个推荐使用的内容 - GOLD当然是一个选项,虽然生成C++或C代码似乎比C#变种复杂得多.我的语法是LALR和LL(1)兼容.最重要的是解析小输入的性能.

c++ performance antlr parser-generator gold-parser

1
推荐指数
1
解决办法
3460
查看次数