Previously, `xLine`, `xLineTo`, `yLine` and `yLineTo` used positional arguments. Now: - `xLineTo` and `yLineTo` have been removed - `xLine` and `yLine` both use keyword arguments: - `length`, optional (i.e. a relative distance along the X or Y axis) - `endAbsolute` optional (i.e. an absolute point along the X or Y axis) - `tag` optional - Exactly one of `length` or `endAbsolute` must be given. Not both, not neither. For example: ``` // Old way |> xLine(6.04, %) |> yLineTo(20, %, $base) // New way |> xLine(length = 6.04) |> yLine(endAbsolute = 20, tag = $base) ``` This also improves some of the general-purpose keyword arguments code in modeling app's TS codebase.
241 lines
8.2 KiB
Plaintext
241 lines
8.2 KiB
Plaintext
---
|
|
source: kcl/src/simulation_tests.rs
|
|
description: Program memory after executing multi_transform.kcl
|
|
---
|
|
{
|
|
"environments": [
|
|
{
|
|
"bindings": {
|
|
"HALF_TURN": {
|
|
"type": "Number",
|
|
"value": 180.0,
|
|
"__meta": []
|
|
},
|
|
"QUARTER_TURN": {
|
|
"type": "Number",
|
|
"value": 90.0,
|
|
"__meta": []
|
|
},
|
|
"THREE_QUARTER_TURN": {
|
|
"type": "Number",
|
|
"value": 270.0,
|
|
"__meta": []
|
|
},
|
|
"ZERO": {
|
|
"type": "Number",
|
|
"value": 0.0,
|
|
"__meta": []
|
|
},
|
|
"transform": {
|
|
"type": "Function",
|
|
"expression": {
|
|
"body": {
|
|
"body": [
|
|
{
|
|
"argument": {
|
|
"elements": [
|
|
{
|
|
"end": 68,
|
|
"properties": [
|
|
{
|
|
"end": 66,
|
|
"key": {
|
|
"end": 50,
|
|
"name": "translate",
|
|
"start": 41,
|
|
"type": "Identifier"
|
|
},
|
|
"start": 41,
|
|
"type": "ObjectProperty",
|
|
"value": {
|
|
"elements": [
|
|
{
|
|
"end": 59,
|
|
"left": {
|
|
"end": 55,
|
|
"raw": "30",
|
|
"start": 53,
|
|
"type": "Literal",
|
|
"type": "Literal",
|
|
"value": 30
|
|
},
|
|
"operator": "*",
|
|
"right": {
|
|
"end": 59,
|
|
"name": "i",
|
|
"start": 58,
|
|
"type": "Identifier",
|
|
"type": "Identifier"
|
|
},
|
|
"start": 53,
|
|
"type": "BinaryExpression",
|
|
"type": "BinaryExpression"
|
|
},
|
|
{
|
|
"end": 62,
|
|
"raw": "0",
|
|
"start": 61,
|
|
"type": "Literal",
|
|
"type": "Literal",
|
|
"value": 0
|
|
},
|
|
{
|
|
"end": 65,
|
|
"raw": "0",
|
|
"start": 64,
|
|
"type": "Literal",
|
|
"type": "Literal",
|
|
"value": 0
|
|
}
|
|
],
|
|
"end": 66,
|
|
"start": 52,
|
|
"type": "ArrayExpression",
|
|
"type": "ArrayExpression"
|
|
}
|
|
}
|
|
],
|
|
"start": 39,
|
|
"type": "ObjectExpression",
|
|
"type": "ObjectExpression"
|
|
},
|
|
{
|
|
"end": 105,
|
|
"properties": [
|
|
{
|
|
"end": 103,
|
|
"key": {
|
|
"end": 84,
|
|
"name": "rotation",
|
|
"start": 76,
|
|
"type": "Identifier"
|
|
},
|
|
"start": 76,
|
|
"type": "ObjectProperty",
|
|
"value": {
|
|
"end": 103,
|
|
"properties": [
|
|
{
|
|
"end": 101,
|
|
"key": {
|
|
"end": 93,
|
|
"name": "angle",
|
|
"start": 88,
|
|
"type": "Identifier"
|
|
},
|
|
"start": 88,
|
|
"type": "ObjectProperty",
|
|
"value": {
|
|
"end": 101,
|
|
"left": {
|
|
"end": 97,
|
|
"raw": "45",
|
|
"start": 95,
|
|
"type": "Literal",
|
|
"type": "Literal",
|
|
"value": 45
|
|
},
|
|
"operator": "*",
|
|
"right": {
|
|
"end": 101,
|
|
"name": "i",
|
|
"start": 100,
|
|
"type": "Identifier",
|
|
"type": "Identifier"
|
|
},
|
|
"start": 95,
|
|
"type": "BinaryExpression",
|
|
"type": "BinaryExpression"
|
|
}
|
|
}
|
|
],
|
|
"start": 86,
|
|
"type": "ObjectExpression",
|
|
"type": "ObjectExpression"
|
|
}
|
|
}
|
|
],
|
|
"start": 74,
|
|
"type": "ObjectExpression",
|
|
"type": "ObjectExpression"
|
|
}
|
|
],
|
|
"end": 109,
|
|
"start": 33,
|
|
"type": "ArrayExpression",
|
|
"type": "ArrayExpression"
|
|
},
|
|
"end": 109,
|
|
"start": 26,
|
|
"type": "ReturnStatement",
|
|
"type": "ReturnStatement"
|
|
}
|
|
],
|
|
"end": 111,
|
|
"start": 22
|
|
},
|
|
"end": 111,
|
|
"params": [
|
|
{
|
|
"type": "Parameter",
|
|
"identifier": {
|
|
"end": 17,
|
|
"name": "i",
|
|
"start": 16,
|
|
"type": "Identifier"
|
|
},
|
|
"optional": false
|
|
}
|
|
],
|
|
"start": 15,
|
|
"type": "FunctionExpression"
|
|
},
|
|
"memory": {
|
|
"environments": [
|
|
{
|
|
"bindings": {
|
|
"HALF_TURN": {
|
|
"type": "Number",
|
|
"value": 180.0,
|
|
"__meta": []
|
|
},
|
|
"QUARTER_TURN": {
|
|
"type": "Number",
|
|
"value": 90.0,
|
|
"__meta": []
|
|
},
|
|
"THREE_QUARTER_TURN": {
|
|
"type": "Number",
|
|
"value": 270.0,
|
|
"__meta": []
|
|
},
|
|
"ZERO": {
|
|
"type": "Number",
|
|
"value": 0.0,
|
|
"__meta": []
|
|
}
|
|
},
|
|
"parent": null
|
|
}
|
|
],
|
|
"currentEnv": 0,
|
|
"return": null
|
|
},
|
|
"__meta": [
|
|
{
|
|
"sourceRange": [
|
|
15,
|
|
111,
|
|
0
|
|
]
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"parent": null
|
|
}
|
|
],
|
|
"currentEnv": 0,
|
|
"return": null
|
|
}
|