Changes between Version 55 and Version 56 of IR2
- Timestamp:
- 04/30/21 18:13:25 (5 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
IR2
v55 v56 1 = CIVL IR =1 = CIVL IR v2.0 = 2 2 3 3 == Language principles == … … 41 41 program: typedef* decl* function-definition+ ; 42 42 typedef: 43 enum ID '{' identifier-list '}' ';' 44 | struct ID '{' decl* '}' ';' 43 struct ID '{' decl* '}' ';' 45 44 | union ID '{' decl* '}' ';' 46 45 | 'typedef' type-specifier declarator ';' … … 166 165 | expr '(' arg-list? ')' ';' /* function call */ 167 166 | (lvalue '=')? '$spawn' expr '(' expression-list? ')' ';' /* process creation */ 167 | '$wait' expr ';' /* wait until p terminates */ 168 168 | 'return' expr? ';' /* return from function call */ 169 169 | (lvalue '=')? '$alloc' '(' expr ',' expr ',' type-name ')' ';' /* heap allocation */ 170 | '$free' expr ';' /* frees something that was $alloc-ed */ 171 | '$atomic_enter' ';' /* enter atomic region */ 172 | '$atomic_exit' ';' /* exit atomic region */ 173 | '$yield' ';' /* release atomic lock */ 174 | '$assert' expr (',' expr)* ';' /* assertion with optional error message */ 175 | '$assume expr ';' /* assumption */ 170 176 ; 171 177 … … 258 264 {{{ 259 265 void $parspawn($proc * proc_array, $domain d, void (*f)($int, ...)); /* parallel spawn */ 260 void $atomic_enter();261 void $atomic_exit();262 void $yield();263 266 264 267 }}}
