Skip to content

Commit

Permalink
Fix lexer bugs with Unicode SMP
Browse files Browse the repository at this point in the history
  • Loading branch information
bhamiltoncx committed Jan 27, 2017
1 parent 4aa7738 commit fad55a2
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 3 deletions.
6 changes: 4 additions & 2 deletions tool/src/org/antlr/v4/automata/LexerATNFactory.java
Original file line number Diff line number Diff line change
Expand Up @@ -353,10 +353,12 @@ public Handle stringLiteral(TerminalAST stringLiteralAST) {
int n = chars.length();
ATNState prev = left;
right = null;
for (int i = 0; i < n; i++) {
for (int i = 0; i < n; ) {
right = newState(stringLiteralAST);
prev.addTransition(new AtomTransition(right, chars.charAt(i)));
int codePoint = chars.codePointAt(i);
prev.addTransition(new AtomTransition(right, codePoint));
prev = right;
i += Character.charCount(codePoint);
}
stringLiteralAST.atnState = left;
return new Handle(left, right);
Expand Down
2 changes: 1 addition & 1 deletion tool/src/org/antlr/v4/misc/CharSupport.java
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ public static String getStringFromGrammarStringLiteral(String literal) {
if ( c==-1 ) {
return null; // invalid escape sequence.
}
else buf.append((char)c);
else buf.appendCodePoint(c);
i = end;
}
return buf.toString();
Expand Down

0 comments on commit fad55a2

Please sign in to comment.