home *** CD-ROM | disk | FTP | other *** search
/ Vectronix 2 / VECTRONIX2.iso / FILES_01 / X_PROLOG.LZH / X_PROLOG / SOURCES / BUILTIN.H < prev    next >
C/C++ Source or Header  |  1990-08-13  |  6KB  |  175 lines

  1. /*
  2.  *        X PROLOG  Vers. 2.0
  3.  *
  4.  *
  5.  *    Written by :     Andreas Toenne
  6.  *            CS Dept. , IRB
  7.  *            University of Dortmund, W-Germany
  8.  *            <at@unido.uucp>
  9.  *            <....!seismo!unido!at>
  10.  *            <at@unido.bitnet>
  11.  *
  12.  *    Copyright :    This software is copyrighted by Andreas Toenne.
  13.  *            Permission is granted hereby to copy the entire
  14.  *            package including this copyright notice without fee.
  15.  *
  16.  */
  17.  
  18. /*    extern built in's    */
  19.  
  20. extern short bihalt();            /* stop the execution */
  21. extern short bisee();            /* open a file for reading */
  22. extern short biseeing();        /* test for open stream */
  23. extern short biseen();            /* close stream */
  24. extern short bitell();            /* open a file for writing */
  25. extern short bitelling();        /* test for open stream */
  26. extern short bitold();            /* close output stream */
  27. extern short biclose();            /* close a stream */
  28. extern short bifileerrors();        /* give signals */
  29. extern short binofileerrors();        /* give no signals */
  30. extern short biexists();        /* test if file is accessible */
  31. extern short birename();        /* rename(delete) a file */
  32. extern short binl();            /* tell a new-line */
  33. extern short biget0();            /* see the next character */
  34. extern short biget();            /* see the next printable character */
  35. extern short biskip();            /* skip character */
  36. extern short biput();            /* tell a character */
  37. extern short bitab();            /* tell space chars */
  38. extern short bivar();            /* test for variable */
  39. extern short binonvar();        /* reverse */
  40. extern short biatom();            /* test for atom */
  41. extern short biinteger();        /* test for integer */
  42. extern short biatomic();        /* test for atom or integer */
  43. extern short bitrue();            /* true */
  44. extern short bifail();            /* fails */
  45. extern short bish();            /* fork a shell */
  46. extern short bisystem();        /* execute a shell command */
  47. extern short biop();            /* define an operator */
  48. extern short biread();            /* read a term */
  49. extern short biwrite();            /* write a term */
  50. extern short bidisplay();        /* write term in prefix only */
  51. extern short bistatistics();        /* return certain system statistics */
  52. extern short biprompt();        /* read-change the prompt */
  53. extern short bifunctor();        /* meta logic */
  54. extern short biarg();            /* meta logic */
  55. extern short biuniv();            /* meta logic */
  56. extern short biname();            /* meta logic */
  57. extern short biasserta();        /* add clause */
  58. extern short biassertz();        /* add clause */
  59. extern short bidollarclause();        /* find clause */
  60. extern short bicut();            /* CUT */
  61. extern short biwriteq();        /* write quoted */
  62. extern short bidebug();            /* enable debug */
  63. extern short binodebug();        /* disable debug */
  64. extern short bidollarfunctor();        /* find functors */
  65. extern short bidollargoalvars();    /* save goal's vars in a list */
  66. extern short bidollarmore();        /* succeeds, if more solutions */
  67. extern short biretract();        /* remove a clause */
  68. extern short biabolish();        /* remove all clauses of 1 sort */
  69. extern short biis();            /* evaluate an expression */
  70. extern short bisucc();            /* return successor */
  71. extern short bieq();            /* comparison with terms */
  72. extern short bineq();    
  73. extern short biless();
  74. extern short bigreat();
  75. extern short bieqless();
  76. extern short bigreateq();
  77. extern short bieeq();            /* evaluates expression first */
  78. extern short bieneq();
  79. extern short bieless();
  80. extern short biegreat();
  81. extern short bieeqless();
  82. extern short biegreateq();
  83. extern short bicompare();
  84. extern short bireconsulting();        /* sets reconsult mode */
  85. extern short bidollarprompt();        /* show prompt */
  86. extern short biprotect();        /* protect predicates */
  87. extern short bihide();            /* hide predicates */
  88. extern short biunprotect();        /* unprotect predicates */
  89. extern short bireveal();        /* make predicates visible */
  90. extern short bisave();            /* save all definitions */
  91.  
  92. /*    the list of built in's    */
  93.  
  94. bi bis[] =
  95. {
  96.     /* Inline built ins */
  97.     { "abort", NULL, 0},
  98.     { "$call", NULL, 1},
  99.     /* 'normal' built ins */
  100.     { "halt", bihalt, 0},
  101.     { "see", bisee, 1},
  102.     { "seeing", biseeing, 1},
  103.     { "seen", biseen, 0},
  104.     { "tell", bitell, 1},
  105.     { "telling", bitelling, 1},
  106.     { "told", bitold, 0},
  107.     { "close", biclose, 1},
  108.     { "fileerrors", bifileerrors, 0},
  109.     { "nofileerrors", binofileerrors, 0},
  110.     { "exists", biexists, 1},
  111.     { "rename", birename, 2},
  112.     { "nl", binl, 0},
  113.     { "get0", biget0, 1},
  114.     { "get", biget, 1},
  115.     { "skip", biskip, 1},
  116.     { "put", biput, 1},
  117.     { "tab", bitab, 1},
  118.     { "var", bivar, 1},
  119.     { "nonvar", binonvar, 1},
  120.     { "atom", biatom, 1},
  121.     { "integer", biinteger, 1},
  122.     { "atomic", biatomic, 1},
  123.     { "true", bitrue, 0},
  124.     { "fail", bifail, 0},
  125.     { "sh", bish, 0},
  126.     { "system", bisystem, 1},
  127.     { "op", biop, 3},
  128.     { "read", biread, 1},
  129.     { "write", biwrite, 1},
  130.     { "display", bidisplay, 1},
  131.     { "statistics", bistatistics, 0},
  132.     { "prompt", biprompt, 2},
  133.     { "functor", bifunctor, 3},
  134.     { "arg", biarg, 3},
  135.     { "=..", biuniv, 2},
  136.     { "name", biname, 2},
  137.     { "assert", biassertz, 1},
  138.     { "asserta", biasserta, 1},
  139.     { "assertz", biassertz, 1},
  140.     { "$clause", bidollarclause, 3},
  141.     { "!", bicut, 0},
  142.     { "writeq", biwriteq, 1},
  143.     { "debug", bidebug, 0},
  144.     { "nodebug", binodebug, 0},
  145.     { "repeat", bitrue, 0},
  146.     { "$functor", bidollarfunctor, 3},
  147.     { "$goalvars", bidollargoalvars, 1},
  148.     { "$more", bidollarmore, 1},
  149.     { "retract", biretract, 1},
  150.     { "abolish", biabolish, 2},
  151.     { "is", biis, 2},
  152.     { "succ", bisucc, 2},
  153.     { "==", bieq, 2},
  154.     { "\\==", bineq, 2},
  155.     { "@<", biless, 2},
  156.     { "@>", bigreat, 2},
  157.     { "@=<", bieqless, 2},
  158.     { "@>=", bigreateq, 2},
  159.     { "=:=", bieeq, 2},
  160.     { "=\\=", bieneq, 2},
  161.     { "<", bieless, 2},
  162.     { ">", biegreat, 2},
  163.     { "=<", bieeqless, 2},
  164.     { ">=", biegreateq, 2},
  165.     { "compare", bicompare, 3},
  166.     { "$reconsulting", bireconsulting, 1},
  167.     { "$prompt", bidollarprompt, 1},
  168.     { "protect", biprotect, 1},
  169.     { "hide", bihide, 1},
  170.     { "unprotect", biunprotect, 1},
  171.     { "reveal", bireveal, 1},
  172.     { "save", bisave, 1},
  173.     { NULL, NULL, 0}
  174. };
  175.