private boolean validIdentifier(String input) {
    String[] keywords = "signed unsigned void char int float double long short if else do while break for switch case default return struct const".split(" ");
    String characters = "_abcdefghijklmnopqrstuvwxyz";
    String numbers = "0123456789";
    input = input.toLowerCase();
    for (int i = 0; i < keywords.length; i++) {
      if (input.equals(keywords[i])) {
        return false;
      }
    }
    for (int i = 0; i < input.length(); i++) {
      char c = input.charAt(i);
      if (i == 0 && characters.indexOf(c) < 0 || i > 0 && numbers.indexOf(c) < 0 && characters.indexOf(c) < 0) {
        return false;
      }
    }
    return true;
  }