final public void interface_signal_declaration(Graph entity_) throws ParseException {
        ArrayList<String> ids;
        int dir = DIR_LINKAGE;
        boolean isSignal = false;
        int posIdx = entity_.countInputs() + entity_.countOutputs();
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case SIGNAL:
      jj_consume_token(SIGNAL);
                   isSignal = true;
      break;
    default:
      jj_la1[38] = jj_gen;
      ;
    }
    ids = identifier_list();
    jj_consume_token(151);
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case BUFFER:
    case IN:
    case INOUT:
    case LINKAGE:
    case OUT:
      dir = mode();
      break;
    default:
      jj_la1[39] = jj_gen;
      ;
    }
    subtype_indication();
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case BUS:
      jj_consume_token(BUS);
      break;
    default:
      jj_la1[40] = jj_gen;
      ;
    }
    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
    case 154:
      jj_consume_token(154);
      expression();
      break;
    default:
      jj_la1[41] = jj_gen;
      ;
    }
                for (String id: ids) {
                        if (dir == DIR_IN)
                        {
                          log.trace("input port: " + id);
                          Node n = entity_.new Node(id, Library.TYPE_BUF | Library.FLAG_INPUT);
                          n.setPosition(posIdx++);
                        } else
                        {
                          log.trace("output port: " + id);
                          Node n = entity_.new Node(id, Library.TYPE_BUF | Library.FLAG_OUTPUT);
                          n.setPosition(posIdx++);
                        }
                }
  }