Skip to content

Instantly share code, notes, and snippets.

@MrSmith33
Created January 7, 2018 15:29
Show Gist options
  • Save MrSmith33/d6f863db16d5cdb0036e8bb1176a3ee1 to your computer and use it in GitHub Desktop.
Save MrSmith33/d6f863db16d5cdb0036e8bb1176a3ee1 to your computer and use it in GitHub Desktop.
| MODULE | push scope Module
void e() | FUNC e | insert e @ line 2 col 3
{ | BLOCK | push scope e
i32 a; | VAR i32 a | push scope Block
i32 b; | VAR i32 b | insert a @ line 4 col 4
i32 c; | VAR i32 c | insert b @ line 5 col 4
| FUNC f | insert c @ line 6 col 4
void f() { | BLOCK | insert f @ line 8 col 4
i32 a; | VAR i32 a | push scope f
i32 b; | VAR i32 b | push scope Block
i32 c; | VAR i32 c | insert a @ line 9 col 5
a = b + c; | BINOP EQUAL | insert b @ line 10 col 5
} | VAR_USE a | insert c @ line 11 col 5
| BINOP PLUS | lookup a @ line 9 col 5
void g() { | VAR_USE b | lookup b @ line 10 col 5
i32 a; | VAR_USE c | lookup c @ line 11 col 5
i32 b; | FUNC g | pop scope Block
| BLOCK | pop scope f
void h() { | VAR i32 a | insert g @ line 15 col 4
i32 c; | VAR i32 b | push scope g
i32 d; | FUNC h | push scope Block
c = a + d; | BLOCK | insert a @ line 16 col 5
} | VAR i32 c | insert b @ line 17 col 5
| VAR i32 d | insert h @ line 19 col 5
void i() { | BINOP EQUAL | push scope h
i32 b; | VAR_USE c | push scope Block
i32 d; | BINOP PLUS | insert c @ line 20 col 6
b = a + c; | VAR_USE a | insert d @ line 21 col 6
} | VAR_USE d | lookup c @ line 20 col 6
| FUNC i | lookup a @ line 16 col 5
b = a + c; | BLOCK | lookup d @ line 21 col 6
} | VAR i32 b | pop scope Block
| VAR i32 d | pop scope h
a = b + c; | BINOP EQUAL | insert i @ line 25 col 5
} | VAR_USE b | push scope i
| BINOP PLUS | push scope Block
| VAR_USE a | insert b @ line 26 col 6
| VAR_USE c | insert d @ line 27 col 6
| BINOP EQUAL | lookup b @ line 26 col 6
| VAR_USE b | lookup a @ line 16 col 5
| BINOP PLUS | lookup c @ line 6 col 4
| VAR_USE a | pop scope Block
| VAR_USE c | pop scope i
| BINOP EQUAL | lookup b @ line 17 col 5
| VAR_USE a | lookup a @ line 16 col 5
| BINOP PLUS | lookup c @ line 6 col 4
| VAR_USE b | pop scope Block
| VAR_USE c | pop scope g
| | lookup a @ line 4 col 4
| | lookup b @ line 5 col 4
| | lookup c @ line 6 col 4
| | pop scope Block
| | pop scope e
| | pop scope Module
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment