Issue #670. 'THIS' tokens should trigger an implicit call.
This commit is contained in:
parent
62bf0a2bc9
commit
70cfd54ad4
|
@ -408,7 +408,7 @@
|
||||||
return _j;
|
return _j;
|
||||||
})();
|
})();
|
||||||
EXPRESSION_CLOSE = ['CATCH', 'WHEN', 'ELSE', 'FINALLY'].concat(EXPRESSION_END);
|
EXPRESSION_CLOSE = ['CATCH', 'WHEN', 'ELSE', 'FINALLY'].concat(EXPRESSION_END);
|
||||||
IMPLICIT_FUNC = ['IDENTIFIER', 'SUPER', ')', 'CALL_END', ']', 'INDEX_END', '@'];
|
IMPLICIT_FUNC = ['IDENTIFIER', 'SUPER', ')', 'CALL_END', ']', 'INDEX_END', '@', 'THIS'];
|
||||||
IMPLICIT_CALL = ['IDENTIFIER', 'NUMBER', 'STRING', 'JS', 'REGEX', 'NEW', 'PARAM_START', 'CLASS', 'IF', 'UNLESS', 'TRY', 'SWITCH', 'THIS', 'NULL', 'UNARY', 'TRUE', 'FALSE', 'YES', 'NO', 'ON', 'OFF', '@', '->', '=>', '[', '(', '{'];
|
IMPLICIT_CALL = ['IDENTIFIER', 'NUMBER', 'STRING', 'JS', 'REGEX', 'NEW', 'PARAM_START', 'CLASS', 'IF', 'UNLESS', 'TRY', 'SWITCH', 'THIS', 'NULL', 'UNARY', 'TRUE', 'FALSE', 'YES', 'NO', 'ON', 'OFF', '@', '->', '=>', '[', '(', '{'];
|
||||||
IMPLICIT_BLOCK = ['->', '=>', '{', '[', ','];
|
IMPLICIT_BLOCK = ['->', '=>', '{', '[', ','];
|
||||||
IMPLICIT_END = ['POST_IF', 'POST_UNLESS', 'FOR', 'WHILE', 'UNTIL', 'LOOP', 'TERMINATOR', 'INDENT'];
|
IMPLICIT_END = ['POST_IF', 'POST_UNLESS', 'FOR', 'WHILE', 'UNTIL', 'LOOP', 'TERMINATOR', 'INDENT'];
|
||||||
|
|
|
@ -329,7 +329,7 @@ EXPRESSION_END = pair[1] for pair in BALANCED_PAIRS
|
||||||
EXPRESSION_CLOSE = ['CATCH', 'WHEN', 'ELSE', 'FINALLY'].concat EXPRESSION_END
|
EXPRESSION_CLOSE = ['CATCH', 'WHEN', 'ELSE', 'FINALLY'].concat EXPRESSION_END
|
||||||
|
|
||||||
# Tokens that, if followed by an `IMPLICIT_CALL`, indicate a function invocation.
|
# Tokens that, if followed by an `IMPLICIT_CALL`, indicate a function invocation.
|
||||||
IMPLICIT_FUNC = ['IDENTIFIER', 'SUPER', ')', 'CALL_END', ']', 'INDEX_END', '@']
|
IMPLICIT_FUNC = ['IDENTIFIER', 'SUPER', ')', 'CALL_END', ']', 'INDEX_END', '@', 'THIS']
|
||||||
|
|
||||||
# If preceded by an `IMPLICIT_FUNC`, indicates a function invocation.
|
# If preceded by an `IMPLICIT_FUNC`, indicates a function invocation.
|
||||||
IMPLICIT_CALL = [
|
IMPLICIT_CALL = [
|
||||||
|
|
|
@ -220,3 +220,12 @@ obj =
|
||||||
ok obj.func(101, 102, 103, 104) is undefined
|
ok obj.func(101, 102, 103, 104) is undefined
|
||||||
ok obj.param is 101
|
ok obj.param is 101
|
||||||
ok obj.rest.join(' ') is '102 103 104'
|
ok obj.rest.join(' ') is '102 103 104'
|
||||||
|
|
||||||
|
|
||||||
|
# `@` and `this` should both be able to invoke a method.
|
||||||
|
func = (arg) -> ok arg is true
|
||||||
|
func.withAt = -> @ true
|
||||||
|
func.withThis = -> this true
|
||||||
|
|
||||||
|
func.withAt()
|
||||||
|
func.withThis()
|
||||||
|
|
Loading…
Reference in New Issue