我正在尝试从once生成一个GLR解析器,但是一旦生成文件,我就会收到错误。
下面是一个例子,ABC.y,很明显我正在尝试:
{
module Main where
}
%name ps1 s1
%tokentype { ABC }
%error { parseError }
%token
a { A }
b { B }
c { C }
%%
s1: a a a b {} | b s2 a {}
s2: b a b s2 {} | c {}
{
data ABC = A | B | C
parseError _ = error "bad"
main = getCo
我有以下语法。
meta : '<' TAG attribute* '>';
attribute : NAME '=' VAL;
TAG : [A-Z0-9]+;
NAME : [A-Z_-]+;
VAL : '"'.*?'"';
我想要匹配下面的字符串。
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
但是我得到了以下错误。
ParseError
我在解析antlr4格式的行列表时遇到了问题
* this is a string
* "first" this is "quoted"
* this is "quoted with \" "
我想要构建一个解析树,比如
(list
(line * (value (string this is a string)))
(line * (value (parameter first) (string this is) (parameter quoted)))
(line * (value (string this is) (p
嗨,我想做一个java或c#方法,它将根据给定的输入返回一个布尔表达式true或false。例如:
如果(输入与antlr语法匹配)返回true;否则返回false;因此问题是,我不知道如何检查公共树是否有任何错误标记。我试着遍历这棵树,但它并没有给出任何作为树节点的错误标记。问题可能是AST没有显示不匹配的标记,只显示解析树。如果有人告诉我如何从解析器中获得解析树,也会有帮助吗?
我已经完成了ANTLR的.g文件,它工作得很好,现在我需要做以下工作:我必须检查输入是否正确,我已经这样做了,但它不工作:
public static boolean check() {
String f
我正在尝试解析以下字符串:
<<! variable, my_variable, A description of my variable !>>
根据我在这里所做的阅读,我认为我需要使用模式来区分文字字符串' variable‘、变量名称(my_variable)和变量描述的词法分析器。
我遇到的问题是,我不确定如何构建它。可以嵌套模式吗?有没有更好/更聪明的方式来组织我的词法分析器规则?
lexer grammar VariableLexer;
variableMarkdown : DELIMITER_OPEN SPACE VARIABLE COMMA S