Observera att main_page//0
är en icke-terminal, inte ett predikat. Att anropa din databas predikat från main_page//0
, måste du skriva något i stil med:
main_page -->
{create_db_connect,
use_database,
query_to_database(X),
disconnect_database},
html(div('id="tab_c2"', p('~w')-[X])).
{}/1
konstruktion låter dig anropa predikat från (kroppen av) grammatikregler. Utan det, create_db_connect
och de andra skulle tolkas som samtal till andra icke-terminaler (create_db_connect//0
, ...).
Vanligtvis expanderas icke-terminaler till predikat genom att lägga till två argument. Därav varningarna du fick:
Warning: create_db_connect/2, which is referenced by
Warning: /root/prologDev/el.pl:56:17: 1-st clause of main_page/2