anchor.diff:  #include <stdlib.h>
   #include <string>
   #include <stdio.h>
  +
  +std::string result("");
  +
  +typedef struct _node {
  +  std::string* str;
  +} node;
  +#ifdef D_ParseNode_User
  +#undef D_ParseNode_User
  +#endif
  +#define D_ParseNode_User node
  +
   #include "aalang.hh"
   #include "aalang_cpp.hh"
   #include "aalang_java.hh"
   #include "aalang_py.hh"
  -
  -std::string result("");
   aalang* obj=NULL;
   
  -typedef struct _node {
  -  std::string* str;
  -} node;
  -#define D_ParseNode_User node
   std::vector<std::string> aname;
   
   bool adapter,body,guard;
  
positive.code: pop:  'pop' '{' bstr '}' {
              obj->set_pop ($2.str,$n2.start_loc.pathname,$n2.start_loc.line,$n2.start_loc.col); } ;
  
  language: language_kw cpp    { if (!obj) obj=new aalang_cpp  ; } starter ';'? |
            language_kw java   { if (!obj) obj=new aalang_java ; } starter ';'? |
            language_kw python { if (!obj) obj=new aalang_py   ; } starter ';'? ;
  
  language_kw:  'language' | 'language:';
  
  
negative.code: serial_start: 'serial' { obj->serial(true); } ;
  parallel_start: 'parallel' { obj->parallel(true); } ;
  
  spinc: (comment)* ( act | tag | parser ) ( act | tag | parser | comment )* ;
  
  serial: serial_start '{' spinc '}'
          { obj->serial(false); } ;
  
  parallel: parallel_start '{' spinc '}'
          { obj->parallel(false); } ;
  
  act: ( 'action' astr | 'input' istr | 'output' ostr ) {
  