You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When generating a parser for java language syntax, ANTLR reports a number of warnings:
_clover-core.run.antlr:
[java] ANTLR Parser Generator Version 2.7.7 (20060906) 1989-2005
[java] /Users/marek/OpenClover/clover/clover-core/src/main/java/com/atlassian/clover/instr/java/java.g:951: warning:nondeterminism upon
[java] /Users/marek/OpenClover/clover/clover-core/src/main/java/com/atlassian/clover/instr/java/java.g:951: k==1:DOT
[java] /Users/marek/OpenClover/clover/clover-core/src/main/java/com/atlassian/clover/instr/java/java.g:951: k==2:IDENT
[java] /Users/marek/OpenClover/clover/clover-core/src/main/java/com/atlassian/clover/instr/java/java.g:951: between alt 1 and exit branch of block
[java] /Users/marek/OpenClover/clover/clover-core/src/main/java/com/atlassian/clover/instr/java/java.g:1109:17: warning:Rule 'parameterDeclarationList' returns a value
[java] /Users/marek/OpenClover/clover/clover-core/src/main/java/com/atlassian/clover/instr/java/java.g:780: warning:nondeterminism upon
[java] /Users/marek/OpenClover/clover/clover-core/src/main/java/com/atlassian/clover/instr/java/java.g:780: k==1:AT
[java] /Users/marek/OpenClover/clover/clover-core/src/main/java/com/atlassian/clover/instr/java/java.g:780: k==2:IDENT
[java] /Users/marek/OpenClover/clover/clover-core/src/main/java/com/atlassian/clover/instr/java/java.g:780: between alt 1 and exit branch of block
[java] /Users/marek/OpenClover/clover/clover-core/src/main/java/com/atlassian/clover/instr/java/java.g:867: warning:nondeterminism upon
[java] /Users/marek/OpenClover/clover/clover-core/src/main/java/com/atlassian/clover/instr/java/java.g:867: k==1:AT
[java] /Users/marek/OpenClover/clover/clover-core/src/main/java/com/atlassian/clover/instr/java/java.g:867: k==2:IDENT
[java] /Users/marek/OpenClover/clover/clover-core/src/main/java/com/atlassian/clover/instr/java/java.g:867: between alt 1 and exit branch of block
[java] /Users/marek/OpenClover/clover/clover-core/src/main/java/com/atlassian/clover/instr/java/java.g:906: warning:nondeterminism upon
[java] /Users/marek/OpenClover/clover/clover-core/src/main/java/com/atlassian/clover/instr/java/java.g:906: k==1:AT
[java] /Users/marek/OpenClover/clover/clover-core/src/main/java/com/atlassian/clover/instr/java/java.g:906: k==2:IDENT
[java] /Users/marek/OpenClover/clover/clover-core/src/main/java/com/atlassian/clover/instr/java/java.g:906: between alt 1 and exit branch of block
[java] /Users/marek/OpenClover/clover/clover-core/src/main/java/com/atlassian/clover/instr/java/java.g:1793:5: warning:nondeterminism between alts 5 and 6 of block upon
[java] /Users/marek/OpenClover/clover/clover-core/src/main/java/com/atlassian/clover/instr/java/java.g:1793:5: k==1:"final","abstract","strictfp","static","private","protected","public",AT
[java] /Users/marek/OpenClover/clover/clover-core/src/main/java/com/atlassian/clover/instr/java/java.g:1793:5: k==2:"final","abstract","strictfp",IDENT,"static","private","protected","public",AT
[java] /Users/marek/OpenClover/clover/clover-core/src/main/java/com/atlassian/clover/instr/java/java.g:1694: warning:nondeterminism upon
[java] /Users/marek/OpenClover/clover/clover-core/src/main/java/com/atlassian/clover/instr/java/java.g:1694: k==1:AT
[java] /Users/marek/OpenClover/clover/clover-core/src/main/java/com/atlassian/clover/instr/java/java.g:1694: k==2:IDENT
[java] /Users/marek/OpenClover/clover/clover-core/src/main/java/com/atlassian/clover/instr/java/java.g:1694: between alt 1 and exit branch of block
[java] /Users/marek/OpenClover/clover/clover-core/src/main/java/com/atlassian/clover/instr/java/java.g:1695: warning:nondeterminism upon
[java] /Users/marek/OpenClover/clover/clover-core/src/main/java/com/atlassian/clover/instr/java/java.g:1695: k==1:AT
[java] /Users/marek/OpenClover/clover/clover-core/src/main/java/com/atlassian/clover/instr/java/java.g:1695: k==2:IDENT
[java] /Users/marek/OpenClover/clover/clover-core/src/main/java/com/atlassian/clover/instr/java/java.g:1695: between alt 1 and exit branch of block
[java] /Users/marek/OpenClover/clover/clover-core/src/main/java/com/atlassian/clover/instr/java/java.g:2014:78: warning:nondeterminism between alts 1 and 2 of block upon
[java] /Users/marek/OpenClover/clover/clover-core/src/main/java/com/atlassian/clover/instr/java/java.g:2014:78: k==1:IDENT
[java] /Users/marek/OpenClover/clover/clover-core/src/main/java/com/atlassian/clover/instr/java/java.g:2014:78: k==2:LBRACK,AT
[java] /Users/marek/OpenClover/clover/clover-core/src/main/java/com/atlassian/clover/instr/java/java.g:2014:218: warning:nondeterminism between alts 1 and 2 of block upon
[java] /Users/marek/OpenClover/clover/clover-core/src/main/java/com/atlassian/clover/instr/java/java.g:2014:218: k==1:IDENT
[java] /Users/marek/OpenClover/clover/clover-core/src/main/java/com/atlassian/clover/instr/java/java.g:2014:218: k==2:LBRACK,AT
[java] /Users/marek/OpenClover/clover/clover-core/src/main/java/com/atlassian/clover/instr/java/java.g:2039: warning:nondeterminism upon
[java] /Users/marek/OpenClover/clover/clover-core/src/main/java/com/atlassian/clover/instr/java/java.g:2039: k==1:AT
[java] /Users/marek/OpenClover/clover/clover-core/src/main/java/com/atlassian/clover/instr/java/java.g:2039: k==2:IDENT
[java] /Users/marek/OpenClover/clover/clover-core/src/main/java/com/atlassian/clover/instr/java/java.g:2039: between alt 1 and exit branch of block
[java] /Users/marek/OpenClover/clover/clover-core/src/main/java/com/atlassian/clover/instr/java/java.g:2041: warning:nondeterminism upon
[java] /Users/marek/OpenClover/clover/clover-core/src/main/java/com/atlassian/clover/instr/java/java.g:2041: k==1:AT
[java] /Users/marek/OpenClover/clover/clover-core/src/main/java/com/atlassian/clover/instr/java/java.g:2041: k==2:IDENT
[java] /Users/marek/OpenClover/clover/clover-core/src/main/java/com/atlassian/clover/instr/java/java.g:2041: between alt 1 and exit branch of block
[java] /Users/marek/OpenClover/clover/clover-core/src/main/java/com/atlassian/clover/instr/java/java.g:2298:9: warning:nondeterminism between alts 1 and 2 of block upon
[java] /Users/marek/OpenClover/clover/clover-core/src/main/java/com/atlassian/clover/instr/java/java.g:2298:9: k==1:ASSIGN,PLUS_ASSIGN,MINUS_ASSIGN,STAR_ASSIGN,DIV_ASSIGN,MOD_ASSIGN,SR_ASSIGN,BSR_ASSIGN,SL_ASSIGN,BAND_ASSIGN,BXOR_ASSIGN,BOR_ASSIGN
[java] /Users/marek/OpenClover/clover/clover-core/src/main/java/com/atlassian/clover/instr/java/java.g:2298:9: k==2:IDENT,"super","void","boolean","byte","char","short","int","float","long","double",LPAREN,"this",PLUS,MINUS,INC,DEC,BNOT,LNOT,"true","false","null","new",NUM_INT,CHAR_LITERAL,STRING_LITERAL,NUM_FLOAT,NUM_LONG,NUM_DOUBLE
[java] /Users/marek/OpenClover/clover/clover-core/src/main/java/com/atlassian/clover/instr/java/java.g:3112: warning:lexical nondeterminism between alts 3 and 4 of block upon
[java] /Users/marek/OpenClover/clover/clover-core/src/main/java/com/atlassian/clover/instr/java/java.g:3112: k==1:'\r'
[java] /Users/marek/OpenClover/clover/clover-core/src/main/java/com/atlassian/clover/instr/java/java.g:3112: k==2:'\n'
[java] /Users/marek/OpenClover/clover/clover-core/src/main/java/com/atlassian/clover/instr/java/java.g:3112: k==3:'\u0000'..'\ufffe'
[java] /Users/marek/OpenClover/clover/clover-core/src/main/java/com/atlassian/clover/instr/java/java.g:3112: k==4:'\u0000'..'\ufffe'
[java] /Users/marek/OpenClover/clover/clover-core/src/main/java/com/atlassian/clover/instr/java/java.g:3112: warning:lexical nondeterminism between alts 6 and 7 of block upon
[java] /Users/marek/OpenClover/clover/clover-core/src/main/java/com/atlassian/clover/instr/java/java.g:3112: k==1:'\\'
[java] /Users/marek/OpenClover/clover/clover-core/src/main/java/com/atlassian/clover/instr/java/java.g:3112: k==2:'"','\'','0'..'7','\\','b','f','n','r','t','u'
[java] /Users/marek/OpenClover/clover/clover-core/src/main/java/com/atlassian/clover/instr/java/java.g:3112: k==3:'\u0000'..'\ufffe'
[java] /Users/marek/OpenClover/clover/clover-core/src/main/java/com/atlassian/clover/instr/java/java.g:3112: k==4:'\u0000'..'\ufffe'
This nondeterminism can lead to syntax errors when parsing valid java files. Fix it.
Note: this is a side-effect of merge of recent pull requests which delivered Java 10-15 language features.
Note: a usual way to resolve these is to add semantic predicates in the grammar.
When generating a parser for java language syntax, ANTLR reports a number of warnings:
This nondeterminism can lead to syntax errors when parsing valid java files. Fix it.
Note: this is a side-effect of merge of recent pull requests which delivered Java 10-15 language features.
Note: a usual way to resolve these is to add semantic predicates in the grammar.
Tasks:
[] java.g:951
[] java.g:780
[] java.g:867
[] java.g:906
[] java.g:1793
[] java.g:1694
[] java.g:1695
[] java.g:2014
[] java.g:2039
[] java.g:2041
[] java.g:2298
[] java.g:3112
The text was updated successfully, but these errors were encountered: