NEW CLASS LIBRARY /proj/adaptive/www/course/sample-class-libraries/c-nice-small cp: ../Imakefile-modified: No such file or directory Demeter is in /proj/adaptive3/demeter-5.5.1 Running semantic checker ... /proj/adaptive3/demeter-5.5.1/bin/sem-check -i cd.cd sem-check: created the directory notmod. sem-check: created the directory notmod/cds. sem-check: created the directory notmod/tmp. Checking that if a class is used without a label, then the name of this class must contain at least one capital letter ... Checking that the first production is an unparameterized construction production ... Checking that every class is defined exactly once ... Checking that two class names on the right hand side of every repetition production are identical ... Checking that every parameterized class is consistently defined and used ... Checking that formal parameter classes are not used as parameterized classes on the right hand side ... Checking that every alternative of a parameterized alternation class has to use all its formal parameters in the same order ... Checking inheritance cycles ... Expanding parameterization ... sem-check: notmod/cds/cd-param-exp created. Checking that all alternatives are defined as either construction classes or alternation classes that will eventually be defined by construction classes ... Checking whether the class names and label names are the keywords of C++ Demeter... Expanding common parts ... Expanding inherit classes ... sem-check: notmod/cds/cd-inh-exp created. Checking that the part names of every vertex are unique ... sem-check: notmod/cds/cd-com-exp created. sem-check: notmod/cds/cd-parse created. sem-check: notmod/cds/cd-print created. Checking the Inductiveness Axiom... Checking whether there is some left recursion ... Checking LL1 conditions ... Computing first sets ... Computing follow sets ... printing first sets and follow sets into cd-ffsets... sem-check: notmod/cds/cd-ffsets created. Checking LL1 conditions ... sem-check: notmod/cds/cd-ll1-corrected created. Semantic check passed. make[1]: Entering directory `/export/saentis4/www/course/sample-class-libraries/c-nice-small/generated' Running C++ code generator ... /proj/adaptive3/demeter-5.5.1/bin/generate SI UNKNOWN "" generate: creating intermediate notation in notmod/cds/cd-inter ... generate: creating /export/saentis4/www/course/sample-class-libraries/c-nice-small/generated/notmod/def/UNKNOWN.h (class definitions) ... generate: creating /export/saentis4/www/course/sample-class-libraries/c-nice-small/generated/notmod/def/UNKNOWN-DEM.C (non-inline functions) ... generate: creating main.C.sample ... generate: creating scanner/lex-syntax ... /proj/adaptive3/demeter-5.5.1/bin/gen-hash notmod/cds/cd-param-exp UNKNOWN dh > notmod/def/make_instance.info Demeter is in /proj/adaptive3/demeter-5.5.1 make[1]: Leaving directory `/export/saentis4/www/course/sample-class-libraries/c-nice-small/generated' Running propagation pattern compiler ... if test x = x""; then /proj/adaptive3/demeter-5.5.1/bin/propagate UNKNOWN -i; else /proj/adaptive3/demeter-5.5.1/bin/propagate UNKNOWN -i -c ; fi propagate: reading notmod/cds/cd-param-exp ... propagate: searching propagation pattern files in ./ ... propagate: parsing ./nice-small.pp propagate: ./inter-pps created. propagate: propagating *operation* int count_inheritance_rels ( ) *init* (@ 0 @) propagate: ./inter-pps/nice-small-1..pp created. propagate: generating C++ code .. propagate: calculating traversal graph ... propagate: printing traversal graph ... propagate: ./inter-pps/nice-small-1.trv created. propagate: evaluating transportation directives ... propagate: evaluating code fragments ... propagate: generating C++ code ... propagate: ./nice-small-DEM.C created. Generating prototypes ... /proj/adaptive3/demeter-5.5.1/bin/headers Copyright (C) 1991, Northeastern University. All rights reserved. headers: checking time stamps ... headers: reading notmod/cds/cd-param-exp ... headers: reading ./main.C ... headers: reading ./nice-small-DEM.C ... headers: please wait. Updating header files in notmod/headers/ ... headers: notmod/headers/Adj.h created. headers: notmod/headers/Adj_list.h created. headers: notmod/headers/Alternat.h created. headers: notmod/headers/Any_vertex.h created. headers: notmod/headers/Any_vertex_list.h created. headers: notmod/headers/Cd_graph.h created. headers: notmod/headers/Construct.h created. headers: notmod/headers/Empty.h created. headers: notmod/headers/Empty_cd_graph.h created. headers: notmod/headers/Labeled_vertex.h created. headers: notmod/headers/Nany_vertex_list.h created. headers: notmod/headers/Neighbors.h created. headers: notmod/headers/Syntax_vertex.h created. headers: notmod/headers/Vertex.h created. Running preprocessor ... for _dir_ in . notmod/headers scanner notmod/def; do /proj/adaptive3/demeter-5.5.1/bin/comp-pp nosuffix notmod/cds/cd-param-exp UNKNOWN -p notmod/`/proj/adaptive3/demeter-5.5.1/bin/get-cpu` $_dir_/?*.[cCh]; ls ?*.[cCh] >> notmod/tmp/filelist; done comp-pp: notmod/sun4/global.h created. comp-pp: notmod/sun4/main.C created. comp-pp: notmod/sun4/nice-small-DEM.C created. comp-pp: notmod/sun4/user-calls.h created. comp-pp: notmod/sun4/Adj.h created. comp-pp: notmod/sun4/Adj_list.h created. comp-pp: notmod/sun4/Alternat.h created. comp-pp: notmod/sun4/Any_vertex.h created. comp-pp: notmod/sun4/Any_vertex_list.h created. comp-pp: notmod/sun4/Cd_graph.h created. comp-pp: notmod/sun4/Construct.h created. comp-pp: notmod/sun4/Empty.h created. comp-pp: notmod/sun4/Empty_cd_graph.h created. comp-pp: notmod/sun4/Labeled_vertex.h created. comp-pp: notmod/sun4/Nany_vertex_list.h created. comp-pp: notmod/sun4/Neighbors.h created. comp-pp: notmod/sun4/Syntax_vertex.h created. comp-pp: notmod/sun4/Vertex.h created. comp-pp: notmod/sun4/lex.yy.c created. comp-pp: notmod/sun4/UNKNOWN-DEM.C created. comp-pp: notmod/sun4/UNKNOWN.h created. comp-pp: notmod/sun4/UNKNOWN_make_instance-DEM.C created. comp-pp: notmod/sun4/make_instance-DEM.C created. Demeter is in /proj/adaptive3/demeter-5.5.1 make depend make[1]: Entering directory `/export/saentis4/www/course/sample-class-libraries/c-nice-small/generated' depending in ./notmod... make[2]: Entering directory `/export/saentis4/www/course/sample-class-libraries/c-nice-small/generated/notmod' depending in ./sun4... make[3]: Entering directory `/export/saentis4/www/course/sample-class-libraries/c-nice-small/generated/notmod/sun4' /proj/adaptive3/demeter-5.5.1/util/makedepend/makedepend -I/local/apps/objectcenter/clc++/sparc-sunos4/incl -- -I/proj/adaptive3/demeter-5.5.1/include -I/proj/adaptive3/demeter-5.5.1 -DSI -- main.C make_instance-DEM.C lex.yy.c nice-small-DEM.C UNKNOWN-DEM.C UNKNOWN_make_instance-DEM.C make[3]: Leaving directory `/export/saentis4/www/course/sample-class-libraries/c-nice-small/generated/notmod/sun4' make[2]: Leaving directory `/export/saentis4/www/course/sample-class-libraries/c-nice-small/generated/notmod' make[1]: Leaving directory `/export/saentis4/www/course/sample-class-libraries/c-nice-small/generated' making all in ./notmod... make[1]: Entering directory `/export/saentis4/www/course/sample-class-libraries/c-nice-small/generated/notmod' making all in ./sun4... make[2]: Entering directory `/export/saentis4/www/course/sample-class-libraries/c-nice-small/generated/notmod/sun4' rm -f main.o CC -c -g -pipe -I/proj/adaptive3/demeter-5.5.1/include -I/proj/adaptive3/demeter-5.5.1 -DSI main.C CC +g main.C: "main.C", line 21: warning: envp not used cc -c -g -pipe -I/proj/adaptive3/demeter-5.5.1/include -I/proj/adaptive3/demeter-5.5.1 -DSI main.c rm -f make_instance-DEM.o CC -c -g -pipe -I/proj/adaptive3/demeter-5.5.1/include -I/proj/adaptive3/demeter-5.5.1 -DSI make_instance-DEM.C CC +g make_instance-DEM.C: cc -c -g -pipe -I/proj/adaptive3/demeter-5.5.1/include -I/proj/adaptive3/demeter-5.5.1 -DSI make_instance-DEM.c rm -f lex.yy.o cc -c -g -pipe -I/proj/adaptive3/demeter-5.5.1/include -I/proj/adaptive3/demeter-5.5.1 -DSI lex.yy.c rm -f nice-small-DEM.o CC -c -g -pipe -I/proj/adaptive3/demeter-5.5.1/include -I/proj/adaptive3/demeter-5.5.1 -DSI nice-small-DEM.C CC +g nice-small-DEM.C: "nice-small-DEM.C", line 64: warning: return_val not used "nice-small-DEM.C", line 104: warning: return_val not used cc -c -g -pipe -I/proj/adaptive3/demeter-5.5.1/include -I/proj/adaptive3/demeter-5.5.1 -DSI nice-small-DEM.c rm -f UNKNOWN-DEM.o CC -c -g -pipe -I/proj/adaptive3/demeter-5.5.1/include -I/proj/adaptive3/demeter-5.5.1 -DSI UNKNOWN-DEM.C CC +g UNKNOWN-DEM.C: "UNKNOWN-DEM.C", line 720: warning: strm not used "UNKNOWN-DEM.C", line 746: warning: strm not used "UNKNOWN-DEM.C", line 771: warning: strm not used "UNKNOWN-DEM.C", line 777: warning: strm not used cc -c -g -pipe -I/proj/adaptive3/demeter-5.5.1/include -I/proj/adaptive3/demeter-5.5.1 -DSI UNKNOWN-DEM.c rm -f UNKNOWN_make_instance-DEM.o CC -c -g -pipe -I/proj/adaptive3/demeter-5.5.1/include -I/proj/adaptive3/demeter-5.5.1 -DSI UNKNOWN_make_instance-DEM.C CC +g UNKNOWN_make_instance-DEM.C: cc -c -g -pipe -I/proj/adaptive3/demeter-5.5.1/include -I/proj/adaptive3/demeter-5.5.1 -DSI UNKNOWN_make_instance-DEM.c rm -f run-exec if [ `basename CC` = gcc ]; then \ CC -I/proj/adaptive3/demeter-5.5.1/include -I/proj/adaptive3/demeter-5.5.1 -o run-exec main.o make_instance-DEM.o lex.yy.o nice-small-DEM.o UNKNOWN-DEM.o UNKNOWN_make_instance-DEM.o -g -pipe /proj/adaptive3/demeter-5.5.1/lib-SI/sun4/libdemeterCC.a -ll -L/local/apps/X11R5/lib -lg++;\ else CC -I/proj/adaptive3/demeter-5.5.1/include -I/proj/adaptive3/demeter-5.5.1 -o run-exec main.o make_instance-DEM.o lex.yy.o nice-small-DEM.o UNKNOWN-DEM.o UNKNOWN_make_instance-DEM.o -g -pipe /proj/adaptive3/demeter-5.5.1/lib-SI/sun4/libdemeterCC.a -ll -L/local/apps/X11R5/lib ;\ fi cc -L/amd/tigana/export/sun4-local/apps/objectcenter-2.0.0/clc++/sparc-sunos4 -o /export/saentis4/www/course/sample-class-libraries/c-nice-small/generated/notmod/sun4/run-exec -g -I/proj/adaptive3/demeter-5.5.1/include -I/proj/adaptive3/demeter-5.5.1 main.o make_instance-DEM.o lex.yy.o nice-small-DEM.o UNKNOWN-DEM.o UNKNOWN_make_instance-DEM.o -pipe /proj/adaptive3/demeter-5.5.1/lib-SI/sun4/libdemeterCC.a -ll -L/local/apps/X11R5/lib -lC make[2]: Leaving directory `/export/saentis4/www/course/sample-class-libraries/c-nice-small/generated/notmod/sun4' make[1]: Leaving directory `/export/saentis4/www/course/sample-class-libraries/c-nice-small/generated/notmod' cp: No match. Running propagation pattern compiler ... if test x = x""; then /proj/adaptive3/demeter-5.5.1/bin/propagate UNKNOWN -i; else /proj/adaptive3/demeter-5.5.1/bin/propagate UNKNOWN -i -c ; fi propagate: There is no need to propagate. Generating prototypes ... /proj/adaptive3/demeter-5.5.1/bin/headers Copyright (C) 1991, Northeastern University. All rights reserved. headers: checking time stamps ... All header files are up to date. Running preprocessor ... for _dir_ in . notmod/headers scanner notmod/def; do /proj/adaptive3/demeter-5.5.1/bin/comp-pp nosuffix notmod/cds/cd-param-exp UNKNOWN -p notmod/`/proj/adaptive3/demeter-5.5.1/bin/get-cpu` $_dir_/?*.[cCh]; ls ?*.[cCh] >> notmod/tmp/filelist; done mv Makefile Makefile.bak Demeter is in /proj/adaptive3/demeter-5.5.1 make depend make[1]: Entering directory `/export/saentis4/www/course/sample-class-libraries/c-nice-small/generated' depending in ./notmod... make[2]: Entering directory `/export/saentis4/www/course/sample-class-libraries/c-nice-small/generated/notmod' depending in ./sun4... make[3]: Entering directory `/export/saentis4/www/course/sample-class-libraries/c-nice-small/generated/notmod/sun4' /proj/adaptive3/demeter-5.5.1/util/makedepend/makedepend -I/local/apps/objectcenter/clc++/sparc-sunos4/incl -- -I/proj/adaptive3/demeter-5.5.1/include -I/proj/adaptive3/demeter-5.5.1 -DSI -- main.C make_instance-DEM.C lex.yy.c nice-small-DEM.C UNKNOWN-DEM.C UNKNOWN_make_instance-DEM.C make[3]: Leaving directory `/export/saentis4/www/course/sample-class-libraries/c-nice-small/generated/notmod/sun4' make[2]: Leaving directory `/export/saentis4/www/course/sample-class-libraries/c-nice-small/generated/notmod' make[1]: Leaving directory `/export/saentis4/www/course/sample-class-libraries/c-nice-small/generated' making all in ./notmod... make[1]: Entering directory `/export/saentis4/www/course/sample-class-libraries/c-nice-small/generated/notmod' making all in ./sun4... make[2]: Entering directory `/export/saentis4/www/course/sample-class-libraries/c-nice-small/generated/notmod/sun4' make[2]: Nothing to be done for `all'. make[2]: Leaving directory `/export/saentis4/www/course/sample-class-libraries/c-nice-small/generated/notmod/sun4' make[1]: Leaving directory `/export/saentis4/www/course/sample-class-libraries/c-nice-small/generated/notmod' Parsing in object in: demeter-input. Drawing the parsed object: Cd_graph HAS 2 PARTS( Adj HAS 2 PARTS( Vertex HAS 1 PART( DemIdent Cd_graph ) Construct HAS 1 PART( Nany_vertex_list HAS 2 PARTS( Labeled_vertex HAS 2 PARTS( DemIdent first Vertex HAS 1 PART( DemIdent Adj )) Nany_vertex_list HAS 2 PARTS( Labeled_vertex HAS 2 PARTS( DemIdent rest Vertex HAS 1 PART( DemIdent Adj_list )) Empty HAS 0 PART())))) Cd_graph HAS 2 PARTS( Adj HAS 2 PARTS( Vertex HAS 1 PART( DemIdent Adj ) Construct HAS 1 PART( Nany_vertex_list HAS 2 PARTS( Labeled_vertex HAS 2 PARTS( DemIdent vertex Vertex HAS 1 PART( DemIdent Vertex )) Nany_vertex_list HAS 2 PARTS( Labeled_vertex HAS 2 PARTS( DemIdent ns Vertex HAS 1 PART( DemIdent Neighbors )) Nany_vertex_list HAS 2 PARTS( Syntax_vertex HAS 1 PART( DemString "." ) Empty HAS 0 PART()))))) Cd_graph HAS 2 PARTS( Adj HAS 2 PARTS( Vertex HAS 1 PART( DemIdent Neighbors ) Alternat HAS 2 PARTS( Vertex HAS 1 PART( DemIdent Construct ) Vertex HAS 1 PART( DemIdent Alternat ))) Cd_graph HAS 2 PARTS( Adj HAS 2 PARTS( Vertex HAS 1 PART( DemIdent Construct ) Construct HAS 1 PART( Nany_vertex_list HAS 2 PARTS( Syntax_vertex HAS 1 PART( DemString "=" ) Nany_vertex_list HAS 2 PARTS( Labeled_vertex HAS 2 PARTS( DemIdent c_ns Vertex HAS 1 PART( DemIdent Any_vertex_list )) Empty HAS 0 PART())))) Cd_graph HAS 2 PARTS( Adj HAS 2 PARTS( Vertex HAS 1 PART( DemIdent Alternat ) Construct HAS 1 PART( Nany_vertex_list HAS 2 PARTS( Syntax_vertex HAS 1 PART( DemString ":" ) Nany_vertex_list HAS 2 PARTS( Labeled_vertex HAS 2 PARTS( DemIdent first Vertex HAS 1 PART( DemIdent Vertex )) Nany_vertex_list HAS 2 PARTS( Syntax_vertex HAS 1 PART( DemString "|" ) Nany_vertex_list HAS 2 PARTS( Labeled_vertex HAS 2 PARTS( DemIdent second Vertex HAS 1 PART( DemIdent Vertex )) Empty HAS 0 PART())))))) Cd_graph HAS 2 PARTS( Adj HAS 2 PARTS( Vertex HAS 1 PART( DemIdent Any_vertex ) Alternat HAS 2 PARTS( Vertex HAS 1 PART( DemIdent Labeled_vertex ) Vertex HAS 1 PART( DemIdent Syntax_vertex ))) Cd_graph HAS 2 PARTS( Adj HAS 2 PARTS( Vertex HAS 1 PART( DemIdent Syntax_vertex ) Construct HAS 1 PART( Nany_vertex_list HAS 2 PARTS( Labeled_vertex HAS 2 PARTS( DemIdent string Vertex HAS 1 PART( DemIdent DemString )) Empty HAS 0 PART()))) Cd_graph HAS 2 PARTS( Adj HAS 2 PARTS( Vertex HAS 1 PART( DemIdent Labeled_vertex ) Construct HAS 1 PART( Nany_vertex_list HAS 2 PARTS( Syntax_vertex HAS 1 PART( DemString "<" ) Nany_vertex_list HAS 2 PARTS( Labeled_vertex HAS 2 PARTS( DemIdent label_name Vertex HAS 1 PART( DemIdent DemIdent )) Nany_vertex_list HAS 2 PARTS( Syntax_vertex HAS 1 PART( DemString ">" ) Nany_vertex_list HAS 2 PARTS( Labeled_vertex HAS 2 PARTS( DemIdent class_name Vertex HAS 1 PART( DemIdent Vertex )) Empty HAS 0 PART())))))) Cd_graph HAS 2 PARTS( Adj HAS 2 PARTS( Vertex HAS 1 PART( DemIdent Adj_list ) Alternat HAS 2 PARTS( Vertex HAS 1 PART( DemIdent Empty_cd_graph ) Vertex HAS 1 PART( DemIdent Cd_graph ))) Cd_graph HAS 2 PARTS( Adj HAS 2 PARTS( Vertex HAS 1 PART( DemIdent Any_vertex_list ) Alternat HAS 2 PARTS( Vertex HAS 1 PART( DemIdent Empty ) Vertex HAS 1 PART( DemIdent Nany_vertex_list ))) Cd_graph HAS 2 PARTS( Adj HAS 2 PARTS( Vertex HAS 1 PART( DemIdent Nany_vertex_list ) Construct HAS 1 PART( Nany_vertex_list HAS 2 PARTS( Labeled_vertex HAS 2 PARTS( DemIdent first Vertex HAS 1 PART( DemIdent Any_vertex )) Nany_vertex_list HAS 2 PARTS( Labeled_vertex HAS 2 PARTS( DemIdent rest Vertex HAS 1 PART( DemIdent Any_vertex_list )) Empty HAS 0 PART())))) Cd_graph HAS 2 PARTS( Adj HAS 2 PARTS( Vertex HAS 1 PART( DemIdent Empty ) Construct HAS 1 PART( Empty HAS 0 PART())) Cd_graph HAS 2 PARTS( Adj HAS 2 PARTS( Vertex HAS 1 PART( DemIdent Empty_cd_graph ) Construct HAS 1 PART( Empty HAS 0 PART())) Cd_graph HAS 2 PARTS( Adj HAS 2 PARTS( Vertex HAS 1 PART( DemIdent Vertex ) Construct HAS 1 PART( Nany_vertex_list HAS 2 PARTS( Labeled_vertex HAS 2 PARTS( DemIdent name Vertex HAS 1 PART( DemIdent DemIdent )) Empty HAS 0 PART()))) Empty_cd_graph HAS 0 PART())))))))))))))) End of drawing. Copying the object. Displaying the copied object as a tree: : Cd_graph ( < first > : Adj ( < vertex > : Vertex ( < name > : DemIdent "Cd_graph" ) < ns > : Construct ( < c_ns > : Nany_vertex_list ( < first > : Labeled_vertex ( < label_name > : DemIdent "first" < class_name > : Vertex ( < name > : DemIdent "Adj" ) ) < rest > : Nany_vertex_list ( < first > : Labeled_vertex ( < label_name > : DemIdent "rest" < class_name > : Vertex ( < name > : DemIdent "Adj_list" ) ) < rest > : Empty ( ) ) ) ) ) < rest > : Cd_graph ( < first > : Adj ( < vertex > : Vertex ( < name > : DemIdent "Adj" ) < ns > : Construct ( < c_ns > : Nany_vertex_list ( < first > : Labeled_vertex ( < label_name > : DemIdent "vertex" < class_name > : Vertex ( < name > : DemIdent "Vertex" ) ) < rest > : Nany_vertex_list ( < first > : Labeled_vertex ( < label_name > : DemIdent "ns" < class_name > : Vertex ( < name > : DemIdent "Neighbors" ) ) < rest > : Nany_vertex_list ( < first > : Syntax_vertex ( < string > : DemString "." ) < rest > : Empty ( ) ) ) ) ) ) < rest > : Cd_graph ( < first > : Adj ( < vertex > : Vertex ( < name > : DemIdent "Neighbors" ) < ns > : Alternat ( < first > : Vertex ( < name > : DemIdent "Construct" ) < second > : Vertex ( < name > : DemIdent "Alternat" ) ) ) < rest > : Cd_graph ( < first > : Adj ( < vertex > : Vertex ( < name > : DemIdent "Construct" ) < ns > : Construct ( < c_ns > : Nany_vertex_list ( < first > : Syntax_vertex ( < string > : DemString "=" ) < rest > : Nany_vertex_list ( < first > : Labeled_vertex ( < label_name > : DemIdent "c_ns" < class_name > : Vertex ( < name > : DemIdent "Any_vertex_list" ) ) < rest > : Empty ( ) ) ) ) ) < rest > : Cd_graph ( < first > : Adj ( < vertex > : Vertex ( < name > : DemIdent "Alternat" ) < ns > : Construct ( < c_ns > : Nany_vertex_list ( < first > : Syntax_vertex ( < string > : DemString ":" ) < rest > : Nany_vertex_list ( < first > : Labeled_vertex ( < label_name > : DemIdent "first" < class_name > : Vertex ( < name > : DemIdent "Vertex" ) ) < rest > : Nany_vertex_list ( < first > : Syntax_vertex ( < string > : DemString "|" ) < rest > : Nany_vertex_list ( < first > : Labeled_vertex ( < label_name > : DemIdent "second" < class_name > : Vertex ( < name > : DemIdent "Vertex" ) ) < rest > : Empty ( ) ) ) ) ) ) ) < rest > : Cd_graph ( < first > : Adj ( < vertex > : Vertex ( < name > : DemIdent "Any_vertex" ) < ns > : Alternat ( < first > : Vertex ( < name > : DemIdent "Labeled_vertex" ) < second > : Vertex ( < name > : DemIdent "Syntax_vertex" ) ) ) < rest > : Cd_graph ( < first > : Adj ( < vertex > : Vertex ( < name > : DemIdent "Syntax_vertex" ) < ns > : Construct ( < c_ns > : Nany_vertex_list ( < first > : Labeled_vertex ( < label_name > : DemIdent "string" < class_name > : Vertex ( < name > : DemIdent "DemString" ) ) < rest > : Empty ( ) ) ) ) < rest > : Cd_graph ( < first > : Adj ( < vertex > : Vertex ( < name > : DemIdent "Labeled_vertex" ) < ns > : Construct ( < c_ns > : Nany_vertex_list ( < first > : Syntax_vertex ( < string > : DemString "<" ) < rest > : Nany_vertex_list ( < first > : Labeled_vertex ( < label_name > : DemIdent "label_name" < class_name > : Vertex ( < name > : DemIdent "DemIdent" ) ) < rest > : Nany_vertex_list ( < first > : Syntax_vertex ( < string > : DemString ">" ) < rest > : Nany_vertex_list ( < first > : Labeled_vertex ( < label_name > : DemIdent "class_name" < class_name > : Vertex ( < name > : DemIdent "Vertex" ) ) < rest > : Empty ( ) ) ) ) ) ) ) < rest > : Cd_graph ( < first > : Adj ( < vertex > : Vertex ( < name > : DemIdent "Adj_list" ) < ns > : Alternat ( < first > : Vertex ( < name > : DemIdent "Empty_cd_graph" ) < second > : Vertex ( < name > : DemIdent "Cd_graph" ) ) ) < rest > : Cd_graph ( < first > : Adj ( < vertex > : Vertex ( < name > : DemIdent "Any_vertex_list" ) < ns > : Alternat ( < first > : Vertex ( < name > : DemIdent "Empty" ) < second > : Vertex ( < name > : DemIdent "Nany_vertex_list" ) ) ) < rest > : Cd_graph ( < first > : Adj ( < vertex > : Vertex ( < name > : DemIdent "Nany_vertex_list" ) < ns > : Construct ( < c_ns > : Nany_vertex_list ( < first > : Labeled_vertex ( < label_name > : DemIdent "first" < class_name > : Vertex ( < name > : DemIdent "Any_vertex" ) ) < rest > : Nany_vertex_list ( < first > : Labeled_vertex ( < label_name > : DemIdent "rest" < class_name > : Vertex ( < name > : DemIdent "Any_vertex_list" ) ) < rest > : Empty ( ) ) ) ) ) < rest > : Cd_graph ( < first > : Adj ( < vertex > : Vertex ( < name > : DemIdent "Empty" ) < ns > : Construct ( < c_ns > : Empty ( ) ) ) < rest > : Cd_graph ( < first > : Adj ( < vertex > : Vertex ( < name > : DemIdent "Empty_cd_graph" ) < ns > : Construct ( < c_ns > : Empty ( ) ) ) < rest > : Cd_graph ( < first > : Adj ( < vertex > : Vertex ( < name > : DemIdent "Vertex" ) < ns > : Construct ( < c_ns > : Nany_vertex_list ( < first > : Labeled_vertex ( < label_name > : DemIdent "name" < class_name > : Vertex ( < name > : DemIdent "DemIdent" ) ) < rest > : Empty ( ) ) ) ) < rest > : Empty_cd_graph ( ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) End of display. Comparing the two objects: copied and original object are equal Pretty printing the parsed object: Cd_graph = < first > Adj < rest > Adj_list . Adj = < vertex > Vertex < ns > Neighbors "." . Neighbors : Construct | Alternat . Construct = "=" < c_ns > Any_vertex_list . Alternat = ":" < first > Vertex "|" < second > Vertex . Any_vertex : Labeled_vertex | Syntax_vertex . Syntax_vertex = < string > DemString . Labeled_vertex = "<" < label_name > DemIdent ">" < class_name > Vertex . Adj_list : Empty_cd_graph | Cd_graph . Any_vertex_list : Empty | Nany_vertex_list . Nany_vertex_list = < first > Any_vertex < rest > Any_vertex_list . Empty = . Empty_cd_graph = . Vertex = < name > DemIdent . End of printing. Selftest of generic parser/printer: g_parse and g_parse( g_print( g_parse ) ) are equal. Selftest passed. >> int Cd_graph::count_inheritance_rels(), "nice-small-DEM.C", line 7 >> void Cd_graph::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 17 >> void Adj::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 44 >> void Neighbors::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 66 >> at Construct , *** PREMATURELY TERMINATED *** , "nice-small-DEM.C", line 68 << at Construct , *** PREMATURELY TERMINATED *** , "nice-small-DEM.C", line 68 << void Neighbors::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 66 << void Adj::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 44 >> void Cd_graph::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 17 >> void Adj::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 44 >> void Neighbors::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 66 >> at Construct , *** PREMATURELY TERMINATED *** , "nice-small-DEM.C", line 68 << at Construct , *** PREMATURELY TERMINATED *** , "nice-small-DEM.C", line 68 << void Neighbors::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 66 << void Adj::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 44 >> void Cd_graph::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 17 >> void Adj::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 44 >> void Alternat::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 79 >> void Vertex::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 116 << void Vertex::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 116 >> void Vertex::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 116 << void Vertex::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 116 << void Alternat::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 79 << void Adj::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 44 >> void Cd_graph::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 17 >> void Adj::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 44 >> void Neighbors::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 66 >> at Construct , *** PREMATURELY TERMINATED *** , "nice-small-DEM.C", line 68 << at Construct , *** PREMATURELY TERMINATED *** , "nice-small-DEM.C", line 68 << void Neighbors::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 66 << void Adj::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 44 >> void Cd_graph::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 17 >> void Adj::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 44 >> void Neighbors::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 66 >> at Construct , *** PREMATURELY TERMINATED *** , "nice-small-DEM.C", line 68 << at Construct , *** PREMATURELY TERMINATED *** , "nice-small-DEM.C", line 68 << void Neighbors::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 66 << void Adj::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 44 >> void Cd_graph::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 17 >> void Adj::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 44 >> void Alternat::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 79 >> void Vertex::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 116 << void Vertex::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 116 >> void Vertex::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 116 << void Vertex::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 116 << void Alternat::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 79 << void Adj::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 44 >> void Cd_graph::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 17 >> void Adj::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 44 >> void Neighbors::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 66 >> at Construct , *** PREMATURELY TERMINATED *** , "nice-small-DEM.C", line 68 << at Construct , *** PREMATURELY TERMINATED *** , "nice-small-DEM.C", line 68 << void Neighbors::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 66 << void Adj::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 44 >> void Cd_graph::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 17 >> void Adj::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 44 >> void Neighbors::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 66 >> at Construct , *** PREMATURELY TERMINATED *** , "nice-small-DEM.C", line 68 << at Construct , *** PREMATURELY TERMINATED *** , "nice-small-DEM.C", line 68 << void Neighbors::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 66 << void Adj::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 44 >> void Cd_graph::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 17 >> void Adj::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 44 >> void Alternat::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 79 >> void Vertex::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 116 << void Vertex::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 116 >> void Vertex::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 116 << void Vertex::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 116 << void Alternat::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 79 << void Adj::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 44 >> void Cd_graph::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 17 >> void Adj::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 44 >> void Alternat::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 79 >> void Vertex::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 116 << void Vertex::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 116 >> void Vertex::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 116 << void Vertex::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 116 << void Alternat::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 79 << void Adj::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 44 >> void Cd_graph::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 17 >> void Adj::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 44 >> void Neighbors::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 66 >> at Construct , *** PREMATURELY TERMINATED *** , "nice-small-DEM.C", line 68 << at Construct , *** PREMATURELY TERMINATED *** , "nice-small-DEM.C", line 68 << void Neighbors::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 66 << void Adj::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 44 >> void Cd_graph::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 17 >> void Adj::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 44 >> void Neighbors::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 66 >> at Construct , *** PREMATURELY TERMINATED *** , "nice-small-DEM.C", line 68 << at Construct , *** PREMATURELY TERMINATED *** , "nice-small-DEM.C", line 68 << void Neighbors::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 66 << void Adj::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 44 >> void Cd_graph::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 17 >> void Adj::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 44 >> void Neighbors::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 66 >> at Construct , *** PREMATURELY TERMINATED *** , "nice-small-DEM.C", line 68 << at Construct , *** PREMATURELY TERMINATED *** , "nice-small-DEM.C", line 68 << void Neighbors::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 66 << void Adj::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 44 >> void Cd_graph::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 17 >> void Adj::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 44 >> void Neighbors::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 66 >> at Construct , *** PREMATURELY TERMINATED *** , "nice-small-DEM.C", line 68 << at Construct , *** PREMATURELY TERMINATED *** , "nice-small-DEM.C", line 68 << void Neighbors::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 66 << void Adj::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 44 >> void Adj_list::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 106 >> at Empty_cd_graph , *** PREMATURELY TERMINATED *** , "nice-small-DEM.C", line 108 << at Empty_cd_graph , *** PREMATURELY TERMINATED *** , "nice-small-DEM.C", line 108 << void Adj_list::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 106 << void Cd_graph::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 17 << void Cd_graph::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 17 << void Cd_graph::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 17 << void Cd_graph::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 17 << void Cd_graph::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 17 << void Cd_graph::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 17 << void Cd_graph::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 17 << void Cd_graph::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 17 << void Cd_graph::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 17 << void Cd_graph::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 17 << void Cd_graph::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 17 << void Cd_graph::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 17 << void Cd_graph::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 17 << void Cd_graph::count_inheritance_rels_(int& return_val), "nice-small-DEM.C", line 17 << int Cd_graph::count_inheritance_rels(), "nice-small-DEM.C", line 7 *** inheritance count *** 8 GCHECK Success: this is a legal object of type "Cd_graph" SUCCESS *** FINISHED *** WHERE /proj/adaptive/www/course/sample-class-libraries/c-nice-small/generated cat: ../../includeUNKNOWN: No such file or directory Running propagation pattern compiler ... if test x = x""; then /proj/adaptive3/demeter-5.5.1/bin/propagate UNKNOWN -i; else /proj/adaptive3/demeter-5.5.1/bin/propagate UNKNOWN -i -c ; fi propagate: There is no need to propagate. Generating prototypes ... /proj/adaptive3/demeter-5.5.1/bin/headers Copyright (C) 1991, Northeastern University. All rights reserved. headers: checking time stamps ... All header files are up to date. Running preprocessor ... for _dir_ in . notmod/headers scanner notmod/def; do /proj/adaptive3/demeter-5.5.1/bin/comp-pp nosuffix notmod/cds/cd-param-exp UNKNOWN -p notmod/`/proj/adaptive3/demeter-5.5.1/bin/get-cpu` $_dir_/?*.[cCh]; ls ?*.[cCh] >> notmod/tmp/filelist; done comp-pp: notmod/sun4/code.h created. mv Makefile Makefile.bak Demeter is in /proj/adaptive3/demeter-5.5.1 make depend make[1]: Entering directory `/export/saentis4/www/course/sample-class-libraries/c-nice-small/generated' depending in ./notmod... make[2]: Entering directory `/export/saentis4/www/course/sample-class-libraries/c-nice-small/generated/notmod' depending in ./sun4... make[3]: Entering directory `/export/saentis4/www/course/sample-class-libraries/c-nice-small/generated/notmod/sun4' /proj/adaptive3/demeter-5.5.1/util/makedepend/makedepend -I/local/apps/objectcenter/clc++/sparc-sunos4/incl -- -I/proj/adaptive3/demeter-5.5.1/include -I/proj/adaptive3/demeter-5.5.1 -DSI -- main.C make_instance-DEM.C lex.yy.c nice-small-DEM.C UNKNOWN-DEM.C UNKNOWN_make_instance-DEM.C make[3]: Leaving directory `/export/saentis4/www/course/sample-class-libraries/c-nice-small/generated/notmod/sun4' make[2]: Leaving directory `/export/saentis4/www/course/sample-class-libraries/c-nice-small/generated/notmod' make[1]: Leaving directory `/export/saentis4/www/course/sample-class-libraries/c-nice-small/generated' making all in ./notmod... make[1]: Entering directory `/export/saentis4/www/course/sample-class-libraries/c-nice-small/generated/notmod' making all in ./sun4... make[2]: Entering directory `/export/saentis4/www/course/sample-class-libraries/c-nice-small/generated/notmod/sun4' make[2]: Nothing to be done for `all'. make[2]: Leaving directory `/export/saentis4/www/course/sample-class-libraries/c-nice-small/generated/notmod/sun4' make[1]: Leaving directory `/export/saentis4/www/course/sample-class-libraries/c-nice-small/generated/notmod'