I’m developing a language semantically similiar to Java and C#, but it’s different in some aspects (e.g. it is a VBScript dialect). I’m used to create parsers based on the projects Luaparse and Esprima since some years. I already know about the JavaParser and Roslyn projects, but the way they implement semantic data model and symbol resolution seems tough for me. So far I was able to implement symbol solver sometimes, but I never got to resolve generics very well (for example, type parameter constraints, or bounds; my previous project contains a symbol solver). I’m lacking good terminology (and sense) in regards to symbol solver.
When I google about “creating symbol solver” I unfortunately end up in mathematics subjects, which has nothing to do with programming language’s symbol solver, so I appreciate if someone can give me a direction.
To be more specific, when I refer to symbol resolution, I mean solving entire sequence of programs (sharing modules aka packages/namespaces). But it could also possible to verify specific AST nodes (not necessarily a program).
Currently I’m developing a symbol solver for this VBScript dialect (link), but I’m perplexed for not being sure whether to support type constraints within type parameters or not.