Context-Sensitive Analysis
Context-sensitive analysis is more “powerful” than Context-Free Language, because we check additional things.
Notably, if we want to make sure that every variable used is first declared, we need to do Context-Sensitive Analysis, which uses a Type System.
See Type System for more info.