source: CIVL/examples/languageFeatures/atomicStatement.cvl@ 125b6b5

1.23 2.0 main test-branch
Last change on this file since 125b6b5 was 125b6b5, checked in by Manchun Zheng <zmanchun@…>, 13 years ago

rename model factory's statement methods into fragment methods, and make them return a fragment directly.

git-svn-id: svn://vsl.cis.udel.edu/civl/trunk@344 fb995dde-84ed-4084-dfe6-e5aef3e2452c

  • Property mode set to 100644
File size: 596 bytes
RevLine 
[9705dfd]1int n = 0;
2void foo(){
3 int k = n;
4 k = k + 1;
5}
6
7void main(){
8 int i = 0;
9
10 $atomic{
11 if(i < 0)
12 i = 1;
13 else
14 i = 2;
15 }
16
17 $atomic
18 if(i < 0)
19 i = 1;
20 else
21 i = 2;
22
23 $assert i == 2;
24
25 $atomic{
26 switch(i){
27 case 1: i = 2;
28 case 2: i = 3;
29 default: i = 5;
30 }
31 }
32
33 $assert i == 5;
34
35 $atomic{
36 i = 0;
37 for(int j = 0; j < 10; j++){
38 i += j;
39 }
40 }
41
42 $assert i == 45;
43
[125b6b5]44 $atomic{
45 for(int m = 0; m < 5; m++){
46 $spawn foo();
47 }
48 }
[9705dfd]49
50 //nested atomic and non-pure-local atomic block
51 $atomic{
52 n += 1;
53 $atomic{
54 i+=2;
55 i += 3; }
56 n += 9;
57 }
58
59 $assert n == 10;
60}
Note: See TracBrowser for help on using the repository browser.