ipr
ipr copied to clipboard
Compiler-neutral Internal Program Representation for C++
Consider: ```c++ struct A {}; struct B {}; struct C : protected B, private A {}; ``` Prior to introduction of subobjects, `base_type` was a declaration that had DeclSpecifiers that...
Need to be able to represent: enum class X : int; Currently not representable by IPR Enum should have opt underlying_type
Currently the header files in include/ipr, for example include/ipr/lexer are not in the CMakeLists.txt file. This means they do not appear in a generated Visual Studio project. If you do...
In PR #40 Fundecls were given a std::variant of Mapping or Parameter_list however the construction of Parameters and Rname are still tied to mappings. ```cpp impl::Parameter* Mapping::param(const ipr::Name& n, const...
IPR uses mapping expression to represent functions and templates. A mapping has a parameter list, type and a body. The parameter_list of the mapping hosts a homogeneous scope/region that holds...
Will functions (default ctor, copy ctor) that are implicitly define or deleted by the compiler be represented in some way in the IPRs. Knowing if a compiler has these members...
I wanted to create a mapping from template parameters to Var with a `Forall` type, but I encountered some difficulties. * What should be the target type for Forall? *...
IPR distinguishes between non-static data members (Fields) and static data members (Var). Thus taking an address of a Field, will result in an expression of Ptr_to_member type and taking an...
In [the paper](https://stroustrup.com/macis09.pdf) is is mentioned that > We generate IPR from two compiler frontends[6, 9] > ... > [6] The Edison Design Group.http://www.edg.com/. > [9] GNU Compiler Collection.http://gcc.gnu.org/. The...
Consider the following code: ```c++ struct X; struct X { void m(); }; ``` It will produce the following IPR: ``` Namespace 'namespace ' |-Typedecl 'class' X \-Typedecl 'class' X...