Changes between Version 5 and Version 6 of CIVLite
- Timestamp:
- 09/21/23 21:29:18 (3 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
CIVLite
v5 v6 63 63 assertion: 'assert' expr ';' 64 64 65 alloc: 'alloc' expr '[' expr ']' ';'66 67 65 exprlist: expr (',' expr)* 68 66 69 67 lval: ID | lval '[' expr ']' 70 68 71 expr: lval | constant | '(' expr ')' | expr '+' expr | ... 72 // operators: + - * / mod - == != >= > < <= && || ! 69 expr: lval | constant | '(' expr ')' | expr '+' expr | ... // + - * / mod - == != >= > < <= && || ! 70 | 'array' '(' type ',' expr ',' expr ')' // array(element-type, length, value) 71 73 72 74 73 program: paramdecl* vardecl* function* … … 76 75 Example: 77 76 78 int[][] %a; 79 fun void %f(int %n, int %m) { 80 alloc %a, %n; 81 alloc %a[0], %m; 82 83 free %a; 77 fun int[][] %zero2d(int %n, int %m) { 78 int[][] %a; 79 %a = array(int[], %n, array(int, %m, 0)); 80 return %a; 84 81 } 85 82
