imake -I/proj/demeter/demeter/config -DTOPDIR=/proj/demeter/demeter -DCURDIR= -T /proj/demeter/demeter/config/Imake.tmpl sem-check -i cd.cd *** DEMETER SYSTEM/C++ 5.0 *** COPYRIGHT (C) 1993 Northeastern University All rights reserved sem-check: created the directory notmod. sem-check: created the directory notmod/cds. sem-check: created the directory notnod/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 ... Checking that all alternatives are defined as either construction classes or alternation classes that will eventually be defined by construction classes ... Expanding parameterization ... sem-check: notmod/cds/cd-param-exp created. 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 do-generate make[1]: Entering directory `/export/lieber/regression-test/NEW/c-all-kps/generated' if [ ! -d scanner ]; then mkdir scanner; fi if [ ! -d notmod ]; then mkdir notmod; fi if [ ! -d notmod/def ]; then mkdir notmod/def; fi if [ ! -d notmod/cds ]; then mkdir notmod/cds; fi if [ ! -d notmod/headers ]; then mkdir notmod/headers; fi if [ ! -d notmod/logs ]; then mkdir notmod/logs; fi if [ ! -d notmod/include ]; then mkdir notmod/include; fi if [ ! -d notmod/lib ]; then mkdir notmod/lib; fi generate SI UNKNOWN generate: creating intermediate notation in notmod/cds/cd-inter ... generate: creating /export/lieber/regression-test/NEW/c-all-kps/generated/notmod/def/UNKNOWN.h (class definitions) ... generate: creating /export/lieber/regression-test/NEW/c-all-kps/generated/notmod/def/UNKNOWN_DEM.C (non-inline functions) ... generate: creating main.C.sample ... generate: creating scanner/lex-syntax ... gen-hash notmod/cds/cd-param-exp UNKNOWN dh > notmod/def/make_instance.info cat /proj/demeter/demeter/fixed/lex-definitions scanner/lex-syntax /proj/demeter/demeter/fixed/lex-comment /proj/demeter/demeter/fixed/lex-white-space /proj/demeter/demeter/fixed/lex-class-terminals > scanner/lex-DEM.l imake -I/proj/demeter/demeter/config -DTOPDIR=/proj/demeter/demeter -DCURDIR= -T /proj/demeter/demeter/config/Imake.tmpl make[1]: Leaving directory `/export/lieber/regression-test/NEW/c-all-kps/generated' if test x = x""; then propagate UNKNOWN -i; else propagate UNKNOWN -i -c ; fi propagate: reading notmod/cds/cd-param-exp ... propagate: searching propagation pattern files in ./ ... propagate: parsing ./1.pp propagate: ./inter-ppscreated. propagate: ./inter-pps/1-1..pp created. propagate:generating C++ code .. propagate: propagating *operation* E * fPaE ( ) *init* (@ NULL @) propagate: calculating propagation schema ... propagate: printing propagation schema ... propagate: ./inter-pps/1-1.trav created. propagate: evaluating transportation directives ... propagate: evaluating code fragments ... propagate: generating C++ code ... propagate: ./inter-pps/1-2..pp created. propagate:generating C++ code .. propagate: propagating *operation* void fPaM ( ) propagate: calculating propagation schema ... propagate: printing propagation schema ... propagate: ./inter-pps/1-2.trav created. propagate: evaluating transportation directives ... propagate: evaluating code fragments ... propagate: generating C++ code ... propagate: ./inter-pps/1-3..pp created. propagate:generating C++ code .. propagate: propagating *operation* void fPaPaExp ( ) propagate: calculating propagation schema ... propagate: printing propagation schema ... propagate: ./inter-pps/1-3.trav created. propagate: evaluating transportation directives ... propagate: evaluating code fragments ... propagate: generating C++ code ... propagate: ./inter-pps/1-4..pp created. propagate:generating C++ code .. propagate: propagating *operation* void fPaList ( ) propagate: calculating propagation schema ... propagate: printing propagation schema ... propagate: ./inter-pps/1-4.trav created. propagate: evaluating transportation directives ... propagate: evaluating code fragments ... propagate: generating C++ code ... propagate: ./inter-pps/1-5..pp created. propagate:generating C++ code .. propagate: propagating *operation* void fTM ( ) propagate: calculating propagation schema ... propagate: printing propagation schema ... propagate: ./inter-pps/1-5.trav created. propagate: evaluating transportation directives ... propagate: evaluating code fragments ... propagate: generating C++ code ... propagate: ./inter-pps/1-6..pp created. propagate:generating C++ code .. propagate: propagating *operation* void fTuTu ( ) propagate: calculating propagation schema ... propagate: printing propagation schema ... propagate: ./inter-pps/1-6.trav created. propagate: evaluating transportation directives ... propagate: evaluating code fragments ... propagate: generating C++ code ... propagate: ./inter-pps/1-7..pp created. propagate:generating C++ code .. propagate: propagating *operation* void fTP ( ) propagate: calculating propagation schema ... propagate: printing propagation schema ... propagate: ./inter-pps/1-7.trav created. propagate: evaluating transportation directives ... propagate: evaluating code fragments ... propagate: generating C++ code ... propagate: ./inter-pps/1-8..pp created. propagate:generating C++ code .. propagate: propagating *operation* void fPriNa ( ) propagate: calculating propagation schema ... propagate: printing propagation schema ... propagate: ./inter-pps/1-8.trav created. propagate: evaluating transportation directives ... propagate: evaluating code fragments ... propagate: generating C++ code ... propagate: ./1-DEM.C created. /proj/demeter/demeter/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 1-DEM.C ... headers: please wait. Updating header files in notmod/headers/ ... headers: notmod/headers/A.h created. headers: notmod/headers/B.h created. headers: notmod/headers/C.h created. headers: notmod/headers/D.h created. headers: notmod/headers/E.h created. headers: notmod/headers/Measure.h created. headers: notmod/headers/Name.h created. headers: notmod/headers/Patchwork.h created. headers: notmod/headers/PatchworkExp.h created. headers: notmod/headers/PrimitiveExp.h created. headers: notmod/headers/PrimitiveExp_List.h created. headers: notmod/headers/SewExp.h created. headers: notmod/headers/TurnExp.h created. for _dir_ in . notmod/headers scanner notmod/def; do comp-pp nosuffix notmod/cds/cd-param-exp UNKNOWN -p notmod/`get-cpu` $_dir_/?*.[cCh]; done comp-pp: notmod/sun4/1-DEM.C created. comp-pp: notmod/sun4/global.h created. comp-pp: notmod/sun4/main.C created. comp-pp: notmod/sun4/user-calls.h created. comp-pp: notmod/sun4/A.h created. comp-pp: notmod/sun4/B.h created. comp-pp: notmod/sun4/C.h created. comp-pp: notmod/sun4/D.h created. comp-pp: notmod/sun4/E.h created. comp-pp: notmod/sun4/Measure.h created. comp-pp: notmod/sun4/Name.h created. comp-pp: notmod/sun4/Patchwork.h created. comp-pp: notmod/sun4/PatchworkExp.h created. comp-pp: notmod/sun4/PrimitiveExp.h created. comp-pp: notmod/sun4/PrimitiveExp_List.h created. comp-pp: notmod/sun4/SewExp.h created. comp-pp: notmod/sun4/TurnExp.h created. comp-pp: notmod/sun4/lex.yy.c created. comp-pp: notmod/sun4/UNKNOWN.h created. comp-pp: notmod/sun4/UNKNOWN_DEM.C created. comp-pp: notmod/sun4/UNKNOWN_make_instance_DEM.C created. comp-pp: notmod/sun4/make_instance_DEM.C created. imake -I/proj/demeter/demeter/config -DTOPDIR=/proj/demeter/demeter -DCURDIR= -T /proj/demeter/demeter/config/Imake.tmpl make[1]: Entering directory `/export/lieber/regression-test/NEW/c-all-kps/generated' depending in /notmod... make[2]: Entering directory `/export/lieber/regression-test/NEW/c-all-kps/generated/notmod' depending in /sun4... make[3]: Entering directory `/export/lieber/regression-test/NEW/c-all-kps/generated/notmod/sun4' /proj/demeter/demeter/util/makedepend/makedepend -I/proj/tools/include/`get-cpu`/CC -s "# DO NOT DELETE" -- -I/proj/demeter/demeter/include -I/proj/demeter/demeter -DSI -- main.C make_instance_DEM.C lex.yy.c 1-DEM.C UNKNOWN_DEM.C UNKNOWN_make_instance_DEM.C make[3]: Leaving directory `/export/lieber/regression-test/NEW/c-all-kps/generated/notmod/sun4' make[2]: Leaving directory `/export/lieber/regression-test/NEW/c-all-kps/generated/notmod' make[1]: Leaving directory `/export/lieber/regression-test/NEW/c-all-kps/generated' making all in /notmod... make[1]: Entering directory `/export/lieber/regression-test/NEW/c-all-kps/generated/notmod' making all in /sun4... make[2]: Entering directory `/export/lieber/regression-test/NEW/c-all-kps/generated/notmod/sun4' rm -f main.o /proj/tools/bin/CC -c -g -pipe -I/proj/demeter/demeter/include -I/proj/demeter/demeter -DSI main.C (AT&T R2.1 sun4)CC +g main.C: "main.C", line 21: warning: envp not used cc -c -g -pipe -I/proj/demeter/demeter/include -I/proj/demeter/demeter -DSI main.c rm -f make_instance_DEM.o /proj/tools/bin/CC -c -g -pipe -I/proj/demeter/demeter/include -I/proj/demeter/demeter -DSI make_instance_DEM.C (AT&T R2.1 sun4)CC +g make_instance_DEM.C: cc -c -g -pipe -I/proj/demeter/demeter/include -I/proj/demeter/demeter -DSI make_instance_DEM.c rm -f lex.yy.o cc -c -g -pipe -I/proj/demeter/demeter/include -I/proj/demeter/demeter -DSI lex.yy.c rm -f 1-DEM.o /proj/tools/bin/CC -c -g -pipe -I/proj/demeter/demeter/include -I/proj/demeter/demeter -DSI 1-DEM.C (AT&T R2.1 sun4)CC +g 1-DEM.C: cc -c -g -pipe -I/proj/demeter/demeter/include -I/proj/demeter/demeter -DSI 1-DEM.c rm -f UNKNOWN_DEM.o /proj/tools/bin/CC -c -g -pipe -I/proj/demeter/demeter/include -I/proj/demeter/demeter -DSI UNKNOWN_DEM.C (AT&T R2.1 sun4)CC +g UNKNOWN_DEM.C: "UNKNOWN_DEM.C", line 738: warning: strm not used cc -c -g -pipe -I/proj/demeter/demeter/include -I/proj/demeter/demeter -DSI UNKNOWN_DEM.c rm -f UNKNOWN_make_instance_DEM.o /proj/tools/bin/CC -c -g -pipe -I/proj/demeter/demeter/include -I/proj/demeter/demeter -DSI UNKNOWN_make_instance_DEM.C (AT&T R2.1 sun4)CC +g UNKNOWN_make_instance_DEM.C: cc -c -g -pipe -I/proj/demeter/demeter/include -I/proj/demeter/demeter -DSI UNKNOWN_make_instance_DEM.c rm -f run-exec /proj/tools/bin/CC -o run-exec main.o make_instance_DEM.o lex.yy.o 1-DEM.o UNKNOWN_DEM.o UNKNOWN_make_instance_DEM.o -g -pipe /proj/demeter/demeter/lib-SI/sun4/libdemeter.a -ll\ -L/local/apps/X11R5/lib cc -L/proj/tools/lib/sun4 -o run-exec -g main.o make_instance_DEM.o lex.yy.o 1-DEM.o UNKNOWN_DEM.o UNKNOWN_make_instance_DEM.o -pipe /proj/demeter/demeter/lib-SI/sun4/libdemeter.a -ll -L/local/apps/X11R5/lib -lC make[2]: Leaving directory `/export/lieber/regression-test/NEW/c-all-kps/generated/notmod/sun4' make[1]: Leaving directory `/export/lieber/regression-test/NEW/c-all-kps/generated/notmod' Parsing in object in: demeter-input. Drawing the parsed object: Patchwork HAS 3 PARTS( PrimitiveExp_List HAS 2 ELEMENTS{ PrimitiveExp HAS 3 PARTS( Name HAS 1 PART( DemIdent aa ) Missing optional part! Missing optional part!) PrimitiveExp HAS 3 PARTS( Name HAS 1 PART( DemIdent bb ) Missing optional part! Missing optional part!)} SewExp HAS 4 PARTS( TurnExp HAS 3 PARTS( SewExp HAS 4 PARTS( PrimitiveExp HAS 3 PARTS( Name HAS 1 PART( DemIdent aa ) Missing optional part! Missing optional part!) TurnExp HAS 3 PARTS( PrimitiveExp HAS 3 PARTS( Name HAS 1 PART( DemIdent bb ) Missing optional part! Missing optional part!) Missing optional part! Missing optional part!) Missing optional part! Missing optional part!) Missing optional part! Missing optional part!) PrimitiveExp HAS 3 PARTS( Name HAS 1 PART( DemIdent bb ) Missing optional part! Missing optional part!) Missing optional part! Missing optional part!) A HAS 2 PARTS( A HAS 2 PARTS( Missing optional part! C HAS 1 PART( E HAS 0 PART())) C HAS 1 PART( E HAS 0 PART()))) End of drawing. Copying the object. Displaying the copied object as a tree: : Patchwork ( < primitives > : PrimitiveExp_List { : PrimitiveExp ( < patternName > : Name ( < v > : DemIdent "aa" ) ) , : PrimitiveExp ( < patternName > : Name ( < v > : DemIdent "bb" ) ) } < pattern > : SewExp ( < arg1 > : TurnExp ( < arg1 > : SewExp ( < arg1 > : PrimitiveExp ( < patternName > : Name ( < v > : DemIdent "aa" ) ) < arg2 > : TurnExp ( < arg1 > : PrimitiveExp ( < patternName > : Name ( < v > : DemIdent "bb" ) ) ) ) ) < arg2 > : PrimitiveExp ( < patternName > : Name ( < v > : DemIdent "bb" ) ) ) < a > : A ( < b > : A ( < c > : C ( < e > : E ( ) ) ) < c > : C ( < e > : E ( ) ) ) ) End of display. Comparing the two objects: copied and original object are equal Pretty printing the parsed object: primitives primitive aa primitive bb description (sew (turn (sew primitive aa (turn primitive bb ) ) ) primitive bb ) a a End of printing. Selftest of generic parser/printer: g_parse and g_parse( g_print( g_parse ) ) are equal. Selftest passed. IN Patchwork::fPaE, "1-DEM.C", line 6 IN Patchwork::fPaE, "1-DEM.C", line 14 IN A::fPaE, "1-DEM.C", line 34 IN A::fPaE, "1-DEM.C", line 34 IN B::fPaE, "1-DEM.C", line 55 IN C::fPaE, "1-DEM.C", line 72 IN D::fPaE, "1-DEM.C", line 89 IN E::fPaE, "1-DEM.C", line 106 OUT E::fPaE, "1-DEM.C", line 106 OUT D::fPaE, "1-DEM.C", line 89 OUT C::fPaE, "1-DEM.C", line 72 OUT B::fPaE, "1-DEM.C", line 55 OUT A::fPaE, "1-DEM.C", line 34 IN B::fPaE, "1-DEM.C", line 55 IN C::fPaE, "1-DEM.C", line 72 IN D::fPaE, "1-DEM.C", line 89 IN E::fPaE, "1-DEM.C", line 106 OUT E::fPaE, "1-DEM.C", line 106 OUT D::fPaE, "1-DEM.C", line 89 OUT C::fPaE, "1-DEM.C", line 72 OUT B::fPaE, "1-DEM.C", line 55 OUT A::fPaE, "1-DEM.C", line 34 OUT Patchwork::fPaE, "1-DEM.C", line 14 OUT Patchwork::fPaE, "1-DEM.C", line 6 *** REQUIRED RESOURCES *** SUCCESS *** FINISHED *** cat: code: No such file or directory if test x = x""; then propagate UNKNOWN -i; else propagate UNKNOWN -i -c ; fi propagate: reading notmod/cds/cd-param-exp ... propagate: searching propagation pattern files in ./ ... propagate: ./1-DEM.C is up to date. /proj/demeter/demeter/bin/headers Copyright (C) 1991, Northeastern University. All rights reserved. headers: checking time stamps ... All header files are up to date. for _dir_ in . notmod/headers scanner notmod/def; do comp-pp nosuffix notmod/cds/cd-param-exp UNKNOWN -p notmod/`get-cpu` $_dir_/?*.[cCh]; done comp-pp: notmod/sun4/code.h created. mv Makefile Makefile.bak imake -I/proj/demeter/demeter/config -DTOPDIR=/proj/demeter/demeter -DCURDIR= -T /proj/demeter/demeter/config/Imake.tmpl make[1]: Entering directory `/export/lieber/regression-test/NEW/c-all-kps/generated' depending in /notmod... make[2]: Entering directory `/export/lieber/regression-test/NEW/c-all-kps/generated/notmod' depending in /sun4... make[3]: Entering directory `/export/lieber/regression-test/NEW/c-all-kps/generated/notmod/sun4' /proj/demeter/demeter/util/makedepend/makedepend -I/proj/tools/include/`get-cpu`/CC -s "# DO NOT DELETE" -- -I/proj/demeter/demeter/include -I/proj/demeter/demeter -DSI -- main.C make_instance_DEM.C lex.yy.c 1-DEM.C UNKNOWN_DEM.C UNKNOWN_make_instance_DEM.C make[3]: Leaving directory `/export/lieber/regression-test/NEW/c-all-kps/generated/notmod/sun4' make[2]: Leaving directory `/export/lieber/regression-test/NEW/c-all-kps/generated/notmod' make[1]: Leaving directory `/export/lieber/regression-test/NEW/c-all-kps/generated' making all in /notmod... make[1]: Entering directory `/export/lieber/regression-test/NEW/c-all-kps/generated/notmod' making all in /sun4... make[2]: Entering directory `/export/lieber/regression-test/NEW/c-all-kps/generated/notmod/sun4' make[2]: Nothing to be done for `all'. make[2]: Leaving directory `/export/lieber/regression-test/NEW/c-all-kps/generated/notmod/sun4' make[1]: Leaving directory `/export/lieber/regression-test/NEW/c-all-kps/generated/notmod'