adding @property for this.property
This commit is contained in:
parent
c5c841f2fc
commit
cb7a1033fa
|
@ -72,6 +72,12 @@
|
|||
<key>name</key>
|
||||
<string>constant.numeric.coffee</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>match</key>
|
||||
<string>(@)[a-zA-Z_$]\w*</string>
|
||||
<key>name</key>
|
||||
<string>variable.other.readwrite.instance.coffee</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>string.quoted.heredoc.coffee</string>
|
||||
|
|
|
@ -238,6 +238,7 @@ rule
|
|||
| Object { result = ValueNode.new(val[0]) }
|
||||
| Parenthetical { result = ValueNode.new(val[0]) }
|
||||
| Range { result = ValueNode.new(val[0]) }
|
||||
| This { result = ValueNode.new(val[0]) }
|
||||
| Value Accessor { result = val[0] << val[1] }
|
||||
| Invocation Accessor { result = ValueNode.new(val[0], [val[1]]) }
|
||||
;
|
||||
|
@ -300,6 +301,12 @@ rule
|
|||
SUPER CALL_START ArgList CALL_END { result = CallNode.new(Value.new('super'), val[2]) }
|
||||
;
|
||||
|
||||
# This references, either naked or to a property.
|
||||
This:
|
||||
'@' { result = ThisNode.new }
|
||||
| '@' IDENTIFIER { result = ThisNode.new(val[1]) }
|
||||
;
|
||||
|
||||
# The range literal.
|
||||
Range:
|
||||
"[" Expression
|
||||
|
|
|
@ -429,6 +429,18 @@ module CoffeeScript
|
|||
end
|
||||
end
|
||||
|
||||
# A this-reference, using '@'.
|
||||
class ThisNode < Node
|
||||
def initialize(property=nil)
|
||||
@property = property
|
||||
end
|
||||
|
||||
def compile_node(o)
|
||||
prop = @property ? ".#{@property}" : ''
|
||||
write("this#{prop}")
|
||||
end
|
||||
end
|
||||
|
||||
# A range literal. Ranges can be used to extract portions (slices) of arrays,
|
||||
# or to specify a range for array comprehensions.
|
||||
class RangeNode < Node
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -35,3 +35,14 @@ print i is 0
|
|||
money$: 'dollars'
|
||||
|
||||
print money$ is 'dollars'
|
||||
|
||||
|
||||
bob: {
|
||||
name: 'Bob'
|
||||
greet: (salutation) ->
|
||||
salutation + " " + @name
|
||||
hello: ->
|
||||
@greet("Hello")
|
||||
}
|
||||
|
||||
print bob.hello() is "Hello Bob"
|
||||
|
|
Loading…
Reference in New Issue