final public Identifier TypeIdentifier() throws ParseException {
    ModuleIdentifier module_id;
    Token dot_t;
    Token type;
    Identifier identifier;
    if (jj_2_10(2)) {
      module_id = ModuleIdentifier();
      dot_t = jj_consume_token(DOT_T);
      type = jj_consume_token(TYPE_IDENTIFIER_T);
          identifier = Identifier.Type(module_id,
                            makeNodeToken(type));
    } else {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case TYPE_IDENTIFIER_T:
        type = jj_consume_token(TYPE_IDENTIFIER_T);
          identifier = Identifier.Type(makeNodeToken(type));
        break;
      default:
        jj_la1[55] = jj_gen;
        jj_consume_token(-1);
        throw new ParseException();
      }
    }
      {if (true) return identifier;}
    throw new Error("Missing return statement in function");
  }