< prev index next >
src/jdk.compiler/share/classes/com/sun/tools/javac/parser/UnicodeReader.java
Print this page
rev 51519 : 8206981: Compiler support for Raw String Literals
Reviewed-by: mcimadamore
@@ -62,10 +62,14 @@
/** The buffer index of the last converted unicode character
*/
protected int unicodeConversionBp = -1;
+ /** Control conversion of unicode characters
+ */
+ protected boolean unicodeConversion = true;
+
protected Log log;
protected Names names;
/** A character buffer for saved chars.
*/
@@ -152,15 +156,21 @@
String chars() {
return new String(sbuf, 0, sp);
}
+ protected boolean setUnicodeConversion(boolean newState) {
+ boolean oldState = unicodeConversion;
+ unicodeConversion = newState;
+ return oldState;
+ }
+
/** Convert unicode escape; bp points to initial '\' character
* (Spec 3.3).
*/
protected void convertUnicode() {
- if (ch == '\\' && unicodeConversionBp != bp) {
+ if (ch == '\\' && unicodeConversion && unicodeConversionBp != bp ) {
bp++; ch = buf[bp];
if (ch == 'u') {
do {
bp++; ch = buf[bp];
} while (ch == 'u');
@@ -252,10 +262,28 @@
protected char peekChar() {
return buf[bp + 1];
}
+ protected char peekBack() {
+ return buf[bp];
+ }
+
+ /**
+ * Skips consecutive occurrences of the current character, leaving bp positioned
+ * at the last occurrence. Returns the occurrence count.
+ */
+ protected int skipRepeats() {
+ int start = bp;
+ while (bp < buflen) {
+ if (buf[bp] != buf[bp + 1])
+ break;
+ bp++;
+ }
+ return bp - start;
+ }
+
/**
* Returns a copy of the input buffer, up to its inputLength.
* Unicode escape sequences are not translated.
*/
public char[] getRawCharacters() {
< prev index next >