If by "frame", you mean "scope", it does that. It gets the list of key variable names and then creates a scope with those variables as local variables within the scope.would it make more sense for Parser.ForEachLoop to create a new frame
// Parse the scope with the list of keyVars
Scope scope = this.parseLoopScope( functionType, varList, parentScope );
No. That method will parse typed variables and initialize them. For example, "int foo = 2". It's used for getting variable declarations/definitions inside a scope, but for and foreach want nothing but variable names; type is implicit and the value is set each time through the loop.What I really should've asked was whether or not it made more sense to reuse Parser.parseVariables inside the parsing of said loops (as that was the approach I was considering).