@ -9,7 +9,7 @@ Draw a line segment relative to the current origin using the polar
|
||||
measure of some angle and distance.
|
||||
|
||||
```js
|
||||
angledLine(data: AngledLineData, sketch: Sketch, tag?: TagDeclarator) -> Sketch
|
||||
angledLine(data: AngledLineData, sketch: Sketch, tag?: TagNode) -> Sketch
|
||||
```
|
||||
|
||||
|
||||
@ -19,7 +19,7 @@ angledLine(data: AngledLineData, sketch: Sketch, tag?: TagDeclarator) -> Sketch
|
||||
|----------|------|-------------|----------|
|
||||
| `data` | [`AngledLineData`](/docs/kcl/types/AngledLineData) | Data to draw an angled line. | Yes |
|
||||
| `sketch` | [`Sketch`](/docs/kcl/types/Sketch) | A sketch is a collection of paths. | Yes |
|
||||
| `tag` | [`TagDeclarator`](/docs/kcl/types#tag-declaration) | | No |
|
||||
| `tag` | [`TagNode`](/docs/kcl/types/TagNode) | | No |
|
||||
|
||||
### Returns
|
||||
|
||||
|
||||
@ -9,7 +9,7 @@ Create a line segment from the current 2-dimensional sketch origin
|
||||
along some angle (in degrees) for some relative length in the 'x' dimension.
|
||||
|
||||
```js
|
||||
angledLineOfXLength(data: AngledLineData, sketch: Sketch, tag?: TagDeclarator) -> Sketch
|
||||
angledLineOfXLength(data: AngledLineData, sketch: Sketch, tag?: TagNode) -> Sketch
|
||||
```
|
||||
|
||||
|
||||
@ -19,7 +19,7 @@ angledLineOfXLength(data: AngledLineData, sketch: Sketch, tag?: TagDeclarator) -
|
||||
|----------|------|-------------|----------|
|
||||
| `data` | [`AngledLineData`](/docs/kcl/types/AngledLineData) | Data to draw an angled line. | Yes |
|
||||
| `sketch` | [`Sketch`](/docs/kcl/types/Sketch) | A sketch is a collection of paths. | Yes |
|
||||
| `tag` | [`TagDeclarator`](/docs/kcl/types#tag-declaration) | | No |
|
||||
| `tag` | [`TagNode`](/docs/kcl/types/TagNode) | | No |
|
||||
|
||||
### Returns
|
||||
|
||||
|
||||
@ -9,7 +9,7 @@ Create a line segment from the current 2-dimensional sketch origin
|
||||
along some angle (in degrees) for some relative length in the 'y' dimension.
|
||||
|
||||
```js
|
||||
angledLineOfYLength(data: AngledLineData, sketch: Sketch, tag?: TagDeclarator) -> Sketch
|
||||
angledLineOfYLength(data: AngledLineData, sketch: Sketch, tag?: TagNode) -> Sketch
|
||||
```
|
||||
|
||||
|
||||
@ -19,7 +19,7 @@ angledLineOfYLength(data: AngledLineData, sketch: Sketch, tag?: TagDeclarator) -
|
||||
|----------|------|-------------|----------|
|
||||
| `data` | [`AngledLineData`](/docs/kcl/types/AngledLineData) | Data to draw an angled line. | Yes |
|
||||
| `sketch` | [`Sketch`](/docs/kcl/types/Sketch) | A sketch is a collection of paths. | Yes |
|
||||
| `tag` | [`TagDeclarator`](/docs/kcl/types#tag-declaration) | | No |
|
||||
| `tag` | [`TagNode`](/docs/kcl/types/TagNode) | | No |
|
||||
|
||||
### Returns
|
||||
|
||||
|
||||
@ -9,7 +9,7 @@ Draw an angled line from the current origin, constructing a line segment
|
||||
such that the newly created line intersects the desired target line segment.
|
||||
|
||||
```js
|
||||
angledLineThatIntersects(data: AngledLineThatIntersectsData, sketch: Sketch, tag?: TagDeclarator) -> Sketch
|
||||
angledLineThatIntersects(data: AngledLineThatIntersectsData, sketch: Sketch, tag?: TagNode) -> Sketch
|
||||
```
|
||||
|
||||
|
||||
@ -19,7 +19,7 @@ angledLineThatIntersects(data: AngledLineThatIntersectsData, sketch: Sketch, tag
|
||||
|----------|------|-------------|----------|
|
||||
| `data` | [`AngledLineThatIntersectsData`](/docs/kcl/types/AngledLineThatIntersectsData) | Data for drawing an angled line that intersects with a given line. | Yes |
|
||||
| `sketch` | [`Sketch`](/docs/kcl/types/Sketch) | A sketch is a collection of paths. | Yes |
|
||||
| `tag` | [`TagDeclarator`](/docs/kcl/types#tag-declaration) | | No |
|
||||
| `tag` | [`TagNode`](/docs/kcl/types/TagNode) | | No |
|
||||
|
||||
### Returns
|
||||
|
||||
|
||||
@ -9,7 +9,7 @@ Create a line segment from the current 2-dimensional sketch origin
|
||||
along some angle (in degrees) for some length, ending at the provided value in the 'x' dimension.
|
||||
|
||||
```js
|
||||
angledLineToX(data: AngledLineToData, sketch: Sketch, tag?: TagDeclarator) -> Sketch
|
||||
angledLineToX(data: AngledLineToData, sketch: Sketch, tag?: TagNode) -> Sketch
|
||||
```
|
||||
|
||||
|
||||
@ -19,7 +19,7 @@ angledLineToX(data: AngledLineToData, sketch: Sketch, tag?: TagDeclarator) -> Sk
|
||||
|----------|------|-------------|----------|
|
||||
| `data` | [`AngledLineToData`](/docs/kcl/types/AngledLineToData) | Data to draw an angled line to a point. | Yes |
|
||||
| `sketch` | [`Sketch`](/docs/kcl/types/Sketch) | A sketch is a collection of paths. | Yes |
|
||||
| `tag` | [`TagDeclarator`](/docs/kcl/types#tag-declaration) | | No |
|
||||
| `tag` | [`TagNode`](/docs/kcl/types/TagNode) | | No |
|
||||
|
||||
### Returns
|
||||
|
||||
|
||||
@ -9,7 +9,7 @@ Create a line segment from the current 2-dimensional sketch origin
|
||||
along some angle (in degrees) for some length, ending at the provided value in the 'y' dimension.
|
||||
|
||||
```js
|
||||
angledLineToY(data: AngledLineToData, sketch: Sketch, tag?: TagDeclarator) -> Sketch
|
||||
angledLineToY(data: AngledLineToData, sketch: Sketch, tag?: TagNode) -> Sketch
|
||||
```
|
||||
|
||||
|
||||
@ -19,7 +19,7 @@ angledLineToY(data: AngledLineToData, sketch: Sketch, tag?: TagDeclarator) -> Sk
|
||||
|----------|------|-------------|----------|
|
||||
| `data` | [`AngledLineToData`](/docs/kcl/types/AngledLineToData) | Data to draw an angled line to a point. | Yes |
|
||||
| `sketch` | [`Sketch`](/docs/kcl/types/Sketch) | A sketch is a collection of paths. | Yes |
|
||||
| `tag` | [`TagDeclarator`](/docs/kcl/types#tag-declaration) | | No |
|
||||
| `tag` | [`TagNode`](/docs/kcl/types/TagNode) | | No |
|
||||
|
||||
### Returns
|
||||
|
||||
|
||||
@ -11,7 +11,7 @@ The arc is constructed such that the current position of the sketch is placed al
|
||||
Unless this makes a lot of sense and feels like what you're looking for to construct your shape, you're likely looking for tangentialArc.
|
||||
|
||||
```js
|
||||
arc(data: ArcData, sketch: Sketch, tag?: TagDeclarator) -> Sketch
|
||||
arc(data: ArcData, sketch: Sketch, tag?: TagNode) -> Sketch
|
||||
```
|
||||
|
||||
|
||||
@ -21,7 +21,7 @@ arc(data: ArcData, sketch: Sketch, tag?: TagDeclarator) -> Sketch
|
||||
|----------|------|-------------|----------|
|
||||
| `data` | [`ArcData`](/docs/kcl/types/ArcData) | Data to draw an arc. | Yes |
|
||||
| `sketch` | [`Sketch`](/docs/kcl/types/Sketch) | A sketch is a collection of paths. | Yes |
|
||||
| `tag` | [`TagDeclarator`](/docs/kcl/types#tag-declaration) | | No |
|
||||
| `tag` | [`TagNode`](/docs/kcl/types/TagNode) | | No |
|
||||
|
||||
### Returns
|
||||
|
||||
|
||||
@ -9,7 +9,7 @@ Draw a smooth, continuous, curved line segment from the current origin to
|
||||
the desired (x, y), using a number of control points to shape the curve's shape.
|
||||
|
||||
```js
|
||||
bezierCurve(data: BezierData, sketch: Sketch, tag?: TagDeclarator) -> Sketch
|
||||
bezierCurve(data: BezierData, sketch: Sketch, tag?: TagNode) -> Sketch
|
||||
```
|
||||
|
||||
|
||||
@ -19,7 +19,7 @@ bezierCurve(data: BezierData, sketch: Sketch, tag?: TagDeclarator) -> Sketch
|
||||
|----------|------|-------------|----------|
|
||||
| `data` | [`BezierData`](/docs/kcl/types/BezierData) | Data to draw a bezier curve. | Yes |
|
||||
| `sketch` | [`Sketch`](/docs/kcl/types/Sketch) | A sketch is a collection of paths. | Yes |
|
||||
| `tag` | [`TagDeclarator`](/docs/kcl/types#tag-declaration) | | No |
|
||||
| `tag` | [`TagNode`](/docs/kcl/types/TagNode) | | No |
|
||||
|
||||
### Returns
|
||||
|
||||
|
||||
@ -9,7 +9,7 @@ Cut a straight transitional edge along a tagged path.
|
||||
Chamfer is similar in function and use to a fillet, except a fillet will blend the transition along an edge, rather than cut a sharp, straight transitional edge.
|
||||
|
||||
```js
|
||||
chamfer(data: ChamferData, solid: Solid, tag?: TagDeclarator) -> Solid
|
||||
chamfer(data: ChamferData, solid: Solid, tag?: TagNode) -> Solid
|
||||
```
|
||||
|
||||
|
||||
@ -19,7 +19,7 @@ chamfer(data: ChamferData, solid: Solid, tag?: TagDeclarator) -> Solid
|
||||
|----------|------|-------------|----------|
|
||||
| `data` | [`ChamferData`](/docs/kcl/types/ChamferData) | Data for chamfers. | Yes |
|
||||
| `solid` | [`Solid`](/docs/kcl/types/Solid) | An solid is a collection of extrude surfaces. | Yes |
|
||||
| `tag` | [`TagDeclarator`](/docs/kcl/types#tag-declaration) | | No |
|
||||
| `tag` | [`TagNode`](/docs/kcl/types/TagNode) | | No |
|
||||
|
||||
### Returns
|
||||
|
||||
|
||||
@ -9,7 +9,7 @@ Construct a 2-dimensional circle, of the specified radius, centered at
|
||||
the provided (x, y) origin point.
|
||||
|
||||
```js
|
||||
circle(data: CircleData, sketch_surface_or_group: SketchOrSurface, tag?: TagDeclarator) -> Sketch
|
||||
circle(data: CircleData, sketch_surface_or_group: SketchOrSurface, tag?: TagNode) -> Sketch
|
||||
```
|
||||
|
||||
|
||||
@ -19,7 +19,7 @@ circle(data: CircleData, sketch_surface_or_group: SketchOrSurface, tag?: TagDecl
|
||||
|----------|------|-------------|----------|
|
||||
| `data` | [`CircleData`](/docs/kcl/types/CircleData) | Data for drawing an circle | Yes |
|
||||
| `sketch_surface_or_group` | [`SketchOrSurface`](/docs/kcl/types/SketchOrSurface) | A sketch surface or a sketch. | Yes |
|
||||
| `tag` | [`TagDeclarator`](/docs/kcl/types#tag-declaration) | | No |
|
||||
| `tag` | [`TagNode`](/docs/kcl/types/TagNode) | | No |
|
||||
|
||||
### Returns
|
||||
|
||||
|
||||
@ -9,7 +9,7 @@ Construct a line segment from the current origin back to the profile's
|
||||
origin, ensuring the resulting 2-dimensional sketch is not open-ended.
|
||||
|
||||
```js
|
||||
close(sketch: Sketch, tag?: TagDeclarator) -> Sketch
|
||||
close(sketch: Sketch, tag?: TagNode) -> Sketch
|
||||
```
|
||||
|
||||
|
||||
@ -18,7 +18,7 @@ close(sketch: Sketch, tag?: TagDeclarator) -> Sketch
|
||||
| Name | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `sketch` | [`Sketch`](/docs/kcl/types/Sketch) | A sketch is a collection of paths. | Yes |
|
||||
| `tag` | [`TagDeclarator`](/docs/kcl/types#tag-declaration) | | No |
|
||||
| `tag` | [`TagNode`](/docs/kcl/types/TagNode) | | No |
|
||||
|
||||
### Returns
|
||||
|
||||
|
||||
@ -9,7 +9,7 @@ Blend a transitional edge along a tagged path, smoothing the sharp edge.
|
||||
Fillet is similar in function and use to a chamfer, except a chamfer will cut a sharp transition along an edge while fillet will smoothly blend the transition.
|
||||
|
||||
```js
|
||||
fillet(data: FilletData, solid: Solid, tag?: TagDeclarator) -> Solid
|
||||
fillet(data: FilletData, solid: Solid, tag?: TagNode) -> Solid
|
||||
```
|
||||
|
||||
|
||||
@ -19,7 +19,7 @@ fillet(data: FilletData, solid: Solid, tag?: TagDeclarator) -> Solid
|
||||
|----------|------|-------------|----------|
|
||||
| `data` | [`FilletData`](/docs/kcl/types/FilletData) | Data for fillets. | Yes |
|
||||
| `solid` | [`Solid`](/docs/kcl/types/Solid) | An solid is a collection of extrude surfaces. | Yes |
|
||||
| `tag` | [`TagDeclarator`](/docs/kcl/types#tag-declaration) | | No |
|
||||
| `tag` | [`TagNode`](/docs/kcl/types/TagNode) | | No |
|
||||
|
||||
### Returns
|
||||
|
||||
|
||||
@ -9,7 +9,7 @@ Draw a line relative to the current origin to a specified (x, y) away
|
||||
from the current position.
|
||||
|
||||
```js
|
||||
line(delta: [number], sketch: Sketch, tag?: TagDeclarator) -> Sketch
|
||||
line(delta: [number], sketch: Sketch, tag?: TagNode) -> Sketch
|
||||
```
|
||||
|
||||
|
||||
@ -19,7 +19,7 @@ line(delta: [number], sketch: Sketch, tag?: TagDeclarator) -> Sketch
|
||||
|----------|------|-------------|----------|
|
||||
| `delta` | `[number]` | | Yes |
|
||||
| `sketch` | [`Sketch`](/docs/kcl/types/Sketch) | A sketch is a collection of paths. | Yes |
|
||||
| `tag` | [`TagDeclarator`](/docs/kcl/types#tag-declaration) | | No |
|
||||
| `tag` | [`TagNode`](/docs/kcl/types/TagNode) | | No |
|
||||
|
||||
### Returns
|
||||
|
||||
|
||||
@ -9,7 +9,7 @@ Draw a line from the current origin to some absolute (x, y) point.
|
||||
|
||||
|
||||
```js
|
||||
lineTo(to: [number], sketch: Sketch, tag?: TagDeclarator) -> Sketch
|
||||
lineTo(to: [number], sketch: Sketch, tag?: TagNode) -> Sketch
|
||||
```
|
||||
|
||||
|
||||
@ -19,7 +19,7 @@ lineTo(to: [number], sketch: Sketch, tag?: TagDeclarator) -> Sketch
|
||||
|----------|------|-------------|----------|
|
||||
| `to` | `[number]` | | Yes |
|
||||
| `sketch` | [`Sketch`](/docs/kcl/types/Sketch) | A sketch is a collection of paths. | Yes |
|
||||
| `tag` | [`TagDeclarator`](/docs/kcl/types#tag-declaration) | | No |
|
||||
| `tag` | [`TagNode`](/docs/kcl/types/TagNode) | | No |
|
||||
|
||||
### Returns
|
||||
|
||||
|
||||
@ -9,7 +9,7 @@ Start a new profile at a given point.
|
||||
|
||||
|
||||
```js
|
||||
startProfileAt(to: [number], sketch_surface: SketchSurface, tag?: TagDeclarator) -> Sketch
|
||||
startProfileAt(to: [number], sketch_surface: SketchSurface, tag?: TagNode) -> Sketch
|
||||
```
|
||||
|
||||
|
||||
@ -19,7 +19,7 @@ startProfileAt(to: [number], sketch_surface: SketchSurface, tag?: TagDeclarator)
|
||||
|----------|------|-------------|----------|
|
||||
| `to` | `[number]` | | Yes |
|
||||
| `sketch_surface` | [`SketchSurface`](/docs/kcl/types/SketchSurface) | A sketch type. | Yes |
|
||||
| `tag` | [`TagDeclarator`](/docs/kcl/types#tag-declaration) | | No |
|
||||
| `tag` | [`TagNode`](/docs/kcl/types/TagNode) | | No |
|
||||
|
||||
### Returns
|
||||
|
||||
|
||||
16275
docs/kcl/std.json
16275
docs/kcl/std.json
File diff suppressed because it is too large
Load Diff
@ -9,7 +9,7 @@ Draw a curved line segment along part of an imaginary circle.
|
||||
The arc is constructed such that the last line segment is placed tangent to the imaginary circle of the specified radius. The resulting arc is the segment of the imaginary circle from that tangent point for 'offset' degrees along the imaginary circle.
|
||||
|
||||
```js
|
||||
tangentialArc(data: TangentialArcData, sketch: Sketch, tag?: TagDeclarator) -> Sketch
|
||||
tangentialArc(data: TangentialArcData, sketch: Sketch, tag?: TagNode) -> Sketch
|
||||
```
|
||||
|
||||
|
||||
@ -19,7 +19,7 @@ tangentialArc(data: TangentialArcData, sketch: Sketch, tag?: TagDeclarator) -> S
|
||||
|----------|------|-------------|----------|
|
||||
| `data` | [`TangentialArcData`](/docs/kcl/types/TangentialArcData) | Data to draw a tangential arc. | Yes |
|
||||
| `sketch` | [`Sketch`](/docs/kcl/types/Sketch) | A sketch is a collection of paths. | Yes |
|
||||
| `tag` | [`TagDeclarator`](/docs/kcl/types#tag-declaration) | | No |
|
||||
| `tag` | [`TagNode`](/docs/kcl/types/TagNode) | | No |
|
||||
|
||||
### Returns
|
||||
|
||||
|
||||
@ -9,7 +9,7 @@ Starting at the current sketch's origin, draw a curved line segment along
|
||||
some part of an imaginary circle until it reaches the desired (x, y) coordinates.
|
||||
|
||||
```js
|
||||
tangentialArcTo(to: [number], sketch: Sketch, tag?: TagDeclarator) -> Sketch
|
||||
tangentialArcTo(to: [number], sketch: Sketch, tag?: TagNode) -> Sketch
|
||||
```
|
||||
|
||||
|
||||
@ -19,7 +19,7 @@ tangentialArcTo(to: [number], sketch: Sketch, tag?: TagDeclarator) -> Sketch
|
||||
|----------|------|-------------|----------|
|
||||
| `to` | `[number]` | | Yes |
|
||||
| `sketch` | [`Sketch`](/docs/kcl/types/Sketch) | A sketch is a collection of paths. | Yes |
|
||||
| `tag` | [`TagDeclarator`](/docs/kcl/types#tag-declaration) | | No |
|
||||
| `tag` | [`TagNode`](/docs/kcl/types/TagNode) | | No |
|
||||
|
||||
### Returns
|
||||
|
||||
|
||||
@ -9,7 +9,7 @@ Starting at the current sketch's origin, draw a curved line segment along
|
||||
some part of an imaginary circle until it reaches a point the given (x, y) distance away.
|
||||
|
||||
```js
|
||||
tangentialArcToRelative(delta: [number], sketch: Sketch, tag?: TagDeclarator) -> Sketch
|
||||
tangentialArcToRelative(delta: [number], sketch: Sketch, tag?: TagNode) -> Sketch
|
||||
```
|
||||
|
||||
|
||||
@ -19,7 +19,7 @@ tangentialArcToRelative(delta: [number], sketch: Sketch, tag?: TagDeclarator) ->
|
||||
|----------|------|-------------|----------|
|
||||
| `delta` | `[number]` | | Yes |
|
||||
| `sketch` | [`Sketch`](/docs/kcl/types/Sketch) | A sketch is a collection of paths. | Yes |
|
||||
| `tag` | [`TagDeclarator`](/docs/kcl/types#tag-declaration) | | No |
|
||||
| `tag` | [`TagNode`](/docs/kcl/types/TagNode) | | No |
|
||||
|
||||
### Returns
|
||||
|
||||
|
||||
@ -18,7 +18,7 @@ A base path.
|
||||
|----------|------|-------------|----------|
|
||||
| `from` |`[number, number]`| The from point. | No |
|
||||
| `to` |`[number, number]`| The to point. | No |
|
||||
| `tag` |[`TagDeclarator`](/docs/kcl/types#tag-declaration)| The tag of the path. | No |
|
||||
| `tag` |[`TagNode`](/docs/kcl/types/TagNode)| The tag of the path. | No |
|
||||
| `__geoMeta` |[`GeoMeta`](/docs/kcl/types/GeoMeta)| Metadata. | No |
|
||||
|
||||
|
||||
|
||||
@ -22,12 +22,10 @@ layout: manual
|
||||
|
||||
| Property | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `type` |enum: `Literal`| | No |
|
||||
| `type` |enum: [`Literal`](/docs/kcl/types/Literal)| | No |
|
||||
| `kind` |[`Literal`](/docs/kcl/types/Literal)| | No |
|
||||
| `start` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `end` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `value` |[`LiteralValue`](/docs/kcl/types/LiteralValue)| | No |
|
||||
| `raw` |`string`| | No |
|
||||
| `digest` |`[, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`]`| | No |
|
||||
|
||||
|
||||
----
|
||||
@ -43,10 +41,9 @@ layout: manual
|
||||
| Property | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `type` |enum: [`Identifier`](/docs/kcl/types/Identifier)| | No |
|
||||
| `kind` |[`Identifier`](/docs/kcl/types/Identifier)| | No |
|
||||
| `start` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `end` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `name` |`string`| | No |
|
||||
| `digest` |`[, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`]`| | No |
|
||||
|
||||
|
||||
----
|
||||
@ -61,13 +58,10 @@ layout: manual
|
||||
|
||||
| Property | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `type` |enum: `BinaryExpression`| | No |
|
||||
| `type` |enum: [`BinaryExpression`](/docs/kcl/types/BinaryExpression)| | No |
|
||||
| `kind` |[`BinaryExpression`](/docs/kcl/types/BinaryExpression)| | No |
|
||||
| `start` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `end` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `operator` |[`BinaryOperator`](/docs/kcl/types/BinaryOperator)| | No |
|
||||
| `left` |[`BinaryPart`](/docs/kcl/types/BinaryPart)| | No |
|
||||
| `right` |[`BinaryPart`](/docs/kcl/types/BinaryPart)| | No |
|
||||
| `digest` |`[, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`]`| | No |
|
||||
|
||||
|
||||
----
|
||||
@ -82,13 +76,10 @@ layout: manual
|
||||
|
||||
| Property | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `type` |enum: `CallExpression`| | No |
|
||||
| `type` |enum: [`CallExpression`](/docs/kcl/types/CallExpression)| | No |
|
||||
| `kind` |[`CallExpression`](/docs/kcl/types/CallExpression)| | No |
|
||||
| `start` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `end` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `callee` |[`Identifier`](/docs/kcl/types/Identifier)| | No |
|
||||
| `arguments` |`[` [`Expr`](/docs/kcl/types/Expr) `]`| | No |
|
||||
| `optional` |`boolean`| | No |
|
||||
| `digest` |`[, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`]`| | No |
|
||||
|
||||
|
||||
----
|
||||
@ -103,12 +94,10 @@ layout: manual
|
||||
|
||||
| Property | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `type` |enum: `UnaryExpression`| | No |
|
||||
| `type` |enum: [`UnaryExpression`](/docs/kcl/types/UnaryExpression)| | No |
|
||||
| `kind` |[`UnaryExpression`](/docs/kcl/types/UnaryExpression)| | No |
|
||||
| `start` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `end` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `operator` |[`UnaryOperator`](/docs/kcl/types/UnaryOperator)| | No |
|
||||
| `argument` |[`BinaryPart`](/docs/kcl/types/BinaryPart)| | No |
|
||||
| `digest` |`[, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`]`| | No |
|
||||
|
||||
|
||||
----
|
||||
@ -123,13 +112,10 @@ layout: manual
|
||||
|
||||
| Property | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `type` |enum: `MemberExpression`| | No |
|
||||
| `type` |enum: [`MemberExpression`](/docs/kcl/types/MemberExpression)| | No |
|
||||
| `kind` |[`MemberExpression`](/docs/kcl/types/MemberExpression)| | No |
|
||||
| `start` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `end` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `object` |[`MemberObject`](/docs/kcl/types/MemberObject)| | No |
|
||||
| `property` |[`LiteralIdentifier`](/docs/kcl/types/LiteralIdentifier)| | No |
|
||||
| `computed` |`boolean`| | No |
|
||||
| `digest` |`[, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`]`| | No |
|
||||
|
||||
|
||||
----
|
||||
@ -144,14 +130,10 @@ layout: manual
|
||||
|
||||
| Property | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `type` |enum: `IfExpression`| | No |
|
||||
| `type` |enum: [`IfExpression`](/docs/kcl/types/IfExpression)| | No |
|
||||
| `kind` |[`IfExpression`](/docs/kcl/types/IfExpression)| | No |
|
||||
| `start` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `end` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `cond` |[`Expr`](/docs/kcl/types/Expr)| | No |
|
||||
| `then_val` |[`Program`](/docs/kcl/types/Program)| | No |
|
||||
| `else_ifs` |`[` [`ElseIf`](/docs/kcl/types/ElseIf) `]`| | No |
|
||||
| `final_else` |[`Program`](/docs/kcl/types/Program)| | No |
|
||||
| `digest` |`[, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`]`| | No |
|
||||
|
||||
|
||||
----
|
||||
|
||||
@ -22,13 +22,10 @@ layout: manual
|
||||
|
||||
| Property | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `type` |enum: `ImportStatement`| | No |
|
||||
| `type` |enum: [`ImportStatement`](/docs/kcl/types/ImportStatement)| | No |
|
||||
| `kind` |[`ImportStatement`](/docs/kcl/types/ImportStatement)| | No |
|
||||
| `start` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `end` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `items` |`[` [`ImportItem`](/docs/kcl/types/ImportItem) `]`| | No |
|
||||
| `path` |`string`| | No |
|
||||
| `raw_path` |`string`| | No |
|
||||
| `digest` |`[, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`]`| | No |
|
||||
|
||||
|
||||
----
|
||||
@ -43,11 +40,10 @@ layout: manual
|
||||
|
||||
| Property | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `type` |enum: `ExpressionStatement`| | No |
|
||||
| `type` |enum: [`ExpressionStatement`](/docs/kcl/types/ExpressionStatement)| | No |
|
||||
| `kind` |[`ExpressionStatement`](/docs/kcl/types/ExpressionStatement)| | No |
|
||||
| `start` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `end` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `expression` |[`Expr`](/docs/kcl/types/Expr)| | No |
|
||||
| `digest` |`[, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`]`| | No |
|
||||
|
||||
|
||||
----
|
||||
@ -62,13 +58,10 @@ layout: manual
|
||||
|
||||
| Property | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `type` |enum: `VariableDeclaration`| | No |
|
||||
| `type` |enum: [`VariableDeclaration`](/docs/kcl/types/VariableDeclaration)| | No |
|
||||
| `kind` |[`VariableDeclaration`](/docs/kcl/types/VariableDeclaration)| | No |
|
||||
| `start` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `end` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `declarations` |`[` [`VariableDeclarator`](/docs/kcl/types/VariableDeclarator) `]`| | No |
|
||||
| `visibility` |[`ItemVisibility`](/docs/kcl/types/ItemVisibility)| | No |
|
||||
| `kind` |[`VariableKind`](/docs/kcl/types/VariableKind)| | No |
|
||||
| `digest` |`[, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`]`| | No |
|
||||
|
||||
|
||||
----
|
||||
@ -83,11 +76,10 @@ layout: manual
|
||||
|
||||
| Property | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `type` |enum: `ReturnStatement`| | No |
|
||||
| `type` |enum: [`ReturnStatement`](/docs/kcl/types/ReturnStatement)| | No |
|
||||
| `kind` |[`ReturnStatement`](/docs/kcl/types/ReturnStatement)| | No |
|
||||
| `start` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `end` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `argument` |[`Expr`](/docs/kcl/types/Expr)| | No |
|
||||
| `digest` |`[, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`]`| | No |
|
||||
|
||||
|
||||
----
|
||||
|
||||
@ -28,7 +28,7 @@ A fillet.
|
||||
| `id` |`string`| The id of the engine command that called this fillet. | No |
|
||||
| `radius` |`number`| | No |
|
||||
| `edgeId` |`string`| The engine id of the edge to fillet. | No |
|
||||
| `tag` |[`TagDeclarator`](/docs/kcl/types#tag-declaration)| | No |
|
||||
| `tag` |[`TagNode`](/docs/kcl/types/TagNode)| | No |
|
||||
|
||||
|
||||
----
|
||||
@ -48,7 +48,7 @@ A chamfer.
|
||||
| `id` |`string`| The id of the engine command that called this chamfer. | No |
|
||||
| `length` |`number`| | No |
|
||||
| `edgeId` |`string`| The engine id of the edge to chamfer. | No |
|
||||
| `tag` |[`TagDeclarator`](/docs/kcl/types#tag-declaration)| | No |
|
||||
| `tag` |[`TagNode`](/docs/kcl/types/TagNode)| | No |
|
||||
|
||||
|
||||
----
|
||||
|
||||
@ -15,10 +15,8 @@ layout: manual
|
||||
|
||||
| Property | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `start` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `end` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `cond` |[`Expr`](/docs/kcl/types/Expr)| | No |
|
||||
| `then_val` |[`Program`](/docs/kcl/types/Program)| | No |
|
||||
| `then_val` |[`UnboxedNode_for_Program`](/docs/kcl/types/UnboxedNode_for_Program)| | No |
|
||||
| `digest` |`[, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`]`| | No |
|
||||
|
||||
|
||||
|
||||
@ -23,12 +23,10 @@ An expression can be evaluated to yield a single KCL value.
|
||||
|
||||
| Property | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `type` |enum: `Literal`| | No |
|
||||
| `type` |enum: [`Literal`](/docs/kcl/types/Literal)| | No |
|
||||
| `kind` |[`Literal`](/docs/kcl/types/Literal)| An expression can be evaluated to yield a single KCL value. | No |
|
||||
| `start` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `end` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `value` |[`LiteralValue`](/docs/kcl/types/LiteralValue)| An expression can be evaluated to yield a single KCL value. | No |
|
||||
| `raw` |`string`| | No |
|
||||
| `digest` |`[, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`]`| | No |
|
||||
|
||||
|
||||
----
|
||||
@ -44,10 +42,9 @@ An expression can be evaluated to yield a single KCL value.
|
||||
| Property | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `type` |enum: [`Identifier`](/docs/kcl/types/Identifier)| | No |
|
||||
| `kind` |[`Identifier`](/docs/kcl/types/Identifier)| An expression can be evaluated to yield a single KCL value. | No |
|
||||
| `start` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `end` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `name` |`string`| | No |
|
||||
| `digest` |`[, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`]`| | No |
|
||||
|
||||
|
||||
----
|
||||
@ -63,10 +60,9 @@ An expression can be evaluated to yield a single KCL value.
|
||||
| Property | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `type` |enum: [`TagDeclarator`](/docs/kcl/types#tag-declaration)| | No |
|
||||
| `kind` |[`TagDeclarator`](/docs/kcl/types#tag-declaration)| An expression can be evaluated to yield a single KCL value. | No |
|
||||
| `start` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `end` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `value` |`string`| | No |
|
||||
| `digest` |`[, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`]`| | No |
|
||||
|
||||
|
||||
----
|
||||
@ -81,13 +77,10 @@ An expression can be evaluated to yield a single KCL value.
|
||||
|
||||
| Property | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `type` |enum: `BinaryExpression`| | No |
|
||||
| `type` |enum: [`BinaryExpression`](/docs/kcl/types/BinaryExpression)| | No |
|
||||
| `kind` |[`BinaryExpression`](/docs/kcl/types/BinaryExpression)| An expression can be evaluated to yield a single KCL value. | No |
|
||||
| `start` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `end` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `operator` |[`BinaryOperator`](/docs/kcl/types/BinaryOperator)| An expression can be evaluated to yield a single KCL value. | No |
|
||||
| `left` |[`BinaryPart`](/docs/kcl/types/BinaryPart)| An expression can be evaluated to yield a single KCL value. | No |
|
||||
| `right` |[`BinaryPart`](/docs/kcl/types/BinaryPart)| An expression can be evaluated to yield a single KCL value. | No |
|
||||
| `digest` |`[, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`]`| | No |
|
||||
|
||||
|
||||
----
|
||||
@ -103,11 +96,9 @@ An expression can be evaluated to yield a single KCL value.
|
||||
| Property | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `type` |enum: [`FunctionExpression`](/docs/kcl/types/FunctionExpression)| | No |
|
||||
| `kind` |[`FunctionExpression`](/docs/kcl/types/FunctionExpression)| An expression can be evaluated to yield a single KCL value. | No |
|
||||
| `start` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `end` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `params` |`[` [`Parameter`](/docs/kcl/types/Parameter) `]`| | No |
|
||||
| `body` |[`Program`](/docs/kcl/types/Program)| An expression can be evaluated to yield a single KCL value. | No |
|
||||
| `digest` |`[, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`]`| | No |
|
||||
|
||||
|
||||
----
|
||||
@ -122,13 +113,10 @@ An expression can be evaluated to yield a single KCL value.
|
||||
|
||||
| Property | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `type` |enum: `CallExpression`| | No |
|
||||
| `type` |enum: [`CallExpression`](/docs/kcl/types/CallExpression)| | No |
|
||||
| `kind` |[`CallExpression`](/docs/kcl/types/CallExpression)| An expression can be evaluated to yield a single KCL value. | No |
|
||||
| `start` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `end` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `callee` |[`Identifier`](/docs/kcl/types/Identifier)| An expression can be evaluated to yield a single KCL value. | No |
|
||||
| `arguments` |`[` [`Expr`](/docs/kcl/types/Expr) `]`| | No |
|
||||
| `optional` |`boolean`| | No |
|
||||
| `digest` |`[, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`]`| | No |
|
||||
|
||||
|
||||
----
|
||||
@ -143,12 +131,10 @@ An expression can be evaluated to yield a single KCL value.
|
||||
|
||||
| Property | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `type` |enum: `PipeExpression`| | No |
|
||||
| `type` |enum: [`PipeExpression`](/docs/kcl/types/PipeExpression)| | No |
|
||||
| `kind` |[`PipeExpression`](/docs/kcl/types/PipeExpression)| An expression can be evaluated to yield a single KCL value. | No |
|
||||
| `start` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `end` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `body` |`[` [`Expr`](/docs/kcl/types/Expr) `]`| | No |
|
||||
| `nonCodeMeta` |[`NonCodeMeta`](/docs/kcl/types/NonCodeMeta)| An expression can be evaluated to yield a single KCL value. | No |
|
||||
| `digest` |`[, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`]`| | No |
|
||||
|
||||
|
||||
----
|
||||
@ -163,10 +149,10 @@ An expression can be evaluated to yield a single KCL value.
|
||||
|
||||
| Property | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `type` |enum: `PipeSubstitution`| | No |
|
||||
| `type` |enum: [`PipeSubstitution`](/docs/kcl/types/PipeSubstitution)| | No |
|
||||
| `kind` |[`PipeSubstitution`](/docs/kcl/types/PipeSubstitution)| An expression can be evaluated to yield a single KCL value. | No |
|
||||
| `start` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `end` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `digest` |`[, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`]`| | No |
|
||||
|
||||
|
||||
----
|
||||
@ -181,12 +167,10 @@ An expression can be evaluated to yield a single KCL value.
|
||||
|
||||
| Property | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `type` |enum: `ArrayExpression`| | No |
|
||||
| `type` |enum: [`ArrayExpression`](/docs/kcl/types/ArrayExpression)| | No |
|
||||
| `kind` |[`ArrayExpression`](/docs/kcl/types/ArrayExpression)| An expression can be evaluated to yield a single KCL value. | No |
|
||||
| `start` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `end` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `elements` |`[` [`Expr`](/docs/kcl/types/Expr) `]`| | No |
|
||||
| `nonCodeMeta` |[`NonCodeMeta`](/docs/kcl/types/NonCodeMeta)| An expression can be evaluated to yield a single KCL value. | No |
|
||||
| `digest` |`[, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`]`| | No |
|
||||
|
||||
|
||||
----
|
||||
@ -201,13 +185,10 @@ An expression can be evaluated to yield a single KCL value.
|
||||
|
||||
| Property | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `type` |enum: `ArrayRangeExpression`| | No |
|
||||
| `type` |enum: [`ArrayRangeExpression`](/docs/kcl/types/ArrayRangeExpression)| | No |
|
||||
| `kind` |[`ArrayRangeExpression`](/docs/kcl/types/ArrayRangeExpression)| An expression can be evaluated to yield a single KCL value. | No |
|
||||
| `start` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `end` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `startElement` |[`Expr`](/docs/kcl/types/Expr)| An expression can be evaluated to yield a single KCL value. | No |
|
||||
| `endElement` |[`Expr`](/docs/kcl/types/Expr)| An expression can be evaluated to yield a single KCL value. | No |
|
||||
| `endInclusive` |`boolean`| Is the `end_element` included in the range? | No |
|
||||
| `digest` |`[, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`]`| | No |
|
||||
|
||||
|
||||
----
|
||||
@ -222,12 +203,10 @@ An expression can be evaluated to yield a single KCL value.
|
||||
|
||||
| Property | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `type` |enum: `ObjectExpression`| | No |
|
||||
| `type` |enum: [`ObjectExpression`](/docs/kcl/types/ObjectExpression)| | No |
|
||||
| `kind` |[`ObjectExpression`](/docs/kcl/types/ObjectExpression)| An expression can be evaluated to yield a single KCL value. | No |
|
||||
| `start` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `end` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `properties` |`[` [`ObjectProperty`](/docs/kcl/types/ObjectProperty) `]`| | No |
|
||||
| `nonCodeMeta` |[`NonCodeMeta`](/docs/kcl/types/NonCodeMeta)| An expression can be evaluated to yield a single KCL value. | No |
|
||||
| `digest` |`[, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`]`| | No |
|
||||
|
||||
|
||||
----
|
||||
@ -242,13 +221,10 @@ An expression can be evaluated to yield a single KCL value.
|
||||
|
||||
| Property | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `type` |enum: `MemberExpression`| | No |
|
||||
| `type` |enum: [`MemberExpression`](/docs/kcl/types/MemberExpression)| | No |
|
||||
| `kind` |[`MemberExpression`](/docs/kcl/types/MemberExpression)| An expression can be evaluated to yield a single KCL value. | No |
|
||||
| `start` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `end` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `object` |[`MemberObject`](/docs/kcl/types/MemberObject)| An expression can be evaluated to yield a single KCL value. | No |
|
||||
| `property` |[`LiteralIdentifier`](/docs/kcl/types/LiteralIdentifier)| An expression can be evaluated to yield a single KCL value. | No |
|
||||
| `computed` |`boolean`| | No |
|
||||
| `digest` |`[, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`]`| | No |
|
||||
|
||||
|
||||
----
|
||||
@ -263,12 +239,10 @@ An expression can be evaluated to yield a single KCL value.
|
||||
|
||||
| Property | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `type` |enum: `UnaryExpression`| | No |
|
||||
| `type` |enum: [`UnaryExpression`](/docs/kcl/types/UnaryExpression)| | No |
|
||||
| `kind` |[`UnaryExpression`](/docs/kcl/types/UnaryExpression)| An expression can be evaluated to yield a single KCL value. | No |
|
||||
| `start` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `end` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `operator` |[`UnaryOperator`](/docs/kcl/types/UnaryOperator)| An expression can be evaluated to yield a single KCL value. | No |
|
||||
| `argument` |[`BinaryPart`](/docs/kcl/types/BinaryPart)| An expression can be evaluated to yield a single KCL value. | No |
|
||||
| `digest` |`[, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`]`| | No |
|
||||
|
||||
|
||||
----
|
||||
@ -283,14 +257,10 @@ An expression can be evaluated to yield a single KCL value.
|
||||
|
||||
| Property | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `type` |enum: `IfExpression`| | No |
|
||||
| `type` |enum: [`IfExpression`](/docs/kcl/types/IfExpression)| | No |
|
||||
| `kind` |[`IfExpression`](/docs/kcl/types/IfExpression)| An expression can be evaluated to yield a single KCL value. | No |
|
||||
| `start` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `end` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `cond` |[`Expr`](/docs/kcl/types/Expr)| An expression can be evaluated to yield a single KCL value. | No |
|
||||
| `then_val` |[`Program`](/docs/kcl/types/Program)| An expression can be evaluated to yield a single KCL value. | No |
|
||||
| `else_ifs` |`[` [`ElseIf`](/docs/kcl/types/ElseIf) `]`| | No |
|
||||
| `final_else` |[`Program`](/docs/kcl/types/Program)| An expression can be evaluated to yield a single KCL value. | No |
|
||||
| `digest` |`[, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`]`| | No |
|
||||
|
||||
|
||||
----
|
||||
|
||||
@ -26,7 +26,7 @@ An extrude plane.
|
||||
|----------|------|-------------|----------|
|
||||
| `type` |enum: `extrudePlane`| | No |
|
||||
| `faceId` |`string`| The face id for the extrude plane. | No |
|
||||
| `tag` |[`TagDeclarator`](/docs/kcl/types#tag-declaration)| The tag. | No |
|
||||
| `tag` |[`TagNode`](/docs/kcl/types/TagNode)| The tag. | No |
|
||||
| `id` |`string`| The id of the geometry. | No |
|
||||
| `sourceRange` |`SourceRange`| The source range. | No |
|
||||
|
||||
@ -46,7 +46,7 @@ An extruded arc.
|
||||
|----------|------|-------------|----------|
|
||||
| `type` |enum: `extrudeArc`| | No |
|
||||
| `faceId` |`string`| The face id for the extrude plane. | No |
|
||||
| `tag` |[`TagDeclarator`](/docs/kcl/types#tag-declaration)| The tag. | No |
|
||||
| `tag` |[`TagNode`](/docs/kcl/types/TagNode)| The tag. | No |
|
||||
| `id` |`string`| The id of the geometry. | No |
|
||||
| `sourceRange` |`SourceRange`| The source range. | No |
|
||||
|
||||
@ -66,7 +66,7 @@ Geometry metadata.
|
||||
|----------|------|-------------|----------|
|
||||
| `type` |enum: `chamfer`| | No |
|
||||
| `faceId` |`string`| The id for the chamfer surface. | No |
|
||||
| `tag` |[`TagDeclarator`](/docs/kcl/types#tag-declaration)| The tag. | No |
|
||||
| `tag` |[`TagNode`](/docs/kcl/types/TagNode)| The tag. | No |
|
||||
| `id` |`string`| The id of the geometry. | No |
|
||||
| `sourceRange` |`SourceRange`| The source range. | No |
|
||||
|
||||
@ -86,7 +86,7 @@ Geometry metadata.
|
||||
|----------|------|-------------|----------|
|
||||
| `type` |enum: `fillet`| | No |
|
||||
| `faceId` |`string`| The id for the fillet surface. | No |
|
||||
| `tag` |[`TagDeclarator`](/docs/kcl/types#tag-declaration)| The tag. | No |
|
||||
| `tag` |[`TagNode`](/docs/kcl/types/TagNode)| The tag. | No |
|
||||
| `id` |`string`| The id of the geometry. | No |
|
||||
| `sourceRange` |`SourceRange`| The source range. | No |
|
||||
|
||||
|
||||
@ -15,10 +15,8 @@ layout: manual
|
||||
|
||||
| Property | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `start` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `end` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `params` |`[` [`Parameter`](/docs/kcl/types/Parameter) `]`| | No |
|
||||
| `body` |[`Program`](/docs/kcl/types/Program)| | No |
|
||||
| `body` |[`UnboxedNode_for_Program`](/docs/kcl/types/UnboxedNode_for_Program)| | No |
|
||||
| `digest` |`[, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`]`| | No |
|
||||
|
||||
|
||||
|
||||
@ -15,8 +15,6 @@ layout: manual
|
||||
|
||||
| Property | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `start` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `end` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `name` |`string`| | No |
|
||||
| `digest` |`[, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`]`| | No |
|
||||
|
||||
|
||||
@ -15,10 +15,8 @@ layout: manual
|
||||
|
||||
| Property | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `name` |[`Identifier`](/docs/kcl/types/Identifier)| Name of the item to import. | No |
|
||||
| `alias` |[`Identifier`](/docs/kcl/types/Identifier)| Rename the item using an identifier after "as". | No |
|
||||
| `start` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `end` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `name` |[`UnboxedNode_for_Identifier`](/docs/kcl/types/UnboxedNode_for_Identifier)| Name of the item to import. | No |
|
||||
| `alias` |[`UnboxedNode_for_Identifier`](/docs/kcl/types/UnboxedNode_for_Identifier)| Rename the item using an identifier after "as". | No |
|
||||
| `digest` |`[, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`]`| | No |
|
||||
|
||||
|
||||
|
||||
@ -59,10 +59,9 @@ Any KCL value.
|
||||
| Property | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `type` |enum: [`TagDeclarator`](/docs/kcl/types#tag-declaration)| | No |
|
||||
| `kind` |[`TagDeclarator`](/docs/kcl/types#tag-declaration)| Any KCL value. | No |
|
||||
| `start` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `end` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `value` |`string`| | No |
|
||||
| `digest` |`[, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`]`| | No |
|
||||
|
||||
|
||||
----
|
||||
@ -183,7 +182,7 @@ Data for an imported geometry.
|
||||
| Property | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `type` |enum: `Function`| | No |
|
||||
| `expression` |[`FunctionExpression`](/docs/kcl/types/FunctionExpression)| Any KCL value. | No |
|
||||
| `expression` |[`UnboxedNode_for_FunctionExpression`](/docs/kcl/types/UnboxedNode_for_FunctionExpression)| Any KCL value. | No |
|
||||
| `memory` |[`ProgramMemory`](/docs/kcl/types/ProgramMemory)| Any KCL value. | No |
|
||||
| `__meta` |`[` [`Metadata`](/docs/kcl/types/Metadata) `]`| | No |
|
||||
|
||||
|
||||
@ -23,10 +23,9 @@ layout: manual
|
||||
| Property | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `type` |enum: [`Identifier`](/docs/kcl/types/Identifier)| | No |
|
||||
| `kind` |[`Identifier`](/docs/kcl/types/Identifier)| | No |
|
||||
| `start` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `end` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `name` |`string`| | No |
|
||||
| `digest` |`[, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`]`| | No |
|
||||
|
||||
|
||||
----
|
||||
@ -41,12 +40,10 @@ layout: manual
|
||||
|
||||
| Property | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `type` |enum: `Literal`| | No |
|
||||
| `type` |enum: [`Literal`](/docs/kcl/types/Literal)| | No |
|
||||
| `kind` |[`Literal`](/docs/kcl/types/Literal)| | No |
|
||||
| `start` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `end` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `value` |[`LiteralValue`](/docs/kcl/types/LiteralValue)| | No |
|
||||
| `raw` |`string`| | No |
|
||||
| `digest` |`[, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`]`| | No |
|
||||
|
||||
|
||||
----
|
||||
|
||||
@ -22,13 +22,10 @@ layout: manual
|
||||
|
||||
| Property | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `type` |enum: `MemberExpression`| | No |
|
||||
| `type` |enum: [`MemberExpression`](/docs/kcl/types/MemberExpression)| | No |
|
||||
| `kind` |[`MemberExpression`](/docs/kcl/types/MemberExpression)| | No |
|
||||
| `start` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `end` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `object` |[`MemberObject`](/docs/kcl/types/MemberObject)| | No |
|
||||
| `property` |[`LiteralIdentifier`](/docs/kcl/types/LiteralIdentifier)| | No |
|
||||
| `computed` |`boolean`| | No |
|
||||
| `digest` |`[, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`]`| | No |
|
||||
|
||||
|
||||
----
|
||||
@ -44,10 +41,9 @@ layout: manual
|
||||
| Property | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `type` |enum: [`Identifier`](/docs/kcl/types/Identifier)| | No |
|
||||
| `kind` |[`Identifier`](/docs/kcl/types/Identifier)| | No |
|
||||
| `start` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `end` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `name` |`string`| | No |
|
||||
| `digest` |`[, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`]`| | No |
|
||||
|
||||
|
||||
----
|
||||
|
||||
@ -16,7 +16,7 @@ layout: manual
|
||||
| Property | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `nonCodeNodes` |`object`| | No |
|
||||
| `start` |`[` [`NonCodeNode`](/docs/kcl/types/NonCodeNode) `]`| | No |
|
||||
| `start` |`[` [`UnboxedNode_for_NonCodeNode`](/docs/kcl/types/UnboxedNode_for_NonCodeNode) `]`| | No |
|
||||
| `digest` |`[, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`]`| | No |
|
||||
|
||||
|
||||
|
||||
@ -15,8 +15,6 @@ layout: manual
|
||||
|
||||
| Property | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `start` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `end` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `value` |[`NonCodeValue`](/docs/kcl/types/NonCodeValue)| | No |
|
||||
| `digest` |`[, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`]`| | No |
|
||||
|
||||
|
||||
@ -15,9 +15,7 @@ layout: manual
|
||||
|
||||
| Property | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `start` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `end` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `key` |[`Identifier`](/docs/kcl/types/Identifier)| | No |
|
||||
| `key` |[`UnboxedNode_for_Identifier`](/docs/kcl/types/UnboxedNode_for_Identifier)| | No |
|
||||
| `value` |[`Expr`](/docs/kcl/types/Expr)| | No |
|
||||
| `digest` |`[, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`]`| | No |
|
||||
|
||||
|
||||
@ -16,7 +16,7 @@ Parameter of a KCL function.
|
||||
|
||||
| Property | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `identifier` |[`Identifier`](/docs/kcl/types/Identifier)| The parameter's label or name. | No |
|
||||
| `identifier` |[`UnboxedNode_for_Identifier`](/docs/kcl/types/UnboxedNode_for_Identifier)| The parameter's label or name. | No |
|
||||
| `optional` |`boolean`| Is the parameter optional? | No |
|
||||
| `digest` |`[, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`]`| | No |
|
||||
|
||||
|
||||
@ -27,7 +27,7 @@ A path that goes to a point.
|
||||
| `type` |enum: `ToPoint`| | No |
|
||||
| `from` |`[number, number]`| The from point. | No |
|
||||
| `to` |`[number, number]`| The to point. | No |
|
||||
| `tag` |[`TagDeclarator`](/docs/kcl/types#tag-declaration)| The tag of the path. | No |
|
||||
| `tag` |[`TagNode`](/docs/kcl/types/TagNode)| The tag of the path. | No |
|
||||
| `__geoMeta` |[`GeoMeta`](/docs/kcl/types/GeoMeta)| Metadata. | No |
|
||||
|
||||
|
||||
@ -49,7 +49,7 @@ A arc that is tangential to the last path segment that goes to a point
|
||||
| `ccw` |`boolean`| arc's direction | No |
|
||||
| `from` |`[number, number]`| The from point. | No |
|
||||
| `to` |`[number, number]`| The to point. | No |
|
||||
| `tag` |[`TagDeclarator`](/docs/kcl/types#tag-declaration)| The tag of the path. | No |
|
||||
| `tag` |[`TagNode`](/docs/kcl/types/TagNode)| The tag of the path. | No |
|
||||
| `__geoMeta` |[`GeoMeta`](/docs/kcl/types/GeoMeta)| Metadata. | No |
|
||||
|
||||
|
||||
@ -71,7 +71,7 @@ A arc that is tangential to the last path segment
|
||||
| `ccw` |`boolean`| arc's direction | No |
|
||||
| `from` |`[number, number]`| The from point. | No |
|
||||
| `to` |`[number, number]`| The to point. | No |
|
||||
| `tag` |[`TagDeclarator`](/docs/kcl/types#tag-declaration)| The tag of the path. | No |
|
||||
| `tag` |[`TagNode`](/docs/kcl/types/TagNode)| The tag of the path. | No |
|
||||
| `__geoMeta` |[`GeoMeta`](/docs/kcl/types/GeoMeta)| Metadata. | No |
|
||||
|
||||
|
||||
@ -94,7 +94,7 @@ a complete arc
|
||||
| `ccw` |`boolean`| arc's direction | No |
|
||||
| `from` |`[number, number]`| The from point. | No |
|
||||
| `to` |`[number, number]`| The to point. | No |
|
||||
| `tag` |[`TagDeclarator`](/docs/kcl/types#tag-declaration)| The tag of the path. | No |
|
||||
| `tag` |[`TagNode`](/docs/kcl/types/TagNode)| The tag of the path. | No |
|
||||
| `__geoMeta` |[`GeoMeta`](/docs/kcl/types/GeoMeta)| Metadata. | No |
|
||||
|
||||
|
||||
@ -115,7 +115,7 @@ A path that is horizontal.
|
||||
| `x` |`number`| The x coordinate. | No |
|
||||
| `from` |`[number, number]`| The from point. | No |
|
||||
| `to` |`[number, number]`| The to point. | No |
|
||||
| `tag` |[`TagDeclarator`](/docs/kcl/types#tag-declaration)| The tag of the path. | No |
|
||||
| `tag` |[`TagNode`](/docs/kcl/types/TagNode)| The tag of the path. | No |
|
||||
| `__geoMeta` |[`GeoMeta`](/docs/kcl/types/GeoMeta)| Metadata. | No |
|
||||
|
||||
|
||||
@ -137,7 +137,7 @@ An angled line to.
|
||||
| `y` |`number`| The y coordinate. | No |
|
||||
| `from` |`[number, number]`| The from point. | No |
|
||||
| `to` |`[number, number]`| The to point. | No |
|
||||
| `tag` |[`TagDeclarator`](/docs/kcl/types#tag-declaration)| The tag of the path. | No |
|
||||
| `tag` |[`TagNode`](/docs/kcl/types/TagNode)| The tag of the path. | No |
|
||||
| `__geoMeta` |[`GeoMeta`](/docs/kcl/types/GeoMeta)| Metadata. | No |
|
||||
|
||||
|
||||
@ -157,7 +157,7 @@ A base path.
|
||||
| `type` |enum: `Base`| | No |
|
||||
| `from` |`[number, number]`| The from point. | No |
|
||||
| `to` |`[number, number]`| The to point. | No |
|
||||
| `tag` |[`TagDeclarator`](/docs/kcl/types#tag-declaration)| The tag of the path. | No |
|
||||
| `tag` |[`TagNode`](/docs/kcl/types/TagNode)| The tag of the path. | No |
|
||||
| `__geoMeta` |[`GeoMeta`](/docs/kcl/types/GeoMeta)| Metadata. | No |
|
||||
|
||||
|
||||
|
||||
@ -16,10 +16,8 @@ A KCL program top level, or function body.
|
||||
|
||||
| Property | Type | Description | Required |
|
||||
|----------|------|-------------|----------|
|
||||
| `start` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `end` |[`EnvironmentRef`](/docs/kcl/types/EnvironmentRef)| | No |
|
||||
| `body` |`[` [`BodyItem`](/docs/kcl/types/BodyItem) `]`| | No |
|
||||
| `nonCodeMeta` |[`NonCodeMeta`](/docs/kcl/types/NonCodeMeta)| A KCL program top level, or function body. | No |
|
||||
| `nonCodeMeta` |[`UnboxedNode_for_NonCodeMeta`](/docs/kcl/types/UnboxedNode_for_NonCodeMeta)| A KCL program top level, or function body. | No |
|
||||
| `digest` |`[, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`, `integer`]`| | No |
|
||||
|
||||
|
||||
|
||||
@ -9,7 +9,7 @@ Draw a line relative to the current origin to a specified distance away
|
||||
from the current position along the 'x' axis.
|
||||
|
||||
```js
|
||||
xLine(length: number, sketch: Sketch, tag?: TagDeclarator) -> Sketch
|
||||
xLine(length: number, sketch: Sketch, tag?: TagNode) -> Sketch
|
||||
```
|
||||
|
||||
|
||||
@ -19,7 +19,7 @@ xLine(length: number, sketch: Sketch, tag?: TagDeclarator) -> Sketch
|
||||
|----------|------|-------------|----------|
|
||||
| `length` | `number` | | Yes |
|
||||
| `sketch` | [`Sketch`](/docs/kcl/types/Sketch) | A sketch is a collection of paths. | Yes |
|
||||
| `tag` | [`TagDeclarator`](/docs/kcl/types#tag-declaration) | | No |
|
||||
| `tag` | [`TagNode`](/docs/kcl/types/TagNode) | | No |
|
||||
|
||||
### Returns
|
||||
|
||||
|
||||
@ -9,7 +9,7 @@ Draw a line parallel to the X axis, that ends at the given X.
|
||||
E.g. if the previous line ended at (1, 1), then xLineTo(4) draws a line from (1, 1) to (4, 1)
|
||||
|
||||
```js
|
||||
xLineTo(to: number, sketch: Sketch, tag?: TagDeclarator) -> Sketch
|
||||
xLineTo(to: number, sketch: Sketch, tag?: TagNode) -> Sketch
|
||||
```
|
||||
|
||||
|
||||
@ -19,7 +19,7 @@ xLineTo(to: number, sketch: Sketch, tag?: TagDeclarator) -> Sketch
|
||||
|----------|------|-------------|----------|
|
||||
| `to` | `number` | | Yes |
|
||||
| `sketch` | [`Sketch`](/docs/kcl/types/Sketch) | A sketch is a collection of paths. | Yes |
|
||||
| `tag` | [`TagDeclarator`](/docs/kcl/types#tag-declaration) | | No |
|
||||
| `tag` | [`TagNode`](/docs/kcl/types/TagNode) | | No |
|
||||
|
||||
### Returns
|
||||
|
||||
|
||||
@ -9,7 +9,7 @@ Draw a line relative to the current origin to a specified distance away
|
||||
from the current position along the 'y' axis.
|
||||
|
||||
```js
|
||||
yLine(length: number, sketch: Sketch, tag?: TagDeclarator) -> Sketch
|
||||
yLine(length: number, sketch: Sketch, tag?: TagNode) -> Sketch
|
||||
```
|
||||
|
||||
|
||||
@ -19,7 +19,7 @@ yLine(length: number, sketch: Sketch, tag?: TagDeclarator) -> Sketch
|
||||
|----------|------|-------------|----------|
|
||||
| `length` | `number` | | Yes |
|
||||
| `sketch` | [`Sketch`](/docs/kcl/types/Sketch) | A sketch is a collection of paths. | Yes |
|
||||
| `tag` | [`TagDeclarator`](/docs/kcl/types#tag-declaration) | | No |
|
||||
| `tag` | [`TagNode`](/docs/kcl/types/TagNode) | | No |
|
||||
|
||||
### Returns
|
||||
|
||||
|
||||
@ -9,7 +9,7 @@ Draw a line parallel to the Y axis, that ends at the given Y.
|
||||
E.g. if the previous line ended at (1, 1), then yLineTo(4) draws a line from (1, 1) to (1, 4)
|
||||
|
||||
```js
|
||||
yLineTo(to: number, sketch: Sketch, tag?: TagDeclarator) -> Sketch
|
||||
yLineTo(to: number, sketch: Sketch, tag?: TagNode) -> Sketch
|
||||
```
|
||||
|
||||
|
||||
@ -19,7 +19,7 @@ yLineTo(to: number, sketch: Sketch, tag?: TagDeclarator) -> Sketch
|
||||
|----------|------|-------------|----------|
|
||||
| `to` | `number` | | Yes |
|
||||
| `sketch` | [`Sketch`](/docs/kcl/types/Sketch) | A sketch is a collection of paths. | Yes |
|
||||
| `tag` | [`TagDeclarator`](/docs/kcl/types#tag-declaration) | | No |
|
||||
| `tag` | [`TagNode`](/docs/kcl/types/TagNode) | | No |
|
||||
|
||||
### Returns
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
extern crate alloc;
|
||||
use kcl_lib::ast::types::{
|
||||
BodyItem, Expr, Identifier, ItemVisibility, Literal, LiteralValue, NonCodeMeta, Program, VariableDeclaration,
|
||||
VariableDeclarator, VariableKind,
|
||||
BodyItem, Expr, Identifier, ItemVisibility, Literal, LiteralValue, Program, UnboxedNode,
|
||||
VariableDeclaration, VariableDeclarator, VariableKind,
|
||||
};
|
||||
use kcl_macros::parse;
|
||||
use pretty_assertions::assert_eq;
|
||||
@ -9,36 +9,46 @@ use pretty_assertions::assert_eq;
|
||||
#[test]
|
||||
fn basic() {
|
||||
let actual = parse!("const y = 4");
|
||||
let expected = Program {
|
||||
start: 0,
|
||||
end: 11,
|
||||
body: vec![BodyItem::VariableDeclaration(VariableDeclaration {
|
||||
start: 0,
|
||||
end: 11,
|
||||
declarations: vec![VariableDeclarator {
|
||||
start: 6,
|
||||
end: 11,
|
||||
id: Identifier {
|
||||
start: 6,
|
||||
end: 7,
|
||||
let expected = UnboxedNode {
|
||||
kind: Program {
|
||||
body: vec![BodyItem::VariableDeclaration(UnboxedNode::new(
|
||||
VariableDeclaration {
|
||||
declarations: vec![UnboxedNode::new(
|
||||
VariableDeclarator {
|
||||
id: UnboxedNode::new(
|
||||
Identifier {
|
||||
name: "y".to_owned(),
|
||||
digest: None,
|
||||
},
|
||||
init: Expr::Literal(Box::new(Literal {
|
||||
start: 10,
|
||||
end: 11,
|
||||
6,
|
||||
7,
|
||||
),
|
||||
init: Expr::Literal(UnboxedNode::new(
|
||||
Literal {
|
||||
value: LiteralValue::IInteger(4),
|
||||
raw: "4".to_owned(),
|
||||
digest: None,
|
||||
})),
|
||||
},
|
||||
10,
|
||||
11,
|
||||
)),
|
||||
digest: None,
|
||||
}],
|
||||
},
|
||||
6,
|
||||
11,
|
||||
)],
|
||||
visibility: ItemVisibility::Default,
|
||||
kind: VariableKind::Const,
|
||||
digest: None,
|
||||
})],
|
||||
non_code_meta: NonCodeMeta::default(),
|
||||
},
|
||||
0,
|
||||
11,
|
||||
))],
|
||||
non_code_meta: Default::default(),
|
||||
digest: None,
|
||||
},
|
||||
start: 0,
|
||||
end: 11,
|
||||
};
|
||||
assert_eq!(expected, actual);
|
||||
}
|
||||
|
||||
@ -16,6 +16,8 @@ use crate::{
|
||||
executor::{Point2d, SourceRange},
|
||||
};
|
||||
|
||||
use super::types::UnboxedNode;
|
||||
|
||||
type Point3d = kcmc::shared::Point3d<f64>;
|
||||
|
||||
#[derive(Debug)]
|
||||
@ -35,7 +37,7 @@ const EPSILON: f64 = 0.015625; // or 2^-6
|
||||
/// a move or a new line.
|
||||
pub async fn modify_ast_for_sketch(
|
||||
engine: &Arc<Box<dyn EngineManager>>,
|
||||
program: &mut Program,
|
||||
program: &mut UnboxedNode<Program>,
|
||||
// The name of the sketch.
|
||||
sketch_name: &str,
|
||||
// The type of plane the sketch is on. `XY` or `XZ`, etc
|
||||
@ -195,7 +197,7 @@ fn create_start_sketch_on(
|
||||
end: [f64; 2],
|
||||
plane: crate::executor::PlaneType,
|
||||
additional_lines: Vec<[f64; 2]>,
|
||||
) -> Result<VariableDeclarator, KclError> {
|
||||
) -> Result<UnboxedNode<VariableDeclarator>, KclError> {
|
||||
let start_sketch_on = CallExpression::new("startSketchOn", vec![Literal::new(plane.to_string().into()).into()])?;
|
||||
let start_profile_at = CallExpression::new(
|
||||
"startProfileAt",
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,9 +1,10 @@
|
||||
use crate::executor::Metadata;
|
||||
use crate::executor::SourceRange;
|
||||
|
||||
use super::impl_value_meta;
|
||||
use super::ConstraintLevel;
|
||||
use super::Hover;
|
||||
use super::Node;
|
||||
use super::NodeList;
|
||||
use super::UnboxedNode;
|
||||
use super::{Digest, Expr};
|
||||
use databake::*;
|
||||
use schemars::JsonSchema;
|
||||
@ -19,12 +20,10 @@ type IfBlock = crate::ast::types::Program;
|
||||
#[ts(export)]
|
||||
#[serde(tag = "type")]
|
||||
pub struct IfExpression {
|
||||
pub start: usize,
|
||||
pub end: usize,
|
||||
pub cond: Box<Expr>,
|
||||
pub then_val: Box<IfBlock>,
|
||||
pub else_ifs: Vec<ElseIf>,
|
||||
pub final_else: Box<IfBlock>,
|
||||
pub then_val: Node<IfBlock>,
|
||||
pub else_ifs: NodeList<ElseIf>,
|
||||
pub final_else: Node<IfBlock>,
|
||||
|
||||
pub digest: Option<Digest>,
|
||||
}
|
||||
@ -34,57 +33,21 @@ pub struct IfExpression {
|
||||
#[ts(export)]
|
||||
#[serde(tag = "type")]
|
||||
pub struct ElseIf {
|
||||
pub start: usize,
|
||||
pub end: usize,
|
||||
pub cond: Expr,
|
||||
pub then_val: Box<IfBlock>,
|
||||
pub then_val: Node<IfBlock>,
|
||||
|
||||
pub digest: Option<Digest>,
|
||||
}
|
||||
|
||||
// Source code metadata
|
||||
|
||||
impl_value_meta!(IfExpression);
|
||||
impl_value_meta!(ElseIf);
|
||||
|
||||
impl IfExpression {
|
||||
impl UnboxedNode<IfExpression> {
|
||||
fn source_ranges(&self) -> Vec<SourceRange> {
|
||||
vec![SourceRange::from(self)]
|
||||
}
|
||||
}
|
||||
|
||||
impl From<IfExpression> for Metadata {
|
||||
fn from(value: IfExpression) -> Self {
|
||||
Self {
|
||||
source_range: value.into(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl From<ElseIf> for Metadata {
|
||||
fn from(value: ElseIf) -> Self {
|
||||
Self {
|
||||
source_range: value.into(),
|
||||
}
|
||||
}
|
||||
}
|
||||
impl From<&IfExpression> for Metadata {
|
||||
fn from(value: &IfExpression) -> Self {
|
||||
Self {
|
||||
source_range: value.into(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl From<&ElseIf> for Metadata {
|
||||
fn from(value: &ElseIf) -> Self {
|
||||
Self {
|
||||
source_range: value.into(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl ElseIf {
|
||||
impl UnboxedNode<ElseIf> {
|
||||
#[allow(dead_code)]
|
||||
fn source_ranges(&self) -> Vec<SourceRange> {
|
||||
vec![SourceRange([self.start, self.end])]
|
||||
@ -93,6 +56,15 @@ impl ElseIf {
|
||||
|
||||
// IDE support and refactors
|
||||
|
||||
impl UnboxedNode<IfExpression> {
|
||||
/// Get the constraint level.
|
||||
pub fn get_constraint_level(&self) -> ConstraintLevel {
|
||||
ConstraintLevel::Full {
|
||||
source_ranges: self.source_ranges(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl IfExpression {
|
||||
pub fn get_hover_value_for_position(&self, pos: usize, code: &str) -> Option<Hover> {
|
||||
self.cond
|
||||
@ -115,12 +87,7 @@ impl IfExpression {
|
||||
}
|
||||
self.final_else.rename_identifiers(old_name, new_name);
|
||||
}
|
||||
/// Get the constraint level.
|
||||
pub fn get_constraint_level(&self) -> ConstraintLevel {
|
||||
ConstraintLevel::Full {
|
||||
source_ranges: self.source_ranges(),
|
||||
}
|
||||
}
|
||||
|
||||
pub fn replace_value(&mut self, source_range: SourceRange, new_value: Expr) {
|
||||
self.cond.replace_value(source_range, new_value.clone());
|
||||
for else_if in &mut self.else_ifs {
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
use super::{
|
||||
human_friendly_type, ArrayExpression, ArrayRangeExpression, BinaryExpression, BinaryOperator, BinaryPart,
|
||||
CallExpression, Expr, IfExpression, LiteralIdentifier, LiteralValue, MemberExpression, MemberObject,
|
||||
ObjectExpression, TagDeclarator, UnaryExpression, UnaryOperator,
|
||||
ObjectExpression, TagDeclarator, UnaryExpression, UnaryOperator, UnboxedNode,
|
||||
};
|
||||
use crate::{
|
||||
errors::{KclError, KclErrorDetails},
|
||||
@ -32,7 +32,7 @@ impl BinaryPart {
|
||||
}
|
||||
}
|
||||
|
||||
impl MemberExpression {
|
||||
impl UnboxedNode<MemberExpression> {
|
||||
pub fn get_result_array(&self, exec_state: &mut ExecState, index: usize) -> Result<KclValue, KclError> {
|
||||
let array = match &self.object {
|
||||
MemberObject::MemberExpression(member_expr) => member_expr.get_result(exec_state)?,
|
||||
@ -137,7 +137,7 @@ impl MemberExpression {
|
||||
}
|
||||
}
|
||||
|
||||
impl BinaryExpression {
|
||||
impl UnboxedNode<BinaryExpression> {
|
||||
#[async_recursion]
|
||||
pub async fn get_result(&self, exec_state: &mut ExecState, ctx: &ExecutorContext) -> Result<KclValue, KclError> {
|
||||
let left_json_value = self.left.get_result(exec_state, ctx).await?.get_json_value()?;
|
||||
@ -186,7 +186,7 @@ impl BinaryExpression {
|
||||
}
|
||||
}
|
||||
|
||||
impl UnaryExpression {
|
||||
impl UnboxedNode<UnaryExpression> {
|
||||
pub async fn get_result(&self, exec_state: &mut ExecState, ctx: &ExecutorContext) -> Result<KclValue, KclError> {
|
||||
if self.operator == UnaryOperator::Not {
|
||||
let value = self.argument.get_result(exec_state, ctx).await?.get_json_value()?;
|
||||
@ -297,7 +297,7 @@ async fn inner_execute_pipe_body(
|
||||
Ok(final_output)
|
||||
}
|
||||
|
||||
impl CallExpression {
|
||||
impl UnboxedNode<CallExpression> {
|
||||
#[async_recursion]
|
||||
pub async fn execute(&self, exec_state: &mut ExecState, ctx: &ExecutorContext) -> Result<KclValue, KclError> {
|
||||
let fn_name = &self.callee.name;
|
||||
@ -502,7 +502,7 @@ impl CallExpression {
|
||||
}
|
||||
}
|
||||
|
||||
impl TagDeclarator {
|
||||
impl UnboxedNode<TagDeclarator> {
|
||||
pub async fn execute(&self, exec_state: &mut ExecState) -> Result<KclValue, KclError> {
|
||||
let memory_item = KclValue::TagIdentifier(Box::new(TagIdentifier {
|
||||
value: self.name.clone(),
|
||||
@ -518,7 +518,7 @@ impl TagDeclarator {
|
||||
}
|
||||
}
|
||||
|
||||
impl ArrayExpression {
|
||||
impl UnboxedNode<ArrayExpression> {
|
||||
#[async_recursion]
|
||||
pub async fn execute(&self, exec_state: &mut ExecState, ctx: &ExecutorContext) -> Result<KclValue, KclError> {
|
||||
let mut results = Vec::with_capacity(self.elements.len());
|
||||
@ -543,21 +543,21 @@ impl ArrayExpression {
|
||||
}
|
||||
}
|
||||
|
||||
impl ArrayRangeExpression {
|
||||
impl UnboxedNode<ArrayRangeExpression> {
|
||||
#[async_recursion]
|
||||
pub async fn execute(&self, exec_state: &mut ExecState, ctx: &ExecutorContext) -> Result<KclValue, KclError> {
|
||||
let metadata = Metadata::from(&*self.start_element);
|
||||
let metadata = Metadata::from(&self.start_element);
|
||||
let start = ctx
|
||||
.execute_expr(&self.start_element, exec_state, &metadata, StatementKind::Expression)
|
||||
.await?
|
||||
.get_json_value()?;
|
||||
let start = parse_json_number_as_u64(&start, (&*self.start_element).into())?;
|
||||
let metadata = Metadata::from(&*self.end_element);
|
||||
let start = parse_json_number_as_u64(&start, (&self.start_element).into())?;
|
||||
let metadata = Metadata::from(&self.end_element);
|
||||
let end = ctx
|
||||
.execute_expr(&self.end_element, exec_state, &metadata, StatementKind::Expression)
|
||||
.await?
|
||||
.get_json_value()?;
|
||||
let end = parse_json_number_as_u64(&end, (&*self.end_element).into())?;
|
||||
let end = parse_json_number_as_u64(&end, (&self.end_element).into())?;
|
||||
|
||||
if end < start {
|
||||
return Err(KclError::Semantic(KclErrorDetails {
|
||||
@ -581,7 +581,7 @@ impl ArrayRangeExpression {
|
||||
}
|
||||
}
|
||||
|
||||
impl ObjectExpression {
|
||||
impl UnboxedNode<ObjectExpression> {
|
||||
#[async_recursion]
|
||||
pub async fn execute(&self, exec_state: &mut ExecState, ctx: &ExecutorContext) -> Result<KclValue, KclError> {
|
||||
let mut object = serde_json::Map::new();
|
||||
@ -655,7 +655,7 @@ pub fn json_as_bool(j: &serde_json::Value) -> Option<bool> {
|
||||
}
|
||||
}
|
||||
|
||||
impl IfExpression {
|
||||
impl UnboxedNode<IfExpression> {
|
||||
#[async_recursion]
|
||||
pub async fn get_result(&self, exec_state: &mut ExecState, ctx: &ExecutorContext) -> Result<KclValue, KclError> {
|
||||
// Check the `if` branch.
|
||||
@ -717,7 +717,7 @@ impl Property {
|
||||
let property_src: SourceRange = value.clone().into();
|
||||
match value {
|
||||
LiteralIdentifier::Identifier(identifier) => {
|
||||
let name = identifier.name;
|
||||
let name = &identifier.name;
|
||||
if !computed {
|
||||
// Treat the property as a literal
|
||||
Ok(Property::String(name.to_string()))
|
||||
|
||||
@ -5,6 +5,8 @@ use serde_json::Value as JValue;
|
||||
|
||||
use crate::ast::types::{Expr, Literal};
|
||||
|
||||
use super::UnboxedNode;
|
||||
|
||||
#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, ts_rs::TS, JsonSchema, Bake)]
|
||||
#[databake(path = kcl_lib::ast::types)]
|
||||
#[ts(export)]
|
||||
@ -33,9 +35,9 @@ impl LiteralValue {
|
||||
}
|
||||
}
|
||||
|
||||
impl From<Literal> for Expr {
|
||||
fn from(literal: Literal) -> Self {
|
||||
Expr::Literal(Box::new(literal))
|
||||
impl From<UnboxedNode<Literal>> for Expr {
|
||||
fn from(literal: UnboxedNode<Literal>) -> Self {
|
||||
Expr::Literal(literal)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -26,8 +26,8 @@ type Point3D = kcmc::shared::Point3d<f64>;
|
||||
|
||||
use crate::{
|
||||
ast::types::{
|
||||
human_friendly_type, BodyItem, Expr, ExpressionStatement, FunctionExpression, ImportStatement, ItemVisibility,
|
||||
KclNone, Program, ReturnStatement, TagDeclarator,
|
||||
human_friendly_type, BodyItem, Expr, FunctionExpression, ItemVisibility, KclNone, NodeRef, Program,
|
||||
TagDeclarator, TagNode, UnboxedNode,
|
||||
},
|
||||
engine::{EngineManager, ExecutionKind},
|
||||
errors::{KclError, KclErrorDetails},
|
||||
@ -339,7 +339,7 @@ impl IdGenerator {
|
||||
pub enum KclValue {
|
||||
UserVal(UserVal),
|
||||
TagIdentifier(Box<TagIdentifier>),
|
||||
TagDeclarator(Box<TagDeclarator>),
|
||||
TagDeclarator(crate::ast::types::Node<TagDeclarator>),
|
||||
Plane(Box<Plane>),
|
||||
Face(Box<Face>),
|
||||
|
||||
@ -352,7 +352,7 @@ pub enum KclValue {
|
||||
Function {
|
||||
#[serde(skip)]
|
||||
func: Option<MemoryFunction>,
|
||||
expression: Box<FunctionExpression>,
|
||||
expression: crate::ast::types::Node<FunctionExpression>,
|
||||
memory: Box<ProgramMemory>,
|
||||
#[serde(rename = "__meta")]
|
||||
meta: Vec<Metadata>,
|
||||
@ -890,7 +890,7 @@ pub type MemoryFunction =
|
||||
fn(
|
||||
s: Vec<KclValue>,
|
||||
memory: ProgramMemory,
|
||||
expression: Box<FunctionExpression>,
|
||||
expression: crate::ast::types::Node<FunctionExpression>,
|
||||
metadata: Vec<Metadata>,
|
||||
exec_state: &ExecState,
|
||||
ctx: ExecutorContext,
|
||||
@ -900,7 +900,7 @@ impl From<KclValue> for Vec<SourceRange> {
|
||||
fn from(item: KclValue) -> Self {
|
||||
match item {
|
||||
KclValue::UserVal(u) => u.meta.iter().map(|m| m.source_range).collect(),
|
||||
KclValue::TagDeclarator(t) => t.into(),
|
||||
KclValue::TagDeclarator(t) => vec![(&t).into()],
|
||||
KclValue::TagIdentifier(t) => t.meta.iter().map(|m| m.source_range).collect(),
|
||||
KclValue::Solid(e) => e.meta.iter().map(|m| m.source_range).collect(),
|
||||
KclValue::Solids { value } => value
|
||||
@ -1043,9 +1043,9 @@ impl KclValue {
|
||||
}
|
||||
|
||||
/// Get a tag declarator from a memory item.
|
||||
pub fn get_tag_declarator(&self) -> Result<TagDeclarator, KclError> {
|
||||
pub fn get_tag_declarator(&self) -> Result<TagNode, KclError> {
|
||||
match self {
|
||||
KclValue::TagDeclarator(t) => Ok(*t.clone()),
|
||||
KclValue::TagDeclarator(t) => Ok((**t).clone()),
|
||||
_ => Err(KclError::Semantic(KclErrorDetails {
|
||||
message: format!("Not a tag declarator: {:?}", self),
|
||||
source_ranges: self.clone().into(),
|
||||
@ -1054,9 +1054,9 @@ impl KclValue {
|
||||
}
|
||||
|
||||
/// Get an optional tag from a memory item.
|
||||
pub fn get_tag_declarator_opt(&self) -> Result<Option<TagDeclarator>, KclError> {
|
||||
pub fn get_tag_declarator_opt(&self) -> Result<Option<TagNode>, KclError> {
|
||||
match self {
|
||||
KclValue::TagDeclarator(t) => Ok(Some(*t.clone())),
|
||||
KclValue::TagDeclarator(t) => Ok(Some((**t).clone())),
|
||||
_ => Err(KclError::Semantic(KclErrorDetails {
|
||||
message: format!("Not a tag declarator: {:?}", self),
|
||||
source_ranges: self.clone().into(),
|
||||
@ -1200,7 +1200,7 @@ pub struct GetTangentialInfoFromPathsResult {
|
||||
}
|
||||
|
||||
impl Sketch {
|
||||
pub(crate) fn add_tag(&mut self, tag: &TagDeclarator, current_path: &Path) {
|
||||
pub(crate) fn add_tag(&mut self, tag: NodeRef<'_, TagDeclarator>, current_path: &Path) {
|
||||
let mut tag_identifier: TagIdentifier = tag.into();
|
||||
let base = current_path.get_base();
|
||||
tag_identifier.info = Some(TagEngineInfo {
|
||||
@ -1326,7 +1326,7 @@ pub enum EdgeCut {
|
||||
/// The engine id of the edge to fillet.
|
||||
#[serde(rename = "edgeId")]
|
||||
edge_id: uuid::Uuid,
|
||||
tag: Box<Option<TagDeclarator>>,
|
||||
tag: Box<Option<TagNode>>,
|
||||
},
|
||||
/// A chamfer.
|
||||
Chamfer {
|
||||
@ -1336,7 +1336,7 @@ pub enum EdgeCut {
|
||||
/// The engine id of the edge to chamfer.
|
||||
#[serde(rename = "edgeId")]
|
||||
edge_id: uuid::Uuid,
|
||||
tag: Box<Option<TagDeclarator>>,
|
||||
tag: Box<Option<TagNode>>,
|
||||
},
|
||||
}
|
||||
|
||||
@ -1355,7 +1355,7 @@ impl EdgeCut {
|
||||
}
|
||||
}
|
||||
|
||||
pub fn tag(&self) -> Option<TagDeclarator> {
|
||||
pub fn tag(&self) -> Option<TagNode> {
|
||||
match self {
|
||||
EdgeCut::Fillet { tag, .. } => *tag.clone(),
|
||||
EdgeCut::Chamfer { tag, .. } => *tag.clone(),
|
||||
@ -1529,26 +1529,10 @@ impl From<SourceRange> for Metadata {
|
||||
}
|
||||
}
|
||||
|
||||
impl From<&ImportStatement> for Metadata {
|
||||
fn from(stmt: &ImportStatement) -> Self {
|
||||
impl<T> From<NodeRef<'_, T>> for Metadata {
|
||||
fn from(node: NodeRef<'_, T>) -> Self {
|
||||
Self {
|
||||
source_range: SourceRange::new(stmt.start, stmt.end),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl From<&ExpressionStatement> for Metadata {
|
||||
fn from(exp_statement: &ExpressionStatement) -> Self {
|
||||
Self {
|
||||
source_range: SourceRange::new(exp_statement.start, exp_statement.end),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl From<&ReturnStatement> for Metadata {
|
||||
fn from(return_statement: &ReturnStatement) -> Self {
|
||||
Self {
|
||||
source_range: SourceRange::new(return_statement.start, return_statement.end),
|
||||
source_range: SourceRange::new(node.start, node.end),
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1573,7 +1557,7 @@ pub struct BasePath {
|
||||
#[ts(type = "[number, number]")]
|
||||
pub to: [f64; 2],
|
||||
/// The tag of the path.
|
||||
pub tag: Option<TagDeclarator>,
|
||||
pub tag: Option<TagNode>,
|
||||
/// Metadata.
|
||||
#[serde(rename = "__geoMeta")]
|
||||
pub geo_meta: GeoMeta,
|
||||
@ -1671,7 +1655,7 @@ impl Path {
|
||||
}
|
||||
}
|
||||
|
||||
pub fn get_tag(&self) -> Option<TagDeclarator> {
|
||||
pub fn get_tag(&self) -> Option<TagNode> {
|
||||
match self {
|
||||
Path::ToPoint { base } => base.tag.clone(),
|
||||
Path::Horizontal { base, .. } => base.tag.clone(),
|
||||
@ -1728,7 +1712,7 @@ pub struct ChamferSurface {
|
||||
/// The id for the chamfer surface.
|
||||
pub face_id: uuid::Uuid,
|
||||
/// The tag.
|
||||
pub tag: Option<TagDeclarator>,
|
||||
pub tag: Option<UnboxedNode<TagDeclarator>>,
|
||||
/// Metadata.
|
||||
#[serde(flatten)]
|
||||
pub geo_meta: GeoMeta,
|
||||
@ -1742,7 +1726,7 @@ pub struct FilletSurface {
|
||||
/// The id for the fillet surface.
|
||||
pub face_id: uuid::Uuid,
|
||||
/// The tag.
|
||||
pub tag: Option<TagDeclarator>,
|
||||
pub tag: Option<UnboxedNode<TagDeclarator>>,
|
||||
/// Metadata.
|
||||
#[serde(flatten)]
|
||||
pub geo_meta: GeoMeta,
|
||||
@ -1756,7 +1740,7 @@ pub struct ExtrudePlane {
|
||||
/// The face id for the extrude plane.
|
||||
pub face_id: uuid::Uuid,
|
||||
/// The tag.
|
||||
pub tag: Option<TagDeclarator>,
|
||||
pub tag: Option<UnboxedNode<TagDeclarator>>,
|
||||
/// Metadata.
|
||||
#[serde(flatten)]
|
||||
pub geo_meta: GeoMeta,
|
||||
@ -1770,7 +1754,7 @@ pub struct ExtrudeArc {
|
||||
/// The face id for the extrude plane.
|
||||
pub face_id: uuid::Uuid,
|
||||
/// The tag.
|
||||
pub tag: Option<TagDeclarator>,
|
||||
pub tag: Option<UnboxedNode<TagDeclarator>>,
|
||||
/// Metadata.
|
||||
#[serde(flatten)]
|
||||
pub geo_meta: GeoMeta,
|
||||
@ -1786,7 +1770,7 @@ impl ExtrudeSurface {
|
||||
}
|
||||
}
|
||||
|
||||
pub fn get_tag(&self) -> Option<TagDeclarator> {
|
||||
pub fn get_tag(&self) -> Option<UnboxedNode<TagDeclarator>> {
|
||||
match self {
|
||||
ExtrudeSurface::ExtrudePlane(ep) => ep.tag.clone(),
|
||||
ExtrudeSurface::ExtrudeArc(ea) => ea.tag.clone(),
|
||||
@ -1997,7 +1981,7 @@ impl ExecutorContext {
|
||||
/// Kurt uses this for partial execution.
|
||||
pub async fn run(
|
||||
&self,
|
||||
program: &crate::ast::types::Program,
|
||||
program: NodeRef<'_, crate::ast::types::Program>,
|
||||
memory: Option<ProgramMemory>,
|
||||
id_generator: IdGenerator,
|
||||
project_directory: Option<String>,
|
||||
@ -2011,7 +1995,7 @@ impl ExecutorContext {
|
||||
/// Kurt uses this for partial execution.
|
||||
pub async fn run_with_session_data(
|
||||
&self,
|
||||
program: &crate::ast::types::Program,
|
||||
program: NodeRef<'_, crate::ast::types::Program>,
|
||||
memory: Option<ProgramMemory>,
|
||||
id_generator: IdGenerator,
|
||||
project_directory: Option<String>,
|
||||
@ -2053,9 +2037,9 @@ impl ExecutorContext {
|
||||
|
||||
/// Execute an AST's program.
|
||||
#[async_recursion]
|
||||
pub(crate) async fn inner_execute(
|
||||
&self,
|
||||
program: &crate::ast::types::Program,
|
||||
pub(crate) async fn inner_execute<'a>(
|
||||
&'a self,
|
||||
program: NodeRef<'a, crate::ast::types::Program>,
|
||||
exec_state: &mut ExecState,
|
||||
body_type: BodyType,
|
||||
) -> Result<Option<KclValue>, KclError> {
|
||||
@ -2291,7 +2275,7 @@ impl ExecutorContext {
|
||||
/// Execute the program, then get a PNG screenshot.
|
||||
pub async fn execute_and_prepare_snapshot(
|
||||
&self,
|
||||
program: &Program,
|
||||
program: NodeRef<'_, Program>,
|
||||
id_generator: IdGenerator,
|
||||
project_directory: Option<String>,
|
||||
) -> Result<TakeSnapshot> {
|
||||
@ -2336,7 +2320,7 @@ impl ExecutorContext {
|
||||
/// assign it to a parameter of the function, in the given block of function memory.
|
||||
/// Returns Err if too few/too many arguments were given for the function.
|
||||
fn assign_args_to_params(
|
||||
function_expression: &FunctionExpression,
|
||||
function_expression: NodeRef<'_, FunctionExpression>,
|
||||
args: Vec<KclValue>,
|
||||
mut fn_memory: ProgramMemory,
|
||||
) -> Result<ProgramMemory, KclError> {
|
||||
@ -2388,7 +2372,7 @@ fn assign_args_to_params(
|
||||
pub(crate) async fn call_user_defined_function(
|
||||
args: Vec<KclValue>,
|
||||
memory: &ProgramMemory,
|
||||
function_expression: &FunctionExpression,
|
||||
function_expression: NodeRef<'_, FunctionExpression>,
|
||||
exec_state: &mut ExecState,
|
||||
ctx: &ExecutorContext,
|
||||
) -> Result<Option<KclValue>, KclError> {
|
||||
@ -2427,7 +2411,7 @@ mod tests {
|
||||
use pretty_assertions::assert_eq;
|
||||
|
||||
use super::*;
|
||||
use crate::ast::types::{Identifier, Parameter};
|
||||
use crate::ast::types::{Identifier, Parameter, UnboxedNode};
|
||||
|
||||
pub async fn parse_execute(code: &str) -> Result<ProgramMemory> {
|
||||
let tokens = crate::token::lexer(code)?;
|
||||
@ -3399,13 +3383,11 @@ let w = f() + f()
|
||||
meta: Default::default(),
|
||||
})
|
||||
}
|
||||
fn ident(s: &'static str) -> Identifier {
|
||||
Identifier {
|
||||
start: 0,
|
||||
end: 0,
|
||||
fn ident(s: &'static str) -> UnboxedNode<Identifier> {
|
||||
UnboxedNode::no_src(Identifier {
|
||||
name: s.to_owned(),
|
||||
digest: None,
|
||||
}
|
||||
})
|
||||
}
|
||||
fn opt_param(s: &'static str) -> Parameter {
|
||||
Parameter {
|
||||
@ -3497,20 +3479,20 @@ let w = f() + f()
|
||||
),
|
||||
] {
|
||||
// Run each test.
|
||||
let func_expr = &FunctionExpression {
|
||||
start: 0,
|
||||
end: 0,
|
||||
let func_expr = &UnboxedNode::no_src(FunctionExpression {
|
||||
params,
|
||||
body: crate::ast::types::Program {
|
||||
start: 0,
|
||||
end: 0,
|
||||
body: UnboxedNode {
|
||||
kind: crate::ast::types::Program {
|
||||
body: Vec::new(),
|
||||
non_code_meta: Default::default(),
|
||||
digest: None,
|
||||
},
|
||||
start: 0,
|
||||
end: 0,
|
||||
},
|
||||
return_type: None,
|
||||
digest: None,
|
||||
};
|
||||
});
|
||||
let actual = assign_args_to_params(func_expr, args, ProgramMemory::new());
|
||||
assert_eq!(
|
||||
actual, expected,
|
||||
|
||||
@ -13,7 +13,7 @@ use crate::{
|
||||
pub struct FunctionParam<'a> {
|
||||
pub inner: Option<&'a MemoryFunction>,
|
||||
pub memory: ProgramMemory,
|
||||
pub fn_expr: Box<FunctionExpression>,
|
||||
pub fn_expr: crate::ast::types::Node<FunctionExpression>,
|
||||
pub meta: Vec<Metadata>,
|
||||
pub ctx: ExecutorContext,
|
||||
}
|
||||
|
||||
@ -3,7 +3,7 @@ use std::sync::Arc;
|
||||
use anyhow::Result;
|
||||
|
||||
use crate::{
|
||||
ast::types::CallExpression,
|
||||
ast::types::{CallExpression, NodeRef},
|
||||
docs::StdLibFn,
|
||||
executor::SourceRange,
|
||||
lint::rule::{def_finding, Discovered, Finding},
|
||||
@ -18,7 +18,10 @@ def_finding!(
|
||||
Previously, we have not been failing when too many arguments are passed to a stdlib function. This is a problem because it can lead to unexpected behavior. We will in the future fail when too many arguments are passed to a function. So fix your code now."
|
||||
);
|
||||
|
||||
fn lint_too_many_args_std_lib_function(f: Box<dyn StdLibFn>, exp: &CallExpression) -> Result<Vec<Discovered>> {
|
||||
fn lint_too_many_args_std_lib_function(
|
||||
f: Box<dyn StdLibFn>,
|
||||
exp: NodeRef<'_, CallExpression>,
|
||||
) -> Result<Vec<Discovered>> {
|
||||
let mut findings = vec![];
|
||||
|
||||
if f.name() == "pow" {
|
||||
|
||||
@ -3,14 +3,14 @@
|
||||
use serde::{Deserialize, Serialize};
|
||||
use tower_lsp::lsp_types::notification::Notification;
|
||||
|
||||
use crate::settings::types::UnitLength;
|
||||
use crate::{ast::types::UnboxedNode, settings::types::UnitLength};
|
||||
|
||||
/// A notification that the AST has changed.
|
||||
#[derive(Debug)]
|
||||
pub enum AstUpdated {}
|
||||
|
||||
impl Notification for AstUpdated {
|
||||
type Params = crate::ast::types::Program;
|
||||
type Params = UnboxedNode<crate::ast::types::Program>;
|
||||
const METHOD: &'static str = "kcl/astUpdated";
|
||||
}
|
||||
|
||||
|
||||
@ -40,7 +40,7 @@ use tower_lsp::{
|
||||
};
|
||||
|
||||
use crate::{
|
||||
ast::types::{Expr, VariableKind},
|
||||
ast::types::{Expr, NodeRef, UnboxedNode, VariableKind},
|
||||
executor::{IdGenerator, SourceRange},
|
||||
lsp::{backend::Backend as _, util::IntoDiagnostic},
|
||||
parser::PIPE_OPERATOR,
|
||||
@ -99,7 +99,7 @@ pub struct Backend {
|
||||
/// Token maps.
|
||||
pub token_map: DashMap<String, Vec<crate::token::Token>>,
|
||||
/// AST maps.
|
||||
pub ast_map: DashMap<String, crate::ast::types::Program>,
|
||||
pub ast_map: DashMap<String, UnboxedNode<crate::ast::types::Program>>,
|
||||
/// Memory maps.
|
||||
pub memory_map: DashMap<String, crate::executor::ProgramMemory>,
|
||||
/// Current code.
|
||||
@ -571,7 +571,7 @@ impl Backend {
|
||||
self.client.publish_diagnostics(params.uri.clone(), items, None).await;
|
||||
}
|
||||
|
||||
async fn execute(&self, params: &TextDocumentItem, ast: &crate::ast::types::Program) -> Result<()> {
|
||||
async fn execute(&self, params: &TextDocumentItem, ast: NodeRef<'_, crate::ast::types::Program>) -> Result<()> {
|
||||
// Check if we can execute.
|
||||
if !self.can_execute().await {
|
||||
return Ok(());
|
||||
|
||||
@ -7,6 +7,7 @@ use tower_lsp::{
|
||||
};
|
||||
|
||||
use crate::{
|
||||
ast::types::{Program, UnboxedNode},
|
||||
executor::ProgramMemory,
|
||||
lsp::test_util::{copilot_lsp_server, kcl_lsp_server},
|
||||
};
|
||||
@ -1070,7 +1071,7 @@ fn myFn = (param1) => {
|
||||
|
||||
// Get the ast.
|
||||
let ast = server.ast_map.get("file:///test.kcl").unwrap().clone();
|
||||
assert!(ast != crate::ast::types::Program::default());
|
||||
assert!(ast != UnboxedNode::<Program>::default());
|
||||
|
||||
// Send semantic tokens request.
|
||||
let semantic_tokens = server
|
||||
@ -2396,7 +2397,7 @@ async fn kcl_test_kcl_lsp_full_to_empty_file_updates_ast_and_memory() {
|
||||
|
||||
// Get the ast.
|
||||
let ast = server.ast_map.get("file:///test.kcl").unwrap().clone();
|
||||
assert!(ast != crate::ast::types::Program::default());
|
||||
assert!(ast != UnboxedNode::<Program>::default());
|
||||
// Get the memory.
|
||||
let memory = server.memory_map.get("file:///test.kcl").unwrap().clone();
|
||||
assert!(memory != ProgramMemory::default());
|
||||
@ -2416,7 +2417,7 @@ async fn kcl_test_kcl_lsp_full_to_empty_file_updates_ast_and_memory() {
|
||||
})
|
||||
.await;
|
||||
|
||||
let mut default_hashed = crate::ast::types::Program::default();
|
||||
let mut default_hashed = UnboxedNode::<Program>::default();
|
||||
default_hashed.compute_digest();
|
||||
|
||||
// Get the ast.
|
||||
@ -2453,7 +2454,7 @@ async fn kcl_test_kcl_lsp_code_unchanged_but_has_diagnostics_reexecute() {
|
||||
|
||||
// Get the ast.
|
||||
let ast = server.ast_map.get("file:///test.kcl").unwrap().clone();
|
||||
assert!(ast != crate::ast::types::Program::default());
|
||||
assert!(ast != UnboxedNode::<Program>::default());
|
||||
// Get the memory.
|
||||
let memory = server.memory_map.get("file:///test.kcl").unwrap().clone();
|
||||
assert!(memory != ProgramMemory::default());
|
||||
@ -2487,9 +2488,9 @@ async fn kcl_test_kcl_lsp_code_unchanged_but_has_diagnostics_reexecute() {
|
||||
// Clear the ast and memory.
|
||||
server
|
||||
.ast_map
|
||||
.insert("file:///test.kcl".to_string(), crate::ast::types::Program::default());
|
||||
.insert("file:///test.kcl".to_string(), UnboxedNode::<Program>::default());
|
||||
let ast = server.ast_map.get("file:///test.kcl").unwrap().clone();
|
||||
assert_eq!(ast, crate::ast::types::Program::default());
|
||||
assert_eq!(ast, UnboxedNode::<Program>::default());
|
||||
server
|
||||
.memory_map
|
||||
.insert("file:///test.kcl".to_string(), ProgramMemory::default());
|
||||
@ -2513,7 +2514,7 @@ async fn kcl_test_kcl_lsp_code_unchanged_but_has_diagnostics_reexecute() {
|
||||
|
||||
// Get the ast.
|
||||
let ast = server.ast_map.get("file:///test.kcl").unwrap().clone();
|
||||
assert!(ast != crate::ast::types::Program::default());
|
||||
assert!(ast != UnboxedNode::<Program>::default());
|
||||
// Get the memory.
|
||||
let memory = server.memory_map.get("file:///test.kcl").unwrap().clone();
|
||||
assert!(memory != ProgramMemory::default());
|
||||
@ -2549,7 +2550,7 @@ async fn kcl_test_kcl_lsp_code_and_ast_unchanged_but_has_diagnostics_reexecute()
|
||||
|
||||
// Get the ast.
|
||||
let ast = server.ast_map.get("file:///test.kcl").unwrap().clone();
|
||||
assert!(ast != crate::ast::types::Program::default());
|
||||
assert!(ast != UnboxedNode::<Program>::default());
|
||||
// Get the memory.
|
||||
let memory = server.memory_map.get("file:///test.kcl").unwrap().clone();
|
||||
assert!(memory != ProgramMemory::default());
|
||||
@ -2604,7 +2605,7 @@ async fn kcl_test_kcl_lsp_code_and_ast_unchanged_but_has_diagnostics_reexecute()
|
||||
|
||||
// Get the ast.
|
||||
let ast = server.ast_map.get("file:///test.kcl").unwrap().clone();
|
||||
assert!(ast != crate::ast::types::Program::default());
|
||||
assert!(ast != UnboxedNode::<Program>::default());
|
||||
// Get the memory.
|
||||
let memory = server.memory_map.get("file:///test.kcl").unwrap().clone();
|
||||
assert!(memory != ProgramMemory::default());
|
||||
@ -2640,7 +2641,7 @@ async fn kcl_test_kcl_lsp_code_and_ast_units_unchanged_but_has_diagnostics_reexe
|
||||
|
||||
// Get the ast.
|
||||
let ast = server.ast_map.get("file:///test.kcl").unwrap().clone();
|
||||
assert!(ast != crate::ast::types::Program::default());
|
||||
assert!(ast != UnboxedNode::<Program>::default());
|
||||
// Get the memory.
|
||||
let memory = server.memory_map.get("file:///test.kcl").unwrap().clone();
|
||||
assert!(memory != ProgramMemory::default());
|
||||
@ -2698,7 +2699,7 @@ async fn kcl_test_kcl_lsp_code_and_ast_units_unchanged_but_has_diagnostics_reexe
|
||||
|
||||
// Get the ast.
|
||||
let ast = server.ast_map.get("file:///test.kcl").unwrap().clone();
|
||||
assert!(ast != crate::ast::types::Program::default());
|
||||
assert!(ast != UnboxedNode::<Program>::default());
|
||||
// Get the memory.
|
||||
let memory = server.memory_map.get("file:///test.kcl").unwrap().clone();
|
||||
assert!(memory != ProgramMemory::default());
|
||||
@ -2734,7 +2735,7 @@ async fn kcl_test_kcl_lsp_code_and_ast_units_unchanged_but_has_memory_reexecute_
|
||||
|
||||
// Get the ast.
|
||||
let ast = server.ast_map.get("file:///test.kcl").unwrap().clone();
|
||||
assert!(ast != crate::ast::types::Program::default());
|
||||
assert!(ast != UnboxedNode::<Program>::default());
|
||||
// Get the memory.
|
||||
let memory = server.memory_map.get("file:///test.kcl").unwrap().clone();
|
||||
assert!(memory != ProgramMemory::default());
|
||||
@ -2770,7 +2771,7 @@ async fn kcl_test_kcl_lsp_code_and_ast_units_unchanged_but_has_memory_reexecute_
|
||||
|
||||
// Get the ast.
|
||||
let ast = server.ast_map.get("file:///test.kcl").unwrap().clone();
|
||||
assert!(ast != crate::ast::types::Program::default());
|
||||
assert!(ast != UnboxedNode::<Program>::default());
|
||||
// Get the memory.
|
||||
let memory = server.memory_map.get("file:///test.kcl").unwrap().clone();
|
||||
assert!(memory != ProgramMemory::default());
|
||||
@ -2806,7 +2807,7 @@ async fn kcl_test_kcl_lsp_cant_execute_set() {
|
||||
|
||||
// Get the ast.
|
||||
let ast = server.ast_map.get("file:///test.kcl").unwrap().clone();
|
||||
assert!(ast != crate::ast::types::Program::default());
|
||||
assert!(ast != UnboxedNode::<Program>::default());
|
||||
// Get the memory.
|
||||
let memory = server.memory_map.get("file:///test.kcl").unwrap().clone();
|
||||
assert!(memory != ProgramMemory::default());
|
||||
@ -2841,7 +2842,7 @@ async fn kcl_test_kcl_lsp_cant_execute_set() {
|
||||
|
||||
// Get the ast.
|
||||
let ast = server.ast_map.get("file:///test.kcl").unwrap().clone();
|
||||
assert!(ast != crate::ast::types::Program::default());
|
||||
assert!(ast != UnboxedNode::<Program>::default());
|
||||
// Get the memory.
|
||||
let memory = server.memory_map.get("file:///test.kcl").unwrap().clone();
|
||||
assert!(memory != ProgramMemory::default());
|
||||
@ -2883,7 +2884,7 @@ async fn kcl_test_kcl_lsp_cant_execute_set() {
|
||||
let units = server.executor_ctx().await.clone().unwrap().settings.units;
|
||||
assert_eq!(units, crate::settings::types::UnitLength::Mm);
|
||||
|
||||
let mut default_hashed = crate::ast::types::Program::default();
|
||||
let mut default_hashed = UnboxedNode::<Program>::default();
|
||||
default_hashed.compute_digest();
|
||||
|
||||
// Get the ast.
|
||||
@ -2924,7 +2925,7 @@ async fn kcl_test_kcl_lsp_cant_execute_set() {
|
||||
|
||||
// Get the ast.
|
||||
let ast = server.ast_map.get("file:///test.kcl").unwrap().clone();
|
||||
assert!(ast != crate::ast::types::Program::default());
|
||||
assert!(ast != UnboxedNode::<Program>::default());
|
||||
// Get the memory.
|
||||
let memory = server.memory_map.get("file:///test.kcl").unwrap().clone();
|
||||
// Now it should NOT be the default memory.
|
||||
@ -3064,7 +3065,7 @@ const part001 = startSketchOn('XY')
|
||||
|
||||
// Get the ast.
|
||||
let ast = server.ast_map.get("file:///test.kcl").unwrap().clone();
|
||||
assert!(ast != crate::ast::types::Program::default());
|
||||
assert!(ast != UnboxedNode::<Program>::default());
|
||||
|
||||
// Assure we have one diagnostics.
|
||||
let diagnostics = server.diagnostics_map.get("file:///test.kcl").unwrap().clone();
|
||||
@ -3087,7 +3088,7 @@ const part001 = startSketchOn('XY')
|
||||
|
||||
// Get the ast.
|
||||
let ast = server.ast_map.get("file:///test.kcl").unwrap().clone();
|
||||
assert!(ast != crate::ast::types::Program::default());
|
||||
assert!(ast != UnboxedNode::<Program>::default());
|
||||
|
||||
// Assure we have one diagnostics.
|
||||
let diagnostics = server.diagnostics_map.get("file:///test.kcl").unwrap().clone();
|
||||
@ -3183,7 +3184,7 @@ const part001 = startSketchOn('XY')
|
||||
|
||||
// Get the ast.
|
||||
let ast = server.ast_map.get("file:///test.kcl").unwrap().clone();
|
||||
assert!(ast != crate::ast::types::Program::default());
|
||||
assert!(ast != UnboxedNode::<Program>::default());
|
||||
// Get the memory.
|
||||
let memory = server.memory_map.get("file:///test.kcl");
|
||||
assert!(memory.is_none());
|
||||
@ -3205,7 +3206,7 @@ const part001 = startSketchOn('XY')
|
||||
|
||||
// Get the ast.
|
||||
let ast = server.ast_map.get("file:///test.kcl").unwrap().clone();
|
||||
assert!(ast != crate::ast::types::Program::default());
|
||||
assert!(ast != UnboxedNode::<Program>::default());
|
||||
// Get the memory.
|
||||
let memory = server.memory_map.get("file:///test.kcl");
|
||||
assert!(memory.is_none());
|
||||
@ -3248,7 +3249,7 @@ const part001 = startSketchOn('XY')
|
||||
|
||||
// Get the ast.
|
||||
let ast = server.ast_map.get("file:///test.kcl").unwrap().clone();
|
||||
assert!(ast != crate::ast::types::Program::default());
|
||||
assert!(ast != UnboxedNode::<Program>::default());
|
||||
// Get the memory.
|
||||
let memory = server.memory_map.get("file:///test.kcl");
|
||||
assert!(memory.is_none());
|
||||
@ -3278,7 +3279,7 @@ const NEW_LINT = 1"#
|
||||
|
||||
// Get the ast.
|
||||
let ast = server.ast_map.get("file:///test.kcl").unwrap().clone();
|
||||
assert!(ast != crate::ast::types::Program::default());
|
||||
assert!(ast != UnboxedNode::<Program>::default());
|
||||
// Get the memory.
|
||||
let memory = server.memory_map.get("file:///test.kcl");
|
||||
assert!(memory.is_none());
|
||||
@ -3394,7 +3395,7 @@ const part001 = startSketchOn('XY')
|
||||
|
||||
// Get the ast.
|
||||
let ast = server.ast_map.get("file:///test.kcl").unwrap().clone();
|
||||
assert!(ast != crate::ast::types::Program::default());
|
||||
assert!(ast != UnboxedNode::<Program>::default());
|
||||
|
||||
// Get the symbols map.
|
||||
let symbols_map = server.symbols_map.get("file:///test.kcl").unwrap().clone();
|
||||
@ -3489,7 +3490,7 @@ const part001 = startSketchOn('XY')
|
||||
|
||||
// Get the ast.
|
||||
let ast = server.ast_map.get("file:///test.kcl").unwrap().clone();
|
||||
assert!(ast != crate::ast::types::Program::default());
|
||||
assert!(ast != UnboxedNode::<Program>::default());
|
||||
|
||||
// Get the symbols map.
|
||||
let symbols_map = server.symbols_map.get("file:///test.kcl").unwrap().clone();
|
||||
@ -3532,7 +3533,7 @@ const part001 = startSketchOn('XY')
|
||||
|
||||
// Get the ast.
|
||||
let ast = server.ast_map.get("file:///test.kcl").unwrap().clone();
|
||||
assert!(ast != crate::ast::types::Program::default());
|
||||
assert!(ast != UnboxedNode::<Program>::default());
|
||||
|
||||
// Get the symbols map.
|
||||
let symbols_map = server.symbols_map.get("file:///test.kcl").unwrap().clone();
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
use crate::{
|
||||
ast::types::Program,
|
||||
ast::types::{Program, UnboxedNode},
|
||||
errors::{KclError, KclErrorDetails},
|
||||
executor::SourceRange,
|
||||
token::{Token, TokenType},
|
||||
@ -13,7 +13,7 @@ pub const PIPE_SUBSTITUTION_OPERATOR: &str = "%";
|
||||
pub const PIPE_OPERATOR: &str = "|>";
|
||||
|
||||
/// Parse the given KCL code into an AST.
|
||||
pub fn parse(code: &str) -> Result<Program, KclError> {
|
||||
pub fn parse(code: &str) -> Result<UnboxedNode<Program>, KclError> {
|
||||
let tokens = crate::token::lexer(code)?;
|
||||
let parser = Parser::new(tokens);
|
||||
parser.ast()
|
||||
@ -33,7 +33,7 @@ impl Parser {
|
||||
}
|
||||
|
||||
/// Run the parser
|
||||
pub fn ast(&self) -> Result<Program, KclError> {
|
||||
pub fn ast(&self) -> Result<UnboxedNode<Program>, KclError> {
|
||||
if !self.unknown_tokens.is_empty() {
|
||||
let source_ranges = self.unknown_tokens.iter().map(SourceRange::from).collect();
|
||||
let token_list = self.unknown_tokens.iter().map(|t| t.value.as_str()).collect::<Vec<_>>();
|
||||
@ -48,7 +48,7 @@ impl Parser {
|
||||
// Important, to not call this before the unknown tokens check.
|
||||
if self.tokens.is_empty() {
|
||||
// Empty file should just do nothing.
|
||||
return Ok(Program::default());
|
||||
return Ok(UnboxedNode::<Program>::default());
|
||||
}
|
||||
|
||||
// Check all the tokens are whitespace or comments.
|
||||
@ -57,7 +57,7 @@ impl Parser {
|
||||
.iter()
|
||||
.all(|t| t.token_type.is_whitespace() || t.token_type.is_comment())
|
||||
{
|
||||
return Ok(Program::default());
|
||||
return Ok(UnboxedNode::<Program>::default());
|
||||
}
|
||||
|
||||
parser_impl::run_parser(&mut self.tokens.as_slice())
|
||||
|
||||
@ -1,18 +1,18 @@
|
||||
use crate::{
|
||||
ast::types::{BinaryExpression, BinaryOperator, BinaryPart},
|
||||
ast::types::{BinaryExpression, BinaryOperator, BinaryPart, UnboxedNode},
|
||||
errors::{KclError, KclErrorDetails},
|
||||
executor::SourceRange,
|
||||
};
|
||||
|
||||
/// Parses a list of tokens (in infix order, i.e. as the user typed them)
|
||||
/// into a binary expression tree.
|
||||
pub fn parse(infix_tokens: Vec<BinaryExpressionToken>) -> Result<BinaryExpression, KclError> {
|
||||
pub fn parse(infix_tokens: Vec<BinaryExpressionToken>) -> Result<UnboxedNode<BinaryExpression>, KclError> {
|
||||
let rpn = postfix(infix_tokens);
|
||||
evaluate(rpn)
|
||||
}
|
||||
|
||||
/// Parses a list of tokens (in postfix order) into a binary expression tree.
|
||||
fn evaluate(rpn: Vec<BinaryExpressionToken>) -> Result<BinaryExpression, KclError> {
|
||||
fn evaluate(rpn: Vec<BinaryExpressionToken>) -> Result<UnboxedNode<BinaryExpression>, KclError> {
|
||||
let source_ranges = source_range(&rpn);
|
||||
let mut operand_stack: Vec<BinaryPart> = Vec::new();
|
||||
let e = KclError::Internal(KclErrorDetails {
|
||||
@ -28,14 +28,19 @@ fn evaluate(rpn: Vec<BinaryExpressionToken>) -> Result<BinaryExpression, KclErro
|
||||
let Some(left) = operand_stack.pop() else {
|
||||
return Err(e);
|
||||
};
|
||||
BinaryPart::BinaryExpression(Box::new(BinaryExpression {
|
||||
start: left.start(),
|
||||
end: right.end(),
|
||||
let start = left.start();
|
||||
let end = right.end();
|
||||
|
||||
BinaryPart::BinaryExpression(UnboxedNode::boxed(
|
||||
BinaryExpression {
|
||||
operator,
|
||||
left,
|
||||
right,
|
||||
digest: None,
|
||||
}))
|
||||
},
|
||||
start,
|
||||
end,
|
||||
))
|
||||
}
|
||||
BinaryExpressionToken::Operand(o) => o,
|
||||
};
|
||||
@ -125,13 +130,15 @@ mod tests {
|
||||
fn parse_and_evaluate() {
|
||||
/// Make a literal
|
||||
fn lit(n: u8) -> BinaryPart {
|
||||
BinaryPart::Literal(Box::new(Literal {
|
||||
start: 0,
|
||||
end: 0,
|
||||
BinaryPart::Literal(UnboxedNode::new(
|
||||
Literal {
|
||||
value: n.into(),
|
||||
raw: n.to_string(),
|
||||
digest: None,
|
||||
}))
|
||||
},
|
||||
0,
|
||||
0,
|
||||
))
|
||||
}
|
||||
let tests: Vec<Vec<BinaryExpressionToken>> = vec![
|
||||
// 3 + 4 × 2 ÷ ( 1 − 5 ) ^ 2 ^ 3
|
||||
@ -142,14 +149,16 @@ mod tests {
|
||||
BinaryOperator::Mul.into(),
|
||||
lit(2).into(),
|
||||
BinaryOperator::Div.into(),
|
||||
BinaryPart::BinaryExpression(Box::new(BinaryExpression {
|
||||
start: 0,
|
||||
end: 0,
|
||||
BinaryPart::BinaryExpression(UnboxedNode::boxed(
|
||||
BinaryExpression {
|
||||
operator: BinaryOperator::Sub,
|
||||
left: lit(1),
|
||||
right: lit(5),
|
||||
digest: None,
|
||||
}))
|
||||
},
|
||||
0,
|
||||
0,
|
||||
))
|
||||
.into(),
|
||||
BinaryOperator::Pow.into(),
|
||||
lit(2).into(),
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,26 +1,36 @@
|
||||
---
|
||||
source: kcl/src/parser/parser_impl.rs
|
||||
assertion_line: 3567
|
||||
expression: actual
|
||||
---
|
||||
{
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "BinaryExpression",
|
||||
"start": 0,
|
||||
"end": 5,
|
||||
"operator": "+",
|
||||
"left": {
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 0,
|
||||
"end": 1,
|
||||
"value": 1,
|
||||
"raw": "1"
|
||||
},
|
||||
"start": 0,
|
||||
"end": 1
|
||||
},
|
||||
"right": {
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 4,
|
||||
"end": 5,
|
||||
"value": 2,
|
||||
"raw": "2"
|
||||
},
|
||||
"start": 4,
|
||||
"end": 5
|
||||
}
|
||||
},
|
||||
"start": 0,
|
||||
"end": 5
|
||||
}
|
||||
|
||||
@ -1,26 +1,36 @@
|
||||
---
|
||||
source: kcl/src/parser/parser_impl.rs
|
||||
assertion_line: 3568
|
||||
expression: actual
|
||||
---
|
||||
{
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "BinaryExpression",
|
||||
"start": 0,
|
||||
"end": 3,
|
||||
"operator": "+",
|
||||
"left": {
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 0,
|
||||
"end": 1,
|
||||
"value": 1,
|
||||
"raw": "1"
|
||||
},
|
||||
"start": 0,
|
||||
"end": 1
|
||||
},
|
||||
"right": {
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 2,
|
||||
"end": 3,
|
||||
"value": 2,
|
||||
"raw": "2"
|
||||
},
|
||||
"start": 2,
|
||||
"end": 3
|
||||
}
|
||||
},
|
||||
"start": 0,
|
||||
"end": 3
|
||||
}
|
||||
|
||||
@ -1,26 +1,36 @@
|
||||
---
|
||||
source: kcl/src/parser/parser_impl.rs
|
||||
assertion_line: 3569
|
||||
expression: actual
|
||||
---
|
||||
{
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "BinaryExpression",
|
||||
"start": 0,
|
||||
"end": 4,
|
||||
"operator": "-",
|
||||
"left": {
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 0,
|
||||
"end": 1,
|
||||
"value": 1,
|
||||
"raw": "1"
|
||||
},
|
||||
"start": 0,
|
||||
"end": 1
|
||||
},
|
||||
"right": {
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 3,
|
||||
"end": 4,
|
||||
"value": 2,
|
||||
"raw": "2"
|
||||
},
|
||||
"start": 3,
|
||||
"end": 4
|
||||
}
|
||||
},
|
||||
"start": 0,
|
||||
"end": 4
|
||||
}
|
||||
|
||||
@ -1,41 +1,57 @@
|
||||
---
|
||||
source: kcl/src/parser/parser_impl.rs
|
||||
assertion_line: 3570
|
||||
expression: actual
|
||||
---
|
||||
{
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "BinaryExpression",
|
||||
"start": 0,
|
||||
"end": 9,
|
||||
"operator": "+",
|
||||
"left": {
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 0,
|
||||
"end": 1,
|
||||
"value": 1,
|
||||
"raw": "1"
|
||||
},
|
||||
"start": 0,
|
||||
"end": 1
|
||||
},
|
||||
"right": {
|
||||
"type": "BinaryExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "BinaryExpression",
|
||||
"start": 4,
|
||||
"end": 9,
|
||||
"operator": "*",
|
||||
"left": {
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 4,
|
||||
"end": 5,
|
||||
"value": 2,
|
||||
"raw": "2"
|
||||
},
|
||||
"start": 4,
|
||||
"end": 5
|
||||
},
|
||||
"right": {
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 8,
|
||||
"end": 9,
|
||||
"value": 3,
|
||||
"raw": "3"
|
||||
},
|
||||
"start": 8,
|
||||
"end": 9
|
||||
}
|
||||
},
|
||||
"start": 4,
|
||||
"end": 9
|
||||
}
|
||||
},
|
||||
"start": 0,
|
||||
"end": 9
|
||||
}
|
||||
|
||||
@ -1,41 +1,57 @@
|
||||
---
|
||||
source: kcl/src/parser/parser_impl.rs
|
||||
assertion_line: 3571
|
||||
expression: actual
|
||||
---
|
||||
{
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "BinaryExpression",
|
||||
"start": 0,
|
||||
"end": 11,
|
||||
"operator": "*",
|
||||
"left": {
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 0,
|
||||
"end": 1,
|
||||
"value": 1,
|
||||
"raw": "1"
|
||||
},
|
||||
"start": 0,
|
||||
"end": 1
|
||||
},
|
||||
"right": {
|
||||
"type": "BinaryExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "BinaryExpression",
|
||||
"start": 6,
|
||||
"end": 11,
|
||||
"operator": "+",
|
||||
"left": {
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 6,
|
||||
"end": 7,
|
||||
"value": 2,
|
||||
"raw": "2"
|
||||
},
|
||||
"start": 6,
|
||||
"end": 7
|
||||
},
|
||||
"right": {
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 10,
|
||||
"end": 11,
|
||||
"value": 3,
|
||||
"raw": "3"
|
||||
},
|
||||
"start": 10,
|
||||
"end": 11
|
||||
}
|
||||
},
|
||||
"start": 6,
|
||||
"end": 11
|
||||
}
|
||||
},
|
||||
"start": 0,
|
||||
"end": 11
|
||||
}
|
||||
|
||||
@ -1,56 +1,78 @@
|
||||
---
|
||||
source: kcl/src/parser/parser_impl.rs
|
||||
assertion_line: 3572
|
||||
expression: actual
|
||||
---
|
||||
{
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "BinaryExpression",
|
||||
"start": 0,
|
||||
"end": 17,
|
||||
"operator": "/",
|
||||
"left": {
|
||||
"type": "BinaryExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "BinaryExpression",
|
||||
"start": 0,
|
||||
"end": 11,
|
||||
"operator": "*",
|
||||
"left": {
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 0,
|
||||
"end": 1,
|
||||
"value": 1,
|
||||
"raw": "1"
|
||||
},
|
||||
"start": 0,
|
||||
"end": 1
|
||||
},
|
||||
"right": {
|
||||
"type": "BinaryExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "BinaryExpression",
|
||||
"start": 6,
|
||||
"end": 11,
|
||||
"operator": "+",
|
||||
"left": {
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 6,
|
||||
"end": 7,
|
||||
"value": 2,
|
||||
"raw": "2"
|
||||
},
|
||||
"right": {
|
||||
"type": "Literal",
|
||||
"type": "Literal",
|
||||
"start": 10,
|
||||
"end": 11,
|
||||
"value": 3,
|
||||
"raw": "3"
|
||||
}
|
||||
}
|
||||
"start": 6,
|
||||
"end": 7
|
||||
},
|
||||
"right": {
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"value": 3,
|
||||
"raw": "3"
|
||||
},
|
||||
"start": 10,
|
||||
"end": 11
|
||||
}
|
||||
},
|
||||
"start": 6,
|
||||
"end": 11
|
||||
}
|
||||
},
|
||||
"start": 0,
|
||||
"end": 11
|
||||
},
|
||||
"right": {
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 16,
|
||||
"end": 17,
|
||||
"value": 4,
|
||||
"raw": "4"
|
||||
},
|
||||
"start": 16,
|
||||
"end": 17
|
||||
}
|
||||
},
|
||||
"start": 0,
|
||||
"end": 17
|
||||
}
|
||||
|
||||
@ -1,56 +1,78 @@
|
||||
---
|
||||
source: kcl/src/parser/parser_impl.rs
|
||||
assertion_line: 3573
|
||||
expression: actual
|
||||
---
|
||||
{
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "BinaryExpression",
|
||||
"start": 0,
|
||||
"end": 17,
|
||||
"operator": "+",
|
||||
"left": {
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 0,
|
||||
"end": 1,
|
||||
"value": 1,
|
||||
"raw": "1"
|
||||
},
|
||||
"start": 0,
|
||||
"end": 1
|
||||
},
|
||||
"right": {
|
||||
"type": "BinaryExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "BinaryExpression",
|
||||
"start": 6,
|
||||
"end": 17,
|
||||
"operator": "/",
|
||||
"left": {
|
||||
"type": "BinaryExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "BinaryExpression",
|
||||
"start": 6,
|
||||
"end": 11,
|
||||
"operator": "+",
|
||||
"left": {
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 6,
|
||||
"end": 7,
|
||||
"value": 2,
|
||||
"raw": "2"
|
||||
},
|
||||
"right": {
|
||||
"type": "Literal",
|
||||
"type": "Literal",
|
||||
"start": 10,
|
||||
"end": 11,
|
||||
"value": 3,
|
||||
"raw": "3"
|
||||
}
|
||||
"start": 6,
|
||||
"end": 7
|
||||
},
|
||||
"right": {
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"value": 3,
|
||||
"raw": "3"
|
||||
},
|
||||
"start": 10,
|
||||
"end": 11
|
||||
}
|
||||
},
|
||||
"start": 6,
|
||||
"end": 11
|
||||
},
|
||||
"right": {
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 16,
|
||||
"end": 17,
|
||||
"value": 4,
|
||||
"raw": "4"
|
||||
},
|
||||
"start": 16,
|
||||
"end": 17
|
||||
}
|
||||
},
|
||||
"start": 6,
|
||||
"end": 17
|
||||
}
|
||||
},
|
||||
"start": 0,
|
||||
"end": 17
|
||||
}
|
||||
|
||||
@ -1,71 +1,99 @@
|
||||
---
|
||||
source: kcl/src/parser/parser_impl.rs
|
||||
assertion_line: 3574
|
||||
expression: actual
|
||||
---
|
||||
{
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "BinaryExpression",
|
||||
"start": 0,
|
||||
"end": 22,
|
||||
"operator": "*",
|
||||
"left": {
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 0,
|
||||
"end": 1,
|
||||
"value": 1,
|
||||
"raw": "1"
|
||||
},
|
||||
"start": 0,
|
||||
"end": 1
|
||||
},
|
||||
"right": {
|
||||
"type": "BinaryExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "BinaryExpression",
|
||||
"start": 7,
|
||||
"end": 22,
|
||||
"operator": "+",
|
||||
"left": {
|
||||
"type": "BinaryExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "BinaryExpression",
|
||||
"start": 7,
|
||||
"end": 18,
|
||||
"operator": "/",
|
||||
"left": {
|
||||
"type": "BinaryExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "BinaryExpression",
|
||||
"start": 7,
|
||||
"end": 12,
|
||||
"operator": "+",
|
||||
"left": {
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 7,
|
||||
"end": 8,
|
||||
"value": 2,
|
||||
"raw": "2"
|
||||
},
|
||||
"start": 7,
|
||||
"end": 8
|
||||
},
|
||||
"right": {
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 11,
|
||||
"end": 12,
|
||||
"value": 3,
|
||||
"raw": "3"
|
||||
},
|
||||
"start": 11,
|
||||
"end": 12
|
||||
}
|
||||
},
|
||||
"start": 7,
|
||||
"end": 12
|
||||
},
|
||||
"right": {
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 17,
|
||||
"end": 18,
|
||||
"value": 4,
|
||||
"raw": "4"
|
||||
},
|
||||
"start": 17,
|
||||
"end": 18
|
||||
}
|
||||
},
|
||||
"start": 7,
|
||||
"end": 18
|
||||
},
|
||||
"right": {
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 21,
|
||||
"end": 22,
|
||||
"value": 5,
|
||||
"raw": "5"
|
||||
},
|
||||
"start": 21,
|
||||
"end": 22
|
||||
}
|
||||
},
|
||||
"start": 7,
|
||||
"end": 22
|
||||
}
|
||||
},
|
||||
"start": 0,
|
||||
"end": 22
|
||||
}
|
||||
|
||||
@ -1,41 +1,57 @@
|
||||
---
|
||||
source: kcl/src/parser/parser_impl.rs
|
||||
assertion_line: 3575
|
||||
expression: actual
|
||||
---
|
||||
{
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "BinaryExpression",
|
||||
"start": 0,
|
||||
"end": 13,
|
||||
"operator": "*",
|
||||
"left": {
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 0,
|
||||
"end": 1,
|
||||
"value": 1,
|
||||
"raw": "1"
|
||||
},
|
||||
"start": 0,
|
||||
"end": 1
|
||||
},
|
||||
"right": {
|
||||
"type": "BinaryExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "BinaryExpression",
|
||||
"start": 8,
|
||||
"end": 13,
|
||||
"operator": "+",
|
||||
"left": {
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 8,
|
||||
"end": 9,
|
||||
"value": 2,
|
||||
"raw": "2"
|
||||
},
|
||||
"start": 8,
|
||||
"end": 9
|
||||
},
|
||||
"right": {
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 12,
|
||||
"end": 13,
|
||||
"value": 3,
|
||||
"raw": "3"
|
||||
},
|
||||
"start": 12,
|
||||
"end": 13
|
||||
}
|
||||
},
|
||||
"start": 8,
|
||||
"end": 13
|
||||
}
|
||||
},
|
||||
"start": 0,
|
||||
"end": 13
|
||||
}
|
||||
|
||||
@ -1,81 +1,115 @@
|
||||
---
|
||||
source: kcl/src/parser/parser_impl.rs
|
||||
assertion_line: 3576
|
||||
expression: actual
|
||||
---
|
||||
{
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "BinaryExpression",
|
||||
"start": 0,
|
||||
"end": 44,
|
||||
"operator": "/",
|
||||
"left": {
|
||||
"type": "BinaryExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "BinaryExpression",
|
||||
"start": 0,
|
||||
"end": 22,
|
||||
"operator": "*",
|
||||
"left": {
|
||||
"type": "BinaryExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "BinaryExpression",
|
||||
"start": 0,
|
||||
"end": 18,
|
||||
"operator": "*",
|
||||
"left": {
|
||||
"type": "BinaryExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "BinaryExpression",
|
||||
"start": 0,
|
||||
"end": 12,
|
||||
"operator": "*",
|
||||
"left": {
|
||||
"type": "Identifier",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 0,
|
||||
"end": 8,
|
||||
"name": "distance"
|
||||
},
|
||||
"start": 0,
|
||||
"end": 8
|
||||
},
|
||||
"right": {
|
||||
"type": "Identifier",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 11,
|
||||
"end": 12,
|
||||
"name": "p"
|
||||
},
|
||||
"start": 11,
|
||||
"end": 12
|
||||
}
|
||||
},
|
||||
"start": 0,
|
||||
"end": 12
|
||||
},
|
||||
"right": {
|
||||
"type": "Identifier",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 15,
|
||||
"end": 18,
|
||||
"name": "FOS"
|
||||
},
|
||||
"start": 15,
|
||||
"end": 18
|
||||
}
|
||||
},
|
||||
"start": 0,
|
||||
"end": 18
|
||||
},
|
||||
"right": {
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 21,
|
||||
"end": 22,
|
||||
"value": 6,
|
||||
"raw": "6"
|
||||
},
|
||||
"start": 21,
|
||||
"end": 22
|
||||
}
|
||||
},
|
||||
"start": 0,
|
||||
"end": 22
|
||||
},
|
||||
"right": {
|
||||
"type": "BinaryExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "BinaryExpression",
|
||||
"start": 26,
|
||||
"end": 44,
|
||||
"operator": "*",
|
||||
"left": {
|
||||
"type": "Identifier",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 26,
|
||||
"end": 36,
|
||||
"name": "sigmaAllow"
|
||||
},
|
||||
"start": 26,
|
||||
"end": 36
|
||||
},
|
||||
"right": {
|
||||
"type": "Identifier",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 39,
|
||||
"end": 44,
|
||||
"name": "width"
|
||||
},
|
||||
"start": 39,
|
||||
"end": 44
|
||||
}
|
||||
},
|
||||
"start": 26,
|
||||
"end": 44
|
||||
}
|
||||
},
|
||||
"start": 0,
|
||||
"end": 44
|
||||
}
|
||||
|
||||
@ -1,26 +1,36 @@
|
||||
---
|
||||
source: kcl/src/parser/parser_impl.rs
|
||||
assertion_line: 3577
|
||||
expression: actual
|
||||
---
|
||||
{
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "BinaryExpression",
|
||||
"start": 0,
|
||||
"end": 8,
|
||||
"operator": "+",
|
||||
"left": {
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 0,
|
||||
"end": 1,
|
||||
"value": 2,
|
||||
"raw": "2"
|
||||
},
|
||||
"start": 0,
|
||||
"end": 1
|
||||
},
|
||||
"right": {
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 7,
|
||||
"end": 8,
|
||||
"value": 3,
|
||||
"raw": "3"
|
||||
},
|
||||
"start": 7,
|
||||
"end": 8
|
||||
}
|
||||
},
|
||||
"start": 0,
|
||||
"end": 8
|
||||
}
|
||||
|
||||
@ -1,255 +1,358 @@
|
||||
---
|
||||
source: kcl/src/parser/parser_impl.rs
|
||||
assertion_line: 3606
|
||||
expression: actual
|
||||
---
|
||||
{
|
||||
"start": 0,
|
||||
"end": 144,
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"body": [
|
||||
{
|
||||
"type": "VariableDeclaration",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "VariableDeclaration",
|
||||
"start": 0,
|
||||
"end": 143,
|
||||
"declarations": [
|
||||
{
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "VariableDeclarator",
|
||||
"start": 6,
|
||||
"end": 143,
|
||||
"id": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 6,
|
||||
"end": 15,
|
||||
"name": "boxSketch"
|
||||
},
|
||||
"start": 6,
|
||||
"end": 15
|
||||
},
|
||||
"init": {
|
||||
"type": "PipeExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "PipeExpression",
|
||||
"start": 18,
|
||||
"end": 143,
|
||||
"body": [
|
||||
{
|
||||
"type": "CallExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "CallExpression",
|
||||
"start": 18,
|
||||
"end": 39,
|
||||
"callee": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 18,
|
||||
"end": 31,
|
||||
"name": "startSketchAt"
|
||||
},
|
||||
"start": 18,
|
||||
"end": 31
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"type": "ArrayExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "ArrayExpression",
|
||||
"start": 32,
|
||||
"end": 38,
|
||||
"elements": [
|
||||
{
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 33,
|
||||
"end": 34,
|
||||
"value": 0,
|
||||
"raw": "0"
|
||||
},
|
||||
"start": 33,
|
||||
"end": 34
|
||||
},
|
||||
{
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 36,
|
||||
"end": 37,
|
||||
"value": 0,
|
||||
"raw": "0"
|
||||
},
|
||||
"start": 36,
|
||||
"end": 37
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 32,
|
||||
"end": 38
|
||||
}
|
||||
],
|
||||
"optional": false
|
||||
},
|
||||
"start": 18,
|
||||
"end": 39
|
||||
},
|
||||
{
|
||||
"type": "CallExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "CallExpression",
|
||||
"start": 47,
|
||||
"end": 63,
|
||||
"callee": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 47,
|
||||
"end": 51,
|
||||
"name": "line"
|
||||
},
|
||||
"start": 47,
|
||||
"end": 51
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"type": "ArrayExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "ArrayExpression",
|
||||
"start": 52,
|
||||
"end": 59,
|
||||
"elements": [
|
||||
{
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 53,
|
||||
"end": 54,
|
||||
"value": 0,
|
||||
"raw": "0"
|
||||
},
|
||||
"start": 53,
|
||||
"end": 54
|
||||
},
|
||||
{
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 56,
|
||||
"end": 58,
|
||||
"value": 10,
|
||||
"raw": "10"
|
||||
},
|
||||
"start": 56,
|
||||
"end": 58
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 52,
|
||||
"end": 59
|
||||
},
|
||||
{
|
||||
"type": "PipeSubstitution",
|
||||
"type": "PipeSubstitution",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "PipeSubstitution"
|
||||
},
|
||||
"start": 61,
|
||||
"end": 62
|
||||
}
|
||||
],
|
||||
"optional": false
|
||||
},
|
||||
"start": 47,
|
||||
"end": 63
|
||||
},
|
||||
{
|
||||
"type": "CallExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "CallExpression",
|
||||
"start": 71,
|
||||
"end": 96,
|
||||
"callee": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 71,
|
||||
"end": 84,
|
||||
"name": "tangentialArc"
|
||||
},
|
||||
"start": 71,
|
||||
"end": 84
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"type": "ArrayExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "ArrayExpression",
|
||||
"start": 85,
|
||||
"end": 92,
|
||||
"elements": [
|
||||
{
|
||||
"type": "UnaryExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "UnaryExpression",
|
||||
"start": 86,
|
||||
"end": 88,
|
||||
"operator": "-",
|
||||
"argument": {
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 87,
|
||||
"end": 88,
|
||||
"value": 5,
|
||||
"raw": "5"
|
||||
},
|
||||
"start": 87,
|
||||
"end": 88
|
||||
}
|
||||
},
|
||||
"start": 86,
|
||||
"end": 88
|
||||
},
|
||||
{
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 90,
|
||||
"end": 91,
|
||||
"value": 5,
|
||||
"raw": "5"
|
||||
},
|
||||
"start": 90,
|
||||
"end": 91
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 85,
|
||||
"end": 92
|
||||
},
|
||||
{
|
||||
"type": "PipeSubstitution",
|
||||
"type": "PipeSubstitution",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "PipeSubstitution"
|
||||
},
|
||||
"start": 94,
|
||||
"end": 95
|
||||
}
|
||||
],
|
||||
"optional": false
|
||||
},
|
||||
"start": 71,
|
||||
"end": 96
|
||||
},
|
||||
{
|
||||
"type": "CallExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "CallExpression",
|
||||
"start": 104,
|
||||
"end": 121,
|
||||
"callee": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 104,
|
||||
"end": 108,
|
||||
"name": "line"
|
||||
},
|
||||
"start": 104,
|
||||
"end": 108
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"type": "ArrayExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "ArrayExpression",
|
||||
"start": 109,
|
||||
"end": 117,
|
||||
"elements": [
|
||||
{
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 110,
|
||||
"end": 111,
|
||||
"value": 5,
|
||||
"raw": "5"
|
||||
},
|
||||
"start": 110,
|
||||
"end": 111
|
||||
},
|
||||
{
|
||||
"type": "UnaryExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "UnaryExpression",
|
||||
"start": 113,
|
||||
"end": 116,
|
||||
"operator": "-",
|
||||
"argument": {
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 114,
|
||||
"end": 116,
|
||||
"value": 15,
|
||||
"raw": "15"
|
||||
},
|
||||
"start": 114,
|
||||
"end": 116
|
||||
}
|
||||
},
|
||||
"start": 113,
|
||||
"end": 116
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 109,
|
||||
"end": 117
|
||||
},
|
||||
{
|
||||
"type": "PipeSubstitution",
|
||||
"type": "PipeSubstitution",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "PipeSubstitution"
|
||||
},
|
||||
"start": 119,
|
||||
"end": 120
|
||||
}
|
||||
],
|
||||
"optional": false
|
||||
},
|
||||
"start": 104,
|
||||
"end": 121
|
||||
},
|
||||
{
|
||||
"type": "CallExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "CallExpression",
|
||||
"start": 129,
|
||||
"end": 143,
|
||||
"callee": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 129,
|
||||
"end": 136,
|
||||
"name": "extrude"
|
||||
},
|
||||
"start": 129,
|
||||
"end": 136
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 137,
|
||||
"end": 139,
|
||||
"value": 10,
|
||||
"raw": "10"
|
||||
},
|
||||
"start": 137,
|
||||
"end": 139
|
||||
},
|
||||
{
|
||||
"type": "PipeSubstitution",
|
||||
"type": "PipeSubstitution",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "PipeSubstitution"
|
||||
},
|
||||
"start": 141,
|
||||
"end": 142
|
||||
}
|
||||
],
|
||||
"optional": false
|
||||
},
|
||||
"start": 129,
|
||||
"end": 143
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 18,
|
||||
"end": 143
|
||||
}
|
||||
},
|
||||
"start": 6,
|
||||
"end": 143
|
||||
}
|
||||
],
|
||||
"kind": "const"
|
||||
},
|
||||
"start": 0,
|
||||
"end": 143
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 0,
|
||||
"end": 144
|
||||
}
|
||||
|
||||
@ -1,44 +1,63 @@
|
||||
---
|
||||
source: kcl/src/parser/parser_impl.rs
|
||||
assertion_line: 3676
|
||||
expression: actual
|
||||
---
|
||||
{
|
||||
"start": 0,
|
||||
"end": 17,
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"body": [
|
||||
{
|
||||
"type": "VariableDeclaration",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "VariableDeclaration",
|
||||
"start": 0,
|
||||
"end": 17,
|
||||
"declarations": [
|
||||
{
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "VariableDeclarator",
|
||||
"start": 6,
|
||||
"end": 17,
|
||||
"id": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 6,
|
||||
"end": 8,
|
||||
"name": "sg"
|
||||
},
|
||||
"start": 6,
|
||||
"end": 8
|
||||
},
|
||||
"init": {
|
||||
"type": "UnaryExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "UnaryExpression",
|
||||
"start": 11,
|
||||
"end": 17,
|
||||
"operator": "-",
|
||||
"argument": {
|
||||
"type": "Identifier",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 12,
|
||||
"end": 17,
|
||||
"name": "scale"
|
||||
},
|
||||
"start": 12,
|
||||
"end": 17
|
||||
}
|
||||
},
|
||||
"start": 11,
|
||||
"end": 17
|
||||
}
|
||||
},
|
||||
"start": 6,
|
||||
"end": 17
|
||||
}
|
||||
],
|
||||
"kind": "const"
|
||||
},
|
||||
"start": 0,
|
||||
"end": 17
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 0,
|
||||
"end": 17
|
||||
}
|
||||
|
||||
@ -1,81 +1,115 @@
|
||||
---
|
||||
source: kcl/src/parser/parser_impl.rs
|
||||
assertion_line: 3677
|
||||
expression: actual
|
||||
---
|
||||
{
|
||||
"start": 0,
|
||||
"end": 23,
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"body": [
|
||||
{
|
||||
"type": "ExpressionStatement",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "ExpressionStatement",
|
||||
"start": 0,
|
||||
"end": 23,
|
||||
"expression": {
|
||||
"type": "CallExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "CallExpression",
|
||||
"start": 0,
|
||||
"end": 23,
|
||||
"callee": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 0,
|
||||
"end": 6,
|
||||
"name": "lineTo"
|
||||
},
|
||||
"start": 0,
|
||||
"end": 6
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"type": "ObjectExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "ObjectExpression",
|
||||
"start": 7,
|
||||
"end": 22,
|
||||
"properties": [
|
||||
{
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "ObjectProperty",
|
||||
"start": 9,
|
||||
"end": 20,
|
||||
"key": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 9,
|
||||
"end": 11,
|
||||
"name": "to"
|
||||
},
|
||||
"start": 9,
|
||||
"end": 11
|
||||
},
|
||||
"value": {
|
||||
"type": "ArrayExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "ArrayExpression",
|
||||
"start": 13,
|
||||
"end": 20,
|
||||
"elements": [
|
||||
{
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 14,
|
||||
"end": 15,
|
||||
"value": 0,
|
||||
"raw": "0"
|
||||
},
|
||||
"start": 14,
|
||||
"end": 15
|
||||
},
|
||||
{
|
||||
"type": "UnaryExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "UnaryExpression",
|
||||
"start": 17,
|
||||
"end": 19,
|
||||
"operator": "-",
|
||||
"argument": {
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 18,
|
||||
"end": 19,
|
||||
"value": 1,
|
||||
"raw": "1"
|
||||
},
|
||||
"start": 18,
|
||||
"end": 19
|
||||
}
|
||||
},
|
||||
"start": 17,
|
||||
"end": 19
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 13,
|
||||
"end": 20
|
||||
}
|
||||
},
|
||||
"start": 9,
|
||||
"end": 20
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 7,
|
||||
"end": 22
|
||||
}
|
||||
],
|
||||
"optional": false
|
||||
},
|
||||
"start": 0,
|
||||
"end": 23
|
||||
}
|
||||
},
|
||||
"start": 0,
|
||||
"end": 23
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 0,
|
||||
"end": 23
|
||||
}
|
||||
|
||||
@ -1,53 +1,75 @@
|
||||
---
|
||||
source: kcl/src/parser/parser_impl.rs
|
||||
assertion_line: 3678
|
||||
expression: actual
|
||||
---
|
||||
{
|
||||
"start": 0,
|
||||
"end": 23,
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"body": [
|
||||
{
|
||||
"type": "VariableDeclaration",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "VariableDeclaration",
|
||||
"start": 0,
|
||||
"end": 23,
|
||||
"declarations": [
|
||||
{
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "VariableDeclarator",
|
||||
"start": 6,
|
||||
"end": 23,
|
||||
"id": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 6,
|
||||
"end": 13,
|
||||
"name": "myArray"
|
||||
},
|
||||
"start": 6,
|
||||
"end": 13
|
||||
},
|
||||
"init": {
|
||||
"type": "ArrayRangeExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "ArrayRangeExpression",
|
||||
"start": 16,
|
||||
"end": 23,
|
||||
"startElement": {
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 17,
|
||||
"end": 18,
|
||||
"value": 0,
|
||||
"raw": "0"
|
||||
},
|
||||
"start": 17,
|
||||
"end": 18
|
||||
},
|
||||
"endElement": {
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 20,
|
||||
"end": 22,
|
||||
"value": 10,
|
||||
"raw": "10"
|
||||
},
|
||||
"start": 20,
|
||||
"end": 22
|
||||
},
|
||||
"endInclusive": true
|
||||
},
|
||||
"start": 16,
|
||||
"end": 23
|
||||
}
|
||||
},
|
||||
"start": 6,
|
||||
"end": 23
|
||||
}
|
||||
],
|
||||
"kind": "const"
|
||||
},
|
||||
"start": 0,
|
||||
"end": 23
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 0,
|
||||
"end": 23
|
||||
}
|
||||
|
||||
@ -1,77 +1,111 @@
|
||||
---
|
||||
source: kcl/src/parser/parser_impl.rs
|
||||
assertion_line: 3679
|
||||
expression: actual
|
||||
---
|
||||
{
|
||||
"start": 0,
|
||||
"end": 80,
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"body": [
|
||||
{
|
||||
"type": "VariableDeclaration",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "VariableDeclaration",
|
||||
"start": 5,
|
||||
"end": 57,
|
||||
"declarations": [
|
||||
{
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "VariableDeclarator",
|
||||
"start": 8,
|
||||
"end": 57,
|
||||
"id": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 8,
|
||||
"end": 24,
|
||||
"name": "firstPrimeNumber"
|
||||
},
|
||||
"start": 8,
|
||||
"end": 24
|
||||
},
|
||||
"init": {
|
||||
"type": "FunctionExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "FunctionExpression",
|
||||
"start": 27,
|
||||
"end": 57,
|
||||
"params": [],
|
||||
"body": {
|
||||
"start": 33,
|
||||
"end": 57,
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"body": [
|
||||
{
|
||||
"type": "ReturnStatement",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "ReturnStatement",
|
||||
"start": 43,
|
||||
"end": 51,
|
||||
"argument": {
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 50,
|
||||
"end": 51,
|
||||
"value": 2,
|
||||
"raw": "2"
|
||||
},
|
||||
"start": 50,
|
||||
"end": 51
|
||||
}
|
||||
},
|
||||
"start": 43,
|
||||
"end": 51
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 33,
|
||||
"end": 57
|
||||
}
|
||||
},
|
||||
"start": 27,
|
||||
"end": 57
|
||||
}
|
||||
},
|
||||
"start": 8,
|
||||
"end": 57
|
||||
}
|
||||
],
|
||||
"kind": "fn"
|
||||
},
|
||||
"start": 5,
|
||||
"end": 57
|
||||
},
|
||||
{
|
||||
"type": "ExpressionStatement",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "ExpressionStatement",
|
||||
"start": 62,
|
||||
"end": 80,
|
||||
"expression": {
|
||||
"type": "CallExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "CallExpression",
|
||||
"start": 62,
|
||||
"end": 80,
|
||||
"callee": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 62,
|
||||
"end": 78,
|
||||
"name": "firstPrimeNumber"
|
||||
},
|
||||
"start": 62,
|
||||
"end": 78
|
||||
},
|
||||
"arguments": [],
|
||||
"optional": false
|
||||
},
|
||||
"start": 62,
|
||||
"end": 80
|
||||
}
|
||||
},
|
||||
"start": 62,
|
||||
"end": 80
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 0,
|
||||
"end": 80
|
||||
}
|
||||
|
||||
@ -1,97 +1,137 @@
|
||||
---
|
||||
source: kcl/src/parser/parser_impl.rs
|
||||
assertion_line: 3687
|
||||
expression: actual
|
||||
---
|
||||
{
|
||||
"start": 0,
|
||||
"end": 66,
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"body": [
|
||||
{
|
||||
"type": "VariableDeclaration",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "VariableDeclaration",
|
||||
"start": 0,
|
||||
"end": 49,
|
||||
"declarations": [
|
||||
{
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "VariableDeclarator",
|
||||
"start": 3,
|
||||
"end": 49,
|
||||
"id": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 3,
|
||||
"end": 8,
|
||||
"name": "thing"
|
||||
},
|
||||
"start": 3,
|
||||
"end": 8
|
||||
},
|
||||
"init": {
|
||||
"type": "FunctionExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "FunctionExpression",
|
||||
"start": 11,
|
||||
"end": 49,
|
||||
"params": [
|
||||
{
|
||||
"type": "Parameter",
|
||||
"identifier": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 12,
|
||||
"end": 17,
|
||||
"name": "param"
|
||||
},
|
||||
"start": 12,
|
||||
"end": 17
|
||||
},
|
||||
"optional": false
|
||||
}
|
||||
],
|
||||
"body": {
|
||||
"start": 22,
|
||||
"end": 49,
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"body": [
|
||||
{
|
||||
"type": "ReturnStatement",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "ReturnStatement",
|
||||
"start": 32,
|
||||
"end": 43,
|
||||
"argument": {
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 39,
|
||||
"end": 43,
|
||||
"value": true,
|
||||
"raw": "true"
|
||||
},
|
||||
"start": 39,
|
||||
"end": 43
|
||||
}
|
||||
},
|
||||
"start": 32,
|
||||
"end": 43
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 22,
|
||||
"end": 49
|
||||
}
|
||||
},
|
||||
"start": 11,
|
||||
"end": 49
|
||||
}
|
||||
},
|
||||
"start": 3,
|
||||
"end": 49
|
||||
}
|
||||
],
|
||||
"kind": "fn"
|
||||
},
|
||||
"start": 0,
|
||||
"end": 49
|
||||
},
|
||||
{
|
||||
"type": "ExpressionStatement",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "ExpressionStatement",
|
||||
"start": 54,
|
||||
"end": 66,
|
||||
"expression": {
|
||||
"type": "CallExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "CallExpression",
|
||||
"start": 54,
|
||||
"end": 66,
|
||||
"callee": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 54,
|
||||
"end": 59,
|
||||
"name": "thing"
|
||||
},
|
||||
"start": 54,
|
||||
"end": 59
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 60,
|
||||
"end": 65,
|
||||
"value": false,
|
||||
"raw": "false"
|
||||
},
|
||||
"start": 60,
|
||||
"end": 65
|
||||
}
|
||||
],
|
||||
"optional": false
|
||||
},
|
||||
"start": 54,
|
||||
"end": 66
|
||||
}
|
||||
},
|
||||
"start": 54,
|
||||
"end": 66
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 0,
|
||||
"end": 66
|
||||
}
|
||||
|
||||
@ -1,247 +1,347 @@
|
||||
---
|
||||
source: kcl/src/parser/parser_impl.rs
|
||||
assertion_line: 3694
|
||||
expression: actual
|
||||
---
|
||||
{
|
||||
"start": 0,
|
||||
"end": 165,
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"body": [
|
||||
{
|
||||
"type": "VariableDeclaration",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "VariableDeclaration",
|
||||
"start": 0,
|
||||
"end": 165,
|
||||
"declarations": [
|
||||
{
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "VariableDeclarator",
|
||||
"start": 6,
|
||||
"end": 165,
|
||||
"id": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 6,
|
||||
"end": 14,
|
||||
"name": "mySketch"
|
||||
},
|
||||
"start": 6,
|
||||
"end": 14
|
||||
},
|
||||
"init": {
|
||||
"type": "PipeExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "PipeExpression",
|
||||
"start": 17,
|
||||
"end": 165,
|
||||
"body": [
|
||||
{
|
||||
"type": "CallExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "CallExpression",
|
||||
"start": 17,
|
||||
"end": 37,
|
||||
"callee": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 17,
|
||||
"end": 30,
|
||||
"name": "startSketchAt"
|
||||
},
|
||||
"start": 17,
|
||||
"end": 30
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"type": "ArrayExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "ArrayExpression",
|
||||
"start": 31,
|
||||
"end": 36,
|
||||
"elements": [
|
||||
{
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 32,
|
||||
"end": 33,
|
||||
"value": 0,
|
||||
"raw": "0"
|
||||
},
|
||||
"start": 32,
|
||||
"end": 33
|
||||
},
|
||||
{
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 34,
|
||||
"end": 35,
|
||||
"value": 0,
|
||||
"raw": "0"
|
||||
},
|
||||
"start": 34,
|
||||
"end": 35
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 31,
|
||||
"end": 36
|
||||
}
|
||||
],
|
||||
"optional": false
|
||||
},
|
||||
"start": 17,
|
||||
"end": 37
|
||||
},
|
||||
{
|
||||
"type": "CallExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "CallExpression",
|
||||
"start": 49,
|
||||
"end": 75,
|
||||
"callee": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 49,
|
||||
"end": 55,
|
||||
"name": "lineTo"
|
||||
},
|
||||
"start": 49,
|
||||
"end": 55
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"type": "ArrayExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "ArrayExpression",
|
||||
"start": 56,
|
||||
"end": 62,
|
||||
"elements": [
|
||||
{
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 57,
|
||||
"end": 58,
|
||||
"value": 0,
|
||||
"raw": "0"
|
||||
},
|
||||
"start": 57,
|
||||
"end": 58
|
||||
},
|
||||
{
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 60,
|
||||
"end": 61,
|
||||
"value": 1,
|
||||
"raw": "1"
|
||||
},
|
||||
"start": 60,
|
||||
"end": 61
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 56,
|
||||
"end": 62
|
||||
},
|
||||
{
|
||||
"type": "PipeSubstitution",
|
||||
"type": "PipeSubstitution",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "PipeSubstitution"
|
||||
},
|
||||
"start": 64,
|
||||
"end": 65
|
||||
},
|
||||
{
|
||||
"type": "TagDeclarator",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "TagDeclarator",
|
||||
"start": 67,
|
||||
"end": 74,
|
||||
"value": "myPath"
|
||||
},
|
||||
"start": 67,
|
||||
"end": 74
|
||||
}
|
||||
],
|
||||
"optional": false
|
||||
},
|
||||
"start": 49,
|
||||
"end": 75
|
||||
},
|
||||
{
|
||||
"type": "CallExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "CallExpression",
|
||||
"start": 87,
|
||||
"end": 104,
|
||||
"callee": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 87,
|
||||
"end": 93,
|
||||
"name": "lineTo"
|
||||
},
|
||||
"start": 87,
|
||||
"end": 93
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"type": "ArrayExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "ArrayExpression",
|
||||
"start": 94,
|
||||
"end": 100,
|
||||
"elements": [
|
||||
{
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 95,
|
||||
"end": 96,
|
||||
"value": 1,
|
||||
"raw": "1"
|
||||
},
|
||||
"start": 95,
|
||||
"end": 96
|
||||
},
|
||||
{
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 98,
|
||||
"end": 99,
|
||||
"value": 1,
|
||||
"raw": "1"
|
||||
},
|
||||
"start": 98,
|
||||
"end": 99
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 94,
|
||||
"end": 100
|
||||
},
|
||||
{
|
||||
"type": "PipeSubstitution",
|
||||
"type": "PipeSubstitution",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "PipeSubstitution"
|
||||
},
|
||||
"start": 102,
|
||||
"end": 103
|
||||
}
|
||||
],
|
||||
"optional": false
|
||||
},
|
||||
"start": 87,
|
||||
"end": 104
|
||||
},
|
||||
{
|
||||
"type": "CallExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "CallExpression",
|
||||
"start": 116,
|
||||
"end": 145,
|
||||
"callee": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 116,
|
||||
"end": 122,
|
||||
"name": "lineTo"
|
||||
},
|
||||
"start": 116,
|
||||
"end": 122
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"type": "ArrayExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "ArrayExpression",
|
||||
"start": 123,
|
||||
"end": 129,
|
||||
"elements": [
|
||||
{
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 124,
|
||||
"end": 125,
|
||||
"value": 1,
|
||||
"raw": "1"
|
||||
},
|
||||
"start": 124,
|
||||
"end": 125
|
||||
},
|
||||
{
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 127,
|
||||
"end": 128,
|
||||
"value": 0,
|
||||
"raw": "0"
|
||||
},
|
||||
"start": 127,
|
||||
"end": 128
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 123,
|
||||
"end": 129
|
||||
},
|
||||
{
|
||||
"type": "PipeSubstitution",
|
||||
"type": "PipeSubstitution",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "PipeSubstitution"
|
||||
},
|
||||
"start": 131,
|
||||
"end": 132
|
||||
},
|
||||
{
|
||||
"type": "TagDeclarator",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "TagDeclarator",
|
||||
"start": 134,
|
||||
"end": 144,
|
||||
"value": "rightPath"
|
||||
},
|
||||
"start": 134,
|
||||
"end": 144
|
||||
}
|
||||
],
|
||||
"optional": false
|
||||
},
|
||||
"start": 116,
|
||||
"end": 145
|
||||
},
|
||||
{
|
||||
"type": "CallExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "CallExpression",
|
||||
"start": 157,
|
||||
"end": 165,
|
||||
"callee": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 157,
|
||||
"end": 162,
|
||||
"name": "close"
|
||||
},
|
||||
"start": 157,
|
||||
"end": 162
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"type": "PipeSubstitution",
|
||||
"type": "PipeSubstitution",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "PipeSubstitution"
|
||||
},
|
||||
"start": 163,
|
||||
"end": 164
|
||||
}
|
||||
],
|
||||
"optional": false
|
||||
},
|
||||
"start": 157,
|
||||
"end": 165
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 17,
|
||||
"end": 165
|
||||
}
|
||||
},
|
||||
"start": 6,
|
||||
"end": 165
|
||||
}
|
||||
],
|
||||
"kind": "const"
|
||||
},
|
||||
"start": 0,
|
||||
"end": 165
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 0,
|
||||
"end": 165
|
||||
}
|
||||
|
||||
@ -1,143 +1,201 @@
|
||||
---
|
||||
source: kcl/src/parser/parser_impl.rs
|
||||
assertion_line: 3702
|
||||
expression: actual
|
||||
---
|
||||
{
|
||||
"start": 0,
|
||||
"end": 70,
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"body": [
|
||||
{
|
||||
"type": "VariableDeclaration",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "VariableDeclaration",
|
||||
"start": 0,
|
||||
"end": 70,
|
||||
"declarations": [
|
||||
{
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "VariableDeclarator",
|
||||
"start": 6,
|
||||
"end": 70,
|
||||
"id": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 6,
|
||||
"end": 14,
|
||||
"name": "mySketch"
|
||||
},
|
||||
"start": 6,
|
||||
"end": 14
|
||||
},
|
||||
"init": {
|
||||
"type": "PipeExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "PipeExpression",
|
||||
"start": 17,
|
||||
"end": 70,
|
||||
"body": [
|
||||
{
|
||||
"type": "CallExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "CallExpression",
|
||||
"start": 17,
|
||||
"end": 37,
|
||||
"callee": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 17,
|
||||
"end": 30,
|
||||
"name": "startSketchAt"
|
||||
},
|
||||
"start": 17,
|
||||
"end": 30
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"type": "ArrayExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "ArrayExpression",
|
||||
"start": 31,
|
||||
"end": 36,
|
||||
"elements": [
|
||||
{
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 32,
|
||||
"end": 33,
|
||||
"value": 0,
|
||||
"raw": "0"
|
||||
},
|
||||
"start": 32,
|
||||
"end": 33
|
||||
},
|
||||
{
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 34,
|
||||
"end": 35,
|
||||
"value": 0,
|
||||
"raw": "0"
|
||||
},
|
||||
"start": 34,
|
||||
"end": 35
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 31,
|
||||
"end": 36
|
||||
}
|
||||
],
|
||||
"optional": false
|
||||
},
|
||||
"start": 17,
|
||||
"end": 37
|
||||
},
|
||||
{
|
||||
"type": "CallExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "CallExpression",
|
||||
"start": 41,
|
||||
"end": 58,
|
||||
"callee": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 41,
|
||||
"end": 47,
|
||||
"name": "lineTo"
|
||||
},
|
||||
"start": 41,
|
||||
"end": 47
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"type": "ArrayExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "ArrayExpression",
|
||||
"start": 48,
|
||||
"end": 54,
|
||||
"elements": [
|
||||
{
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 49,
|
||||
"end": 50,
|
||||
"value": 1,
|
||||
"raw": "1"
|
||||
},
|
||||
"start": 49,
|
||||
"end": 50
|
||||
},
|
||||
{
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 52,
|
||||
"end": 53,
|
||||
"value": 1,
|
||||
"raw": "1"
|
||||
},
|
||||
"start": 52,
|
||||
"end": 53
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 48,
|
||||
"end": 54
|
||||
},
|
||||
{
|
||||
"type": "PipeSubstitution",
|
||||
"type": "PipeSubstitution",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "PipeSubstitution"
|
||||
},
|
||||
"start": 56,
|
||||
"end": 57
|
||||
}
|
||||
],
|
||||
"optional": false
|
||||
},
|
||||
"start": 41,
|
||||
"end": 58
|
||||
},
|
||||
{
|
||||
"type": "CallExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "CallExpression",
|
||||
"start": 62,
|
||||
"end": 70,
|
||||
"callee": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 62,
|
||||
"end": 67,
|
||||
"name": "close"
|
||||
},
|
||||
"start": 62,
|
||||
"end": 67
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"type": "PipeSubstitution",
|
||||
"type": "PipeSubstitution",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "PipeSubstitution"
|
||||
},
|
||||
"start": 68,
|
||||
"end": 69
|
||||
}
|
||||
],
|
||||
"optional": false
|
||||
},
|
||||
"start": 62,
|
||||
"end": 70
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 17,
|
||||
"end": 70
|
||||
}
|
||||
},
|
||||
"start": 6,
|
||||
"end": 70
|
||||
}
|
||||
],
|
||||
"kind": "const"
|
||||
},
|
||||
"start": 0,
|
||||
"end": 70
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 0,
|
||||
"end": 70
|
||||
}
|
||||
|
||||
@ -1,52 +1,74 @@
|
||||
---
|
||||
source: kcl/src/parser/parser_impl.rs
|
||||
assertion_line: 3706
|
||||
expression: actual
|
||||
---
|
||||
{
|
||||
"start": 0,
|
||||
"end": 30,
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"body": [
|
||||
{
|
||||
"type": "VariableDeclaration",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "VariableDeclaration",
|
||||
"start": 0,
|
||||
"end": 30,
|
||||
"declarations": [
|
||||
{
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "VariableDeclarator",
|
||||
"start": 6,
|
||||
"end": 30,
|
||||
"id": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 6,
|
||||
"end": 11,
|
||||
"name": "myBox"
|
||||
},
|
||||
"start": 6,
|
||||
"end": 11
|
||||
},
|
||||
"init": {
|
||||
"type": "CallExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "CallExpression",
|
||||
"start": 14,
|
||||
"end": 30,
|
||||
"callee": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 14,
|
||||
"end": 27,
|
||||
"name": "startSketchAt"
|
||||
},
|
||||
"start": 14,
|
||||
"end": 27
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"type": "Identifier",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 28,
|
||||
"end": 29,
|
||||
"name": "p"
|
||||
},
|
||||
"start": 28,
|
||||
"end": 29
|
||||
}
|
||||
],
|
||||
"optional": false
|
||||
},
|
||||
"start": 14,
|
||||
"end": 30
|
||||
}
|
||||
},
|
||||
"start": 6,
|
||||
"end": 30
|
||||
}
|
||||
],
|
||||
"kind": "const"
|
||||
},
|
||||
"start": 0,
|
||||
"end": 30
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 0,
|
||||
"end": 30
|
||||
}
|
||||
|
||||
@ -1,90 +1,127 @@
|
||||
---
|
||||
source: kcl/src/parser/parser_impl.rs
|
||||
assertion_line: 3707
|
||||
expression: actual
|
||||
---
|
||||
{
|
||||
"start": 0,
|
||||
"end": 29,
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"body": [
|
||||
{
|
||||
"type": "VariableDeclaration",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "VariableDeclaration",
|
||||
"start": 0,
|
||||
"end": 29,
|
||||
"declarations": [
|
||||
{
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "VariableDeclarator",
|
||||
"start": 6,
|
||||
"end": 29,
|
||||
"id": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 6,
|
||||
"end": 11,
|
||||
"name": "myBox"
|
||||
},
|
||||
"start": 6,
|
||||
"end": 11
|
||||
},
|
||||
"init": {
|
||||
"type": "PipeExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "PipeExpression",
|
||||
"start": 14,
|
||||
"end": 29,
|
||||
"body": [
|
||||
{
|
||||
"type": "CallExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "CallExpression",
|
||||
"start": 14,
|
||||
"end": 18,
|
||||
"callee": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 14,
|
||||
"end": 15,
|
||||
"name": "f"
|
||||
},
|
||||
"start": 14,
|
||||
"end": 15
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 16,
|
||||
"end": 17,
|
||||
"value": 1,
|
||||
"raw": "1"
|
||||
},
|
||||
"start": 16,
|
||||
"end": 17
|
||||
}
|
||||
],
|
||||
"optional": false
|
||||
},
|
||||
"start": 14,
|
||||
"end": 18
|
||||
},
|
||||
{
|
||||
"type": "CallExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "CallExpression",
|
||||
"start": 22,
|
||||
"end": 29,
|
||||
"callee": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 22,
|
||||
"end": 23,
|
||||
"name": "g"
|
||||
},
|
||||
"start": 22,
|
||||
"end": 23
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 24,
|
||||
"end": 25,
|
||||
"value": 2,
|
||||
"raw": "2"
|
||||
},
|
||||
"start": 24,
|
||||
"end": 25
|
||||
},
|
||||
{
|
||||
"type": "PipeSubstitution",
|
||||
"type": "PipeSubstitution",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "PipeSubstitution"
|
||||
},
|
||||
"start": 27,
|
||||
"end": 28
|
||||
}
|
||||
],
|
||||
"optional": false
|
||||
},
|
||||
"start": 22,
|
||||
"end": 29
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 14,
|
||||
"end": 29
|
||||
}
|
||||
},
|
||||
"start": 6,
|
||||
"end": 29
|
||||
}
|
||||
],
|
||||
"kind": "const"
|
||||
},
|
||||
"start": 0,
|
||||
"end": 29
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 0,
|
||||
"end": 29
|
||||
}
|
||||
|
||||
@ -1,104 +1,147 @@
|
||||
---
|
||||
source: kcl/src/parser/parser_impl.rs
|
||||
assertion_line: 3708
|
||||
expression: actual
|
||||
---
|
||||
{
|
||||
"start": 0,
|
||||
"end": 49,
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"body": [
|
||||
{
|
||||
"type": "VariableDeclaration",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "VariableDeclaration",
|
||||
"start": 0,
|
||||
"end": 49,
|
||||
"declarations": [
|
||||
{
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "VariableDeclarator",
|
||||
"start": 6,
|
||||
"end": 49,
|
||||
"id": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 6,
|
||||
"end": 11,
|
||||
"name": "myBox"
|
||||
},
|
||||
"start": 6,
|
||||
"end": 11
|
||||
},
|
||||
"init": {
|
||||
"type": "PipeExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "PipeExpression",
|
||||
"start": 14,
|
||||
"end": 49,
|
||||
"body": [
|
||||
{
|
||||
"type": "CallExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "CallExpression",
|
||||
"start": 14,
|
||||
"end": 30,
|
||||
"callee": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 14,
|
||||
"end": 27,
|
||||
"name": "startSketchAt"
|
||||
},
|
||||
"start": 14,
|
||||
"end": 27
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"type": "Identifier",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 28,
|
||||
"end": 29,
|
||||
"name": "p"
|
||||
},
|
||||
"start": 28,
|
||||
"end": 29
|
||||
}
|
||||
],
|
||||
"optional": false
|
||||
},
|
||||
"start": 14,
|
||||
"end": 30
|
||||
},
|
||||
{
|
||||
"type": "CallExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "CallExpression",
|
||||
"start": 34,
|
||||
"end": 49,
|
||||
"callee": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 34,
|
||||
"end": 38,
|
||||
"name": "line"
|
||||
},
|
||||
"start": 34,
|
||||
"end": 38
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"type": "ArrayExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "ArrayExpression",
|
||||
"start": 39,
|
||||
"end": 45,
|
||||
"elements": [
|
||||
{
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 40,
|
||||
"end": 41,
|
||||
"value": 0,
|
||||
"raw": "0"
|
||||
},
|
||||
"start": 40,
|
||||
"end": 41
|
||||
},
|
||||
{
|
||||
"type": "Identifier",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 43,
|
||||
"end": 44,
|
||||
"name": "l"
|
||||
},
|
||||
"start": 43,
|
||||
"end": 44
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 39,
|
||||
"end": 45
|
||||
},
|
||||
{
|
||||
"type": "PipeSubstitution",
|
||||
"type": "PipeSubstitution",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "PipeSubstitution"
|
||||
},
|
||||
"start": 47,
|
||||
"end": 48
|
||||
}
|
||||
],
|
||||
"optional": false
|
||||
},
|
||||
"start": 34,
|
||||
"end": 49
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 14,
|
||||
"end": 49
|
||||
}
|
||||
},
|
||||
"start": 6,
|
||||
"end": 49
|
||||
}
|
||||
],
|
||||
"kind": "const"
|
||||
},
|
||||
"start": 0,
|
||||
"end": 49
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 0,
|
||||
"end": 49
|
||||
}
|
||||
|
||||
@ -1,74 +1,105 @@
|
||||
---
|
||||
source: kcl/src/parser/parser_impl.rs
|
||||
assertion_line: 3709
|
||||
expression: actual
|
||||
---
|
||||
{
|
||||
"start": 0,
|
||||
"end": 22,
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"body": [
|
||||
{
|
||||
"type": "ExpressionStatement",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "ExpressionStatement",
|
||||
"start": 0,
|
||||
"end": 22,
|
||||
"expression": {
|
||||
"type": "CallExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "CallExpression",
|
||||
"start": 0,
|
||||
"end": 22,
|
||||
"callee": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 0,
|
||||
"end": 6,
|
||||
"name": "lineTo"
|
||||
},
|
||||
"start": 0,
|
||||
"end": 6
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"type": "ObjectExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "ObjectExpression",
|
||||
"start": 7,
|
||||
"end": 21,
|
||||
"properties": [
|
||||
{
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "ObjectProperty",
|
||||
"start": 9,
|
||||
"end": 19,
|
||||
"key": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 9,
|
||||
"end": 11,
|
||||
"name": "to"
|
||||
},
|
||||
"start": 9,
|
||||
"end": 11
|
||||
},
|
||||
"value": {
|
||||
"type": "ArrayExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "ArrayExpression",
|
||||
"start": 13,
|
||||
"end": 19,
|
||||
"elements": [
|
||||
{
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 14,
|
||||
"end": 15,
|
||||
"value": 0,
|
||||
"raw": "0"
|
||||
},
|
||||
"start": 14,
|
||||
"end": 15
|
||||
},
|
||||
{
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 17,
|
||||
"end": 18,
|
||||
"value": 1,
|
||||
"raw": "1"
|
||||
},
|
||||
"start": 17,
|
||||
"end": 18
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 13,
|
||||
"end": 19
|
||||
}
|
||||
},
|
||||
"start": 9,
|
||||
"end": 19
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 7,
|
||||
"end": 21
|
||||
}
|
||||
],
|
||||
"optional": false
|
||||
},
|
||||
"start": 0,
|
||||
"end": 22
|
||||
}
|
||||
},
|
||||
"start": 0,
|
||||
"end": 22
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 0,
|
||||
"end": 22
|
||||
}
|
||||
|
||||
@ -1,109 +1,155 @@
|
||||
---
|
||||
source: kcl/src/parser/parser_impl.rs
|
||||
assertion_line: 3710
|
||||
expression: actual
|
||||
---
|
||||
{
|
||||
"start": 0,
|
||||
"end": 36,
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"body": [
|
||||
{
|
||||
"type": "ExpressionStatement",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "ExpressionStatement",
|
||||
"start": 0,
|
||||
"end": 36,
|
||||
"expression": {
|
||||
"type": "CallExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "CallExpression",
|
||||
"start": 0,
|
||||
"end": 36,
|
||||
"callee": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 0,
|
||||
"end": 6,
|
||||
"name": "lineTo"
|
||||
},
|
||||
"start": 0,
|
||||
"end": 6
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"type": "ObjectExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "ObjectExpression",
|
||||
"start": 7,
|
||||
"end": 35,
|
||||
"properties": [
|
||||
{
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "ObjectProperty",
|
||||
"start": 9,
|
||||
"end": 19,
|
||||
"key": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 9,
|
||||
"end": 11,
|
||||
"name": "to"
|
||||
},
|
||||
"start": 9,
|
||||
"end": 11
|
||||
},
|
||||
"value": {
|
||||
"type": "ArrayExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "ArrayExpression",
|
||||
"start": 13,
|
||||
"end": 19,
|
||||
"elements": [
|
||||
{
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 14,
|
||||
"end": 15,
|
||||
"value": 0,
|
||||
"raw": "0"
|
||||
},
|
||||
{
|
||||
"type": "Literal",
|
||||
"type": "Literal",
|
||||
"start": 17,
|
||||
"end": 18,
|
||||
"value": 1,
|
||||
"raw": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
"start": 14,
|
||||
"end": 15
|
||||
},
|
||||
{
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"value": 1,
|
||||
"raw": "1"
|
||||
},
|
||||
"start": 17,
|
||||
"end": 18
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 13,
|
||||
"end": 19
|
||||
}
|
||||
},
|
||||
"start": 9,
|
||||
"end": 19
|
||||
},
|
||||
{
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "ObjectProperty",
|
||||
"start": 21,
|
||||
"end": 33,
|
||||
"key": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 21,
|
||||
"end": 25,
|
||||
"name": "from"
|
||||
},
|
||||
"start": 21,
|
||||
"end": 25
|
||||
},
|
||||
"value": {
|
||||
"type": "ArrayExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "ArrayExpression",
|
||||
"start": 27,
|
||||
"end": 33,
|
||||
"elements": [
|
||||
{
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 28,
|
||||
"end": 29,
|
||||
"value": 3,
|
||||
"raw": "3"
|
||||
},
|
||||
"start": 28,
|
||||
"end": 29
|
||||
},
|
||||
{
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 31,
|
||||
"end": 32,
|
||||
"value": 3,
|
||||
"raw": "3"
|
||||
},
|
||||
"start": 31,
|
||||
"end": 32
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 27,
|
||||
"end": 33
|
||||
}
|
||||
},
|
||||
"start": 21,
|
||||
"end": 33
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 7,
|
||||
"end": 35
|
||||
}
|
||||
],
|
||||
"optional": false
|
||||
},
|
||||
"start": 0,
|
||||
"end": 36
|
||||
}
|
||||
},
|
||||
"start": 0,
|
||||
"end": 36
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 0,
|
||||
"end": 36
|
||||
}
|
||||
|
||||
@ -1,74 +1,105 @@
|
||||
---
|
||||
source: kcl/src/parser/parser_impl.rs
|
||||
assertion_line: 3711
|
||||
expression: actual
|
||||
---
|
||||
{
|
||||
"start": 0,
|
||||
"end": 19,
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"body": [
|
||||
{
|
||||
"type": "ExpressionStatement",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "ExpressionStatement",
|
||||
"start": 0,
|
||||
"end": 19,
|
||||
"expression": {
|
||||
"type": "CallExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "CallExpression",
|
||||
"start": 0,
|
||||
"end": 19,
|
||||
"callee": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 0,
|
||||
"end": 6,
|
||||
"name": "lineTo"
|
||||
},
|
||||
"start": 0,
|
||||
"end": 6
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"type": "ObjectExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "ObjectExpression",
|
||||
"start": 7,
|
||||
"end": 18,
|
||||
"properties": [
|
||||
{
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "ObjectProperty",
|
||||
"start": 8,
|
||||
"end": 17,
|
||||
"key": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 8,
|
||||
"end": 10,
|
||||
"name": "to"
|
||||
},
|
||||
"start": 8,
|
||||
"end": 10
|
||||
},
|
||||
"value": {
|
||||
"type": "ArrayExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "ArrayExpression",
|
||||
"start": 11,
|
||||
"end": 17,
|
||||
"elements": [
|
||||
{
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 12,
|
||||
"end": 13,
|
||||
"value": 0,
|
||||
"raw": "0"
|
||||
},
|
||||
"start": 12,
|
||||
"end": 13
|
||||
},
|
||||
{
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 15,
|
||||
"end": 16,
|
||||
"value": 1,
|
||||
"raw": "1"
|
||||
},
|
||||
"start": 15,
|
||||
"end": 16
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 11,
|
||||
"end": 17
|
||||
}
|
||||
},
|
||||
"start": 8,
|
||||
"end": 17
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 7,
|
||||
"end": 18
|
||||
}
|
||||
],
|
||||
"optional": false
|
||||
},
|
||||
"start": 0,
|
||||
"end": 19
|
||||
}
|
||||
},
|
||||
"start": 0,
|
||||
"end": 19
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 0,
|
||||
"end": 19
|
||||
}
|
||||
|
||||
@ -1,109 +1,155 @@
|
||||
---
|
||||
source: kcl/src/parser/parser_impl.rs
|
||||
assertion_line: 3712
|
||||
expression: actual
|
||||
---
|
||||
{
|
||||
"start": 0,
|
||||
"end": 35,
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"body": [
|
||||
{
|
||||
"type": "ExpressionStatement",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "ExpressionStatement",
|
||||
"start": 0,
|
||||
"end": 35,
|
||||
"expression": {
|
||||
"type": "CallExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "CallExpression",
|
||||
"start": 0,
|
||||
"end": 35,
|
||||
"callee": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 0,
|
||||
"end": 6,
|
||||
"name": "lineTo"
|
||||
},
|
||||
"start": 0,
|
||||
"end": 6
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"type": "ObjectExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "ObjectExpression",
|
||||
"start": 7,
|
||||
"end": 34,
|
||||
"properties": [
|
||||
{
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "ObjectProperty",
|
||||
"start": 9,
|
||||
"end": 19,
|
||||
"key": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 9,
|
||||
"end": 11,
|
||||
"name": "to"
|
||||
},
|
||||
"start": 9,
|
||||
"end": 11
|
||||
},
|
||||
"value": {
|
||||
"type": "ArrayExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "ArrayExpression",
|
||||
"start": 13,
|
||||
"end": 19,
|
||||
"elements": [
|
||||
{
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 14,
|
||||
"end": 15,
|
||||
"value": 0,
|
||||
"raw": "0"
|
||||
},
|
||||
{
|
||||
"type": "Literal",
|
||||
"type": "Literal",
|
||||
"start": 17,
|
||||
"end": 18,
|
||||
"value": 1,
|
||||
"raw": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
"start": 14,
|
||||
"end": 15
|
||||
},
|
||||
{
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"value": 1,
|
||||
"raw": "1"
|
||||
},
|
||||
"start": 17,
|
||||
"end": 18
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 13,
|
||||
"end": 19
|
||||
}
|
||||
},
|
||||
"start": 9,
|
||||
"end": 19
|
||||
},
|
||||
{
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "ObjectProperty",
|
||||
"start": 21,
|
||||
"end": 33,
|
||||
"key": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 21,
|
||||
"end": 25,
|
||||
"name": "from"
|
||||
},
|
||||
"start": 21,
|
||||
"end": 25
|
||||
},
|
||||
"value": {
|
||||
"type": "ArrayExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "ArrayExpression",
|
||||
"start": 27,
|
||||
"end": 33,
|
||||
"elements": [
|
||||
{
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 28,
|
||||
"end": 29,
|
||||
"value": 3,
|
||||
"raw": "3"
|
||||
},
|
||||
"start": 28,
|
||||
"end": 29
|
||||
},
|
||||
{
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 31,
|
||||
"end": 32,
|
||||
"value": 3,
|
||||
"raw": "3"
|
||||
},
|
||||
"start": 31,
|
||||
"end": 32
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 27,
|
||||
"end": 33
|
||||
}
|
||||
},
|
||||
"start": 21,
|
||||
"end": 33
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 7,
|
||||
"end": 34
|
||||
}
|
||||
],
|
||||
"optional": false
|
||||
},
|
||||
"start": 0,
|
||||
"end": 35
|
||||
}
|
||||
},
|
||||
"start": 0,
|
||||
"end": 35
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 0,
|
||||
"end": 35
|
||||
}
|
||||
|
||||
@ -1,109 +1,155 @@
|
||||
---
|
||||
source: kcl/src/parser/parser_impl.rs
|
||||
assertion_line: 3713
|
||||
expression: actual
|
||||
---
|
||||
{
|
||||
"start": 0,
|
||||
"end": 35,
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"body": [
|
||||
{
|
||||
"type": "ExpressionStatement",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "ExpressionStatement",
|
||||
"start": 0,
|
||||
"end": 35,
|
||||
"expression": {
|
||||
"type": "CallExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "CallExpression",
|
||||
"start": 0,
|
||||
"end": 35,
|
||||
"callee": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 0,
|
||||
"end": 6,
|
||||
"name": "lineTo"
|
||||
},
|
||||
"start": 0,
|
||||
"end": 6
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"type": "ObjectExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "ObjectExpression",
|
||||
"start": 7,
|
||||
"end": 34,
|
||||
"properties": [
|
||||
{
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "ObjectProperty",
|
||||
"start": 9,
|
||||
"end": 19,
|
||||
"key": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 9,
|
||||
"end": 11,
|
||||
"name": "to"
|
||||
},
|
||||
"start": 9,
|
||||
"end": 11
|
||||
},
|
||||
"value": {
|
||||
"type": "ArrayExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "ArrayExpression",
|
||||
"start": 13,
|
||||
"end": 19,
|
||||
"elements": [
|
||||
{
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 14,
|
||||
"end": 15,
|
||||
"value": 0,
|
||||
"raw": "0"
|
||||
},
|
||||
{
|
||||
"type": "Literal",
|
||||
"type": "Literal",
|
||||
"start": 17,
|
||||
"end": 18,
|
||||
"value": 1,
|
||||
"raw": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
"start": 14,
|
||||
"end": 15
|
||||
},
|
||||
{
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"value": 1,
|
||||
"raw": "1"
|
||||
},
|
||||
"start": 17,
|
||||
"end": 18
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 13,
|
||||
"end": 19
|
||||
}
|
||||
},
|
||||
"start": 9,
|
||||
"end": 19
|
||||
},
|
||||
{
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "ObjectProperty",
|
||||
"start": 20,
|
||||
"end": 32,
|
||||
"key": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 20,
|
||||
"end": 24,
|
||||
"name": "from"
|
||||
},
|
||||
"start": 20,
|
||||
"end": 24
|
||||
},
|
||||
"value": {
|
||||
"type": "ArrayExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "ArrayExpression",
|
||||
"start": 26,
|
||||
"end": 32,
|
||||
"elements": [
|
||||
{
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 27,
|
||||
"end": 28,
|
||||
"value": 3,
|
||||
"raw": "3"
|
||||
},
|
||||
"start": 27,
|
||||
"end": 28
|
||||
},
|
||||
{
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 30,
|
||||
"end": 31,
|
||||
"value": 3,
|
||||
"raw": "3"
|
||||
},
|
||||
"start": 30,
|
||||
"end": 31
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 26,
|
||||
"end": 32
|
||||
}
|
||||
},
|
||||
"start": 20,
|
||||
"end": 32
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 7,
|
||||
"end": 34
|
||||
}
|
||||
],
|
||||
"optional": false
|
||||
},
|
||||
"start": 0,
|
||||
"end": 35
|
||||
}
|
||||
},
|
||||
"start": 0,
|
||||
"end": 35
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 0,
|
||||
"end": 35
|
||||
}
|
||||
|
||||
@ -1,69 +1,97 @@
|
||||
---
|
||||
source: kcl/src/parser/parser_impl.rs
|
||||
assertion_line: 3714
|
||||
expression: actual
|
||||
---
|
||||
{
|
||||
"start": 0,
|
||||
"end": 37,
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"body": [
|
||||
{
|
||||
"type": "VariableDeclaration",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "VariableDeclaration",
|
||||
"start": 0,
|
||||
"end": 37,
|
||||
"declarations": [
|
||||
{
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "VariableDeclarator",
|
||||
"start": 6,
|
||||
"end": 37,
|
||||
"id": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 6,
|
||||
"end": 14,
|
||||
"name": "mySketch"
|
||||
},
|
||||
"start": 6,
|
||||
"end": 14
|
||||
},
|
||||
"init": {
|
||||
"type": "CallExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "CallExpression",
|
||||
"start": 17,
|
||||
"end": 37,
|
||||
"callee": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 17,
|
||||
"end": 30,
|
||||
"name": "startSketchAt"
|
||||
},
|
||||
"start": 17,
|
||||
"end": 30
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"type": "ArrayExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "ArrayExpression",
|
||||
"start": 31,
|
||||
"end": 36,
|
||||
"elements": [
|
||||
{
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 32,
|
||||
"end": 33,
|
||||
"value": 0,
|
||||
"raw": "0"
|
||||
},
|
||||
"start": 32,
|
||||
"end": 33
|
||||
},
|
||||
{
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 34,
|
||||
"end": 35,
|
||||
"value": 0,
|
||||
"raw": "0"
|
||||
},
|
||||
"start": 34,
|
||||
"end": 35
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 31,
|
||||
"end": 36
|
||||
}
|
||||
],
|
||||
"optional": false
|
||||
},
|
||||
"start": 17,
|
||||
"end": 37
|
||||
}
|
||||
},
|
||||
"start": 6,
|
||||
"end": 37
|
||||
}
|
||||
],
|
||||
"kind": "const"
|
||||
},
|
||||
"start": 0,
|
||||
"end": 37
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 0,
|
||||
"end": 37
|
||||
}
|
||||
|
||||
@ -1,54 +1,76 @@
|
||||
---
|
||||
source: kcl/src/parser/parser_impl.rs
|
||||
assertion_line: 3715
|
||||
expression: actual
|
||||
---
|
||||
{
|
||||
"start": 0,
|
||||
"end": 28,
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"body": [
|
||||
{
|
||||
"type": "ExpressionStatement",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "ExpressionStatement",
|
||||
"start": 0,
|
||||
"end": 28,
|
||||
"expression": {
|
||||
"type": "CallExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "CallExpression",
|
||||
"start": 0,
|
||||
"end": 28,
|
||||
"callee": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 0,
|
||||
"end": 3,
|
||||
"name": "log"
|
||||
},
|
||||
"start": 0,
|
||||
"end": 3
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 4,
|
||||
"end": 5,
|
||||
"value": 5,
|
||||
"raw": "5"
|
||||
},
|
||||
"start": 4,
|
||||
"end": 5
|
||||
},
|
||||
{
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 7,
|
||||
"end": 14,
|
||||
"value": "hello",
|
||||
"raw": "\"hello\""
|
||||
},
|
||||
"start": 7,
|
||||
"end": 14
|
||||
},
|
||||
{
|
||||
"type": "Identifier",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 16,
|
||||
"end": 27,
|
||||
"name": "aIdentifier"
|
||||
},
|
||||
"start": 16,
|
||||
"end": 27
|
||||
}
|
||||
],
|
||||
"optional": false
|
||||
},
|
||||
"start": 0,
|
||||
"end": 28
|
||||
}
|
||||
},
|
||||
"start": 0,
|
||||
"end": 28
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 0,
|
||||
"end": 28
|
||||
}
|
||||
|
||||
@ -1,39 +1,55 @@
|
||||
---
|
||||
source: kcl/src/parser/parser_impl.rs
|
||||
assertion_line: 3716
|
||||
expression: actual
|
||||
---
|
||||
{
|
||||
"start": 0,
|
||||
"end": 7,
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"body": [
|
||||
{
|
||||
"type": "ExpressionStatement",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "ExpressionStatement",
|
||||
"start": 0,
|
||||
"end": 7,
|
||||
"expression": {
|
||||
"type": "BinaryExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "BinaryExpression",
|
||||
"start": 0,
|
||||
"end": 7,
|
||||
"operator": "+",
|
||||
"left": {
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 0,
|
||||
"end": 1,
|
||||
"value": 5,
|
||||
"raw": "5"
|
||||
},
|
||||
"start": 0,
|
||||
"end": 1
|
||||
},
|
||||
"right": {
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 4,
|
||||
"end": 7,
|
||||
"value": "a",
|
||||
"raw": "\"a\""
|
||||
},
|
||||
"start": 4,
|
||||
"end": 7
|
||||
}
|
||||
},
|
||||
"start": 0,
|
||||
"end": 7
|
||||
}
|
||||
},
|
||||
"start": 0,
|
||||
"end": 7
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 0,
|
||||
"end": 7
|
||||
}
|
||||
|
||||
@ -1,60 +1,85 @@
|
||||
---
|
||||
source: kcl/src/parser/parser_impl.rs
|
||||
assertion_line: 3717
|
||||
expression: actual
|
||||
---
|
||||
{
|
||||
"start": 0,
|
||||
"end": 15,
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"body": [
|
||||
{
|
||||
"type": "ExpressionStatement",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "ExpressionStatement",
|
||||
"start": 0,
|
||||
"end": 15,
|
||||
"expression": {
|
||||
"type": "CallExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "CallExpression",
|
||||
"start": 0,
|
||||
"end": 15,
|
||||
"callee": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 0,
|
||||
"end": 4,
|
||||
"name": "line"
|
||||
},
|
||||
"start": 0,
|
||||
"end": 4
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"type": "ArrayExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "ArrayExpression",
|
||||
"start": 5,
|
||||
"end": 11,
|
||||
"elements": [
|
||||
{
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 6,
|
||||
"end": 7,
|
||||
"value": 0,
|
||||
"raw": "0"
|
||||
},
|
||||
"start": 6,
|
||||
"end": 7
|
||||
},
|
||||
{
|
||||
"type": "Identifier",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 9,
|
||||
"end": 10,
|
||||
"name": "l"
|
||||
},
|
||||
"start": 9,
|
||||
"end": 10
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 5,
|
||||
"end": 11
|
||||
},
|
||||
{
|
||||
"type": "PipeSubstitution",
|
||||
"type": "PipeSubstitution",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "PipeSubstitution"
|
||||
},
|
||||
"start": 13,
|
||||
"end": 14
|
||||
}
|
||||
],
|
||||
"optional": false
|
||||
},
|
||||
"start": 0,
|
||||
"end": 15
|
||||
}
|
||||
},
|
||||
"start": 0,
|
||||
"end": 15
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 0,
|
||||
"end": 15
|
||||
}
|
||||
|
||||
@ -1,173 +1,246 @@
|
||||
---
|
||||
source: kcl/src/parser/parser_impl.rs
|
||||
assertion_line: 3718
|
||||
expression: actual
|
||||
---
|
||||
{
|
||||
"start": 0,
|
||||
"end": 108,
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"body": [
|
||||
{
|
||||
"type": "VariableDeclaration",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "VariableDeclaration",
|
||||
"start": 0,
|
||||
"end": 107,
|
||||
"declarations": [
|
||||
{
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "VariableDeclarator",
|
||||
"start": 6,
|
||||
"end": 107,
|
||||
"id": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 6,
|
||||
"end": 14,
|
||||
"name": "cylinder"
|
||||
},
|
||||
"start": 6,
|
||||
"end": 14
|
||||
},
|
||||
"init": {
|
||||
"type": "PipeExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "PipeExpression",
|
||||
"start": 17,
|
||||
"end": 107,
|
||||
"body": [
|
||||
{
|
||||
"type": "CallExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "CallExpression",
|
||||
"start": 17,
|
||||
"end": 36,
|
||||
"callee": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 17,
|
||||
"end": 30,
|
||||
"name": "startSketchOn"
|
||||
},
|
||||
"start": 17,
|
||||
"end": 30
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 31,
|
||||
"end": 35,
|
||||
"value": "XY",
|
||||
"raw": "'XY'"
|
||||
},
|
||||
"start": 31,
|
||||
"end": 35
|
||||
}
|
||||
],
|
||||
"optional": false
|
||||
},
|
||||
"start": 17,
|
||||
"end": 36
|
||||
},
|
||||
{
|
||||
"type": "CallExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "CallExpression",
|
||||
"start": 44,
|
||||
"end": 85,
|
||||
"callee": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 44,
|
||||
"end": 50,
|
||||
"name": "circle"
|
||||
},
|
||||
"start": 44,
|
||||
"end": 50
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"type": "ObjectExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "ObjectExpression",
|
||||
"start": 51,
|
||||
"end": 81,
|
||||
"properties": [
|
||||
{
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "ObjectProperty",
|
||||
"start": 53,
|
||||
"end": 67,
|
||||
"key": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 53,
|
||||
"end": 59,
|
||||
"name": "center"
|
||||
},
|
||||
"start": 53,
|
||||
"end": 59
|
||||
},
|
||||
"value": {
|
||||
"type": "ArrayExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "ArrayExpression",
|
||||
"start": 61,
|
||||
"end": 67,
|
||||
"elements": [
|
||||
{
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 62,
|
||||
"end": 63,
|
||||
"value": 0,
|
||||
"raw": "0"
|
||||
},
|
||||
"start": 62,
|
||||
"end": 63
|
||||
},
|
||||
{
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 65,
|
||||
"end": 66,
|
||||
"value": 0,
|
||||
"raw": "0"
|
||||
},
|
||||
"start": 65,
|
||||
"end": 66
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 61,
|
||||
"end": 67
|
||||
}
|
||||
},
|
||||
"start": 53,
|
||||
"end": 67
|
||||
},
|
||||
{
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "ObjectProperty",
|
||||
"start": 69,
|
||||
"end": 79,
|
||||
"key": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 69,
|
||||
"end": 75,
|
||||
"name": "radius"
|
||||
},
|
||||
"start": 69,
|
||||
"end": 75
|
||||
},
|
||||
"value": {
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 77,
|
||||
"end": 79,
|
||||
"value": 22,
|
||||
"raw": "22"
|
||||
},
|
||||
"start": 77,
|
||||
"end": 79
|
||||
}
|
||||
},
|
||||
"start": 69,
|
||||
"end": 79
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 51,
|
||||
"end": 81
|
||||
},
|
||||
{
|
||||
"type": "PipeSubstitution",
|
||||
"type": "PipeSubstitution",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "PipeSubstitution"
|
||||
},
|
||||
"start": 83,
|
||||
"end": 84
|
||||
}
|
||||
],
|
||||
"optional": false
|
||||
},
|
||||
"start": 44,
|
||||
"end": 85
|
||||
},
|
||||
{
|
||||
"type": "CallExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "CallExpression",
|
||||
"start": 93,
|
||||
"end": 107,
|
||||
"callee": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 93,
|
||||
"end": 100,
|
||||
"name": "extrude"
|
||||
},
|
||||
"start": 93,
|
||||
"end": 100
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 101,
|
||||
"end": 103,
|
||||
"value": 14,
|
||||
"raw": "14"
|
||||
},
|
||||
"start": 101,
|
||||
"end": 103
|
||||
},
|
||||
{
|
||||
"type": "PipeSubstitution",
|
||||
"type": "PipeSubstitution",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "PipeSubstitution"
|
||||
},
|
||||
"start": 105,
|
||||
"end": 106
|
||||
}
|
||||
],
|
||||
"optional": false
|
||||
},
|
||||
"start": 93,
|
||||
"end": 107
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 17,
|
||||
"end": 107
|
||||
}
|
||||
},
|
||||
"start": 6,
|
||||
"end": 107
|
||||
}
|
||||
],
|
||||
"kind": "const"
|
||||
},
|
||||
"start": 0,
|
||||
"end": 107
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 0,
|
||||
"end": 108
|
||||
}
|
||||
|
||||
@ -1,90 +1,127 @@
|
||||
---
|
||||
source: kcl/src/parser/parser_impl.rs
|
||||
assertion_line: 3719
|
||||
expression: actual
|
||||
---
|
||||
{
|
||||
"start": 0,
|
||||
"end": 49,
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"body": [
|
||||
{
|
||||
"type": "VariableDeclaration",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "VariableDeclaration",
|
||||
"start": 0,
|
||||
"end": 49,
|
||||
"declarations": [
|
||||
{
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "VariableDeclarator",
|
||||
"start": 3,
|
||||
"end": 49,
|
||||
"id": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 3,
|
||||
"end": 4,
|
||||
"name": "f"
|
||||
},
|
||||
"start": 3,
|
||||
"end": 4
|
||||
},
|
||||
"init": {
|
||||
"type": "FunctionExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "FunctionExpression",
|
||||
"start": 7,
|
||||
"end": 49,
|
||||
"params": [
|
||||
{
|
||||
"type": "Parameter",
|
||||
"identifier": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 8,
|
||||
"end": 13,
|
||||
"name": "angle"
|
||||
},
|
||||
"start": 8,
|
||||
"end": 13
|
||||
},
|
||||
"optional": true
|
||||
}
|
||||
],
|
||||
"body": {
|
||||
"start": 19,
|
||||
"end": 49,
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"body": [
|
||||
{
|
||||
"type": "ReturnStatement",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "ReturnStatement",
|
||||
"start": 21,
|
||||
"end": 47,
|
||||
"argument": {
|
||||
"type": "CallExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "CallExpression",
|
||||
"start": 28,
|
||||
"end": 47,
|
||||
"callee": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 28,
|
||||
"end": 35,
|
||||
"name": "default"
|
||||
},
|
||||
"start": 28,
|
||||
"end": 35
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"type": "Identifier",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 36,
|
||||
"end": 41,
|
||||
"name": "angle"
|
||||
},
|
||||
"start": 36,
|
||||
"end": 41
|
||||
},
|
||||
{
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 43,
|
||||
"end": 46,
|
||||
"value": 360,
|
||||
"raw": "360"
|
||||
},
|
||||
"start": 43,
|
||||
"end": 46
|
||||
}
|
||||
],
|
||||
"optional": false
|
||||
},
|
||||
"start": 28,
|
||||
"end": 47
|
||||
}
|
||||
},
|
||||
"start": 21,
|
||||
"end": 47
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 19,
|
||||
"end": 49
|
||||
}
|
||||
},
|
||||
"start": 7,
|
||||
"end": 49
|
||||
}
|
||||
},
|
||||
"start": 3,
|
||||
"end": 49
|
||||
}
|
||||
],
|
||||
"kind": "fn"
|
||||
},
|
||||
"start": 0,
|
||||
"end": 49
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 0,
|
||||
"end": 49
|
||||
}
|
||||
|
||||
@ -1,83 +1,116 @@
|
||||
---
|
||||
source: kcl/src/parser/parser_impl.rs
|
||||
assertion_line: 3720
|
||||
expression: actual
|
||||
---
|
||||
{
|
||||
"start": 0,
|
||||
"end": 91,
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"body": [
|
||||
{
|
||||
"type": "VariableDeclaration",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "VariableDeclaration",
|
||||
"start": 0,
|
||||
"end": 91,
|
||||
"declarations": [
|
||||
{
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "VariableDeclarator",
|
||||
"start": 4,
|
||||
"end": 91,
|
||||
"id": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 4,
|
||||
"end": 11,
|
||||
"name": "numbers"
|
||||
},
|
||||
"start": 4,
|
||||
"end": 11
|
||||
},
|
||||
"init": {
|
||||
"type": "ArrayExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "ArrayExpression",
|
||||
"start": 14,
|
||||
"end": 91,
|
||||
"elements": [
|
||||
{
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 28,
|
||||
"end": 29,
|
||||
"value": 1,
|
||||
"raw": "1"
|
||||
},
|
||||
"start": 28,
|
||||
"end": 29
|
||||
},
|
||||
{
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 79,
|
||||
"end": 80,
|
||||
"value": 3,
|
||||
"raw": "3"
|
||||
},
|
||||
"start": 79,
|
||||
"end": 80
|
||||
}
|
||||
],
|
||||
"nonCodeMeta": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"nonCodeNodes": {
|
||||
"1": [
|
||||
{
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "NonCodeNode",
|
||||
"start": 43,
|
||||
"end": 48,
|
||||
"value": {
|
||||
"type": "blockComment",
|
||||
"value": "A,",
|
||||
"style": "line"
|
||||
}
|
||||
},
|
||||
"start": 43,
|
||||
"end": 48
|
||||
}
|
||||
],
|
||||
"2": [
|
||||
{
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "NonCodeNode",
|
||||
"start": 61,
|
||||
"end": 66,
|
||||
"value": {
|
||||
"type": "blockComment",
|
||||
"value": "B,",
|
||||
"style": "line"
|
||||
}
|
||||
},
|
||||
"start": 61,
|
||||
"end": 66
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": []
|
||||
},
|
||||
"start": 0,
|
||||
"end": 0
|
||||
}
|
||||
},
|
||||
"start": 14,
|
||||
"end": 91
|
||||
}
|
||||
},
|
||||
"start": 4,
|
||||
"end": 91
|
||||
}
|
||||
],
|
||||
"kind": "const"
|
||||
},
|
||||
"start": 0,
|
||||
"end": 91
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 0,
|
||||
"end": 91
|
||||
}
|
||||
|
||||
@ -1,83 +1,116 @@
|
||||
---
|
||||
source: kcl/src/parser/parser_impl.rs
|
||||
assertion_line: 3729
|
||||
expression: actual
|
||||
---
|
||||
{
|
||||
"start": 0,
|
||||
"end": 91,
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"body": [
|
||||
{
|
||||
"type": "VariableDeclaration",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "VariableDeclaration",
|
||||
"start": 0,
|
||||
"end": 91,
|
||||
"declarations": [
|
||||
{
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "VariableDeclarator",
|
||||
"start": 4,
|
||||
"end": 91,
|
||||
"id": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 4,
|
||||
"end": 11,
|
||||
"name": "numbers"
|
||||
},
|
||||
"start": 4,
|
||||
"end": 11
|
||||
},
|
||||
"init": {
|
||||
"type": "ArrayExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "ArrayExpression",
|
||||
"start": 14,
|
||||
"end": 91,
|
||||
"elements": [
|
||||
{
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 28,
|
||||
"end": 29,
|
||||
"value": 1,
|
||||
"raw": "1"
|
||||
},
|
||||
"start": 28,
|
||||
"end": 29
|
||||
},
|
||||
{
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 43,
|
||||
"end": 44,
|
||||
"value": 2,
|
||||
"raw": "2"
|
||||
},
|
||||
"start": 43,
|
||||
"end": 44
|
||||
}
|
||||
],
|
||||
"nonCodeMeta": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"nonCodeNodes": {
|
||||
"2": [
|
||||
{
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "NonCodeNode",
|
||||
"start": 58,
|
||||
"end": 63,
|
||||
"value": {
|
||||
"type": "blockComment",
|
||||
"value": "A,",
|
||||
"style": "line"
|
||||
}
|
||||
},
|
||||
"start": 58,
|
||||
"end": 63
|
||||
}
|
||||
],
|
||||
"3": [
|
||||
{
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "NonCodeNode",
|
||||
"start": 76,
|
||||
"end": 81,
|
||||
"value": {
|
||||
"type": "blockComment",
|
||||
"value": "B,",
|
||||
"style": "line"
|
||||
}
|
||||
},
|
||||
"start": 76,
|
||||
"end": 81
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": []
|
||||
},
|
||||
"start": 0,
|
||||
"end": 0
|
||||
}
|
||||
},
|
||||
"start": 14,
|
||||
"end": 91
|
||||
}
|
||||
},
|
||||
"start": 4,
|
||||
"end": 91
|
||||
}
|
||||
],
|
||||
"kind": "const"
|
||||
},
|
||||
"start": 0,
|
||||
"end": 91
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 0,
|
||||
"end": 91
|
||||
}
|
||||
|
||||
@ -1,93 +1,135 @@
|
||||
---
|
||||
source: kcl/src/parser/parser_impl.rs
|
||||
assertion_line: 3738
|
||||
expression: actual
|
||||
---
|
||||
{
|
||||
"start": 0,
|
||||
"end": 80,
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"body": [
|
||||
{
|
||||
"type": "VariableDeclaration",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "VariableDeclaration",
|
||||
"start": 0,
|
||||
"end": 80,
|
||||
"declarations": [
|
||||
{
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "VariableDeclarator",
|
||||
"start": 4,
|
||||
"end": 80,
|
||||
"id": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 4,
|
||||
"end": 9,
|
||||
"name": "props"
|
||||
},
|
||||
"start": 4,
|
||||
"end": 9
|
||||
},
|
||||
"init": {
|
||||
"type": "ObjectExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "ObjectExpression",
|
||||
"start": 12,
|
||||
"end": 80,
|
||||
"properties": [
|
||||
{
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "ObjectProperty",
|
||||
"start": 26,
|
||||
"end": 30,
|
||||
"key": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 26,
|
||||
"end": 27,
|
||||
"name": "a"
|
||||
},
|
||||
"start": 26,
|
||||
"end": 27
|
||||
},
|
||||
"value": {
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 29,
|
||||
"end": 30,
|
||||
"value": 1,
|
||||
"raw": "1"
|
||||
},
|
||||
"start": 29,
|
||||
"end": 30
|
||||
}
|
||||
},
|
||||
"start": 26,
|
||||
"end": 30
|
||||
},
|
||||
{
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "ObjectProperty",
|
||||
"start": 65,
|
||||
"end": 69,
|
||||
"key": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 65,
|
||||
"end": 66,
|
||||
"name": "c"
|
||||
},
|
||||
"start": 65,
|
||||
"end": 66
|
||||
},
|
||||
"value": {
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 68,
|
||||
"end": 69,
|
||||
"value": 3,
|
||||
"raw": "3"
|
||||
},
|
||||
"start": 68,
|
||||
"end": 69
|
||||
}
|
||||
},
|
||||
"start": 65,
|
||||
"end": 69
|
||||
}
|
||||
],
|
||||
"nonCodeMeta": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"nonCodeNodes": {
|
||||
"1": [
|
||||
{
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "NonCodeNode",
|
||||
"start": 44,
|
||||
"end": 52,
|
||||
"value": {
|
||||
"type": "blockComment",
|
||||
"value": "b: 2,",
|
||||
"style": "line"
|
||||
}
|
||||
},
|
||||
"start": 44,
|
||||
"end": 52
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": []
|
||||
},
|
||||
"start": 0,
|
||||
"end": 0
|
||||
}
|
||||
},
|
||||
"start": 12,
|
||||
"end": 80
|
||||
}
|
||||
},
|
||||
"start": 4,
|
||||
"end": 80
|
||||
}
|
||||
],
|
||||
"kind": "const"
|
||||
},
|
||||
"start": 0,
|
||||
"end": 80
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 0,
|
||||
"end": 80
|
||||
}
|
||||
|
||||
@ -1,93 +1,135 @@
|
||||
---
|
||||
source: kcl/src/parser/parser_impl.rs
|
||||
assertion_line: 3746
|
||||
expression: actual
|
||||
---
|
||||
{
|
||||
"start": 0,
|
||||
"end": 79,
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"body": [
|
||||
{
|
||||
"type": "VariableDeclaration",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "VariableDeclaration",
|
||||
"start": 0,
|
||||
"end": 79,
|
||||
"declarations": [
|
||||
{
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "VariableDeclarator",
|
||||
"start": 4,
|
||||
"end": 79,
|
||||
"id": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 4,
|
||||
"end": 9,
|
||||
"name": "props"
|
||||
},
|
||||
"start": 4,
|
||||
"end": 9
|
||||
},
|
||||
"init": {
|
||||
"type": "ObjectExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "ObjectExpression",
|
||||
"start": 12,
|
||||
"end": 79,
|
||||
"properties": [
|
||||
{
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "ObjectProperty",
|
||||
"start": 26,
|
||||
"end": 30,
|
||||
"key": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 26,
|
||||
"end": 27,
|
||||
"name": "a"
|
||||
},
|
||||
"start": 26,
|
||||
"end": 27
|
||||
},
|
||||
"value": {
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 29,
|
||||
"end": 30,
|
||||
"value": 1,
|
||||
"raw": "1"
|
||||
},
|
||||
"start": 29,
|
||||
"end": 30
|
||||
}
|
||||
},
|
||||
"start": 26,
|
||||
"end": 30
|
||||
},
|
||||
{
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "ObjectProperty",
|
||||
"start": 65,
|
||||
"end": 69,
|
||||
"key": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 65,
|
||||
"end": 66,
|
||||
"name": "c"
|
||||
},
|
||||
"start": 65,
|
||||
"end": 66
|
||||
},
|
||||
"value": {
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 68,
|
||||
"end": 69,
|
||||
"value": 3,
|
||||
"raw": "3"
|
||||
},
|
||||
"start": 68,
|
||||
"end": 69
|
||||
}
|
||||
},
|
||||
"start": 65,
|
||||
"end": 69
|
||||
}
|
||||
],
|
||||
"nonCodeMeta": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"nonCodeNodes": {
|
||||
"1": [
|
||||
{
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "NonCodeNode",
|
||||
"start": 44,
|
||||
"end": 52,
|
||||
"value": {
|
||||
"type": "blockComment",
|
||||
"value": "b: 2,",
|
||||
"style": "line"
|
||||
}
|
||||
},
|
||||
"start": 44,
|
||||
"end": 52
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": []
|
||||
},
|
||||
"start": 0,
|
||||
"end": 0
|
||||
}
|
||||
},
|
||||
"start": 12,
|
||||
"end": 79
|
||||
}
|
||||
},
|
||||
"start": 4,
|
||||
"end": 79
|
||||
}
|
||||
],
|
||||
"kind": "const"
|
||||
},
|
||||
"start": 0,
|
||||
"end": 79
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 0,
|
||||
"end": 79
|
||||
}
|
||||
|
||||
@ -1,91 +1,128 @@
|
||||
---
|
||||
source: kcl/src/parser/parser_impl.rs
|
||||
assertion_line: 3615
|
||||
expression: actual
|
||||
---
|
||||
{
|
||||
"start": 0,
|
||||
"end": 36,
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"body": [
|
||||
{
|
||||
"type": "VariableDeclaration",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "VariableDeclaration",
|
||||
"start": 0,
|
||||
"end": 36,
|
||||
"declarations": [
|
||||
{
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "VariableDeclarator",
|
||||
"start": 6,
|
||||
"end": 36,
|
||||
"id": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 6,
|
||||
"end": 11,
|
||||
"name": "myVar"
|
||||
},
|
||||
"start": 6,
|
||||
"end": 11
|
||||
},
|
||||
"init": {
|
||||
"type": "CallExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "CallExpression",
|
||||
"start": 14,
|
||||
"end": 36,
|
||||
"callee": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 14,
|
||||
"end": 17,
|
||||
"name": "min"
|
||||
},
|
||||
"start": 14,
|
||||
"end": 17
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 18,
|
||||
"end": 19,
|
||||
"value": 5,
|
||||
"raw": "5"
|
||||
},
|
||||
"start": 18,
|
||||
"end": 19
|
||||
},
|
||||
{
|
||||
"type": "UnaryExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "UnaryExpression",
|
||||
"start": 22,
|
||||
"end": 35,
|
||||
"operator": "-",
|
||||
"argument": {
|
||||
"type": "CallExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "CallExpression",
|
||||
"start": 23,
|
||||
"end": 35,
|
||||
"callee": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 23,
|
||||
"end": 29,
|
||||
"name": "legLen"
|
||||
},
|
||||
"start": 23,
|
||||
"end": 29
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 30,
|
||||
"end": 31,
|
||||
"value": 5,
|
||||
"raw": "5"
|
||||
},
|
||||
"start": 30,
|
||||
"end": 31
|
||||
},
|
||||
{
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 33,
|
||||
"end": 34,
|
||||
"value": 4,
|
||||
"raw": "4"
|
||||
},
|
||||
"start": 33,
|
||||
"end": 34
|
||||
}
|
||||
],
|
||||
"optional": false
|
||||
},
|
||||
"start": 23,
|
||||
"end": 35
|
||||
}
|
||||
},
|
||||
"start": 22,
|
||||
"end": 35
|
||||
}
|
||||
],
|
||||
"optional": false
|
||||
},
|
||||
"start": 14,
|
||||
"end": 36
|
||||
}
|
||||
},
|
||||
"start": 6,
|
||||
"end": 36
|
||||
}
|
||||
],
|
||||
"kind": "const"
|
||||
},
|
||||
"start": 0,
|
||||
"end": 36
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 0,
|
||||
"end": 36
|
||||
}
|
||||
|
||||
@ -1,129 +1,180 @@
|
||||
---
|
||||
source: kcl/src/parser/parser_impl.rs
|
||||
assertion_line: 3754
|
||||
expression: actual
|
||||
---
|
||||
{
|
||||
"start": 0,
|
||||
"end": 133,
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"body": [
|
||||
{
|
||||
"type": "VariableDeclaration",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "VariableDeclaration",
|
||||
"start": 1,
|
||||
"end": 132,
|
||||
"declarations": [
|
||||
{
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "VariableDeclarator",
|
||||
"start": 7,
|
||||
"end": 132,
|
||||
"id": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 7,
|
||||
"end": 16,
|
||||
"name": "sketch001"
|
||||
},
|
||||
"start": 7,
|
||||
"end": 16
|
||||
},
|
||||
"init": {
|
||||
"type": "PipeExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "PipeExpression",
|
||||
"start": 19,
|
||||
"end": 132,
|
||||
"body": [
|
||||
{
|
||||
"type": "CallExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "CallExpression",
|
||||
"start": 19,
|
||||
"end": 38,
|
||||
"callee": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 19,
|
||||
"end": 32,
|
||||
"name": "startSketchOn"
|
||||
},
|
||||
"start": 19,
|
||||
"end": 32
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 33,
|
||||
"end": 37,
|
||||
"value": "XY",
|
||||
"raw": "'XY'"
|
||||
},
|
||||
"start": 33,
|
||||
"end": 37
|
||||
}
|
||||
],
|
||||
"optional": false
|
||||
},
|
||||
"start": 19,
|
||||
"end": 38
|
||||
},
|
||||
{
|
||||
"type": "CallExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "CallExpression",
|
||||
"start": 115,
|
||||
"end": 132,
|
||||
"callee": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 115,
|
||||
"end": 129,
|
||||
"name": "startProfileAt"
|
||||
},
|
||||
"start": 115,
|
||||
"end": 129
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"type": "PipeSubstitution",
|
||||
"type": "PipeSubstitution",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "PipeSubstitution"
|
||||
},
|
||||
"start": 130,
|
||||
"end": 131
|
||||
}
|
||||
],
|
||||
"optional": false
|
||||
},
|
||||
"start": 115,
|
||||
"end": 132
|
||||
}
|
||||
],
|
||||
"nonCodeMeta": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"nonCodeNodes": {
|
||||
"0": [
|
||||
{
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "NonCodeNode",
|
||||
"start": 41,
|
||||
"end": 52,
|
||||
"value": {
|
||||
"type": "blockComment",
|
||||
"value": "|> arc({",
|
||||
"style": "line"
|
||||
}
|
||||
},
|
||||
"start": 41,
|
||||
"end": 52
|
||||
},
|
||||
{
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "NonCodeNode",
|
||||
"start": 55,
|
||||
"end": 74,
|
||||
"value": {
|
||||
"type": "blockComment",
|
||||
"value": "angleEnd: 270,",
|
||||
"style": "line"
|
||||
}
|
||||
},
|
||||
"start": 55,
|
||||
"end": 74
|
||||
},
|
||||
{
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "NonCodeNode",
|
||||
"start": 77,
|
||||
"end": 98,
|
||||
"value": {
|
||||
"type": "blockComment",
|
||||
"value": "angleStart: 450,",
|
||||
"style": "line"
|
||||
}
|
||||
},
|
||||
"start": 77,
|
||||
"end": 98
|
||||
},
|
||||
{
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "NonCodeNode",
|
||||
"start": 101,
|
||||
"end": 109,
|
||||
"value": {
|
||||
"type": "blockComment",
|
||||
"value": "}, %)",
|
||||
"style": "line"
|
||||
}
|
||||
},
|
||||
"start": 101,
|
||||
"end": 109
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": []
|
||||
},
|
||||
"start": 0,
|
||||
"end": 0
|
||||
}
|
||||
},
|
||||
"start": 19,
|
||||
"end": 132
|
||||
}
|
||||
},
|
||||
"start": 7,
|
||||
"end": 132
|
||||
}
|
||||
],
|
||||
"kind": "const"
|
||||
},
|
||||
"start": 1,
|
||||
"end": 132
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 0,
|
||||
"end": 133
|
||||
}
|
||||
|
||||
@ -1,98 +1,138 @@
|
||||
---
|
||||
source: kcl/src/parser/parser_impl.rs
|
||||
assertion_line: 3765
|
||||
expression: actual
|
||||
---
|
||||
{
|
||||
"start": 0,
|
||||
"end": 32,
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"body": [
|
||||
{
|
||||
"type": "VariableDeclaration",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "VariableDeclaration",
|
||||
"start": 1,
|
||||
"end": 31,
|
||||
"declarations": [
|
||||
{
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "VariableDeclarator",
|
||||
"start": 7,
|
||||
"end": 31,
|
||||
"id": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 7,
|
||||
"end": 11,
|
||||
"name": "my14"
|
||||
},
|
||||
"start": 7,
|
||||
"end": 11
|
||||
},
|
||||
"init": {
|
||||
"type": "BinaryExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "BinaryExpression",
|
||||
"start": 14,
|
||||
"end": 31,
|
||||
"operator": "-",
|
||||
"left": {
|
||||
"type": "BinaryExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "BinaryExpression",
|
||||
"start": 14,
|
||||
"end": 19,
|
||||
"operator": "^",
|
||||
"left": {
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 14,
|
||||
"end": 15,
|
||||
"value": 4,
|
||||
"raw": "4"
|
||||
},
|
||||
"start": 14,
|
||||
"end": 15
|
||||
},
|
||||
"right": {
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 18,
|
||||
"end": 19,
|
||||
"value": 2,
|
||||
"raw": "2"
|
||||
},
|
||||
"start": 18,
|
||||
"end": 19
|
||||
}
|
||||
},
|
||||
"start": 14,
|
||||
"end": 19
|
||||
},
|
||||
"right": {
|
||||
"type": "BinaryExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "BinaryExpression",
|
||||
"start": 22,
|
||||
"end": 31,
|
||||
"operator": "*",
|
||||
"left": {
|
||||
"type": "BinaryExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "BinaryExpression",
|
||||
"start": 22,
|
||||
"end": 27,
|
||||
"operator": "^",
|
||||
"left": {
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 22,
|
||||
"end": 23,
|
||||
"value": 3,
|
||||
"raw": "3"
|
||||
},
|
||||
"right": {
|
||||
"type": "Literal",
|
||||
"type": "Literal",
|
||||
"start": 26,
|
||||
"end": 27,
|
||||
"value": 2,
|
||||
"raw": "2"
|
||||
}
|
||||
"start": 22,
|
||||
"end": 23
|
||||
},
|
||||
"right": {
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 30,
|
||||
"end": 31,
|
||||
"value": 2,
|
||||
"raw": "2"
|
||||
},
|
||||
"start": 26,
|
||||
"end": 27
|
||||
}
|
||||
},
|
||||
"start": 22,
|
||||
"end": 27
|
||||
},
|
||||
"right": {
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"value": 2,
|
||||
"raw": "2"
|
||||
},
|
||||
"start": 30,
|
||||
"end": 31
|
||||
}
|
||||
},
|
||||
"start": 22,
|
||||
"end": 31
|
||||
}
|
||||
},
|
||||
"start": 14,
|
||||
"end": 31
|
||||
}
|
||||
},
|
||||
"start": 7,
|
||||
"end": 31
|
||||
}
|
||||
],
|
||||
"kind": "const"
|
||||
},
|
||||
"start": 1,
|
||||
"end": 31
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 0,
|
||||
"end": 32
|
||||
}
|
||||
|
||||
@ -1,86 +1,123 @@
|
||||
---
|
||||
source: kcl/src/parser/parser_impl.rs
|
||||
assertion_line: 3771
|
||||
expression: actual
|
||||
---
|
||||
{
|
||||
"start": 0,
|
||||
"end": 74,
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"body": [
|
||||
{
|
||||
"type": "VariableDeclaration",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "VariableDeclaration",
|
||||
"start": 0,
|
||||
"end": 74,
|
||||
"declarations": [
|
||||
{
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "VariableDeclarator",
|
||||
"start": 6,
|
||||
"end": 74,
|
||||
"id": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 6,
|
||||
"end": 7,
|
||||
"name": "x"
|
||||
},
|
||||
"start": 6,
|
||||
"end": 7
|
||||
},
|
||||
"init": {
|
||||
"type": "IfExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "IfExpression",
|
||||
"start": 10,
|
||||
"end": 74,
|
||||
"cond": {
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 13,
|
||||
"end": 17,
|
||||
"value": true,
|
||||
"raw": "true"
|
||||
},
|
||||
"start": 13,
|
||||
"end": 17
|
||||
},
|
||||
"then_val": {
|
||||
"start": 32,
|
||||
"end": 42,
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"body": [
|
||||
{
|
||||
"type": "ExpressionStatement",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "ExpressionStatement",
|
||||
"start": 32,
|
||||
"end": 33,
|
||||
"expression": {
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 32,
|
||||
"end": 33,
|
||||
"value": 3,
|
||||
"raw": "3"
|
||||
},
|
||||
"start": 32,
|
||||
"end": 33
|
||||
}
|
||||
},
|
||||
"start": 32,
|
||||
"end": 33
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 32,
|
||||
"end": 42
|
||||
},
|
||||
"else_ifs": [],
|
||||
"final_else": {
|
||||
"start": 63,
|
||||
"end": 73,
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"body": [
|
||||
{
|
||||
"type": "ExpressionStatement",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "ExpressionStatement",
|
||||
"start": 63,
|
||||
"end": 64,
|
||||
"expression": {
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 63,
|
||||
"end": 64,
|
||||
"value": 4,
|
||||
"raw": "4"
|
||||
},
|
||||
"start": 63,
|
||||
"end": 64
|
||||
}
|
||||
},
|
||||
"start": 63,
|
||||
"end": 64
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 63,
|
||||
"end": 73
|
||||
},
|
||||
"digest": null
|
||||
},
|
||||
"start": 10,
|
||||
"end": 74
|
||||
}
|
||||
},
|
||||
"start": 6,
|
||||
"end": 74
|
||||
}
|
||||
],
|
||||
"kind": "const"
|
||||
},
|
||||
"start": 0,
|
||||
"end": 74
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 0,
|
||||
"end": 74
|
||||
}
|
||||
|
||||
@ -1,135 +1,193 @@
|
||||
---
|
||||
source: kcl/src/parser/parser_impl.rs
|
||||
assertion_line: 3779
|
||||
expression: actual
|
||||
---
|
||||
{
|
||||
"start": 0,
|
||||
"end": 121,
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"body": [
|
||||
{
|
||||
"type": "VariableDeclaration",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "VariableDeclaration",
|
||||
"start": 0,
|
||||
"end": 121,
|
||||
"declarations": [
|
||||
{
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "VariableDeclarator",
|
||||
"start": 6,
|
||||
"end": 121,
|
||||
"id": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 6,
|
||||
"end": 7,
|
||||
"name": "x"
|
||||
},
|
||||
"start": 6,
|
||||
"end": 7
|
||||
},
|
||||
"init": {
|
||||
"type": "IfExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "IfExpression",
|
||||
"start": 10,
|
||||
"end": 121,
|
||||
"cond": {
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 13,
|
||||
"end": 17,
|
||||
"value": true,
|
||||
"raw": "true"
|
||||
},
|
||||
"start": 13,
|
||||
"end": 17
|
||||
},
|
||||
"then_val": {
|
||||
"start": 32,
|
||||
"end": 42,
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"body": [
|
||||
{
|
||||
"type": "ExpressionStatement",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "ExpressionStatement",
|
||||
"start": 32,
|
||||
"end": 33,
|
||||
"expression": {
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 32,
|
||||
"end": 33,
|
||||
"value": 3,
|
||||
"raw": "3"
|
||||
},
|
||||
"start": 32,
|
||||
"end": 33
|
||||
}
|
||||
},
|
||||
"start": 32,
|
||||
"end": 33
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 32,
|
||||
"end": 42
|
||||
},
|
||||
"else_ifs": [
|
||||
{
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "ElseIf",
|
||||
"start": 44,
|
||||
"end": 90,
|
||||
"cond": {
|
||||
"type": "CallExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "CallExpression",
|
||||
"start": 52,
|
||||
"end": 64,
|
||||
"callee": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 52,
|
||||
"end": 56,
|
||||
"name": "func"
|
||||
},
|
||||
"start": 52,
|
||||
"end": 56
|
||||
},
|
||||
"arguments": [
|
||||
{
|
||||
"type": "Identifier",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 57,
|
||||
"end": 63,
|
||||
"name": "radius"
|
||||
},
|
||||
"start": 57,
|
||||
"end": 63
|
||||
}
|
||||
],
|
||||
"optional": false
|
||||
},
|
||||
"start": 52,
|
||||
"end": 64
|
||||
},
|
||||
"then_val": {
|
||||
"start": 65,
|
||||
"end": 89,
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"body": [
|
||||
{
|
||||
"type": "ExpressionStatement",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "ExpressionStatement",
|
||||
"start": 79,
|
||||
"end": 80,
|
||||
"expression": {
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 79,
|
||||
"end": 80,
|
||||
"value": 4,
|
||||
"raw": "4"
|
||||
},
|
||||
"start": 79,
|
||||
"end": 80
|
||||
}
|
||||
},
|
||||
"start": 79,
|
||||
"end": 80
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 65,
|
||||
"end": 89
|
||||
},
|
||||
"digest": null
|
||||
},
|
||||
"start": 44,
|
||||
"end": 90
|
||||
}
|
||||
],
|
||||
"final_else": {
|
||||
"start": 110,
|
||||
"end": 120,
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"body": [
|
||||
{
|
||||
"type": "ExpressionStatement",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "ExpressionStatement",
|
||||
"start": 110,
|
||||
"end": 111,
|
||||
"expression": {
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 110,
|
||||
"end": 111,
|
||||
"value": 5,
|
||||
"raw": "5"
|
||||
},
|
||||
"start": 110,
|
||||
"end": 111
|
||||
}
|
||||
},
|
||||
"start": 110,
|
||||
"end": 111
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 110,
|
||||
"end": 120
|
||||
},
|
||||
"digest": null
|
||||
},
|
||||
"start": 10,
|
||||
"end": 121
|
||||
}
|
||||
},
|
||||
"start": 6,
|
||||
"end": 121
|
||||
}
|
||||
],
|
||||
"kind": "const"
|
||||
},
|
||||
"start": 0,
|
||||
"end": 121
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 0,
|
||||
"end": 121
|
||||
}
|
||||
|
||||
@ -1,53 +1,75 @@
|
||||
---
|
||||
source: kcl/src/parser/parser_impl.rs
|
||||
assertion_line: 3789
|
||||
expression: actual
|
||||
---
|
||||
{
|
||||
"start": 0,
|
||||
"end": 14,
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"body": [
|
||||
{
|
||||
"type": "VariableDeclaration",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "VariableDeclaration",
|
||||
"start": 0,
|
||||
"end": 14,
|
||||
"declarations": [
|
||||
{
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "VariableDeclarator",
|
||||
"start": 4,
|
||||
"end": 14,
|
||||
"id": {
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Identifier",
|
||||
"start": 4,
|
||||
"end": 5,
|
||||
"name": "x"
|
||||
},
|
||||
"start": 4,
|
||||
"end": 5
|
||||
},
|
||||
"init": {
|
||||
"type": "BinaryExpression",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "BinaryExpression",
|
||||
"start": 8,
|
||||
"end": 14,
|
||||
"operator": "==",
|
||||
"left": {
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 8,
|
||||
"end": 9,
|
||||
"value": 3,
|
||||
"raw": "3"
|
||||
},
|
||||
"start": 8,
|
||||
"end": 9
|
||||
},
|
||||
"right": {
|
||||
"type": "Literal",
|
||||
"type": "UnboxedNode",
|
||||
"kind": {
|
||||
"type": "Literal",
|
||||
"start": 13,
|
||||
"end": 14,
|
||||
"value": 3,
|
||||
"raw": "3"
|
||||
},
|
||||
"start": 13,
|
||||
"end": 14
|
||||
}
|
||||
},
|
||||
"start": 8,
|
||||
"end": 14
|
||||
}
|
||||
},
|
||||
"start": 4,
|
||||
"end": 14
|
||||
}
|
||||
],
|
||||
"kind": "const"
|
||||
},
|
||||
"start": 0,
|
||||
"end": 14
|
||||
}
|
||||
]
|
||||
},
|
||||
"start": 0,
|
||||
"end": 14
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user