I am using boost spirit 1.39. On gcc the compilation times are acceptable.
However on AIX with v10.1 compiler, it fails to even compile. After 24hrs waiting, I gave up.

Ok I realise that the grammer needs to  split. Is there any _small_
examples out there, that demonstrates this technique for a beginner ?

In my case I have one grammer and ~70 rules.
Take the following rule:

         rule<ScannerT, string_closure::context_t> identifier ;
         identifier
                =     lexeme_d   [ (alnum_p || ch_p('_'))  >> *(alnum_p || ch_p('_'))  ]
                                 [ identifier.name = construct_<std::string>(arg1, arg2) ]
                ;

What is the technique for converting it into a grammer, that is separately compiled ?

Also how would I reference it again, without including the header file, from another rule

 dotPath
         =     (    str_p(".")
                         >> +(
                                 str_p("/")
                                 >> identifier
                                 )
            )
            [ dotPath.name = construct_<std::string>(arg1, arg2) ]
        ;

  Any help would greatly appreciated.

  Best regards,
Ta,
   Avi