I think lexer rule RightShift : '>>' unables matching rule simpletemplateid in the case where there are more than two levels of imbrication of simpletemplateid rule.
For instance, the explicit template instanciation template class MyTemplate1<MyTemplate2<MyClass>>; will not be recognized because symbol >> is matched with lexeme RightShift.
To correct it, I propose to change lexer rule RightShift : >> into parser rule rightshift : '>' '>' and change every reference to rule RightShift into a reference to rule rightshift.
Note: This problem might also happen with lexemes RightShiftAssign, LeftShift, and LeftShiftAssign but I think in practice it is impossible.
I think lexer rule
RightShift : '>>'
unables matching rulesimpletemplateid
in the case where there are more than two levels of imbrication ofsimpletemplateid
rule.For instance, the explicit template instanciation
template class MyTemplate1<MyTemplate2<MyClass>>;
will not be recognized because symbol>>
is matched with lexemeRightShift
.To correct it, I propose to change lexer rule
RightShift : >>
into parser rulerightshift : '>' '>'
and change every reference to ruleRightShift
into a reference to rulerightshift
.Note: This problem might also happen with lexemes
RightShiftAssign
,LeftShift
, andLeftShiftAssign
but I think in practice it is impossible.