8000 Adjust grammar for stricter term export behavior in lezer-generator · geddski/python@935bfb7 · GitHub
[go: up one dir, main page]

Skip to content

Commit 935bfb7

Browse files
committed
Adjust grammar for stricter term export behavior in lezer-generator
1 parent 871b60f commit 935bfb7

File tree

2 files changed

+35
-9
lines changed

2 files changed

+35
-9
lines changed

src/python.grammar

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -128,15 +128,15 @@ expression[@isGroup=Expression] {
128128
BinaryExpression |
129129
UnaryExpression { !prefix (ArithOp{"+" | "-"} | BitOp{"~"}) expression } |
130130
AwaitExpression { kw<"await"> expression } |
131-
ParenthesizedExpression { "(" (testNamed | "*" expression | YieldExpression) ")" } |
132-
TupleExpression { "(" (testNamed | "*" expression) (("," (testNamed | "*" expression))+ ","? | ",") ")" } |
133-
ComprehensionExpression { "(" (testNamed | "*" expression) compFor ")" } |
134-
ArrayExpression { "[" commaSep<testNamed | "*" expression>? "]" } |
135-
ArrayComprehensionExpression { "[" (testNamed | "*" expression) compFor "]" } |
136-
DictionaryExpression { "{" commaSep<test ":" test | "**" expression>? "}" } |
137-
DictionaryComprehensionExpression { "{" (test ":" test | "**" expression) compFor "}" } |
138-
SetExpression { "{" commaSep<test | "*" expression> "}" } |
139-
SetComprehensionExpression { "{" (test | "*" expression) compFor "}" } |
131+
ParenthesizedExpression |
132+
TupleExpression |
133+
ComprehensionExpression |
134+
ArrayExpression |
135+
ArrayComprehensionExpression |
136+
DictionaryExpression |
137+
DictionaryComprehensionExpression |
138+
SetExpression |
139+
SetComprehensionExpression |
140140
CallExpression { expression !trail ArgList } |
141141
MemberExpression { expression !trail ("[" commaSep<test | test? ":" test? (":" test?)?> "]" | "." PropertyName) } |
142142
VariableName |
@@ -148,6 +148,20 @@ expression[@isGroup=Expression] {
148148
@specialize[@name=Boolean]<identifier, "True" | "False">
149149
}
150150

151+
ParenthesizedExpression { "(" (testNamed | "*" expression | YieldExpression) ")" }
152+
153+
TupleExpression { "(" (testNamed | "*" expression) (("," (testNamed | "*" expression))+ ","? | ",") ")" }
154+
ComprehensionExpression { "(" (testNamed | "*" expression) compFor ")" }
155+
156+
ArrayExpression { "[" commaSep<testNamed | "*" expression>? "]" }
157+
ArrayComprehensionExpression { "[" (testNamed | "*" expression) compFor "]" }
158+
159+
DictionaryExpression { "{" commaSep<test ":" test | "**" expression>? "}" }
160+
DictionaryComprehensionExpression { "{" (test ":" test | "**" expression) compFor "}" }
161+
162+
SetExpression { "{" commaSep<test | "*" expression> "}" }
163+
SetComprehensionExpression { "{" (test | "*" expression) compFor "}" }
164+
151165
yield { kw<"yield"> (kw<"from"> test | commaSep<test | "*" expression>) }
152166

153167
YieldExpression { yield }

test/statement.txt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -318,3 +318,15 @@ self = True
318318
==>
319319

320320
Script(AssignStatement(VariableName,AssignOp,Boolean))
321+
322+
# Notices when the first line is indented
323+
324+
# comment
325+
def foo():
326+
pass
327+
def bar():
328+
pass
329+
330+
==>
331+
332+
Script(Comment,⚠,FunctionDefinition(def,VariableName,ParamList("(",")"),Body(":",PassStatement(pass))))

0 commit comments

Comments
 (0)
0