\catcode`@=11%
%
\def\VDDparse@haakjes#1#2#3)#4 {%
  \edef\VDDparse@@tmp{\VDDparse@@tmp#3)}%
  \expandafter#1\VDDparse@@tmp
  \ifx\end#4\end %stop recursion
  \else
    \edef#2{#2&}%
    \VDDparse@letter#1#2#4
  \fi
}%  
\def\VDDparse@accent#1#2#3#4 {%
  \ifx#3'%
    \edef#2{#2#3}%
    \edef\VDDparse@@tmp{\VDDparse@@tmp#3}%
    \ifx\end#4\end %stop recursion
      \expandafter#1\VDDparse@@tmp()%
    \else
      \VDDparse@accent#1#2#4
    \fi
  \else
    \ifx#3(
      \VDDparse@haakjes#1#2#3#4
    \else
      \edef#2{#2&}%
      \expandafter#1\VDDparse@@tmp()%
      \VDDparse@letter#1#2#3#4
    \fi
  \fi
}%
\def\VDDparse@letter#1#2#3#4 {%
  \edef#2{#2#3}%
  \edef\VDDparse@@tmp{#3}%
  %\if#3a\errmessage{#3 is not a letter}\fi % \if compares catcodes
  \ifx\end#4\end % stop recursion
      \expandafter#1\VDDparse@@tmp()%
  \else 
    \VDDparse@accent#1#2#4
  \fi
}%
\def\VDDparse@#1#2#3 {%
  \def#2{}%
  \VDDparse@letter#1#2#3
}
\catcode`@=12%
