On 08/18/2016 12:21 AM, Santiago Vila wrote:

> xsltc.java_cup:
>      [echo] java_cup preparsing
>      [java] Exception in thread "main" java.lang.Error: Error: could not 
> match input
>      [java]   at java_cup.Lexer.zzScanError(Lexer.java:728)
>      [java]   at java_cup.Lexer.next_token(Lexer.java:1058)
>      [java]   at java_cup.parser.scan(parser.java:417)
>      [java]   at java_cup.runtime.lr_parser.parse(lr_parser.java:578)
>      [java]   at java_cup.Main.parse_grammar_spec(Main.java:477)
>      [java]   at java_cup.Main.main(Main.java:186)
>      [java]   at 
> org.apache.xalan.xsltc.util.JavaCupRedirect.main(JavaCupRedirect.java:90)

Thank you for the report Santiago, the package also fails to build
without the -A flag btw.

This error happens when cup processes 
src/org/apache/xalan/xsltc/compiler/xpath.cup.
It started with the upload of cup 0.11a+20060608-7 required by the
upgrade of jflex to the version 1.6.1. xpath.cup has DOS line endings
(\r\n), converting the file to the Unix format solves the issue.


Looking at the changelog for the recent versions of jflex [1] one thing
caught my attention, in jflex 1.5.0 there was:

    The . meta character now stands for all non-newline characters.
    The meaning of the dot (“.”) meta character has been changed
    from [^\n] to [^\n\r\u000B\u000C\u0085\u2028\u2029].
    Use the new --legacydot option to cause “.” to be interpreted
    as [^\n]

In cup the flex/Lexer.jflex file has a rule like this [2] :

    .|\n            { sb.append(yytext()); }

With the old definition of the dot this matched any character, but with
the new definition it misses \r\u000B\u000C\u0085\u2028\u2029. This
probably explains why converting the cup file to the Unix format solved
the issue.

I modified the cup package to enable the legacydot option during the
build and it solved the libxalan2-java FTBFS. I plan to upload the
fixed cup package soon.

Emmanuel Bourg

[1] http://jflex.de/changelog.html
[2] https://sources.debian.net/src/cup/0.11a%2B20060608-7/flex/Lexer.jflex/#L103

Reply via email to