lex和yacc中有删除语法吗?

lex和yacc中有删除语法吗?,yacc,context-free-grammar,Yacc,Context Free Grammar,在lex和yacc的通用语法中 A : aB B : bc 上述语法可以将“abc”演绎成符号“A” 此外,我想通过删除操作将“A”转换为“S” 比如说, S : A`delete(c)` 把上面所有的语法结合起来,我们就可以把‘ab’演绎成‘S’ lex和yacc有相似的语法吗?没有 (F) lex模式本质上是各种数学形式的正则表达式,带有一些方便的运算符(如字符类)。(F) lex没有实现在大多数正则表达式库中发现的过多的非正则“正则表达式”操作符。从理论上讲,由于正则语言在连接和反转上

在lex和yacc的通用语法中

A : aB
B : bc
上述语法可以将“abc”演绎成符号“A”

此外,我想通过删除操作将“A”转换为“S”

比如说,

S : A`delete(c)`
把上面所有的语法结合起来,我们就可以把‘ab’演绎成‘S’

lex和yacc有相似的语法吗?

没有

(F) lex模式本质上是各种数学形式的正则表达式,带有一些方便的运算符(如字符类)。(F) lex没有实现在大多数正则表达式库中发现的过多的非正则“正则表达式”操作符。从理论上讲,由于正则语言在连接和反转上是封闭的,所以在不偏离正则表达式的固定语言定义的情况下实现集差算子是可能的。在实践中,这种操作符的实现并不常见。(Ragel stare机器生成器有,但我不知道有哪个正则表达式库有。)


Yacc/bison只实现BNF中描述的上下文无关语法。上下文无关的语言不依赖于反转或连接,因此很难看出任何CFG basef解析器生成器如何处理SUXHA特性。

理解。这里是原始问题,希望它能说明我真正想做什么。