(1) check(?gOrWs,?X) :- | (2)?X ~ ∖if ?Y ∖then ?Z, !, | (3)reformatToString(?Y, ?YStr), | (4)extractConcepts(?YStr, [ ], ?conceptsInY), | (5)extractPredicates(?YStr, [ ], ?termList1), | (6)filterOutPredicates(?termList1, [ ], ?predicatesInY), | (7) ∖if (∖+ checkAllFramesModes(?gOrWs,READ,?conceptsInY)) | ∖then | (8) (writeln([Error: Illegal access mode in -?gOrWs])@∖prolog,!, | (9)∖false), | (10)∖if (∖+ checkAllPredicatesModes(?gOrWs,READ,?predicatesInY)) | ∖then | (11) (writeln([Error: Illegal access mode in -?gOrWs])@∖prolog,!, | (12)∖false), | (13)decomposeRHS(?Z, [ ], ?allFsOrPs), | (14)reformatToString(?allFsOrPs, ?allFsOrPsStr), | (15)extractConcepts(?allFsOrPsStr, [ ], ?conceptsInZ), | (16) extractPredicates(?allFsOrPsStr, [ ], ?temp), | (17)filterOutPredicates(?temp, [ ], ?predicatesInZ), | (18)∖if (∖+ checkAllFramesModes(?gOrWs,WRITE,?conceptsInZ)) | ∖then | (19) (writeln([Error: Illegal access mode in -?gOrWs])@∖prolog,!, | (20)∖false), | (21)∖if (∖+checkAllPredicatesModes(?gOrWs,WRITE,?predicatesInZ)) | ∖then | (22) (writeln([Error: Illegal access in -?gOrWs])@∖prolog,!, | (23)∖false). | ------------------------------------------------------------------- | (24) checkAllFramesModes(?gOrWS, ?reOrWr,[ ]). | (25) checkAllFramesModes(?gOrWS, ?reOrWr,[?F|?R]):- | (26) checkFrameMode(?gOrWS, ?reOrWr,?F), | (27) checkAllFramesModes(?gOrWS, ?reOrWr,?R). | ------------------------------------------------------------------- | (28) checkFrameMode(GOAL,READ,?F):- | (29) (?F:In ∖or ?F:Out ∖or ?F:Shared ∖or ?F:Static), !. | (30) checkFrameMode(GOAL,WRITE,?F):- | (31) (?F:In ∖or ?F:Shared), !. | (32) checkFrameMode (GOAL,READ,?F):- | (33) writeln([Illegal GOAL READ action for ,?F])@∖prolog, !, ∖false. | (34) checkFrameMode(GOAL,WRITE,?F):- | (35) writeln([Illegal GOAL WRITE action for ,?F])@∖prolog, !, ∖false. |
|