解析器生成器CUP中输出错误

时间:2017-06-27 07:15:28

标签: java cup

当我使用JAVA解析器生成器CUP时,我遇到了一些问题,我不知道为什么,有人可以帮助我吗?

这是杯子文件:

RewriteEngine On

# external redirect from actual URL to pretty one
RewriteCond %{THE_REQUEST} \s/+content\.php\?idf=([^\s&]+)&link=([^\s&]+) [NC]
RewriteRule ^ /%1/%2? [R=302,L,NE]

# internal forward from pretty URL to actual one
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([\w-]+)/(.+)$ content.php?idf=$1&link=$2 [B,L,QSA]

当解析" const aaa = [" a"," b"," c"]"时,输出是:

explicit_value b

explicit_value c

explicit_value c

1 个答案:

答案 0 :(得分:0)

我发现它是CUP错误,我将我的代码更改为bison。

%{

import java.io.*;

%}

%pure_parser

%error_verbose

%token FCONST;
%token IDENTIFIER;
%token STRING_DEFINITION;
%token ASSIGN;
%token OPEN_SQUARE_BRACKET;
%token CLOSE_SQUARE_BRACKET;
%token SPLIT;


%%

program:    FCONST IDENTIFIER ASSIGN explicit_value
       ;

explicit_value :
    OPEN_SQUARE_BRACKET const_array_list_value CLOSE_SQUARE_BRACKET
    |
    STRING_DEFINITION
    {
        System.out.printf("explicit_value %s \n", ((ParserVal)($1)).sval);
    }
    ;

const_array_list_value :
    explicit_value
    |
    const_array_list_value explicit_value
    ;