# API di scripting per ogni struttura di dati

## La struttura di dati astratta

La struttura di dati astratta definisce un insieme di elementi di dati e le possibili connessioni tra loro: questo è il prototipo di ogni altra struttura di dati. Le strutture di dati sono identificate dal loro nome. Supposto sia stata creata una struttura di dati dal nome `provagrafo`, puoi accedervi semplicemente scrivendone l'identificativo. Per esempio, per avere un elenco di tutti gli elementi nella struttura data, puoi scrivere `provagrafo.list_nodes();` nello script.

### Proprietà

- name:

  Il nome univoco di questa struttura di dati.

## Dati astratti

Un elemento di dati astratto è un'unità di informazione che appartiene a una struttura di dati astratta e può essere connesso ad altri elementi di dati da puntatori.

### Proprietà

- width:

  La dimensione di questo elemento di dati.

- x:

  La coordinata X di questo elemento di dati.

- y:

  La coordinata Y di questo elemento di dati.

- id:

  L'identificativo univoco di questo elemento di dati.

- color:

  Il colore di questo elemento di dati, indicato come valore esadecimale.

## Puntatore astratto

Un puntatore collega due elementi di dati e può contenere informazioni nelle sue proprietà.

### Proprietà

- width:

  Lo spessore della connessione.

- directed:

  Se vero, la connessione è direzionale, altrimenti non lo è.

- from:

  Inizio della connessione.

- to:

  Fine della connessione.

- color:

  Identificativo del tipo di connessione.

### Metodi

remove()

  Rimuovi questa connessione.

      void remove

add_property(nome, valore)

  Aggiungi una nuova proprietà alla connessione.

      void add_property string nome string valore

remove_property(nome)

  Rimuovi una proprietà presente dalla connessione.

      void remove_property string nome