#NEWLINE# def _funcname( self ) : #NEWLINE# #INDENT# "Parse a funcname.\n\n        funcname ::= Name {'.' Name} [':' Name]\n\n        Returns:\n          FunctionName(namepath, methodname)\n        " #NEWLINE# pos = self . _pos #NEWLINE# namepath = [ ] #NEWLINE# methodname = None #NEWLINE# name = self . _accept ( lexer . TokName ) #NEWLINE# if ( name is None ) : #NEWLINE# #INDENT# return None #NEWLINE# #UNINDENT# namepath . append ( name ) #NEWLINE# while ( self . _accept ( lexer . TokSymbol ( '.' ) ) is not None ) : #NEWLINE# #INDENT# namepath . append ( self . _expect ( lexer . TokName ) ) #NEWLINE# #UNINDENT# if ( self . _accept ( lexer . TokSymbol ( ':' ) ) is not None ) : #NEWLINE# #INDENT# methodname = self . _expect ( lexer . TokName ) #NEWLINE# #UNINDENT# return FunctionName ( namepath , methodname , start = pos , end = self . _pos )