T A S K : Implement Class Dictionary semantics checker
There are three subtasks which form this project:
a)Checking that every alternative of a parameterized alternation class has to use
all its formal parameters in the same order ...
b) Checking inheritance cycles ...
c) Checking that all alternatives are defined as either construction
classes or alternation classes that will eventually be defined by
construction classes ...
_________________________________________________________________________________________
S T R A T E G Y :
_________________________________________________________________________________________
a) The purpose of this traversal is to check the order of arguments in
parametrized classes. Suppose we have the following:
A(S,T) : C(S,T) | D(S,T) but
A(S,T) : C(S,T) | D(T,S) is illigal
The implementation strategy is the follwing. We are going to traverse down
to ParamClassName and read the parametes into java Vector. Then compare
the order of Vector contents on left side of alternation statement with
right one.
b) We are going to do depth first search to check inheritance cycles.
________________________________________________________________________________________
H I S T O R Y :
_______________________________________________________________________________________
Feb 20 part a
Modified DemJava.cd to its simple version without behavior and visitors.
Added Alternation Checking visitor called AltCheckVisitor and transportation
visitor called ParamTransport.
Feb 21 part a
Created Varray.java file which initializes 2 java vectors and compares
the size of 2 vectors and the order of elements in each.
Feb 25
- Completed part a with few minor cosmetical bugs.
There are 3 cases we have to check:
- 1) A : B (C, F) | D // Size error A size < B size
- 2) A( F, B) : B( B, F) | G( F, B) // Order Error: A order = B order
- 3) A(F) : B | C // Size error A size > B, C size