mirror of
https://github.com/jashkenas/coffeescript.git
synced 2026-05-03 03:00:14 -04:00
reorganizing test fixtures and adding range literals for array slices
This commit is contained in:
@@ -64,8 +64,7 @@ rule
|
||||
|
||||
# The parts that are natural JavaScript expressions.
|
||||
PureExpression:
|
||||
Literal
|
||||
| Value
|
||||
Value
|
||||
| Call
|
||||
| Code
|
||||
| Operation
|
||||
@@ -213,6 +212,7 @@ rule
|
||||
# Expressions that can be treated as values.
|
||||
Value:
|
||||
IDENTIFIER { result = ValueNode.new(val[0]) }
|
||||
| Literal { result = ValueNode.new(val[0]) }
|
||||
| Array { result = ValueNode.new(val[0]) }
|
||||
| Object { result = ValueNode.new(val[0]) }
|
||||
| Parenthetical { result = ValueNode.new(val[0]) }
|
||||
@@ -234,7 +234,7 @@ rule
|
||||
|
||||
# Array slice literal.
|
||||
Slice:
|
||||
"[" Expression "," Expression "]" { result = SliceNode.new(val[1], val[3]) }
|
||||
"[" Range "]" { result = SliceNode.new(val[1]) }
|
||||
;
|
||||
|
||||
# An object literal.
|
||||
@@ -273,6 +273,12 @@ rule
|
||||
SUPER "(" ArgList ")" { result = CallNode.new(:super, val[2]) }
|
||||
;
|
||||
|
||||
# The range literal.
|
||||
Range:
|
||||
Value "." "." Value { result = RangeNode.new(val[0], val[3]) }
|
||||
| Value "." "." "." Value { result = RangeNode.new(val[0], val[4], true) }
|
||||
;
|
||||
|
||||
# The array literal.
|
||||
Array:
|
||||
"[" ArgList "]" { result = ArrayNode.new(val[1]) }
|
||||
|
||||
Reference in New Issue
Block a user