final public void component_declaration(Context c) throws ParseException {
  Graph g = new Graph(library);
  String id;
    jj_consume_token(COMPONENT);
    id = identifier();
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case IS:
      jj_consume_token(IS);
      break;
    default:
      jj_la1[93] = jj_gen;
      ;
    }
          c.addAsEntity(id,g);
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case GENERIC:
      generic_clause();
      break;
    default:
      jj_la1[94] = jj_gen;
      ;
    }
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case PORT:
      port_clause(g);
      break;
    default:
      jj_la1[95] = jj_gen;
      ;
    }
    jj_consume_token(END);
    jj_consume_token(COMPONENT);
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case basic_identifier:
    case extended_identifier:
      identifier();
      break;
    default:
      jj_la1[96] = jj_gen;
      ;
    }
    jj_consume_token(SEMICOLON);
  }