home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 9 / 09.iso / l / l216 / 1.ddi / PARSER.DEF < prev    next >
Encoding:
Text File  |  1987-03-23  |  2.4 KB  |  112 lines

  1. /**********************************************************************
  2.  
  3.      Turbo Prolog Toolbox
  4.      (C) Copyright 1987 Borland International.
  5.  
  6.             Parser generator
  7.  
  8.             Invariants
  9.             ==========
  10.  
  11. About names
  12.   Production names are always in upper case.
  13.   Functors are in lowercase
  14.  
  15. **********************************************************************/
  16.  
  17. include "tdoms.pro"
  18.  
  19. DOMAINS
  20.   FILE        = outfile
  21.   SUFFIX    = STRING
  22.   PRIORITY    = INTEGER
  23.   TOKKL        = TOKK*
  24.   TERML        = TERM*
  25.   CURSOR    = INTEGER
  26.  
  27.   FIRST        = first(INTEGER,PRODNAMES,SINGPROD,SUFFIX)
  28.   FIRSTLIST    = FIRST*
  29.  
  30.   CUT        = setcut; nill
  31.  
  32.   PRODNAME        = STRING
  33.   PRODNAMES       = PRODNAME*
  34.  
  35.   PARSER          = SECTION*
  36.  
  37.   SECTION         = userprods_(PRODNAMES);
  38.             userdoms_(PRODNAMES);
  39.             productions_(PRODUCTIONS)
  40.  
  41.   PRODUCTIONS     = PRODUCTION*
  42.  
  43.   PRODUCTION      = p(PRODNAME,CURSOR,PRODBODY)
  44.  
  45.   PRODBODY        = list(PRODNAME,CURSOR,STAR_PLUS,SEPARATOR);
  46.              groups(PRODGROUPS)
  47.  
  48.   STAR_PLUS       = star;
  49.             plus
  50.  
  51.   SEPARATOR      = sep(STRING);
  52.             none
  53.  
  54.   PRODGROUPS      = PRIORGROUP*
  55.  
  56.   PRIORGROUP      = SINGPROD*
  57.  
  58.   SINGPROD        = prod(ASSOC,GRAMTOKL,CURSOR,TERM)
  59.  
  60.   ASSOC           = right(CURSOR);
  61.             left()
  62.  
  63.   GRAMTOKL        = GRAMTOK*
  64.  
  65.   GRAMTOK         = prodname(PRODNAME,CURSOR);
  66.             tok(TOKK,CURSORDEMAND)
  67.  
  68.   CURSORDEMAND    = curdemand(PRODNAME);
  69.             none()
  70.  
  71.   TOKK            = name(STRING,CURSOR);
  72.              cmp(STRING,CURSOR,PRODNAMES)
  73.  
  74.   TERM            = name(STRING,CURSOR);
  75.             term(STRING,CURSOR,PRODNAMES);
  76.             dom(PRODNAME,CURSOR);
  77.             list(PRODNAME)
  78.  
  79.  
  80. DATABASE
  81.   p(PRODNAME,PRODBODY)
  82.   prodname(PRODNAME)
  83.   pred_second(INTEGER,PRODNAMES,PRIORGROUP,PRODNAME,SUFFIX,PRIORITY)
  84.   pred_first(PRODNAME,SUFFIX,PRIORITY,FIRSTLIST)
  85.   suffix(INTEGER)
  86.   difflist(INTEGER)
  87.   clausevar(PRODNAME,INTEGER)
  88.   outptermvar(PRODNAME,INTEGER)
  89.   decl(STRINGLIST,PRODNAMES)
  90.   decltok(STRING,TOKK)
  91.   exist_prior(PRODNAME,PRIORITY)
  92.   catchallflag
  93.   constinhead
  94.   userprod(PRODNAME)
  95.   userdom(PRODNAME)
  96.  
  97.   /* USER INTERFACE */
  98.   error(STRING,CURSOR)
  99.   source(STRING)
  100.   filename(STRING)
  101.   pdwstate(ROW,COL,SYMBOL,ROW,COL)
  102.   insmode
  103.   lineinpstate(STRING,COL)
  104.   lineinpflag
  105.  
  106.  
  107. GLOBAL PREDICATES
  108.   determ gendomaindef
  109.   determ genparser
  110.   determ getdoml(GRAMTOKL,INTEGER,PRODNAMES)-(i,i,o)
  111.   nondeterm terms(PRODNAME,TERM)-(i,o)
  112.