summaryrefslogtreecommitdiff
path: root/Grammar/Grammar
diff options
context:
space:
mode:
authorMark Dickinson <dickinsm@gmail.com>2010-07-12 14:14:18 +0000
committerMark Dickinson <dickinsm@gmail.com>2010-07-12 14:14:18 +0000
commit5d7c29858ff1787b7045d071f5d739c0b9e4bf6e (patch)
treed37e10140ade90d134312e428bdec6a6d5963d18 /Grammar/Grammar
parente1c2ff183a66d6b89de3d35b815ea926a0a4dbbd (diff)
downloadcpython-5d7c29858ff1787b7045d071f5d739c0b9e4bf6e.tar.gz
Issue #2009: refactor varargslist and typedargslist productions to make them more friendly for third-party parsers.
Diffstat (limited to 'Grammar/Grammar')
-rw-r--r--Grammar/Grammar12
1 files changed, 6 insertions, 6 deletions
diff --git a/Grammar/Grammar b/Grammar/Grammar
index 7d63e23135..89f4c3614e 100644
--- a/Grammar/Grammar
+++ b/Grammar/Grammar
@@ -24,13 +24,13 @@ decorators: decorator+
decorated: decorators (classdef | funcdef)
funcdef: 'def' NAME parameters ['->' test] ':' suite
parameters: '(' [typedargslist] ')'
-typedargslist: ((tfpdef ['=' test] ',')*
- ('*' [tfpdef] (',' tfpdef ['=' test])* [',' '**' tfpdef] | '**' tfpdef)
- | tfpdef ['=' test] (',' tfpdef ['=' test])* [','])
+typedargslist: (tfpdef ['=' test] (',' tfpdef ['=' test])* [','
+ ['*' [tfpdef] (',' tfpdef ['=' test])* [',' '**' tfpdef] | '**' tfpdef]]
+ | '*' [tfpdef] (',' tfpdef ['=' test])* [',' '**' tfpdef] | '**' tfpdef)
tfpdef: NAME [':' test]
-varargslist: ((vfpdef ['=' test] ',')*
- ('*' [vfpdef] (',' vfpdef ['=' test])* [',' '**' vfpdef] | '**' vfpdef)
- | vfpdef ['=' test] (',' vfpdef ['=' test])* [','])
+varargslist: (vfpdef ['=' test] (',' vfpdef ['=' test])* [','
+ ['*' [vfpdef] (',' vfpdef ['=' test])* [',' '**' vfpdef] | '**' vfpdef]]
+ | '*' [vfpdef] (',' vfpdef ['=' test])* [',' '**' vfpdef] | '**' vfpdef)
vfpdef: NAME
stmt: simple_stmt | compound_stmt