This commit was manufactured by cvs2svn to create tag 'buildscript'.
[IRC.git] /
1 Task Analysis:
2
3 Algorithm:
4
5
6
7 1. Obtain the flags for each class in the program(Incase, a class has
8 a super class, the super's flags, if any, are included in the list of
9 flags for the class)
10
11 2. Create a new flagstate for the StartupObject class with the
12 initialstate flag set to true.  Append this flagstate to the queue,
13 QMAIN.
14
15 3. Pop the head of QMAIN and use this flagstate FS to evaluate which
16 task triggers on this.
17
18 4. Add all runtime transitions (external flag changes) from FS to
19 QMAIN and ADJLIST(as edges from FS) ensuring that the new states don't
20 exist in QMAIN.
21
22 5. Iterate through the list of tasks using FS.
23
24 6.      If a task is triggered, 
25
26         a.  If FS satisfies more than one parameter of the task, throw
27 an error stating that this is an illegal operation.
28
29         b.  If 6a is not true, then add a transition for this task to
30 FS using step 7.  Before performing step 7, make sure that the task
31 doesn't already exist as a transition to FS. Keep track of the temp
32 (as TEMP) whose flags form the triggering flagstate.
33
34 7.      Search through the FFANS in this task:
35
36         a.      For NewObject node,  
37
38                 i. If the new object is of a class which has both
39 types of flags, create the new flagstate and append to QMAIN.  Set its
40 set of transitions to the empty set.
41
42         b. For the task exit node, apply the flag changes to the
43 tempflag pairs corresponding to TEMP and create the new flagstate.
44 Add this state along with the task as an Edge to FS in the FS
45 transition set.  Add the state to QMAIN.
46
47         c. For the PRE node, throw an error stating that this type of
48 node isn't supported anymore in Bristlecone.
49
50 8. Repeat steps 3-7 until QMAIN is empty.