1X input.hpp /^template <class T> struct X { };$/;" s 2Y input.hpp /^template <int N> struct Y { };$/;" s 3M input.hpp /^#define M /;" d 4S input.hpp /^struct S {$/;" s 5i input.hpp /^ int i;$/;" m struct:S typeref:typename:int 6x2 input.hpp /^ X< Y< 1 >> 2 > > x2;$/;" m struct:S typeref:typename:X<Y<1>>2>> 7x3 input.hpp /^ X< Y< M >> 2 > > x3;$/;" m struct:S typeref:typename:X<Y<M>>2>> 8x4 input.hpp /^ X< Y< M >> M > > x4;$/;" m struct:S typeref:typename:X<Y<M>>M>> 9x5 input.hpp /^ X< Y< 1 < 2 > > x5;$/;" m struct:S typeref:typename:X<Y<1<2>> 10x6 input.hpp /^ X< Y< M < 2 > > x6;$/;" m struct:S typeref:typename:X<Y<M<2>> 11x7 input.hpp /^ X< Y< M < M > > x7;$/;" m struct:S typeref:typename:X<Y<M<M>> 12d input.hpp /^ double d;$/;" m struct:S typeref:typename:double 13