Skip to content

Commit cf0ef32

Browse files
author
Max Brunsfeld
committed
Merge pull request #3 from robrix/this-expressions
`this` expressions
2 parents 7444432 + 513b2a3 commit cf0ef32

File tree

3 files changed

+4039
-3292
lines changed

3 files changed

+4039
-3292
lines changed

grammar.coffee

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,7 @@ module.exports = grammar
199199
@type_op,
200200
@_paren_expression,
201201

202+
@this_expression,
202203
@identifier,
203204
@number,
204205
@string,
@@ -322,6 +323,8 @@ module.exports = grammar
322323
/\d+/,
323324
optional(seq(".", /\d*/)))))
324325

326+
this_expression: -> "this"
327+
325328
identifier: -> /[\a_$][\a\d_$]*/
326329

327330
true: -> "true"

grammar_test/expressions.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ $_;
4949
Booleans
5050
============================================
5151

52+
this;
5253
null;
5354
undefined;
5455
true;
@@ -57,6 +58,7 @@ false;
5758
---
5859

5960
(program
61+
(expression_statement (this_expression))
6062
(expression_statement (null))
6163
(expression_statement (undefined))
6264
(expression_statement (true))
@@ -190,7 +192,7 @@ return this.map(function (a) {
190192
(function_call
191193
(member_access
192194
(function_call
193-
(member_access (identifier) (identifier))
195+
(member_access (this_expression) (identifier))
194196
(arguments
195197
(function (formal_parameters (identifier)) (statement_block
196198
(return_statement (member_access (identifier) (identifier)))))))

0 commit comments

Comments
 (0)