This is needed to do semantic analysis and translation to spirv.
Do you have any thoughts on how you'd like to represent it?
glslang builds the symbol table during parsing and refers to it in the resulting parse tree. That has the advantage of not needing to represent both an unresolved syntax tree and a syntax tree with resolved symbols.