Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
lexer中的ANTLR3动态引号_Antlr_Antlr3 - Fatal编程技术网

lexer中的ANTLR3动态引号

lexer中的ANTLR3动态引号,antlr,antlr3,Antlr,Antlr3,我需要匹配Perl regexp匹配器之类的东西 m/my regex!*/ 其中引号可以是范围中的任意字符。因此,上述内容与 m%my regex!*% 对lexer规则的天真猜测是 REGEX: 'm' quote=. (~(quote))* quote; 但这不起作用,因为后者不是指quote=,而是指某种规则 我可以用很多自己的代码,比如 REGEX: 'm' quote=. { ... implement the loop and final match myself ... }

我需要匹配Perl regexp匹配器之类的东西

m/my regex!*/
其中引号可以是范围中的任意字符。因此,上述内容与

m%my regex!*%
对lexer规则的天真猜测是

REGEX: 'm' quote=. (~(quote))* quote;
但这不起作用,因为后者不是指
quote=
,而是指某种规则

我可以用很多自己的代码,比如

REGEX: 'm' quote=. { ... implement the loop and final match myself ... } ;
但不知何故,我认为应该有一个规范的方式来做这些事情

。。。但不知何故,我认为应该有一个规范的方式来做这些事情


没有。您必须使用自定义代码执行此操作

看看PL/SQL解析器()。Oracle还支持那些Perl风格的带引号的字符串

比如:

以自定义代码为例。(它包含C和Java实现)。 也许在你的情况下,它甚至可以简化


伊万

这与我提出的简单案例惊人地接近。后来,当我想在lexer中转换逃逸时,情况变得有点糟糕。即使你没有回答我的问题,我也会投票支持你,帮助其他人寻找解决方案。
q':select * from employees where last_name = 'smith':'