]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
new grammar for 3rd raise arg and keyword parameters
authorGuido van Rossum <guido@python.org>
Fri, 7 Jul 1995 22:26:23 +0000 (22:26 +0000)
committerGuido van Rossum <guido@python.org>
Fri, 7 Jul 1995 22:26:23 +0000 (22:26 +0000)
Grammar/Grammar

index 5af4483acfa65218fcb32659046ba7c0c9ce0054..f1b5117e91c87fd1a70e98d78e411dafeadcb82b 100644 (file)
@@ -23,7 +23,7 @@ eval_input: testlist NEWLINE* ENDMARKER
 
 funcdef: 'def' NAME parameters ':' suite
 parameters: '(' [varargslist] ')'
-varargslist: (fpdef ['=' test] ',')* '*' NAME | fpdef ['=' test] (',' fpdef ['=' test])* [',']
+varargslist: (fpdef ['=' test] ',')* ('*' NAME [',' '*' '*' NAME] | '*' '*' NAME) | fpdef ['=' test] (',' fpdef ['=' test])* [',']
 fpdef: NAME | '(' fplist ')'
 fplist: fpdef (',' fpdef)* [',']
 
@@ -39,7 +39,7 @@ flow_stmt: break_stmt | continue_stmt | return_stmt | raise_stmt
 break_stmt: 'break'
 continue_stmt: 'continue'
 return_stmt: 'return' [testlist]
-raise_stmt: 'raise' test [',' test]
+raise_stmt: 'raise' test [',' test [',' test]]
 import_stmt: 'import' dotted_name (',' dotted_name)* | 'from' dotted_name 'import' ('*' | NAME (',' NAME)*)
 dotted_name: NAME ('.' NAME)*
 global_stmt: 'global' NAME (',' NAME)*
@@ -73,10 +73,13 @@ term: factor (('*'|'/'|'%') factor)*
 factor: ('+'|'-'|'~') factor | atom trailer*
 atom: '(' [testlist] ')' | '[' [testlist] ']' | '{' [dictmaker] '}' | '`' testlist '`' | NAME | NUMBER | STRING+
 lambdef: 'lambda' [varargslist] ':' test
-trailer: '(' [testlist] ')' | '[' subscript ']' | '.' NAME
+trailer: '(' [arglist] ')' | '[' subscript ']' | '.' NAME
 subscript: test | [test] ':' [test]
 exprlist: expr (',' expr)* [',']
 testlist: test (',' test)* [',']
 dictmaker: test ':' test (',' test ':' test)* [',']
 
 classdef: 'class' NAME ['(' testlist ')'] ':' suite
+
+arglist:  argument (',' argument)* [',']
+argument: [test '='] test      # Really [keyword '='] test