• Christophe Rhodes's avatar
    Prolog syntax improvements: · e4ceed7c
    Christophe Rhodes authored
    * PRINT-OBJECT for PROLOG-LEXEMEs, for less pain while debugging;
    * OPEN-CT production rule from OPEN-CT-LEXEME, because we can;
    * rework the lexer a bit.  Now UPDATE-SYNTAX just invalidates the lex
      as it invalidates the parse, and UPDATE-SYNTAX-FOR-DISPLAY relexes as
      far as it needs to;
    * we need operator-compound-lterm and subclasses, because we cannot
      create multiple nonterminals from one rule: returning
        (make-instance 'lterm :term (make-instance 'foo ...))
      from a production rule leaves some slots in the FOO unfilled;
    * note my own bafflement as to why an apparently infinitely-recursive
      production doesn't recurse infinitely.  It can be fixed when needed,
      but why isn't it triggering?
    This version still gets various aspects of multiline lexemes wrong, but
    it's a lot better than before.
prolog-syntax.lisp 40.5 KB