@@ -117,6 +117,7 @@ import qualified Language.JavaScript.Parser.AST as AST
117
117
' return' { ReturnToken {} }
118
118
' set' { SetToken {} }
119
119
' static' { StaticToken {} }
120
+ ' super' { SuperToken {} }
120
121
' switch' { SwitchToken {} }
121
122
' this' { ThisToken {} }
122
123
' throw' { ThrowToken {} }
@@ -357,6 +358,7 @@ IdentifierName : Identifier {$1}
357
358
| ' of' { AST.JSIdentifier (mkJSAnnot $1 ) " of" }
358
359
| ' return' { AST.JSIdentifier (mkJSAnnot $1 ) " return" }
359
360
| ' static' { AST.JSIdentifier (mkJSAnnot $1 ) " static" }
361
+ | ' super' { AST.JSIdentifier (mkJSAnnot $1 ) " super" }
360
362
| ' switch' { AST.JSIdentifier (mkJSAnnot $1 ) " switch" }
361
363
| ' this' { AST.JSIdentifier (mkJSAnnot $1 ) " this" }
362
364
| ' throw' { AST.JSIdentifier (mkJSAnnot $1 ) " throw" }
@@ -450,6 +452,9 @@ Extends : 'extends' { mkJSAnnot $1 }
450
452
Static :: { AST.JSAnnot }
451
453
Static : ' static' { mkJSAnnot $1 }
452
454
455
+ Super :: { AST.JSExpression }
456
+ Super : ' super' { AST.JSLiteral (mkJSAnnot $1 ) " super" }
457
+
453
458
454
459
Eof :: { AST.JSAnnot }
455
460
Eof : ' tail' { mkJSAnnot $1 {- ' Eof' -} }
@@ -641,6 +646,8 @@ MemberExpression : PrimaryExpression { $1 {- 'MemberExpression1' -} }
641
646
| MemberExpression LSquare Expression RSquare { AST.JSMemberSquare $1 $2 $3 $4 {- ' MemberExpression3' -} }
642
647
| MemberExpression Dot IdentifierName { AST.JSMemberDot $1 $2 $3 {- ' MemberExpression4' -} }
643
648
| MemberExpression TemplateLiteral { mkJSTemplateLiteral (Just $1 ) $2 }
649
+ | Super LSquare Expression RSquare { AST.JSMemberSquare $1 $2 $3 $4 }
650
+ | Super Dot IdentifierName { AST.JSMemberDot $1 $2 $3 }
644
651
| New MemberExpression Arguments { mkJSMemberNew $1 $2 $3 {- ' MemberExpression5' -} }
645
652
646
653
-- NewExpression : See 11.2
@@ -658,6 +665,8 @@ NewExpression : MemberExpression { $1 {- 'NewExpressio
658
665
CallExpression :: { AST.JSExpression }
659
666
CallExpression : MemberExpression Arguments
660
667
{ mkJSMemberExpression $1 $2 {- ' CallExpression1' -} }
668
+ | Super Arguments
669
+ { mkJSCallExpression $1 $2 }
661
670
| CallExpression Arguments
662
671
{ mkJSCallExpression $1 $2 {- ' CallExpression2' -} }
663
672
| CallExpression LSquare Expression RSquare
0 commit comments