Nota che main_page//0
non è un terminale, non un predicato. Per chiamare i predicati del tuo database da main_page//0
, devi scrivere qualcosa come:
main_page -->
{create_db_connect,
use_database,
query_to_database(X),
disconnect_database},
html(div('id="tab_c2"', p('~w')-[X])).
Il {}/1
build ti consente di chiamare predicati dal (corpo delle) regole grammaticali. Senza di essa, create_db_connect
e gli altri verrebbero interpretati come chiamate ad altri non terminali (create_db_connect//0
, ...).
In genere, i non terminali vengono espansi in predicati aggiungendo due argomenti. Da qui gli avvisi che hai ricevuto:
Warning: create_db_connect/2, which is referenced by
Warning: /root/prologDev/el.pl:56:17: 1-st clause of main_page/2