[enh][compiler] cleanup and add context conditions for struct declaration
[enh][interpreter] check if variable is initialized before reading