source: CIVL/examples/modelbuilder/arrayLambda.cvl@ 334a244

1.23 2.0 main test-branch
Last change on this file since 334a244 was ce69a5a, checked in by Manchun Zheng <zmanchun@…>, 10 years ago

fixed a bug in the translating array conversion for array literals in CIVL

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

  • Property mode set to 100644
File size: 654 bytes
Line 
1#include<assert.h>
2
3$input int n;
4$input int m;
5$input int A[n];
6$input int B[n][m];
7
8int f(int *x){
9 return x[0]*2;
10}
11
12int main(){
13 int a[n],b[n][m],c;
14 $domain(2) dom=($domain(2)){0 .. n-1, 0 .. m-1};
15
16 a=(int[n]) $lambda(int i) i*2;
17 assert($forall(int k: 0 .. n-1) a[k]==k*2);
18 a=(int[n]) $lambda(int i) A[i]*2;
19 assert($forall(int i: 0 .. n-1) a[i]==A[i]*2);
20 b=(int[n][m]) $lambda(int i, j) i+j;
21 assert($forall(int i: 0 .. n-1; int j: 0 .. m-1) b[i][j]==i+j);
22 b=(int[n][m]) $lambda(int i,j) B[i][j] * 5;
23 assert($forall(int i: 0 .. n-1; int j: 0 .. m-1) b[i][j]==B[i][j]*5);
24 c=f((int[n]) $lambda(int k) a[k]);
25 assert(c==a[0]*2);
26}
Note: See TracBrowser for help on using the repository browser.