Skip to content

Commit 22d2c76

Browse files
committed
Add a BasicScanner that doesn't use a lookup table.
1 parent 3e89dd7 commit 22d2c76

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

java/src/json/ext/EscapeScanner.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,20 @@ public static EscapeScanner create(byte[] escapeTable) {
6464
return new ScalarEscapeScanner(escapeTable);
6565
}
6666

67+
public static class BasicScanner implements EscapeScanner {
68+
@Override
69+
public boolean scan(EscapeScanner.State state) throws java.io.IOException {
70+
while (state.pos < state.len) {
71+
state.ch = Byte.toUnsignedInt(state.ptrBytes[state.ptr + state.pos]);
72+
if (state.ch >= 0 && (state.ch < ' ' || state.ch == '\"' || state.ch == '\\')) {
73+
return true;
74+
}
75+
state.pos++;
76+
}
77+
return false;
78+
}
79+
}
80+
6781
public static class ScalarEscapeScanner implements EscapeScanner {
6882
private final byte[] escapeTable;
6983

0 commit comments

Comments
 (0)