Index: languages/pynie/src/parser/Grammar.pg
===================================================================
--- languages/pynie/src/parser/Grammar.pg	(revision 25550)
+++ languages/pynie/src/parser/Grammar.pg	(working copy)
@@ -449,15 +449,23 @@
     {*}
 }
 
-rule list_display { '[' <listmaker>? ']' }
+rule list_display { 
+    '[' 
+        [ <list_literal> {*}       #= list_literal
+        # | <list_comprehension> {*} #= list_comprehension
+        ] 
+     ']'
+}
 
-rule listmaker {
-    <expression>
-    [ <list_for>
-    | [ ',' <expression> ]* ','?
-    ]
+rule list_literal { 
+     [ <expression> [',' <expression> ]* ','? ]? 
+     {*}
 }
 
+rule list_comprehension {
+     <expression> <list_iter>+
+}
+
 rule list_iter {
     | <list_for> {*}           #= list_for
     | <list_if> {*}            #= list_if
@@ -503,7 +511,7 @@
     | <identifier> {*}                           #= identifier
     | <literal> {*}                              #= literal
     | <parenth_form> {*}                         #= parenth_form
-   #| <list_display>                   #   ""
+    | <list_display> {*}                         #= list_display
    #| <generator_expression>           #   ""
    #| <dict_display>                   #   ""
    #| <string_conversion>              #   ""
Index: languages/pynie/src/parser/Actions.pm
===================================================================
--- languages/pynie/src/parser/Actions.pm	(revision 25550)
+++ languages/pynie/src/parser/Actions.pm	(working copy)
@@ -487,3 +487,15 @@
     make $past;
 }
 
+method list_literal($/) {
+    my $past := PAST::Op.new( :name('listmaker'),
+                              :pasttype('call'));
+    for $<expression> {
+	$past.push( $($_) );
+    }
+    make $past;
+}
+
+method list_display($/, $key) {
+    make $( $/{$key} );
+}
