Move more KCL executor tests into simulation tests (#4540)
@ -15,6 +15,14 @@ redo-kcl-stdlib-docs:
|
|||||||
TWENTY_TWENTY=overwrite {{cnr}} -p kcl-lib kcl_test_example
|
TWENTY_TWENTY=overwrite {{cnr}} -p kcl-lib kcl_test_example
|
||||||
EXPECTORATE=overwrite {{cnr}} -p kcl-lib docs::gen_std_tests::test_generate_stdlib
|
EXPECTORATE=overwrite {{cnr}} -p kcl-lib docs::gen_std_tests::test_generate_stdlib
|
||||||
|
|
||||||
|
|
||||||
|
# Copy a test KCL file from executor tests into a new simulation test.
|
||||||
|
copy-exec-test-into-sim-test test_name:
|
||||||
|
mkdir -p kcl/tests/{{test_name}}
|
||||||
|
cp tests/executor/inputs/{{test_name}}.kcl kcl/tests/{{test_name}}/input.kcl
|
||||||
|
zoo kcl fmt -w kcl/tests/{{test_name}}/input.kcl
|
||||||
|
just new-sim-test {{test_name}}
|
||||||
|
|
||||||
# Create a new KCL deterministic simulation test case.
|
# Create a new KCL deterministic simulation test case.
|
||||||
new-sim-test test_name render_to_png="true":
|
new-sim-test test_name render_to_png="true":
|
||||||
# Add the various tests for this new test case.
|
# Add the various tests for this new test case.
|
||||||
|
@ -1604,3 +1604,192 @@ mod sketch_on_chamfer_two_times_different_order {
|
|||||||
super::execute(TEST_NAME, true).await
|
super::execute(TEST_NAME, true).await
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
mod parametric_with_tan_arc {
|
||||||
|
const TEST_NAME: &str = "parametric_with_tan_arc";
|
||||||
|
|
||||||
|
/// Test tokenizing KCL.
|
||||||
|
#[test]
|
||||||
|
fn tokenize() {
|
||||||
|
super::tokenize(TEST_NAME)
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Test parsing KCL.
|
||||||
|
#[test]
|
||||||
|
fn parse() {
|
||||||
|
super::parse(TEST_NAME)
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Test that parsing and unparsing KCL produces the original KCL input.
|
||||||
|
#[test]
|
||||||
|
fn unparse() {
|
||||||
|
super::unparse(TEST_NAME)
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Test that KCL is executed correctly.
|
||||||
|
#[tokio::test(flavor = "multi_thread")]
|
||||||
|
async fn kcl_test_execute() {
|
||||||
|
super::execute(TEST_NAME, true).await
|
||||||
|
}
|
||||||
|
}
|
||||||
|
mod parametric {
|
||||||
|
const TEST_NAME: &str = "parametric";
|
||||||
|
|
||||||
|
/// Test tokenizing KCL.
|
||||||
|
#[test]
|
||||||
|
fn tokenize() {
|
||||||
|
super::tokenize(TEST_NAME)
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Test parsing KCL.
|
||||||
|
#[test]
|
||||||
|
fn parse() {
|
||||||
|
super::parse(TEST_NAME)
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Test that parsing and unparsing KCL produces the original KCL input.
|
||||||
|
#[test]
|
||||||
|
fn unparse() {
|
||||||
|
super::unparse(TEST_NAME)
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Test that KCL is executed correctly.
|
||||||
|
#[tokio::test(flavor = "multi_thread")]
|
||||||
|
async fn kcl_test_execute() {
|
||||||
|
super::execute(TEST_NAME, true).await
|
||||||
|
}
|
||||||
|
}
|
||||||
|
mod angled_line {
|
||||||
|
const TEST_NAME: &str = "angled_line";
|
||||||
|
|
||||||
|
/// Test tokenizing KCL.
|
||||||
|
#[test]
|
||||||
|
fn tokenize() {
|
||||||
|
super::tokenize(TEST_NAME)
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Test parsing KCL.
|
||||||
|
#[test]
|
||||||
|
fn parse() {
|
||||||
|
super::parse(TEST_NAME)
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Test that parsing and unparsing KCL produces the original KCL input.
|
||||||
|
#[test]
|
||||||
|
fn unparse() {
|
||||||
|
super::unparse(TEST_NAME)
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Test that KCL is executed correctly.
|
||||||
|
#[tokio::test(flavor = "multi_thread")]
|
||||||
|
async fn kcl_test_execute() {
|
||||||
|
super::execute(TEST_NAME, true).await
|
||||||
|
}
|
||||||
|
}
|
||||||
|
mod function_sketch_with_position {
|
||||||
|
const TEST_NAME: &str = "function_sketch_with_position";
|
||||||
|
|
||||||
|
/// Test tokenizing KCL.
|
||||||
|
#[test]
|
||||||
|
fn tokenize() {
|
||||||
|
super::tokenize(TEST_NAME)
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Test parsing KCL.
|
||||||
|
#[test]
|
||||||
|
fn parse() {
|
||||||
|
super::parse(TEST_NAME)
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Test that parsing and unparsing KCL produces the original KCL input.
|
||||||
|
#[test]
|
||||||
|
fn unparse() {
|
||||||
|
super::unparse(TEST_NAME)
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Test that KCL is executed correctly.
|
||||||
|
#[tokio::test(flavor = "multi_thread")]
|
||||||
|
async fn kcl_test_execute() {
|
||||||
|
super::execute(TEST_NAME, true).await
|
||||||
|
}
|
||||||
|
}
|
||||||
|
mod function_sketch {
|
||||||
|
const TEST_NAME: &str = "function_sketch";
|
||||||
|
|
||||||
|
/// Test tokenizing KCL.
|
||||||
|
#[test]
|
||||||
|
fn tokenize() {
|
||||||
|
super::tokenize(TEST_NAME)
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Test parsing KCL.
|
||||||
|
#[test]
|
||||||
|
fn parse() {
|
||||||
|
super::parse(TEST_NAME)
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Test that parsing and unparsing KCL produces the original KCL input.
|
||||||
|
#[test]
|
||||||
|
fn unparse() {
|
||||||
|
super::unparse(TEST_NAME)
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Test that KCL is executed correctly.
|
||||||
|
#[tokio::test(flavor = "multi_thread")]
|
||||||
|
async fn kcl_test_execute() {
|
||||||
|
super::execute(TEST_NAME, true).await
|
||||||
|
}
|
||||||
|
}
|
||||||
|
mod i_shape {
|
||||||
|
const TEST_NAME: &str = "i_shape";
|
||||||
|
|
||||||
|
/// Test tokenizing KCL.
|
||||||
|
#[test]
|
||||||
|
fn tokenize() {
|
||||||
|
super::tokenize(TEST_NAME)
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Test parsing KCL.
|
||||||
|
#[test]
|
||||||
|
fn parse() {
|
||||||
|
super::parse(TEST_NAME)
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Test that parsing and unparsing KCL produces the original KCL input.
|
||||||
|
#[test]
|
||||||
|
fn unparse() {
|
||||||
|
super::unparse(TEST_NAME)
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Test that KCL is executed correctly.
|
||||||
|
#[tokio::test(flavor = "multi_thread")]
|
||||||
|
async fn kcl_test_execute() {
|
||||||
|
super::execute(TEST_NAME, true).await
|
||||||
|
}
|
||||||
|
}
|
||||||
|
mod kittycad_svg {
|
||||||
|
const TEST_NAME: &str = "kittycad_svg";
|
||||||
|
|
||||||
|
/// Test tokenizing KCL.
|
||||||
|
#[test]
|
||||||
|
fn tokenize() {
|
||||||
|
super::tokenize(TEST_NAME)
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Test parsing KCL.
|
||||||
|
#[test]
|
||||||
|
fn parse() {
|
||||||
|
super::parse(TEST_NAME)
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Test that parsing and unparsing KCL produces the original KCL input.
|
||||||
|
#[test]
|
||||||
|
fn unparse() {
|
||||||
|
super::unparse(TEST_NAME)
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Test that KCL is executed correctly.
|
||||||
|
#[tokio::test(flavor = "multi_thread")]
|
||||||
|
async fn kcl_test_execute() {
|
||||||
|
super::execute(TEST_NAME, true).await
|
||||||
|
}
|
||||||
|
}
|
||||||
|
433
src/wasm-lib/kcl/tests/angled_line/ast.snap
Normal file
@ -0,0 +1,433 @@
|
|||||||
|
---
|
||||||
|
source: kcl/src/simulation_tests.rs
|
||||||
|
description: Result of parsing angled_line.kcl
|
||||||
|
snapshot_kind: text
|
||||||
|
---
|
||||||
|
{
|
||||||
|
"Ok": {
|
||||||
|
"body": [
|
||||||
|
{
|
||||||
|
"declarations": [
|
||||||
|
{
|
||||||
|
"end": 265,
|
||||||
|
"id": {
|
||||||
|
"end": 7,
|
||||||
|
"name": "part001",
|
||||||
|
"start": 0,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"init": {
|
||||||
|
"body": [
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"end": 28,
|
||||||
|
"raw": "'XY'",
|
||||||
|
"start": 24,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": "XY"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 23,
|
||||||
|
"name": "startSketchOn",
|
||||||
|
"start": 10,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 29,
|
||||||
|
"optional": false,
|
||||||
|
"start": 10,
|
||||||
|
"type": "CallExpression",
|
||||||
|
"type": "CallExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"end": 55,
|
||||||
|
"raw": "4.83",
|
||||||
|
"start": 51,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": 4.83
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 62,
|
||||||
|
"raw": "12.56",
|
||||||
|
"start": 57,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": 12.56
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 63,
|
||||||
|
"start": 50,
|
||||||
|
"type": "ArrayExpression",
|
||||||
|
"type": "ArrayExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 66,
|
||||||
|
"start": 65,
|
||||||
|
"type": "PipeSubstitution",
|
||||||
|
"type": "PipeSubstitution"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 49,
|
||||||
|
"name": "startProfileAt",
|
||||||
|
"start": 35,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 67,
|
||||||
|
"optional": false,
|
||||||
|
"start": 35,
|
||||||
|
"type": "CallExpression",
|
||||||
|
"type": "CallExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"end": 83,
|
||||||
|
"raw": "15.1",
|
||||||
|
"start": 79,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": 15.1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 89,
|
||||||
|
"raw": "2.48",
|
||||||
|
"start": 85,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": 2.48
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 90,
|
||||||
|
"start": 78,
|
||||||
|
"type": "ArrayExpression",
|
||||||
|
"type": "ArrayExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 93,
|
||||||
|
"start": 92,
|
||||||
|
"type": "PipeSubstitution",
|
||||||
|
"type": "PipeSubstitution"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 77,
|
||||||
|
"name": "line",
|
||||||
|
"start": 73,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 94,
|
||||||
|
"optional": false,
|
||||||
|
"start": 73,
|
||||||
|
"type": "CallExpression",
|
||||||
|
"type": "CallExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"end": 110,
|
||||||
|
"raw": "3.15",
|
||||||
|
"start": 106,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": 3.15
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"argument": {
|
||||||
|
"end": 117,
|
||||||
|
"raw": "9.85",
|
||||||
|
"start": 113,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": 9.85
|
||||||
|
},
|
||||||
|
"end": 117,
|
||||||
|
"operator": "-",
|
||||||
|
"start": 112,
|
||||||
|
"type": "UnaryExpression",
|
||||||
|
"type": "UnaryExpression"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 118,
|
||||||
|
"start": 105,
|
||||||
|
"type": "ArrayExpression",
|
||||||
|
"type": "ArrayExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 121,
|
||||||
|
"start": 120,
|
||||||
|
"type": "PipeSubstitution",
|
||||||
|
"type": "PipeSubstitution"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 129,
|
||||||
|
"start": 123,
|
||||||
|
"type": "TagDeclarator",
|
||||||
|
"type": "TagDeclarator",
|
||||||
|
"value": "seg01"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 104,
|
||||||
|
"name": "line",
|
||||||
|
"start": 100,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 130,
|
||||||
|
"optional": false,
|
||||||
|
"start": 100,
|
||||||
|
"type": "CallExpression",
|
||||||
|
"type": "CallExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"argument": {
|
||||||
|
"end": 148,
|
||||||
|
"raw": "15.17",
|
||||||
|
"start": 143,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": 15.17
|
||||||
|
},
|
||||||
|
"end": 148,
|
||||||
|
"operator": "-",
|
||||||
|
"start": 142,
|
||||||
|
"type": "UnaryExpression",
|
||||||
|
"type": "UnaryExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"argument": {
|
||||||
|
"end": 154,
|
||||||
|
"raw": "4.1",
|
||||||
|
"start": 151,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": 4.1
|
||||||
|
},
|
||||||
|
"end": 154,
|
||||||
|
"operator": "-",
|
||||||
|
"start": 150,
|
||||||
|
"type": "UnaryExpression",
|
||||||
|
"type": "UnaryExpression"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 155,
|
||||||
|
"start": 141,
|
||||||
|
"type": "ArrayExpression",
|
||||||
|
"type": "ArrayExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 158,
|
||||||
|
"start": 157,
|
||||||
|
"type": "PipeSubstitution",
|
||||||
|
"type": "PipeSubstitution"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 140,
|
||||||
|
"name": "line",
|
||||||
|
"start": 136,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 159,
|
||||||
|
"optional": false,
|
||||||
|
"start": 136,
|
||||||
|
"type": "CallExpression",
|
||||||
|
"type": "CallExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"end": 189,
|
||||||
|
"name": "seg01",
|
||||||
|
"start": 184,
|
||||||
|
"type": "Identifier",
|
||||||
|
"type": "Identifier"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 183,
|
||||||
|
"name": "segAng",
|
||||||
|
"start": 177,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 190,
|
||||||
|
"optional": false,
|
||||||
|
"start": 177,
|
||||||
|
"type": "CallExpression",
|
||||||
|
"type": "CallExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 197,
|
||||||
|
"raw": "12.35",
|
||||||
|
"start": 192,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": 12.35
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 198,
|
||||||
|
"start": 176,
|
||||||
|
"type": "ArrayExpression",
|
||||||
|
"type": "ArrayExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 201,
|
||||||
|
"start": 200,
|
||||||
|
"type": "PipeSubstitution",
|
||||||
|
"type": "PipeSubstitution"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 175,
|
||||||
|
"name": "angledLine",
|
||||||
|
"start": 165,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 202,
|
||||||
|
"optional": false,
|
||||||
|
"start": 165,
|
||||||
|
"type": "CallExpression",
|
||||||
|
"type": "CallExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"argument": {
|
||||||
|
"end": 220,
|
||||||
|
"raw": "13.02",
|
||||||
|
"start": 215,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": 13.02
|
||||||
|
},
|
||||||
|
"end": 220,
|
||||||
|
"operator": "-",
|
||||||
|
"start": 214,
|
||||||
|
"type": "UnaryExpression",
|
||||||
|
"type": "UnaryExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 227,
|
||||||
|
"raw": "10.03",
|
||||||
|
"start": 222,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": 10.03
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 228,
|
||||||
|
"start": 213,
|
||||||
|
"type": "ArrayExpression",
|
||||||
|
"type": "ArrayExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 231,
|
||||||
|
"start": 230,
|
||||||
|
"type": "PipeSubstitution",
|
||||||
|
"type": "PipeSubstitution"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 212,
|
||||||
|
"name": "line",
|
||||||
|
"start": 208,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 232,
|
||||||
|
"optional": false,
|
||||||
|
"start": 208,
|
||||||
|
"type": "CallExpression",
|
||||||
|
"type": "CallExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"end": 245,
|
||||||
|
"start": 244,
|
||||||
|
"type": "PipeSubstitution",
|
||||||
|
"type": "PipeSubstitution"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 243,
|
||||||
|
"name": "close",
|
||||||
|
"start": 238,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 246,
|
||||||
|
"optional": false,
|
||||||
|
"start": 238,
|
||||||
|
"type": "CallExpression",
|
||||||
|
"type": "CallExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"end": 261,
|
||||||
|
"raw": "4",
|
||||||
|
"start": 260,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": 4
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 264,
|
||||||
|
"start": 263,
|
||||||
|
"type": "PipeSubstitution",
|
||||||
|
"type": "PipeSubstitution"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 259,
|
||||||
|
"name": "extrude",
|
||||||
|
"start": 252,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 265,
|
||||||
|
"optional": false,
|
||||||
|
"start": 252,
|
||||||
|
"type": "CallExpression",
|
||||||
|
"type": "CallExpression"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 265,
|
||||||
|
"start": 10,
|
||||||
|
"type": "PipeExpression",
|
||||||
|
"type": "PipeExpression"
|
||||||
|
},
|
||||||
|
"start": 0,
|
||||||
|
"type": "VariableDeclarator"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 265,
|
||||||
|
"kind": "const",
|
||||||
|
"start": 0,
|
||||||
|
"type": "VariableDeclaration",
|
||||||
|
"type": "VariableDeclaration"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 266,
|
||||||
|
"start": 0
|
||||||
|
}
|
||||||
|
}
|
9
src/wasm-lib/kcl/tests/angled_line/input.kcl
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
part001 = startSketchOn('XY')
|
||||||
|
|> startProfileAt([4.83, 12.56], %)
|
||||||
|
|> line([15.1, 2.48], %)
|
||||||
|
|> line([3.15, -9.85], %, $seg01)
|
||||||
|
|> line([-15.17, -4.1], %)
|
||||||
|
|> angledLine([segAng(seg01), 12.35], %)
|
||||||
|
|> line([-13.02, 10.03], %)
|
||||||
|
|> close(%)
|
||||||
|
|> extrude(4, %)
|
432
src/wasm-lib/kcl/tests/angled_line/program_memory.snap
Normal file
@ -0,0 +1,432 @@
|
|||||||
|
---
|
||||||
|
source: kcl/src/simulation_tests.rs
|
||||||
|
description: Program memory after executing angled_line.kcl
|
||||||
|
snapshot_kind: text
|
||||||
|
---
|
||||||
|
{
|
||||||
|
"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": []
|
||||||
|
},
|
||||||
|
"part001": {
|
||||||
|
"type": "Solid",
|
||||||
|
"type": "Solid",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"faceId": "[uuid]",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [
|
||||||
|
73,
|
||||||
|
94,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"type": "extrudePlane"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"faceId": "[uuid]",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [
|
||||||
|
100,
|
||||||
|
130,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"tag": {
|
||||||
|
"end": 129,
|
||||||
|
"start": 123,
|
||||||
|
"type": "TagDeclarator",
|
||||||
|
"value": "seg01"
|
||||||
|
},
|
||||||
|
"type": "extrudePlane"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"faceId": "[uuid]",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [
|
||||||
|
136,
|
||||||
|
159,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"type": "extrudePlane"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"faceId": "[uuid]",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [
|
||||||
|
165,
|
||||||
|
202,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"type": "extrudePlane"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"faceId": "[uuid]",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [
|
||||||
|
208,
|
||||||
|
232,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"type": "extrudePlane"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"faceId": "[uuid]",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [
|
||||||
|
238,
|
||||||
|
246,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"type": "extrudePlane"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"sketch": {
|
||||||
|
"type": "Sketch",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"paths": [
|
||||||
|
{
|
||||||
|
"__geoMeta": {
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [
|
||||||
|
73,
|
||||||
|
94,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"from": [
|
||||||
|
4.83,
|
||||||
|
12.56
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"to": [
|
||||||
|
19.93,
|
||||||
|
15.04
|
||||||
|
],
|
||||||
|
"type": "ToPoint"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__geoMeta": {
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [
|
||||||
|
100,
|
||||||
|
130,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"from": [
|
||||||
|
19.93,
|
||||||
|
15.04
|
||||||
|
],
|
||||||
|
"tag": {
|
||||||
|
"end": 129,
|
||||||
|
"start": 123,
|
||||||
|
"type": "TagDeclarator",
|
||||||
|
"value": "seg01"
|
||||||
|
},
|
||||||
|
"to": [
|
||||||
|
23.08,
|
||||||
|
5.19
|
||||||
|
],
|
||||||
|
"type": "ToPoint"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__geoMeta": {
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [
|
||||||
|
136,
|
||||||
|
159,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"from": [
|
||||||
|
23.08,
|
||||||
|
5.19
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"to": [
|
||||||
|
7.91,
|
||||||
|
1.09
|
||||||
|
],
|
||||||
|
"type": "ToPoint"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__geoMeta": {
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [
|
||||||
|
165,
|
||||||
|
202,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"from": [
|
||||||
|
7.91,
|
||||||
|
1.09
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"to": [
|
||||||
|
11.6718,
|
||||||
|
-10.6731
|
||||||
|
],
|
||||||
|
"type": "ToPoint"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__geoMeta": {
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [
|
||||||
|
208,
|
||||||
|
232,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"from": [
|
||||||
|
11.6718,
|
||||||
|
-10.6731
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"to": [
|
||||||
|
-1.3482,
|
||||||
|
-0.6431
|
||||||
|
],
|
||||||
|
"type": "ToPoint"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__geoMeta": {
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [
|
||||||
|
238,
|
||||||
|
246,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"from": [
|
||||||
|
-1.3482,
|
||||||
|
-0.6431
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"to": [
|
||||||
|
4.83,
|
||||||
|
12.56
|
||||||
|
],
|
||||||
|
"type": "ToPoint"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"on": {
|
||||||
|
"type": "plane",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"value": "XY",
|
||||||
|
"origin": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 0.0,
|
||||||
|
"z": 0.0
|
||||||
|
},
|
||||||
|
"xAxis": {
|
||||||
|
"x": 1.0,
|
||||||
|
"y": 0.0,
|
||||||
|
"z": 0.0
|
||||||
|
},
|
||||||
|
"yAxis": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 1.0,
|
||||||
|
"z": 0.0
|
||||||
|
},
|
||||||
|
"zAxis": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 0.0,
|
||||||
|
"z": 1.0
|
||||||
|
},
|
||||||
|
"__meta": []
|
||||||
|
},
|
||||||
|
"start": {
|
||||||
|
"from": [
|
||||||
|
4.83,
|
||||||
|
12.56
|
||||||
|
],
|
||||||
|
"to": [
|
||||||
|
4.83,
|
||||||
|
12.56
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"__geoMeta": {
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [
|
||||||
|
35,
|
||||||
|
67,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tags": {
|
||||||
|
"seg01": {
|
||||||
|
"type": "TagIdentifier",
|
||||||
|
"value": "seg01",
|
||||||
|
"info": {
|
||||||
|
"type": "TagEngineInfo",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sketch": "[uuid]",
|
||||||
|
"path": {
|
||||||
|
"__geoMeta": {
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [
|
||||||
|
100,
|
||||||
|
130,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"from": [
|
||||||
|
19.93,
|
||||||
|
15.040000000000001
|
||||||
|
],
|
||||||
|
"tag": {
|
||||||
|
"end": 129,
|
||||||
|
"start": 123,
|
||||||
|
"type": "TagDeclarator",
|
||||||
|
"value": "seg01"
|
||||||
|
},
|
||||||
|
"to": [
|
||||||
|
23.08,
|
||||||
|
5.190000000000001
|
||||||
|
],
|
||||||
|
"type": "ToPoint"
|
||||||
|
},
|
||||||
|
"surface": {
|
||||||
|
"faceId": "[uuid]",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [
|
||||||
|
100,
|
||||||
|
130,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"tag": {
|
||||||
|
"end": 129,
|
||||||
|
"start": 123,
|
||||||
|
"type": "TagDeclarator",
|
||||||
|
"value": "seg01"
|
||||||
|
},
|
||||||
|
"type": "extrudePlane"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"__meta": [
|
||||||
|
{
|
||||||
|
"sourceRange": [
|
||||||
|
123,
|
||||||
|
129,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"__meta": [
|
||||||
|
{
|
||||||
|
"sourceRange": [
|
||||||
|
35,
|
||||||
|
67,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"height": 4.0,
|
||||||
|
"startCapId": "[uuid]",
|
||||||
|
"endCapId": "[uuid]",
|
||||||
|
"__meta": [
|
||||||
|
{
|
||||||
|
"sourceRange": [
|
||||||
|
35,
|
||||||
|
67,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"seg01": {
|
||||||
|
"type": "TagIdentifier",
|
||||||
|
"type": "TagIdentifier",
|
||||||
|
"value": "seg01",
|
||||||
|
"info": {
|
||||||
|
"type": "TagEngineInfo",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sketch": "[uuid]",
|
||||||
|
"path": {
|
||||||
|
"__geoMeta": {
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [
|
||||||
|
100,
|
||||||
|
130,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"from": [
|
||||||
|
19.93,
|
||||||
|
15.040000000000001
|
||||||
|
],
|
||||||
|
"tag": {
|
||||||
|
"end": 129,
|
||||||
|
"start": 123,
|
||||||
|
"type": "TagDeclarator",
|
||||||
|
"value": "seg01"
|
||||||
|
},
|
||||||
|
"to": [
|
||||||
|
23.08,
|
||||||
|
5.190000000000001
|
||||||
|
],
|
||||||
|
"type": "ToPoint"
|
||||||
|
},
|
||||||
|
"surface": {
|
||||||
|
"faceId": "[uuid]",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [
|
||||||
|
100,
|
||||||
|
130,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"tag": {
|
||||||
|
"end": 129,
|
||||||
|
"start": 123,
|
||||||
|
"type": "TagDeclarator",
|
||||||
|
"value": "seg01"
|
||||||
|
},
|
||||||
|
"type": "extrudePlane"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"__meta": [
|
||||||
|
{
|
||||||
|
"sourceRange": [
|
||||||
|
123,
|
||||||
|
129,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"parent": null
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"currentEnv": 0,
|
||||||
|
"return": null
|
||||||
|
}
|
BIN
src/wasm-lib/kcl/tests/angled_line/rendered_model.png
Normal file
After Width: | Height: | Size: 52 KiB |
771
src/wasm-lib/kcl/tests/angled_line/tokens.snap
Normal file
@ -0,0 +1,771 @@
|
|||||||
|
---
|
||||||
|
source: kcl/src/simulation_tests.rs
|
||||||
|
description: Result of tokenizing angled_line.kcl
|
||||||
|
snapshot_kind: text
|
||||||
|
---
|
||||||
|
{
|
||||||
|
"Ok": [
|
||||||
|
{
|
||||||
|
"type": "word",
|
||||||
|
"start": 0,
|
||||||
|
"end": 7,
|
||||||
|
"value": "part001"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 7,
|
||||||
|
"end": 8,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "operator",
|
||||||
|
"start": 8,
|
||||||
|
"end": 9,
|
||||||
|
"value": "="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 9,
|
||||||
|
"end": 10,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "word",
|
||||||
|
"start": 10,
|
||||||
|
"end": 23,
|
||||||
|
"value": "startSketchOn"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 23,
|
||||||
|
"end": 24,
|
||||||
|
"value": "("
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "string",
|
||||||
|
"start": 24,
|
||||||
|
"end": 28,
|
||||||
|
"value": "'XY'"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 28,
|
||||||
|
"end": 29,
|
||||||
|
"value": ")"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 29,
|
||||||
|
"end": 32,
|
||||||
|
"value": "\n "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "operator",
|
||||||
|
"start": 32,
|
||||||
|
"end": 34,
|
||||||
|
"value": "|>"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 34,
|
||||||
|
"end": 35,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "word",
|
||||||
|
"start": 35,
|
||||||
|
"end": 49,
|
||||||
|
"value": "startProfileAt"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 49,
|
||||||
|
"end": 50,
|
||||||
|
"value": "("
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 50,
|
||||||
|
"end": 51,
|
||||||
|
"value": "["
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "number",
|
||||||
|
"start": 51,
|
||||||
|
"end": 55,
|
||||||
|
"value": "4.83"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "comma",
|
||||||
|
"start": 55,
|
||||||
|
"end": 56,
|
||||||
|
"value": ","
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 56,
|
||||||
|
"end": 57,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "number",
|
||||||
|
"start": 57,
|
||||||
|
"end": 62,
|
||||||
|
"value": "12.56"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 62,
|
||||||
|
"end": 63,
|
||||||
|
"value": "]"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "comma",
|
||||||
|
"start": 63,
|
||||||
|
"end": 64,
|
||||||
|
"value": ","
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 64,
|
||||||
|
"end": 65,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "operator",
|
||||||
|
"start": 65,
|
||||||
|
"end": 66,
|
||||||
|
"value": "%"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 66,
|
||||||
|
"end": 67,
|
||||||
|
"value": ")"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 67,
|
||||||
|
"end": 70,
|
||||||
|
"value": "\n "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "operator",
|
||||||
|
"start": 70,
|
||||||
|
"end": 72,
|
||||||
|
"value": "|>"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 72,
|
||||||
|
"end": 73,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "word",
|
||||||
|
"start": 73,
|
||||||
|
"end": 77,
|
||||||
|
"value": "line"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 77,
|
||||||
|
"end": 78,
|
||||||
|
"value": "("
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 78,
|
||||||
|
"end": 79,
|
||||||
|
"value": "["
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "number",
|
||||||
|
"start": 79,
|
||||||
|
"end": 83,
|
||||||
|
"value": "15.1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "comma",
|
||||||
|
"start": 83,
|
||||||
|
"end": 84,
|
||||||
|
"value": ","
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 84,
|
||||||
|
"end": 85,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "number",
|
||||||
|
"start": 85,
|
||||||
|
"end": 89,
|
||||||
|
"value": "2.48"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 89,
|
||||||
|
"end": 90,
|
||||||
|
"value": "]"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "comma",
|
||||||
|
"start": 90,
|
||||||
|
"end": 91,
|
||||||
|
"value": ","
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 91,
|
||||||
|
"end": 92,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "operator",
|
||||||
|
"start": 92,
|
||||||
|
"end": 93,
|
||||||
|
"value": "%"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 93,
|
||||||
|
"end": 94,
|
||||||
|
"value": ")"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 94,
|
||||||
|
"end": 97,
|
||||||
|
"value": "\n "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "operator",
|
||||||
|
"start": 97,
|
||||||
|
"end": 99,
|
||||||
|
"value": "|>"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 99,
|
||||||
|
"end": 100,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "word",
|
||||||
|
"start": 100,
|
||||||
|
"end": 104,
|
||||||
|
"value": "line"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 104,
|
||||||
|
"end": 105,
|
||||||
|
"value": "("
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 105,
|
||||||
|
"end": 106,
|
||||||
|
"value": "["
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "number",
|
||||||
|
"start": 106,
|
||||||
|
"end": 110,
|
||||||
|
"value": "3.15"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "comma",
|
||||||
|
"start": 110,
|
||||||
|
"end": 111,
|
||||||
|
"value": ","
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 111,
|
||||||
|
"end": 112,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "operator",
|
||||||
|
"start": 112,
|
||||||
|
"end": 113,
|
||||||
|
"value": "-"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "number",
|
||||||
|
"start": 113,
|
||||||
|
"end": 117,
|
||||||
|
"value": "9.85"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 117,
|
||||||
|
"end": 118,
|
||||||
|
"value": "]"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "comma",
|
||||||
|
"start": 118,
|
||||||
|
"end": 119,
|
||||||
|
"value": ","
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 119,
|
||||||
|
"end": 120,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "operator",
|
||||||
|
"start": 120,
|
||||||
|
"end": 121,
|
||||||
|
"value": "%"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "comma",
|
||||||
|
"start": 121,
|
||||||
|
"end": 122,
|
||||||
|
"value": ","
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 122,
|
||||||
|
"end": 123,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "dollar",
|
||||||
|
"start": 123,
|
||||||
|
"end": 124,
|
||||||
|
"value": "$"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "word",
|
||||||
|
"start": 124,
|
||||||
|
"end": 129,
|
||||||
|
"value": "seg01"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 129,
|
||||||
|
"end": 130,
|
||||||
|
"value": ")"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 130,
|
||||||
|
"end": 133,
|
||||||
|
"value": "\n "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "operator",
|
||||||
|
"start": 133,
|
||||||
|
"end": 135,
|
||||||
|
"value": "|>"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 135,
|
||||||
|
"end": 136,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "word",
|
||||||
|
"start": 136,
|
||||||
|
"end": 140,
|
||||||
|
"value": "line"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 140,
|
||||||
|
"end": 141,
|
||||||
|
"value": "("
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 141,
|
||||||
|
"end": 142,
|
||||||
|
"value": "["
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "operator",
|
||||||
|
"start": 142,
|
||||||
|
"end": 143,
|
||||||
|
"value": "-"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "number",
|
||||||
|
"start": 143,
|
||||||
|
"end": 148,
|
||||||
|
"value": "15.17"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "comma",
|
||||||
|
"start": 148,
|
||||||
|
"end": 149,
|
||||||
|
"value": ","
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 149,
|
||||||
|
"end": 150,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "operator",
|
||||||
|
"start": 150,
|
||||||
|
"end": 151,
|
||||||
|
"value": "-"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "number",
|
||||||
|
"start": 151,
|
||||||
|
"end": 154,
|
||||||
|
"value": "4.1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 154,
|
||||||
|
"end": 155,
|
||||||
|
"value": "]"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "comma",
|
||||||
|
"start": 155,
|
||||||
|
"end": 156,
|
||||||
|
"value": ","
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 156,
|
||||||
|
"end": 157,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "operator",
|
||||||
|
"start": 157,
|
||||||
|
"end": 158,
|
||||||
|
"value": "%"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 158,
|
||||||
|
"end": 159,
|
||||||
|
"value": ")"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 159,
|
||||||
|
"end": 162,
|
||||||
|
"value": "\n "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "operator",
|
||||||
|
"start": 162,
|
||||||
|
"end": 164,
|
||||||
|
"value": "|>"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 164,
|
||||||
|
"end": 165,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "word",
|
||||||
|
"start": 165,
|
||||||
|
"end": 175,
|
||||||
|
"value": "angledLine"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 175,
|
||||||
|
"end": 176,
|
||||||
|
"value": "("
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 176,
|
||||||
|
"end": 177,
|
||||||
|
"value": "["
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "word",
|
||||||
|
"start": 177,
|
||||||
|
"end": 183,
|
||||||
|
"value": "segAng"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 183,
|
||||||
|
"end": 184,
|
||||||
|
"value": "("
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "word",
|
||||||
|
"start": 184,
|
||||||
|
"end": 189,
|
||||||
|
"value": "seg01"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 189,
|
||||||
|
"end": 190,
|
||||||
|
"value": ")"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "comma",
|
||||||
|
"start": 190,
|
||||||
|
"end": 191,
|
||||||
|
"value": ","
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 191,
|
||||||
|
"end": 192,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "number",
|
||||||
|
"start": 192,
|
||||||
|
"end": 197,
|
||||||
|
"value": "12.35"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 197,
|
||||||
|
"end": 198,
|
||||||
|
"value": "]"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "comma",
|
||||||
|
"start": 198,
|
||||||
|
"end": 199,
|
||||||
|
"value": ","
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 199,
|
||||||
|
"end": 200,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "operator",
|
||||||
|
"start": 200,
|
||||||
|
"end": 201,
|
||||||
|
"value": "%"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 201,
|
||||||
|
"end": 202,
|
||||||
|
"value": ")"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 202,
|
||||||
|
"end": 205,
|
||||||
|
"value": "\n "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "operator",
|
||||||
|
"start": 205,
|
||||||
|
"end": 207,
|
||||||
|
"value": "|>"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 207,
|
||||||
|
"end": 208,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "word",
|
||||||
|
"start": 208,
|
||||||
|
"end": 212,
|
||||||
|
"value": "line"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 212,
|
||||||
|
"end": 213,
|
||||||
|
"value": "("
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 213,
|
||||||
|
"end": 214,
|
||||||
|
"value": "["
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "operator",
|
||||||
|
"start": 214,
|
||||||
|
"end": 215,
|
||||||
|
"value": "-"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "number",
|
||||||
|
"start": 215,
|
||||||
|
"end": 220,
|
||||||
|
"value": "13.02"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "comma",
|
||||||
|
"start": 220,
|
||||||
|
"end": 221,
|
||||||
|
"value": ","
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 221,
|
||||||
|
"end": 222,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "number",
|
||||||
|
"start": 222,
|
||||||
|
"end": 227,
|
||||||
|
"value": "10.03"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 227,
|
||||||
|
"end": 228,
|
||||||
|
"value": "]"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "comma",
|
||||||
|
"start": 228,
|
||||||
|
"end": 229,
|
||||||
|
"value": ","
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 229,
|
||||||
|
"end": 230,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "operator",
|
||||||
|
"start": 230,
|
||||||
|
"end": 231,
|
||||||
|
"value": "%"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 231,
|
||||||
|
"end": 232,
|
||||||
|
"value": ")"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 232,
|
||||||
|
"end": 235,
|
||||||
|
"value": "\n "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "operator",
|
||||||
|
"start": 235,
|
||||||
|
"end": 237,
|
||||||
|
"value": "|>"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 237,
|
||||||
|
"end": 238,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "word",
|
||||||
|
"start": 238,
|
||||||
|
"end": 243,
|
||||||
|
"value": "close"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 243,
|
||||||
|
"end": 244,
|
||||||
|
"value": "("
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "operator",
|
||||||
|
"start": 244,
|
||||||
|
"end": 245,
|
||||||
|
"value": "%"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 245,
|
||||||
|
"end": 246,
|
||||||
|
"value": ")"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 246,
|
||||||
|
"end": 249,
|
||||||
|
"value": "\n "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "operator",
|
||||||
|
"start": 249,
|
||||||
|
"end": 251,
|
||||||
|
"value": "|>"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 251,
|
||||||
|
"end": 252,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "word",
|
||||||
|
"start": 252,
|
||||||
|
"end": 259,
|
||||||
|
"value": "extrude"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 259,
|
||||||
|
"end": 260,
|
||||||
|
"value": "("
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "number",
|
||||||
|
"start": 260,
|
||||||
|
"end": 261,
|
||||||
|
"value": "4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "comma",
|
||||||
|
"start": 261,
|
||||||
|
"end": 262,
|
||||||
|
"value": ","
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 262,
|
||||||
|
"end": 263,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "operator",
|
||||||
|
"start": 263,
|
||||||
|
"end": 264,
|
||||||
|
"value": "%"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 264,
|
||||||
|
"end": 265,
|
||||||
|
"value": ")"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 265,
|
||||||
|
"end": 266,
|
||||||
|
"value": "\n"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
463
src/wasm-lib/kcl/tests/function_sketch/ast.snap
Normal file
@ -0,0 +1,463 @@
|
|||||||
|
---
|
||||||
|
source: kcl/src/simulation_tests.rs
|
||||||
|
description: Result of parsing function_sketch.kcl
|
||||||
|
snapshot_kind: text
|
||||||
|
---
|
||||||
|
{
|
||||||
|
"Ok": {
|
||||||
|
"body": [
|
||||||
|
{
|
||||||
|
"declarations": [
|
||||||
|
{
|
||||||
|
"end": 211,
|
||||||
|
"id": {
|
||||||
|
"end": 6,
|
||||||
|
"name": "box",
|
||||||
|
"start": 3,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"init": {
|
||||||
|
"body": {
|
||||||
|
"body": [
|
||||||
|
{
|
||||||
|
"declarations": [
|
||||||
|
{
|
||||||
|
"end": 193,
|
||||||
|
"id": {
|
||||||
|
"end": 31,
|
||||||
|
"name": "myBox",
|
||||||
|
"start": 26,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"init": {
|
||||||
|
"body": [
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"end": 52,
|
||||||
|
"raw": "'XY'",
|
||||||
|
"start": 48,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": "XY"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 47,
|
||||||
|
"name": "startSketchOn",
|
||||||
|
"start": 34,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 53,
|
||||||
|
"optional": false,
|
||||||
|
"start": 34,
|
||||||
|
"type": "CallExpression",
|
||||||
|
"type": "CallExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"end": 78,
|
||||||
|
"raw": "0",
|
||||||
|
"start": 77,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 81,
|
||||||
|
"raw": "0",
|
||||||
|
"start": 80,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": 0
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 82,
|
||||||
|
"start": 76,
|
||||||
|
"type": "ArrayExpression",
|
||||||
|
"type": "ArrayExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 85,
|
||||||
|
"start": 84,
|
||||||
|
"type": "PipeSubstitution",
|
||||||
|
"type": "PipeSubstitution"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 75,
|
||||||
|
"name": "startProfileAt",
|
||||||
|
"start": 61,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 86,
|
||||||
|
"optional": false,
|
||||||
|
"start": 61,
|
||||||
|
"type": "CallExpression",
|
||||||
|
"type": "CallExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"end": 101,
|
||||||
|
"raw": "0",
|
||||||
|
"start": 100,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 104,
|
||||||
|
"name": "l",
|
||||||
|
"start": 103,
|
||||||
|
"type": "Identifier",
|
||||||
|
"type": "Identifier"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 105,
|
||||||
|
"start": 99,
|
||||||
|
"type": "ArrayExpression",
|
||||||
|
"type": "ArrayExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 108,
|
||||||
|
"start": 107,
|
||||||
|
"type": "PipeSubstitution",
|
||||||
|
"type": "PipeSubstitution"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 98,
|
||||||
|
"name": "line",
|
||||||
|
"start": 94,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 109,
|
||||||
|
"optional": false,
|
||||||
|
"start": 94,
|
||||||
|
"type": "CallExpression",
|
||||||
|
"type": "CallExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"end": 124,
|
||||||
|
"name": "w",
|
||||||
|
"start": 123,
|
||||||
|
"type": "Identifier",
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 127,
|
||||||
|
"raw": "0",
|
||||||
|
"start": 126,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": 0
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 128,
|
||||||
|
"start": 122,
|
||||||
|
"type": "ArrayExpression",
|
||||||
|
"type": "ArrayExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 131,
|
||||||
|
"start": 130,
|
||||||
|
"type": "PipeSubstitution",
|
||||||
|
"type": "PipeSubstitution"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 121,
|
||||||
|
"name": "line",
|
||||||
|
"start": 117,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 132,
|
||||||
|
"optional": false,
|
||||||
|
"start": 117,
|
||||||
|
"type": "CallExpression",
|
||||||
|
"type": "CallExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"end": 147,
|
||||||
|
"raw": "0",
|
||||||
|
"start": 146,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"argument": {
|
||||||
|
"end": 151,
|
||||||
|
"name": "l",
|
||||||
|
"start": 150,
|
||||||
|
"type": "Identifier",
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 151,
|
||||||
|
"operator": "-",
|
||||||
|
"start": 149,
|
||||||
|
"type": "UnaryExpression",
|
||||||
|
"type": "UnaryExpression"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 152,
|
||||||
|
"start": 145,
|
||||||
|
"type": "ArrayExpression",
|
||||||
|
"type": "ArrayExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 155,
|
||||||
|
"start": 154,
|
||||||
|
"type": "PipeSubstitution",
|
||||||
|
"type": "PipeSubstitution"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 144,
|
||||||
|
"name": "line",
|
||||||
|
"start": 140,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 156,
|
||||||
|
"optional": false,
|
||||||
|
"start": 140,
|
||||||
|
"type": "CallExpression",
|
||||||
|
"type": "CallExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"end": 171,
|
||||||
|
"start": 170,
|
||||||
|
"type": "PipeSubstitution",
|
||||||
|
"type": "PipeSubstitution"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 169,
|
||||||
|
"name": "close",
|
||||||
|
"start": 164,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 172,
|
||||||
|
"optional": false,
|
||||||
|
"start": 164,
|
||||||
|
"type": "CallExpression",
|
||||||
|
"type": "CallExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"end": 189,
|
||||||
|
"name": "h",
|
||||||
|
"start": 188,
|
||||||
|
"type": "Identifier",
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 192,
|
||||||
|
"start": 191,
|
||||||
|
"type": "PipeSubstitution",
|
||||||
|
"type": "PipeSubstitution"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 187,
|
||||||
|
"name": "extrude",
|
||||||
|
"start": 180,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 193,
|
||||||
|
"optional": false,
|
||||||
|
"start": 180,
|
||||||
|
"type": "CallExpression",
|
||||||
|
"type": "CallExpression"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 193,
|
||||||
|
"start": 34,
|
||||||
|
"type": "PipeExpression",
|
||||||
|
"type": "PipeExpression"
|
||||||
|
},
|
||||||
|
"start": 26,
|
||||||
|
"type": "VariableDeclarator"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 193,
|
||||||
|
"kind": "const",
|
||||||
|
"start": 26,
|
||||||
|
"type": "VariableDeclaration",
|
||||||
|
"type": "VariableDeclaration"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"argument": {
|
||||||
|
"end": 209,
|
||||||
|
"name": "myBox",
|
||||||
|
"start": 204,
|
||||||
|
"type": "Identifier",
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 209,
|
||||||
|
"start": 197,
|
||||||
|
"type": "ReturnStatement",
|
||||||
|
"type": "ReturnStatement"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 211,
|
||||||
|
"nonCodeMeta": {
|
||||||
|
"nonCodeNodes": {
|
||||||
|
"0": [
|
||||||
|
{
|
||||||
|
"end": 197,
|
||||||
|
"start": 193,
|
||||||
|
"type": "NonCodeNode",
|
||||||
|
"value": {
|
||||||
|
"type": "newLine"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"startNodes": []
|
||||||
|
},
|
||||||
|
"start": 22
|
||||||
|
},
|
||||||
|
"end": 211,
|
||||||
|
"params": [
|
||||||
|
{
|
||||||
|
"type": "Parameter",
|
||||||
|
"identifier": {
|
||||||
|
"end": 11,
|
||||||
|
"name": "h",
|
||||||
|
"start": 10,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"optional": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Parameter",
|
||||||
|
"identifier": {
|
||||||
|
"end": 14,
|
||||||
|
"name": "l",
|
||||||
|
"start": 13,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"optional": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Parameter",
|
||||||
|
"identifier": {
|
||||||
|
"end": 17,
|
||||||
|
"name": "w",
|
||||||
|
"start": 16,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"optional": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"start": 9,
|
||||||
|
"type": "FunctionExpression",
|
||||||
|
"type": "FunctionExpression"
|
||||||
|
},
|
||||||
|
"start": 3,
|
||||||
|
"type": "VariableDeclarator"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 211,
|
||||||
|
"kind": "fn",
|
||||||
|
"start": 0,
|
||||||
|
"type": "VariableDeclaration",
|
||||||
|
"type": "VariableDeclaration"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"declarations": [
|
||||||
|
{
|
||||||
|
"end": 234,
|
||||||
|
"id": {
|
||||||
|
"end": 218,
|
||||||
|
"name": "fnBox",
|
||||||
|
"start": 213,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"init": {
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"end": 226,
|
||||||
|
"raw": "3",
|
||||||
|
"start": 225,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 229,
|
||||||
|
"raw": "6",
|
||||||
|
"start": 228,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": 6
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 233,
|
||||||
|
"raw": "10",
|
||||||
|
"start": 231,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": 10
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 224,
|
||||||
|
"name": "box",
|
||||||
|
"start": 221,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 234,
|
||||||
|
"optional": false,
|
||||||
|
"start": 221,
|
||||||
|
"type": "CallExpression",
|
||||||
|
"type": "CallExpression"
|
||||||
|
},
|
||||||
|
"start": 213,
|
||||||
|
"type": "VariableDeclarator"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 234,
|
||||||
|
"kind": "const",
|
||||||
|
"start": 213,
|
||||||
|
"type": "VariableDeclaration",
|
||||||
|
"type": "VariableDeclaration"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 235,
|
||||||
|
"nonCodeMeta": {
|
||||||
|
"nonCodeNodes": {
|
||||||
|
"0": [
|
||||||
|
{
|
||||||
|
"end": 213,
|
||||||
|
"start": 211,
|
||||||
|
"type": "NonCodeNode",
|
||||||
|
"value": {
|
||||||
|
"type": "newLine"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"startNodes": []
|
||||||
|
},
|
||||||
|
"start": 0
|
||||||
|
}
|
||||||
|
}
|
13
src/wasm-lib/kcl/tests/function_sketch/input.kcl
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
fn box = (h, l, w) => {
|
||||||
|
myBox = startSketchOn('XY')
|
||||||
|
|> startProfileAt([0, 0], %)
|
||||||
|
|> line([0, l], %)
|
||||||
|
|> line([w, 0], %)
|
||||||
|
|> line([0, -l], %)
|
||||||
|
|> close(%)
|
||||||
|
|> extrude(h, %)
|
||||||
|
|
||||||
|
return myBox
|
||||||
|
}
|
||||||
|
|
||||||
|
fnBox = box(3, 6, 10)
|
637
src/wasm-lib/kcl/tests/function_sketch/program_memory.snap
Normal file
@ -0,0 +1,637 @@
|
|||||||
|
---
|
||||||
|
source: kcl/src/simulation_tests.rs
|
||||||
|
description: Program memory after executing function_sketch.kcl
|
||||||
|
snapshot_kind: text
|
||||||
|
---
|
||||||
|
{
|
||||||
|
"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": []
|
||||||
|
},
|
||||||
|
"box": {
|
||||||
|
"type": "Function",
|
||||||
|
"expression": {
|
||||||
|
"body": {
|
||||||
|
"body": [
|
||||||
|
{
|
||||||
|
"declarations": [
|
||||||
|
{
|
||||||
|
"end": 193,
|
||||||
|
"id": {
|
||||||
|
"end": 31,
|
||||||
|
"name": "myBox",
|
||||||
|
"start": 26,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"init": {
|
||||||
|
"body": [
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"end": 52,
|
||||||
|
"raw": "'XY'",
|
||||||
|
"start": 48,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": "XY"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 47,
|
||||||
|
"name": "startSketchOn",
|
||||||
|
"start": 34,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 53,
|
||||||
|
"optional": false,
|
||||||
|
"start": 34,
|
||||||
|
"type": "CallExpression",
|
||||||
|
"type": "CallExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"end": 78,
|
||||||
|
"raw": "0",
|
||||||
|
"start": 77,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 81,
|
||||||
|
"raw": "0",
|
||||||
|
"start": 80,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": 0
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 82,
|
||||||
|
"start": 76,
|
||||||
|
"type": "ArrayExpression",
|
||||||
|
"type": "ArrayExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 85,
|
||||||
|
"start": 84,
|
||||||
|
"type": "PipeSubstitution",
|
||||||
|
"type": "PipeSubstitution"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 75,
|
||||||
|
"name": "startProfileAt",
|
||||||
|
"start": 61,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 86,
|
||||||
|
"optional": false,
|
||||||
|
"start": 61,
|
||||||
|
"type": "CallExpression",
|
||||||
|
"type": "CallExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"end": 101,
|
||||||
|
"raw": "0",
|
||||||
|
"start": 100,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 104,
|
||||||
|
"name": "l",
|
||||||
|
"start": 103,
|
||||||
|
"type": "Identifier",
|
||||||
|
"type": "Identifier"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 105,
|
||||||
|
"start": 99,
|
||||||
|
"type": "ArrayExpression",
|
||||||
|
"type": "ArrayExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 108,
|
||||||
|
"start": 107,
|
||||||
|
"type": "PipeSubstitution",
|
||||||
|
"type": "PipeSubstitution"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 98,
|
||||||
|
"name": "line",
|
||||||
|
"start": 94,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 109,
|
||||||
|
"optional": false,
|
||||||
|
"start": 94,
|
||||||
|
"type": "CallExpression",
|
||||||
|
"type": "CallExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"end": 124,
|
||||||
|
"name": "w",
|
||||||
|
"start": 123,
|
||||||
|
"type": "Identifier",
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 127,
|
||||||
|
"raw": "0",
|
||||||
|
"start": 126,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": 0
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 128,
|
||||||
|
"start": 122,
|
||||||
|
"type": "ArrayExpression",
|
||||||
|
"type": "ArrayExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 131,
|
||||||
|
"start": 130,
|
||||||
|
"type": "PipeSubstitution",
|
||||||
|
"type": "PipeSubstitution"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 121,
|
||||||
|
"name": "line",
|
||||||
|
"start": 117,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 132,
|
||||||
|
"optional": false,
|
||||||
|
"start": 117,
|
||||||
|
"type": "CallExpression",
|
||||||
|
"type": "CallExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"end": 147,
|
||||||
|
"raw": "0",
|
||||||
|
"start": 146,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"argument": {
|
||||||
|
"end": 151,
|
||||||
|
"name": "l",
|
||||||
|
"start": 150,
|
||||||
|
"type": "Identifier",
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 151,
|
||||||
|
"operator": "-",
|
||||||
|
"start": 149,
|
||||||
|
"type": "UnaryExpression",
|
||||||
|
"type": "UnaryExpression"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 152,
|
||||||
|
"start": 145,
|
||||||
|
"type": "ArrayExpression",
|
||||||
|
"type": "ArrayExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 155,
|
||||||
|
"start": 154,
|
||||||
|
"type": "PipeSubstitution",
|
||||||
|
"type": "PipeSubstitution"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 144,
|
||||||
|
"name": "line",
|
||||||
|
"start": 140,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 156,
|
||||||
|
"optional": false,
|
||||||
|
"start": 140,
|
||||||
|
"type": "CallExpression",
|
||||||
|
"type": "CallExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"end": 171,
|
||||||
|
"start": 170,
|
||||||
|
"type": "PipeSubstitution",
|
||||||
|
"type": "PipeSubstitution"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 169,
|
||||||
|
"name": "close",
|
||||||
|
"start": 164,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 172,
|
||||||
|
"optional": false,
|
||||||
|
"start": 164,
|
||||||
|
"type": "CallExpression",
|
||||||
|
"type": "CallExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"end": 189,
|
||||||
|
"name": "h",
|
||||||
|
"start": 188,
|
||||||
|
"type": "Identifier",
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 192,
|
||||||
|
"start": 191,
|
||||||
|
"type": "PipeSubstitution",
|
||||||
|
"type": "PipeSubstitution"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 187,
|
||||||
|
"name": "extrude",
|
||||||
|
"start": 180,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 193,
|
||||||
|
"optional": false,
|
||||||
|
"start": 180,
|
||||||
|
"type": "CallExpression",
|
||||||
|
"type": "CallExpression"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 193,
|
||||||
|
"start": 34,
|
||||||
|
"type": "PipeExpression",
|
||||||
|
"type": "PipeExpression"
|
||||||
|
},
|
||||||
|
"start": 26,
|
||||||
|
"type": "VariableDeclarator"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 193,
|
||||||
|
"kind": "const",
|
||||||
|
"start": 26,
|
||||||
|
"type": "VariableDeclaration",
|
||||||
|
"type": "VariableDeclaration"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"argument": {
|
||||||
|
"end": 209,
|
||||||
|
"name": "myBox",
|
||||||
|
"start": 204,
|
||||||
|
"type": "Identifier",
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 209,
|
||||||
|
"start": 197,
|
||||||
|
"type": "ReturnStatement",
|
||||||
|
"type": "ReturnStatement"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 211,
|
||||||
|
"nonCodeMeta": {
|
||||||
|
"nonCodeNodes": {
|
||||||
|
"0": [
|
||||||
|
{
|
||||||
|
"end": 197,
|
||||||
|
"start": 193,
|
||||||
|
"type": "NonCodeNode",
|
||||||
|
"value": {
|
||||||
|
"type": "newLine"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"startNodes": []
|
||||||
|
},
|
||||||
|
"start": 22
|
||||||
|
},
|
||||||
|
"end": 211,
|
||||||
|
"params": [
|
||||||
|
{
|
||||||
|
"type": "Parameter",
|
||||||
|
"identifier": {
|
||||||
|
"end": 11,
|
||||||
|
"name": "h",
|
||||||
|
"start": 10,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"optional": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Parameter",
|
||||||
|
"identifier": {
|
||||||
|
"end": 14,
|
||||||
|
"name": "l",
|
||||||
|
"start": 13,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"optional": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Parameter",
|
||||||
|
"identifier": {
|
||||||
|
"end": 17,
|
||||||
|
"name": "w",
|
||||||
|
"start": 16,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"optional": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"start": 9,
|
||||||
|
"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": [
|
||||||
|
9,
|
||||||
|
211,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"fnBox": {
|
||||||
|
"type": "Solid",
|
||||||
|
"type": "Solid",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"faceId": "[uuid]",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [
|
||||||
|
94,
|
||||||
|
109,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"type": "extrudePlane"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"faceId": "[uuid]",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [
|
||||||
|
117,
|
||||||
|
132,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"type": "extrudePlane"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"faceId": "[uuid]",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [
|
||||||
|
140,
|
||||||
|
156,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"type": "extrudePlane"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"faceId": "[uuid]",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [
|
||||||
|
164,
|
||||||
|
172,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"type": "extrudePlane"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"sketch": {
|
||||||
|
"type": "Sketch",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"paths": [
|
||||||
|
{
|
||||||
|
"__geoMeta": {
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [
|
||||||
|
94,
|
||||||
|
109,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"from": [
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"to": [
|
||||||
|
0.0,
|
||||||
|
6.0
|
||||||
|
],
|
||||||
|
"type": "ToPoint"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__geoMeta": {
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [
|
||||||
|
117,
|
||||||
|
132,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"from": [
|
||||||
|
0.0,
|
||||||
|
6.0
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"to": [
|
||||||
|
10.0,
|
||||||
|
6.0
|
||||||
|
],
|
||||||
|
"type": "ToPoint"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__geoMeta": {
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [
|
||||||
|
140,
|
||||||
|
156,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"from": [
|
||||||
|
10.0,
|
||||||
|
6.0
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"to": [
|
||||||
|
10.0,
|
||||||
|
0.0
|
||||||
|
],
|
||||||
|
"type": "ToPoint"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__geoMeta": {
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [
|
||||||
|
164,
|
||||||
|
172,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"from": [
|
||||||
|
10.0,
|
||||||
|
0.0
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"to": [
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
],
|
||||||
|
"type": "ToPoint"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"on": {
|
||||||
|
"type": "plane",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"value": "XY",
|
||||||
|
"origin": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 0.0,
|
||||||
|
"z": 0.0
|
||||||
|
},
|
||||||
|
"xAxis": {
|
||||||
|
"x": 1.0,
|
||||||
|
"y": 0.0,
|
||||||
|
"z": 0.0
|
||||||
|
},
|
||||||
|
"yAxis": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 1.0,
|
||||||
|
"z": 0.0
|
||||||
|
},
|
||||||
|
"zAxis": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 0.0,
|
||||||
|
"z": 1.0
|
||||||
|
},
|
||||||
|
"__meta": []
|
||||||
|
},
|
||||||
|
"start": {
|
||||||
|
"from": [
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
],
|
||||||
|
"to": [
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"__geoMeta": {
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [
|
||||||
|
61,
|
||||||
|
86,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"__meta": [
|
||||||
|
{
|
||||||
|
"sourceRange": [
|
||||||
|
61,
|
||||||
|
86,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"height": 3.0,
|
||||||
|
"startCapId": "[uuid]",
|
||||||
|
"endCapId": "[uuid]",
|
||||||
|
"__meta": [
|
||||||
|
{
|
||||||
|
"sourceRange": [
|
||||||
|
61,
|
||||||
|
86,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"parent": null
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"currentEnv": 0,
|
||||||
|
"return": null
|
||||||
|
}
|
BIN
src/wasm-lib/kcl/tests/function_sketch/rendered_model.png
Normal file
After Width: | Height: | Size: 69 KiB |
777
src/wasm-lib/kcl/tests/function_sketch/tokens.snap
Normal file
@ -0,0 +1,777 @@
|
|||||||
|
---
|
||||||
|
source: kcl/src/simulation_tests.rs
|
||||||
|
description: Result of tokenizing function_sketch.kcl
|
||||||
|
snapshot_kind: text
|
||||||
|
---
|
||||||
|
{
|
||||||
|
"Ok": [
|
||||||
|
{
|
||||||
|
"type": "keyword",
|
||||||
|
"start": 0,
|
||||||
|
"end": 2,
|
||||||
|
"value": "fn"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 2,
|
||||||
|
"end": 3,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "word",
|
||||||
|
"start": 3,
|
||||||
|
"end": 6,
|
||||||
|
"value": "box"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 6,
|
||||||
|
"end": 7,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "operator",
|
||||||
|
"start": 7,
|
||||||
|
"end": 8,
|
||||||
|
"value": "="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 8,
|
||||||
|
"end": 9,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 9,
|
||||||
|
"end": 10,
|
||||||
|
"value": "("
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "word",
|
||||||
|
"start": 10,
|
||||||
|
"end": 11,
|
||||||
|
"value": "h"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "comma",
|
||||||
|
"start": 11,
|
||||||
|
"end": 12,
|
||||||
|
"value": ","
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 12,
|
||||||
|
"end": 13,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "word",
|
||||||
|
"start": 13,
|
||||||
|
"end": 14,
|
||||||
|
"value": "l"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "comma",
|
||||||
|
"start": 14,
|
||||||
|
"end": 15,
|
||||||
|
"value": ","
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 15,
|
||||||
|
"end": 16,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "word",
|
||||||
|
"start": 16,
|
||||||
|
"end": 17,
|
||||||
|
"value": "w"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 17,
|
||||||
|
"end": 18,
|
||||||
|
"value": ")"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 18,
|
||||||
|
"end": 19,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "operator",
|
||||||
|
"start": 19,
|
||||||
|
"end": 21,
|
||||||
|
"value": "=>"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 21,
|
||||||
|
"end": 22,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 22,
|
||||||
|
"end": 23,
|
||||||
|
"value": "{"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 23,
|
||||||
|
"end": 26,
|
||||||
|
"value": "\n "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "word",
|
||||||
|
"start": 26,
|
||||||
|
"end": 31,
|
||||||
|
"value": "myBox"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 31,
|
||||||
|
"end": 32,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "operator",
|
||||||
|
"start": 32,
|
||||||
|
"end": 33,
|
||||||
|
"value": "="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 33,
|
||||||
|
"end": 34,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "word",
|
||||||
|
"start": 34,
|
||||||
|
"end": 47,
|
||||||
|
"value": "startSketchOn"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 47,
|
||||||
|
"end": 48,
|
||||||
|
"value": "("
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "string",
|
||||||
|
"start": 48,
|
||||||
|
"end": 52,
|
||||||
|
"value": "'XY'"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 52,
|
||||||
|
"end": 53,
|
||||||
|
"value": ")"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 53,
|
||||||
|
"end": 58,
|
||||||
|
"value": "\n "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "operator",
|
||||||
|
"start": 58,
|
||||||
|
"end": 60,
|
||||||
|
"value": "|>"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 60,
|
||||||
|
"end": 61,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "word",
|
||||||
|
"start": 61,
|
||||||
|
"end": 75,
|
||||||
|
"value": "startProfileAt"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 75,
|
||||||
|
"end": 76,
|
||||||
|
"value": "("
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 76,
|
||||||
|
"end": 77,
|
||||||
|
"value": "["
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "number",
|
||||||
|
"start": 77,
|
||||||
|
"end": 78,
|
||||||
|
"value": "0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "comma",
|
||||||
|
"start": 78,
|
||||||
|
"end": 79,
|
||||||
|
"value": ","
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 79,
|
||||||
|
"end": 80,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "number",
|
||||||
|
"start": 80,
|
||||||
|
"end": 81,
|
||||||
|
"value": "0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 81,
|
||||||
|
"end": 82,
|
||||||
|
"value": "]"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "comma",
|
||||||
|
"start": 82,
|
||||||
|
"end": 83,
|
||||||
|
"value": ","
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 83,
|
||||||
|
"end": 84,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "operator",
|
||||||
|
"start": 84,
|
||||||
|
"end": 85,
|
||||||
|
"value": "%"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 85,
|
||||||
|
"end": 86,
|
||||||
|
"value": ")"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 86,
|
||||||
|
"end": 91,
|
||||||
|
"value": "\n "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "operator",
|
||||||
|
"start": 91,
|
||||||
|
"end": 93,
|
||||||
|
"value": "|>"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 93,
|
||||||
|
"end": 94,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "word",
|
||||||
|
"start": 94,
|
||||||
|
"end": 98,
|
||||||
|
"value": "line"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 98,
|
||||||
|
"end": 99,
|
||||||
|
"value": "("
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 99,
|
||||||
|
"end": 100,
|
||||||
|
"value": "["
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "number",
|
||||||
|
"start": 100,
|
||||||
|
"end": 101,
|
||||||
|
"value": "0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "comma",
|
||||||
|
"start": 101,
|
||||||
|
"end": 102,
|
||||||
|
"value": ","
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 102,
|
||||||
|
"end": 103,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "word",
|
||||||
|
"start": 103,
|
||||||
|
"end": 104,
|
||||||
|
"value": "l"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 104,
|
||||||
|
"end": 105,
|
||||||
|
"value": "]"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "comma",
|
||||||
|
"start": 105,
|
||||||
|
"end": 106,
|
||||||
|
"value": ","
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 106,
|
||||||
|
"end": 107,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "operator",
|
||||||
|
"start": 107,
|
||||||
|
"end": 108,
|
||||||
|
"value": "%"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 108,
|
||||||
|
"end": 109,
|
||||||
|
"value": ")"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 109,
|
||||||
|
"end": 114,
|
||||||
|
"value": "\n "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "operator",
|
||||||
|
"start": 114,
|
||||||
|
"end": 116,
|
||||||
|
"value": "|>"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 116,
|
||||||
|
"end": 117,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "word",
|
||||||
|
"start": 117,
|
||||||
|
"end": 121,
|
||||||
|
"value": "line"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 121,
|
||||||
|
"end": 122,
|
||||||
|
"value": "("
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 122,
|
||||||
|
"end": 123,
|
||||||
|
"value": "["
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "word",
|
||||||
|
"start": 123,
|
||||||
|
"end": 124,
|
||||||
|
"value": "w"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "comma",
|
||||||
|
"start": 124,
|
||||||
|
"end": 125,
|
||||||
|
"value": ","
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 125,
|
||||||
|
"end": 126,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "number",
|
||||||
|
"start": 126,
|
||||||
|
"end": 127,
|
||||||
|
"value": "0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 127,
|
||||||
|
"end": 128,
|
||||||
|
"value": "]"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "comma",
|
||||||
|
"start": 128,
|
||||||
|
"end": 129,
|
||||||
|
"value": ","
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 129,
|
||||||
|
"end": 130,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "operator",
|
||||||
|
"start": 130,
|
||||||
|
"end": 131,
|
||||||
|
"value": "%"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 131,
|
||||||
|
"end": 132,
|
||||||
|
"value": ")"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 132,
|
||||||
|
"end": 137,
|
||||||
|
"value": "\n "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "operator",
|
||||||
|
"start": 137,
|
||||||
|
"end": 139,
|
||||||
|
"value": "|>"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 139,
|
||||||
|
"end": 140,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "word",
|
||||||
|
"start": 140,
|
||||||
|
"end": 144,
|
||||||
|
"value": "line"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 144,
|
||||||
|
"end": 145,
|
||||||
|
"value": "("
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 145,
|
||||||
|
"end": 146,
|
||||||
|
"value": "["
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "number",
|
||||||
|
"start": 146,
|
||||||
|
"end": 147,
|
||||||
|
"value": "0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "comma",
|
||||||
|
"start": 147,
|
||||||
|
"end": 148,
|
||||||
|
"value": ","
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 148,
|
||||||
|
"end": 149,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "operator",
|
||||||
|
"start": 149,
|
||||||
|
"end": 150,
|
||||||
|
"value": "-"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "word",
|
||||||
|
"start": 150,
|
||||||
|
"end": 151,
|
||||||
|
"value": "l"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 151,
|
||||||
|
"end": 152,
|
||||||
|
"value": "]"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "comma",
|
||||||
|
"start": 152,
|
||||||
|
"end": 153,
|
||||||
|
"value": ","
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 153,
|
||||||
|
"end": 154,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "operator",
|
||||||
|
"start": 154,
|
||||||
|
"end": 155,
|
||||||
|
"value": "%"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 155,
|
||||||
|
"end": 156,
|
||||||
|
"value": ")"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 156,
|
||||||
|
"end": 161,
|
||||||
|
"value": "\n "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "operator",
|
||||||
|
"start": 161,
|
||||||
|
"end": 163,
|
||||||
|
"value": "|>"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 163,
|
||||||
|
"end": 164,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "word",
|
||||||
|
"start": 164,
|
||||||
|
"end": 169,
|
||||||
|
"value": "close"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 169,
|
||||||
|
"end": 170,
|
||||||
|
"value": "("
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "operator",
|
||||||
|
"start": 170,
|
||||||
|
"end": 171,
|
||||||
|
"value": "%"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 171,
|
||||||
|
"end": 172,
|
||||||
|
"value": ")"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 172,
|
||||||
|
"end": 177,
|
||||||
|
"value": "\n "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "operator",
|
||||||
|
"start": 177,
|
||||||
|
"end": 179,
|
||||||
|
"value": "|>"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 179,
|
||||||
|
"end": 180,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "word",
|
||||||
|
"start": 180,
|
||||||
|
"end": 187,
|
||||||
|
"value": "extrude"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 187,
|
||||||
|
"end": 188,
|
||||||
|
"value": "("
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "word",
|
||||||
|
"start": 188,
|
||||||
|
"end": 189,
|
||||||
|
"value": "h"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "comma",
|
||||||
|
"start": 189,
|
||||||
|
"end": 190,
|
||||||
|
"value": ","
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 190,
|
||||||
|
"end": 191,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "operator",
|
||||||
|
"start": 191,
|
||||||
|
"end": 192,
|
||||||
|
"value": "%"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 192,
|
||||||
|
"end": 193,
|
||||||
|
"value": ")"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 193,
|
||||||
|
"end": 197,
|
||||||
|
"value": "\n\n "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "keyword",
|
||||||
|
"start": 197,
|
||||||
|
"end": 203,
|
||||||
|
"value": "return"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 203,
|
||||||
|
"end": 204,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "word",
|
||||||
|
"start": 204,
|
||||||
|
"end": 209,
|
||||||
|
"value": "myBox"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 209,
|
||||||
|
"end": 210,
|
||||||
|
"value": "\n"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 210,
|
||||||
|
"end": 211,
|
||||||
|
"value": "}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 211,
|
||||||
|
"end": 213,
|
||||||
|
"value": "\n\n"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "word",
|
||||||
|
"start": 213,
|
||||||
|
"end": 218,
|
||||||
|
"value": "fnBox"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 218,
|
||||||
|
"end": 219,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "operator",
|
||||||
|
"start": 219,
|
||||||
|
"end": 220,
|
||||||
|
"value": "="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 220,
|
||||||
|
"end": 221,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "word",
|
||||||
|
"start": 221,
|
||||||
|
"end": 224,
|
||||||
|
"value": "box"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 224,
|
||||||
|
"end": 225,
|
||||||
|
"value": "("
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "number",
|
||||||
|
"start": 225,
|
||||||
|
"end": 226,
|
||||||
|
"value": "3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "comma",
|
||||||
|
"start": 226,
|
||||||
|
"end": 227,
|
||||||
|
"value": ","
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 227,
|
||||||
|
"end": 228,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "number",
|
||||||
|
"start": 228,
|
||||||
|
"end": 229,
|
||||||
|
"value": "6"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "comma",
|
||||||
|
"start": 229,
|
||||||
|
"end": 230,
|
||||||
|
"value": ","
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 230,
|
||||||
|
"end": 231,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "number",
|
||||||
|
"start": 231,
|
||||||
|
"end": 233,
|
||||||
|
"value": "10"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 233,
|
||||||
|
"end": 234,
|
||||||
|
"value": ")"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 234,
|
||||||
|
"end": 235,
|
||||||
|
"value": "\n"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
480
src/wasm-lib/kcl/tests/function_sketch_with_position/ast.snap
Normal file
@ -0,0 +1,480 @@
|
|||||||
|
---
|
||||||
|
source: kcl/src/simulation_tests.rs
|
||||||
|
description: Result of parsing function_sketch_with_position.kcl
|
||||||
|
snapshot_kind: text
|
||||||
|
---
|
||||||
|
{
|
||||||
|
"Ok": {
|
||||||
|
"body": [
|
||||||
|
{
|
||||||
|
"declarations": [
|
||||||
|
{
|
||||||
|
"end": 209,
|
||||||
|
"id": {
|
||||||
|
"end": 6,
|
||||||
|
"name": "box",
|
||||||
|
"start": 3,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"init": {
|
||||||
|
"body": {
|
||||||
|
"body": [
|
||||||
|
{
|
||||||
|
"declarations": [
|
||||||
|
{
|
||||||
|
"end": 191,
|
||||||
|
"id": {
|
||||||
|
"end": 34,
|
||||||
|
"name": "myBox",
|
||||||
|
"start": 29,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"init": {
|
||||||
|
"body": [
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"end": 55,
|
||||||
|
"raw": "'XY'",
|
||||||
|
"start": 51,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": "XY"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 50,
|
||||||
|
"name": "startSketchOn",
|
||||||
|
"start": 37,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 56,
|
||||||
|
"optional": false,
|
||||||
|
"start": 37,
|
||||||
|
"type": "CallExpression",
|
||||||
|
"type": "CallExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"end": 80,
|
||||||
|
"name": "p",
|
||||||
|
"start": 79,
|
||||||
|
"type": "Identifier",
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 83,
|
||||||
|
"start": 82,
|
||||||
|
"type": "PipeSubstitution",
|
||||||
|
"type": "PipeSubstitution"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 78,
|
||||||
|
"name": "startProfileAt",
|
||||||
|
"start": 64,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 84,
|
||||||
|
"optional": false,
|
||||||
|
"start": 64,
|
||||||
|
"type": "CallExpression",
|
||||||
|
"type": "CallExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"end": 99,
|
||||||
|
"raw": "0",
|
||||||
|
"start": 98,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 102,
|
||||||
|
"name": "l",
|
||||||
|
"start": 101,
|
||||||
|
"type": "Identifier",
|
||||||
|
"type": "Identifier"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 103,
|
||||||
|
"start": 97,
|
||||||
|
"type": "ArrayExpression",
|
||||||
|
"type": "ArrayExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 106,
|
||||||
|
"start": 105,
|
||||||
|
"type": "PipeSubstitution",
|
||||||
|
"type": "PipeSubstitution"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 96,
|
||||||
|
"name": "line",
|
||||||
|
"start": 92,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 107,
|
||||||
|
"optional": false,
|
||||||
|
"start": 92,
|
||||||
|
"type": "CallExpression",
|
||||||
|
"type": "CallExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"end": 122,
|
||||||
|
"name": "w",
|
||||||
|
"start": 121,
|
||||||
|
"type": "Identifier",
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 125,
|
||||||
|
"raw": "0",
|
||||||
|
"start": 124,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": 0
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 126,
|
||||||
|
"start": 120,
|
||||||
|
"type": "ArrayExpression",
|
||||||
|
"type": "ArrayExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 129,
|
||||||
|
"start": 128,
|
||||||
|
"type": "PipeSubstitution",
|
||||||
|
"type": "PipeSubstitution"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 119,
|
||||||
|
"name": "line",
|
||||||
|
"start": 115,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 130,
|
||||||
|
"optional": false,
|
||||||
|
"start": 115,
|
||||||
|
"type": "CallExpression",
|
||||||
|
"type": "CallExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"end": 145,
|
||||||
|
"raw": "0",
|
||||||
|
"start": 144,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"argument": {
|
||||||
|
"end": 149,
|
||||||
|
"name": "l",
|
||||||
|
"start": 148,
|
||||||
|
"type": "Identifier",
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 149,
|
||||||
|
"operator": "-",
|
||||||
|
"start": 147,
|
||||||
|
"type": "UnaryExpression",
|
||||||
|
"type": "UnaryExpression"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 150,
|
||||||
|
"start": 143,
|
||||||
|
"type": "ArrayExpression",
|
||||||
|
"type": "ArrayExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 153,
|
||||||
|
"start": 152,
|
||||||
|
"type": "PipeSubstitution",
|
||||||
|
"type": "PipeSubstitution"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 142,
|
||||||
|
"name": "line",
|
||||||
|
"start": 138,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 154,
|
||||||
|
"optional": false,
|
||||||
|
"start": 138,
|
||||||
|
"type": "CallExpression",
|
||||||
|
"type": "CallExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"end": 169,
|
||||||
|
"start": 168,
|
||||||
|
"type": "PipeSubstitution",
|
||||||
|
"type": "PipeSubstitution"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 167,
|
||||||
|
"name": "close",
|
||||||
|
"start": 162,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 170,
|
||||||
|
"optional": false,
|
||||||
|
"start": 162,
|
||||||
|
"type": "CallExpression",
|
||||||
|
"type": "CallExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"end": 187,
|
||||||
|
"name": "h",
|
||||||
|
"start": 186,
|
||||||
|
"type": "Identifier",
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 190,
|
||||||
|
"start": 189,
|
||||||
|
"type": "PipeSubstitution",
|
||||||
|
"type": "PipeSubstitution"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 185,
|
||||||
|
"name": "extrude",
|
||||||
|
"start": 178,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 191,
|
||||||
|
"optional": false,
|
||||||
|
"start": 178,
|
||||||
|
"type": "CallExpression",
|
||||||
|
"type": "CallExpression"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 191,
|
||||||
|
"start": 37,
|
||||||
|
"type": "PipeExpression",
|
||||||
|
"type": "PipeExpression"
|
||||||
|
},
|
||||||
|
"start": 29,
|
||||||
|
"type": "VariableDeclarator"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 191,
|
||||||
|
"kind": "const",
|
||||||
|
"start": 29,
|
||||||
|
"type": "VariableDeclaration",
|
||||||
|
"type": "VariableDeclaration"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"argument": {
|
||||||
|
"end": 207,
|
||||||
|
"name": "myBox",
|
||||||
|
"start": 202,
|
||||||
|
"type": "Identifier",
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 207,
|
||||||
|
"start": 195,
|
||||||
|
"type": "ReturnStatement",
|
||||||
|
"type": "ReturnStatement"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 209,
|
||||||
|
"nonCodeMeta": {
|
||||||
|
"nonCodeNodes": {
|
||||||
|
"0": [
|
||||||
|
{
|
||||||
|
"end": 195,
|
||||||
|
"start": 191,
|
||||||
|
"type": "NonCodeNode",
|
||||||
|
"value": {
|
||||||
|
"type": "newLine"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"startNodes": []
|
||||||
|
},
|
||||||
|
"start": 25
|
||||||
|
},
|
||||||
|
"end": 209,
|
||||||
|
"params": [
|
||||||
|
{
|
||||||
|
"type": "Parameter",
|
||||||
|
"identifier": {
|
||||||
|
"end": 11,
|
||||||
|
"name": "p",
|
||||||
|
"start": 10,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"optional": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Parameter",
|
||||||
|
"identifier": {
|
||||||
|
"end": 14,
|
||||||
|
"name": "h",
|
||||||
|
"start": 13,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"optional": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Parameter",
|
||||||
|
"identifier": {
|
||||||
|
"end": 17,
|
||||||
|
"name": "l",
|
||||||
|
"start": 16,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"optional": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Parameter",
|
||||||
|
"identifier": {
|
||||||
|
"end": 20,
|
||||||
|
"name": "w",
|
||||||
|
"start": 19,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"optional": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"start": 9,
|
||||||
|
"type": "FunctionExpression",
|
||||||
|
"type": "FunctionExpression"
|
||||||
|
},
|
||||||
|
"start": 3,
|
||||||
|
"type": "VariableDeclarator"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 209,
|
||||||
|
"kind": "fn",
|
||||||
|
"start": 0,
|
||||||
|
"type": "VariableDeclaration",
|
||||||
|
"type": "VariableDeclaration"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"declarations": [
|
||||||
|
{
|
||||||
|
"end": 240,
|
||||||
|
"id": {
|
||||||
|
"end": 216,
|
||||||
|
"name": "thing",
|
||||||
|
"start": 211,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"init": {
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"end": 225,
|
||||||
|
"raw": "0",
|
||||||
|
"start": 224,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 228,
|
||||||
|
"raw": "0",
|
||||||
|
"start": 227,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": 0
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 229,
|
||||||
|
"start": 223,
|
||||||
|
"type": "ArrayExpression",
|
||||||
|
"type": "ArrayExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 232,
|
||||||
|
"raw": "3",
|
||||||
|
"start": 231,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 235,
|
||||||
|
"raw": "6",
|
||||||
|
"start": 234,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": 6
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 239,
|
||||||
|
"raw": "10",
|
||||||
|
"start": 237,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": 10
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 222,
|
||||||
|
"name": "box",
|
||||||
|
"start": 219,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 240,
|
||||||
|
"optional": false,
|
||||||
|
"start": 219,
|
||||||
|
"type": "CallExpression",
|
||||||
|
"type": "CallExpression"
|
||||||
|
},
|
||||||
|
"start": 211,
|
||||||
|
"type": "VariableDeclarator"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 240,
|
||||||
|
"kind": "const",
|
||||||
|
"start": 211,
|
||||||
|
"type": "VariableDeclaration",
|
||||||
|
"type": "VariableDeclaration"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 241,
|
||||||
|
"nonCodeMeta": {
|
||||||
|
"nonCodeNodes": {
|
||||||
|
"0": [
|
||||||
|
{
|
||||||
|
"end": 211,
|
||||||
|
"start": 209,
|
||||||
|
"type": "NonCodeNode",
|
||||||
|
"value": {
|
||||||
|
"type": "newLine"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"startNodes": []
|
||||||
|
},
|
||||||
|
"start": 0
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,13 @@
|
|||||||
|
fn box = (p, h, l, w) => {
|
||||||
|
myBox = startSketchOn('XY')
|
||||||
|
|> startProfileAt(p, %)
|
||||||
|
|> line([0, l], %)
|
||||||
|
|> line([w, 0], %)
|
||||||
|
|> line([0, -l], %)
|
||||||
|
|> close(%)
|
||||||
|
|> extrude(h, %)
|
||||||
|
|
||||||
|
return myBox
|
||||||
|
}
|
||||||
|
|
||||||
|
thing = box([0, 0], 3, 6, 10)
|
@ -0,0 +1,630 @@
|
|||||||
|
---
|
||||||
|
source: kcl/src/simulation_tests.rs
|
||||||
|
description: Program memory after executing function_sketch_with_position.kcl
|
||||||
|
snapshot_kind: text
|
||||||
|
---
|
||||||
|
{
|
||||||
|
"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": []
|
||||||
|
},
|
||||||
|
"box": {
|
||||||
|
"type": "Function",
|
||||||
|
"expression": {
|
||||||
|
"body": {
|
||||||
|
"body": [
|
||||||
|
{
|
||||||
|
"declarations": [
|
||||||
|
{
|
||||||
|
"end": 191,
|
||||||
|
"id": {
|
||||||
|
"end": 34,
|
||||||
|
"name": "myBox",
|
||||||
|
"start": 29,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"init": {
|
||||||
|
"body": [
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"end": 55,
|
||||||
|
"raw": "'XY'",
|
||||||
|
"start": 51,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": "XY"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 50,
|
||||||
|
"name": "startSketchOn",
|
||||||
|
"start": 37,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 56,
|
||||||
|
"optional": false,
|
||||||
|
"start": 37,
|
||||||
|
"type": "CallExpression",
|
||||||
|
"type": "CallExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"end": 80,
|
||||||
|
"name": "p",
|
||||||
|
"start": 79,
|
||||||
|
"type": "Identifier",
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 83,
|
||||||
|
"start": 82,
|
||||||
|
"type": "PipeSubstitution",
|
||||||
|
"type": "PipeSubstitution"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 78,
|
||||||
|
"name": "startProfileAt",
|
||||||
|
"start": 64,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 84,
|
||||||
|
"optional": false,
|
||||||
|
"start": 64,
|
||||||
|
"type": "CallExpression",
|
||||||
|
"type": "CallExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"end": 99,
|
||||||
|
"raw": "0",
|
||||||
|
"start": 98,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 102,
|
||||||
|
"name": "l",
|
||||||
|
"start": 101,
|
||||||
|
"type": "Identifier",
|
||||||
|
"type": "Identifier"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 103,
|
||||||
|
"start": 97,
|
||||||
|
"type": "ArrayExpression",
|
||||||
|
"type": "ArrayExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 106,
|
||||||
|
"start": 105,
|
||||||
|
"type": "PipeSubstitution",
|
||||||
|
"type": "PipeSubstitution"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 96,
|
||||||
|
"name": "line",
|
||||||
|
"start": 92,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 107,
|
||||||
|
"optional": false,
|
||||||
|
"start": 92,
|
||||||
|
"type": "CallExpression",
|
||||||
|
"type": "CallExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"end": 122,
|
||||||
|
"name": "w",
|
||||||
|
"start": 121,
|
||||||
|
"type": "Identifier",
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 125,
|
||||||
|
"raw": "0",
|
||||||
|
"start": 124,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": 0
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 126,
|
||||||
|
"start": 120,
|
||||||
|
"type": "ArrayExpression",
|
||||||
|
"type": "ArrayExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 129,
|
||||||
|
"start": 128,
|
||||||
|
"type": "PipeSubstitution",
|
||||||
|
"type": "PipeSubstitution"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 119,
|
||||||
|
"name": "line",
|
||||||
|
"start": 115,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 130,
|
||||||
|
"optional": false,
|
||||||
|
"start": 115,
|
||||||
|
"type": "CallExpression",
|
||||||
|
"type": "CallExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"end": 145,
|
||||||
|
"raw": "0",
|
||||||
|
"start": 144,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"argument": {
|
||||||
|
"end": 149,
|
||||||
|
"name": "l",
|
||||||
|
"start": 148,
|
||||||
|
"type": "Identifier",
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 149,
|
||||||
|
"operator": "-",
|
||||||
|
"start": 147,
|
||||||
|
"type": "UnaryExpression",
|
||||||
|
"type": "UnaryExpression"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 150,
|
||||||
|
"start": 143,
|
||||||
|
"type": "ArrayExpression",
|
||||||
|
"type": "ArrayExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 153,
|
||||||
|
"start": 152,
|
||||||
|
"type": "PipeSubstitution",
|
||||||
|
"type": "PipeSubstitution"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 142,
|
||||||
|
"name": "line",
|
||||||
|
"start": 138,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 154,
|
||||||
|
"optional": false,
|
||||||
|
"start": 138,
|
||||||
|
"type": "CallExpression",
|
||||||
|
"type": "CallExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"end": 169,
|
||||||
|
"start": 168,
|
||||||
|
"type": "PipeSubstitution",
|
||||||
|
"type": "PipeSubstitution"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 167,
|
||||||
|
"name": "close",
|
||||||
|
"start": 162,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 170,
|
||||||
|
"optional": false,
|
||||||
|
"start": 162,
|
||||||
|
"type": "CallExpression",
|
||||||
|
"type": "CallExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"end": 187,
|
||||||
|
"name": "h",
|
||||||
|
"start": 186,
|
||||||
|
"type": "Identifier",
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 190,
|
||||||
|
"start": 189,
|
||||||
|
"type": "PipeSubstitution",
|
||||||
|
"type": "PipeSubstitution"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 185,
|
||||||
|
"name": "extrude",
|
||||||
|
"start": 178,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 191,
|
||||||
|
"optional": false,
|
||||||
|
"start": 178,
|
||||||
|
"type": "CallExpression",
|
||||||
|
"type": "CallExpression"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 191,
|
||||||
|
"start": 37,
|
||||||
|
"type": "PipeExpression",
|
||||||
|
"type": "PipeExpression"
|
||||||
|
},
|
||||||
|
"start": 29,
|
||||||
|
"type": "VariableDeclarator"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 191,
|
||||||
|
"kind": "const",
|
||||||
|
"start": 29,
|
||||||
|
"type": "VariableDeclaration",
|
||||||
|
"type": "VariableDeclaration"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"argument": {
|
||||||
|
"end": 207,
|
||||||
|
"name": "myBox",
|
||||||
|
"start": 202,
|
||||||
|
"type": "Identifier",
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 207,
|
||||||
|
"start": 195,
|
||||||
|
"type": "ReturnStatement",
|
||||||
|
"type": "ReturnStatement"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 209,
|
||||||
|
"nonCodeMeta": {
|
||||||
|
"nonCodeNodes": {
|
||||||
|
"0": [
|
||||||
|
{
|
||||||
|
"end": 195,
|
||||||
|
"start": 191,
|
||||||
|
"type": "NonCodeNode",
|
||||||
|
"value": {
|
||||||
|
"type": "newLine"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"startNodes": []
|
||||||
|
},
|
||||||
|
"start": 25
|
||||||
|
},
|
||||||
|
"end": 209,
|
||||||
|
"params": [
|
||||||
|
{
|
||||||
|
"type": "Parameter",
|
||||||
|
"identifier": {
|
||||||
|
"end": 11,
|
||||||
|
"name": "p",
|
||||||
|
"start": 10,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"optional": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Parameter",
|
||||||
|
"identifier": {
|
||||||
|
"end": 14,
|
||||||
|
"name": "h",
|
||||||
|
"start": 13,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"optional": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Parameter",
|
||||||
|
"identifier": {
|
||||||
|
"end": 17,
|
||||||
|
"name": "l",
|
||||||
|
"start": 16,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"optional": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "Parameter",
|
||||||
|
"identifier": {
|
||||||
|
"end": 20,
|
||||||
|
"name": "w",
|
||||||
|
"start": 19,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"optional": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"start": 9,
|
||||||
|
"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": [
|
||||||
|
9,
|
||||||
|
209,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"thing": {
|
||||||
|
"type": "Solid",
|
||||||
|
"type": "Solid",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"faceId": "[uuid]",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [
|
||||||
|
92,
|
||||||
|
107,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"type": "extrudePlane"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"faceId": "[uuid]",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [
|
||||||
|
115,
|
||||||
|
130,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"type": "extrudePlane"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"faceId": "[uuid]",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [
|
||||||
|
138,
|
||||||
|
154,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"type": "extrudePlane"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"faceId": "[uuid]",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [
|
||||||
|
162,
|
||||||
|
170,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"type": "extrudePlane"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"sketch": {
|
||||||
|
"type": "Sketch",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"paths": [
|
||||||
|
{
|
||||||
|
"__geoMeta": {
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [
|
||||||
|
92,
|
||||||
|
107,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"from": [
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"to": [
|
||||||
|
0.0,
|
||||||
|
6.0
|
||||||
|
],
|
||||||
|
"type": "ToPoint"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__geoMeta": {
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [
|
||||||
|
115,
|
||||||
|
130,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"from": [
|
||||||
|
0.0,
|
||||||
|
6.0
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"to": [
|
||||||
|
10.0,
|
||||||
|
6.0
|
||||||
|
],
|
||||||
|
"type": "ToPoint"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__geoMeta": {
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [
|
||||||
|
138,
|
||||||
|
154,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"from": [
|
||||||
|
10.0,
|
||||||
|
6.0
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"to": [
|
||||||
|
10.0,
|
||||||
|
0.0
|
||||||
|
],
|
||||||
|
"type": "ToPoint"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__geoMeta": {
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [
|
||||||
|
162,
|
||||||
|
170,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"from": [
|
||||||
|
10.0,
|
||||||
|
0.0
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"to": [
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
],
|
||||||
|
"type": "ToPoint"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"on": {
|
||||||
|
"type": "plane",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"value": "XY",
|
||||||
|
"origin": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 0.0,
|
||||||
|
"z": 0.0
|
||||||
|
},
|
||||||
|
"xAxis": {
|
||||||
|
"x": 1.0,
|
||||||
|
"y": 0.0,
|
||||||
|
"z": 0.0
|
||||||
|
},
|
||||||
|
"yAxis": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 1.0,
|
||||||
|
"z": 0.0
|
||||||
|
},
|
||||||
|
"zAxis": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 0.0,
|
||||||
|
"z": 1.0
|
||||||
|
},
|
||||||
|
"__meta": []
|
||||||
|
},
|
||||||
|
"start": {
|
||||||
|
"from": [
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
],
|
||||||
|
"to": [
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"__geoMeta": {
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [
|
||||||
|
64,
|
||||||
|
84,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"__meta": [
|
||||||
|
{
|
||||||
|
"sourceRange": [
|
||||||
|
64,
|
||||||
|
84,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"height": 3.0,
|
||||||
|
"startCapId": "[uuid]",
|
||||||
|
"endCapId": "[uuid]",
|
||||||
|
"__meta": [
|
||||||
|
{
|
||||||
|
"sourceRange": [
|
||||||
|
64,
|
||||||
|
84,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"parent": null
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"currentEnv": 0,
|
||||||
|
"return": null
|
||||||
|
}
|
After Width: | Height: | Size: 69 KiB |
813
src/wasm-lib/kcl/tests/function_sketch_with_position/tokens.snap
Normal file
@ -0,0 +1,813 @@
|
|||||||
|
---
|
||||||
|
source: kcl/src/simulation_tests.rs
|
||||||
|
description: Result of tokenizing function_sketch_with_position.kcl
|
||||||
|
snapshot_kind: text
|
||||||
|
---
|
||||||
|
{
|
||||||
|
"Ok": [
|
||||||
|
{
|
||||||
|
"type": "keyword",
|
||||||
|
"start": 0,
|
||||||
|
"end": 2,
|
||||||
|
"value": "fn"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 2,
|
||||||
|
"end": 3,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "word",
|
||||||
|
"start": 3,
|
||||||
|
"end": 6,
|
||||||
|
"value": "box"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 6,
|
||||||
|
"end": 7,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "operator",
|
||||||
|
"start": 7,
|
||||||
|
"end": 8,
|
||||||
|
"value": "="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 8,
|
||||||
|
"end": 9,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 9,
|
||||||
|
"end": 10,
|
||||||
|
"value": "("
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "word",
|
||||||
|
"start": 10,
|
||||||
|
"end": 11,
|
||||||
|
"value": "p"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "comma",
|
||||||
|
"start": 11,
|
||||||
|
"end": 12,
|
||||||
|
"value": ","
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 12,
|
||||||
|
"end": 13,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "word",
|
||||||
|
"start": 13,
|
||||||
|
"end": 14,
|
||||||
|
"value": "h"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "comma",
|
||||||
|
"start": 14,
|
||||||
|
"end": 15,
|
||||||
|
"value": ","
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 15,
|
||||||
|
"end": 16,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "word",
|
||||||
|
"start": 16,
|
||||||
|
"end": 17,
|
||||||
|
"value": "l"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "comma",
|
||||||
|
"start": 17,
|
||||||
|
"end": 18,
|
||||||
|
"value": ","
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 18,
|
||||||
|
"end": 19,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "word",
|
||||||
|
"start": 19,
|
||||||
|
"end": 20,
|
||||||
|
"value": "w"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 20,
|
||||||
|
"end": 21,
|
||||||
|
"value": ")"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 21,
|
||||||
|
"end": 22,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "operator",
|
||||||
|
"start": 22,
|
||||||
|
"end": 24,
|
||||||
|
"value": "=>"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 24,
|
||||||
|
"end": 25,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 25,
|
||||||
|
"end": 26,
|
||||||
|
"value": "{"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 26,
|
||||||
|
"end": 29,
|
||||||
|
"value": "\n "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "word",
|
||||||
|
"start": 29,
|
||||||
|
"end": 34,
|
||||||
|
"value": "myBox"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 34,
|
||||||
|
"end": 35,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "operator",
|
||||||
|
"start": 35,
|
||||||
|
"end": 36,
|
||||||
|
"value": "="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 36,
|
||||||
|
"end": 37,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "word",
|
||||||
|
"start": 37,
|
||||||
|
"end": 50,
|
||||||
|
"value": "startSketchOn"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 50,
|
||||||
|
"end": 51,
|
||||||
|
"value": "("
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "string",
|
||||||
|
"start": 51,
|
||||||
|
"end": 55,
|
||||||
|
"value": "'XY'"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 55,
|
||||||
|
"end": 56,
|
||||||
|
"value": ")"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 56,
|
||||||
|
"end": 61,
|
||||||
|
"value": "\n "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "operator",
|
||||||
|
"start": 61,
|
||||||
|
"end": 63,
|
||||||
|
"value": "|>"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 63,
|
||||||
|
"end": 64,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "word",
|
||||||
|
"start": 64,
|
||||||
|
"end": 78,
|
||||||
|
"value": "startProfileAt"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 78,
|
||||||
|
"end": 79,
|
||||||
|
"value": "("
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "word",
|
||||||
|
"start": 79,
|
||||||
|
"end": 80,
|
||||||
|
"value": "p"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "comma",
|
||||||
|
"start": 80,
|
||||||
|
"end": 81,
|
||||||
|
"value": ","
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 81,
|
||||||
|
"end": 82,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "operator",
|
||||||
|
"start": 82,
|
||||||
|
"end": 83,
|
||||||
|
"value": "%"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 83,
|
||||||
|
"end": 84,
|
||||||
|
"value": ")"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 84,
|
||||||
|
"end": 89,
|
||||||
|
"value": "\n "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "operator",
|
||||||
|
"start": 89,
|
||||||
|
"end": 91,
|
||||||
|
"value": "|>"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 91,
|
||||||
|
"end": 92,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "word",
|
||||||
|
"start": 92,
|
||||||
|
"end": 96,
|
||||||
|
"value": "line"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 96,
|
||||||
|
"end": 97,
|
||||||
|
"value": "("
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 97,
|
||||||
|
"end": 98,
|
||||||
|
"value": "["
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "number",
|
||||||
|
"start": 98,
|
||||||
|
"end": 99,
|
||||||
|
"value": "0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "comma",
|
||||||
|
"start": 99,
|
||||||
|
"end": 100,
|
||||||
|
"value": ","
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 100,
|
||||||
|
"end": 101,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "word",
|
||||||
|
"start": 101,
|
||||||
|
"end": 102,
|
||||||
|
"value": "l"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 102,
|
||||||
|
"end": 103,
|
||||||
|
"value": "]"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "comma",
|
||||||
|
"start": 103,
|
||||||
|
"end": 104,
|
||||||
|
"value": ","
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 104,
|
||||||
|
"end": 105,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "operator",
|
||||||
|
"start": 105,
|
||||||
|
"end": 106,
|
||||||
|
"value": "%"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 106,
|
||||||
|
"end": 107,
|
||||||
|
"value": ")"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 107,
|
||||||
|
"end": 112,
|
||||||
|
"value": "\n "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "operator",
|
||||||
|
"start": 112,
|
||||||
|
"end": 114,
|
||||||
|
"value": "|>"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 114,
|
||||||
|
"end": 115,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "word",
|
||||||
|
"start": 115,
|
||||||
|
"end": 119,
|
||||||
|
"value": "line"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 119,
|
||||||
|
"end": 120,
|
||||||
|
"value": "("
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 120,
|
||||||
|
"end": 121,
|
||||||
|
"value": "["
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "word",
|
||||||
|
"start": 121,
|
||||||
|
"end": 122,
|
||||||
|
"value": "w"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "comma",
|
||||||
|
"start": 122,
|
||||||
|
"end": 123,
|
||||||
|
"value": ","
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 123,
|
||||||
|
"end": 124,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "number",
|
||||||
|
"start": 124,
|
||||||
|
"end": 125,
|
||||||
|
"value": "0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 125,
|
||||||
|
"end": 126,
|
||||||
|
"value": "]"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "comma",
|
||||||
|
"start": 126,
|
||||||
|
"end": 127,
|
||||||
|
"value": ","
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 127,
|
||||||
|
"end": 128,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "operator",
|
||||||
|
"start": 128,
|
||||||
|
"end": 129,
|
||||||
|
"value": "%"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 129,
|
||||||
|
"end": 130,
|
||||||
|
"value": ")"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 130,
|
||||||
|
"end": 135,
|
||||||
|
"value": "\n "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "operator",
|
||||||
|
"start": 135,
|
||||||
|
"end": 137,
|
||||||
|
"value": "|>"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 137,
|
||||||
|
"end": 138,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "word",
|
||||||
|
"start": 138,
|
||||||
|
"end": 142,
|
||||||
|
"value": "line"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 142,
|
||||||
|
"end": 143,
|
||||||
|
"value": "("
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 143,
|
||||||
|
"end": 144,
|
||||||
|
"value": "["
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "number",
|
||||||
|
"start": 144,
|
||||||
|
"end": 145,
|
||||||
|
"value": "0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "comma",
|
||||||
|
"start": 145,
|
||||||
|
"end": 146,
|
||||||
|
"value": ","
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 146,
|
||||||
|
"end": 147,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "operator",
|
||||||
|
"start": 147,
|
||||||
|
"end": 148,
|
||||||
|
"value": "-"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "word",
|
||||||
|
"start": 148,
|
||||||
|
"end": 149,
|
||||||
|
"value": "l"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 149,
|
||||||
|
"end": 150,
|
||||||
|
"value": "]"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "comma",
|
||||||
|
"start": 150,
|
||||||
|
"end": 151,
|
||||||
|
"value": ","
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 151,
|
||||||
|
"end": 152,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "operator",
|
||||||
|
"start": 152,
|
||||||
|
"end": 153,
|
||||||
|
"value": "%"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 153,
|
||||||
|
"end": 154,
|
||||||
|
"value": ")"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 154,
|
||||||
|
"end": 159,
|
||||||
|
"value": "\n "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "operator",
|
||||||
|
"start": 159,
|
||||||
|
"end": 161,
|
||||||
|
"value": "|>"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 161,
|
||||||
|
"end": 162,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "word",
|
||||||
|
"start": 162,
|
||||||
|
"end": 167,
|
||||||
|
"value": "close"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 167,
|
||||||
|
"end": 168,
|
||||||
|
"value": "("
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "operator",
|
||||||
|
"start": 168,
|
||||||
|
"end": 169,
|
||||||
|
"value": "%"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 169,
|
||||||
|
"end": 170,
|
||||||
|
"value": ")"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 170,
|
||||||
|
"end": 175,
|
||||||
|
"value": "\n "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "operator",
|
||||||
|
"start": 175,
|
||||||
|
"end": 177,
|
||||||
|
"value": "|>"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 177,
|
||||||
|
"end": 178,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "word",
|
||||||
|
"start": 178,
|
||||||
|
"end": 185,
|
||||||
|
"value": "extrude"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 185,
|
||||||
|
"end": 186,
|
||||||
|
"value": "("
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "word",
|
||||||
|
"start": 186,
|
||||||
|
"end": 187,
|
||||||
|
"value": "h"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "comma",
|
||||||
|
"start": 187,
|
||||||
|
"end": 188,
|
||||||
|
"value": ","
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 188,
|
||||||
|
"end": 189,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "operator",
|
||||||
|
"start": 189,
|
||||||
|
"end": 190,
|
||||||
|
"value": "%"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 190,
|
||||||
|
"end": 191,
|
||||||
|
"value": ")"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 191,
|
||||||
|
"end": 195,
|
||||||
|
"value": "\n\n "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "keyword",
|
||||||
|
"start": 195,
|
||||||
|
"end": 201,
|
||||||
|
"value": "return"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 201,
|
||||||
|
"end": 202,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "word",
|
||||||
|
"start": 202,
|
||||||
|
"end": 207,
|
||||||
|
"value": "myBox"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 207,
|
||||||
|
"end": 208,
|
||||||
|
"value": "\n"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 208,
|
||||||
|
"end": 209,
|
||||||
|
"value": "}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 209,
|
||||||
|
"end": 211,
|
||||||
|
"value": "\n\n"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "word",
|
||||||
|
"start": 211,
|
||||||
|
"end": 216,
|
||||||
|
"value": "thing"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 216,
|
||||||
|
"end": 217,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "operator",
|
||||||
|
"start": 217,
|
||||||
|
"end": 218,
|
||||||
|
"value": "="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 218,
|
||||||
|
"end": 219,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "word",
|
||||||
|
"start": 219,
|
||||||
|
"end": 222,
|
||||||
|
"value": "box"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 222,
|
||||||
|
"end": 223,
|
||||||
|
"value": "("
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 223,
|
||||||
|
"end": 224,
|
||||||
|
"value": "["
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "number",
|
||||||
|
"start": 224,
|
||||||
|
"end": 225,
|
||||||
|
"value": "0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "comma",
|
||||||
|
"start": 225,
|
||||||
|
"end": 226,
|
||||||
|
"value": ","
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 226,
|
||||||
|
"end": 227,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "number",
|
||||||
|
"start": 227,
|
||||||
|
"end": 228,
|
||||||
|
"value": "0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 228,
|
||||||
|
"end": 229,
|
||||||
|
"value": "]"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "comma",
|
||||||
|
"start": 229,
|
||||||
|
"end": 230,
|
||||||
|
"value": ","
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 230,
|
||||||
|
"end": 231,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "number",
|
||||||
|
"start": 231,
|
||||||
|
"end": 232,
|
||||||
|
"value": "3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "comma",
|
||||||
|
"start": 232,
|
||||||
|
"end": 233,
|
||||||
|
"value": ","
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 233,
|
||||||
|
"end": 234,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "number",
|
||||||
|
"start": 234,
|
||||||
|
"end": 235,
|
||||||
|
"value": "6"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "comma",
|
||||||
|
"start": 235,
|
||||||
|
"end": 236,
|
||||||
|
"value": ","
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 236,
|
||||||
|
"end": 237,
|
||||||
|
"value": " "
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "number",
|
||||||
|
"start": 237,
|
||||||
|
"end": 239,
|
||||||
|
"value": "10"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "brace",
|
||||||
|
"start": 239,
|
||||||
|
"end": 240,
|
||||||
|
"value": ")"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "whitespace",
|
||||||
|
"start": 240,
|
||||||
|
"end": 241,
|
||||||
|
"value": "\n"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
2448
src/wasm-lib/kcl/tests/i_shape/ast.snap
Normal file
50
src/wasm-lib/kcl/tests/i_shape/input.kcl
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
d_wrist_circumference = [22.8, 10.7, 16.4, 18.5]
|
||||||
|
width = d_wrist_circumference[0] + d_wrist_circumference[1] + d_wrist_circumference[2] + d_wrist_circumference[3]
|
||||||
|
length = 120.0
|
||||||
|
hand_thickness = 24.0
|
||||||
|
corner_radius = 5.0
|
||||||
|
|
||||||
|
// At first I thought this was going to be symmetric,
|
||||||
|
// but I measured intentionally to not be symmetric,
|
||||||
|
// because your wrist isn't a perfect cylindrical surface
|
||||||
|
brace_base = startSketchAt([corner_radius, 0])
|
||||||
|
|> line([width - corner_radius, 0.0], %)
|
||||||
|
|> tangentialArcToRelative([corner_radius, corner_radius], %)
|
||||||
|
|> yLine(25.0 - corner_radius, %)
|
||||||
|
|> tangentialArcToRelative([-corner_radius, corner_radius], %)
|
||||||
|
|> xLine(-(d_wrist_circumference[0] - (corner_radius * 2)), %)
|
||||||
|
|> tangentialArcToRelative([-corner_radius, corner_radius], %)
|
||||||
|
|> yLine(length - 25.0 - 23.0 - (corner_radius * 2), %)
|
||||||
|
|> tangentialArcToRelative([corner_radius, corner_radius], %)
|
||||||
|
|> xLine(15.0 - (corner_radius * 2), %)
|
||||||
|
|> tangentialArcToRelative([corner_radius, corner_radius], %)
|
||||||
|
|> yLine(23.0 - corner_radius, %)
|
||||||
|
|> tangentialArcToRelative([-corner_radius, corner_radius], %)
|
||||||
|
|> xLine(-(hand_thickness + 15.0 + 15.0 - (corner_radius * 2)), %)
|
||||||
|
|> tangentialArcToRelative([-corner_radius, -corner_radius], %)
|
||||||
|
|> yLine(-(23.0 - corner_radius), %)
|
||||||
|
|> tangentialArcToRelative([corner_radius, -corner_radius], %)
|
||||||
|
|> xLine(15.0 - (corner_radius * 2), %)
|
||||||
|
|> tangentialArcToRelative([corner_radius, -corner_radius], %)
|
||||||
|
|> yLine(-(length - 25.0 - 23.0 - (corner_radius * 2)), %)
|
||||||
|
|> tangentialArcToRelative([-corner_radius, -corner_radius], %)
|
||||||
|
|> xLine(-(d_wrist_circumference[1] + d_wrist_circumference[2] + d_wrist_circumference[3] - hand_thickness - corner_radius), %)
|
||||||
|
|> tangentialArcToRelative([-corner_radius, -corner_radius], %)
|
||||||
|
|> yLine(-(25.0 - corner_radius), %)
|
||||||
|
|> tangentialArcToRelative([corner_radius, -corner_radius], %)
|
||||||
|
|> close(%)
|
||||||
|
|
||||||
|
inner = startSketchAt([0, 0])
|
||||||
|
|> xLine(1.0, %)
|
||||||
|
|> tangentialArcToRelative([corner_radius, corner_radius], %)
|
||||||
|
|> yLine(25.0 - (corner_radius * 2), %)
|
||||||
|
|> tangentialArcToRelative([-corner_radius, corner_radius], %)
|
||||||
|
|> xLine(-1.0, %)
|
||||||
|
|> tangentialArcToRelative([-corner_radius, -corner_radius], %)
|
||||||
|
|> yLine(-(25.0 - (corner_radius * 2)), %)
|
||||||
|
|> tangentialArcToRelative([corner_radius, -corner_radius], %)
|
||||||
|
|> close(%)
|
||||||
|
|
||||||
|
final = brace_base
|
||||||
|
|> hole(inner, %)
|
||||||
|
|> extrude(3.0, %)
|
1964
src/wasm-lib/kcl/tests/i_shape/program_memory.snap
Normal file
BIN
src/wasm-lib/kcl/tests/i_shape/rendered_model.png
Normal file
After Width: | Height: | Size: 35 KiB |
4413
src/wasm-lib/kcl/tests/i_shape/tokens.snap
Normal file
18158
src/wasm-lib/kcl/tests/kittycad_svg/ast.snap
Normal file
286
src/wasm-lib/kcl/tests/kittycad_svg/input.kcl
Normal file
@ -0,0 +1,286 @@
|
|||||||
|
svg = startSketchOn('XY')
|
||||||
|
|> startProfileAt([0, 0], %)
|
||||||
|
|> lineTo([2.52, -26.04], %) // MoveAbsolute
|
||||||
|
|> lineTo([2.52, -25.2], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([0.84, -25.2], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([0.84, -24.36], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([0, -24.36], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([0, -6.72], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([0.84, -6.72], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([0.84, -5.88], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([1.68, -5.88], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([1.68, -5.04], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([2.52, -5.04], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([2.52, -4.2], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([3.36, -4.2], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([3.36, -3.36], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([17.64, -3.36], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([17.64, -4.2], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([18.48, -4.2], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([18.48, -5.04], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([19.32, -5.04], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([19.32, -5.88], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([20.16, -5.88], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([20.16, -6.72], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([21, -6.72], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([21, -24.36], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([20.16, -24.36], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([20.16, -25.2], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([18.48, -25.2], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([18.48, -26.04], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([15.96, -26.04], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([15.96, -26.88], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([16.8, -26.88], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([16.8, -28.56], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([11.76, -28.56], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([11.76, -26.88], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([12.6, -26.88], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([12.6, -26.04], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([8.4, -26.04], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([8.4, -26.88], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([9.24, -26.88], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([9.24, -28.56], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([4.2, -28.56], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([4.2, -26.88], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([5.04, -26.88], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([5.04, -26.04], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([0.839996, -20.58], %) // MoveRelative
|
||||||
|
|> lineTo([0.839996, -24.36], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([2.52, -24.36], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([2.52, -25.2], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([18.48, -25.2], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([18.48, -24.36], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([20.16, -24.36], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([20.16, -20.58], %) // VerticalLineAbsolute
|
||||||
|
// StopAbsolute
|
||||||
|
|> lineTo([7.56, -24.36], %) // MoveAbsolute
|
||||||
|
|> lineTo([7.56, -22.68], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([13.44, -22.68], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([13.44, -24.36], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([1.68, -22.68], %) // MoveRelative
|
||||||
|
|> lineTo([1.68, -21.84], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([5.88, -21.84], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([5.88, -22.68], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([3.36, -24.36], %) // MoveRelative
|
||||||
|
|> lineTo([3.36, -23.52], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([5.88, -23.52], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([5.88, -24.36], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([15.12, -22.68], %) // MoveRelative
|
||||||
|
|> lineTo([15.12, -21.84], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([15.959999999999999, -21.84], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([15.959999999999999, -22.68], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([16.8, -22.68], %) // MoveRelative
|
||||||
|
|> lineTo([16.8, -21.84], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([17.64, -21.84], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([17.64, -22.68], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([18.48, -22.68], %) // MoveRelative
|
||||||
|
|> lineTo([18.48, -21.84], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([19.32, -21.84], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([19.32, -22.68], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([15.12, -24.36], %) // MoveRelative
|
||||||
|
|> lineTo([15.12, -23.52], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([17.64, -23.52], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([17.64, -24.36], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([18.48, -5.88], %) // MoveAbsolute
|
||||||
|
|> lineTo([18.48, -5.04], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([17.64, -5.04], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([17.64, -4.2], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([3.36, -4.2], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([3.36, -5.04], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([2.52, -5.04], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([2.52, -5.88], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([1.68, -5.88], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([1.68, -6.72], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([0.839996, -6.72], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([0.839996, -8.4], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([20.16, -8.4], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([20.16, -6.72], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([19.32, -6.72], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([19.32, -5.88], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([20.16, -7.56], %) // MoveAbsolute
|
||||||
|
|> lineTo([0.839996, -7.56], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([0.839996, -19.32], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([20.16, -19.32], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([3.36, -10.08], %) // MoveAbsolute
|
||||||
|
|> lineTo([3.36, -9.24001], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([17.64, -9.24001], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([17.64, -10.08], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([18.48, -10.08], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([18.48, -16.8], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([17.64, -16.8], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([17.64, -17.64], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([3.36, -17.64], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([3.36, -16.8], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([2.52, -16.8], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([2.52, -10.080000000000002], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([13.44, -10.92], %) // MoveRelative
|
||||||
|
|> lineTo([13.44, -10.08], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([15.12, -10.08], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([15.12, -13.44], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([14.28, -13.44], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([9.24, -13.44], %) // MoveRelative
|
||||||
|
|> lineTo([11.76, -13.44], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([11.76, -14.28], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([10.92, -14.28], %) // HorizontalLineRelative here
|
||||||
|
|> lineTo([10.92, -15.959999999999999], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([13.44, -15.959999999999999], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([13.44, -15.12], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([14.28, -15.12], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([14.28, -15.959999999999999], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([13.44, -15.959999999999999], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([13.44, -16.8], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([7.56, -16.8], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([7.56, -15.96], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([6.72, -15.96], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([6.72, -15.120000000000001], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([7.56, -15.120000000000001], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([7.56, -15.96], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([10.08, -15.96], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([10.08, -14.28], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([9.24, -14.28], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([7.56, -12.6], %) // MoveAbsolute
|
||||||
|
|> lineTo([7.56, -11.76], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([5.04, -11.76], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([5.04, -12.6], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([4.2, -12.6], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([4.2, -11.76], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([5.04, -11.76], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([5.04, -10.92], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([7.5600000000000005, -10.92], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([7.5600000000000005, -11.76], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([8.4, -11.76], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([8.4, -12.6], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([3.36, -5.88], %) // MoveAbsolute
|
||||||
|
|> lineTo([3.36, -5.04], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([4.2, -5.04], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([4.2, -3.36], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([5.04, -3.36], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([5.04, -1.68], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([5.88, -1.68], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([5.88, -0.83999599], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([6.72, -0.83999599], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([6.72, -1.68], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([7.56, -1.68], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([7.56, -3.36], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([8.4, -3.36], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([8.4, -5.04], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([9.24, -5.04], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([9.24, -5.88], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([17.64, -5.04], %) // MoveAbsolute
|
||||||
|
|> lineTo([17.64, -5.88], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([11.76, -5.88], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([11.76, -5.04], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([12.6, -5.04], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([12.6, -3.36], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([13.44, -3.36], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([13.44, -1.68], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([14.28, -1.68], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([14.28, -0.83999599], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([15.12, -0.83999599], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([15.12, -1.68], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([15.959999999999999, -1.68], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([15.959999999999999, -3.36], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([16.8, -3.36], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([16.8, -5.04], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([13.44, -1.68], %) // MoveAbsolute
|
||||||
|
|> lineTo([13.44, -0], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([15.959999999999999, -0], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([15.959999999999999, -1.68], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([16.8, -1.68], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([16.8, -3.36], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([17.64, -3.36], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([17.64, -4.62], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([16.8, -4.62], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([16.8, -3.36], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([15.96, -3.36], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([15.96, -1.68], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([15.12, -1.68], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([15.12, -0.83999999], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([14.28, -0.83999999], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([14.28, -1.68], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([13.44, -1.68], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([13.44, -3.36], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([12.6, -3.36], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([12.6, -4.62], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([11.76, -4.62], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([11.76, -3.36], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([12.6, -3.36], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([12.6, -1.68], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([5.04, -1.68], %) // MoveAbsolute
|
||||||
|
|> lineTo([5.04, -0], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([7.56, -0], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([7.56, -1.68], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([8.4, -1.68], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([8.4, -3.36], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([9.24, -3.36], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([9.24, -4.62], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([8.4, -4.62], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([8.4, -3.36], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([7.56, -3.36], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([7.56, -1.68], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([6.72, -1.68], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([6.72, -0.83999999], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([5.88, -0.83999999], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([5.88, -1.68], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([5.04, -1.68], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([5.04, -3.36], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([4.2, -3.36], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([4.2, -4.62], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([3.36, -4.62], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([3.36, -3.36], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([4.2, -3.36], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([4.2, -1.68], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([13.44, -5.88], %) // MoveAbsolute
|
||||||
|
|> lineTo([13.44, -5.04], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([14.28, -5.04], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([14.28, -4.2], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([15.12, -4.2], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([15.12, -5.04], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([15.959999999999999, -5.04], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([15.959999999999999, -5.88], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([5.88, -5.04], %) // MoveAbsolute
|
||||||
|
|> lineTo([5.88, -4.2], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([6.72, -4.2], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([6.72, -5.04], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([7.56, -5.04], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([7.56, -5.88], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([5.04, -5.88], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([5.04, -5.04], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([17.64, -5.88], %) // MoveAbsolute
|
||||||
|
|> lineTo([17.64, -5.04], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([16.8, -5.04], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([16.8, -4.2], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([17.64, -4.2], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([17.64, -5.04], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([18.48, -5.04], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([18.48, -5.88], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([3.36, -5.04], %) // MoveAbsolute
|
||||||
|
|> lineTo([3.36, -5.88], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([2.52, -5.88], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([2.52, -5.04], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([3.36, -5.04], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([3.36, -4.2], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([4.2, -4.2], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([4.2, -5.04], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([8.4, -4.2], %) // MoveRelative
|
||||||
|
|> lineTo([9.24, -4.2], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([9.24, -5.04], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([10.08, -5.04], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([10.08, -5.88], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([9.24, -5.88], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([9.24, -5.04], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([8.4, -5.04], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([11.76, -4.2], %) // MoveAbsolute
|
||||||
|
|> lineTo([12.6, -4.2], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([12.6, -5.04], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([11.76, -5.04], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([11.76, -5.88], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([10.92, -5.88], %) // HorizontalLineAbsolute
|
||||||
|
|> lineTo([10.92, -5.04], %) // VerticalLineAbsolute
|
||||||
|
|> lineTo([11.76, -5.04], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([14.28, -10.92], %) // MoveRelative
|
||||||
|
|> lineTo([13.44, -10.92], %) // HorizontalLineRelative
|
||||||
|
|> lineTo([13.44, -13.44], %) // VerticalLineHorizonal
|
||||||
|
|> lineTo([14.28, -13.44], %) // HorizontalLineRelative
|
||||||
|
|> close(%)
|
||||||
|
|> extrude(1, %)
|
8846
src/wasm-lib/kcl/tests/kittycad_svg/program_memory.snap
Normal file
BIN
src/wasm-lib/kcl/tests/kittycad_svg/rendered_model.png
Normal file
After Width: | Height: | Size: 63 KiB |
30615
src/wasm-lib/kcl/tests/kittycad_svg/tokens.snap
Normal file
835
src/wasm-lib/kcl/tests/parametric/ast.snap
Normal file
@ -0,0 +1,835 @@
|
|||||||
|
---
|
||||||
|
source: kcl/src/simulation_tests.rs
|
||||||
|
description: Result of parsing parametric.kcl
|
||||||
|
snapshot_kind: text
|
||||||
|
---
|
||||||
|
{
|
||||||
|
"Ok": {
|
||||||
|
"body": [
|
||||||
|
{
|
||||||
|
"declarations": [
|
||||||
|
{
|
||||||
|
"end": 18,
|
||||||
|
"id": {
|
||||||
|
"end": 10,
|
||||||
|
"name": "sigmaAllow",
|
||||||
|
"start": 0,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"init": {
|
||||||
|
"end": 18,
|
||||||
|
"raw": "35000",
|
||||||
|
"start": 13,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": 35000
|
||||||
|
},
|
||||||
|
"start": 0,
|
||||||
|
"type": "VariableDeclarator"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 18,
|
||||||
|
"kind": "const",
|
||||||
|
"start": 0,
|
||||||
|
"type": "VariableDeclaration",
|
||||||
|
"type": "VariableDeclaration"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"declarations": [
|
||||||
|
{
|
||||||
|
"end": 35,
|
||||||
|
"id": {
|
||||||
|
"end": 31,
|
||||||
|
"name": "width",
|
||||||
|
"start": 26,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"init": {
|
||||||
|
"end": 35,
|
||||||
|
"raw": "9",
|
||||||
|
"start": 34,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": 9
|
||||||
|
},
|
||||||
|
"start": 26,
|
||||||
|
"type": "VariableDeclarator"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 35,
|
||||||
|
"kind": "const",
|
||||||
|
"start": 26,
|
||||||
|
"type": "VariableDeclaration",
|
||||||
|
"type": "VariableDeclaration"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"declarations": [
|
||||||
|
{
|
||||||
|
"end": 51,
|
||||||
|
"id": {
|
||||||
|
"end": 45,
|
||||||
|
"name": "p",
|
||||||
|
"start": 44,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"init": {
|
||||||
|
"end": 51,
|
||||||
|
"raw": "150",
|
||||||
|
"start": 48,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": 150
|
||||||
|
},
|
||||||
|
"start": 44,
|
||||||
|
"type": "VariableDeclarator"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 51,
|
||||||
|
"kind": "const",
|
||||||
|
"start": 44,
|
||||||
|
"type": "VariableDeclaration",
|
||||||
|
"type": "VariableDeclaration"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"declarations": [
|
||||||
|
{
|
||||||
|
"end": 88,
|
||||||
|
"id": {
|
||||||
|
"end": 84,
|
||||||
|
"name": "distance",
|
||||||
|
"start": 76,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"init": {
|
||||||
|
"end": 88,
|
||||||
|
"raw": "6",
|
||||||
|
"start": 87,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": 6
|
||||||
|
},
|
||||||
|
"start": 76,
|
||||||
|
"type": "VariableDeclarator"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 88,
|
||||||
|
"kind": "const",
|
||||||
|
"start": 76,
|
||||||
|
"type": "VariableDeclaration",
|
||||||
|
"type": "VariableDeclaration"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"declarations": [
|
||||||
|
{
|
||||||
|
"end": 106,
|
||||||
|
"id": {
|
||||||
|
"end": 102,
|
||||||
|
"name": "FOS",
|
||||||
|
"start": 99,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"init": {
|
||||||
|
"end": 106,
|
||||||
|
"raw": "2",
|
||||||
|
"start": 105,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": 2
|
||||||
|
},
|
||||||
|
"start": 99,
|
||||||
|
"type": "VariableDeclarator"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 106,
|
||||||
|
"kind": "const",
|
||||||
|
"start": 99,
|
||||||
|
"type": "VariableDeclaration",
|
||||||
|
"type": "VariableDeclaration"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"declarations": [
|
||||||
|
{
|
||||||
|
"end": 116,
|
||||||
|
"id": {
|
||||||
|
"end": 112,
|
||||||
|
"name": "leg1",
|
||||||
|
"start": 108,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"init": {
|
||||||
|
"end": 116,
|
||||||
|
"raw": "5",
|
||||||
|
"start": 115,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": 5
|
||||||
|
},
|
||||||
|
"start": 108,
|
||||||
|
"type": "VariableDeclarator"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 116,
|
||||||
|
"kind": "const",
|
||||||
|
"start": 108,
|
||||||
|
"type": "VariableDeclaration",
|
||||||
|
"type": "VariableDeclaration"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"declarations": [
|
||||||
|
{
|
||||||
|
"end": 135,
|
||||||
|
"id": {
|
||||||
|
"end": 131,
|
||||||
|
"name": "leg2",
|
||||||
|
"start": 127,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"init": {
|
||||||
|
"end": 135,
|
||||||
|
"raw": "8",
|
||||||
|
"start": 134,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": 8
|
||||||
|
},
|
||||||
|
"start": 127,
|
||||||
|
"type": "VariableDeclarator"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 135,
|
||||||
|
"kind": "const",
|
||||||
|
"start": 127,
|
||||||
|
"type": "VariableDeclaration",
|
||||||
|
"type": "VariableDeclaration"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"declarations": [
|
||||||
|
{
|
||||||
|
"end": 207,
|
||||||
|
"id": {
|
||||||
|
"end": 155,
|
||||||
|
"name": "thickness",
|
||||||
|
"start": 146,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"init": {
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"end": 206,
|
||||||
|
"left": {
|
||||||
|
"end": 198,
|
||||||
|
"left": {
|
||||||
|
"end": 185,
|
||||||
|
"left": {
|
||||||
|
"end": 181,
|
||||||
|
"left": {
|
||||||
|
"end": 175,
|
||||||
|
"left": {
|
||||||
|
"end": 171,
|
||||||
|
"name": "distance",
|
||||||
|
"start": 163,
|
||||||
|
"type": "Identifier",
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"operator": "*",
|
||||||
|
"right": {
|
||||||
|
"end": 175,
|
||||||
|
"name": "p",
|
||||||
|
"start": 174,
|
||||||
|
"type": "Identifier",
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"start": 163,
|
||||||
|
"type": "BinaryExpression",
|
||||||
|
"type": "BinaryExpression"
|
||||||
|
},
|
||||||
|
"operator": "*",
|
||||||
|
"right": {
|
||||||
|
"end": 181,
|
||||||
|
"name": "FOS",
|
||||||
|
"start": 178,
|
||||||
|
"type": "Identifier",
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"start": 163,
|
||||||
|
"type": "BinaryExpression",
|
||||||
|
"type": "BinaryExpression"
|
||||||
|
},
|
||||||
|
"operator": "*",
|
||||||
|
"right": {
|
||||||
|
"end": 185,
|
||||||
|
"raw": "6",
|
||||||
|
"start": 184,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": 6
|
||||||
|
},
|
||||||
|
"start": 163,
|
||||||
|
"type": "BinaryExpression",
|
||||||
|
"type": "BinaryExpression"
|
||||||
|
},
|
||||||
|
"operator": "/",
|
||||||
|
"right": {
|
||||||
|
"end": 198,
|
||||||
|
"name": "sigmaAllow",
|
||||||
|
"start": 188,
|
||||||
|
"type": "Identifier",
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"start": 163,
|
||||||
|
"type": "BinaryExpression",
|
||||||
|
"type": "BinaryExpression"
|
||||||
|
},
|
||||||
|
"operator": "/",
|
||||||
|
"right": {
|
||||||
|
"end": 206,
|
||||||
|
"name": "width",
|
||||||
|
"start": 201,
|
||||||
|
"type": "Identifier",
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"start": 163,
|
||||||
|
"type": "BinaryExpression",
|
||||||
|
"type": "BinaryExpression"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 162,
|
||||||
|
"name": "sqrt",
|
||||||
|
"start": 158,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 207,
|
||||||
|
"optional": false,
|
||||||
|
"start": 158,
|
||||||
|
"type": "CallExpression",
|
||||||
|
"type": "CallExpression"
|
||||||
|
},
|
||||||
|
"start": 146,
|
||||||
|
"type": "VariableDeclarator"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 207,
|
||||||
|
"kind": "const",
|
||||||
|
"start": 146,
|
||||||
|
"type": "VariableDeclaration",
|
||||||
|
"type": "VariableDeclaration"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"declarations": [
|
||||||
|
{
|
||||||
|
"end": 467,
|
||||||
|
"id": {
|
||||||
|
"end": 225,
|
||||||
|
"name": "bracket",
|
||||||
|
"start": 218,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"init": {
|
||||||
|
"body": [
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"end": 246,
|
||||||
|
"raw": "'XY'",
|
||||||
|
"start": 242,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": "XY"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 241,
|
||||||
|
"name": "startSketchOn",
|
||||||
|
"start": 228,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 247,
|
||||||
|
"optional": false,
|
||||||
|
"start": 228,
|
||||||
|
"type": "CallExpression",
|
||||||
|
"type": "CallExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"end": 270,
|
||||||
|
"raw": "0",
|
||||||
|
"start": 269,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 273,
|
||||||
|
"raw": "0",
|
||||||
|
"start": 272,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": 0
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 274,
|
||||||
|
"start": 268,
|
||||||
|
"type": "ArrayExpression",
|
||||||
|
"type": "ArrayExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 277,
|
||||||
|
"start": 276,
|
||||||
|
"type": "PipeSubstitution",
|
||||||
|
"type": "PipeSubstitution"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 267,
|
||||||
|
"name": "startProfileAt",
|
||||||
|
"start": 253,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 278,
|
||||||
|
"optional": false,
|
||||||
|
"start": 253,
|
||||||
|
"type": "CallExpression",
|
||||||
|
"type": "CallExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"end": 291,
|
||||||
|
"raw": "0",
|
||||||
|
"start": 290,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 297,
|
||||||
|
"name": "leg1",
|
||||||
|
"start": 293,
|
||||||
|
"type": "Identifier",
|
||||||
|
"type": "Identifier"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 298,
|
||||||
|
"start": 289,
|
||||||
|
"type": "ArrayExpression",
|
||||||
|
"type": "ArrayExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 301,
|
||||||
|
"start": 300,
|
||||||
|
"type": "PipeSubstitution",
|
||||||
|
"type": "PipeSubstitution"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 288,
|
||||||
|
"name": "line",
|
||||||
|
"start": 284,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 302,
|
||||||
|
"optional": false,
|
||||||
|
"start": 284,
|
||||||
|
"type": "CallExpression",
|
||||||
|
"type": "CallExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"end": 318,
|
||||||
|
"name": "leg2",
|
||||||
|
"start": 314,
|
||||||
|
"type": "Identifier",
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 321,
|
||||||
|
"raw": "0",
|
||||||
|
"start": 320,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": 0
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 322,
|
||||||
|
"start": 313,
|
||||||
|
"type": "ArrayExpression",
|
||||||
|
"type": "ArrayExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 325,
|
||||||
|
"start": 324,
|
||||||
|
"type": "PipeSubstitution",
|
||||||
|
"type": "PipeSubstitution"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 312,
|
||||||
|
"name": "line",
|
||||||
|
"start": 308,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 326,
|
||||||
|
"optional": false,
|
||||||
|
"start": 308,
|
||||||
|
"type": "CallExpression",
|
||||||
|
"type": "CallExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"end": 339,
|
||||||
|
"raw": "0",
|
||||||
|
"start": 338,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"argument": {
|
||||||
|
"end": 351,
|
||||||
|
"name": "thickness",
|
||||||
|
"start": 342,
|
||||||
|
"type": "Identifier",
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 351,
|
||||||
|
"operator": "-",
|
||||||
|
"start": 341,
|
||||||
|
"type": "UnaryExpression",
|
||||||
|
"type": "UnaryExpression"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 352,
|
||||||
|
"start": 337,
|
||||||
|
"type": "ArrayExpression",
|
||||||
|
"type": "ArrayExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 355,
|
||||||
|
"start": 354,
|
||||||
|
"type": "PipeSubstitution",
|
||||||
|
"type": "PipeSubstitution"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 336,
|
||||||
|
"name": "line",
|
||||||
|
"start": 332,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 356,
|
||||||
|
"optional": false,
|
||||||
|
"start": 332,
|
||||||
|
"type": "CallExpression",
|
||||||
|
"type": "CallExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"end": 385,
|
||||||
|
"left": {
|
||||||
|
"argument": {
|
||||||
|
"end": 373,
|
||||||
|
"name": "leg2",
|
||||||
|
"start": 369,
|
||||||
|
"type": "Identifier",
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 373,
|
||||||
|
"operator": "-",
|
||||||
|
"start": 368,
|
||||||
|
"type": "UnaryExpression",
|
||||||
|
"type": "UnaryExpression"
|
||||||
|
},
|
||||||
|
"operator": "+",
|
||||||
|
"right": {
|
||||||
|
"end": 385,
|
||||||
|
"name": "thickness",
|
||||||
|
"start": 376,
|
||||||
|
"type": "Identifier",
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"start": 368,
|
||||||
|
"type": "BinaryExpression",
|
||||||
|
"type": "BinaryExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 388,
|
||||||
|
"raw": "0",
|
||||||
|
"start": 387,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": 0
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 389,
|
||||||
|
"start": 367,
|
||||||
|
"type": "ArrayExpression",
|
||||||
|
"type": "ArrayExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 392,
|
||||||
|
"start": 391,
|
||||||
|
"type": "PipeSubstitution",
|
||||||
|
"type": "PipeSubstitution"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 366,
|
||||||
|
"name": "line",
|
||||||
|
"start": 362,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 393,
|
||||||
|
"optional": false,
|
||||||
|
"start": 362,
|
||||||
|
"type": "CallExpression",
|
||||||
|
"type": "CallExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"end": 406,
|
||||||
|
"raw": "0",
|
||||||
|
"start": 405,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 425,
|
||||||
|
"left": {
|
||||||
|
"argument": {
|
||||||
|
"end": 413,
|
||||||
|
"name": "leg1",
|
||||||
|
"start": 409,
|
||||||
|
"type": "Identifier",
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 413,
|
||||||
|
"operator": "-",
|
||||||
|
"start": 408,
|
||||||
|
"type": "UnaryExpression",
|
||||||
|
"type": "UnaryExpression"
|
||||||
|
},
|
||||||
|
"operator": "+",
|
||||||
|
"right": {
|
||||||
|
"end": 425,
|
||||||
|
"name": "thickness",
|
||||||
|
"start": 416,
|
||||||
|
"type": "Identifier",
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"start": 408,
|
||||||
|
"type": "BinaryExpression",
|
||||||
|
"type": "BinaryExpression"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 426,
|
||||||
|
"start": 404,
|
||||||
|
"type": "ArrayExpression",
|
||||||
|
"type": "ArrayExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 429,
|
||||||
|
"start": 428,
|
||||||
|
"type": "PipeSubstitution",
|
||||||
|
"type": "PipeSubstitution"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 403,
|
||||||
|
"name": "line",
|
||||||
|
"start": 399,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 430,
|
||||||
|
"optional": false,
|
||||||
|
"start": 399,
|
||||||
|
"type": "CallExpression",
|
||||||
|
"type": "CallExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"end": 443,
|
||||||
|
"start": 442,
|
||||||
|
"type": "PipeSubstitution",
|
||||||
|
"type": "PipeSubstitution"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 441,
|
||||||
|
"name": "close",
|
||||||
|
"start": 436,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 444,
|
||||||
|
"optional": false,
|
||||||
|
"start": 436,
|
||||||
|
"type": "CallExpression",
|
||||||
|
"type": "CallExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"end": 463,
|
||||||
|
"name": "width",
|
||||||
|
"start": 458,
|
||||||
|
"type": "Identifier",
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 466,
|
||||||
|
"start": 465,
|
||||||
|
"type": "PipeSubstitution",
|
||||||
|
"type": "PipeSubstitution"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 457,
|
||||||
|
"name": "extrude",
|
||||||
|
"start": 450,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 467,
|
||||||
|
"optional": false,
|
||||||
|
"start": 450,
|
||||||
|
"type": "CallExpression",
|
||||||
|
"type": "CallExpression"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 467,
|
||||||
|
"start": 228,
|
||||||
|
"type": "PipeExpression",
|
||||||
|
"type": "PipeExpression"
|
||||||
|
},
|
||||||
|
"start": 218,
|
||||||
|
"type": "VariableDeclarator"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 467,
|
||||||
|
"kind": "const",
|
||||||
|
"start": 218,
|
||||||
|
"type": "VariableDeclaration",
|
||||||
|
"type": "VariableDeclaration"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 468,
|
||||||
|
"nonCodeMeta": {
|
||||||
|
"nonCodeNodes": {
|
||||||
|
"0": [
|
||||||
|
{
|
||||||
|
"end": 25,
|
||||||
|
"start": 18,
|
||||||
|
"type": "NonCodeNode",
|
||||||
|
"value": {
|
||||||
|
"type": "inlineComment",
|
||||||
|
"value": "psi",
|
||||||
|
"style": "line"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"1": [
|
||||||
|
{
|
||||||
|
"end": 43,
|
||||||
|
"start": 35,
|
||||||
|
"type": "NonCodeNode",
|
||||||
|
"value": {
|
||||||
|
"type": "inlineComment",
|
||||||
|
"value": "inch",
|
||||||
|
"style": "line"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"2": [
|
||||||
|
{
|
||||||
|
"end": 75,
|
||||||
|
"start": 51,
|
||||||
|
"type": "NonCodeNode",
|
||||||
|
"value": {
|
||||||
|
"type": "inlineComment",
|
||||||
|
"value": "Force on shelf - lbs",
|
||||||
|
"style": "line"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"3": [
|
||||||
|
{
|
||||||
|
"end": 98,
|
||||||
|
"start": 88,
|
||||||
|
"type": "NonCodeNode",
|
||||||
|
"value": {
|
||||||
|
"type": "inlineComment",
|
||||||
|
"value": "inches",
|
||||||
|
"style": "line"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"4": [
|
||||||
|
{
|
||||||
|
"end": 108,
|
||||||
|
"start": 106,
|
||||||
|
"type": "NonCodeNode",
|
||||||
|
"value": {
|
||||||
|
"type": "newLine"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"5": [
|
||||||
|
{
|
||||||
|
"end": 126,
|
||||||
|
"start": 116,
|
||||||
|
"type": "NonCodeNode",
|
||||||
|
"value": {
|
||||||
|
"type": "inlineComment",
|
||||||
|
"value": "inches",
|
||||||
|
"style": "line"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"6": [
|
||||||
|
{
|
||||||
|
"end": 145,
|
||||||
|
"start": 135,
|
||||||
|
"type": "NonCodeNode",
|
||||||
|
"value": {
|
||||||
|
"type": "inlineComment",
|
||||||
|
"value": "inches",
|
||||||
|
"style": "line"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"7": [
|
||||||
|
{
|
||||||
|
"end": 217,
|
||||||
|
"start": 207,
|
||||||
|
"type": "NonCodeNode",
|
||||||
|
"value": {
|
||||||
|
"type": "inlineComment",
|
||||||
|
"value": "inches",
|
||||||
|
"style": "line"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"startNodes": []
|
||||||
|
},
|
||||||
|
"start": 0
|
||||||
|
}
|
||||||
|
}
|
18
src/wasm-lib/kcl/tests/parametric/input.kcl
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
sigmaAllow = 35000 // psi
|
||||||
|
width = 9 // inch
|
||||||
|
p = 150 // Force on shelf - lbs
|
||||||
|
distance = 6 // inches
|
||||||
|
FOS = 2
|
||||||
|
|
||||||
|
leg1 = 5 // inches
|
||||||
|
leg2 = 8 // inches
|
||||||
|
thickness = sqrt(distance * p * FOS * 6 / sigmaAllow / width) // inches
|
||||||
|
bracket = startSketchOn('XY')
|
||||||
|
|> startProfileAt([0, 0], %)
|
||||||
|
|> line([0, leg1], %)
|
||||||
|
|> line([leg2, 0], %)
|
||||||
|
|> line([0, -thickness], %)
|
||||||
|
|> line([-leg2 + thickness, 0], %)
|
||||||
|
|> line([0, -leg1 + thickness], %)
|
||||||
|
|> close(%)
|
||||||
|
|> extrude(width, %)
|
405
src/wasm-lib/kcl/tests/parametric/program_memory.snap
Normal file
@ -0,0 +1,405 @@
|
|||||||
|
---
|
||||||
|
source: kcl/src/simulation_tests.rs
|
||||||
|
description: Program memory after executing parametric.kcl
|
||||||
|
snapshot_kind: text
|
||||||
|
---
|
||||||
|
{
|
||||||
|
"environments": [
|
||||||
|
{
|
||||||
|
"bindings": {
|
||||||
|
"FOS": {
|
||||||
|
"type": "Int",
|
||||||
|
"value": 2,
|
||||||
|
"__meta": [
|
||||||
|
{
|
||||||
|
"sourceRange": [
|
||||||
|
105,
|
||||||
|
106,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"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": []
|
||||||
|
},
|
||||||
|
"bracket": {
|
||||||
|
"type": "Solid",
|
||||||
|
"type": "Solid",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"faceId": "[uuid]",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [
|
||||||
|
284,
|
||||||
|
302,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"type": "extrudePlane"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"faceId": "[uuid]",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [
|
||||||
|
308,
|
||||||
|
326,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"type": "extrudePlane"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"faceId": "[uuid]",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [
|
||||||
|
332,
|
||||||
|
356,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"type": "extrudePlane"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"faceId": "[uuid]",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [
|
||||||
|
362,
|
||||||
|
393,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"type": "extrudePlane"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"faceId": "[uuid]",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [
|
||||||
|
399,
|
||||||
|
430,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"type": "extrudePlane"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"faceId": "[uuid]",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [
|
||||||
|
436,
|
||||||
|
444,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"type": "extrudePlane"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"sketch": {
|
||||||
|
"type": "Sketch",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"paths": [
|
||||||
|
{
|
||||||
|
"__geoMeta": {
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [
|
||||||
|
284,
|
||||||
|
302,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"from": [
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"to": [
|
||||||
|
0.0,
|
||||||
|
5.0
|
||||||
|
],
|
||||||
|
"type": "ToPoint"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__geoMeta": {
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [
|
||||||
|
308,
|
||||||
|
326,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"from": [
|
||||||
|
0.0,
|
||||||
|
5.0
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"to": [
|
||||||
|
8.0,
|
||||||
|
5.0
|
||||||
|
],
|
||||||
|
"type": "ToPoint"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__geoMeta": {
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [
|
||||||
|
332,
|
||||||
|
356,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"from": [
|
||||||
|
8.0,
|
||||||
|
5.0
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"to": [
|
||||||
|
8.0,
|
||||||
|
4.8148
|
||||||
|
],
|
||||||
|
"type": "ToPoint"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__geoMeta": {
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [
|
||||||
|
362,
|
||||||
|
393,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"from": [
|
||||||
|
8.0,
|
||||||
|
4.8148
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"to": [
|
||||||
|
0.1852,
|
||||||
|
4.8148
|
||||||
|
],
|
||||||
|
"type": "ToPoint"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__geoMeta": {
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [
|
||||||
|
399,
|
||||||
|
430,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"from": [
|
||||||
|
0.1852,
|
||||||
|
4.8148
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"to": [
|
||||||
|
0.1852,
|
||||||
|
0.0
|
||||||
|
],
|
||||||
|
"type": "ToPoint"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__geoMeta": {
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [
|
||||||
|
436,
|
||||||
|
444,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"from": [
|
||||||
|
0.1852,
|
||||||
|
0.0
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"to": [
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
],
|
||||||
|
"type": "ToPoint"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"on": {
|
||||||
|
"type": "plane",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"value": "XY",
|
||||||
|
"origin": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 0.0,
|
||||||
|
"z": 0.0
|
||||||
|
},
|
||||||
|
"xAxis": {
|
||||||
|
"x": 1.0,
|
||||||
|
"y": 0.0,
|
||||||
|
"z": 0.0
|
||||||
|
},
|
||||||
|
"yAxis": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 1.0,
|
||||||
|
"z": 0.0
|
||||||
|
},
|
||||||
|
"zAxis": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 0.0,
|
||||||
|
"z": 1.0
|
||||||
|
},
|
||||||
|
"__meta": []
|
||||||
|
},
|
||||||
|
"start": {
|
||||||
|
"from": [
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
],
|
||||||
|
"to": [
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"__geoMeta": {
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [
|
||||||
|
253,
|
||||||
|
278,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"__meta": [
|
||||||
|
{
|
||||||
|
"sourceRange": [
|
||||||
|
253,
|
||||||
|
278,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"height": 9.0,
|
||||||
|
"startCapId": "[uuid]",
|
||||||
|
"endCapId": "[uuid]",
|
||||||
|
"__meta": [
|
||||||
|
{
|
||||||
|
"sourceRange": [
|
||||||
|
253,
|
||||||
|
278,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"distance": {
|
||||||
|
"type": "Int",
|
||||||
|
"value": 6,
|
||||||
|
"__meta": [
|
||||||
|
{
|
||||||
|
"sourceRange": [
|
||||||
|
87,
|
||||||
|
88,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"leg1": {
|
||||||
|
"type": "Int",
|
||||||
|
"value": 5,
|
||||||
|
"__meta": [
|
||||||
|
{
|
||||||
|
"sourceRange": [
|
||||||
|
115,
|
||||||
|
116,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"leg2": {
|
||||||
|
"type": "Int",
|
||||||
|
"value": 8,
|
||||||
|
"__meta": [
|
||||||
|
{
|
||||||
|
"sourceRange": [
|
||||||
|
134,
|
||||||
|
135,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"p": {
|
||||||
|
"type": "Int",
|
||||||
|
"value": 150,
|
||||||
|
"__meta": [
|
||||||
|
{
|
||||||
|
"sourceRange": [
|
||||||
|
48,
|
||||||
|
51,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"sigmaAllow": {
|
||||||
|
"type": "Int",
|
||||||
|
"value": 35000,
|
||||||
|
"__meta": [
|
||||||
|
{
|
||||||
|
"sourceRange": [
|
||||||
|
13,
|
||||||
|
18,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"thickness": {
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.1851640199545103,
|
||||||
|
"__meta": [
|
||||||
|
{
|
||||||
|
"sourceRange": [
|
||||||
|
158,
|
||||||
|
207,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"width": {
|
||||||
|
"type": "Int",
|
||||||
|
"value": 9,
|
||||||
|
"__meta": [
|
||||||
|
{
|
||||||
|
"sourceRange": [
|
||||||
|
34,
|
||||||
|
35,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"parent": null
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"currentEnv": 0,
|
||||||
|
"return": null
|
||||||
|
}
|
BIN
src/wasm-lib/kcl/tests/parametric/rendered_model.png
Normal file
After Width: | Height: | Size: 84 KiB |
1281
src/wasm-lib/kcl/tests/parametric/tokens.snap
Normal file
937
src/wasm-lib/kcl/tests/parametric_with_tan_arc/ast.snap
Normal file
@ -0,0 +1,937 @@
|
|||||||
|
---
|
||||||
|
source: kcl/src/simulation_tests.rs
|
||||||
|
description: Result of parsing parametric_with_tan_arc.kcl
|
||||||
|
snapshot_kind: text
|
||||||
|
---
|
||||||
|
{
|
||||||
|
"Ok": {
|
||||||
|
"body": [
|
||||||
|
{
|
||||||
|
"declarations": [
|
||||||
|
{
|
||||||
|
"end": 18,
|
||||||
|
"id": {
|
||||||
|
"end": 10,
|
||||||
|
"name": "sigmaAllow",
|
||||||
|
"start": 0,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"init": {
|
||||||
|
"end": 18,
|
||||||
|
"raw": "15000",
|
||||||
|
"start": 13,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": 15000
|
||||||
|
},
|
||||||
|
"start": 0,
|
||||||
|
"type": "VariableDeclarator"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 18,
|
||||||
|
"kind": "const",
|
||||||
|
"start": 0,
|
||||||
|
"type": "VariableDeclaration",
|
||||||
|
"type": "VariableDeclaration"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"declarations": [
|
||||||
|
{
|
||||||
|
"end": 36,
|
||||||
|
"id": {
|
||||||
|
"end": 31,
|
||||||
|
"name": "width",
|
||||||
|
"start": 26,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"init": {
|
||||||
|
"end": 36,
|
||||||
|
"raw": "11",
|
||||||
|
"start": 34,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": 11
|
||||||
|
},
|
||||||
|
"start": 26,
|
||||||
|
"type": "VariableDeclarator"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 36,
|
||||||
|
"kind": "const",
|
||||||
|
"start": 26,
|
||||||
|
"type": "VariableDeclaration",
|
||||||
|
"type": "VariableDeclaration"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"declarations": [
|
||||||
|
{
|
||||||
|
"end": 52,
|
||||||
|
"id": {
|
||||||
|
"end": 46,
|
||||||
|
"name": "p",
|
||||||
|
"start": 45,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"init": {
|
||||||
|
"end": 52,
|
||||||
|
"raw": "150",
|
||||||
|
"start": 49,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": 150
|
||||||
|
},
|
||||||
|
"start": 45,
|
||||||
|
"type": "VariableDeclarator"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 52,
|
||||||
|
"kind": "const",
|
||||||
|
"start": 45,
|
||||||
|
"type": "VariableDeclaration",
|
||||||
|
"type": "VariableDeclaration"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"declarations": [
|
||||||
|
{
|
||||||
|
"end": 90,
|
||||||
|
"id": {
|
||||||
|
"end": 85,
|
||||||
|
"name": "distance",
|
||||||
|
"start": 77,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"init": {
|
||||||
|
"end": 90,
|
||||||
|
"raw": "12",
|
||||||
|
"start": 88,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": 12
|
||||||
|
},
|
||||||
|
"start": 77,
|
||||||
|
"type": "VariableDeclarator"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 90,
|
||||||
|
"kind": "const",
|
||||||
|
"start": 77,
|
||||||
|
"type": "VariableDeclaration",
|
||||||
|
"type": "VariableDeclaration"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"declarations": [
|
||||||
|
{
|
||||||
|
"end": 108,
|
||||||
|
"id": {
|
||||||
|
"end": 104,
|
||||||
|
"name": "FOS",
|
||||||
|
"start": 101,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"init": {
|
||||||
|
"end": 108,
|
||||||
|
"raw": "2",
|
||||||
|
"start": 107,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": 2
|
||||||
|
},
|
||||||
|
"start": 101,
|
||||||
|
"type": "VariableDeclarator"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 108,
|
||||||
|
"kind": "const",
|
||||||
|
"start": 101,
|
||||||
|
"type": "VariableDeclaration",
|
||||||
|
"type": "VariableDeclaration"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"declarations": [
|
||||||
|
{
|
||||||
|
"end": 172,
|
||||||
|
"id": {
|
||||||
|
"end": 118,
|
||||||
|
"name": "thickness",
|
||||||
|
"start": 109,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"init": {
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"end": 170,
|
||||||
|
"left": {
|
||||||
|
"end": 148,
|
||||||
|
"left": {
|
||||||
|
"end": 144,
|
||||||
|
"left": {
|
||||||
|
"end": 138,
|
||||||
|
"left": {
|
||||||
|
"end": 134,
|
||||||
|
"name": "distance",
|
||||||
|
"start": 126,
|
||||||
|
"type": "Identifier",
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"operator": "*",
|
||||||
|
"right": {
|
||||||
|
"end": 138,
|
||||||
|
"name": "p",
|
||||||
|
"start": 137,
|
||||||
|
"type": "Identifier",
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"start": 126,
|
||||||
|
"type": "BinaryExpression",
|
||||||
|
"type": "BinaryExpression"
|
||||||
|
},
|
||||||
|
"operator": "*",
|
||||||
|
"right": {
|
||||||
|
"end": 144,
|
||||||
|
"name": "FOS",
|
||||||
|
"start": 141,
|
||||||
|
"type": "Identifier",
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"start": 126,
|
||||||
|
"type": "BinaryExpression",
|
||||||
|
"type": "BinaryExpression"
|
||||||
|
},
|
||||||
|
"operator": "*",
|
||||||
|
"right": {
|
||||||
|
"end": 148,
|
||||||
|
"raw": "6",
|
||||||
|
"start": 147,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": 6
|
||||||
|
},
|
||||||
|
"start": 126,
|
||||||
|
"type": "BinaryExpression",
|
||||||
|
"type": "BinaryExpression"
|
||||||
|
},
|
||||||
|
"operator": "/",
|
||||||
|
"right": {
|
||||||
|
"end": 170,
|
||||||
|
"left": {
|
||||||
|
"end": 162,
|
||||||
|
"name": "sigmaAllow",
|
||||||
|
"start": 152,
|
||||||
|
"type": "Identifier",
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"operator": "*",
|
||||||
|
"right": {
|
||||||
|
"end": 170,
|
||||||
|
"name": "width",
|
||||||
|
"start": 165,
|
||||||
|
"type": "Identifier",
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"start": 152,
|
||||||
|
"type": "BinaryExpression",
|
||||||
|
"type": "BinaryExpression"
|
||||||
|
},
|
||||||
|
"start": 126,
|
||||||
|
"type": "BinaryExpression",
|
||||||
|
"type": "BinaryExpression"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 125,
|
||||||
|
"name": "sqrt",
|
||||||
|
"start": 121,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 172,
|
||||||
|
"optional": false,
|
||||||
|
"start": 121,
|
||||||
|
"type": "CallExpression",
|
||||||
|
"type": "CallExpression"
|
||||||
|
},
|
||||||
|
"start": 109,
|
||||||
|
"type": "VariableDeclarator"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 172,
|
||||||
|
"kind": "const",
|
||||||
|
"start": 109,
|
||||||
|
"type": "VariableDeclaration",
|
||||||
|
"type": "VariableDeclaration"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"declarations": [
|
||||||
|
{
|
||||||
|
"end": 196,
|
||||||
|
"id": {
|
||||||
|
"end": 180,
|
||||||
|
"name": "filletR",
|
||||||
|
"start": 173,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"init": {
|
||||||
|
"end": 196,
|
||||||
|
"left": {
|
||||||
|
"end": 192,
|
||||||
|
"name": "thickness",
|
||||||
|
"start": 183,
|
||||||
|
"type": "Identifier",
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"operator": "*",
|
||||||
|
"right": {
|
||||||
|
"end": 196,
|
||||||
|
"raw": "2",
|
||||||
|
"start": 195,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": 2
|
||||||
|
},
|
||||||
|
"start": 183,
|
||||||
|
"type": "BinaryExpression",
|
||||||
|
"type": "BinaryExpression"
|
||||||
|
},
|
||||||
|
"start": 173,
|
||||||
|
"type": "VariableDeclarator"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 196,
|
||||||
|
"kind": "const",
|
||||||
|
"start": 173,
|
||||||
|
"type": "VariableDeclaration",
|
||||||
|
"type": "VariableDeclaration"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"declarations": [
|
||||||
|
{
|
||||||
|
"end": 212,
|
||||||
|
"id": {
|
||||||
|
"end": 208,
|
||||||
|
"name": "shelfMountL",
|
||||||
|
"start": 197,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"init": {
|
||||||
|
"end": 212,
|
||||||
|
"raw": "9",
|
||||||
|
"start": 211,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": 9
|
||||||
|
},
|
||||||
|
"start": 197,
|
||||||
|
"type": "VariableDeclarator"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 212,
|
||||||
|
"kind": "const",
|
||||||
|
"start": 197,
|
||||||
|
"type": "VariableDeclaration",
|
||||||
|
"type": "VariableDeclaration"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"declarations": [
|
||||||
|
{
|
||||||
|
"end": 227,
|
||||||
|
"id": {
|
||||||
|
"end": 223,
|
||||||
|
"name": "wallMountL",
|
||||||
|
"start": 213,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"init": {
|
||||||
|
"end": 227,
|
||||||
|
"raw": "8",
|
||||||
|
"start": 226,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": 8
|
||||||
|
},
|
||||||
|
"start": 213,
|
||||||
|
"type": "VariableDeclarator"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 227,
|
||||||
|
"kind": "const",
|
||||||
|
"start": 213,
|
||||||
|
"type": "VariableDeclaration",
|
||||||
|
"type": "VariableDeclaration"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"declarations": [
|
||||||
|
{
|
||||||
|
"end": 593,
|
||||||
|
"id": {
|
||||||
|
"end": 236,
|
||||||
|
"name": "bracket",
|
||||||
|
"start": 229,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"init": {
|
||||||
|
"body": [
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"end": 255,
|
||||||
|
"raw": "0",
|
||||||
|
"start": 254,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 258,
|
||||||
|
"raw": "0",
|
||||||
|
"start": 257,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": 0
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 259,
|
||||||
|
"start": 253,
|
||||||
|
"type": "ArrayExpression",
|
||||||
|
"type": "ArrayExpression"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 252,
|
||||||
|
"name": "startSketchAt",
|
||||||
|
"start": 239,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 260,
|
||||||
|
"optional": false,
|
||||||
|
"start": 239,
|
||||||
|
"type": "CallExpression",
|
||||||
|
"type": "CallExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"end": 273,
|
||||||
|
"raw": "0",
|
||||||
|
"start": 272,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 285,
|
||||||
|
"name": "wallMountL",
|
||||||
|
"start": 275,
|
||||||
|
"type": "Identifier",
|
||||||
|
"type": "Identifier"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 286,
|
||||||
|
"start": 271,
|
||||||
|
"type": "ArrayExpression",
|
||||||
|
"type": "ArrayExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 289,
|
||||||
|
"start": 288,
|
||||||
|
"type": "PipeSubstitution",
|
||||||
|
"type": "PipeSubstitution"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 270,
|
||||||
|
"name": "line",
|
||||||
|
"start": 266,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 290,
|
||||||
|
"optional": false,
|
||||||
|
"start": 266,
|
||||||
|
"type": "CallExpression",
|
||||||
|
"type": "CallExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"end": 341,
|
||||||
|
"properties": [
|
||||||
|
{
|
||||||
|
"end": 327,
|
||||||
|
"key": {
|
||||||
|
"end": 318,
|
||||||
|
"name": "radius",
|
||||||
|
"start": 312,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"start": 312,
|
||||||
|
"type": "ObjectProperty",
|
||||||
|
"value": {
|
||||||
|
"end": 327,
|
||||||
|
"name": "filletR",
|
||||||
|
"start": 320,
|
||||||
|
"type": "Identifier",
|
||||||
|
"type": "Identifier"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 339,
|
||||||
|
"key": {
|
||||||
|
"end": 335,
|
||||||
|
"name": "offset",
|
||||||
|
"start": 329,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"start": 329,
|
||||||
|
"type": "ObjectProperty",
|
||||||
|
"value": {
|
||||||
|
"end": 339,
|
||||||
|
"raw": "90",
|
||||||
|
"start": 337,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": 90
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"start": 310,
|
||||||
|
"type": "ObjectExpression",
|
||||||
|
"type": "ObjectExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 344,
|
||||||
|
"start": 343,
|
||||||
|
"type": "PipeSubstitution",
|
||||||
|
"type": "PipeSubstitution"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 309,
|
||||||
|
"name": "tangentialArc",
|
||||||
|
"start": 296,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 345,
|
||||||
|
"optional": false,
|
||||||
|
"start": 296,
|
||||||
|
"type": "CallExpression",
|
||||||
|
"type": "CallExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"argument": {
|
||||||
|
"end": 369,
|
||||||
|
"name": "shelfMountL",
|
||||||
|
"start": 358,
|
||||||
|
"type": "Identifier",
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 369,
|
||||||
|
"operator": "-",
|
||||||
|
"start": 357,
|
||||||
|
"type": "UnaryExpression",
|
||||||
|
"type": "UnaryExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 372,
|
||||||
|
"raw": "0",
|
||||||
|
"start": 371,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": 0
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 373,
|
||||||
|
"start": 356,
|
||||||
|
"type": "ArrayExpression",
|
||||||
|
"type": "ArrayExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 376,
|
||||||
|
"start": 375,
|
||||||
|
"type": "PipeSubstitution",
|
||||||
|
"type": "PipeSubstitution"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 355,
|
||||||
|
"name": "line",
|
||||||
|
"start": 351,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 377,
|
||||||
|
"optional": false,
|
||||||
|
"start": 351,
|
||||||
|
"type": "CallExpression",
|
||||||
|
"type": "CallExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"end": 390,
|
||||||
|
"raw": "0",
|
||||||
|
"start": 389,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"argument": {
|
||||||
|
"end": 402,
|
||||||
|
"name": "thickness",
|
||||||
|
"start": 393,
|
||||||
|
"type": "Identifier",
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 402,
|
||||||
|
"operator": "-",
|
||||||
|
"start": 392,
|
||||||
|
"type": "UnaryExpression",
|
||||||
|
"type": "UnaryExpression"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 403,
|
||||||
|
"start": 388,
|
||||||
|
"type": "ArrayExpression",
|
||||||
|
"type": "ArrayExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 406,
|
||||||
|
"start": 405,
|
||||||
|
"type": "PipeSubstitution",
|
||||||
|
"type": "PipeSubstitution"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 387,
|
||||||
|
"name": "line",
|
||||||
|
"start": 383,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 407,
|
||||||
|
"optional": false,
|
||||||
|
"start": 383,
|
||||||
|
"type": "CallExpression",
|
||||||
|
"type": "CallExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"end": 430,
|
||||||
|
"name": "shelfMountL",
|
||||||
|
"start": 419,
|
||||||
|
"type": "Identifier",
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 433,
|
||||||
|
"raw": "0",
|
||||||
|
"start": 432,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": 0
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 434,
|
||||||
|
"start": 418,
|
||||||
|
"type": "ArrayExpression",
|
||||||
|
"type": "ArrayExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 437,
|
||||||
|
"start": 436,
|
||||||
|
"type": "PipeSubstitution",
|
||||||
|
"type": "PipeSubstitution"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 417,
|
||||||
|
"name": "line",
|
||||||
|
"start": 413,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 438,
|
||||||
|
"optional": false,
|
||||||
|
"start": 413,
|
||||||
|
"type": "CallExpression",
|
||||||
|
"type": "CallExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"end": 521,
|
||||||
|
"properties": [
|
||||||
|
{
|
||||||
|
"end": 494,
|
||||||
|
"key": {
|
||||||
|
"end": 473,
|
||||||
|
"name": "radius",
|
||||||
|
"start": 467,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"start": 467,
|
||||||
|
"type": "ObjectProperty",
|
||||||
|
"value": {
|
||||||
|
"end": 494,
|
||||||
|
"left": {
|
||||||
|
"end": 482,
|
||||||
|
"name": "filletR",
|
||||||
|
"start": 475,
|
||||||
|
"type": "Identifier",
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"operator": "-",
|
||||||
|
"right": {
|
||||||
|
"end": 494,
|
||||||
|
"name": "thickness",
|
||||||
|
"start": 485,
|
||||||
|
"type": "Identifier",
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"start": 475,
|
||||||
|
"type": "BinaryExpression",
|
||||||
|
"type": "BinaryExpression"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 514,
|
||||||
|
"key": {
|
||||||
|
"end": 509,
|
||||||
|
"name": "offset",
|
||||||
|
"start": 503,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"start": 503,
|
||||||
|
"type": "ObjectProperty",
|
||||||
|
"value": {
|
||||||
|
"argument": {
|
||||||
|
"end": 514,
|
||||||
|
"raw": "90",
|
||||||
|
"start": 512,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": 90
|
||||||
|
},
|
||||||
|
"end": 514,
|
||||||
|
"operator": "-",
|
||||||
|
"start": 511,
|
||||||
|
"type": "UnaryExpression",
|
||||||
|
"type": "UnaryExpression"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"start": 458,
|
||||||
|
"type": "ObjectExpression",
|
||||||
|
"type": "ObjectExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 524,
|
||||||
|
"start": 523,
|
||||||
|
"type": "PipeSubstitution",
|
||||||
|
"type": "PipeSubstitution"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 457,
|
||||||
|
"name": "tangentialArc",
|
||||||
|
"start": 444,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 525,
|
||||||
|
"optional": false,
|
||||||
|
"start": 444,
|
||||||
|
"type": "CallExpression",
|
||||||
|
"type": "CallExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"end": 538,
|
||||||
|
"raw": "0",
|
||||||
|
"start": 537,
|
||||||
|
"type": "Literal",
|
||||||
|
"type": "Literal",
|
||||||
|
"value": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"argument": {
|
||||||
|
"end": 551,
|
||||||
|
"name": "wallMountL",
|
||||||
|
"start": 541,
|
||||||
|
"type": "Identifier",
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 551,
|
||||||
|
"operator": "-",
|
||||||
|
"start": 540,
|
||||||
|
"type": "UnaryExpression",
|
||||||
|
"type": "UnaryExpression"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 552,
|
||||||
|
"start": 536,
|
||||||
|
"type": "ArrayExpression",
|
||||||
|
"type": "ArrayExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 555,
|
||||||
|
"start": 554,
|
||||||
|
"type": "PipeSubstitution",
|
||||||
|
"type": "PipeSubstitution"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 535,
|
||||||
|
"name": "line",
|
||||||
|
"start": 531,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 556,
|
||||||
|
"optional": false,
|
||||||
|
"start": 531,
|
||||||
|
"type": "CallExpression",
|
||||||
|
"type": "CallExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"end": 569,
|
||||||
|
"start": 568,
|
||||||
|
"type": "PipeSubstitution",
|
||||||
|
"type": "PipeSubstitution"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 567,
|
||||||
|
"name": "close",
|
||||||
|
"start": 562,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 570,
|
||||||
|
"optional": false,
|
||||||
|
"start": 562,
|
||||||
|
"type": "CallExpression",
|
||||||
|
"type": "CallExpression"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"arguments": [
|
||||||
|
{
|
||||||
|
"end": 589,
|
||||||
|
"name": "width",
|
||||||
|
"start": 584,
|
||||||
|
"type": "Identifier",
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"end": 592,
|
||||||
|
"start": 591,
|
||||||
|
"type": "PipeSubstitution",
|
||||||
|
"type": "PipeSubstitution"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"callee": {
|
||||||
|
"end": 583,
|
||||||
|
"name": "extrude",
|
||||||
|
"start": 576,
|
||||||
|
"type": "Identifier"
|
||||||
|
},
|
||||||
|
"end": 593,
|
||||||
|
"optional": false,
|
||||||
|
"start": 576,
|
||||||
|
"type": "CallExpression",
|
||||||
|
"type": "CallExpression"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 593,
|
||||||
|
"start": 239,
|
||||||
|
"type": "PipeExpression",
|
||||||
|
"type": "PipeExpression"
|
||||||
|
},
|
||||||
|
"start": 229,
|
||||||
|
"type": "VariableDeclarator"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 593,
|
||||||
|
"kind": "const",
|
||||||
|
"start": 229,
|
||||||
|
"type": "VariableDeclaration",
|
||||||
|
"type": "VariableDeclaration"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"end": 594,
|
||||||
|
"nonCodeMeta": {
|
||||||
|
"nonCodeNodes": {
|
||||||
|
"0": [
|
||||||
|
{
|
||||||
|
"end": 25,
|
||||||
|
"start": 18,
|
||||||
|
"type": "NonCodeNode",
|
||||||
|
"value": {
|
||||||
|
"type": "inlineComment",
|
||||||
|
"value": "psi",
|
||||||
|
"style": "line"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"1": [
|
||||||
|
{
|
||||||
|
"end": 44,
|
||||||
|
"start": 36,
|
||||||
|
"type": "NonCodeNode",
|
||||||
|
"value": {
|
||||||
|
"type": "inlineComment",
|
||||||
|
"value": "inch",
|
||||||
|
"style": "line"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"2": [
|
||||||
|
{
|
||||||
|
"end": 76,
|
||||||
|
"start": 52,
|
||||||
|
"type": "NonCodeNode",
|
||||||
|
"value": {
|
||||||
|
"type": "inlineComment",
|
||||||
|
"value": "Force on shelf - lbs",
|
||||||
|
"style": "line"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"3": [
|
||||||
|
{
|
||||||
|
"end": 100,
|
||||||
|
"start": 90,
|
||||||
|
"type": "NonCodeNode",
|
||||||
|
"value": {
|
||||||
|
"type": "inlineComment",
|
||||||
|
"value": "inches",
|
||||||
|
"style": "line"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"8": [
|
||||||
|
{
|
||||||
|
"end": 229,
|
||||||
|
"start": 227,
|
||||||
|
"type": "NonCodeNode",
|
||||||
|
"value": {
|
||||||
|
"type": "newLine"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"startNodes": []
|
||||||
|
},
|
||||||
|
"start": 0
|
||||||
|
}
|
||||||
|
}
|
23
src/wasm-lib/kcl/tests/parametric_with_tan_arc/input.kcl
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
sigmaAllow = 15000 // psi
|
||||||
|
width = 11 // inch
|
||||||
|
p = 150 // Force on shelf - lbs
|
||||||
|
distance = 12 // inches
|
||||||
|
FOS = 2
|
||||||
|
thickness = sqrt(distance * p * FOS * 6 / (sigmaAllow * width))
|
||||||
|
filletR = thickness * 2
|
||||||
|
shelfMountL = 9
|
||||||
|
wallMountL = 8
|
||||||
|
|
||||||
|
bracket = startSketchAt([0, 0])
|
||||||
|
|> line([0, wallMountL], %)
|
||||||
|
|> tangentialArc({ radius: filletR, offset: 90 }, %)
|
||||||
|
|> line([-shelfMountL, 0], %)
|
||||||
|
|> line([0, -thickness], %)
|
||||||
|
|> line([shelfMountL, 0], %)
|
||||||
|
|> tangentialArc({
|
||||||
|
radius: filletR - thickness,
|
||||||
|
offset: -90
|
||||||
|
}, %)
|
||||||
|
|> line([0, -wallMountL], %)
|
||||||
|
|> close(%)
|
||||||
|
|> extrude(width, %)
|
@ -0,0 +1,497 @@
|
|||||||
|
---
|
||||||
|
source: kcl/src/simulation_tests.rs
|
||||||
|
description: Program memory after executing parametric_with_tan_arc.kcl
|
||||||
|
snapshot_kind: text
|
||||||
|
---
|
||||||
|
{
|
||||||
|
"environments": [
|
||||||
|
{
|
||||||
|
"bindings": {
|
||||||
|
"FOS": {
|
||||||
|
"type": "Int",
|
||||||
|
"value": 2,
|
||||||
|
"__meta": [
|
||||||
|
{
|
||||||
|
"sourceRange": [
|
||||||
|
107,
|
||||||
|
108,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"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": []
|
||||||
|
},
|
||||||
|
"bracket": {
|
||||||
|
"type": "Solid",
|
||||||
|
"type": "Solid",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"faceId": "[uuid]",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [
|
||||||
|
266,
|
||||||
|
290,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"type": "extrudePlane"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"faceId": "[uuid]",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [
|
||||||
|
296,
|
||||||
|
345,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"type": "extrudeArc"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"faceId": "[uuid]",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [
|
||||||
|
351,
|
||||||
|
377,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"type": "extrudePlane"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"faceId": "[uuid]",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [
|
||||||
|
383,
|
||||||
|
407,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"type": "extrudePlane"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"faceId": "[uuid]",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [
|
||||||
|
413,
|
||||||
|
438,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"type": "extrudePlane"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"faceId": "[uuid]",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [
|
||||||
|
444,
|
||||||
|
525,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"type": "extrudeArc"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"faceId": "[uuid]",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [
|
||||||
|
531,
|
||||||
|
556,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"type": "extrudePlane"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"faceId": "[uuid]",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [
|
||||||
|
562,
|
||||||
|
570,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"type": "extrudePlane"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"sketch": {
|
||||||
|
"type": "Sketch",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"paths": [
|
||||||
|
{
|
||||||
|
"__geoMeta": {
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [
|
||||||
|
266,
|
||||||
|
290,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"from": [
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"to": [
|
||||||
|
0.0,
|
||||||
|
8.0
|
||||||
|
],
|
||||||
|
"type": "ToPoint"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__geoMeta": {
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [
|
||||||
|
296,
|
||||||
|
345,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"ccw": true,
|
||||||
|
"center": [
|
||||||
|
-0.7236272269866327,
|
||||||
|
8.0
|
||||||
|
],
|
||||||
|
"from": [
|
||||||
|
0.0,
|
||||||
|
8.0
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"to": [
|
||||||
|
-0.7236,
|
||||||
|
8.7236
|
||||||
|
],
|
||||||
|
"type": "TangentialArc"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__geoMeta": {
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [
|
||||||
|
351,
|
||||||
|
377,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"from": [
|
||||||
|
-0.7236,
|
||||||
|
8.7236
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"to": [
|
||||||
|
-9.7236,
|
||||||
|
8.7236
|
||||||
|
],
|
||||||
|
"type": "ToPoint"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__geoMeta": {
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [
|
||||||
|
383,
|
||||||
|
407,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"from": [
|
||||||
|
-9.7236,
|
||||||
|
8.7236
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"to": [
|
||||||
|
-9.7236,
|
||||||
|
8.3618
|
||||||
|
],
|
||||||
|
"type": "ToPoint"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__geoMeta": {
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [
|
||||||
|
413,
|
||||||
|
438,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"from": [
|
||||||
|
-9.7236,
|
||||||
|
8.3618
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"to": [
|
||||||
|
-0.7236,
|
||||||
|
8.3618
|
||||||
|
],
|
||||||
|
"type": "ToPoint"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__geoMeta": {
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [
|
||||||
|
444,
|
||||||
|
525,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"ccw": false,
|
||||||
|
"center": [
|
||||||
|
-0.7236272269866326,
|
||||||
|
8.0
|
||||||
|
],
|
||||||
|
"from": [
|
||||||
|
-0.7236,
|
||||||
|
8.3618
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"to": [
|
||||||
|
-0.3618,
|
||||||
|
8.0
|
||||||
|
],
|
||||||
|
"type": "TangentialArc"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__geoMeta": {
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [
|
||||||
|
531,
|
||||||
|
556,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"from": [
|
||||||
|
-0.3618,
|
||||||
|
8.0
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"to": [
|
||||||
|
-0.3618,
|
||||||
|
0.0
|
||||||
|
],
|
||||||
|
"type": "ToPoint"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"__geoMeta": {
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [
|
||||||
|
562,
|
||||||
|
570,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"from": [
|
||||||
|
-0.3618,
|
||||||
|
0.0
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"to": [
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
],
|
||||||
|
"type": "ToPoint"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"on": {
|
||||||
|
"type": "plane",
|
||||||
|
"id": "[uuid]",
|
||||||
|
"value": "XY",
|
||||||
|
"origin": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 0.0,
|
||||||
|
"z": 0.0
|
||||||
|
},
|
||||||
|
"xAxis": {
|
||||||
|
"x": 1.0,
|
||||||
|
"y": 0.0,
|
||||||
|
"z": 0.0
|
||||||
|
},
|
||||||
|
"yAxis": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 1.0,
|
||||||
|
"z": 0.0
|
||||||
|
},
|
||||||
|
"zAxis": {
|
||||||
|
"x": 0.0,
|
||||||
|
"y": 0.0,
|
||||||
|
"z": 1.0
|
||||||
|
},
|
||||||
|
"__meta": []
|
||||||
|
},
|
||||||
|
"start": {
|
||||||
|
"from": [
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
],
|
||||||
|
"to": [
|
||||||
|
0.0,
|
||||||
|
0.0
|
||||||
|
],
|
||||||
|
"tag": null,
|
||||||
|
"__geoMeta": {
|
||||||
|
"id": "[uuid]",
|
||||||
|
"sourceRange": [
|
||||||
|
239,
|
||||||
|
260,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"__meta": [
|
||||||
|
{
|
||||||
|
"sourceRange": [
|
||||||
|
239,
|
||||||
|
260,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"height": 11.0,
|
||||||
|
"startCapId": "[uuid]",
|
||||||
|
"endCapId": "[uuid]",
|
||||||
|
"__meta": [
|
||||||
|
{
|
||||||
|
"sourceRange": [
|
||||||
|
239,
|
||||||
|
260,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"distance": {
|
||||||
|
"type": "Int",
|
||||||
|
"value": 12,
|
||||||
|
"__meta": [
|
||||||
|
{
|
||||||
|
"sourceRange": [
|
||||||
|
88,
|
||||||
|
90,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"filletR": {
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.7236272269866327,
|
||||||
|
"__meta": [
|
||||||
|
{
|
||||||
|
"sourceRange": [
|
||||||
|
121,
|
||||||
|
172,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"sourceRange": [
|
||||||
|
195,
|
||||||
|
196,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"p": {
|
||||||
|
"type": "Int",
|
||||||
|
"value": 150,
|
||||||
|
"__meta": [
|
||||||
|
{
|
||||||
|
"sourceRange": [
|
||||||
|
49,
|
||||||
|
52,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"shelfMountL": {
|
||||||
|
"type": "Int",
|
||||||
|
"value": 9,
|
||||||
|
"__meta": [
|
||||||
|
{
|
||||||
|
"sourceRange": [
|
||||||
|
211,
|
||||||
|
212,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"sigmaAllow": {
|
||||||
|
"type": "Int",
|
||||||
|
"value": 15000,
|
||||||
|
"__meta": [
|
||||||
|
{
|
||||||
|
"sourceRange": [
|
||||||
|
13,
|
||||||
|
18,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"thickness": {
|
||||||
|
"type": "Number",
|
||||||
|
"value": 0.36181361349331637,
|
||||||
|
"__meta": [
|
||||||
|
{
|
||||||
|
"sourceRange": [
|
||||||
|
121,
|
||||||
|
172,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"wallMountL": {
|
||||||
|
"type": "Int",
|
||||||
|
"value": 8,
|
||||||
|
"__meta": [
|
||||||
|
{
|
||||||
|
"sourceRange": [
|
||||||
|
226,
|
||||||
|
227,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"width": {
|
||||||
|
"type": "Int",
|
||||||
|
"value": 11,
|
||||||
|
"__meta": [
|
||||||
|
{
|
||||||
|
"sourceRange": [
|
||||||
|
34,
|
||||||
|
36,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"parent": null
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"currentEnv": 0,
|
||||||
|
"return": null
|
||||||
|
}
|
After Width: | Height: | Size: 58 KiB |
1515
src/wasm-lib/kcl/tests/parametric_with_tan_arc/tokens.snap
Normal file
@ -29,42 +29,6 @@ async fn kcl_test_fillet_duplicate_tags() {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[tokio::test(flavor = "multi_thread")]
|
|
||||||
async fn kcl_test_execute_with_function_sketch() {
|
|
||||||
let code = kcl_input!("function_sketch");
|
|
||||||
let result = execute_and_snapshot(code, UnitLength::Mm).await.unwrap();
|
|
||||||
assert_out("function_sketch", &result);
|
|
||||||
}
|
|
||||||
|
|
||||||
#[tokio::test(flavor = "multi_thread")]
|
|
||||||
async fn kcl_test_execute_with_function_sketch_with_position() {
|
|
||||||
let code = kcl_input!("function_sketch_with_position");
|
|
||||||
|
|
||||||
let result = execute_and_snapshot(code, UnitLength::Mm).await.unwrap();
|
|
||||||
assert_out("function_sketch_with_position", &result);
|
|
||||||
}
|
|
||||||
|
|
||||||
#[tokio::test(flavor = "multi_thread")]
|
|
||||||
async fn kcl_test_execute_with_angled_line() {
|
|
||||||
let code = kcl_input!("angled_line");
|
|
||||||
let result = execute_and_snapshot(code, UnitLength::Mm).await.unwrap();
|
|
||||||
assert_out("angled_line", &result);
|
|
||||||
}
|
|
||||||
|
|
||||||
#[tokio::test(flavor = "multi_thread")]
|
|
||||||
async fn kcl_test_execute_parametric_example() {
|
|
||||||
let code = kcl_input!("parametric");
|
|
||||||
let result = execute_and_snapshot(code, UnitLength::Mm).await.unwrap();
|
|
||||||
assert_out("parametric", &result);
|
|
||||||
}
|
|
||||||
|
|
||||||
#[tokio::test(flavor = "multi_thread")]
|
|
||||||
async fn kcl_test_execute_parametric_with_tan_arc_example() {
|
|
||||||
let code = kcl_input!("parametric_with_tan_arc");
|
|
||||||
let result = execute_and_snapshot(code, UnitLength::Mm).await.unwrap();
|
|
||||||
assert_out("parametric_with_tan_arc", &result);
|
|
||||||
}
|
|
||||||
|
|
||||||
#[tokio::test(flavor = "multi_thread")]
|
#[tokio::test(flavor = "multi_thread")]
|
||||||
async fn kcl_test_execute_engine_error_return() {
|
async fn kcl_test_execute_engine_error_return() {
|
||||||
let code = r#"part001 = startSketchOn('XY')
|
let code = r#"part001 = startSketchOn('XY')
|
||||||
|