lexer grammar Begin;
BEGIN : 'begin' ;
ID : [a-z]+ ;
WS : [ \t\r\n]+ -> skip ;
grun Begin tokens -tokens
begin
^Z
我得到了这样的输出:
[@0,0:4='begin',<1>,1:0]
[@1,7:6='<EOF>',<-1>,2:0]
注意,标记类型为1(如<1>所示)。
我再次运行了它,这一次输入“begining”
:
grun Begin tokens -tokens
beginning
^Z
[@0,0:8='beginning',<1>,1:0]
[@1,11:10='<EOF>',<-1>,2:0]
和此规则:ID:[a-z]+;
用于标记此输入:开始
我使用了以下测试设置:
grammar Begin;
test: (BEGIN | ID)+;
BEGIN : 'begin' ;
ID : [a-z]+ ;
WS : [ \t\r\n]+ -> skip ;
使用ANTLRWorks 2.1。它按预期工作:
带“begin”:
Arguments: [Begin, test, -tokens, -tree, -gui, C:\ANTLR\Begin.txt]
[@0,0:4='begin',<1>,1:0]
[@1,5:4='<EOF>',<-1>,1:5]
(test begin)
Arguments: [Begin, test, -tokens, -tree, -gui, C:\ANTLR\Begin.txt]
[@0,0:8='beginning',<2>,1:0]
[@1,9:8='<EOF>',<-1>,1:9]
(test beginning)
我不熟悉词法分析,如果标题不够清晰,我很抱歉。 基本上,我使用Jison来解析一些文本,并试图让lexer理解缩进。这里有一点值得商榷: 到目前为止,几乎所有这些都像预期的那样工作。一个问题是我试图返回一个令牌数组的行。看来Jison只是将该数组转换成一个字符串,这导致我得到一个解析错误,如。 我希望我能做的是手动将一些令牌推到堆栈上。也许有一个像或类似的东西。但是Jison的文档不是很好,我需要
我试图使用ANTLR4创建一个简单的解析器,但我在识别lexer令牌方面遇到了问题。问题是,即使单词SAYS后面有一个“:”,解析器规则也不能识别它。而且对于提及,@Michael也没有被识别出来。 输入的文本是:john说:hello@Michael这将不起作用 //LEXER规则
现在我得到了:错误。 我知道我的输入被AND和TERM lexer规则匹配,但我希望能够指定TERM是除与AND规则匹配的内容之外的任何内容。
问题是“要求用户输入2个正整数,打印这两个正整数之间的所有素数,每行5个素数,然后打印总数。” 我没有看到我的代码的任何输出。谢谢在这里输入图像描述
是否有方法为模式中捕获的所有字符返回一个字符串类型的标记,包括导致进入模式的字符? 模式何时结束? 我知道我也可以像这样编写字符串标记:
问题内容: 我遇到一种情况(在硒测试期间),在这种情况下,用户将收到安全代码。然后,用户必须先输入安全密码,然后才能继续操作。 我不太确定如何获得用户输入的值。我浏览了硒文档,并提出了这个建议。不幸的是,它并不是很有效。 有人可以指出我正确的方向吗? 问题答案: 似乎您必须先接受并关闭提示,然后才能存储和使用该值