[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Making atomic trees



I noticed  a strange behaviour of Centaur while creating atomic trees
with trees as value (i.e.,  ({tree}:atom_class <tree>) -> tree):


; Le-Lisp (by INRIA) version 15.24 ( 2/Janv/91)   [sun4OS4]
MU-Prolog 3.2 - Typol $Revision: 1.1 $

TYPOL : tables read.
error : tables read.
** loadmodule : load interpreted module : Centaur/tables/Trees/environment
Centaur v.1.2 (2.51.41.63) centaur - Wed May   6 92 18:49:48
= ()
? (setq Trees ({name}:formalism 'Trees))
Trees : tables read.
= #[Trees 0 ((((comment_s * ((COMMENT ((meta 0 metavariable) (#[Trees 0 ((((
comment_s * ((COMMENT ((meta 0 metavariable) (#[Trees 0 ((((comment_s * ((
COMMENT ((meta 0 metavariable) (#[Trees 0 ((((comment_s * ((COMMENT ((meta 0
metavariable) (#[Trees 0 ((((comment_s * ((COMMENT ((meta 0 metavariable) ...


? ({name}:operator 'product_every ({name}:formalism 'Trees))
= ((product_every 0 tree) (#[Trees 0 ((((comment_s * ((COMMENT ((meta 0
metavariable) (#[Trees 0 ((((comment_s * ((COMMENT ((meta 0 metavariable) (#[
Trees 0 ((((comment_s * ((COMMENT ((meta 0 metavariable) (#[Trees 0 ((((
comment_s * ((COMMENT ((meta 0 metavariable) (#[Trees 0 ((((comment_s *...


? ({tree}:make ({name}:operator 'product_every ({name}:formalism 'Trees)))
= (((({#:(()):#[]}:product_every 0 {#:(()):#[]}:tree) (#[{#:(()):#[]}:Trees 0
(((({#:(()):#[]}:comment_s {#:(()):#[]}:* (({#:(()):#[]}:COMMENT (({#:(()):#[]
}:meta 0 {#:(()):#[]}:metavariable) (#[{#:(()):#[]}:Trees 0 (((({#:(()):#[]}:
comment_s {#:(()):#[]}:* (({#:(()):#[]}:COMMENT (({#:(()):#[]}:meta 0 {#:((...


? 'a
= {#:(()):#[]}:a

?


Seems that the creation of an atomic tree (with atom class `tree')
without value breaks down the LeLisp printer.

 Is this a bug, or am I just not allowed to build empty atomic
trees???
 


Here is the metal definition of Trees:

---------------------------- Trees.metal ----------------------------

definition of Trees is

  abstract syntax

	product2 -> PRODUCT_EVERY PRODUCT_EVERY ;

    product_every_list  -> PRODUCT_EVERY * ... ;
    product_every -> implemented as TREE ;
	nothing -> implemented as SINGLETON ;    

    Trees         ::= product_every_list product2;
	
    PRODUCT_EVERY ::= product_every nothing ;

end definition

--------------------------- end Trees.metal ---------------------------