GVKun编程网logo

ANTLR BNF语法表示法中的epsilon等效项是什么?(antl-falten)

21

在这篇文章中,我们将带领您了解ANTLRBNF语法表示法中的epsilon等效项是什么?的全貌,包括antl-falten的相关情况。同时,我们还将为您介绍有关${document).ready()的

在这篇文章中,我们将带领您了解ANTLR BNF语法表示法中的epsilon等效项是什么?的全貌,包括antl-falten的相关情况。同时,我们还将为您介绍有关$ {document).ready()的非jQuery等效项是什么?、case / switch语句的Python等效项是什么?、C的三元运算符的惯用Go等效项是什么?、C#中的Java BigDecimal类的等效项是什么?的知识,以帮助您更好地理解这个主题。

本文目录一览:

ANTLR BNF语法表示法中的epsilon等效项是什么?(antl-falten)

ANTLR BNF语法表示法中的epsilon等效项是什么?(antl-falten)

在利用ANTLR 3.3的过程中,我正在更改当前语法以支持不带括号的输入。这是我的语法的第一个版本:

grammar PropLogic;        NOT : ''!'' ;        OR  : ''+'' ;        AND : ''.'' ;        IMPLIES : ''->'' ;        SYMBOLS : (''a''..''z'') | ''~'' ;        OP : ''('' ;        CP : '')'' ;    prog    : formula EOF ;    formula : NOT formula        | OP formula( AND formula CP | OR formula CP | IMPLIES formula CP)        | SYMBOLS ;    WHITESPACE : ( ''\t'' | '' '' | ''\r'' | ''\n''| ''\u000C'' )+    { $channel = HIDDEN; } ;

然后我以这种方式更改了它以支持适当的功能:

grammar PropLogic;    NOT : ''!'' ;    OR  : ''+'' ;    AND : ''.'' ;    IMPLIES : ''->'' ;    SYMBOL : (''a''..''z'') | ''~'' ;    OP : ''('' ;    CP : '')'' ;    EM : '''' ;prog    : formula EOF ;formula : OP formula( AND formula CP | OR formula CP | IMPLIES formula CP)    | ( NOT formula | SYMBOL )( AND formula | OR formula | IMPLIES formula | EM ) ;WHITESPACE : ( ''\t'' | '' '' | ''\r'' | ''\n''| ''\u000C'' )+    { $channel = HIDDEN; } ;

但是我一直面临以下错误:

error<100>:  syntax error: invalid char literal: ''''error<100>:  syntax error: invalid char literal: ''''

有人知道我该如何克服这个错误?

答案1

小编典典

您的EM令牌:

EM : '''' ;

无效:您无法在lexer规则中匹配空字符串。

要匹配epsilon(什么都没有),您应该执行以下操作:

rule   :  A   |  B   |  /* epsilon */   ;

当然,/* epsilon */可以安全删除评论。

请注意,当您按照当前语法那样进行操作时,ANTLR会抱怨可能存在使用多个替代规则进行匹配的规则。这是因为您的语法不明确。

$ {document).ready()的非jQuery等效项是什么?

$ {document).ready()的非jQuery等效项是什么?

什么是非jQuery等效项$(document).ready()

case / switch语句的Python等效项是什么?

case / switch语句的Python等效项是什么?

如何解决case / switch语句的Python等效项是什么??

例如:

# define the function blocks
def zero():
    print "You typed zero.\n"

def sqr():
    print "n is a perfect square\n"

def even():
    print "n is an even number\n"

def prime():
    print "n is a prime number\n"

# map the inputs to the function blocks
options = {0 : zero,
           1 : sqr,
           4 : sqr,
           9 : sqr,
           2 : even,
           3 : prime,
           5 : prime,
           7 : prime,
}

然后,调用等效的开关块:

options[num]()

如果你严重依赖失败,就会开始崩溃。

解决方法

我想知道,是否有Python等效的case语句,例如VB.net或C#上可用的示例?

C的三元运算符的惯用Go等效项是什么?

C的三元运算符的惯用Go等效项是什么?

在C / C ++(以及该家族的许多语言)中,根据条件声明和初始化变量的常用习语使用三元条件运算符:

int index = val > 0 ? val : -val

Go没有条件运算符。实现与上述相同代码的最惯用方式是什么?我来到以下解决方案,但似乎很冗长

var index int

if val > 0 {
    index = val
} else {
    index = -val
}

有更好的东西吗?

C#中的Java BigDecimal类的等效项是什么?

C#中的Java BigDecimal类的等效项是什么?

BigDecimaljava.math包装中的一类,对于处理一定规模的大量产品有很多好处。具有此功能的c#中是否存在等效的类或数据类型。

答案1

小编典典

C#仅在BigInteger(.NET Framework 4中)构建了它。

decimal您的任务是否足够精确?它是一个128位数字,可以容纳±1.0×10 −28到±7.9×10 28范围内的值。

我们今天的关于ANTLR BNF语法表示法中的epsilon等效项是什么?antl-falten的分享已经告一段落,感谢您的关注,如果您想了解更多关于$ {document).ready()的非jQuery等效项是什么?、case / switch语句的Python等效项是什么?、C的三元运算符的惯用Go等效项是什么?、C#中的Java BigDecimal类的等效项是什么?的相关信息,请在本站查询。

本文标签: