blob: 3097a07435731917182642f932c9fc094add0708 [file] [log] [blame]
// Copyright (c) 2017, the R8 project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
package com.android.tools.r8.utils;
public class IdentifierUtils {
public static boolean isDexIdentifierStart(char ch) {
// Dex does not have special restrictions on the first char of an identifier.
return isDexIdentifierPart(ch);
}
public static boolean isDexIdentifierPart(char ch) {
return isSimpleNameChar(ch);
}
private static boolean isSimpleNameChar(char ch) {
if (ch >= 'A' && ch <= 'Z') {
return true;
}
if (ch >= 'a' && ch <= 'z') {
return true;
}
if (ch >= '0' && ch <= '9') {
return true;
}
if (ch == '$' || ch == '-' || ch == '_') {
return true;
}
if (ch >= 0x00a1 && ch <= 0x1fff) {
return true;
}
if (ch >= 0x2010 && ch <= 0x2027) {
return true;
}
if (ch >= 0x2030 && ch <= 0xd7ff) {
return true;
}
if (ch >= 0xe000 && ch <= 0xffef) {
return true;
}
if (ch >= 0x10000 && ch <= 0x10ffff) {
return true;
}
return false;
}
}