#NEWLINE# def ArgumentList( tokenizer , staticContext ) : #NEWLINE# #INDENT# builder = staticContext . builder #NEWLINE# node = builder . LIST_build ( tokenizer ) #NEWLINE# if tokenizer . match ( 'right_paren' , True ) : #NEWLINE# #INDENT# return node #NEWLINE# #UNINDENT# while True : #NEWLINE# #INDENT# childNode = AssignExpression ( tokenizer , staticContext ) #NEWLINE# if ( ( childNode . type == 'yield' ) and ( not childNode . parenthesized ) and ( tokenizer . peek ( ) == 'comma' ) ) : #NEWLINE# #INDENT# raise SyntaxError ( 'Yield expression must be parenthesized' , tokenizer ) #NEWLINE# #UNINDENT# if tokenizer . match ( 'for' ) : #NEWLINE# #INDENT# childNode = GeneratorExpression ( tokenizer , staticContext , childNode ) #NEWLINE# if ( ( len ( node ) > 1 ) or ( tokenizer . peek ( True ) == 'comma' ) ) : #NEWLINE# #INDENT# raise SyntaxError ( 'Generator expression must be parenthesized' , tokenizer ) #NEWLINE# #UNINDENT# #UNINDENT# builder . LIST_addOperand ( node , childNode ) #NEWLINE# if ( not tokenizer . match ( 'comma' ) ) : #NEWLINE# #INDENT# break #NEWLINE# #UNINDENT# #UNINDENT# tokenizer . mustMatch ( 'right_paren' ) #NEWLINE# builder . LIST_finish ( node ) #NEWLINE# return node