15
									
								
								src/wasm-lib/Cargo.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										15
									
								
								src/wasm-lib/Cargo.lock
									
									
									
										generated
									
									
									
								
							@ -1305,6 +1305,20 @@ dependencies = [
 | 
			
		||||
 "serde",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "insta"
 | 
			
		||||
version = "1.34.0"
 | 
			
		||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
checksum = "5d64600be34b2fcfc267740a243fa7744441bb4947a619ac4e5bb6507f35fbfc"
 | 
			
		||||
dependencies = [
 | 
			
		||||
 "console",
 | 
			
		||||
 "lazy_static",
 | 
			
		||||
 "linked-hash-map",
 | 
			
		||||
 "serde",
 | 
			
		||||
 "similar",
 | 
			
		||||
 "yaml-rust",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "instant"
 | 
			
		||||
version = "0.1.12"
 | 
			
		||||
@ -1401,6 +1415,7 @@ dependencies = [
 | 
			
		||||
 "derive-docs 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
 "expectorate",
 | 
			
		||||
 "futures",
 | 
			
		||||
 "insta",
 | 
			
		||||
 "itertools 0.11.0",
 | 
			
		||||
 "js-sys",
 | 
			
		||||
 "kittycad",
 | 
			
		||||
 | 
			
		||||
@ -57,6 +57,7 @@ debug = true # Flamegraphs of benchmarks require accurate debug symbols
 | 
			
		||||
[dev-dependencies]
 | 
			
		||||
criterion = "0.5.1"
 | 
			
		||||
expectorate = "1.1.0"
 | 
			
		||||
insta = { version = "1.34.0", features = ["json"] }
 | 
			
		||||
itertools = "0.11.0"
 | 
			
		||||
pretty_assertions = "1.4.0"
 | 
			
		||||
tokio = { version = "1.33.0", features = ["rt-multi-thread", "macros", "time"] }
 | 
			
		||||
 | 
			
		||||
@ -1675,95 +1675,6 @@ const mySk1 = startSketchAt([0, 0])"#;
 | 
			
		||||
        assert_eq!(inner.operator, BinaryOperator::Sub);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    #[test]
 | 
			
		||||
    fn check_parsers_work_the_same() {
 | 
			
		||||
        for (i, test_program) in [
 | 
			
		||||
            r#"const boxSketch = startSketchAt([0, 0])
 | 
			
		||||
    |> line([0, 10], %)
 | 
			
		||||
    |> tangentialArc([-5, 5], %)
 | 
			
		||||
    |> line([5, -15], %)
 | 
			
		||||
    |> extrude(10, %)
 | 
			
		||||
"#,
 | 
			
		||||
            "const myVar = min(5 , -legLen(5, 4))", // Space before comma
 | 
			
		||||
            "const myVar = min(-legLen(5, 4), 5)",
 | 
			
		||||
            "const myVar = 5 + 6 |> myFunc(45, %)",
 | 
			
		||||
            "let x = 1 * (3 - 4)",
 | 
			
		||||
            r#"const x = 1 // this is an inline comment"#,
 | 
			
		||||
            r#"fn x = () => {
 | 
			
		||||
                return sg
 | 
			
		||||
                return sg
 | 
			
		||||
              }"#,
 | 
			
		||||
            r#"const x = -leg2 + thickness"#,
 | 
			
		||||
            r#"const obj = { a: 1, b: 2 }
 | 
			
		||||
            const height = 1 - obj.a"#,
 | 
			
		||||
            r#"const obj = { a: 1, b: 2 }
 | 
			
		||||
            const height = 1 - obj["a"]"#,
 | 
			
		||||
            r#"const obj = { a: 1, b: 2 }
 | 
			
		||||
            const height = obj["a"] - 1"#,
 | 
			
		||||
            r#"const obj = { a: 1, b: 2 }
 | 
			
		||||
            const height = [1 - obj["a"], 0]"#,
 | 
			
		||||
            r#"const obj = { a: 1, b: 2 }
 | 
			
		||||
            const height = [obj["a"] - 1, 0]"#,
 | 
			
		||||
            r#"const obj = { a: 1, b: 2 }
 | 
			
		||||
            const height = [obj["a"] -1, 0]"#,
 | 
			
		||||
            "const height = 1 - obj.a",
 | 
			
		||||
            "const six = 1 + 2 + 3",
 | 
			
		||||
            "const five = 3 * 1 + 2",
 | 
			
		||||
            r#"const height = [ obj["a"], 0 ]"#,
 | 
			
		||||
            r#"const obj = { a: 1, b: 2 }
 | 
			
		||||
            const height = obj["a"]"#,
 | 
			
		||||
            r#"const prop = yo["one"][two]"#,
 | 
			
		||||
            r#"const pt1 = b1[x]"#,
 | 
			
		||||
            "const prop = yo.one.two.three.four",
 | 
			
		||||
            r#"const pt1 = b1[0]"#,
 | 
			
		||||
            r#"const pt1 = b1['zero']"#,
 | 
			
		||||
            r#"const pt1 = b1.zero"#,
 | 
			
		||||
            "const sg = startSketchAt(pos)",
 | 
			
		||||
            "const sg = startSketchAt(pos) |> line([0, -scale], %)",
 | 
			
		||||
            r#"const sg = -scale"#,
 | 
			
		||||
            "lineTo({ to: [0, -1] })",
 | 
			
		||||
            "const myArray = [0..10]",
 | 
			
		||||
            r#"
 | 
			
		||||
            fn firstPrimeNumber = () => {
 | 
			
		||||
                return 2
 | 
			
		||||
            }
 | 
			
		||||
            firstPrimeNumber()"#,
 | 
			
		||||
            r#"fn thing = (param) => {
 | 
			
		||||
                return true
 | 
			
		||||
            }
 | 
			
		||||
            thing(false)"#,
 | 
			
		||||
            r#"const mySketch = startSketchAt([0,0])
 | 
			
		||||
                |> lineTo({ to: [0, 1], tag: 'myPath' }, %)
 | 
			
		||||
                |> lineTo([1, 1], %)
 | 
			
		||||
                |> lineTo({ to: [1,0], tag: "rightPath" }, %)
 | 
			
		||||
                |> close(%)"#,
 | 
			
		||||
            "const mySketch = startSketchAt([0,0]) |> lineTo([1, 1], %) |> close(%)",
 | 
			
		||||
            "const myBox = startSketchAt(p)",
 | 
			
		||||
            r#"const myBox = f(1) |> g(2)"#,
 | 
			
		||||
            r#"const myBox = startSketchAt(p) |> line([0, l], %)"#,
 | 
			
		||||
            "lineTo({ to: [0, 1] })",
 | 
			
		||||
            "lineTo({ to: [0, 1], from: [3, 3] })",
 | 
			
		||||
            "lineTo({to:[0, 1]})",
 | 
			
		||||
            "lineTo({ to: [0, 1], from: [3, 3]})",
 | 
			
		||||
            "lineTo({ to: [0, 1],from: [3, 3] })",
 | 
			
		||||
            "const mySketch = startSketchAt([0,0])",
 | 
			
		||||
            "log(5, \"hello\", aIdentifier)",
 | 
			
		||||
            r#"5 + "a""#,
 | 
			
		||||
            "line([0, l], %)",
 | 
			
		||||
        ]
 | 
			
		||||
        .into_iter()
 | 
			
		||||
        .enumerate()
 | 
			
		||||
        {
 | 
			
		||||
            // Run the original parser
 | 
			
		||||
            let tokens = crate::token::lexer(test_program);
 | 
			
		||||
            // TODO: get snapshots of what this outputs.
 | 
			
		||||
            let _actual = match program.parse(&tokens) {
 | 
			
		||||
                Ok(x) => x,
 | 
			
		||||
                Err(_e) => panic!("could not parse test {i}"),
 | 
			
		||||
            };
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    #[test]
 | 
			
		||||
    fn binary_expression_ignores_whitespace() {
 | 
			
		||||
        let tests = ["1 - 2", "1- 2", "1 -2", "1-2"];
 | 
			
		||||
@ -2733,24 +2644,173 @@ show(myBox)"#;
 | 
			
		||||
        let parser = crate::parser::Parser::new(tokens);
 | 
			
		||||
        parser.ast().unwrap();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    #[test]
 | 
			
		||||
    fn test_math() {
 | 
			
		||||
        for math_expression in [
 | 
			
		||||
            "1 + 2",
 | 
			
		||||
            "1+2",
 | 
			
		||||
            "1 -2",
 | 
			
		||||
            "1 + 2 * 3",
 | 
			
		||||
            "1 * ( 2 + 3 )",
 | 
			
		||||
            "1 * ( 2 + 3 ) / 4",
 | 
			
		||||
            "1 + ( 2 + 3 ) / 4",
 | 
			
		||||
            "1 * (( 2 + 3 ) / 4 + 5 )",
 | 
			
		||||
            "1 * ((( 2 + 3 )))",
 | 
			
		||||
            "distance * p * FOS * 6 / (sigmaAllow * width)",
 | 
			
		||||
            "2 + (((3)))",
 | 
			
		||||
        ] {
 | 
			
		||||
            let tokens = crate::token::lexer(math_expression);
 | 
			
		||||
            let _expr = binary_expression.parse(&tokens).unwrap();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#[cfg(test)]
 | 
			
		||||
mod snapshot_math_tests {
 | 
			
		||||
    use super::*;
 | 
			
		||||
 | 
			
		||||
    // This macro generates a test function with the given function name.
 | 
			
		||||
    // The macro takes a KCL program, ensures it tokenizes and parses, then compares
 | 
			
		||||
    // its parsed AST to a snapshot (kept in this repo in a file under snapshots/ dir)
 | 
			
		||||
    macro_rules! snapshot_test {
 | 
			
		||||
        ($func_name:ident, $test_kcl_program:expr) => {
 | 
			
		||||
            #[test]
 | 
			
		||||
            fn $func_name() {
 | 
			
		||||
                let tokens = crate::token::lexer($test_kcl_program);
 | 
			
		||||
                let actual = match binary_expression.parse(&tokens) {
 | 
			
		||||
                    Ok(x) => x,
 | 
			
		||||
                    Err(_e) => panic!("could not parse test"),
 | 
			
		||||
                };
 | 
			
		||||
                insta::assert_json_snapshot!(actual);
 | 
			
		||||
            }
 | 
			
		||||
        };
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    snapshot_test!(a, "1 + 2");
 | 
			
		||||
    snapshot_test!(b, "1+2");
 | 
			
		||||
    snapshot_test!(c, "1 -2");
 | 
			
		||||
    snapshot_test!(d, "1 + 2 * 3");
 | 
			
		||||
    snapshot_test!(e, "1 * ( 2 + 3 )");
 | 
			
		||||
    snapshot_test!(f, "1 * ( 2 + 3 ) / 4");
 | 
			
		||||
    snapshot_test!(g, "1 + ( 2 + 3 ) / 4");
 | 
			
		||||
    snapshot_test!(h, "1 * (( 2 + 3 ) / 4 + 5 )");
 | 
			
		||||
    snapshot_test!(i, "1 * ((( 2 + 3 )))");
 | 
			
		||||
    snapshot_test!(j, "distance * p * FOS * 6 / (sigmaAllow * width)");
 | 
			
		||||
    snapshot_test!(k, "2 + (((3)))");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#[cfg(test)]
 | 
			
		||||
mod snapshot_tests {
 | 
			
		||||
    use super::*;
 | 
			
		||||
 | 
			
		||||
    // This macro generates a test function with the given function name.
 | 
			
		||||
    // The macro takes a KCL program, ensures it tokenizes and parses, then compares
 | 
			
		||||
    // its parsed AST to a snapshot (kept in this repo in a file under snapshots/ dir)
 | 
			
		||||
    macro_rules! snapshot_test {
 | 
			
		||||
        ($func_name:ident, $test_kcl_program:expr) => {
 | 
			
		||||
            #[test]
 | 
			
		||||
            fn $func_name() {
 | 
			
		||||
                let tokens = crate::token::lexer($test_kcl_program);
 | 
			
		||||
                let actual = match program.parse(&tokens) {
 | 
			
		||||
                    Ok(x) => x,
 | 
			
		||||
                    Err(_e) => panic!("could not parse test"),
 | 
			
		||||
                };
 | 
			
		||||
                insta::assert_json_snapshot!(actual);
 | 
			
		||||
            }
 | 
			
		||||
        };
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    snapshot_test!(
 | 
			
		||||
        a,
 | 
			
		||||
        r#"const boxSketch = startSketchAt([0, 0])
 | 
			
		||||
    |> line([0, 10], %)
 | 
			
		||||
    |> tangentialArc([-5, 5], %)
 | 
			
		||||
    |> line([5, -15], %)
 | 
			
		||||
    |> extrude(10, %)
 | 
			
		||||
"#
 | 
			
		||||
    );
 | 
			
		||||
    snapshot_test!(b, "const myVar = min(5 , -legLen(5, 4))"); // Space before comma
 | 
			
		||||
 | 
			
		||||
    snapshot_test!(c, "const myVar = min(-legLen(5, 4), 5)");
 | 
			
		||||
    snapshot_test!(d, "const myVar = 5 + 6 |> myFunc(45, %)");
 | 
			
		||||
    snapshot_test!(e, "let x = 1 * (3 - 4)");
 | 
			
		||||
    snapshot_test!(f, r#"const x = 1 // this is an inline comment"#);
 | 
			
		||||
    snapshot_test!(
 | 
			
		||||
        g,
 | 
			
		||||
        r#"fn x = () => {
 | 
			
		||||
        return sg
 | 
			
		||||
        return sg
 | 
			
		||||
      }"#
 | 
			
		||||
    );
 | 
			
		||||
    snapshot_test!(d2, r#"const x = -leg2 + thickness"#);
 | 
			
		||||
    snapshot_test!(
 | 
			
		||||
        h,
 | 
			
		||||
        r#"const obj = { a: 1, b: 2 }
 | 
			
		||||
    const height = 1 - obj.a"#
 | 
			
		||||
    );
 | 
			
		||||
    snapshot_test!(
 | 
			
		||||
        i,
 | 
			
		||||
        r#"const obj = { a: 1, b: 2 }
 | 
			
		||||
     const height = 1 - obj["a"]"#
 | 
			
		||||
    );
 | 
			
		||||
    snapshot_test!(
 | 
			
		||||
        j,
 | 
			
		||||
        r#"const obj = { a: 1, b: 2 }
 | 
			
		||||
    const height = obj["a"] - 1"#
 | 
			
		||||
    );
 | 
			
		||||
    snapshot_test!(
 | 
			
		||||
        k,
 | 
			
		||||
        r#"const obj = { a: 1, b: 2 }
 | 
			
		||||
    const height = [1 - obj["a"], 0]"#
 | 
			
		||||
    );
 | 
			
		||||
    snapshot_test!(
 | 
			
		||||
        l,
 | 
			
		||||
        r#"const obj = { a: 1, b: 2 }
 | 
			
		||||
    const height = [obj["a"] - 1, 0]"#
 | 
			
		||||
    );
 | 
			
		||||
    snapshot_test!(
 | 
			
		||||
        m,
 | 
			
		||||
        r#"const obj = { a: 1, b: 2 }
 | 
			
		||||
    const height = [obj["a"] -1, 0]"#
 | 
			
		||||
    );
 | 
			
		||||
    snapshot_test!(n, "const height = 1 - obj.a");
 | 
			
		||||
    snapshot_test!(o, "const six = 1 + 2 + 3");
 | 
			
		||||
    snapshot_test!(p, "const five = 3 * 1 + 2");
 | 
			
		||||
    snapshot_test!(q, r#"const height = [ obj["a"], 0 ]"#);
 | 
			
		||||
    snapshot_test!(
 | 
			
		||||
        r,
 | 
			
		||||
        r#"const obj = { a: 1, b: 2 }
 | 
			
		||||
    const height = obj["a"]"#
 | 
			
		||||
    );
 | 
			
		||||
    snapshot_test!(s, r#"const prop = yo["one"][two]"#);
 | 
			
		||||
    snapshot_test!(t, r#"const pt1 = b1[x]"#);
 | 
			
		||||
    snapshot_test!(u, "const prop = yo.one.two.three.four");
 | 
			
		||||
    snapshot_test!(v, r#"const pt1 = b1[0]"#);
 | 
			
		||||
    snapshot_test!(w, r#"const pt1 = b1['zero']"#);
 | 
			
		||||
    snapshot_test!(x, r#"const pt1 = b1.zero"#);
 | 
			
		||||
    snapshot_test!(y, "const sg = startSketchAt(pos)");
 | 
			
		||||
    snapshot_test!(z, "const sg = startSketchAt(pos) |> line([0, -scale], %)");
 | 
			
		||||
    snapshot_test!(aa, r#"const sg = -scale"#);
 | 
			
		||||
    snapshot_test!(ab, "lineTo({ to: [0, -1] })");
 | 
			
		||||
    snapshot_test!(ac, "const myArray = [0..10]");
 | 
			
		||||
    snapshot_test!(
 | 
			
		||||
        ad,
 | 
			
		||||
        r#"
 | 
			
		||||
    fn firstPrimeNumber = () => {
 | 
			
		||||
        return 2
 | 
			
		||||
    }
 | 
			
		||||
    firstPrimeNumber()"#
 | 
			
		||||
    );
 | 
			
		||||
    snapshot_test!(
 | 
			
		||||
        ae,
 | 
			
		||||
        r#"fn thing = (param) => {
 | 
			
		||||
        return true
 | 
			
		||||
    }
 | 
			
		||||
    thing(false)"#
 | 
			
		||||
    );
 | 
			
		||||
    snapshot_test!(
 | 
			
		||||
        af,
 | 
			
		||||
        r#"const mySketch = startSketchAt([0,0])
 | 
			
		||||
        |> lineTo({ to: [0, 1], tag: 'myPath' }, %)
 | 
			
		||||
        |> lineTo([1, 1], %)
 | 
			
		||||
        |> lineTo({ to: [1,0], tag: "rightPath" }, %)
 | 
			
		||||
        |> close(%)"#
 | 
			
		||||
    );
 | 
			
		||||
    snapshot_test!(
 | 
			
		||||
        ag,
 | 
			
		||||
        "const mySketch = startSketchAt([0,0]) |> lineTo([1, 1], %) |> close(%)"
 | 
			
		||||
    );
 | 
			
		||||
    snapshot_test!(ah, "const myBox = startSketchAt(p)");
 | 
			
		||||
    snapshot_test!(ai, r#"const myBox = f(1) |> g(2)"#);
 | 
			
		||||
    snapshot_test!(aj, r#"const myBox = startSketchAt(p) |> line([0, l], %)"#);
 | 
			
		||||
    snapshot_test!(ak, "lineTo({ to: [0, 1] })");
 | 
			
		||||
    snapshot_test!(al, "lineTo({ to: [0, 1], from: [3, 3] })");
 | 
			
		||||
    snapshot_test!(am, "lineTo({to:[0, 1]})");
 | 
			
		||||
    snapshot_test!(an, "lineTo({ to: [0, 1], from: [3, 3]})");
 | 
			
		||||
    snapshot_test!(ao, "lineTo({ to: [0, 1],from: [3, 3] })");
 | 
			
		||||
    snapshot_test!(ap, "const mySketch = startSketchAt([0,0])");
 | 
			
		||||
    snapshot_test!(aq, "log(5, \"hello\", aIdentifier)");
 | 
			
		||||
    snapshot_test!(ar, r#"5 + "a""#);
 | 
			
		||||
    snapshot_test!(at, "line([0, l], %)");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -0,0 +1,26 @@
 | 
			
		||||
---
 | 
			
		||||
source: kcl/src/parser/parser_impl.rs
 | 
			
		||||
expression: actual
 | 
			
		||||
---
 | 
			
		||||
{
 | 
			
		||||
  "type": "BinaryExpression",
 | 
			
		||||
  "start": 0,
 | 
			
		||||
  "end": 5,
 | 
			
		||||
  "operator": "+",
 | 
			
		||||
  "left": {
 | 
			
		||||
    "type": "Literal",
 | 
			
		||||
    "type": "Literal",
 | 
			
		||||
    "start": 0,
 | 
			
		||||
    "end": 1,
 | 
			
		||||
    "value": 1,
 | 
			
		||||
    "raw": "1"
 | 
			
		||||
  },
 | 
			
		||||
  "right": {
 | 
			
		||||
    "type": "Literal",
 | 
			
		||||
    "type": "Literal",
 | 
			
		||||
    "start": 4,
 | 
			
		||||
    "end": 5,
 | 
			
		||||
    "value": 2,
 | 
			
		||||
    "raw": "2"
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,26 @@
 | 
			
		||||
---
 | 
			
		||||
source: kcl/src/parser/parser_impl.rs
 | 
			
		||||
expression: actual
 | 
			
		||||
---
 | 
			
		||||
{
 | 
			
		||||
  "type": "BinaryExpression",
 | 
			
		||||
  "start": 0,
 | 
			
		||||
  "end": 3,
 | 
			
		||||
  "operator": "+",
 | 
			
		||||
  "left": {
 | 
			
		||||
    "type": "Literal",
 | 
			
		||||
    "type": "Literal",
 | 
			
		||||
    "start": 0,
 | 
			
		||||
    "end": 1,
 | 
			
		||||
    "value": 1,
 | 
			
		||||
    "raw": "1"
 | 
			
		||||
  },
 | 
			
		||||
  "right": {
 | 
			
		||||
    "type": "Literal",
 | 
			
		||||
    "type": "Literal",
 | 
			
		||||
    "start": 2,
 | 
			
		||||
    "end": 3,
 | 
			
		||||
    "value": 2,
 | 
			
		||||
    "raw": "2"
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,26 @@
 | 
			
		||||
---
 | 
			
		||||
source: kcl/src/parser/parser_impl.rs
 | 
			
		||||
expression: actual
 | 
			
		||||
---
 | 
			
		||||
{
 | 
			
		||||
  "type": "BinaryExpression",
 | 
			
		||||
  "start": 0,
 | 
			
		||||
  "end": 4,
 | 
			
		||||
  "operator": "-",
 | 
			
		||||
  "left": {
 | 
			
		||||
    "type": "Literal",
 | 
			
		||||
    "type": "Literal",
 | 
			
		||||
    "start": 0,
 | 
			
		||||
    "end": 1,
 | 
			
		||||
    "value": 1,
 | 
			
		||||
    "raw": "1"
 | 
			
		||||
  },
 | 
			
		||||
  "right": {
 | 
			
		||||
    "type": "Literal",
 | 
			
		||||
    "type": "Literal",
 | 
			
		||||
    "start": 3,
 | 
			
		||||
    "end": 4,
 | 
			
		||||
    "value": 2,
 | 
			
		||||
    "raw": "2"
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,41 @@
 | 
			
		||||
---
 | 
			
		||||
source: kcl/src/parser/parser_impl.rs
 | 
			
		||||
expression: actual
 | 
			
		||||
---
 | 
			
		||||
{
 | 
			
		||||
  "type": "BinaryExpression",
 | 
			
		||||
  "start": 0,
 | 
			
		||||
  "end": 9,
 | 
			
		||||
  "operator": "+",
 | 
			
		||||
  "left": {
 | 
			
		||||
    "type": "Literal",
 | 
			
		||||
    "type": "Literal",
 | 
			
		||||
    "start": 0,
 | 
			
		||||
    "end": 1,
 | 
			
		||||
    "value": 1,
 | 
			
		||||
    "raw": "1"
 | 
			
		||||
  },
 | 
			
		||||
  "right": {
 | 
			
		||||
    "type": "BinaryExpression",
 | 
			
		||||
    "type": "BinaryExpression",
 | 
			
		||||
    "start": 4,
 | 
			
		||||
    "end": 9,
 | 
			
		||||
    "operator": "*",
 | 
			
		||||
    "left": {
 | 
			
		||||
      "type": "Literal",
 | 
			
		||||
      "type": "Literal",
 | 
			
		||||
      "start": 4,
 | 
			
		||||
      "end": 5,
 | 
			
		||||
      "value": 2,
 | 
			
		||||
      "raw": "2"
 | 
			
		||||
    },
 | 
			
		||||
    "right": {
 | 
			
		||||
      "type": "Literal",
 | 
			
		||||
      "type": "Literal",
 | 
			
		||||
      "start": 8,
 | 
			
		||||
      "end": 9,
 | 
			
		||||
      "value": 3,
 | 
			
		||||
      "raw": "3"
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,41 @@
 | 
			
		||||
---
 | 
			
		||||
source: kcl/src/parser/parser_impl.rs
 | 
			
		||||
expression: actual
 | 
			
		||||
---
 | 
			
		||||
{
 | 
			
		||||
  "type": "BinaryExpression",
 | 
			
		||||
  "start": 0,
 | 
			
		||||
  "end": 11,
 | 
			
		||||
  "operator": "*",
 | 
			
		||||
  "left": {
 | 
			
		||||
    "type": "Literal",
 | 
			
		||||
    "type": "Literal",
 | 
			
		||||
    "start": 0,
 | 
			
		||||
    "end": 1,
 | 
			
		||||
    "value": 1,
 | 
			
		||||
    "raw": "1"
 | 
			
		||||
  },
 | 
			
		||||
  "right": {
 | 
			
		||||
    "type": "BinaryExpression",
 | 
			
		||||
    "type": "BinaryExpression",
 | 
			
		||||
    "start": 6,
 | 
			
		||||
    "end": 11,
 | 
			
		||||
    "operator": "+",
 | 
			
		||||
    "left": {
 | 
			
		||||
      "type": "Literal",
 | 
			
		||||
      "type": "Literal",
 | 
			
		||||
      "start": 6,
 | 
			
		||||
      "end": 7,
 | 
			
		||||
      "value": 2,
 | 
			
		||||
      "raw": "2"
 | 
			
		||||
    },
 | 
			
		||||
    "right": {
 | 
			
		||||
      "type": "Literal",
 | 
			
		||||
      "type": "Literal",
 | 
			
		||||
      "start": 10,
 | 
			
		||||
      "end": 11,
 | 
			
		||||
      "value": 3,
 | 
			
		||||
      "raw": "3"
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,56 @@
 | 
			
		||||
---
 | 
			
		||||
source: kcl/src/parser/parser_impl.rs
 | 
			
		||||
expression: actual
 | 
			
		||||
---
 | 
			
		||||
{
 | 
			
		||||
  "type": "BinaryExpression",
 | 
			
		||||
  "start": 0,
 | 
			
		||||
  "end": 17,
 | 
			
		||||
  "operator": "/",
 | 
			
		||||
  "left": {
 | 
			
		||||
    "type": "BinaryExpression",
 | 
			
		||||
    "type": "BinaryExpression",
 | 
			
		||||
    "start": 0,
 | 
			
		||||
    "end": 11,
 | 
			
		||||
    "operator": "*",
 | 
			
		||||
    "left": {
 | 
			
		||||
      "type": "Literal",
 | 
			
		||||
      "type": "Literal",
 | 
			
		||||
      "start": 0,
 | 
			
		||||
      "end": 1,
 | 
			
		||||
      "value": 1,
 | 
			
		||||
      "raw": "1"
 | 
			
		||||
    },
 | 
			
		||||
    "right": {
 | 
			
		||||
      "type": "BinaryExpression",
 | 
			
		||||
      "type": "BinaryExpression",
 | 
			
		||||
      "start": 6,
 | 
			
		||||
      "end": 11,
 | 
			
		||||
      "operator": "+",
 | 
			
		||||
      "left": {
 | 
			
		||||
        "type": "Literal",
 | 
			
		||||
        "type": "Literal",
 | 
			
		||||
        "start": 6,
 | 
			
		||||
        "end": 7,
 | 
			
		||||
        "value": 2,
 | 
			
		||||
        "raw": "2"
 | 
			
		||||
      },
 | 
			
		||||
      "right": {
 | 
			
		||||
        "type": "Literal",
 | 
			
		||||
        "type": "Literal",
 | 
			
		||||
        "start": 10,
 | 
			
		||||
        "end": 11,
 | 
			
		||||
        "value": 3,
 | 
			
		||||
        "raw": "3"
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  "right": {
 | 
			
		||||
    "type": "Literal",
 | 
			
		||||
    "type": "Literal",
 | 
			
		||||
    "start": 16,
 | 
			
		||||
    "end": 17,
 | 
			
		||||
    "value": 4,
 | 
			
		||||
    "raw": "4"
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,56 @@
 | 
			
		||||
---
 | 
			
		||||
source: kcl/src/parser/parser_impl.rs
 | 
			
		||||
expression: actual
 | 
			
		||||
---
 | 
			
		||||
{
 | 
			
		||||
  "type": "BinaryExpression",
 | 
			
		||||
  "start": 0,
 | 
			
		||||
  "end": 17,
 | 
			
		||||
  "operator": "+",
 | 
			
		||||
  "left": {
 | 
			
		||||
    "type": "Literal",
 | 
			
		||||
    "type": "Literal",
 | 
			
		||||
    "start": 0,
 | 
			
		||||
    "end": 1,
 | 
			
		||||
    "value": 1,
 | 
			
		||||
    "raw": "1"
 | 
			
		||||
  },
 | 
			
		||||
  "right": {
 | 
			
		||||
    "type": "BinaryExpression",
 | 
			
		||||
    "type": "BinaryExpression",
 | 
			
		||||
    "start": 6,
 | 
			
		||||
    "end": 17,
 | 
			
		||||
    "operator": "/",
 | 
			
		||||
    "left": {
 | 
			
		||||
      "type": "BinaryExpression",
 | 
			
		||||
      "type": "BinaryExpression",
 | 
			
		||||
      "start": 6,
 | 
			
		||||
      "end": 11,
 | 
			
		||||
      "operator": "+",
 | 
			
		||||
      "left": {
 | 
			
		||||
        "type": "Literal",
 | 
			
		||||
        "type": "Literal",
 | 
			
		||||
        "start": 6,
 | 
			
		||||
        "end": 7,
 | 
			
		||||
        "value": 2,
 | 
			
		||||
        "raw": "2"
 | 
			
		||||
      },
 | 
			
		||||
      "right": {
 | 
			
		||||
        "type": "Literal",
 | 
			
		||||
        "type": "Literal",
 | 
			
		||||
        "start": 10,
 | 
			
		||||
        "end": 11,
 | 
			
		||||
        "value": 3,
 | 
			
		||||
        "raw": "3"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "right": {
 | 
			
		||||
      "type": "Literal",
 | 
			
		||||
      "type": "Literal",
 | 
			
		||||
      "start": 16,
 | 
			
		||||
      "end": 17,
 | 
			
		||||
      "value": 4,
 | 
			
		||||
      "raw": "4"
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,71 @@
 | 
			
		||||
---
 | 
			
		||||
source: kcl/src/parser/parser_impl.rs
 | 
			
		||||
expression: actual
 | 
			
		||||
---
 | 
			
		||||
{
 | 
			
		||||
  "type": "BinaryExpression",
 | 
			
		||||
  "start": 0,
 | 
			
		||||
  "end": 22,
 | 
			
		||||
  "operator": "*",
 | 
			
		||||
  "left": {
 | 
			
		||||
    "type": "Literal",
 | 
			
		||||
    "type": "Literal",
 | 
			
		||||
    "start": 0,
 | 
			
		||||
    "end": 1,
 | 
			
		||||
    "value": 1,
 | 
			
		||||
    "raw": "1"
 | 
			
		||||
  },
 | 
			
		||||
  "right": {
 | 
			
		||||
    "type": "BinaryExpression",
 | 
			
		||||
    "type": "BinaryExpression",
 | 
			
		||||
    "start": 7,
 | 
			
		||||
    "end": 22,
 | 
			
		||||
    "operator": "+",
 | 
			
		||||
    "left": {
 | 
			
		||||
      "type": "BinaryExpression",
 | 
			
		||||
      "type": "BinaryExpression",
 | 
			
		||||
      "start": 7,
 | 
			
		||||
      "end": 18,
 | 
			
		||||
      "operator": "/",
 | 
			
		||||
      "left": {
 | 
			
		||||
        "type": "BinaryExpression",
 | 
			
		||||
        "type": "BinaryExpression",
 | 
			
		||||
        "start": 7,
 | 
			
		||||
        "end": 12,
 | 
			
		||||
        "operator": "+",
 | 
			
		||||
        "left": {
 | 
			
		||||
          "type": "Literal",
 | 
			
		||||
          "type": "Literal",
 | 
			
		||||
          "start": 7,
 | 
			
		||||
          "end": 8,
 | 
			
		||||
          "value": 2,
 | 
			
		||||
          "raw": "2"
 | 
			
		||||
        },
 | 
			
		||||
        "right": {
 | 
			
		||||
          "type": "Literal",
 | 
			
		||||
          "type": "Literal",
 | 
			
		||||
          "start": 11,
 | 
			
		||||
          "end": 12,
 | 
			
		||||
          "value": 3,
 | 
			
		||||
          "raw": "3"
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      "right": {
 | 
			
		||||
        "type": "Literal",
 | 
			
		||||
        "type": "Literal",
 | 
			
		||||
        "start": 17,
 | 
			
		||||
        "end": 18,
 | 
			
		||||
        "value": 4,
 | 
			
		||||
        "raw": "4"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "right": {
 | 
			
		||||
      "type": "Literal",
 | 
			
		||||
      "type": "Literal",
 | 
			
		||||
      "start": 21,
 | 
			
		||||
      "end": 22,
 | 
			
		||||
      "value": 5,
 | 
			
		||||
      "raw": "5"
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,41 @@
 | 
			
		||||
---
 | 
			
		||||
source: kcl/src/parser/parser_impl.rs
 | 
			
		||||
expression: actual
 | 
			
		||||
---
 | 
			
		||||
{
 | 
			
		||||
  "type": "BinaryExpression",
 | 
			
		||||
  "start": 0,
 | 
			
		||||
  "end": 13,
 | 
			
		||||
  "operator": "*",
 | 
			
		||||
  "left": {
 | 
			
		||||
    "type": "Literal",
 | 
			
		||||
    "type": "Literal",
 | 
			
		||||
    "start": 0,
 | 
			
		||||
    "end": 1,
 | 
			
		||||
    "value": 1,
 | 
			
		||||
    "raw": "1"
 | 
			
		||||
  },
 | 
			
		||||
  "right": {
 | 
			
		||||
    "type": "BinaryExpression",
 | 
			
		||||
    "type": "BinaryExpression",
 | 
			
		||||
    "start": 8,
 | 
			
		||||
    "end": 13,
 | 
			
		||||
    "operator": "+",
 | 
			
		||||
    "left": {
 | 
			
		||||
      "type": "Literal",
 | 
			
		||||
      "type": "Literal",
 | 
			
		||||
      "start": 8,
 | 
			
		||||
      "end": 9,
 | 
			
		||||
      "value": 2,
 | 
			
		||||
      "raw": "2"
 | 
			
		||||
    },
 | 
			
		||||
    "right": {
 | 
			
		||||
      "type": "Literal",
 | 
			
		||||
      "type": "Literal",
 | 
			
		||||
      "start": 12,
 | 
			
		||||
      "end": 13,
 | 
			
		||||
      "value": 3,
 | 
			
		||||
      "raw": "3"
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,81 @@
 | 
			
		||||
---
 | 
			
		||||
source: kcl/src/parser/parser_impl.rs
 | 
			
		||||
expression: actual
 | 
			
		||||
---
 | 
			
		||||
{
 | 
			
		||||
  "type": "BinaryExpression",
 | 
			
		||||
  "start": 0,
 | 
			
		||||
  "end": 44,
 | 
			
		||||
  "operator": "/",
 | 
			
		||||
  "left": {
 | 
			
		||||
    "type": "BinaryExpression",
 | 
			
		||||
    "type": "BinaryExpression",
 | 
			
		||||
    "start": 0,
 | 
			
		||||
    "end": 22,
 | 
			
		||||
    "operator": "*",
 | 
			
		||||
    "left": {
 | 
			
		||||
      "type": "BinaryExpression",
 | 
			
		||||
      "type": "BinaryExpression",
 | 
			
		||||
      "start": 0,
 | 
			
		||||
      "end": 18,
 | 
			
		||||
      "operator": "*",
 | 
			
		||||
      "left": {
 | 
			
		||||
        "type": "BinaryExpression",
 | 
			
		||||
        "type": "BinaryExpression",
 | 
			
		||||
        "start": 0,
 | 
			
		||||
        "end": 12,
 | 
			
		||||
        "operator": "*",
 | 
			
		||||
        "left": {
 | 
			
		||||
          "type": "Identifier",
 | 
			
		||||
          "type": "Identifier",
 | 
			
		||||
          "start": 0,
 | 
			
		||||
          "end": 8,
 | 
			
		||||
          "name": "distance"
 | 
			
		||||
        },
 | 
			
		||||
        "right": {
 | 
			
		||||
          "type": "Identifier",
 | 
			
		||||
          "type": "Identifier",
 | 
			
		||||
          "start": 11,
 | 
			
		||||
          "end": 12,
 | 
			
		||||
          "name": "p"
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      "right": {
 | 
			
		||||
        "type": "Identifier",
 | 
			
		||||
        "type": "Identifier",
 | 
			
		||||
        "start": 15,
 | 
			
		||||
        "end": 18,
 | 
			
		||||
        "name": "FOS"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "right": {
 | 
			
		||||
      "type": "Literal",
 | 
			
		||||
      "type": "Literal",
 | 
			
		||||
      "start": 21,
 | 
			
		||||
      "end": 22,
 | 
			
		||||
      "value": 6,
 | 
			
		||||
      "raw": "6"
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  "right": {
 | 
			
		||||
    "type": "BinaryExpression",
 | 
			
		||||
    "type": "BinaryExpression",
 | 
			
		||||
    "start": 26,
 | 
			
		||||
    "end": 44,
 | 
			
		||||
    "operator": "*",
 | 
			
		||||
    "left": {
 | 
			
		||||
      "type": "Identifier",
 | 
			
		||||
      "type": "Identifier",
 | 
			
		||||
      "start": 26,
 | 
			
		||||
      "end": 36,
 | 
			
		||||
      "name": "sigmaAllow"
 | 
			
		||||
    },
 | 
			
		||||
    "right": {
 | 
			
		||||
      "type": "Identifier",
 | 
			
		||||
      "type": "Identifier",
 | 
			
		||||
      "start": 39,
 | 
			
		||||
      "end": 44,
 | 
			
		||||
      "name": "width"
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,26 @@
 | 
			
		||||
---
 | 
			
		||||
source: kcl/src/parser/parser_impl.rs
 | 
			
		||||
expression: actual
 | 
			
		||||
---
 | 
			
		||||
{
 | 
			
		||||
  "type": "BinaryExpression",
 | 
			
		||||
  "start": 0,
 | 
			
		||||
  "end": 8,
 | 
			
		||||
  "operator": "+",
 | 
			
		||||
  "left": {
 | 
			
		||||
    "type": "Literal",
 | 
			
		||||
    "type": "Literal",
 | 
			
		||||
    "start": 0,
 | 
			
		||||
    "end": 1,
 | 
			
		||||
    "value": 2,
 | 
			
		||||
    "raw": "2"
 | 
			
		||||
  },
 | 
			
		||||
  "right": {
 | 
			
		||||
    "type": "Literal",
 | 
			
		||||
    "type": "Literal",
 | 
			
		||||
    "start": 7,
 | 
			
		||||
    "end": 8,
 | 
			
		||||
    "value": 3,
 | 
			
		||||
    "raw": "3"
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@ -0,0 +1,48 @@
 | 
			
		||||
---
 | 
			
		||||
source: kcl/src/parser/parser_impl.rs
 | 
			
		||||
expression: actual
 | 
			
		||||
---
 | 
			
		||||
{
 | 
			
		||||
  "start": 0,
 | 
			
		||||
  "end": 17,
 | 
			
		||||
  "body": [
 | 
			
		||||
    {
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "start": 0,
 | 
			
		||||
      "end": 17,
 | 
			
		||||
      "declarations": [
 | 
			
		||||
        {
 | 
			
		||||
          "type": "VariableDeclarator",
 | 
			
		||||
          "start": 6,
 | 
			
		||||
          "end": 17,
 | 
			
		||||
          "id": {
 | 
			
		||||
            "type": "Identifier",
 | 
			
		||||
            "start": 6,
 | 
			
		||||
            "end": 8,
 | 
			
		||||
            "name": "sg"
 | 
			
		||||
          },
 | 
			
		||||
          "init": {
 | 
			
		||||
            "type": "UnaryExpression",
 | 
			
		||||
            "type": "UnaryExpression",
 | 
			
		||||
            "start": 11,
 | 
			
		||||
            "end": 17,
 | 
			
		||||
            "operator": "-",
 | 
			
		||||
            "argument": {
 | 
			
		||||
              "type": "Identifier",
 | 
			
		||||
              "type": "Identifier",
 | 
			
		||||
              "start": 12,
 | 
			
		||||
              "end": 17,
 | 
			
		||||
              "name": "scale"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "kind": "const"
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "nonCodeMeta": {
 | 
			
		||||
    "nonCodeNodes": {},
 | 
			
		||||
    "start": []
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@ -0,0 +1,130 @@
 | 
			
		||||
---
 | 
			
		||||
source: kcl/src/parser/parser_impl.rs
 | 
			
		||||
expression: actual
 | 
			
		||||
---
 | 
			
		||||
{
 | 
			
		||||
  "start": 0,
 | 
			
		||||
  "end": 23,
 | 
			
		||||
  "body": [
 | 
			
		||||
    {
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "start": 0,
 | 
			
		||||
      "end": 23,
 | 
			
		||||
      "declarations": [
 | 
			
		||||
        {
 | 
			
		||||
          "type": "VariableDeclarator",
 | 
			
		||||
          "start": 6,
 | 
			
		||||
          "end": 23,
 | 
			
		||||
          "id": {
 | 
			
		||||
            "type": "Identifier",
 | 
			
		||||
            "start": 6,
 | 
			
		||||
            "end": 13,
 | 
			
		||||
            "name": "myArray"
 | 
			
		||||
          },
 | 
			
		||||
          "init": {
 | 
			
		||||
            "type": "ArrayExpression",
 | 
			
		||||
            "type": "ArrayExpression",
 | 
			
		||||
            "start": 16,
 | 
			
		||||
            "end": 23,
 | 
			
		||||
            "elements": [
 | 
			
		||||
              {
 | 
			
		||||
                "type": "Literal",
 | 
			
		||||
                "type": "Literal",
 | 
			
		||||
                "start": 17,
 | 
			
		||||
                "end": 18,
 | 
			
		||||
                "value": 0,
 | 
			
		||||
                "raw": "0"
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "Literal",
 | 
			
		||||
                "type": "Literal",
 | 
			
		||||
                "start": 17,
 | 
			
		||||
                "end": 18,
 | 
			
		||||
                "value": 1,
 | 
			
		||||
                "raw": "1"
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "Literal",
 | 
			
		||||
                "type": "Literal",
 | 
			
		||||
                "start": 17,
 | 
			
		||||
                "end": 18,
 | 
			
		||||
                "value": 2,
 | 
			
		||||
                "raw": "2"
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "Literal",
 | 
			
		||||
                "type": "Literal",
 | 
			
		||||
                "start": 17,
 | 
			
		||||
                "end": 18,
 | 
			
		||||
                "value": 3,
 | 
			
		||||
                "raw": "3"
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "Literal",
 | 
			
		||||
                "type": "Literal",
 | 
			
		||||
                "start": 17,
 | 
			
		||||
                "end": 18,
 | 
			
		||||
                "value": 4,
 | 
			
		||||
                "raw": "4"
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "Literal",
 | 
			
		||||
                "type": "Literal",
 | 
			
		||||
                "start": 17,
 | 
			
		||||
                "end": 18,
 | 
			
		||||
                "value": 5,
 | 
			
		||||
                "raw": "5"
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "Literal",
 | 
			
		||||
                "type": "Literal",
 | 
			
		||||
                "start": 17,
 | 
			
		||||
                "end": 18,
 | 
			
		||||
                "value": 6,
 | 
			
		||||
                "raw": "6"
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "Literal",
 | 
			
		||||
                "type": "Literal",
 | 
			
		||||
                "start": 17,
 | 
			
		||||
                "end": 18,
 | 
			
		||||
                "value": 7,
 | 
			
		||||
                "raw": "7"
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "Literal",
 | 
			
		||||
                "type": "Literal",
 | 
			
		||||
                "start": 17,
 | 
			
		||||
                "end": 18,
 | 
			
		||||
                "value": 8,
 | 
			
		||||
                "raw": "8"
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "Literal",
 | 
			
		||||
                "type": "Literal",
 | 
			
		||||
                "start": 17,
 | 
			
		||||
                "end": 18,
 | 
			
		||||
                "value": 9,
 | 
			
		||||
                "raw": "9"
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "Literal",
 | 
			
		||||
                "type": "Literal",
 | 
			
		||||
                "start": 17,
 | 
			
		||||
                "end": 18,
 | 
			
		||||
                "value": 10,
 | 
			
		||||
                "raw": "10"
 | 
			
		||||
              }
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "kind": "const"
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "nonCodeMeta": {
 | 
			
		||||
    "nonCodeNodes": {},
 | 
			
		||||
    "start": []
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,88 @@
 | 
			
		||||
---
 | 
			
		||||
source: kcl/src/parser/parser_impl.rs
 | 
			
		||||
expression: actual
 | 
			
		||||
---
 | 
			
		||||
{
 | 
			
		||||
  "start": 0,
 | 
			
		||||
  "end": 80,
 | 
			
		||||
  "body": [
 | 
			
		||||
    {
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "start": 5,
 | 
			
		||||
      "end": 57,
 | 
			
		||||
      "declarations": [
 | 
			
		||||
        {
 | 
			
		||||
          "type": "VariableDeclarator",
 | 
			
		||||
          "start": 8,
 | 
			
		||||
          "end": 57,
 | 
			
		||||
          "id": {
 | 
			
		||||
            "type": "Identifier",
 | 
			
		||||
            "start": 8,
 | 
			
		||||
            "end": 24,
 | 
			
		||||
            "name": "firstPrimeNumber"
 | 
			
		||||
          },
 | 
			
		||||
          "init": {
 | 
			
		||||
            "type": "FunctionExpression",
 | 
			
		||||
            "type": "FunctionExpression",
 | 
			
		||||
            "start": 27,
 | 
			
		||||
            "end": 57,
 | 
			
		||||
            "params": [],
 | 
			
		||||
            "body": {
 | 
			
		||||
              "start": 33,
 | 
			
		||||
              "end": 57,
 | 
			
		||||
              "body": [
 | 
			
		||||
                {
 | 
			
		||||
                  "type": "ReturnStatement",
 | 
			
		||||
                  "type": "ReturnStatement",
 | 
			
		||||
                  "start": 43,
 | 
			
		||||
                  "end": 51,
 | 
			
		||||
                  "argument": {
 | 
			
		||||
                    "type": "Literal",
 | 
			
		||||
                    "type": "Literal",
 | 
			
		||||
                    "start": 50,
 | 
			
		||||
                    "end": 51,
 | 
			
		||||
                    "value": 2,
 | 
			
		||||
                    "raw": "2"
 | 
			
		||||
                  }
 | 
			
		||||
                }
 | 
			
		||||
              ],
 | 
			
		||||
              "nonCodeMeta": {
 | 
			
		||||
                "nonCodeNodes": {},
 | 
			
		||||
                "start": []
 | 
			
		||||
              }
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "kind": "fn"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "type": "ExpressionStatement",
 | 
			
		||||
      "type": "ExpressionStatement",
 | 
			
		||||
      "start": 62,
 | 
			
		||||
      "end": 80,
 | 
			
		||||
      "expression": {
 | 
			
		||||
        "type": "CallExpression",
 | 
			
		||||
        "type": "CallExpression",
 | 
			
		||||
        "start": 62,
 | 
			
		||||
        "end": 80,
 | 
			
		||||
        "callee": {
 | 
			
		||||
          "type": "Identifier",
 | 
			
		||||
          "start": 62,
 | 
			
		||||
          "end": 78,
 | 
			
		||||
          "name": "firstPrimeNumber"
 | 
			
		||||
        },
 | 
			
		||||
        "arguments": [],
 | 
			
		||||
        "optional": false,
 | 
			
		||||
        "function": {
 | 
			
		||||
          "type": "InMemory"
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "nonCodeMeta": {
 | 
			
		||||
    "nonCodeNodes": {},
 | 
			
		||||
    "start": []
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,102 @@
 | 
			
		||||
---
 | 
			
		||||
source: kcl/src/parser/parser_impl.rs
 | 
			
		||||
expression: actual
 | 
			
		||||
---
 | 
			
		||||
{
 | 
			
		||||
  "start": 0,
 | 
			
		||||
  "end": 66,
 | 
			
		||||
  "body": [
 | 
			
		||||
    {
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "start": 0,
 | 
			
		||||
      "end": 49,
 | 
			
		||||
      "declarations": [
 | 
			
		||||
        {
 | 
			
		||||
          "type": "VariableDeclarator",
 | 
			
		||||
          "start": 3,
 | 
			
		||||
          "end": 49,
 | 
			
		||||
          "id": {
 | 
			
		||||
            "type": "Identifier",
 | 
			
		||||
            "start": 3,
 | 
			
		||||
            "end": 8,
 | 
			
		||||
            "name": "thing"
 | 
			
		||||
          },
 | 
			
		||||
          "init": {
 | 
			
		||||
            "type": "FunctionExpression",
 | 
			
		||||
            "type": "FunctionExpression",
 | 
			
		||||
            "start": 11,
 | 
			
		||||
            "end": 49,
 | 
			
		||||
            "params": [
 | 
			
		||||
              {
 | 
			
		||||
                "type": "Identifier",
 | 
			
		||||
                "start": 12,
 | 
			
		||||
                "end": 17,
 | 
			
		||||
                "name": "param"
 | 
			
		||||
              }
 | 
			
		||||
            ],
 | 
			
		||||
            "body": {
 | 
			
		||||
              "start": 22,
 | 
			
		||||
              "end": 49,
 | 
			
		||||
              "body": [
 | 
			
		||||
                {
 | 
			
		||||
                  "type": "ReturnStatement",
 | 
			
		||||
                  "type": "ReturnStatement",
 | 
			
		||||
                  "start": 32,
 | 
			
		||||
                  "end": 43,
 | 
			
		||||
                  "argument": {
 | 
			
		||||
                    "type": "Identifier",
 | 
			
		||||
                    "type": "Identifier",
 | 
			
		||||
                    "start": 39,
 | 
			
		||||
                    "end": 43,
 | 
			
		||||
                    "name": "true"
 | 
			
		||||
                  }
 | 
			
		||||
                }
 | 
			
		||||
              ],
 | 
			
		||||
              "nonCodeMeta": {
 | 
			
		||||
                "nonCodeNodes": {},
 | 
			
		||||
                "start": []
 | 
			
		||||
              }
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "kind": "fn"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "type": "ExpressionStatement",
 | 
			
		||||
      "type": "ExpressionStatement",
 | 
			
		||||
      "start": 54,
 | 
			
		||||
      "end": 66,
 | 
			
		||||
      "expression": {
 | 
			
		||||
        "type": "CallExpression",
 | 
			
		||||
        "type": "CallExpression",
 | 
			
		||||
        "start": 54,
 | 
			
		||||
        "end": 66,
 | 
			
		||||
        "callee": {
 | 
			
		||||
          "type": "Identifier",
 | 
			
		||||
          "start": 54,
 | 
			
		||||
          "end": 59,
 | 
			
		||||
          "name": "thing"
 | 
			
		||||
        },
 | 
			
		||||
        "arguments": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Identifier",
 | 
			
		||||
            "type": "Identifier",
 | 
			
		||||
            "start": 60,
 | 
			
		||||
            "end": 65,
 | 
			
		||||
            "name": "false"
 | 
			
		||||
          }
 | 
			
		||||
        ],
 | 
			
		||||
        "optional": false,
 | 
			
		||||
        "function": {
 | 
			
		||||
          "type": "InMemory"
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "nonCodeMeta": {
 | 
			
		||||
    "nonCodeNodes": {},
 | 
			
		||||
    "start": []
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@ -0,0 +1,552 @@
 | 
			
		||||
---
 | 
			
		||||
source: kcl/src/parser/parser_impl.rs
 | 
			
		||||
expression: actual
 | 
			
		||||
---
 | 
			
		||||
{
 | 
			
		||||
  "start": 0,
 | 
			
		||||
  "end": 30,
 | 
			
		||||
  "body": [
 | 
			
		||||
    {
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "start": 0,
 | 
			
		||||
      "end": 30,
 | 
			
		||||
      "declarations": [
 | 
			
		||||
        {
 | 
			
		||||
          "type": "VariableDeclarator",
 | 
			
		||||
          "start": 6,
 | 
			
		||||
          "end": 30,
 | 
			
		||||
          "id": {
 | 
			
		||||
            "type": "Identifier",
 | 
			
		||||
            "start": 6,
 | 
			
		||||
            "end": 11,
 | 
			
		||||
            "name": "myBox"
 | 
			
		||||
          },
 | 
			
		||||
          "init": {
 | 
			
		||||
            "type": "CallExpression",
 | 
			
		||||
            "type": "CallExpression",
 | 
			
		||||
            "start": 14,
 | 
			
		||||
            "end": 30,
 | 
			
		||||
            "callee": {
 | 
			
		||||
              "type": "Identifier",
 | 
			
		||||
              "start": 14,
 | 
			
		||||
              "end": 27,
 | 
			
		||||
              "name": "startSketchAt"
 | 
			
		||||
            },
 | 
			
		||||
            "arguments": [
 | 
			
		||||
              {
 | 
			
		||||
                "type": "Identifier",
 | 
			
		||||
                "type": "Identifier",
 | 
			
		||||
                "start": 28,
 | 
			
		||||
                "end": 29,
 | 
			
		||||
                "name": "p"
 | 
			
		||||
              }
 | 
			
		||||
            ],
 | 
			
		||||
            "optional": false,
 | 
			
		||||
            "function": {
 | 
			
		||||
              "type": "StdLib",
 | 
			
		||||
              "func": {
 | 
			
		||||
                "name": "startSketchAt",
 | 
			
		||||
                "summary": "Start a sketch at a given point on the 'XY' plane.",
 | 
			
		||||
                "description": "",
 | 
			
		||||
                "tags": [],
 | 
			
		||||
                "args": [
 | 
			
		||||
                  {
 | 
			
		||||
                    "name": "data",
 | 
			
		||||
                    "type": "LineData",
 | 
			
		||||
                    "schema": {
 | 
			
		||||
                      "description": "Data to draw a line.",
 | 
			
		||||
                      "anyOf": [
 | 
			
		||||
                        {
 | 
			
		||||
                          "description": "A point with a tag.",
 | 
			
		||||
                          "type": "object",
 | 
			
		||||
                          "required": [
 | 
			
		||||
                            "tag",
 | 
			
		||||
                            "to"
 | 
			
		||||
                          ],
 | 
			
		||||
                          "properties": {
 | 
			
		||||
                            "tag": {
 | 
			
		||||
                              "description": "The tag.",
 | 
			
		||||
                              "type": "string"
 | 
			
		||||
                            },
 | 
			
		||||
                            "to": {
 | 
			
		||||
                              "description": "The to point.",
 | 
			
		||||
                              "type": "array",
 | 
			
		||||
                              "items": {
 | 
			
		||||
                                "type": "number",
 | 
			
		||||
                                "format": "double"
 | 
			
		||||
                              },
 | 
			
		||||
                              "maxItems": 2,
 | 
			
		||||
                              "minItems": 2
 | 
			
		||||
                            }
 | 
			
		||||
                          }
 | 
			
		||||
                        },
 | 
			
		||||
                        {
 | 
			
		||||
                          "description": "A point.",
 | 
			
		||||
                          "type": "array",
 | 
			
		||||
                          "items": {
 | 
			
		||||
                            "type": "number",
 | 
			
		||||
                            "format": "double"
 | 
			
		||||
                          },
 | 
			
		||||
                          "maxItems": 2,
 | 
			
		||||
                          "minItems": 2
 | 
			
		||||
                        }
 | 
			
		||||
                      ]
 | 
			
		||||
                    },
 | 
			
		||||
                    "required": true
 | 
			
		||||
                  }
 | 
			
		||||
                ],
 | 
			
		||||
                "returnValue": {
 | 
			
		||||
                  "name": "",
 | 
			
		||||
                  "type": "SketchGroup",
 | 
			
		||||
                  "schema": {
 | 
			
		||||
                    "description": "A sketch group is a collection of paths.",
 | 
			
		||||
                    "type": "object",
 | 
			
		||||
                    "required": [
 | 
			
		||||
                      "__meta",
 | 
			
		||||
                      "id",
 | 
			
		||||
                      "position",
 | 
			
		||||
                      "rotation",
 | 
			
		||||
                      "start",
 | 
			
		||||
                      "value"
 | 
			
		||||
                    ],
 | 
			
		||||
                    "properties": {
 | 
			
		||||
                      "__meta": {
 | 
			
		||||
                        "description": "Metadata.",
 | 
			
		||||
                        "type": "array",
 | 
			
		||||
                        "items": {
 | 
			
		||||
                          "description": "Metadata.",
 | 
			
		||||
                          "type": "object",
 | 
			
		||||
                          "required": [
 | 
			
		||||
                            "sourceRange"
 | 
			
		||||
                          ],
 | 
			
		||||
                          "properties": {
 | 
			
		||||
                            "sourceRange": {
 | 
			
		||||
                              "description": "The source range.",
 | 
			
		||||
                              "type": "array",
 | 
			
		||||
                              "items": {
 | 
			
		||||
                                "type": "integer",
 | 
			
		||||
                                "format": "uint",
 | 
			
		||||
                                "minimum": 0.0
 | 
			
		||||
                              },
 | 
			
		||||
                              "maxItems": 2,
 | 
			
		||||
                              "minItems": 2
 | 
			
		||||
                            }
 | 
			
		||||
                          }
 | 
			
		||||
                        }
 | 
			
		||||
                      },
 | 
			
		||||
                      "id": {
 | 
			
		||||
                        "description": "The id of the sketch group.",
 | 
			
		||||
                        "type": "string",
 | 
			
		||||
                        "format": "uuid"
 | 
			
		||||
                      },
 | 
			
		||||
                      "planeId": {
 | 
			
		||||
                        "description": "The plane id of the sketch group.",
 | 
			
		||||
                        "type": "string",
 | 
			
		||||
                        "format": "uuid",
 | 
			
		||||
                        "nullable": true
 | 
			
		||||
                      },
 | 
			
		||||
                      "position": {
 | 
			
		||||
                        "description": "The position of the sketch group.",
 | 
			
		||||
                        "type": "array",
 | 
			
		||||
                        "items": {
 | 
			
		||||
                          "type": "number",
 | 
			
		||||
                          "format": "double"
 | 
			
		||||
                        },
 | 
			
		||||
                        "maxItems": 3,
 | 
			
		||||
                        "minItems": 3
 | 
			
		||||
                      },
 | 
			
		||||
                      "rotation": {
 | 
			
		||||
                        "description": "The rotation of the sketch group.",
 | 
			
		||||
                        "type": "array",
 | 
			
		||||
                        "items": {
 | 
			
		||||
                          "type": "number",
 | 
			
		||||
                          "format": "double"
 | 
			
		||||
                        },
 | 
			
		||||
                        "maxItems": 4,
 | 
			
		||||
                        "minItems": 4
 | 
			
		||||
                      },
 | 
			
		||||
                      "start": {
 | 
			
		||||
                        "description": "The starting path.",
 | 
			
		||||
                        "type": "object",
 | 
			
		||||
                        "required": [
 | 
			
		||||
                          "__geoMeta",
 | 
			
		||||
                          "from",
 | 
			
		||||
                          "name",
 | 
			
		||||
                          "to"
 | 
			
		||||
                        ],
 | 
			
		||||
                        "properties": {
 | 
			
		||||
                          "__geoMeta": {
 | 
			
		||||
                            "description": "Metadata.",
 | 
			
		||||
                            "type": "object",
 | 
			
		||||
                            "required": [
 | 
			
		||||
                              "id",
 | 
			
		||||
                              "sourceRange"
 | 
			
		||||
                            ],
 | 
			
		||||
                            "properties": {
 | 
			
		||||
                              "id": {
 | 
			
		||||
                                "description": "The id of the geometry.",
 | 
			
		||||
                                "type": "string",
 | 
			
		||||
                                "format": "uuid"
 | 
			
		||||
                              },
 | 
			
		||||
                              "sourceRange": {
 | 
			
		||||
                                "description": "The source range.",
 | 
			
		||||
                                "type": "array",
 | 
			
		||||
                                "items": {
 | 
			
		||||
                                  "type": "integer",
 | 
			
		||||
                                  "format": "uint",
 | 
			
		||||
                                  "minimum": 0.0
 | 
			
		||||
                                },
 | 
			
		||||
                                "maxItems": 2,
 | 
			
		||||
                                "minItems": 2
 | 
			
		||||
                              }
 | 
			
		||||
                            }
 | 
			
		||||
                          },
 | 
			
		||||
                          "from": {
 | 
			
		||||
                            "description": "The from point.",
 | 
			
		||||
                            "type": "array",
 | 
			
		||||
                            "items": {
 | 
			
		||||
                              "type": "number",
 | 
			
		||||
                              "format": "double"
 | 
			
		||||
                            },
 | 
			
		||||
                            "maxItems": 2,
 | 
			
		||||
                            "minItems": 2
 | 
			
		||||
                          },
 | 
			
		||||
                          "name": {
 | 
			
		||||
                            "description": "The name of the path.",
 | 
			
		||||
                            "type": "string"
 | 
			
		||||
                          },
 | 
			
		||||
                          "to": {
 | 
			
		||||
                            "description": "The to point.",
 | 
			
		||||
                            "type": "array",
 | 
			
		||||
                            "items": {
 | 
			
		||||
                              "type": "number",
 | 
			
		||||
                              "format": "double"
 | 
			
		||||
                            },
 | 
			
		||||
                            "maxItems": 2,
 | 
			
		||||
                            "minItems": 2
 | 
			
		||||
                          }
 | 
			
		||||
                        }
 | 
			
		||||
                      },
 | 
			
		||||
                      "value": {
 | 
			
		||||
                        "description": "The paths in the sketch group.",
 | 
			
		||||
                        "type": "array",
 | 
			
		||||
                        "items": {
 | 
			
		||||
                          "description": "A path.",
 | 
			
		||||
                          "oneOf": [
 | 
			
		||||
                            {
 | 
			
		||||
                              "description": "A path that goes to a point.",
 | 
			
		||||
                              "type": "object",
 | 
			
		||||
                              "required": [
 | 
			
		||||
                                "__geoMeta",
 | 
			
		||||
                                "from",
 | 
			
		||||
                                "name",
 | 
			
		||||
                                "to",
 | 
			
		||||
                                "type"
 | 
			
		||||
                              ],
 | 
			
		||||
                              "properties": {
 | 
			
		||||
                                "__geoMeta": {
 | 
			
		||||
                                  "description": "Metadata.",
 | 
			
		||||
                                  "type": "object",
 | 
			
		||||
                                  "required": [
 | 
			
		||||
                                    "id",
 | 
			
		||||
                                    "sourceRange"
 | 
			
		||||
                                  ],
 | 
			
		||||
                                  "properties": {
 | 
			
		||||
                                    "id": {
 | 
			
		||||
                                      "description": "The id of the geometry.",
 | 
			
		||||
                                      "type": "string",
 | 
			
		||||
                                      "format": "uuid"
 | 
			
		||||
                                    },
 | 
			
		||||
                                    "sourceRange": {
 | 
			
		||||
                                      "description": "The source range.",
 | 
			
		||||
                                      "type": "array",
 | 
			
		||||
                                      "items": {
 | 
			
		||||
                                        "type": "integer",
 | 
			
		||||
                                        "format": "uint",
 | 
			
		||||
                                        "minimum": 0.0
 | 
			
		||||
                                      },
 | 
			
		||||
                                      "maxItems": 2,
 | 
			
		||||
                                      "minItems": 2
 | 
			
		||||
                                    }
 | 
			
		||||
                                  }
 | 
			
		||||
                                },
 | 
			
		||||
                                "from": {
 | 
			
		||||
                                  "description": "The from point.",
 | 
			
		||||
                                  "type": "array",
 | 
			
		||||
                                  "items": {
 | 
			
		||||
                                    "type": "number",
 | 
			
		||||
                                    "format": "double"
 | 
			
		||||
                                  },
 | 
			
		||||
                                  "maxItems": 2,
 | 
			
		||||
                                  "minItems": 2
 | 
			
		||||
                                },
 | 
			
		||||
                                "name": {
 | 
			
		||||
                                  "description": "The name of the path.",
 | 
			
		||||
                                  "type": "string"
 | 
			
		||||
                                },
 | 
			
		||||
                                "to": {
 | 
			
		||||
                                  "description": "The to point.",
 | 
			
		||||
                                  "type": "array",
 | 
			
		||||
                                  "items": {
 | 
			
		||||
                                    "type": "number",
 | 
			
		||||
                                    "format": "double"
 | 
			
		||||
                                  },
 | 
			
		||||
                                  "maxItems": 2,
 | 
			
		||||
                                  "minItems": 2
 | 
			
		||||
                                },
 | 
			
		||||
                                "type": {
 | 
			
		||||
                                  "type": "string",
 | 
			
		||||
                                  "enum": [
 | 
			
		||||
                                    "toPoint"
 | 
			
		||||
                                  ]
 | 
			
		||||
                                }
 | 
			
		||||
                              }
 | 
			
		||||
                            },
 | 
			
		||||
                            {
 | 
			
		||||
                              "description": "A path that is horizontal.",
 | 
			
		||||
                              "type": "object",
 | 
			
		||||
                              "required": [
 | 
			
		||||
                                "__geoMeta",
 | 
			
		||||
                                "from",
 | 
			
		||||
                                "name",
 | 
			
		||||
                                "to",
 | 
			
		||||
                                "type",
 | 
			
		||||
                                "x"
 | 
			
		||||
                              ],
 | 
			
		||||
                              "properties": {
 | 
			
		||||
                                "__geoMeta": {
 | 
			
		||||
                                  "description": "Metadata.",
 | 
			
		||||
                                  "type": "object",
 | 
			
		||||
                                  "required": [
 | 
			
		||||
                                    "id",
 | 
			
		||||
                                    "sourceRange"
 | 
			
		||||
                                  ],
 | 
			
		||||
                                  "properties": {
 | 
			
		||||
                                    "id": {
 | 
			
		||||
                                      "description": "The id of the geometry.",
 | 
			
		||||
                                      "type": "string",
 | 
			
		||||
                                      "format": "uuid"
 | 
			
		||||
                                    },
 | 
			
		||||
                                    "sourceRange": {
 | 
			
		||||
                                      "description": "The source range.",
 | 
			
		||||
                                      "type": "array",
 | 
			
		||||
                                      "items": {
 | 
			
		||||
                                        "type": "integer",
 | 
			
		||||
                                        "format": "uint",
 | 
			
		||||
                                        "minimum": 0.0
 | 
			
		||||
                                      },
 | 
			
		||||
                                      "maxItems": 2,
 | 
			
		||||
                                      "minItems": 2
 | 
			
		||||
                                    }
 | 
			
		||||
                                  }
 | 
			
		||||
                                },
 | 
			
		||||
                                "from": {
 | 
			
		||||
                                  "description": "The from point.",
 | 
			
		||||
                                  "type": "array",
 | 
			
		||||
                                  "items": {
 | 
			
		||||
                                    "type": "number",
 | 
			
		||||
                                    "format": "double"
 | 
			
		||||
                                  },
 | 
			
		||||
                                  "maxItems": 2,
 | 
			
		||||
                                  "minItems": 2
 | 
			
		||||
                                },
 | 
			
		||||
                                "name": {
 | 
			
		||||
                                  "description": "The name of the path.",
 | 
			
		||||
                                  "type": "string"
 | 
			
		||||
                                },
 | 
			
		||||
                                "to": {
 | 
			
		||||
                                  "description": "The to point.",
 | 
			
		||||
                                  "type": "array",
 | 
			
		||||
                                  "items": {
 | 
			
		||||
                                    "type": "number",
 | 
			
		||||
                                    "format": "double"
 | 
			
		||||
                                  },
 | 
			
		||||
                                  "maxItems": 2,
 | 
			
		||||
                                  "minItems": 2
 | 
			
		||||
                                },
 | 
			
		||||
                                "type": {
 | 
			
		||||
                                  "type": "string",
 | 
			
		||||
                                  "enum": [
 | 
			
		||||
                                    "horizontal"
 | 
			
		||||
                                  ]
 | 
			
		||||
                                },
 | 
			
		||||
                                "x": {
 | 
			
		||||
                                  "description": "The x coordinate.",
 | 
			
		||||
                                  "type": "number",
 | 
			
		||||
                                  "format": "double"
 | 
			
		||||
                                }
 | 
			
		||||
                              }
 | 
			
		||||
                            },
 | 
			
		||||
                            {
 | 
			
		||||
                              "description": "An angled line to.",
 | 
			
		||||
                              "type": "object",
 | 
			
		||||
                              "required": [
 | 
			
		||||
                                "__geoMeta",
 | 
			
		||||
                                "from",
 | 
			
		||||
                                "name",
 | 
			
		||||
                                "to",
 | 
			
		||||
                                "type"
 | 
			
		||||
                              ],
 | 
			
		||||
                              "properties": {
 | 
			
		||||
                                "__geoMeta": {
 | 
			
		||||
                                  "description": "Metadata.",
 | 
			
		||||
                                  "type": "object",
 | 
			
		||||
                                  "required": [
 | 
			
		||||
                                    "id",
 | 
			
		||||
                                    "sourceRange"
 | 
			
		||||
                                  ],
 | 
			
		||||
                                  "properties": {
 | 
			
		||||
                                    "id": {
 | 
			
		||||
                                      "description": "The id of the geometry.",
 | 
			
		||||
                                      "type": "string",
 | 
			
		||||
                                      "format": "uuid"
 | 
			
		||||
                                    },
 | 
			
		||||
                                    "sourceRange": {
 | 
			
		||||
                                      "description": "The source range.",
 | 
			
		||||
                                      "type": "array",
 | 
			
		||||
                                      "items": {
 | 
			
		||||
                                        "type": "integer",
 | 
			
		||||
                                        "format": "uint",
 | 
			
		||||
                                        "minimum": 0.0
 | 
			
		||||
                                      },
 | 
			
		||||
                                      "maxItems": 2,
 | 
			
		||||
                                      "minItems": 2
 | 
			
		||||
                                    }
 | 
			
		||||
                                  }
 | 
			
		||||
                                },
 | 
			
		||||
                                "from": {
 | 
			
		||||
                                  "description": "The from point.",
 | 
			
		||||
                                  "type": "array",
 | 
			
		||||
                                  "items": {
 | 
			
		||||
                                    "type": "number",
 | 
			
		||||
                                    "format": "double"
 | 
			
		||||
                                  },
 | 
			
		||||
                                  "maxItems": 2,
 | 
			
		||||
                                  "minItems": 2
 | 
			
		||||
                                },
 | 
			
		||||
                                "name": {
 | 
			
		||||
                                  "description": "The name of the path.",
 | 
			
		||||
                                  "type": "string"
 | 
			
		||||
                                },
 | 
			
		||||
                                "to": {
 | 
			
		||||
                                  "description": "The to point.",
 | 
			
		||||
                                  "type": "array",
 | 
			
		||||
                                  "items": {
 | 
			
		||||
                                    "type": "number",
 | 
			
		||||
                                    "format": "double"
 | 
			
		||||
                                  },
 | 
			
		||||
                                  "maxItems": 2,
 | 
			
		||||
                                  "minItems": 2
 | 
			
		||||
                                },
 | 
			
		||||
                                "type": {
 | 
			
		||||
                                  "type": "string",
 | 
			
		||||
                                  "enum": [
 | 
			
		||||
                                    "angledLineTo"
 | 
			
		||||
                                  ]
 | 
			
		||||
                                },
 | 
			
		||||
                                "x": {
 | 
			
		||||
                                  "description": "The x coordinate.",
 | 
			
		||||
                                  "type": "number",
 | 
			
		||||
                                  "format": "double",
 | 
			
		||||
                                  "nullable": true
 | 
			
		||||
                                },
 | 
			
		||||
                                "y": {
 | 
			
		||||
                                  "description": "The y coordinate.",
 | 
			
		||||
                                  "type": "number",
 | 
			
		||||
                                  "format": "double",
 | 
			
		||||
                                  "nullable": true
 | 
			
		||||
                                }
 | 
			
		||||
                              }
 | 
			
		||||
                            },
 | 
			
		||||
                            {
 | 
			
		||||
                              "description": "A base path.",
 | 
			
		||||
                              "type": "object",
 | 
			
		||||
                              "required": [
 | 
			
		||||
                                "__geoMeta",
 | 
			
		||||
                                "from",
 | 
			
		||||
                                "name",
 | 
			
		||||
                                "to",
 | 
			
		||||
                                "type"
 | 
			
		||||
                              ],
 | 
			
		||||
                              "properties": {
 | 
			
		||||
                                "__geoMeta": {
 | 
			
		||||
                                  "description": "Metadata.",
 | 
			
		||||
                                  "type": "object",
 | 
			
		||||
                                  "required": [
 | 
			
		||||
                                    "id",
 | 
			
		||||
                                    "sourceRange"
 | 
			
		||||
                                  ],
 | 
			
		||||
                                  "properties": {
 | 
			
		||||
                                    "id": {
 | 
			
		||||
                                      "description": "The id of the geometry.",
 | 
			
		||||
                                      "type": "string",
 | 
			
		||||
                                      "format": "uuid"
 | 
			
		||||
                                    },
 | 
			
		||||
                                    "sourceRange": {
 | 
			
		||||
                                      "description": "The source range.",
 | 
			
		||||
                                      "type": "array",
 | 
			
		||||
                                      "items": {
 | 
			
		||||
                                        "type": "integer",
 | 
			
		||||
                                        "format": "uint",
 | 
			
		||||
                                        "minimum": 0.0
 | 
			
		||||
                                      },
 | 
			
		||||
                                      "maxItems": 2,
 | 
			
		||||
                                      "minItems": 2
 | 
			
		||||
                                    }
 | 
			
		||||
                                  }
 | 
			
		||||
                                },
 | 
			
		||||
                                "from": {
 | 
			
		||||
                                  "description": "The from point.",
 | 
			
		||||
                                  "type": "array",
 | 
			
		||||
                                  "items": {
 | 
			
		||||
                                    "type": "number",
 | 
			
		||||
                                    "format": "double"
 | 
			
		||||
                                  },
 | 
			
		||||
                                  "maxItems": 2,
 | 
			
		||||
                                  "minItems": 2
 | 
			
		||||
                                },
 | 
			
		||||
                                "name": {
 | 
			
		||||
                                  "description": "The name of the path.",
 | 
			
		||||
                                  "type": "string"
 | 
			
		||||
                                },
 | 
			
		||||
                                "to": {
 | 
			
		||||
                                  "description": "The to point.",
 | 
			
		||||
                                  "type": "array",
 | 
			
		||||
                                  "items": {
 | 
			
		||||
                                    "type": "number",
 | 
			
		||||
                                    "format": "double"
 | 
			
		||||
                                  },
 | 
			
		||||
                                  "maxItems": 2,
 | 
			
		||||
                                  "minItems": 2
 | 
			
		||||
                                },
 | 
			
		||||
                                "type": {
 | 
			
		||||
                                  "type": "string",
 | 
			
		||||
                                  "enum": [
 | 
			
		||||
                                    "base"
 | 
			
		||||
                                  ]
 | 
			
		||||
                                }
 | 
			
		||||
                              }
 | 
			
		||||
                            }
 | 
			
		||||
                          ]
 | 
			
		||||
                        }
 | 
			
		||||
                      }
 | 
			
		||||
                    }
 | 
			
		||||
                  },
 | 
			
		||||
                  "required": true
 | 
			
		||||
                },
 | 
			
		||||
                "unpublished": false,
 | 
			
		||||
                "deprecated": false
 | 
			
		||||
              }
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "kind": "const"
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "nonCodeMeta": {
 | 
			
		||||
    "nonCodeNodes": {},
 | 
			
		||||
    "start": []
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,98 @@
 | 
			
		||||
---
 | 
			
		||||
source: kcl/src/parser/parser_impl.rs
 | 
			
		||||
expression: actual
 | 
			
		||||
---
 | 
			
		||||
{
 | 
			
		||||
  "start": 0,
 | 
			
		||||
  "end": 26,
 | 
			
		||||
  "body": [
 | 
			
		||||
    {
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "start": 0,
 | 
			
		||||
      "end": 26,
 | 
			
		||||
      "declarations": [
 | 
			
		||||
        {
 | 
			
		||||
          "type": "VariableDeclarator",
 | 
			
		||||
          "start": 6,
 | 
			
		||||
          "end": 26,
 | 
			
		||||
          "id": {
 | 
			
		||||
            "type": "Identifier",
 | 
			
		||||
            "start": 6,
 | 
			
		||||
            "end": 11,
 | 
			
		||||
            "name": "myBox"
 | 
			
		||||
          },
 | 
			
		||||
          "init": {
 | 
			
		||||
            "type": "PipeExpression",
 | 
			
		||||
            "type": "PipeExpression",
 | 
			
		||||
            "start": 14,
 | 
			
		||||
            "end": 26,
 | 
			
		||||
            "body": [
 | 
			
		||||
              {
 | 
			
		||||
                "type": "CallExpression",
 | 
			
		||||
                "type": "CallExpression",
 | 
			
		||||
                "start": 14,
 | 
			
		||||
                "end": 18,
 | 
			
		||||
                "callee": {
 | 
			
		||||
                  "type": "Identifier",
 | 
			
		||||
                  "start": 14,
 | 
			
		||||
                  "end": 15,
 | 
			
		||||
                  "name": "f"
 | 
			
		||||
                },
 | 
			
		||||
                "arguments": [
 | 
			
		||||
                  {
 | 
			
		||||
                    "type": "Literal",
 | 
			
		||||
                    "type": "Literal",
 | 
			
		||||
                    "start": 16,
 | 
			
		||||
                    "end": 17,
 | 
			
		||||
                    "value": 1,
 | 
			
		||||
                    "raw": "1"
 | 
			
		||||
                  }
 | 
			
		||||
                ],
 | 
			
		||||
                "optional": false,
 | 
			
		||||
                "function": {
 | 
			
		||||
                  "type": "InMemory"
 | 
			
		||||
                }
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "CallExpression",
 | 
			
		||||
                "type": "CallExpression",
 | 
			
		||||
                "start": 22,
 | 
			
		||||
                "end": 26,
 | 
			
		||||
                "callee": {
 | 
			
		||||
                  "type": "Identifier",
 | 
			
		||||
                  "start": 22,
 | 
			
		||||
                  "end": 23,
 | 
			
		||||
                  "name": "g"
 | 
			
		||||
                },
 | 
			
		||||
                "arguments": [
 | 
			
		||||
                  {
 | 
			
		||||
                    "type": "Literal",
 | 
			
		||||
                    "type": "Literal",
 | 
			
		||||
                    "start": 24,
 | 
			
		||||
                    "end": 25,
 | 
			
		||||
                    "value": 2,
 | 
			
		||||
                    "raw": "2"
 | 
			
		||||
                  }
 | 
			
		||||
                ],
 | 
			
		||||
                "optional": false,
 | 
			
		||||
                "function": {
 | 
			
		||||
                  "type": "InMemory"
 | 
			
		||||
                }
 | 
			
		||||
              }
 | 
			
		||||
            ],
 | 
			
		||||
            "nonCodeMeta": {
 | 
			
		||||
              "nonCodeNodes": {},
 | 
			
		||||
              "start": []
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "kind": "const"
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "nonCodeMeta": {
 | 
			
		||||
    "nonCodeNodes": {},
 | 
			
		||||
    "start": []
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@ -0,0 +1,569 @@
 | 
			
		||||
---
 | 
			
		||||
source: kcl/src/parser/parser_impl.rs
 | 
			
		||||
expression: actual
 | 
			
		||||
---
 | 
			
		||||
{
 | 
			
		||||
  "start": 0,
 | 
			
		||||
  "end": 37,
 | 
			
		||||
  "body": [
 | 
			
		||||
    {
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "start": 0,
 | 
			
		||||
      "end": 37,
 | 
			
		||||
      "declarations": [
 | 
			
		||||
        {
 | 
			
		||||
          "type": "VariableDeclarator",
 | 
			
		||||
          "start": 6,
 | 
			
		||||
          "end": 37,
 | 
			
		||||
          "id": {
 | 
			
		||||
            "type": "Identifier",
 | 
			
		||||
            "start": 6,
 | 
			
		||||
            "end": 14,
 | 
			
		||||
            "name": "mySketch"
 | 
			
		||||
          },
 | 
			
		||||
          "init": {
 | 
			
		||||
            "type": "CallExpression",
 | 
			
		||||
            "type": "CallExpression",
 | 
			
		||||
            "start": 17,
 | 
			
		||||
            "end": 37,
 | 
			
		||||
            "callee": {
 | 
			
		||||
              "type": "Identifier",
 | 
			
		||||
              "start": 17,
 | 
			
		||||
              "end": 30,
 | 
			
		||||
              "name": "startSketchAt"
 | 
			
		||||
            },
 | 
			
		||||
            "arguments": [
 | 
			
		||||
              {
 | 
			
		||||
                "type": "ArrayExpression",
 | 
			
		||||
                "type": "ArrayExpression",
 | 
			
		||||
                "start": 31,
 | 
			
		||||
                "end": 36,
 | 
			
		||||
                "elements": [
 | 
			
		||||
                  {
 | 
			
		||||
                    "type": "Literal",
 | 
			
		||||
                    "type": "Literal",
 | 
			
		||||
                    "start": 32,
 | 
			
		||||
                    "end": 33,
 | 
			
		||||
                    "value": 0,
 | 
			
		||||
                    "raw": "0"
 | 
			
		||||
                  },
 | 
			
		||||
                  {
 | 
			
		||||
                    "type": "Literal",
 | 
			
		||||
                    "type": "Literal",
 | 
			
		||||
                    "start": 34,
 | 
			
		||||
                    "end": 35,
 | 
			
		||||
                    "value": 0,
 | 
			
		||||
                    "raw": "0"
 | 
			
		||||
                  }
 | 
			
		||||
                ]
 | 
			
		||||
              }
 | 
			
		||||
            ],
 | 
			
		||||
            "optional": false,
 | 
			
		||||
            "function": {
 | 
			
		||||
              "type": "StdLib",
 | 
			
		||||
              "func": {
 | 
			
		||||
                "name": "startSketchAt",
 | 
			
		||||
                "summary": "Start a sketch at a given point on the 'XY' plane.",
 | 
			
		||||
                "description": "",
 | 
			
		||||
                "tags": [],
 | 
			
		||||
                "args": [
 | 
			
		||||
                  {
 | 
			
		||||
                    "name": "data",
 | 
			
		||||
                    "type": "LineData",
 | 
			
		||||
                    "schema": {
 | 
			
		||||
                      "description": "Data to draw a line.",
 | 
			
		||||
                      "anyOf": [
 | 
			
		||||
                        {
 | 
			
		||||
                          "description": "A point with a tag.",
 | 
			
		||||
                          "type": "object",
 | 
			
		||||
                          "required": [
 | 
			
		||||
                            "tag",
 | 
			
		||||
                            "to"
 | 
			
		||||
                          ],
 | 
			
		||||
                          "properties": {
 | 
			
		||||
                            "tag": {
 | 
			
		||||
                              "description": "The tag.",
 | 
			
		||||
                              "type": "string"
 | 
			
		||||
                            },
 | 
			
		||||
                            "to": {
 | 
			
		||||
                              "description": "The to point.",
 | 
			
		||||
                              "type": "array",
 | 
			
		||||
                              "items": {
 | 
			
		||||
                                "type": "number",
 | 
			
		||||
                                "format": "double"
 | 
			
		||||
                              },
 | 
			
		||||
                              "maxItems": 2,
 | 
			
		||||
                              "minItems": 2
 | 
			
		||||
                            }
 | 
			
		||||
                          }
 | 
			
		||||
                        },
 | 
			
		||||
                        {
 | 
			
		||||
                          "description": "A point.",
 | 
			
		||||
                          "type": "array",
 | 
			
		||||
                          "items": {
 | 
			
		||||
                            "type": "number",
 | 
			
		||||
                            "format": "double"
 | 
			
		||||
                          },
 | 
			
		||||
                          "maxItems": 2,
 | 
			
		||||
                          "minItems": 2
 | 
			
		||||
                        }
 | 
			
		||||
                      ]
 | 
			
		||||
                    },
 | 
			
		||||
                    "required": true
 | 
			
		||||
                  }
 | 
			
		||||
                ],
 | 
			
		||||
                "returnValue": {
 | 
			
		||||
                  "name": "",
 | 
			
		||||
                  "type": "SketchGroup",
 | 
			
		||||
                  "schema": {
 | 
			
		||||
                    "description": "A sketch group is a collection of paths.",
 | 
			
		||||
                    "type": "object",
 | 
			
		||||
                    "required": [
 | 
			
		||||
                      "__meta",
 | 
			
		||||
                      "id",
 | 
			
		||||
                      "position",
 | 
			
		||||
                      "rotation",
 | 
			
		||||
                      "start",
 | 
			
		||||
                      "value"
 | 
			
		||||
                    ],
 | 
			
		||||
                    "properties": {
 | 
			
		||||
                      "__meta": {
 | 
			
		||||
                        "description": "Metadata.",
 | 
			
		||||
                        "type": "array",
 | 
			
		||||
                        "items": {
 | 
			
		||||
                          "description": "Metadata.",
 | 
			
		||||
                          "type": "object",
 | 
			
		||||
                          "required": [
 | 
			
		||||
                            "sourceRange"
 | 
			
		||||
                          ],
 | 
			
		||||
                          "properties": {
 | 
			
		||||
                            "sourceRange": {
 | 
			
		||||
                              "description": "The source range.",
 | 
			
		||||
                              "type": "array",
 | 
			
		||||
                              "items": {
 | 
			
		||||
                                "type": "integer",
 | 
			
		||||
                                "format": "uint",
 | 
			
		||||
                                "minimum": 0.0
 | 
			
		||||
                              },
 | 
			
		||||
                              "maxItems": 2,
 | 
			
		||||
                              "minItems": 2
 | 
			
		||||
                            }
 | 
			
		||||
                          }
 | 
			
		||||
                        }
 | 
			
		||||
                      },
 | 
			
		||||
                      "id": {
 | 
			
		||||
                        "description": "The id of the sketch group.",
 | 
			
		||||
                        "type": "string",
 | 
			
		||||
                        "format": "uuid"
 | 
			
		||||
                      },
 | 
			
		||||
                      "planeId": {
 | 
			
		||||
                        "description": "The plane id of the sketch group.",
 | 
			
		||||
                        "type": "string",
 | 
			
		||||
                        "format": "uuid",
 | 
			
		||||
                        "nullable": true
 | 
			
		||||
                      },
 | 
			
		||||
                      "position": {
 | 
			
		||||
                        "description": "The position of the sketch group.",
 | 
			
		||||
                        "type": "array",
 | 
			
		||||
                        "items": {
 | 
			
		||||
                          "type": "number",
 | 
			
		||||
                          "format": "double"
 | 
			
		||||
                        },
 | 
			
		||||
                        "maxItems": 3,
 | 
			
		||||
                        "minItems": 3
 | 
			
		||||
                      },
 | 
			
		||||
                      "rotation": {
 | 
			
		||||
                        "description": "The rotation of the sketch group.",
 | 
			
		||||
                        "type": "array",
 | 
			
		||||
                        "items": {
 | 
			
		||||
                          "type": "number",
 | 
			
		||||
                          "format": "double"
 | 
			
		||||
                        },
 | 
			
		||||
                        "maxItems": 4,
 | 
			
		||||
                        "minItems": 4
 | 
			
		||||
                      },
 | 
			
		||||
                      "start": {
 | 
			
		||||
                        "description": "The starting path.",
 | 
			
		||||
                        "type": "object",
 | 
			
		||||
                        "required": [
 | 
			
		||||
                          "__geoMeta",
 | 
			
		||||
                          "from",
 | 
			
		||||
                          "name",
 | 
			
		||||
                          "to"
 | 
			
		||||
                        ],
 | 
			
		||||
                        "properties": {
 | 
			
		||||
                          "__geoMeta": {
 | 
			
		||||
                            "description": "Metadata.",
 | 
			
		||||
                            "type": "object",
 | 
			
		||||
                            "required": [
 | 
			
		||||
                              "id",
 | 
			
		||||
                              "sourceRange"
 | 
			
		||||
                            ],
 | 
			
		||||
                            "properties": {
 | 
			
		||||
                              "id": {
 | 
			
		||||
                                "description": "The id of the geometry.",
 | 
			
		||||
                                "type": "string",
 | 
			
		||||
                                "format": "uuid"
 | 
			
		||||
                              },
 | 
			
		||||
                              "sourceRange": {
 | 
			
		||||
                                "description": "The source range.",
 | 
			
		||||
                                "type": "array",
 | 
			
		||||
                                "items": {
 | 
			
		||||
                                  "type": "integer",
 | 
			
		||||
                                  "format": "uint",
 | 
			
		||||
                                  "minimum": 0.0
 | 
			
		||||
                                },
 | 
			
		||||
                                "maxItems": 2,
 | 
			
		||||
                                "minItems": 2
 | 
			
		||||
                              }
 | 
			
		||||
                            }
 | 
			
		||||
                          },
 | 
			
		||||
                          "from": {
 | 
			
		||||
                            "description": "The from point.",
 | 
			
		||||
                            "type": "array",
 | 
			
		||||
                            "items": {
 | 
			
		||||
                              "type": "number",
 | 
			
		||||
                              "format": "double"
 | 
			
		||||
                            },
 | 
			
		||||
                            "maxItems": 2,
 | 
			
		||||
                            "minItems": 2
 | 
			
		||||
                          },
 | 
			
		||||
                          "name": {
 | 
			
		||||
                            "description": "The name of the path.",
 | 
			
		||||
                            "type": "string"
 | 
			
		||||
                          },
 | 
			
		||||
                          "to": {
 | 
			
		||||
                            "description": "The to point.",
 | 
			
		||||
                            "type": "array",
 | 
			
		||||
                            "items": {
 | 
			
		||||
                              "type": "number",
 | 
			
		||||
                              "format": "double"
 | 
			
		||||
                            },
 | 
			
		||||
                            "maxItems": 2,
 | 
			
		||||
                            "minItems": 2
 | 
			
		||||
                          }
 | 
			
		||||
                        }
 | 
			
		||||
                      },
 | 
			
		||||
                      "value": {
 | 
			
		||||
                        "description": "The paths in the sketch group.",
 | 
			
		||||
                        "type": "array",
 | 
			
		||||
                        "items": {
 | 
			
		||||
                          "description": "A path.",
 | 
			
		||||
                          "oneOf": [
 | 
			
		||||
                            {
 | 
			
		||||
                              "description": "A path that goes to a point.",
 | 
			
		||||
                              "type": "object",
 | 
			
		||||
                              "required": [
 | 
			
		||||
                                "__geoMeta",
 | 
			
		||||
                                "from",
 | 
			
		||||
                                "name",
 | 
			
		||||
                                "to",
 | 
			
		||||
                                "type"
 | 
			
		||||
                              ],
 | 
			
		||||
                              "properties": {
 | 
			
		||||
                                "__geoMeta": {
 | 
			
		||||
                                  "description": "Metadata.",
 | 
			
		||||
                                  "type": "object",
 | 
			
		||||
                                  "required": [
 | 
			
		||||
                                    "id",
 | 
			
		||||
                                    "sourceRange"
 | 
			
		||||
                                  ],
 | 
			
		||||
                                  "properties": {
 | 
			
		||||
                                    "id": {
 | 
			
		||||
                                      "description": "The id of the geometry.",
 | 
			
		||||
                                      "type": "string",
 | 
			
		||||
                                      "format": "uuid"
 | 
			
		||||
                                    },
 | 
			
		||||
                                    "sourceRange": {
 | 
			
		||||
                                      "description": "The source range.",
 | 
			
		||||
                                      "type": "array",
 | 
			
		||||
                                      "items": {
 | 
			
		||||
                                        "type": "integer",
 | 
			
		||||
                                        "format": "uint",
 | 
			
		||||
                                        "minimum": 0.0
 | 
			
		||||
                                      },
 | 
			
		||||
                                      "maxItems": 2,
 | 
			
		||||
                                      "minItems": 2
 | 
			
		||||
                                    }
 | 
			
		||||
                                  }
 | 
			
		||||
                                },
 | 
			
		||||
                                "from": {
 | 
			
		||||
                                  "description": "The from point.",
 | 
			
		||||
                                  "type": "array",
 | 
			
		||||
                                  "items": {
 | 
			
		||||
                                    "type": "number",
 | 
			
		||||
                                    "format": "double"
 | 
			
		||||
                                  },
 | 
			
		||||
                                  "maxItems": 2,
 | 
			
		||||
                                  "minItems": 2
 | 
			
		||||
                                },
 | 
			
		||||
                                "name": {
 | 
			
		||||
                                  "description": "The name of the path.",
 | 
			
		||||
                                  "type": "string"
 | 
			
		||||
                                },
 | 
			
		||||
                                "to": {
 | 
			
		||||
                                  "description": "The to point.",
 | 
			
		||||
                                  "type": "array",
 | 
			
		||||
                                  "items": {
 | 
			
		||||
                                    "type": "number",
 | 
			
		||||
                                    "format": "double"
 | 
			
		||||
                                  },
 | 
			
		||||
                                  "maxItems": 2,
 | 
			
		||||
                                  "minItems": 2
 | 
			
		||||
                                },
 | 
			
		||||
                                "type": {
 | 
			
		||||
                                  "type": "string",
 | 
			
		||||
                                  "enum": [
 | 
			
		||||
                                    "toPoint"
 | 
			
		||||
                                  ]
 | 
			
		||||
                                }
 | 
			
		||||
                              }
 | 
			
		||||
                            },
 | 
			
		||||
                            {
 | 
			
		||||
                              "description": "A path that is horizontal.",
 | 
			
		||||
                              "type": "object",
 | 
			
		||||
                              "required": [
 | 
			
		||||
                                "__geoMeta",
 | 
			
		||||
                                "from",
 | 
			
		||||
                                "name",
 | 
			
		||||
                                "to",
 | 
			
		||||
                                "type",
 | 
			
		||||
                                "x"
 | 
			
		||||
                              ],
 | 
			
		||||
                              "properties": {
 | 
			
		||||
                                "__geoMeta": {
 | 
			
		||||
                                  "description": "Metadata.",
 | 
			
		||||
                                  "type": "object",
 | 
			
		||||
                                  "required": [
 | 
			
		||||
                                    "id",
 | 
			
		||||
                                    "sourceRange"
 | 
			
		||||
                                  ],
 | 
			
		||||
                                  "properties": {
 | 
			
		||||
                                    "id": {
 | 
			
		||||
                                      "description": "The id of the geometry.",
 | 
			
		||||
                                      "type": "string",
 | 
			
		||||
                                      "format": "uuid"
 | 
			
		||||
                                    },
 | 
			
		||||
                                    "sourceRange": {
 | 
			
		||||
                                      "description": "The source range.",
 | 
			
		||||
                                      "type": "array",
 | 
			
		||||
                                      "items": {
 | 
			
		||||
                                        "type": "integer",
 | 
			
		||||
                                        "format": "uint",
 | 
			
		||||
                                        "minimum": 0.0
 | 
			
		||||
                                      },
 | 
			
		||||
                                      "maxItems": 2,
 | 
			
		||||
                                      "minItems": 2
 | 
			
		||||
                                    }
 | 
			
		||||
                                  }
 | 
			
		||||
                                },
 | 
			
		||||
                                "from": {
 | 
			
		||||
                                  "description": "The from point.",
 | 
			
		||||
                                  "type": "array",
 | 
			
		||||
                                  "items": {
 | 
			
		||||
                                    "type": "number",
 | 
			
		||||
                                    "format": "double"
 | 
			
		||||
                                  },
 | 
			
		||||
                                  "maxItems": 2,
 | 
			
		||||
                                  "minItems": 2
 | 
			
		||||
                                },
 | 
			
		||||
                                "name": {
 | 
			
		||||
                                  "description": "The name of the path.",
 | 
			
		||||
                                  "type": "string"
 | 
			
		||||
                                },
 | 
			
		||||
                                "to": {
 | 
			
		||||
                                  "description": "The to point.",
 | 
			
		||||
                                  "type": "array",
 | 
			
		||||
                                  "items": {
 | 
			
		||||
                                    "type": "number",
 | 
			
		||||
                                    "format": "double"
 | 
			
		||||
                                  },
 | 
			
		||||
                                  "maxItems": 2,
 | 
			
		||||
                                  "minItems": 2
 | 
			
		||||
                                },
 | 
			
		||||
                                "type": {
 | 
			
		||||
                                  "type": "string",
 | 
			
		||||
                                  "enum": [
 | 
			
		||||
                                    "horizontal"
 | 
			
		||||
                                  ]
 | 
			
		||||
                                },
 | 
			
		||||
                                "x": {
 | 
			
		||||
                                  "description": "The x coordinate.",
 | 
			
		||||
                                  "type": "number",
 | 
			
		||||
                                  "format": "double"
 | 
			
		||||
                                }
 | 
			
		||||
                              }
 | 
			
		||||
                            },
 | 
			
		||||
                            {
 | 
			
		||||
                              "description": "An angled line to.",
 | 
			
		||||
                              "type": "object",
 | 
			
		||||
                              "required": [
 | 
			
		||||
                                "__geoMeta",
 | 
			
		||||
                                "from",
 | 
			
		||||
                                "name",
 | 
			
		||||
                                "to",
 | 
			
		||||
                                "type"
 | 
			
		||||
                              ],
 | 
			
		||||
                              "properties": {
 | 
			
		||||
                                "__geoMeta": {
 | 
			
		||||
                                  "description": "Metadata.",
 | 
			
		||||
                                  "type": "object",
 | 
			
		||||
                                  "required": [
 | 
			
		||||
                                    "id",
 | 
			
		||||
                                    "sourceRange"
 | 
			
		||||
                                  ],
 | 
			
		||||
                                  "properties": {
 | 
			
		||||
                                    "id": {
 | 
			
		||||
                                      "description": "The id of the geometry.",
 | 
			
		||||
                                      "type": "string",
 | 
			
		||||
                                      "format": "uuid"
 | 
			
		||||
                                    },
 | 
			
		||||
                                    "sourceRange": {
 | 
			
		||||
                                      "description": "The source range.",
 | 
			
		||||
                                      "type": "array",
 | 
			
		||||
                                      "items": {
 | 
			
		||||
                                        "type": "integer",
 | 
			
		||||
                                        "format": "uint",
 | 
			
		||||
                                        "minimum": 0.0
 | 
			
		||||
                                      },
 | 
			
		||||
                                      "maxItems": 2,
 | 
			
		||||
                                      "minItems": 2
 | 
			
		||||
                                    }
 | 
			
		||||
                                  }
 | 
			
		||||
                                },
 | 
			
		||||
                                "from": {
 | 
			
		||||
                                  "description": "The from point.",
 | 
			
		||||
                                  "type": "array",
 | 
			
		||||
                                  "items": {
 | 
			
		||||
                                    "type": "number",
 | 
			
		||||
                                    "format": "double"
 | 
			
		||||
                                  },
 | 
			
		||||
                                  "maxItems": 2,
 | 
			
		||||
                                  "minItems": 2
 | 
			
		||||
                                },
 | 
			
		||||
                                "name": {
 | 
			
		||||
                                  "description": "The name of the path.",
 | 
			
		||||
                                  "type": "string"
 | 
			
		||||
                                },
 | 
			
		||||
                                "to": {
 | 
			
		||||
                                  "description": "The to point.",
 | 
			
		||||
                                  "type": "array",
 | 
			
		||||
                                  "items": {
 | 
			
		||||
                                    "type": "number",
 | 
			
		||||
                                    "format": "double"
 | 
			
		||||
                                  },
 | 
			
		||||
                                  "maxItems": 2,
 | 
			
		||||
                                  "minItems": 2
 | 
			
		||||
                                },
 | 
			
		||||
                                "type": {
 | 
			
		||||
                                  "type": "string",
 | 
			
		||||
                                  "enum": [
 | 
			
		||||
                                    "angledLineTo"
 | 
			
		||||
                                  ]
 | 
			
		||||
                                },
 | 
			
		||||
                                "x": {
 | 
			
		||||
                                  "description": "The x coordinate.",
 | 
			
		||||
                                  "type": "number",
 | 
			
		||||
                                  "format": "double",
 | 
			
		||||
                                  "nullable": true
 | 
			
		||||
                                },
 | 
			
		||||
                                "y": {
 | 
			
		||||
                                  "description": "The y coordinate.",
 | 
			
		||||
                                  "type": "number",
 | 
			
		||||
                                  "format": "double",
 | 
			
		||||
                                  "nullable": true
 | 
			
		||||
                                }
 | 
			
		||||
                              }
 | 
			
		||||
                            },
 | 
			
		||||
                            {
 | 
			
		||||
                              "description": "A base path.",
 | 
			
		||||
                              "type": "object",
 | 
			
		||||
                              "required": [
 | 
			
		||||
                                "__geoMeta",
 | 
			
		||||
                                "from",
 | 
			
		||||
                                "name",
 | 
			
		||||
                                "to",
 | 
			
		||||
                                "type"
 | 
			
		||||
                              ],
 | 
			
		||||
                              "properties": {
 | 
			
		||||
                                "__geoMeta": {
 | 
			
		||||
                                  "description": "Metadata.",
 | 
			
		||||
                                  "type": "object",
 | 
			
		||||
                                  "required": [
 | 
			
		||||
                                    "id",
 | 
			
		||||
                                    "sourceRange"
 | 
			
		||||
                                  ],
 | 
			
		||||
                                  "properties": {
 | 
			
		||||
                                    "id": {
 | 
			
		||||
                                      "description": "The id of the geometry.",
 | 
			
		||||
                                      "type": "string",
 | 
			
		||||
                                      "format": "uuid"
 | 
			
		||||
                                    },
 | 
			
		||||
                                    "sourceRange": {
 | 
			
		||||
                                      "description": "The source range.",
 | 
			
		||||
                                      "type": "array",
 | 
			
		||||
                                      "items": {
 | 
			
		||||
                                        "type": "integer",
 | 
			
		||||
                                        "format": "uint",
 | 
			
		||||
                                        "minimum": 0.0
 | 
			
		||||
                                      },
 | 
			
		||||
                                      "maxItems": 2,
 | 
			
		||||
                                      "minItems": 2
 | 
			
		||||
                                    }
 | 
			
		||||
                                  }
 | 
			
		||||
                                },
 | 
			
		||||
                                "from": {
 | 
			
		||||
                                  "description": "The from point.",
 | 
			
		||||
                                  "type": "array",
 | 
			
		||||
                                  "items": {
 | 
			
		||||
                                    "type": "number",
 | 
			
		||||
                                    "format": "double"
 | 
			
		||||
                                  },
 | 
			
		||||
                                  "maxItems": 2,
 | 
			
		||||
                                  "minItems": 2
 | 
			
		||||
                                },
 | 
			
		||||
                                "name": {
 | 
			
		||||
                                  "description": "The name of the path.",
 | 
			
		||||
                                  "type": "string"
 | 
			
		||||
                                },
 | 
			
		||||
                                "to": {
 | 
			
		||||
                                  "description": "The to point.",
 | 
			
		||||
                                  "type": "array",
 | 
			
		||||
                                  "items": {
 | 
			
		||||
                                    "type": "number",
 | 
			
		||||
                                    "format": "double"
 | 
			
		||||
                                  },
 | 
			
		||||
                                  "maxItems": 2,
 | 
			
		||||
                                  "minItems": 2
 | 
			
		||||
                                },
 | 
			
		||||
                                "type": {
 | 
			
		||||
                                  "type": "string",
 | 
			
		||||
                                  "enum": [
 | 
			
		||||
                                    "base"
 | 
			
		||||
                                  ]
 | 
			
		||||
                                }
 | 
			
		||||
                              }
 | 
			
		||||
                            }
 | 
			
		||||
                          ]
 | 
			
		||||
                        }
 | 
			
		||||
                      }
 | 
			
		||||
                    }
 | 
			
		||||
                  },
 | 
			
		||||
                  "required": true
 | 
			
		||||
                },
 | 
			
		||||
                "unpublished": false,
 | 
			
		||||
                "deprecated": false
 | 
			
		||||
              }
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "kind": "const"
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "nonCodeMeta": {
 | 
			
		||||
    "nonCodeNodes": {},
 | 
			
		||||
    "start": []
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,98 @@
 | 
			
		||||
---
 | 
			
		||||
source: kcl/src/parser/parser_impl.rs
 | 
			
		||||
expression: actual
 | 
			
		||||
---
 | 
			
		||||
{
 | 
			
		||||
  "start": 0,
 | 
			
		||||
  "end": 28,
 | 
			
		||||
  "body": [
 | 
			
		||||
    {
 | 
			
		||||
      "type": "ExpressionStatement",
 | 
			
		||||
      "type": "ExpressionStatement",
 | 
			
		||||
      "start": 0,
 | 
			
		||||
      "end": 28,
 | 
			
		||||
      "expression": {
 | 
			
		||||
        "type": "CallExpression",
 | 
			
		||||
        "type": "CallExpression",
 | 
			
		||||
        "start": 0,
 | 
			
		||||
        "end": 28,
 | 
			
		||||
        "callee": {
 | 
			
		||||
          "type": "Identifier",
 | 
			
		||||
          "start": 0,
 | 
			
		||||
          "end": 3,
 | 
			
		||||
          "name": "log"
 | 
			
		||||
        },
 | 
			
		||||
        "arguments": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Literal",
 | 
			
		||||
            "type": "Literal",
 | 
			
		||||
            "start": 4,
 | 
			
		||||
            "end": 5,
 | 
			
		||||
            "value": 5,
 | 
			
		||||
            "raw": "5"
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Literal",
 | 
			
		||||
            "type": "Literal",
 | 
			
		||||
            "start": 7,
 | 
			
		||||
            "end": 14,
 | 
			
		||||
            "value": "hello",
 | 
			
		||||
            "raw": "\"hello\""
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            "type": "Identifier",
 | 
			
		||||
            "type": "Identifier",
 | 
			
		||||
            "start": 16,
 | 
			
		||||
            "end": 27,
 | 
			
		||||
            "name": "aIdentifier"
 | 
			
		||||
          }
 | 
			
		||||
        ],
 | 
			
		||||
        "optional": false,
 | 
			
		||||
        "function": {
 | 
			
		||||
          "type": "StdLib",
 | 
			
		||||
          "func": {
 | 
			
		||||
            "name": "log",
 | 
			
		||||
            "summary": "Computes the logarithm of the number with respect to an arbitrary base.",
 | 
			
		||||
            "description": "The result might not be correctly rounded owing to implementation details; `log2()` can produce more accurate results for base 2, and `log10()` can produce more accurate results for base 10.",
 | 
			
		||||
            "tags": [],
 | 
			
		||||
            "args": [
 | 
			
		||||
              {
 | 
			
		||||
                "name": "num",
 | 
			
		||||
                "type": "number",
 | 
			
		||||
                "schema": {
 | 
			
		||||
                  "type": "number",
 | 
			
		||||
                  "format": "double"
 | 
			
		||||
                },
 | 
			
		||||
                "required": true
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "name": "base",
 | 
			
		||||
                "type": "number",
 | 
			
		||||
                "schema": {
 | 
			
		||||
                  "type": "number",
 | 
			
		||||
                  "format": "double"
 | 
			
		||||
                },
 | 
			
		||||
                "required": true
 | 
			
		||||
              }
 | 
			
		||||
            ],
 | 
			
		||||
            "returnValue": {
 | 
			
		||||
              "name": "",
 | 
			
		||||
              "type": "number",
 | 
			
		||||
              "schema": {
 | 
			
		||||
                "type": "number",
 | 
			
		||||
                "format": "double"
 | 
			
		||||
              },
 | 
			
		||||
              "required": true
 | 
			
		||||
            },
 | 
			
		||||
            "unpublished": false,
 | 
			
		||||
            "deprecated": false
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "nonCodeMeta": {
 | 
			
		||||
    "nonCodeNodes": {},
 | 
			
		||||
    "start": []
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,43 @@
 | 
			
		||||
---
 | 
			
		||||
source: kcl/src/parser/parser_impl.rs
 | 
			
		||||
expression: actual
 | 
			
		||||
---
 | 
			
		||||
{
 | 
			
		||||
  "start": 0,
 | 
			
		||||
  "end": 7,
 | 
			
		||||
  "body": [
 | 
			
		||||
    {
 | 
			
		||||
      "type": "ExpressionStatement",
 | 
			
		||||
      "type": "ExpressionStatement",
 | 
			
		||||
      "start": 0,
 | 
			
		||||
      "end": 7,
 | 
			
		||||
      "expression": {
 | 
			
		||||
        "type": "BinaryExpression",
 | 
			
		||||
        "type": "BinaryExpression",
 | 
			
		||||
        "start": 0,
 | 
			
		||||
        "end": 7,
 | 
			
		||||
        "operator": "+",
 | 
			
		||||
        "left": {
 | 
			
		||||
          "type": "Literal",
 | 
			
		||||
          "type": "Literal",
 | 
			
		||||
          "start": 0,
 | 
			
		||||
          "end": 1,
 | 
			
		||||
          "value": 5,
 | 
			
		||||
          "raw": "5"
 | 
			
		||||
        },
 | 
			
		||||
        "right": {
 | 
			
		||||
          "type": "Literal",
 | 
			
		||||
          "type": "Literal",
 | 
			
		||||
          "start": 4,
 | 
			
		||||
          "end": 7,
 | 
			
		||||
          "value": "a",
 | 
			
		||||
          "raw": "\"a\""
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "nonCodeMeta": {
 | 
			
		||||
    "nonCodeNodes": {},
 | 
			
		||||
    "start": []
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,999 @@
 | 
			
		||||
---
 | 
			
		||||
source: kcl/src/parser/parser_impl.rs
 | 
			
		||||
expression: actual
 | 
			
		||||
---
 | 
			
		||||
{
 | 
			
		||||
  "start": 0,
 | 
			
		||||
  "end": 15,
 | 
			
		||||
  "body": [
 | 
			
		||||
    {
 | 
			
		||||
      "type": "ExpressionStatement",
 | 
			
		||||
      "type": "ExpressionStatement",
 | 
			
		||||
      "start": 0,
 | 
			
		||||
      "end": 15,
 | 
			
		||||
      "expression": {
 | 
			
		||||
        "type": "CallExpression",
 | 
			
		||||
        "type": "CallExpression",
 | 
			
		||||
        "start": 0,
 | 
			
		||||
        "end": 15,
 | 
			
		||||
        "callee": {
 | 
			
		||||
          "type": "Identifier",
 | 
			
		||||
          "start": 0,
 | 
			
		||||
          "end": 4,
 | 
			
		||||
          "name": "line"
 | 
			
		||||
        },
 | 
			
		||||
        "arguments": [
 | 
			
		||||
          {
 | 
			
		||||
            "type": "ArrayExpression",
 | 
			
		||||
            "type": "ArrayExpression",
 | 
			
		||||
            "start": 5,
 | 
			
		||||
            "end": 11,
 | 
			
		||||
            "elements": [
 | 
			
		||||
              {
 | 
			
		||||
                "type": "Literal",
 | 
			
		||||
                "type": "Literal",
 | 
			
		||||
                "start": 6,
 | 
			
		||||
                "end": 7,
 | 
			
		||||
                "value": 0,
 | 
			
		||||
                "raw": "0"
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "Identifier",
 | 
			
		||||
                "type": "Identifier",
 | 
			
		||||
                "start": 9,
 | 
			
		||||
                "end": 10,
 | 
			
		||||
                "name": "l"
 | 
			
		||||
              }
 | 
			
		||||
            ]
 | 
			
		||||
          },
 | 
			
		||||
          {
 | 
			
		||||
            "type": "PipeSubstitution",
 | 
			
		||||
            "type": "PipeSubstitution",
 | 
			
		||||
            "start": 13,
 | 
			
		||||
            "end": 14
 | 
			
		||||
          }
 | 
			
		||||
        ],
 | 
			
		||||
        "optional": false,
 | 
			
		||||
        "function": {
 | 
			
		||||
          "type": "StdLib",
 | 
			
		||||
          "func": {
 | 
			
		||||
            "name": "line",
 | 
			
		||||
            "summary": "Draw a line.",
 | 
			
		||||
            "description": "",
 | 
			
		||||
            "tags": [],
 | 
			
		||||
            "args": [
 | 
			
		||||
              {
 | 
			
		||||
                "name": "data",
 | 
			
		||||
                "type": "LineData",
 | 
			
		||||
                "schema": {
 | 
			
		||||
                  "description": "Data to draw a line.",
 | 
			
		||||
                  "anyOf": [
 | 
			
		||||
                    {
 | 
			
		||||
                      "description": "A point with a tag.",
 | 
			
		||||
                      "type": "object",
 | 
			
		||||
                      "required": [
 | 
			
		||||
                        "tag",
 | 
			
		||||
                        "to"
 | 
			
		||||
                      ],
 | 
			
		||||
                      "properties": {
 | 
			
		||||
                        "tag": {
 | 
			
		||||
                          "description": "The tag.",
 | 
			
		||||
                          "type": "string"
 | 
			
		||||
                        },
 | 
			
		||||
                        "to": {
 | 
			
		||||
                          "description": "The to point.",
 | 
			
		||||
                          "type": "array",
 | 
			
		||||
                          "items": {
 | 
			
		||||
                            "type": "number",
 | 
			
		||||
                            "format": "double"
 | 
			
		||||
                          },
 | 
			
		||||
                          "maxItems": 2,
 | 
			
		||||
                          "minItems": 2
 | 
			
		||||
                        }
 | 
			
		||||
                      }
 | 
			
		||||
                    },
 | 
			
		||||
                    {
 | 
			
		||||
                      "description": "A point.",
 | 
			
		||||
                      "type": "array",
 | 
			
		||||
                      "items": {
 | 
			
		||||
                        "type": "number",
 | 
			
		||||
                        "format": "double"
 | 
			
		||||
                      },
 | 
			
		||||
                      "maxItems": 2,
 | 
			
		||||
                      "minItems": 2
 | 
			
		||||
                    }
 | 
			
		||||
                  ]
 | 
			
		||||
                },
 | 
			
		||||
                "required": true
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "name": "sketch_group",
 | 
			
		||||
                "type": "SketchGroup",
 | 
			
		||||
                "schema": {
 | 
			
		||||
                  "description": "A sketch group is a collection of paths.",
 | 
			
		||||
                  "type": "object",
 | 
			
		||||
                  "required": [
 | 
			
		||||
                    "__meta",
 | 
			
		||||
                    "id",
 | 
			
		||||
                    "position",
 | 
			
		||||
                    "rotation",
 | 
			
		||||
                    "start",
 | 
			
		||||
                    "value"
 | 
			
		||||
                  ],
 | 
			
		||||
                  "properties": {
 | 
			
		||||
                    "__meta": {
 | 
			
		||||
                      "description": "Metadata.",
 | 
			
		||||
                      "type": "array",
 | 
			
		||||
                      "items": {
 | 
			
		||||
                        "description": "Metadata.",
 | 
			
		||||
                        "type": "object",
 | 
			
		||||
                        "required": [
 | 
			
		||||
                          "sourceRange"
 | 
			
		||||
                        ],
 | 
			
		||||
                        "properties": {
 | 
			
		||||
                          "sourceRange": {
 | 
			
		||||
                            "description": "The source range.",
 | 
			
		||||
                            "type": "array",
 | 
			
		||||
                            "items": {
 | 
			
		||||
                              "type": "integer",
 | 
			
		||||
                              "format": "uint",
 | 
			
		||||
                              "minimum": 0.0
 | 
			
		||||
                            },
 | 
			
		||||
                            "maxItems": 2,
 | 
			
		||||
                            "minItems": 2
 | 
			
		||||
                          }
 | 
			
		||||
                        }
 | 
			
		||||
                      }
 | 
			
		||||
                    },
 | 
			
		||||
                    "id": {
 | 
			
		||||
                      "description": "The id of the sketch group.",
 | 
			
		||||
                      "type": "string",
 | 
			
		||||
                      "format": "uuid"
 | 
			
		||||
                    },
 | 
			
		||||
                    "planeId": {
 | 
			
		||||
                      "description": "The plane id of the sketch group.",
 | 
			
		||||
                      "type": "string",
 | 
			
		||||
                      "format": "uuid",
 | 
			
		||||
                      "nullable": true
 | 
			
		||||
                    },
 | 
			
		||||
                    "position": {
 | 
			
		||||
                      "description": "The position of the sketch group.",
 | 
			
		||||
                      "type": "array",
 | 
			
		||||
                      "items": {
 | 
			
		||||
                        "type": "number",
 | 
			
		||||
                        "format": "double"
 | 
			
		||||
                      },
 | 
			
		||||
                      "maxItems": 3,
 | 
			
		||||
                      "minItems": 3
 | 
			
		||||
                    },
 | 
			
		||||
                    "rotation": {
 | 
			
		||||
                      "description": "The rotation of the sketch group.",
 | 
			
		||||
                      "type": "array",
 | 
			
		||||
                      "items": {
 | 
			
		||||
                        "type": "number",
 | 
			
		||||
                        "format": "double"
 | 
			
		||||
                      },
 | 
			
		||||
                      "maxItems": 4,
 | 
			
		||||
                      "minItems": 4
 | 
			
		||||
                    },
 | 
			
		||||
                    "start": {
 | 
			
		||||
                      "description": "The starting path.",
 | 
			
		||||
                      "type": "object",
 | 
			
		||||
                      "required": [
 | 
			
		||||
                        "__geoMeta",
 | 
			
		||||
                        "from",
 | 
			
		||||
                        "name",
 | 
			
		||||
                        "to"
 | 
			
		||||
                      ],
 | 
			
		||||
                      "properties": {
 | 
			
		||||
                        "__geoMeta": {
 | 
			
		||||
                          "description": "Metadata.",
 | 
			
		||||
                          "type": "object",
 | 
			
		||||
                          "required": [
 | 
			
		||||
                            "id",
 | 
			
		||||
                            "sourceRange"
 | 
			
		||||
                          ],
 | 
			
		||||
                          "properties": {
 | 
			
		||||
                            "id": {
 | 
			
		||||
                              "description": "The id of the geometry.",
 | 
			
		||||
                              "type": "string",
 | 
			
		||||
                              "format": "uuid"
 | 
			
		||||
                            },
 | 
			
		||||
                            "sourceRange": {
 | 
			
		||||
                              "description": "The source range.",
 | 
			
		||||
                              "type": "array",
 | 
			
		||||
                              "items": {
 | 
			
		||||
                                "type": "integer",
 | 
			
		||||
                                "format": "uint",
 | 
			
		||||
                                "minimum": 0.0
 | 
			
		||||
                              },
 | 
			
		||||
                              "maxItems": 2,
 | 
			
		||||
                              "minItems": 2
 | 
			
		||||
                            }
 | 
			
		||||
                          }
 | 
			
		||||
                        },
 | 
			
		||||
                        "from": {
 | 
			
		||||
                          "description": "The from point.",
 | 
			
		||||
                          "type": "array",
 | 
			
		||||
                          "items": {
 | 
			
		||||
                            "type": "number",
 | 
			
		||||
                            "format": "double"
 | 
			
		||||
                          },
 | 
			
		||||
                          "maxItems": 2,
 | 
			
		||||
                          "minItems": 2
 | 
			
		||||
                        },
 | 
			
		||||
                        "name": {
 | 
			
		||||
                          "description": "The name of the path.",
 | 
			
		||||
                          "type": "string"
 | 
			
		||||
                        },
 | 
			
		||||
                        "to": {
 | 
			
		||||
                          "description": "The to point.",
 | 
			
		||||
                          "type": "array",
 | 
			
		||||
                          "items": {
 | 
			
		||||
                            "type": "number",
 | 
			
		||||
                            "format": "double"
 | 
			
		||||
                          },
 | 
			
		||||
                          "maxItems": 2,
 | 
			
		||||
                          "minItems": 2
 | 
			
		||||
                        }
 | 
			
		||||
                      }
 | 
			
		||||
                    },
 | 
			
		||||
                    "value": {
 | 
			
		||||
                      "description": "The paths in the sketch group.",
 | 
			
		||||
                      "type": "array",
 | 
			
		||||
                      "items": {
 | 
			
		||||
                        "description": "A path.",
 | 
			
		||||
                        "oneOf": [
 | 
			
		||||
                          {
 | 
			
		||||
                            "description": "A path that goes to a point.",
 | 
			
		||||
                            "type": "object",
 | 
			
		||||
                            "required": [
 | 
			
		||||
                              "__geoMeta",
 | 
			
		||||
                              "from",
 | 
			
		||||
                              "name",
 | 
			
		||||
                              "to",
 | 
			
		||||
                              "type"
 | 
			
		||||
                            ],
 | 
			
		||||
                            "properties": {
 | 
			
		||||
                              "__geoMeta": {
 | 
			
		||||
                                "description": "Metadata.",
 | 
			
		||||
                                "type": "object",
 | 
			
		||||
                                "required": [
 | 
			
		||||
                                  "id",
 | 
			
		||||
                                  "sourceRange"
 | 
			
		||||
                                ],
 | 
			
		||||
                                "properties": {
 | 
			
		||||
                                  "id": {
 | 
			
		||||
                                    "description": "The id of the geometry.",
 | 
			
		||||
                                    "type": "string",
 | 
			
		||||
                                    "format": "uuid"
 | 
			
		||||
                                  },
 | 
			
		||||
                                  "sourceRange": {
 | 
			
		||||
                                    "description": "The source range.",
 | 
			
		||||
                                    "type": "array",
 | 
			
		||||
                                    "items": {
 | 
			
		||||
                                      "type": "integer",
 | 
			
		||||
                                      "format": "uint",
 | 
			
		||||
                                      "minimum": 0.0
 | 
			
		||||
                                    },
 | 
			
		||||
                                    "maxItems": 2,
 | 
			
		||||
                                    "minItems": 2
 | 
			
		||||
                                  }
 | 
			
		||||
                                }
 | 
			
		||||
                              },
 | 
			
		||||
                              "from": {
 | 
			
		||||
                                "description": "The from point.",
 | 
			
		||||
                                "type": "array",
 | 
			
		||||
                                "items": {
 | 
			
		||||
                                  "type": "number",
 | 
			
		||||
                                  "format": "double"
 | 
			
		||||
                                },
 | 
			
		||||
                                "maxItems": 2,
 | 
			
		||||
                                "minItems": 2
 | 
			
		||||
                              },
 | 
			
		||||
                              "name": {
 | 
			
		||||
                                "description": "The name of the path.",
 | 
			
		||||
                                "type": "string"
 | 
			
		||||
                              },
 | 
			
		||||
                              "to": {
 | 
			
		||||
                                "description": "The to point.",
 | 
			
		||||
                                "type": "array",
 | 
			
		||||
                                "items": {
 | 
			
		||||
                                  "type": "number",
 | 
			
		||||
                                  "format": "double"
 | 
			
		||||
                                },
 | 
			
		||||
                                "maxItems": 2,
 | 
			
		||||
                                "minItems": 2
 | 
			
		||||
                              },
 | 
			
		||||
                              "type": {
 | 
			
		||||
                                "type": "string",
 | 
			
		||||
                                "enum": [
 | 
			
		||||
                                  "toPoint"
 | 
			
		||||
                                ]
 | 
			
		||||
                              }
 | 
			
		||||
                            }
 | 
			
		||||
                          },
 | 
			
		||||
                          {
 | 
			
		||||
                            "description": "A path that is horizontal.",
 | 
			
		||||
                            "type": "object",
 | 
			
		||||
                            "required": [
 | 
			
		||||
                              "__geoMeta",
 | 
			
		||||
                              "from",
 | 
			
		||||
                              "name",
 | 
			
		||||
                              "to",
 | 
			
		||||
                              "type",
 | 
			
		||||
                              "x"
 | 
			
		||||
                            ],
 | 
			
		||||
                            "properties": {
 | 
			
		||||
                              "__geoMeta": {
 | 
			
		||||
                                "description": "Metadata.",
 | 
			
		||||
                                "type": "object",
 | 
			
		||||
                                "required": [
 | 
			
		||||
                                  "id",
 | 
			
		||||
                                  "sourceRange"
 | 
			
		||||
                                ],
 | 
			
		||||
                                "properties": {
 | 
			
		||||
                                  "id": {
 | 
			
		||||
                                    "description": "The id of the geometry.",
 | 
			
		||||
                                    "type": "string",
 | 
			
		||||
                                    "format": "uuid"
 | 
			
		||||
                                  },
 | 
			
		||||
                                  "sourceRange": {
 | 
			
		||||
                                    "description": "The source range.",
 | 
			
		||||
                                    "type": "array",
 | 
			
		||||
                                    "items": {
 | 
			
		||||
                                      "type": "integer",
 | 
			
		||||
                                      "format": "uint",
 | 
			
		||||
                                      "minimum": 0.0
 | 
			
		||||
                                    },
 | 
			
		||||
                                    "maxItems": 2,
 | 
			
		||||
                                    "minItems": 2
 | 
			
		||||
                                  }
 | 
			
		||||
                                }
 | 
			
		||||
                              },
 | 
			
		||||
                              "from": {
 | 
			
		||||
                                "description": "The from point.",
 | 
			
		||||
                                "type": "array",
 | 
			
		||||
                                "items": {
 | 
			
		||||
                                  "type": "number",
 | 
			
		||||
                                  "format": "double"
 | 
			
		||||
                                },
 | 
			
		||||
                                "maxItems": 2,
 | 
			
		||||
                                "minItems": 2
 | 
			
		||||
                              },
 | 
			
		||||
                              "name": {
 | 
			
		||||
                                "description": "The name of the path.",
 | 
			
		||||
                                "type": "string"
 | 
			
		||||
                              },
 | 
			
		||||
                              "to": {
 | 
			
		||||
                                "description": "The to point.",
 | 
			
		||||
                                "type": "array",
 | 
			
		||||
                                "items": {
 | 
			
		||||
                                  "type": "number",
 | 
			
		||||
                                  "format": "double"
 | 
			
		||||
                                },
 | 
			
		||||
                                "maxItems": 2,
 | 
			
		||||
                                "minItems": 2
 | 
			
		||||
                              },
 | 
			
		||||
                              "type": {
 | 
			
		||||
                                "type": "string",
 | 
			
		||||
                                "enum": [
 | 
			
		||||
                                  "horizontal"
 | 
			
		||||
                                ]
 | 
			
		||||
                              },
 | 
			
		||||
                              "x": {
 | 
			
		||||
                                "description": "The x coordinate.",
 | 
			
		||||
                                "type": "number",
 | 
			
		||||
                                "format": "double"
 | 
			
		||||
                              }
 | 
			
		||||
                            }
 | 
			
		||||
                          },
 | 
			
		||||
                          {
 | 
			
		||||
                            "description": "An angled line to.",
 | 
			
		||||
                            "type": "object",
 | 
			
		||||
                            "required": [
 | 
			
		||||
                              "__geoMeta",
 | 
			
		||||
                              "from",
 | 
			
		||||
                              "name",
 | 
			
		||||
                              "to",
 | 
			
		||||
                              "type"
 | 
			
		||||
                            ],
 | 
			
		||||
                            "properties": {
 | 
			
		||||
                              "__geoMeta": {
 | 
			
		||||
                                "description": "Metadata.",
 | 
			
		||||
                                "type": "object",
 | 
			
		||||
                                "required": [
 | 
			
		||||
                                  "id",
 | 
			
		||||
                                  "sourceRange"
 | 
			
		||||
                                ],
 | 
			
		||||
                                "properties": {
 | 
			
		||||
                                  "id": {
 | 
			
		||||
                                    "description": "The id of the geometry.",
 | 
			
		||||
                                    "type": "string",
 | 
			
		||||
                                    "format": "uuid"
 | 
			
		||||
                                  },
 | 
			
		||||
                                  "sourceRange": {
 | 
			
		||||
                                    "description": "The source range.",
 | 
			
		||||
                                    "type": "array",
 | 
			
		||||
                                    "items": {
 | 
			
		||||
                                      "type": "integer",
 | 
			
		||||
                                      "format": "uint",
 | 
			
		||||
                                      "minimum": 0.0
 | 
			
		||||
                                    },
 | 
			
		||||
                                    "maxItems": 2,
 | 
			
		||||
                                    "minItems": 2
 | 
			
		||||
                                  }
 | 
			
		||||
                                }
 | 
			
		||||
                              },
 | 
			
		||||
                              "from": {
 | 
			
		||||
                                "description": "The from point.",
 | 
			
		||||
                                "type": "array",
 | 
			
		||||
                                "items": {
 | 
			
		||||
                                  "type": "number",
 | 
			
		||||
                                  "format": "double"
 | 
			
		||||
                                },
 | 
			
		||||
                                "maxItems": 2,
 | 
			
		||||
                                "minItems": 2
 | 
			
		||||
                              },
 | 
			
		||||
                              "name": {
 | 
			
		||||
                                "description": "The name of the path.",
 | 
			
		||||
                                "type": "string"
 | 
			
		||||
                              },
 | 
			
		||||
                              "to": {
 | 
			
		||||
                                "description": "The to point.",
 | 
			
		||||
                                "type": "array",
 | 
			
		||||
                                "items": {
 | 
			
		||||
                                  "type": "number",
 | 
			
		||||
                                  "format": "double"
 | 
			
		||||
                                },
 | 
			
		||||
                                "maxItems": 2,
 | 
			
		||||
                                "minItems": 2
 | 
			
		||||
                              },
 | 
			
		||||
                              "type": {
 | 
			
		||||
                                "type": "string",
 | 
			
		||||
                                "enum": [
 | 
			
		||||
                                  "angledLineTo"
 | 
			
		||||
                                ]
 | 
			
		||||
                              },
 | 
			
		||||
                              "x": {
 | 
			
		||||
                                "description": "The x coordinate.",
 | 
			
		||||
                                "type": "number",
 | 
			
		||||
                                "format": "double",
 | 
			
		||||
                                "nullable": true
 | 
			
		||||
                              },
 | 
			
		||||
                              "y": {
 | 
			
		||||
                                "description": "The y coordinate.",
 | 
			
		||||
                                "type": "number",
 | 
			
		||||
                                "format": "double",
 | 
			
		||||
                                "nullable": true
 | 
			
		||||
                              }
 | 
			
		||||
                            }
 | 
			
		||||
                          },
 | 
			
		||||
                          {
 | 
			
		||||
                            "description": "A base path.",
 | 
			
		||||
                            "type": "object",
 | 
			
		||||
                            "required": [
 | 
			
		||||
                              "__geoMeta",
 | 
			
		||||
                              "from",
 | 
			
		||||
                              "name",
 | 
			
		||||
                              "to",
 | 
			
		||||
                              "type"
 | 
			
		||||
                            ],
 | 
			
		||||
                            "properties": {
 | 
			
		||||
                              "__geoMeta": {
 | 
			
		||||
                                "description": "Metadata.",
 | 
			
		||||
                                "type": "object",
 | 
			
		||||
                                "required": [
 | 
			
		||||
                                  "id",
 | 
			
		||||
                                  "sourceRange"
 | 
			
		||||
                                ],
 | 
			
		||||
                                "properties": {
 | 
			
		||||
                                  "id": {
 | 
			
		||||
                                    "description": "The id of the geometry.",
 | 
			
		||||
                                    "type": "string",
 | 
			
		||||
                                    "format": "uuid"
 | 
			
		||||
                                  },
 | 
			
		||||
                                  "sourceRange": {
 | 
			
		||||
                                    "description": "The source range.",
 | 
			
		||||
                                    "type": "array",
 | 
			
		||||
                                    "items": {
 | 
			
		||||
                                      "type": "integer",
 | 
			
		||||
                                      "format": "uint",
 | 
			
		||||
                                      "minimum": 0.0
 | 
			
		||||
                                    },
 | 
			
		||||
                                    "maxItems": 2,
 | 
			
		||||
                                    "minItems": 2
 | 
			
		||||
                                  }
 | 
			
		||||
                                }
 | 
			
		||||
                              },
 | 
			
		||||
                              "from": {
 | 
			
		||||
                                "description": "The from point.",
 | 
			
		||||
                                "type": "array",
 | 
			
		||||
                                "items": {
 | 
			
		||||
                                  "type": "number",
 | 
			
		||||
                                  "format": "double"
 | 
			
		||||
                                },
 | 
			
		||||
                                "maxItems": 2,
 | 
			
		||||
                                "minItems": 2
 | 
			
		||||
                              },
 | 
			
		||||
                              "name": {
 | 
			
		||||
                                "description": "The name of the path.",
 | 
			
		||||
                                "type": "string"
 | 
			
		||||
                              },
 | 
			
		||||
                              "to": {
 | 
			
		||||
                                "description": "The to point.",
 | 
			
		||||
                                "type": "array",
 | 
			
		||||
                                "items": {
 | 
			
		||||
                                  "type": "number",
 | 
			
		||||
                                  "format": "double"
 | 
			
		||||
                                },
 | 
			
		||||
                                "maxItems": 2,
 | 
			
		||||
                                "minItems": 2
 | 
			
		||||
                              },
 | 
			
		||||
                              "type": {
 | 
			
		||||
                                "type": "string",
 | 
			
		||||
                                "enum": [
 | 
			
		||||
                                  "base"
 | 
			
		||||
                                ]
 | 
			
		||||
                              }
 | 
			
		||||
                            }
 | 
			
		||||
                          }
 | 
			
		||||
                        ]
 | 
			
		||||
                      }
 | 
			
		||||
                    }
 | 
			
		||||
                  }
 | 
			
		||||
                },
 | 
			
		||||
                "required": true
 | 
			
		||||
              }
 | 
			
		||||
            ],
 | 
			
		||||
            "returnValue": {
 | 
			
		||||
              "name": "",
 | 
			
		||||
              "type": "SketchGroup",
 | 
			
		||||
              "schema": {
 | 
			
		||||
                "description": "A sketch group is a collection of paths.",
 | 
			
		||||
                "type": "object",
 | 
			
		||||
                "required": [
 | 
			
		||||
                  "__meta",
 | 
			
		||||
                  "id",
 | 
			
		||||
                  "position",
 | 
			
		||||
                  "rotation",
 | 
			
		||||
                  "start",
 | 
			
		||||
                  "value"
 | 
			
		||||
                ],
 | 
			
		||||
                "properties": {
 | 
			
		||||
                  "__meta": {
 | 
			
		||||
                    "description": "Metadata.",
 | 
			
		||||
                    "type": "array",
 | 
			
		||||
                    "items": {
 | 
			
		||||
                      "description": "Metadata.",
 | 
			
		||||
                      "type": "object",
 | 
			
		||||
                      "required": [
 | 
			
		||||
                        "sourceRange"
 | 
			
		||||
                      ],
 | 
			
		||||
                      "properties": {
 | 
			
		||||
                        "sourceRange": {
 | 
			
		||||
                          "description": "The source range.",
 | 
			
		||||
                          "type": "array",
 | 
			
		||||
                          "items": {
 | 
			
		||||
                            "type": "integer",
 | 
			
		||||
                            "format": "uint",
 | 
			
		||||
                            "minimum": 0.0
 | 
			
		||||
                          },
 | 
			
		||||
                          "maxItems": 2,
 | 
			
		||||
                          "minItems": 2
 | 
			
		||||
                        }
 | 
			
		||||
                      }
 | 
			
		||||
                    }
 | 
			
		||||
                  },
 | 
			
		||||
                  "id": {
 | 
			
		||||
                    "description": "The id of the sketch group.",
 | 
			
		||||
                    "type": "string",
 | 
			
		||||
                    "format": "uuid"
 | 
			
		||||
                  },
 | 
			
		||||
                  "planeId": {
 | 
			
		||||
                    "description": "The plane id of the sketch group.",
 | 
			
		||||
                    "type": "string",
 | 
			
		||||
                    "format": "uuid",
 | 
			
		||||
                    "nullable": true
 | 
			
		||||
                  },
 | 
			
		||||
                  "position": {
 | 
			
		||||
                    "description": "The position of the sketch group.",
 | 
			
		||||
                    "type": "array",
 | 
			
		||||
                    "items": {
 | 
			
		||||
                      "type": "number",
 | 
			
		||||
                      "format": "double"
 | 
			
		||||
                    },
 | 
			
		||||
                    "maxItems": 3,
 | 
			
		||||
                    "minItems": 3
 | 
			
		||||
                  },
 | 
			
		||||
                  "rotation": {
 | 
			
		||||
                    "description": "The rotation of the sketch group.",
 | 
			
		||||
                    "type": "array",
 | 
			
		||||
                    "items": {
 | 
			
		||||
                      "type": "number",
 | 
			
		||||
                      "format": "double"
 | 
			
		||||
                    },
 | 
			
		||||
                    "maxItems": 4,
 | 
			
		||||
                    "minItems": 4
 | 
			
		||||
                  },
 | 
			
		||||
                  "start": {
 | 
			
		||||
                    "description": "The starting path.",
 | 
			
		||||
                    "type": "object",
 | 
			
		||||
                    "required": [
 | 
			
		||||
                      "__geoMeta",
 | 
			
		||||
                      "from",
 | 
			
		||||
                      "name",
 | 
			
		||||
                      "to"
 | 
			
		||||
                    ],
 | 
			
		||||
                    "properties": {
 | 
			
		||||
                      "__geoMeta": {
 | 
			
		||||
                        "description": "Metadata.",
 | 
			
		||||
                        "type": "object",
 | 
			
		||||
                        "required": [
 | 
			
		||||
                          "id",
 | 
			
		||||
                          "sourceRange"
 | 
			
		||||
                        ],
 | 
			
		||||
                        "properties": {
 | 
			
		||||
                          "id": {
 | 
			
		||||
                            "description": "The id of the geometry.",
 | 
			
		||||
                            "type": "string",
 | 
			
		||||
                            "format": "uuid"
 | 
			
		||||
                          },
 | 
			
		||||
                          "sourceRange": {
 | 
			
		||||
                            "description": "The source range.",
 | 
			
		||||
                            "type": "array",
 | 
			
		||||
                            "items": {
 | 
			
		||||
                              "type": "integer",
 | 
			
		||||
                              "format": "uint",
 | 
			
		||||
                              "minimum": 0.0
 | 
			
		||||
                            },
 | 
			
		||||
                            "maxItems": 2,
 | 
			
		||||
                            "minItems": 2
 | 
			
		||||
                          }
 | 
			
		||||
                        }
 | 
			
		||||
                      },
 | 
			
		||||
                      "from": {
 | 
			
		||||
                        "description": "The from point.",
 | 
			
		||||
                        "type": "array",
 | 
			
		||||
                        "items": {
 | 
			
		||||
                          "type": "number",
 | 
			
		||||
                          "format": "double"
 | 
			
		||||
                        },
 | 
			
		||||
                        "maxItems": 2,
 | 
			
		||||
                        "minItems": 2
 | 
			
		||||
                      },
 | 
			
		||||
                      "name": {
 | 
			
		||||
                        "description": "The name of the path.",
 | 
			
		||||
                        "type": "string"
 | 
			
		||||
                      },
 | 
			
		||||
                      "to": {
 | 
			
		||||
                        "description": "The to point.",
 | 
			
		||||
                        "type": "array",
 | 
			
		||||
                        "items": {
 | 
			
		||||
                          "type": "number",
 | 
			
		||||
                          "format": "double"
 | 
			
		||||
                        },
 | 
			
		||||
                        "maxItems": 2,
 | 
			
		||||
                        "minItems": 2
 | 
			
		||||
                      }
 | 
			
		||||
                    }
 | 
			
		||||
                  },
 | 
			
		||||
                  "value": {
 | 
			
		||||
                    "description": "The paths in the sketch group.",
 | 
			
		||||
                    "type": "array",
 | 
			
		||||
                    "items": {
 | 
			
		||||
                      "description": "A path.",
 | 
			
		||||
                      "oneOf": [
 | 
			
		||||
                        {
 | 
			
		||||
                          "description": "A path that goes to a point.",
 | 
			
		||||
                          "type": "object",
 | 
			
		||||
                          "required": [
 | 
			
		||||
                            "__geoMeta",
 | 
			
		||||
                            "from",
 | 
			
		||||
                            "name",
 | 
			
		||||
                            "to",
 | 
			
		||||
                            "type"
 | 
			
		||||
                          ],
 | 
			
		||||
                          "properties": {
 | 
			
		||||
                            "__geoMeta": {
 | 
			
		||||
                              "description": "Metadata.",
 | 
			
		||||
                              "type": "object",
 | 
			
		||||
                              "required": [
 | 
			
		||||
                                "id",
 | 
			
		||||
                                "sourceRange"
 | 
			
		||||
                              ],
 | 
			
		||||
                              "properties": {
 | 
			
		||||
                                "id": {
 | 
			
		||||
                                  "description": "The id of the geometry.",
 | 
			
		||||
                                  "type": "string",
 | 
			
		||||
                                  "format": "uuid"
 | 
			
		||||
                                },
 | 
			
		||||
                                "sourceRange": {
 | 
			
		||||
                                  "description": "The source range.",
 | 
			
		||||
                                  "type": "array",
 | 
			
		||||
                                  "items": {
 | 
			
		||||
                                    "type": "integer",
 | 
			
		||||
                                    "format": "uint",
 | 
			
		||||
                                    "minimum": 0.0
 | 
			
		||||
                                  },
 | 
			
		||||
                                  "maxItems": 2,
 | 
			
		||||
                                  "minItems": 2
 | 
			
		||||
                                }
 | 
			
		||||
                              }
 | 
			
		||||
                            },
 | 
			
		||||
                            "from": {
 | 
			
		||||
                              "description": "The from point.",
 | 
			
		||||
                              "type": "array",
 | 
			
		||||
                              "items": {
 | 
			
		||||
                                "type": "number",
 | 
			
		||||
                                "format": "double"
 | 
			
		||||
                              },
 | 
			
		||||
                              "maxItems": 2,
 | 
			
		||||
                              "minItems": 2
 | 
			
		||||
                            },
 | 
			
		||||
                            "name": {
 | 
			
		||||
                              "description": "The name of the path.",
 | 
			
		||||
                              "type": "string"
 | 
			
		||||
                            },
 | 
			
		||||
                            "to": {
 | 
			
		||||
                              "description": "The to point.",
 | 
			
		||||
                              "type": "array",
 | 
			
		||||
                              "items": {
 | 
			
		||||
                                "type": "number",
 | 
			
		||||
                                "format": "double"
 | 
			
		||||
                              },
 | 
			
		||||
                              "maxItems": 2,
 | 
			
		||||
                              "minItems": 2
 | 
			
		||||
                            },
 | 
			
		||||
                            "type": {
 | 
			
		||||
                              "type": "string",
 | 
			
		||||
                              "enum": [
 | 
			
		||||
                                "toPoint"
 | 
			
		||||
                              ]
 | 
			
		||||
                            }
 | 
			
		||||
                          }
 | 
			
		||||
                        },
 | 
			
		||||
                        {
 | 
			
		||||
                          "description": "A path that is horizontal.",
 | 
			
		||||
                          "type": "object",
 | 
			
		||||
                          "required": [
 | 
			
		||||
                            "__geoMeta",
 | 
			
		||||
                            "from",
 | 
			
		||||
                            "name",
 | 
			
		||||
                            "to",
 | 
			
		||||
                            "type",
 | 
			
		||||
                            "x"
 | 
			
		||||
                          ],
 | 
			
		||||
                          "properties": {
 | 
			
		||||
                            "__geoMeta": {
 | 
			
		||||
                              "description": "Metadata.",
 | 
			
		||||
                              "type": "object",
 | 
			
		||||
                              "required": [
 | 
			
		||||
                                "id",
 | 
			
		||||
                                "sourceRange"
 | 
			
		||||
                              ],
 | 
			
		||||
                              "properties": {
 | 
			
		||||
                                "id": {
 | 
			
		||||
                                  "description": "The id of the geometry.",
 | 
			
		||||
                                  "type": "string",
 | 
			
		||||
                                  "format": "uuid"
 | 
			
		||||
                                },
 | 
			
		||||
                                "sourceRange": {
 | 
			
		||||
                                  "description": "The source range.",
 | 
			
		||||
                                  "type": "array",
 | 
			
		||||
                                  "items": {
 | 
			
		||||
                                    "type": "integer",
 | 
			
		||||
                                    "format": "uint",
 | 
			
		||||
                                    "minimum": 0.0
 | 
			
		||||
                                  },
 | 
			
		||||
                                  "maxItems": 2,
 | 
			
		||||
                                  "minItems": 2
 | 
			
		||||
                                }
 | 
			
		||||
                              }
 | 
			
		||||
                            },
 | 
			
		||||
                            "from": {
 | 
			
		||||
                              "description": "The from point.",
 | 
			
		||||
                              "type": "array",
 | 
			
		||||
                              "items": {
 | 
			
		||||
                                "type": "number",
 | 
			
		||||
                                "format": "double"
 | 
			
		||||
                              },
 | 
			
		||||
                              "maxItems": 2,
 | 
			
		||||
                              "minItems": 2
 | 
			
		||||
                            },
 | 
			
		||||
                            "name": {
 | 
			
		||||
                              "description": "The name of the path.",
 | 
			
		||||
                              "type": "string"
 | 
			
		||||
                            },
 | 
			
		||||
                            "to": {
 | 
			
		||||
                              "description": "The to point.",
 | 
			
		||||
                              "type": "array",
 | 
			
		||||
                              "items": {
 | 
			
		||||
                                "type": "number",
 | 
			
		||||
                                "format": "double"
 | 
			
		||||
                              },
 | 
			
		||||
                              "maxItems": 2,
 | 
			
		||||
                              "minItems": 2
 | 
			
		||||
                            },
 | 
			
		||||
                            "type": {
 | 
			
		||||
                              "type": "string",
 | 
			
		||||
                              "enum": [
 | 
			
		||||
                                "horizontal"
 | 
			
		||||
                              ]
 | 
			
		||||
                            },
 | 
			
		||||
                            "x": {
 | 
			
		||||
                              "description": "The x coordinate.",
 | 
			
		||||
                              "type": "number",
 | 
			
		||||
                              "format": "double"
 | 
			
		||||
                            }
 | 
			
		||||
                          }
 | 
			
		||||
                        },
 | 
			
		||||
                        {
 | 
			
		||||
                          "description": "An angled line to.",
 | 
			
		||||
                          "type": "object",
 | 
			
		||||
                          "required": [
 | 
			
		||||
                            "__geoMeta",
 | 
			
		||||
                            "from",
 | 
			
		||||
                            "name",
 | 
			
		||||
                            "to",
 | 
			
		||||
                            "type"
 | 
			
		||||
                          ],
 | 
			
		||||
                          "properties": {
 | 
			
		||||
                            "__geoMeta": {
 | 
			
		||||
                              "description": "Metadata.",
 | 
			
		||||
                              "type": "object",
 | 
			
		||||
                              "required": [
 | 
			
		||||
                                "id",
 | 
			
		||||
                                "sourceRange"
 | 
			
		||||
                              ],
 | 
			
		||||
                              "properties": {
 | 
			
		||||
                                "id": {
 | 
			
		||||
                                  "description": "The id of the geometry.",
 | 
			
		||||
                                  "type": "string",
 | 
			
		||||
                                  "format": "uuid"
 | 
			
		||||
                                },
 | 
			
		||||
                                "sourceRange": {
 | 
			
		||||
                                  "description": "The source range.",
 | 
			
		||||
                                  "type": "array",
 | 
			
		||||
                                  "items": {
 | 
			
		||||
                                    "type": "integer",
 | 
			
		||||
                                    "format": "uint",
 | 
			
		||||
                                    "minimum": 0.0
 | 
			
		||||
                                  },
 | 
			
		||||
                                  "maxItems": 2,
 | 
			
		||||
                                  "minItems": 2
 | 
			
		||||
                                }
 | 
			
		||||
                              }
 | 
			
		||||
                            },
 | 
			
		||||
                            "from": {
 | 
			
		||||
                              "description": "The from point.",
 | 
			
		||||
                              "type": "array",
 | 
			
		||||
                              "items": {
 | 
			
		||||
                                "type": "number",
 | 
			
		||||
                                "format": "double"
 | 
			
		||||
                              },
 | 
			
		||||
                              "maxItems": 2,
 | 
			
		||||
                              "minItems": 2
 | 
			
		||||
                            },
 | 
			
		||||
                            "name": {
 | 
			
		||||
                              "description": "The name of the path.",
 | 
			
		||||
                              "type": "string"
 | 
			
		||||
                            },
 | 
			
		||||
                            "to": {
 | 
			
		||||
                              "description": "The to point.",
 | 
			
		||||
                              "type": "array",
 | 
			
		||||
                              "items": {
 | 
			
		||||
                                "type": "number",
 | 
			
		||||
                                "format": "double"
 | 
			
		||||
                              },
 | 
			
		||||
                              "maxItems": 2,
 | 
			
		||||
                              "minItems": 2
 | 
			
		||||
                            },
 | 
			
		||||
                            "type": {
 | 
			
		||||
                              "type": "string",
 | 
			
		||||
                              "enum": [
 | 
			
		||||
                                "angledLineTo"
 | 
			
		||||
                              ]
 | 
			
		||||
                            },
 | 
			
		||||
                            "x": {
 | 
			
		||||
                              "description": "The x coordinate.",
 | 
			
		||||
                              "type": "number",
 | 
			
		||||
                              "format": "double",
 | 
			
		||||
                              "nullable": true
 | 
			
		||||
                            },
 | 
			
		||||
                            "y": {
 | 
			
		||||
                              "description": "The y coordinate.",
 | 
			
		||||
                              "type": "number",
 | 
			
		||||
                              "format": "double",
 | 
			
		||||
                              "nullable": true
 | 
			
		||||
                            }
 | 
			
		||||
                          }
 | 
			
		||||
                        },
 | 
			
		||||
                        {
 | 
			
		||||
                          "description": "A base path.",
 | 
			
		||||
                          "type": "object",
 | 
			
		||||
                          "required": [
 | 
			
		||||
                            "__geoMeta",
 | 
			
		||||
                            "from",
 | 
			
		||||
                            "name",
 | 
			
		||||
                            "to",
 | 
			
		||||
                            "type"
 | 
			
		||||
                          ],
 | 
			
		||||
                          "properties": {
 | 
			
		||||
                            "__geoMeta": {
 | 
			
		||||
                              "description": "Metadata.",
 | 
			
		||||
                              "type": "object",
 | 
			
		||||
                              "required": [
 | 
			
		||||
                                "id",
 | 
			
		||||
                                "sourceRange"
 | 
			
		||||
                              ],
 | 
			
		||||
                              "properties": {
 | 
			
		||||
                                "id": {
 | 
			
		||||
                                  "description": "The id of the geometry.",
 | 
			
		||||
                                  "type": "string",
 | 
			
		||||
                                  "format": "uuid"
 | 
			
		||||
                                },
 | 
			
		||||
                                "sourceRange": {
 | 
			
		||||
                                  "description": "The source range.",
 | 
			
		||||
                                  "type": "array",
 | 
			
		||||
                                  "items": {
 | 
			
		||||
                                    "type": "integer",
 | 
			
		||||
                                    "format": "uint",
 | 
			
		||||
                                    "minimum": 0.0
 | 
			
		||||
                                  },
 | 
			
		||||
                                  "maxItems": 2,
 | 
			
		||||
                                  "minItems": 2
 | 
			
		||||
                                }
 | 
			
		||||
                              }
 | 
			
		||||
                            },
 | 
			
		||||
                            "from": {
 | 
			
		||||
                              "description": "The from point.",
 | 
			
		||||
                              "type": "array",
 | 
			
		||||
                              "items": {
 | 
			
		||||
                                "type": "number",
 | 
			
		||||
                                "format": "double"
 | 
			
		||||
                              },
 | 
			
		||||
                              "maxItems": 2,
 | 
			
		||||
                              "minItems": 2
 | 
			
		||||
                            },
 | 
			
		||||
                            "name": {
 | 
			
		||||
                              "description": "The name of the path.",
 | 
			
		||||
                              "type": "string"
 | 
			
		||||
                            },
 | 
			
		||||
                            "to": {
 | 
			
		||||
                              "description": "The to point.",
 | 
			
		||||
                              "type": "array",
 | 
			
		||||
                              "items": {
 | 
			
		||||
                                "type": "number",
 | 
			
		||||
                                "format": "double"
 | 
			
		||||
                              },
 | 
			
		||||
                              "maxItems": 2,
 | 
			
		||||
                              "minItems": 2
 | 
			
		||||
                            },
 | 
			
		||||
                            "type": {
 | 
			
		||||
                              "type": "string",
 | 
			
		||||
                              "enum": [
 | 
			
		||||
                                "base"
 | 
			
		||||
                              ]
 | 
			
		||||
                            }
 | 
			
		||||
                          }
 | 
			
		||||
                        }
 | 
			
		||||
                      ]
 | 
			
		||||
                    }
 | 
			
		||||
                  }
 | 
			
		||||
                }
 | 
			
		||||
              },
 | 
			
		||||
              "required": true
 | 
			
		||||
            },
 | 
			
		||||
            "unpublished": false,
 | 
			
		||||
            "deprecated": false
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "nonCodeMeta": {
 | 
			
		||||
    "nonCodeNodes": {},
 | 
			
		||||
    "start": []
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,169 @@
 | 
			
		||||
---
 | 
			
		||||
source: kcl/src/parser/parser_impl.rs
 | 
			
		||||
expression: actual
 | 
			
		||||
---
 | 
			
		||||
{
 | 
			
		||||
  "start": 0,
 | 
			
		||||
  "end": 36,
 | 
			
		||||
  "body": [
 | 
			
		||||
    {
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "start": 0,
 | 
			
		||||
      "end": 36,
 | 
			
		||||
      "declarations": [
 | 
			
		||||
        {
 | 
			
		||||
          "type": "VariableDeclarator",
 | 
			
		||||
          "start": 6,
 | 
			
		||||
          "end": 36,
 | 
			
		||||
          "id": {
 | 
			
		||||
            "type": "Identifier",
 | 
			
		||||
            "start": 6,
 | 
			
		||||
            "end": 11,
 | 
			
		||||
            "name": "myVar"
 | 
			
		||||
          },
 | 
			
		||||
          "init": {
 | 
			
		||||
            "type": "CallExpression",
 | 
			
		||||
            "type": "CallExpression",
 | 
			
		||||
            "start": 14,
 | 
			
		||||
            "end": 36,
 | 
			
		||||
            "callee": {
 | 
			
		||||
              "type": "Identifier",
 | 
			
		||||
              "start": 14,
 | 
			
		||||
              "end": 17,
 | 
			
		||||
              "name": "min"
 | 
			
		||||
            },
 | 
			
		||||
            "arguments": [
 | 
			
		||||
              {
 | 
			
		||||
                "type": "Literal",
 | 
			
		||||
                "type": "Literal",
 | 
			
		||||
                "start": 18,
 | 
			
		||||
                "end": 19,
 | 
			
		||||
                "value": 5,
 | 
			
		||||
                "raw": "5"
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "UnaryExpression",
 | 
			
		||||
                "type": "UnaryExpression",
 | 
			
		||||
                "start": 22,
 | 
			
		||||
                "end": 35,
 | 
			
		||||
                "operator": "-",
 | 
			
		||||
                "argument": {
 | 
			
		||||
                  "type": "CallExpression",
 | 
			
		||||
                  "type": "CallExpression",
 | 
			
		||||
                  "start": 23,
 | 
			
		||||
                  "end": 35,
 | 
			
		||||
                  "callee": {
 | 
			
		||||
                    "type": "Identifier",
 | 
			
		||||
                    "start": 23,
 | 
			
		||||
                    "end": 29,
 | 
			
		||||
                    "name": "legLen"
 | 
			
		||||
                  },
 | 
			
		||||
                  "arguments": [
 | 
			
		||||
                    {
 | 
			
		||||
                      "type": "Literal",
 | 
			
		||||
                      "type": "Literal",
 | 
			
		||||
                      "start": 30,
 | 
			
		||||
                      "end": 31,
 | 
			
		||||
                      "value": 5,
 | 
			
		||||
                      "raw": "5"
 | 
			
		||||
                    },
 | 
			
		||||
                    {
 | 
			
		||||
                      "type": "Literal",
 | 
			
		||||
                      "type": "Literal",
 | 
			
		||||
                      "start": 33,
 | 
			
		||||
                      "end": 34,
 | 
			
		||||
                      "value": 4,
 | 
			
		||||
                      "raw": "4"
 | 
			
		||||
                    }
 | 
			
		||||
                  ],
 | 
			
		||||
                  "optional": false,
 | 
			
		||||
                  "function": {
 | 
			
		||||
                    "type": "StdLib",
 | 
			
		||||
                    "func": {
 | 
			
		||||
                      "name": "legLen",
 | 
			
		||||
                      "summary": "Returns the length of the given leg.",
 | 
			
		||||
                      "description": "",
 | 
			
		||||
                      "tags": [],
 | 
			
		||||
                      "args": [
 | 
			
		||||
                        {
 | 
			
		||||
                          "name": "hypotenuse",
 | 
			
		||||
                          "type": "number",
 | 
			
		||||
                          "schema": {
 | 
			
		||||
                            "type": "number",
 | 
			
		||||
                            "format": "double"
 | 
			
		||||
                          },
 | 
			
		||||
                          "required": true
 | 
			
		||||
                        },
 | 
			
		||||
                        {
 | 
			
		||||
                          "name": "leg",
 | 
			
		||||
                          "type": "number",
 | 
			
		||||
                          "schema": {
 | 
			
		||||
                            "type": "number",
 | 
			
		||||
                            "format": "double"
 | 
			
		||||
                          },
 | 
			
		||||
                          "required": true
 | 
			
		||||
                        }
 | 
			
		||||
                      ],
 | 
			
		||||
                      "returnValue": {
 | 
			
		||||
                        "name": "",
 | 
			
		||||
                        "type": "number",
 | 
			
		||||
                        "schema": {
 | 
			
		||||
                          "type": "number",
 | 
			
		||||
                          "format": "double"
 | 
			
		||||
                        },
 | 
			
		||||
                        "required": true
 | 
			
		||||
                      },
 | 
			
		||||
                      "unpublished": false,
 | 
			
		||||
                      "deprecated": false
 | 
			
		||||
                    }
 | 
			
		||||
                  }
 | 
			
		||||
                }
 | 
			
		||||
              }
 | 
			
		||||
            ],
 | 
			
		||||
            "optional": false,
 | 
			
		||||
            "function": {
 | 
			
		||||
              "type": "StdLib",
 | 
			
		||||
              "func": {
 | 
			
		||||
                "name": "min",
 | 
			
		||||
                "summary": "Computes the minimum of the given arguments.",
 | 
			
		||||
                "description": "",
 | 
			
		||||
                "tags": [],
 | 
			
		||||
                "args": [
 | 
			
		||||
                  {
 | 
			
		||||
                    "name": "args",
 | 
			
		||||
                    "type": "[number]",
 | 
			
		||||
                    "schema": {
 | 
			
		||||
                      "type": "array",
 | 
			
		||||
                      "items": {
 | 
			
		||||
                        "type": "number",
 | 
			
		||||
                        "format": "double"
 | 
			
		||||
                      }
 | 
			
		||||
                    },
 | 
			
		||||
                    "required": true
 | 
			
		||||
                  }
 | 
			
		||||
                ],
 | 
			
		||||
                "returnValue": {
 | 
			
		||||
                  "name": "",
 | 
			
		||||
                  "type": "number",
 | 
			
		||||
                  "schema": {
 | 
			
		||||
                    "type": "number",
 | 
			
		||||
                    "format": "double"
 | 
			
		||||
                  },
 | 
			
		||||
                  "required": true
 | 
			
		||||
                },
 | 
			
		||||
                "unpublished": false,
 | 
			
		||||
                "deprecated": false
 | 
			
		||||
              }
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "kind": "const"
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "nonCodeMeta": {
 | 
			
		||||
    "nonCodeNodes": {},
 | 
			
		||||
    "start": []
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,169 @@
 | 
			
		||||
---
 | 
			
		||||
source: kcl/src/parser/parser_impl.rs
 | 
			
		||||
expression: actual
 | 
			
		||||
---
 | 
			
		||||
{
 | 
			
		||||
  "start": 0,
 | 
			
		||||
  "end": 35,
 | 
			
		||||
  "body": [
 | 
			
		||||
    {
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "start": 0,
 | 
			
		||||
      "end": 35,
 | 
			
		||||
      "declarations": [
 | 
			
		||||
        {
 | 
			
		||||
          "type": "VariableDeclarator",
 | 
			
		||||
          "start": 6,
 | 
			
		||||
          "end": 35,
 | 
			
		||||
          "id": {
 | 
			
		||||
            "type": "Identifier",
 | 
			
		||||
            "start": 6,
 | 
			
		||||
            "end": 11,
 | 
			
		||||
            "name": "myVar"
 | 
			
		||||
          },
 | 
			
		||||
          "init": {
 | 
			
		||||
            "type": "CallExpression",
 | 
			
		||||
            "type": "CallExpression",
 | 
			
		||||
            "start": 14,
 | 
			
		||||
            "end": 35,
 | 
			
		||||
            "callee": {
 | 
			
		||||
              "type": "Identifier",
 | 
			
		||||
              "start": 14,
 | 
			
		||||
              "end": 17,
 | 
			
		||||
              "name": "min"
 | 
			
		||||
            },
 | 
			
		||||
            "arguments": [
 | 
			
		||||
              {
 | 
			
		||||
                "type": "UnaryExpression",
 | 
			
		||||
                "type": "UnaryExpression",
 | 
			
		||||
                "start": 18,
 | 
			
		||||
                "end": 31,
 | 
			
		||||
                "operator": "-",
 | 
			
		||||
                "argument": {
 | 
			
		||||
                  "type": "CallExpression",
 | 
			
		||||
                  "type": "CallExpression",
 | 
			
		||||
                  "start": 19,
 | 
			
		||||
                  "end": 31,
 | 
			
		||||
                  "callee": {
 | 
			
		||||
                    "type": "Identifier",
 | 
			
		||||
                    "start": 19,
 | 
			
		||||
                    "end": 25,
 | 
			
		||||
                    "name": "legLen"
 | 
			
		||||
                  },
 | 
			
		||||
                  "arguments": [
 | 
			
		||||
                    {
 | 
			
		||||
                      "type": "Literal",
 | 
			
		||||
                      "type": "Literal",
 | 
			
		||||
                      "start": 26,
 | 
			
		||||
                      "end": 27,
 | 
			
		||||
                      "value": 5,
 | 
			
		||||
                      "raw": "5"
 | 
			
		||||
                    },
 | 
			
		||||
                    {
 | 
			
		||||
                      "type": "Literal",
 | 
			
		||||
                      "type": "Literal",
 | 
			
		||||
                      "start": 29,
 | 
			
		||||
                      "end": 30,
 | 
			
		||||
                      "value": 4,
 | 
			
		||||
                      "raw": "4"
 | 
			
		||||
                    }
 | 
			
		||||
                  ],
 | 
			
		||||
                  "optional": false,
 | 
			
		||||
                  "function": {
 | 
			
		||||
                    "type": "StdLib",
 | 
			
		||||
                    "func": {
 | 
			
		||||
                      "name": "legLen",
 | 
			
		||||
                      "summary": "Returns the length of the given leg.",
 | 
			
		||||
                      "description": "",
 | 
			
		||||
                      "tags": [],
 | 
			
		||||
                      "args": [
 | 
			
		||||
                        {
 | 
			
		||||
                          "name": "hypotenuse",
 | 
			
		||||
                          "type": "number",
 | 
			
		||||
                          "schema": {
 | 
			
		||||
                            "type": "number",
 | 
			
		||||
                            "format": "double"
 | 
			
		||||
                          },
 | 
			
		||||
                          "required": true
 | 
			
		||||
                        },
 | 
			
		||||
                        {
 | 
			
		||||
                          "name": "leg",
 | 
			
		||||
                          "type": "number",
 | 
			
		||||
                          "schema": {
 | 
			
		||||
                            "type": "number",
 | 
			
		||||
                            "format": "double"
 | 
			
		||||
                          },
 | 
			
		||||
                          "required": true
 | 
			
		||||
                        }
 | 
			
		||||
                      ],
 | 
			
		||||
                      "returnValue": {
 | 
			
		||||
                        "name": "",
 | 
			
		||||
                        "type": "number",
 | 
			
		||||
                        "schema": {
 | 
			
		||||
                          "type": "number",
 | 
			
		||||
                          "format": "double"
 | 
			
		||||
                        },
 | 
			
		||||
                        "required": true
 | 
			
		||||
                      },
 | 
			
		||||
                      "unpublished": false,
 | 
			
		||||
                      "deprecated": false
 | 
			
		||||
                    }
 | 
			
		||||
                  }
 | 
			
		||||
                }
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "Literal",
 | 
			
		||||
                "type": "Literal",
 | 
			
		||||
                "start": 33,
 | 
			
		||||
                "end": 34,
 | 
			
		||||
                "value": 5,
 | 
			
		||||
                "raw": "5"
 | 
			
		||||
              }
 | 
			
		||||
            ],
 | 
			
		||||
            "optional": false,
 | 
			
		||||
            "function": {
 | 
			
		||||
              "type": "StdLib",
 | 
			
		||||
              "func": {
 | 
			
		||||
                "name": "min",
 | 
			
		||||
                "summary": "Computes the minimum of the given arguments.",
 | 
			
		||||
                "description": "",
 | 
			
		||||
                "tags": [],
 | 
			
		||||
                "args": [
 | 
			
		||||
                  {
 | 
			
		||||
                    "name": "args",
 | 
			
		||||
                    "type": "[number]",
 | 
			
		||||
                    "schema": {
 | 
			
		||||
                      "type": "array",
 | 
			
		||||
                      "items": {
 | 
			
		||||
                        "type": "number",
 | 
			
		||||
                        "format": "double"
 | 
			
		||||
                      }
 | 
			
		||||
                    },
 | 
			
		||||
                    "required": true
 | 
			
		||||
                  }
 | 
			
		||||
                ],
 | 
			
		||||
                "returnValue": {
 | 
			
		||||
                  "name": "",
 | 
			
		||||
                  "type": "number",
 | 
			
		||||
                  "schema": {
 | 
			
		||||
                    "type": "number",
 | 
			
		||||
                    "format": "double"
 | 
			
		||||
                  },
 | 
			
		||||
                  "required": true
 | 
			
		||||
                },
 | 
			
		||||
                "unpublished": false,
 | 
			
		||||
                "deprecated": false
 | 
			
		||||
              }
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "kind": "const"
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "nonCodeMeta": {
 | 
			
		||||
    "nonCodeNodes": {},
 | 
			
		||||
    "start": []
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,101 @@
 | 
			
		||||
---
 | 
			
		||||
source: kcl/src/parser/parser_impl.rs
 | 
			
		||||
expression: actual
 | 
			
		||||
---
 | 
			
		||||
{
 | 
			
		||||
  "start": 0,
 | 
			
		||||
  "end": 36,
 | 
			
		||||
  "body": [
 | 
			
		||||
    {
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "start": 0,
 | 
			
		||||
      "end": 36,
 | 
			
		||||
      "declarations": [
 | 
			
		||||
        {
 | 
			
		||||
          "type": "VariableDeclarator",
 | 
			
		||||
          "start": 6,
 | 
			
		||||
          "end": 36,
 | 
			
		||||
          "id": {
 | 
			
		||||
            "type": "Identifier",
 | 
			
		||||
            "start": 6,
 | 
			
		||||
            "end": 11,
 | 
			
		||||
            "name": "myVar"
 | 
			
		||||
          },
 | 
			
		||||
          "init": {
 | 
			
		||||
            "type": "PipeExpression",
 | 
			
		||||
            "type": "PipeExpression",
 | 
			
		||||
            "start": 14,
 | 
			
		||||
            "end": 36,
 | 
			
		||||
            "body": [
 | 
			
		||||
              {
 | 
			
		||||
                "type": "BinaryExpression",
 | 
			
		||||
                "type": "BinaryExpression",
 | 
			
		||||
                "start": 14,
 | 
			
		||||
                "end": 19,
 | 
			
		||||
                "operator": "+",
 | 
			
		||||
                "left": {
 | 
			
		||||
                  "type": "Literal",
 | 
			
		||||
                  "type": "Literal",
 | 
			
		||||
                  "start": 14,
 | 
			
		||||
                  "end": 15,
 | 
			
		||||
                  "value": 5,
 | 
			
		||||
                  "raw": "5"
 | 
			
		||||
                },
 | 
			
		||||
                "right": {
 | 
			
		||||
                  "type": "Literal",
 | 
			
		||||
                  "type": "Literal",
 | 
			
		||||
                  "start": 18,
 | 
			
		||||
                  "end": 19,
 | 
			
		||||
                  "value": 6,
 | 
			
		||||
                  "raw": "6"
 | 
			
		||||
                }
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "CallExpression",
 | 
			
		||||
                "type": "CallExpression",
 | 
			
		||||
                "start": 23,
 | 
			
		||||
                "end": 36,
 | 
			
		||||
                "callee": {
 | 
			
		||||
                  "type": "Identifier",
 | 
			
		||||
                  "start": 23,
 | 
			
		||||
                  "end": 29,
 | 
			
		||||
                  "name": "myFunc"
 | 
			
		||||
                },
 | 
			
		||||
                "arguments": [
 | 
			
		||||
                  {
 | 
			
		||||
                    "type": "Literal",
 | 
			
		||||
                    "type": "Literal",
 | 
			
		||||
                    "start": 30,
 | 
			
		||||
                    "end": 32,
 | 
			
		||||
                    "value": 45,
 | 
			
		||||
                    "raw": "45"
 | 
			
		||||
                  },
 | 
			
		||||
                  {
 | 
			
		||||
                    "type": "PipeSubstitution",
 | 
			
		||||
                    "type": "PipeSubstitution",
 | 
			
		||||
                    "start": 34,
 | 
			
		||||
                    "end": 35
 | 
			
		||||
                  }
 | 
			
		||||
                ],
 | 
			
		||||
                "optional": false,
 | 
			
		||||
                "function": {
 | 
			
		||||
                  "type": "InMemory"
 | 
			
		||||
                }
 | 
			
		||||
              }
 | 
			
		||||
            ],
 | 
			
		||||
            "nonCodeMeta": {
 | 
			
		||||
              "nonCodeNodes": {},
 | 
			
		||||
              "start": []
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "kind": "const"
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "nonCodeMeta": {
 | 
			
		||||
    "nonCodeNodes": {},
 | 
			
		||||
    "start": []
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,62 @@
 | 
			
		||||
---
 | 
			
		||||
source: kcl/src/parser/parser_impl.rs
 | 
			
		||||
expression: actual
 | 
			
		||||
---
 | 
			
		||||
{
 | 
			
		||||
  "start": 0,
 | 
			
		||||
  "end": 27,
 | 
			
		||||
  "body": [
 | 
			
		||||
    {
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "start": 0,
 | 
			
		||||
      "end": 27,
 | 
			
		||||
      "declarations": [
 | 
			
		||||
        {
 | 
			
		||||
          "type": "VariableDeclarator",
 | 
			
		||||
          "start": 6,
 | 
			
		||||
          "end": 27,
 | 
			
		||||
          "id": {
 | 
			
		||||
            "type": "Identifier",
 | 
			
		||||
            "start": 6,
 | 
			
		||||
            "end": 7,
 | 
			
		||||
            "name": "x"
 | 
			
		||||
          },
 | 
			
		||||
          "init": {
 | 
			
		||||
            "type": "BinaryExpression",
 | 
			
		||||
            "type": "BinaryExpression",
 | 
			
		||||
            "start": 10,
 | 
			
		||||
            "end": 27,
 | 
			
		||||
            "operator": "+",
 | 
			
		||||
            "left": {
 | 
			
		||||
              "type": "UnaryExpression",
 | 
			
		||||
              "type": "UnaryExpression",
 | 
			
		||||
              "start": 10,
 | 
			
		||||
              "end": 15,
 | 
			
		||||
              "operator": "-",
 | 
			
		||||
              "argument": {
 | 
			
		||||
                "type": "Identifier",
 | 
			
		||||
                "type": "Identifier",
 | 
			
		||||
                "start": 11,
 | 
			
		||||
                "end": 15,
 | 
			
		||||
                "name": "leg2"
 | 
			
		||||
              }
 | 
			
		||||
            },
 | 
			
		||||
            "right": {
 | 
			
		||||
              "type": "Identifier",
 | 
			
		||||
              "type": "Identifier",
 | 
			
		||||
              "start": 18,
 | 
			
		||||
              "end": 27,
 | 
			
		||||
              "name": "thickness"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "kind": "const"
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "nonCodeMeta": {
 | 
			
		||||
    "nonCodeNodes": {},
 | 
			
		||||
    "start": []
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,72 @@
 | 
			
		||||
---
 | 
			
		||||
source: kcl/src/parser/parser_impl.rs
 | 
			
		||||
expression: actual
 | 
			
		||||
---
 | 
			
		||||
{
 | 
			
		||||
  "start": 0,
 | 
			
		||||
  "end": 18,
 | 
			
		||||
  "body": [
 | 
			
		||||
    {
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "start": 0,
 | 
			
		||||
      "end": 18,
 | 
			
		||||
      "declarations": [
 | 
			
		||||
        {
 | 
			
		||||
          "type": "VariableDeclarator",
 | 
			
		||||
          "start": 4,
 | 
			
		||||
          "end": 18,
 | 
			
		||||
          "id": {
 | 
			
		||||
            "type": "Identifier",
 | 
			
		||||
            "start": 4,
 | 
			
		||||
            "end": 5,
 | 
			
		||||
            "name": "x"
 | 
			
		||||
          },
 | 
			
		||||
          "init": {
 | 
			
		||||
            "type": "BinaryExpression",
 | 
			
		||||
            "type": "BinaryExpression",
 | 
			
		||||
            "start": 8,
 | 
			
		||||
            "end": 18,
 | 
			
		||||
            "operator": "*",
 | 
			
		||||
            "left": {
 | 
			
		||||
              "type": "Literal",
 | 
			
		||||
              "type": "Literal",
 | 
			
		||||
              "start": 8,
 | 
			
		||||
              "end": 9,
 | 
			
		||||
              "value": 1,
 | 
			
		||||
              "raw": "1"
 | 
			
		||||
            },
 | 
			
		||||
            "right": {
 | 
			
		||||
              "type": "BinaryExpression",
 | 
			
		||||
              "type": "BinaryExpression",
 | 
			
		||||
              "start": 13,
 | 
			
		||||
              "end": 18,
 | 
			
		||||
              "operator": "-",
 | 
			
		||||
              "left": {
 | 
			
		||||
                "type": "Literal",
 | 
			
		||||
                "type": "Literal",
 | 
			
		||||
                "start": 13,
 | 
			
		||||
                "end": 14,
 | 
			
		||||
                "value": 3,
 | 
			
		||||
                "raw": "3"
 | 
			
		||||
              },
 | 
			
		||||
              "right": {
 | 
			
		||||
                "type": "Literal",
 | 
			
		||||
                "type": "Literal",
 | 
			
		||||
                "start": 17,
 | 
			
		||||
                "end": 18,
 | 
			
		||||
                "value": 4,
 | 
			
		||||
                "raw": "4"
 | 
			
		||||
              }
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "kind": "let"
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "nonCodeMeta": {
 | 
			
		||||
    "nonCodeNodes": {},
 | 
			
		||||
    "start": []
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,55 @@
 | 
			
		||||
---
 | 
			
		||||
source: kcl/src/parser/parser_impl.rs
 | 
			
		||||
expression: actual
 | 
			
		||||
---
 | 
			
		||||
{
 | 
			
		||||
  "start": 0,
 | 
			
		||||
  "end": 40,
 | 
			
		||||
  "body": [
 | 
			
		||||
    {
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "start": 0,
 | 
			
		||||
      "end": 11,
 | 
			
		||||
      "declarations": [
 | 
			
		||||
        {
 | 
			
		||||
          "type": "VariableDeclarator",
 | 
			
		||||
          "start": 6,
 | 
			
		||||
          "end": 11,
 | 
			
		||||
          "id": {
 | 
			
		||||
            "type": "Identifier",
 | 
			
		||||
            "start": 6,
 | 
			
		||||
            "end": 7,
 | 
			
		||||
            "name": "x"
 | 
			
		||||
          },
 | 
			
		||||
          "init": {
 | 
			
		||||
            "type": "Literal",
 | 
			
		||||
            "type": "Literal",
 | 
			
		||||
            "start": 10,
 | 
			
		||||
            "end": 11,
 | 
			
		||||
            "value": 1,
 | 
			
		||||
            "raw": "1"
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "kind": "const"
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "nonCodeMeta": {
 | 
			
		||||
    "nonCodeNodes": {
 | 
			
		||||
      "0": [
 | 
			
		||||
        {
 | 
			
		||||
          "type": "NonCodeNode",
 | 
			
		||||
          "start": 11,
 | 
			
		||||
          "end": 40,
 | 
			
		||||
          "value": {
 | 
			
		||||
            "type": "inlineComment",
 | 
			
		||||
            "value": "this is an inline comment",
 | 
			
		||||
            "style": "line"
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      ]
 | 
			
		||||
    },
 | 
			
		||||
    "start": []
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,77 @@
 | 
			
		||||
---
 | 
			
		||||
source: kcl/src/parser/parser_impl.rs
 | 
			
		||||
expression: actual
 | 
			
		||||
---
 | 
			
		||||
{
 | 
			
		||||
  "start": 0,
 | 
			
		||||
  "end": 58,
 | 
			
		||||
  "body": [
 | 
			
		||||
    {
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "start": 0,
 | 
			
		||||
      "end": 58,
 | 
			
		||||
      "declarations": [
 | 
			
		||||
        {
 | 
			
		||||
          "type": "VariableDeclarator",
 | 
			
		||||
          "start": 3,
 | 
			
		||||
          "end": 58,
 | 
			
		||||
          "id": {
 | 
			
		||||
            "type": "Identifier",
 | 
			
		||||
            "start": 3,
 | 
			
		||||
            "end": 4,
 | 
			
		||||
            "name": "x"
 | 
			
		||||
          },
 | 
			
		||||
          "init": {
 | 
			
		||||
            "type": "FunctionExpression",
 | 
			
		||||
            "type": "FunctionExpression",
 | 
			
		||||
            "start": 7,
 | 
			
		||||
            "end": 58,
 | 
			
		||||
            "params": [],
 | 
			
		||||
            "body": {
 | 
			
		||||
              "start": 13,
 | 
			
		||||
              "end": 58,
 | 
			
		||||
              "body": [
 | 
			
		||||
                {
 | 
			
		||||
                  "type": "ReturnStatement",
 | 
			
		||||
                  "type": "ReturnStatement",
 | 
			
		||||
                  "start": 23,
 | 
			
		||||
                  "end": 32,
 | 
			
		||||
                  "argument": {
 | 
			
		||||
                    "type": "Identifier",
 | 
			
		||||
                    "type": "Identifier",
 | 
			
		||||
                    "start": 30,
 | 
			
		||||
                    "end": 32,
 | 
			
		||||
                    "name": "sg"
 | 
			
		||||
                  }
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                  "type": "ReturnStatement",
 | 
			
		||||
                  "type": "ReturnStatement",
 | 
			
		||||
                  "start": 41,
 | 
			
		||||
                  "end": 50,
 | 
			
		||||
                  "argument": {
 | 
			
		||||
                    "type": "Identifier",
 | 
			
		||||
                    "type": "Identifier",
 | 
			
		||||
                    "start": 48,
 | 
			
		||||
                    "end": 50,
 | 
			
		||||
                    "name": "sg"
 | 
			
		||||
                  }
 | 
			
		||||
                }
 | 
			
		||||
              ],
 | 
			
		||||
              "nonCodeMeta": {
 | 
			
		||||
                "nonCodeNodes": {},
 | 
			
		||||
                "start": []
 | 
			
		||||
              }
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "kind": "fn"
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "nonCodeMeta": {
 | 
			
		||||
    "nonCodeNodes": {},
 | 
			
		||||
    "start": []
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,136 @@
 | 
			
		||||
---
 | 
			
		||||
source: kcl/src/parser/parser_impl.rs
 | 
			
		||||
expression: actual
 | 
			
		||||
---
 | 
			
		||||
{
 | 
			
		||||
  "start": 0,
 | 
			
		||||
  "end": 55,
 | 
			
		||||
  "body": [
 | 
			
		||||
    {
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "start": 0,
 | 
			
		||||
      "end": 26,
 | 
			
		||||
      "declarations": [
 | 
			
		||||
        {
 | 
			
		||||
          "type": "VariableDeclarator",
 | 
			
		||||
          "start": 6,
 | 
			
		||||
          "end": 26,
 | 
			
		||||
          "id": {
 | 
			
		||||
            "type": "Identifier",
 | 
			
		||||
            "start": 6,
 | 
			
		||||
            "end": 9,
 | 
			
		||||
            "name": "obj"
 | 
			
		||||
          },
 | 
			
		||||
          "init": {
 | 
			
		||||
            "type": "ObjectExpression",
 | 
			
		||||
            "type": "ObjectExpression",
 | 
			
		||||
            "start": 12,
 | 
			
		||||
            "end": 26,
 | 
			
		||||
            "properties": [
 | 
			
		||||
              {
 | 
			
		||||
                "type": "ObjectProperty",
 | 
			
		||||
                "start": 14,
 | 
			
		||||
                "end": 18,
 | 
			
		||||
                "key": {
 | 
			
		||||
                  "type": "Identifier",
 | 
			
		||||
                  "start": 14,
 | 
			
		||||
                  "end": 15,
 | 
			
		||||
                  "name": "a"
 | 
			
		||||
                },
 | 
			
		||||
                "value": {
 | 
			
		||||
                  "type": "Literal",
 | 
			
		||||
                  "type": "Literal",
 | 
			
		||||
                  "start": 17,
 | 
			
		||||
                  "end": 18,
 | 
			
		||||
                  "value": 1,
 | 
			
		||||
                  "raw": "1"
 | 
			
		||||
                }
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "ObjectProperty",
 | 
			
		||||
                "start": 20,
 | 
			
		||||
                "end": 24,
 | 
			
		||||
                "key": {
 | 
			
		||||
                  "type": "Identifier",
 | 
			
		||||
                  "start": 20,
 | 
			
		||||
                  "end": 21,
 | 
			
		||||
                  "name": "b"
 | 
			
		||||
                },
 | 
			
		||||
                "value": {
 | 
			
		||||
                  "type": "Literal",
 | 
			
		||||
                  "type": "Literal",
 | 
			
		||||
                  "start": 23,
 | 
			
		||||
                  "end": 24,
 | 
			
		||||
                  "value": 2,
 | 
			
		||||
                  "raw": "2"
 | 
			
		||||
                }
 | 
			
		||||
              }
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "kind": "const"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "start": 31,
 | 
			
		||||
      "end": 55,
 | 
			
		||||
      "declarations": [
 | 
			
		||||
        {
 | 
			
		||||
          "type": "VariableDeclarator",
 | 
			
		||||
          "start": 37,
 | 
			
		||||
          "end": 55,
 | 
			
		||||
          "id": {
 | 
			
		||||
            "type": "Identifier",
 | 
			
		||||
            "start": 37,
 | 
			
		||||
            "end": 43,
 | 
			
		||||
            "name": "height"
 | 
			
		||||
          },
 | 
			
		||||
          "init": {
 | 
			
		||||
            "type": "BinaryExpression",
 | 
			
		||||
            "type": "BinaryExpression",
 | 
			
		||||
            "start": 46,
 | 
			
		||||
            "end": 55,
 | 
			
		||||
            "operator": "-",
 | 
			
		||||
            "left": {
 | 
			
		||||
              "type": "Literal",
 | 
			
		||||
              "type": "Literal",
 | 
			
		||||
              "start": 46,
 | 
			
		||||
              "end": 47,
 | 
			
		||||
              "value": 1,
 | 
			
		||||
              "raw": "1"
 | 
			
		||||
            },
 | 
			
		||||
            "right": {
 | 
			
		||||
              "type": "MemberExpression",
 | 
			
		||||
              "type": "MemberExpression",
 | 
			
		||||
              "start": 50,
 | 
			
		||||
              "end": 55,
 | 
			
		||||
              "object": {
 | 
			
		||||
                "type": "Identifier",
 | 
			
		||||
                "type": "Identifier",
 | 
			
		||||
                "start": 50,
 | 
			
		||||
                "end": 53,
 | 
			
		||||
                "name": "obj"
 | 
			
		||||
              },
 | 
			
		||||
              "property": {
 | 
			
		||||
                "type": "Identifier",
 | 
			
		||||
                "type": "Identifier",
 | 
			
		||||
                "start": 54,
 | 
			
		||||
                "end": 55,
 | 
			
		||||
                "name": "a"
 | 
			
		||||
              },
 | 
			
		||||
              "computed": false
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "kind": "const"
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "nonCodeMeta": {
 | 
			
		||||
    "nonCodeNodes": {},
 | 
			
		||||
    "start": []
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,137 @@
 | 
			
		||||
---
 | 
			
		||||
source: kcl/src/parser/parser_impl.rs
 | 
			
		||||
expression: actual
 | 
			
		||||
---
 | 
			
		||||
{
 | 
			
		||||
  "start": 0,
 | 
			
		||||
  "end": 59,
 | 
			
		||||
  "body": [
 | 
			
		||||
    {
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "start": 0,
 | 
			
		||||
      "end": 26,
 | 
			
		||||
      "declarations": [
 | 
			
		||||
        {
 | 
			
		||||
          "type": "VariableDeclarator",
 | 
			
		||||
          "start": 6,
 | 
			
		||||
          "end": 26,
 | 
			
		||||
          "id": {
 | 
			
		||||
            "type": "Identifier",
 | 
			
		||||
            "start": 6,
 | 
			
		||||
            "end": 9,
 | 
			
		||||
            "name": "obj"
 | 
			
		||||
          },
 | 
			
		||||
          "init": {
 | 
			
		||||
            "type": "ObjectExpression",
 | 
			
		||||
            "type": "ObjectExpression",
 | 
			
		||||
            "start": 12,
 | 
			
		||||
            "end": 26,
 | 
			
		||||
            "properties": [
 | 
			
		||||
              {
 | 
			
		||||
                "type": "ObjectProperty",
 | 
			
		||||
                "start": 14,
 | 
			
		||||
                "end": 18,
 | 
			
		||||
                "key": {
 | 
			
		||||
                  "type": "Identifier",
 | 
			
		||||
                  "start": 14,
 | 
			
		||||
                  "end": 15,
 | 
			
		||||
                  "name": "a"
 | 
			
		||||
                },
 | 
			
		||||
                "value": {
 | 
			
		||||
                  "type": "Literal",
 | 
			
		||||
                  "type": "Literal",
 | 
			
		||||
                  "start": 17,
 | 
			
		||||
                  "end": 18,
 | 
			
		||||
                  "value": 1,
 | 
			
		||||
                  "raw": "1"
 | 
			
		||||
                }
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "ObjectProperty",
 | 
			
		||||
                "start": 20,
 | 
			
		||||
                "end": 24,
 | 
			
		||||
                "key": {
 | 
			
		||||
                  "type": "Identifier",
 | 
			
		||||
                  "start": 20,
 | 
			
		||||
                  "end": 21,
 | 
			
		||||
                  "name": "b"
 | 
			
		||||
                },
 | 
			
		||||
                "value": {
 | 
			
		||||
                  "type": "Literal",
 | 
			
		||||
                  "type": "Literal",
 | 
			
		||||
                  "start": 23,
 | 
			
		||||
                  "end": 24,
 | 
			
		||||
                  "value": 2,
 | 
			
		||||
                  "raw": "2"
 | 
			
		||||
                }
 | 
			
		||||
              }
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "kind": "const"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "start": 32,
 | 
			
		||||
      "end": 59,
 | 
			
		||||
      "declarations": [
 | 
			
		||||
        {
 | 
			
		||||
          "type": "VariableDeclarator",
 | 
			
		||||
          "start": 38,
 | 
			
		||||
          "end": 59,
 | 
			
		||||
          "id": {
 | 
			
		||||
            "type": "Identifier",
 | 
			
		||||
            "start": 38,
 | 
			
		||||
            "end": 44,
 | 
			
		||||
            "name": "height"
 | 
			
		||||
          },
 | 
			
		||||
          "init": {
 | 
			
		||||
            "type": "BinaryExpression",
 | 
			
		||||
            "type": "BinaryExpression",
 | 
			
		||||
            "start": 47,
 | 
			
		||||
            "end": 59,
 | 
			
		||||
            "operator": "-",
 | 
			
		||||
            "left": {
 | 
			
		||||
              "type": "Literal",
 | 
			
		||||
              "type": "Literal",
 | 
			
		||||
              "start": 47,
 | 
			
		||||
              "end": 48,
 | 
			
		||||
              "value": 1,
 | 
			
		||||
              "raw": "1"
 | 
			
		||||
            },
 | 
			
		||||
            "right": {
 | 
			
		||||
              "type": "MemberExpression",
 | 
			
		||||
              "type": "MemberExpression",
 | 
			
		||||
              "start": 51,
 | 
			
		||||
              "end": 59,
 | 
			
		||||
              "object": {
 | 
			
		||||
                "type": "Identifier",
 | 
			
		||||
                "type": "Identifier",
 | 
			
		||||
                "start": 51,
 | 
			
		||||
                "end": 54,
 | 
			
		||||
                "name": "obj"
 | 
			
		||||
              },
 | 
			
		||||
              "property": {
 | 
			
		||||
                "type": "Literal",
 | 
			
		||||
                "type": "Literal",
 | 
			
		||||
                "start": 55,
 | 
			
		||||
                "end": 58,
 | 
			
		||||
                "value": "a",
 | 
			
		||||
                "raw": "\"a\""
 | 
			
		||||
              },
 | 
			
		||||
              "computed": false
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "kind": "const"
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "nonCodeMeta": {
 | 
			
		||||
    "nonCodeNodes": {},
 | 
			
		||||
    "start": []
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,137 @@
 | 
			
		||||
---
 | 
			
		||||
source: kcl/src/parser/parser_impl.rs
 | 
			
		||||
expression: actual
 | 
			
		||||
---
 | 
			
		||||
{
 | 
			
		||||
  "start": 0,
 | 
			
		||||
  "end": 58,
 | 
			
		||||
  "body": [
 | 
			
		||||
    {
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "start": 0,
 | 
			
		||||
      "end": 26,
 | 
			
		||||
      "declarations": [
 | 
			
		||||
        {
 | 
			
		||||
          "type": "VariableDeclarator",
 | 
			
		||||
          "start": 6,
 | 
			
		||||
          "end": 26,
 | 
			
		||||
          "id": {
 | 
			
		||||
            "type": "Identifier",
 | 
			
		||||
            "start": 6,
 | 
			
		||||
            "end": 9,
 | 
			
		||||
            "name": "obj"
 | 
			
		||||
          },
 | 
			
		||||
          "init": {
 | 
			
		||||
            "type": "ObjectExpression",
 | 
			
		||||
            "type": "ObjectExpression",
 | 
			
		||||
            "start": 12,
 | 
			
		||||
            "end": 26,
 | 
			
		||||
            "properties": [
 | 
			
		||||
              {
 | 
			
		||||
                "type": "ObjectProperty",
 | 
			
		||||
                "start": 14,
 | 
			
		||||
                "end": 18,
 | 
			
		||||
                "key": {
 | 
			
		||||
                  "type": "Identifier",
 | 
			
		||||
                  "start": 14,
 | 
			
		||||
                  "end": 15,
 | 
			
		||||
                  "name": "a"
 | 
			
		||||
                },
 | 
			
		||||
                "value": {
 | 
			
		||||
                  "type": "Literal",
 | 
			
		||||
                  "type": "Literal",
 | 
			
		||||
                  "start": 17,
 | 
			
		||||
                  "end": 18,
 | 
			
		||||
                  "value": 1,
 | 
			
		||||
                  "raw": "1"
 | 
			
		||||
                }
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "ObjectProperty",
 | 
			
		||||
                "start": 20,
 | 
			
		||||
                "end": 24,
 | 
			
		||||
                "key": {
 | 
			
		||||
                  "type": "Identifier",
 | 
			
		||||
                  "start": 20,
 | 
			
		||||
                  "end": 21,
 | 
			
		||||
                  "name": "b"
 | 
			
		||||
                },
 | 
			
		||||
                "value": {
 | 
			
		||||
                  "type": "Literal",
 | 
			
		||||
                  "type": "Literal",
 | 
			
		||||
                  "start": 23,
 | 
			
		||||
                  "end": 24,
 | 
			
		||||
                  "value": 2,
 | 
			
		||||
                  "raw": "2"
 | 
			
		||||
                }
 | 
			
		||||
              }
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "kind": "const"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "start": 31,
 | 
			
		||||
      "end": 58,
 | 
			
		||||
      "declarations": [
 | 
			
		||||
        {
 | 
			
		||||
          "type": "VariableDeclarator",
 | 
			
		||||
          "start": 37,
 | 
			
		||||
          "end": 58,
 | 
			
		||||
          "id": {
 | 
			
		||||
            "type": "Identifier",
 | 
			
		||||
            "start": 37,
 | 
			
		||||
            "end": 43,
 | 
			
		||||
            "name": "height"
 | 
			
		||||
          },
 | 
			
		||||
          "init": {
 | 
			
		||||
            "type": "BinaryExpression",
 | 
			
		||||
            "type": "BinaryExpression",
 | 
			
		||||
            "start": 46,
 | 
			
		||||
            "end": 58,
 | 
			
		||||
            "operator": "-",
 | 
			
		||||
            "left": {
 | 
			
		||||
              "type": "MemberExpression",
 | 
			
		||||
              "type": "MemberExpression",
 | 
			
		||||
              "start": 46,
 | 
			
		||||
              "end": 54,
 | 
			
		||||
              "object": {
 | 
			
		||||
                "type": "Identifier",
 | 
			
		||||
                "type": "Identifier",
 | 
			
		||||
                "start": 46,
 | 
			
		||||
                "end": 49,
 | 
			
		||||
                "name": "obj"
 | 
			
		||||
              },
 | 
			
		||||
              "property": {
 | 
			
		||||
                "type": "Literal",
 | 
			
		||||
                "type": "Literal",
 | 
			
		||||
                "start": 50,
 | 
			
		||||
                "end": 53,
 | 
			
		||||
                "value": "a",
 | 
			
		||||
                "raw": "\"a\""
 | 
			
		||||
              },
 | 
			
		||||
              "computed": false
 | 
			
		||||
            },
 | 
			
		||||
            "right": {
 | 
			
		||||
              "type": "Literal",
 | 
			
		||||
              "type": "Literal",
 | 
			
		||||
              "start": 57,
 | 
			
		||||
              "end": 58,
 | 
			
		||||
              "value": 1,
 | 
			
		||||
              "raw": "1"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "kind": "const"
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "nonCodeMeta": {
 | 
			
		||||
    "nonCodeNodes": {},
 | 
			
		||||
    "start": []
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,153 @@
 | 
			
		||||
---
 | 
			
		||||
source: kcl/src/parser/parser_impl.rs
 | 
			
		||||
expression: actual
 | 
			
		||||
---
 | 
			
		||||
{
 | 
			
		||||
  "start": 0,
 | 
			
		||||
  "end": 63,
 | 
			
		||||
  "body": [
 | 
			
		||||
    {
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "start": 0,
 | 
			
		||||
      "end": 26,
 | 
			
		||||
      "declarations": [
 | 
			
		||||
        {
 | 
			
		||||
          "type": "VariableDeclarator",
 | 
			
		||||
          "start": 6,
 | 
			
		||||
          "end": 26,
 | 
			
		||||
          "id": {
 | 
			
		||||
            "type": "Identifier",
 | 
			
		||||
            "start": 6,
 | 
			
		||||
            "end": 9,
 | 
			
		||||
            "name": "obj"
 | 
			
		||||
          },
 | 
			
		||||
          "init": {
 | 
			
		||||
            "type": "ObjectExpression",
 | 
			
		||||
            "type": "ObjectExpression",
 | 
			
		||||
            "start": 12,
 | 
			
		||||
            "end": 26,
 | 
			
		||||
            "properties": [
 | 
			
		||||
              {
 | 
			
		||||
                "type": "ObjectProperty",
 | 
			
		||||
                "start": 14,
 | 
			
		||||
                "end": 18,
 | 
			
		||||
                "key": {
 | 
			
		||||
                  "type": "Identifier",
 | 
			
		||||
                  "start": 14,
 | 
			
		||||
                  "end": 15,
 | 
			
		||||
                  "name": "a"
 | 
			
		||||
                },
 | 
			
		||||
                "value": {
 | 
			
		||||
                  "type": "Literal",
 | 
			
		||||
                  "type": "Literal",
 | 
			
		||||
                  "start": 17,
 | 
			
		||||
                  "end": 18,
 | 
			
		||||
                  "value": 1,
 | 
			
		||||
                  "raw": "1"
 | 
			
		||||
                }
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "ObjectProperty",
 | 
			
		||||
                "start": 20,
 | 
			
		||||
                "end": 24,
 | 
			
		||||
                "key": {
 | 
			
		||||
                  "type": "Identifier",
 | 
			
		||||
                  "start": 20,
 | 
			
		||||
                  "end": 21,
 | 
			
		||||
                  "name": "b"
 | 
			
		||||
                },
 | 
			
		||||
                "value": {
 | 
			
		||||
                  "type": "Literal",
 | 
			
		||||
                  "type": "Literal",
 | 
			
		||||
                  "start": 23,
 | 
			
		||||
                  "end": 24,
 | 
			
		||||
                  "value": 2,
 | 
			
		||||
                  "raw": "2"
 | 
			
		||||
                }
 | 
			
		||||
              }
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "kind": "const"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "start": 31,
 | 
			
		||||
      "end": 63,
 | 
			
		||||
      "declarations": [
 | 
			
		||||
        {
 | 
			
		||||
          "type": "VariableDeclarator",
 | 
			
		||||
          "start": 37,
 | 
			
		||||
          "end": 63,
 | 
			
		||||
          "id": {
 | 
			
		||||
            "type": "Identifier",
 | 
			
		||||
            "start": 37,
 | 
			
		||||
            "end": 43,
 | 
			
		||||
            "name": "height"
 | 
			
		||||
          },
 | 
			
		||||
          "init": {
 | 
			
		||||
            "type": "ArrayExpression",
 | 
			
		||||
            "type": "ArrayExpression",
 | 
			
		||||
            "start": 46,
 | 
			
		||||
            "end": 63,
 | 
			
		||||
            "elements": [
 | 
			
		||||
              {
 | 
			
		||||
                "type": "BinaryExpression",
 | 
			
		||||
                "type": "BinaryExpression",
 | 
			
		||||
                "start": 47,
 | 
			
		||||
                "end": 59,
 | 
			
		||||
                "operator": "-",
 | 
			
		||||
                "left": {
 | 
			
		||||
                  "type": "Literal",
 | 
			
		||||
                  "type": "Literal",
 | 
			
		||||
                  "start": 47,
 | 
			
		||||
                  "end": 48,
 | 
			
		||||
                  "value": 1,
 | 
			
		||||
                  "raw": "1"
 | 
			
		||||
                },
 | 
			
		||||
                "right": {
 | 
			
		||||
                  "type": "MemberExpression",
 | 
			
		||||
                  "type": "MemberExpression",
 | 
			
		||||
                  "start": 51,
 | 
			
		||||
                  "end": 59,
 | 
			
		||||
                  "object": {
 | 
			
		||||
                    "type": "Identifier",
 | 
			
		||||
                    "type": "Identifier",
 | 
			
		||||
                    "start": 51,
 | 
			
		||||
                    "end": 54,
 | 
			
		||||
                    "name": "obj"
 | 
			
		||||
                  },
 | 
			
		||||
                  "property": {
 | 
			
		||||
                    "type": "Literal",
 | 
			
		||||
                    "type": "Literal",
 | 
			
		||||
                    "start": 55,
 | 
			
		||||
                    "end": 58,
 | 
			
		||||
                    "value": "a",
 | 
			
		||||
                    "raw": "\"a\""
 | 
			
		||||
                  },
 | 
			
		||||
                  "computed": false
 | 
			
		||||
                }
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "Literal",
 | 
			
		||||
                "type": "Literal",
 | 
			
		||||
                "start": 61,
 | 
			
		||||
                "end": 62,
 | 
			
		||||
                "value": 0,
 | 
			
		||||
                "raw": "0"
 | 
			
		||||
              }
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "kind": "const"
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "nonCodeMeta": {
 | 
			
		||||
    "nonCodeNodes": {},
 | 
			
		||||
    "start": []
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,153 @@
 | 
			
		||||
---
 | 
			
		||||
source: kcl/src/parser/parser_impl.rs
 | 
			
		||||
expression: actual
 | 
			
		||||
---
 | 
			
		||||
{
 | 
			
		||||
  "start": 0,
 | 
			
		||||
  "end": 63,
 | 
			
		||||
  "body": [
 | 
			
		||||
    {
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "start": 0,
 | 
			
		||||
      "end": 26,
 | 
			
		||||
      "declarations": [
 | 
			
		||||
        {
 | 
			
		||||
          "type": "VariableDeclarator",
 | 
			
		||||
          "start": 6,
 | 
			
		||||
          "end": 26,
 | 
			
		||||
          "id": {
 | 
			
		||||
            "type": "Identifier",
 | 
			
		||||
            "start": 6,
 | 
			
		||||
            "end": 9,
 | 
			
		||||
            "name": "obj"
 | 
			
		||||
          },
 | 
			
		||||
          "init": {
 | 
			
		||||
            "type": "ObjectExpression",
 | 
			
		||||
            "type": "ObjectExpression",
 | 
			
		||||
            "start": 12,
 | 
			
		||||
            "end": 26,
 | 
			
		||||
            "properties": [
 | 
			
		||||
              {
 | 
			
		||||
                "type": "ObjectProperty",
 | 
			
		||||
                "start": 14,
 | 
			
		||||
                "end": 18,
 | 
			
		||||
                "key": {
 | 
			
		||||
                  "type": "Identifier",
 | 
			
		||||
                  "start": 14,
 | 
			
		||||
                  "end": 15,
 | 
			
		||||
                  "name": "a"
 | 
			
		||||
                },
 | 
			
		||||
                "value": {
 | 
			
		||||
                  "type": "Literal",
 | 
			
		||||
                  "type": "Literal",
 | 
			
		||||
                  "start": 17,
 | 
			
		||||
                  "end": 18,
 | 
			
		||||
                  "value": 1,
 | 
			
		||||
                  "raw": "1"
 | 
			
		||||
                }
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "ObjectProperty",
 | 
			
		||||
                "start": 20,
 | 
			
		||||
                "end": 24,
 | 
			
		||||
                "key": {
 | 
			
		||||
                  "type": "Identifier",
 | 
			
		||||
                  "start": 20,
 | 
			
		||||
                  "end": 21,
 | 
			
		||||
                  "name": "b"
 | 
			
		||||
                },
 | 
			
		||||
                "value": {
 | 
			
		||||
                  "type": "Literal",
 | 
			
		||||
                  "type": "Literal",
 | 
			
		||||
                  "start": 23,
 | 
			
		||||
                  "end": 24,
 | 
			
		||||
                  "value": 2,
 | 
			
		||||
                  "raw": "2"
 | 
			
		||||
                }
 | 
			
		||||
              }
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "kind": "const"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "start": 31,
 | 
			
		||||
      "end": 63,
 | 
			
		||||
      "declarations": [
 | 
			
		||||
        {
 | 
			
		||||
          "type": "VariableDeclarator",
 | 
			
		||||
          "start": 37,
 | 
			
		||||
          "end": 63,
 | 
			
		||||
          "id": {
 | 
			
		||||
            "type": "Identifier",
 | 
			
		||||
            "start": 37,
 | 
			
		||||
            "end": 43,
 | 
			
		||||
            "name": "height"
 | 
			
		||||
          },
 | 
			
		||||
          "init": {
 | 
			
		||||
            "type": "ArrayExpression",
 | 
			
		||||
            "type": "ArrayExpression",
 | 
			
		||||
            "start": 46,
 | 
			
		||||
            "end": 63,
 | 
			
		||||
            "elements": [
 | 
			
		||||
              {
 | 
			
		||||
                "type": "BinaryExpression",
 | 
			
		||||
                "type": "BinaryExpression",
 | 
			
		||||
                "start": 47,
 | 
			
		||||
                "end": 59,
 | 
			
		||||
                "operator": "-",
 | 
			
		||||
                "left": {
 | 
			
		||||
                  "type": "MemberExpression",
 | 
			
		||||
                  "type": "MemberExpression",
 | 
			
		||||
                  "start": 47,
 | 
			
		||||
                  "end": 55,
 | 
			
		||||
                  "object": {
 | 
			
		||||
                    "type": "Identifier",
 | 
			
		||||
                    "type": "Identifier",
 | 
			
		||||
                    "start": 47,
 | 
			
		||||
                    "end": 50,
 | 
			
		||||
                    "name": "obj"
 | 
			
		||||
                  },
 | 
			
		||||
                  "property": {
 | 
			
		||||
                    "type": "Literal",
 | 
			
		||||
                    "type": "Literal",
 | 
			
		||||
                    "start": 51,
 | 
			
		||||
                    "end": 54,
 | 
			
		||||
                    "value": "a",
 | 
			
		||||
                    "raw": "\"a\""
 | 
			
		||||
                  },
 | 
			
		||||
                  "computed": false
 | 
			
		||||
                },
 | 
			
		||||
                "right": {
 | 
			
		||||
                  "type": "Literal",
 | 
			
		||||
                  "type": "Literal",
 | 
			
		||||
                  "start": 58,
 | 
			
		||||
                  "end": 59,
 | 
			
		||||
                  "value": 1,
 | 
			
		||||
                  "raw": "1"
 | 
			
		||||
                }
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "Literal",
 | 
			
		||||
                "type": "Literal",
 | 
			
		||||
                "start": 61,
 | 
			
		||||
                "end": 62,
 | 
			
		||||
                "value": 0,
 | 
			
		||||
                "raw": "0"
 | 
			
		||||
              }
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "kind": "const"
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "nonCodeMeta": {
 | 
			
		||||
    "nonCodeNodes": {},
 | 
			
		||||
    "start": []
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,153 @@
 | 
			
		||||
---
 | 
			
		||||
source: kcl/src/parser/parser_impl.rs
 | 
			
		||||
expression: actual
 | 
			
		||||
---
 | 
			
		||||
{
 | 
			
		||||
  "start": 0,
 | 
			
		||||
  "end": 62,
 | 
			
		||||
  "body": [
 | 
			
		||||
    {
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "start": 0,
 | 
			
		||||
      "end": 26,
 | 
			
		||||
      "declarations": [
 | 
			
		||||
        {
 | 
			
		||||
          "type": "VariableDeclarator",
 | 
			
		||||
          "start": 6,
 | 
			
		||||
          "end": 26,
 | 
			
		||||
          "id": {
 | 
			
		||||
            "type": "Identifier",
 | 
			
		||||
            "start": 6,
 | 
			
		||||
            "end": 9,
 | 
			
		||||
            "name": "obj"
 | 
			
		||||
          },
 | 
			
		||||
          "init": {
 | 
			
		||||
            "type": "ObjectExpression",
 | 
			
		||||
            "type": "ObjectExpression",
 | 
			
		||||
            "start": 12,
 | 
			
		||||
            "end": 26,
 | 
			
		||||
            "properties": [
 | 
			
		||||
              {
 | 
			
		||||
                "type": "ObjectProperty",
 | 
			
		||||
                "start": 14,
 | 
			
		||||
                "end": 18,
 | 
			
		||||
                "key": {
 | 
			
		||||
                  "type": "Identifier",
 | 
			
		||||
                  "start": 14,
 | 
			
		||||
                  "end": 15,
 | 
			
		||||
                  "name": "a"
 | 
			
		||||
                },
 | 
			
		||||
                "value": {
 | 
			
		||||
                  "type": "Literal",
 | 
			
		||||
                  "type": "Literal",
 | 
			
		||||
                  "start": 17,
 | 
			
		||||
                  "end": 18,
 | 
			
		||||
                  "value": 1,
 | 
			
		||||
                  "raw": "1"
 | 
			
		||||
                }
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "ObjectProperty",
 | 
			
		||||
                "start": 20,
 | 
			
		||||
                "end": 24,
 | 
			
		||||
                "key": {
 | 
			
		||||
                  "type": "Identifier",
 | 
			
		||||
                  "start": 20,
 | 
			
		||||
                  "end": 21,
 | 
			
		||||
                  "name": "b"
 | 
			
		||||
                },
 | 
			
		||||
                "value": {
 | 
			
		||||
                  "type": "Literal",
 | 
			
		||||
                  "type": "Literal",
 | 
			
		||||
                  "start": 23,
 | 
			
		||||
                  "end": 24,
 | 
			
		||||
                  "value": 2,
 | 
			
		||||
                  "raw": "2"
 | 
			
		||||
                }
 | 
			
		||||
              }
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "kind": "const"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "start": 31,
 | 
			
		||||
      "end": 62,
 | 
			
		||||
      "declarations": [
 | 
			
		||||
        {
 | 
			
		||||
          "type": "VariableDeclarator",
 | 
			
		||||
          "start": 37,
 | 
			
		||||
          "end": 62,
 | 
			
		||||
          "id": {
 | 
			
		||||
            "type": "Identifier",
 | 
			
		||||
            "start": 37,
 | 
			
		||||
            "end": 43,
 | 
			
		||||
            "name": "height"
 | 
			
		||||
          },
 | 
			
		||||
          "init": {
 | 
			
		||||
            "type": "ArrayExpression",
 | 
			
		||||
            "type": "ArrayExpression",
 | 
			
		||||
            "start": 46,
 | 
			
		||||
            "end": 62,
 | 
			
		||||
            "elements": [
 | 
			
		||||
              {
 | 
			
		||||
                "type": "BinaryExpression",
 | 
			
		||||
                "type": "BinaryExpression",
 | 
			
		||||
                "start": 47,
 | 
			
		||||
                "end": 58,
 | 
			
		||||
                "operator": "-",
 | 
			
		||||
                "left": {
 | 
			
		||||
                  "type": "MemberExpression",
 | 
			
		||||
                  "type": "MemberExpression",
 | 
			
		||||
                  "start": 47,
 | 
			
		||||
                  "end": 55,
 | 
			
		||||
                  "object": {
 | 
			
		||||
                    "type": "Identifier",
 | 
			
		||||
                    "type": "Identifier",
 | 
			
		||||
                    "start": 47,
 | 
			
		||||
                    "end": 50,
 | 
			
		||||
                    "name": "obj"
 | 
			
		||||
                  },
 | 
			
		||||
                  "property": {
 | 
			
		||||
                    "type": "Literal",
 | 
			
		||||
                    "type": "Literal",
 | 
			
		||||
                    "start": 51,
 | 
			
		||||
                    "end": 54,
 | 
			
		||||
                    "value": "a",
 | 
			
		||||
                    "raw": "\"a\""
 | 
			
		||||
                  },
 | 
			
		||||
                  "computed": false
 | 
			
		||||
                },
 | 
			
		||||
                "right": {
 | 
			
		||||
                  "type": "Literal",
 | 
			
		||||
                  "type": "Literal",
 | 
			
		||||
                  "start": 57,
 | 
			
		||||
                  "end": 58,
 | 
			
		||||
                  "value": 1,
 | 
			
		||||
                  "raw": "1"
 | 
			
		||||
                }
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "Literal",
 | 
			
		||||
                "type": "Literal",
 | 
			
		||||
                "start": 60,
 | 
			
		||||
                "end": 61,
 | 
			
		||||
                "value": 0,
 | 
			
		||||
                "raw": "0"
 | 
			
		||||
              }
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "kind": "const"
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "nonCodeMeta": {
 | 
			
		||||
    "nonCodeNodes": {},
 | 
			
		||||
    "start": []
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,70 @@
 | 
			
		||||
---
 | 
			
		||||
source: kcl/src/parser/parser_impl.rs
 | 
			
		||||
expression: actual
 | 
			
		||||
---
 | 
			
		||||
{
 | 
			
		||||
  "start": 0,
 | 
			
		||||
  "end": 24,
 | 
			
		||||
  "body": [
 | 
			
		||||
    {
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "start": 0,
 | 
			
		||||
      "end": 24,
 | 
			
		||||
      "declarations": [
 | 
			
		||||
        {
 | 
			
		||||
          "type": "VariableDeclarator",
 | 
			
		||||
          "start": 6,
 | 
			
		||||
          "end": 24,
 | 
			
		||||
          "id": {
 | 
			
		||||
            "type": "Identifier",
 | 
			
		||||
            "start": 6,
 | 
			
		||||
            "end": 12,
 | 
			
		||||
            "name": "height"
 | 
			
		||||
          },
 | 
			
		||||
          "init": {
 | 
			
		||||
            "type": "BinaryExpression",
 | 
			
		||||
            "type": "BinaryExpression",
 | 
			
		||||
            "start": 15,
 | 
			
		||||
            "end": 24,
 | 
			
		||||
            "operator": "-",
 | 
			
		||||
            "left": {
 | 
			
		||||
              "type": "Literal",
 | 
			
		||||
              "type": "Literal",
 | 
			
		||||
              "start": 15,
 | 
			
		||||
              "end": 16,
 | 
			
		||||
              "value": 1,
 | 
			
		||||
              "raw": "1"
 | 
			
		||||
            },
 | 
			
		||||
            "right": {
 | 
			
		||||
              "type": "MemberExpression",
 | 
			
		||||
              "type": "MemberExpression",
 | 
			
		||||
              "start": 19,
 | 
			
		||||
              "end": 24,
 | 
			
		||||
              "object": {
 | 
			
		||||
                "type": "Identifier",
 | 
			
		||||
                "type": "Identifier",
 | 
			
		||||
                "start": 19,
 | 
			
		||||
                "end": 22,
 | 
			
		||||
                "name": "obj"
 | 
			
		||||
              },
 | 
			
		||||
              "property": {
 | 
			
		||||
                "type": "Identifier",
 | 
			
		||||
                "type": "Identifier",
 | 
			
		||||
                "start": 23,
 | 
			
		||||
                "end": 24,
 | 
			
		||||
                "name": "a"
 | 
			
		||||
              },
 | 
			
		||||
              "computed": false
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "kind": "const"
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "nonCodeMeta": {
 | 
			
		||||
    "nonCodeNodes": {},
 | 
			
		||||
    "start": []
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,72 @@
 | 
			
		||||
---
 | 
			
		||||
source: kcl/src/parser/parser_impl.rs
 | 
			
		||||
expression: actual
 | 
			
		||||
---
 | 
			
		||||
{
 | 
			
		||||
  "start": 0,
 | 
			
		||||
  "end": 21,
 | 
			
		||||
  "body": [
 | 
			
		||||
    {
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "start": 0,
 | 
			
		||||
      "end": 21,
 | 
			
		||||
      "declarations": [
 | 
			
		||||
        {
 | 
			
		||||
          "type": "VariableDeclarator",
 | 
			
		||||
          "start": 6,
 | 
			
		||||
          "end": 21,
 | 
			
		||||
          "id": {
 | 
			
		||||
            "type": "Identifier",
 | 
			
		||||
            "start": 6,
 | 
			
		||||
            "end": 9,
 | 
			
		||||
            "name": "six"
 | 
			
		||||
          },
 | 
			
		||||
          "init": {
 | 
			
		||||
            "type": "BinaryExpression",
 | 
			
		||||
            "type": "BinaryExpression",
 | 
			
		||||
            "start": 12,
 | 
			
		||||
            "end": 21,
 | 
			
		||||
            "operator": "+",
 | 
			
		||||
            "left": {
 | 
			
		||||
              "type": "BinaryExpression",
 | 
			
		||||
              "type": "BinaryExpression",
 | 
			
		||||
              "start": 12,
 | 
			
		||||
              "end": 17,
 | 
			
		||||
              "operator": "+",
 | 
			
		||||
              "left": {
 | 
			
		||||
                "type": "Literal",
 | 
			
		||||
                "type": "Literal",
 | 
			
		||||
                "start": 12,
 | 
			
		||||
                "end": 13,
 | 
			
		||||
                "value": 1,
 | 
			
		||||
                "raw": "1"
 | 
			
		||||
              },
 | 
			
		||||
              "right": {
 | 
			
		||||
                "type": "Literal",
 | 
			
		||||
                "type": "Literal",
 | 
			
		||||
                "start": 16,
 | 
			
		||||
                "end": 17,
 | 
			
		||||
                "value": 2,
 | 
			
		||||
                "raw": "2"
 | 
			
		||||
              }
 | 
			
		||||
            },
 | 
			
		||||
            "right": {
 | 
			
		||||
              "type": "Literal",
 | 
			
		||||
              "type": "Literal",
 | 
			
		||||
              "start": 20,
 | 
			
		||||
              "end": 21,
 | 
			
		||||
              "value": 3,
 | 
			
		||||
              "raw": "3"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "kind": "const"
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "nonCodeMeta": {
 | 
			
		||||
    "nonCodeNodes": {},
 | 
			
		||||
    "start": []
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,72 @@
 | 
			
		||||
---
 | 
			
		||||
source: kcl/src/parser/parser_impl.rs
 | 
			
		||||
expression: actual
 | 
			
		||||
---
 | 
			
		||||
{
 | 
			
		||||
  "start": 0,
 | 
			
		||||
  "end": 22,
 | 
			
		||||
  "body": [
 | 
			
		||||
    {
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "start": 0,
 | 
			
		||||
      "end": 22,
 | 
			
		||||
      "declarations": [
 | 
			
		||||
        {
 | 
			
		||||
          "type": "VariableDeclarator",
 | 
			
		||||
          "start": 6,
 | 
			
		||||
          "end": 22,
 | 
			
		||||
          "id": {
 | 
			
		||||
            "type": "Identifier",
 | 
			
		||||
            "start": 6,
 | 
			
		||||
            "end": 10,
 | 
			
		||||
            "name": "five"
 | 
			
		||||
          },
 | 
			
		||||
          "init": {
 | 
			
		||||
            "type": "BinaryExpression",
 | 
			
		||||
            "type": "BinaryExpression",
 | 
			
		||||
            "start": 13,
 | 
			
		||||
            "end": 22,
 | 
			
		||||
            "operator": "+",
 | 
			
		||||
            "left": {
 | 
			
		||||
              "type": "BinaryExpression",
 | 
			
		||||
              "type": "BinaryExpression",
 | 
			
		||||
              "start": 13,
 | 
			
		||||
              "end": 18,
 | 
			
		||||
              "operator": "*",
 | 
			
		||||
              "left": {
 | 
			
		||||
                "type": "Literal",
 | 
			
		||||
                "type": "Literal",
 | 
			
		||||
                "start": 13,
 | 
			
		||||
                "end": 14,
 | 
			
		||||
                "value": 3,
 | 
			
		||||
                "raw": "3"
 | 
			
		||||
              },
 | 
			
		||||
              "right": {
 | 
			
		||||
                "type": "Literal",
 | 
			
		||||
                "type": "Literal",
 | 
			
		||||
                "start": 17,
 | 
			
		||||
                "end": 18,
 | 
			
		||||
                "value": 1,
 | 
			
		||||
                "raw": "1"
 | 
			
		||||
              }
 | 
			
		||||
            },
 | 
			
		||||
            "right": {
 | 
			
		||||
              "type": "Literal",
 | 
			
		||||
              "type": "Literal",
 | 
			
		||||
              "start": 21,
 | 
			
		||||
              "end": 22,
 | 
			
		||||
              "value": 2,
 | 
			
		||||
              "raw": "2"
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "kind": "const"
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "nonCodeMeta": {
 | 
			
		||||
    "nonCodeNodes": {},
 | 
			
		||||
    "start": []
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,72 @@
 | 
			
		||||
---
 | 
			
		||||
source: kcl/src/parser/parser_impl.rs
 | 
			
		||||
expression: actual
 | 
			
		||||
---
 | 
			
		||||
{
 | 
			
		||||
  "start": 0,
 | 
			
		||||
  "end": 30,
 | 
			
		||||
  "body": [
 | 
			
		||||
    {
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "start": 0,
 | 
			
		||||
      "end": 30,
 | 
			
		||||
      "declarations": [
 | 
			
		||||
        {
 | 
			
		||||
          "type": "VariableDeclarator",
 | 
			
		||||
          "start": 6,
 | 
			
		||||
          "end": 30,
 | 
			
		||||
          "id": {
 | 
			
		||||
            "type": "Identifier",
 | 
			
		||||
            "start": 6,
 | 
			
		||||
            "end": 12,
 | 
			
		||||
            "name": "height"
 | 
			
		||||
          },
 | 
			
		||||
          "init": {
 | 
			
		||||
            "type": "ArrayExpression",
 | 
			
		||||
            "type": "ArrayExpression",
 | 
			
		||||
            "start": 15,
 | 
			
		||||
            "end": 30,
 | 
			
		||||
            "elements": [
 | 
			
		||||
              {
 | 
			
		||||
                "type": "MemberExpression",
 | 
			
		||||
                "type": "MemberExpression",
 | 
			
		||||
                "start": 17,
 | 
			
		||||
                "end": 25,
 | 
			
		||||
                "object": {
 | 
			
		||||
                  "type": "Identifier",
 | 
			
		||||
                  "type": "Identifier",
 | 
			
		||||
                  "start": 17,
 | 
			
		||||
                  "end": 20,
 | 
			
		||||
                  "name": "obj"
 | 
			
		||||
                },
 | 
			
		||||
                "property": {
 | 
			
		||||
                  "type": "Literal",
 | 
			
		||||
                  "type": "Literal",
 | 
			
		||||
                  "start": 21,
 | 
			
		||||
                  "end": 24,
 | 
			
		||||
                  "value": "a",
 | 
			
		||||
                  "raw": "\"a\""
 | 
			
		||||
                },
 | 
			
		||||
                "computed": false
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "Literal",
 | 
			
		||||
                "type": "Literal",
 | 
			
		||||
                "start": 27,
 | 
			
		||||
                "end": 28,
 | 
			
		||||
                "value": 0,
 | 
			
		||||
                "raw": "0"
 | 
			
		||||
              }
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "kind": "const"
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "nonCodeMeta": {
 | 
			
		||||
    "nonCodeNodes": {},
 | 
			
		||||
    "start": []
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,122 @@
 | 
			
		||||
---
 | 
			
		||||
source: kcl/src/parser/parser_impl.rs
 | 
			
		||||
expression: actual
 | 
			
		||||
---
 | 
			
		||||
{
 | 
			
		||||
  "start": 0,
 | 
			
		||||
  "end": 54,
 | 
			
		||||
  "body": [
 | 
			
		||||
    {
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "start": 0,
 | 
			
		||||
      "end": 26,
 | 
			
		||||
      "declarations": [
 | 
			
		||||
        {
 | 
			
		||||
          "type": "VariableDeclarator",
 | 
			
		||||
          "start": 6,
 | 
			
		||||
          "end": 26,
 | 
			
		||||
          "id": {
 | 
			
		||||
            "type": "Identifier",
 | 
			
		||||
            "start": 6,
 | 
			
		||||
            "end": 9,
 | 
			
		||||
            "name": "obj"
 | 
			
		||||
          },
 | 
			
		||||
          "init": {
 | 
			
		||||
            "type": "ObjectExpression",
 | 
			
		||||
            "type": "ObjectExpression",
 | 
			
		||||
            "start": 12,
 | 
			
		||||
            "end": 26,
 | 
			
		||||
            "properties": [
 | 
			
		||||
              {
 | 
			
		||||
                "type": "ObjectProperty",
 | 
			
		||||
                "start": 14,
 | 
			
		||||
                "end": 18,
 | 
			
		||||
                "key": {
 | 
			
		||||
                  "type": "Identifier",
 | 
			
		||||
                  "start": 14,
 | 
			
		||||
                  "end": 15,
 | 
			
		||||
                  "name": "a"
 | 
			
		||||
                },
 | 
			
		||||
                "value": {
 | 
			
		||||
                  "type": "Literal",
 | 
			
		||||
                  "type": "Literal",
 | 
			
		||||
                  "start": 17,
 | 
			
		||||
                  "end": 18,
 | 
			
		||||
                  "value": 1,
 | 
			
		||||
                  "raw": "1"
 | 
			
		||||
                }
 | 
			
		||||
              },
 | 
			
		||||
              {
 | 
			
		||||
                "type": "ObjectProperty",
 | 
			
		||||
                "start": 20,
 | 
			
		||||
                "end": 24,
 | 
			
		||||
                "key": {
 | 
			
		||||
                  "type": "Identifier",
 | 
			
		||||
                  "start": 20,
 | 
			
		||||
                  "end": 21,
 | 
			
		||||
                  "name": "b"
 | 
			
		||||
                },
 | 
			
		||||
                "value": {
 | 
			
		||||
                  "type": "Literal",
 | 
			
		||||
                  "type": "Literal",
 | 
			
		||||
                  "start": 23,
 | 
			
		||||
                  "end": 24,
 | 
			
		||||
                  "value": 2,
 | 
			
		||||
                  "raw": "2"
 | 
			
		||||
                }
 | 
			
		||||
              }
 | 
			
		||||
            ]
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "kind": "const"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "start": 31,
 | 
			
		||||
      "end": 54,
 | 
			
		||||
      "declarations": [
 | 
			
		||||
        {
 | 
			
		||||
          "type": "VariableDeclarator",
 | 
			
		||||
          "start": 37,
 | 
			
		||||
          "end": 54,
 | 
			
		||||
          "id": {
 | 
			
		||||
            "type": "Identifier",
 | 
			
		||||
            "start": 37,
 | 
			
		||||
            "end": 43,
 | 
			
		||||
            "name": "height"
 | 
			
		||||
          },
 | 
			
		||||
          "init": {
 | 
			
		||||
            "type": "MemberExpression",
 | 
			
		||||
            "type": "MemberExpression",
 | 
			
		||||
            "start": 46,
 | 
			
		||||
            "end": 54,
 | 
			
		||||
            "object": {
 | 
			
		||||
              "type": "Identifier",
 | 
			
		||||
              "type": "Identifier",
 | 
			
		||||
              "start": 46,
 | 
			
		||||
              "end": 49,
 | 
			
		||||
              "name": "obj"
 | 
			
		||||
            },
 | 
			
		||||
            "property": {
 | 
			
		||||
              "type": "Literal",
 | 
			
		||||
              "type": "Literal",
 | 
			
		||||
              "start": 50,
 | 
			
		||||
              "end": 53,
 | 
			
		||||
              "value": "a",
 | 
			
		||||
              "raw": "\"a\""
 | 
			
		||||
            },
 | 
			
		||||
            "computed": false
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "kind": "const"
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "nonCodeMeta": {
 | 
			
		||||
    "nonCodeNodes": {},
 | 
			
		||||
    "start": []
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,70 @@
 | 
			
		||||
---
 | 
			
		||||
source: kcl/src/parser/parser_impl.rs
 | 
			
		||||
expression: actual
 | 
			
		||||
---
 | 
			
		||||
{
 | 
			
		||||
  "start": 0,
 | 
			
		||||
  "end": 27,
 | 
			
		||||
  "body": [
 | 
			
		||||
    {
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "start": 0,
 | 
			
		||||
      "end": 27,
 | 
			
		||||
      "declarations": [
 | 
			
		||||
        {
 | 
			
		||||
          "type": "VariableDeclarator",
 | 
			
		||||
          "start": 6,
 | 
			
		||||
          "end": 27,
 | 
			
		||||
          "id": {
 | 
			
		||||
            "type": "Identifier",
 | 
			
		||||
            "start": 6,
 | 
			
		||||
            "end": 10,
 | 
			
		||||
            "name": "prop"
 | 
			
		||||
          },
 | 
			
		||||
          "init": {
 | 
			
		||||
            "type": "MemberExpression",
 | 
			
		||||
            "type": "MemberExpression",
 | 
			
		||||
            "start": 13,
 | 
			
		||||
            "end": 27,
 | 
			
		||||
            "object": {
 | 
			
		||||
              "type": "MemberExpression",
 | 
			
		||||
              "type": "MemberExpression",
 | 
			
		||||
              "start": 13,
 | 
			
		||||
              "end": 22,
 | 
			
		||||
              "object": {
 | 
			
		||||
                "type": "Identifier",
 | 
			
		||||
                "type": "Identifier",
 | 
			
		||||
                "start": 13,
 | 
			
		||||
                "end": 15,
 | 
			
		||||
                "name": "yo"
 | 
			
		||||
              },
 | 
			
		||||
              "property": {
 | 
			
		||||
                "type": "Literal",
 | 
			
		||||
                "type": "Literal",
 | 
			
		||||
                "start": 16,
 | 
			
		||||
                "end": 21,
 | 
			
		||||
                "value": "one",
 | 
			
		||||
                "raw": "\"one\""
 | 
			
		||||
              },
 | 
			
		||||
              "computed": false
 | 
			
		||||
            },
 | 
			
		||||
            "property": {
 | 
			
		||||
              "type": "Identifier",
 | 
			
		||||
              "type": "Identifier",
 | 
			
		||||
              "start": 23,
 | 
			
		||||
              "end": 26,
 | 
			
		||||
              "name": "two"
 | 
			
		||||
            },
 | 
			
		||||
            "computed": true
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "kind": "const"
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "nonCodeMeta": {
 | 
			
		||||
    "nonCodeNodes": {},
 | 
			
		||||
    "start": []
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,55 @@
 | 
			
		||||
---
 | 
			
		||||
source: kcl/src/parser/parser_impl.rs
 | 
			
		||||
expression: actual
 | 
			
		||||
---
 | 
			
		||||
{
 | 
			
		||||
  "start": 0,
 | 
			
		||||
  "end": 17,
 | 
			
		||||
  "body": [
 | 
			
		||||
    {
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "start": 0,
 | 
			
		||||
      "end": 17,
 | 
			
		||||
      "declarations": [
 | 
			
		||||
        {
 | 
			
		||||
          "type": "VariableDeclarator",
 | 
			
		||||
          "start": 6,
 | 
			
		||||
          "end": 17,
 | 
			
		||||
          "id": {
 | 
			
		||||
            "type": "Identifier",
 | 
			
		||||
            "start": 6,
 | 
			
		||||
            "end": 9,
 | 
			
		||||
            "name": "pt1"
 | 
			
		||||
          },
 | 
			
		||||
          "init": {
 | 
			
		||||
            "type": "MemberExpression",
 | 
			
		||||
            "type": "MemberExpression",
 | 
			
		||||
            "start": 12,
 | 
			
		||||
            "end": 17,
 | 
			
		||||
            "object": {
 | 
			
		||||
              "type": "Identifier",
 | 
			
		||||
              "type": "Identifier",
 | 
			
		||||
              "start": 12,
 | 
			
		||||
              "end": 14,
 | 
			
		||||
              "name": "b1"
 | 
			
		||||
            },
 | 
			
		||||
            "property": {
 | 
			
		||||
              "type": "Identifier",
 | 
			
		||||
              "type": "Identifier",
 | 
			
		||||
              "start": 15,
 | 
			
		||||
              "end": 16,
 | 
			
		||||
              "name": "x"
 | 
			
		||||
            },
 | 
			
		||||
            "computed": true
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "kind": "const"
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "nonCodeMeta": {
 | 
			
		||||
    "nonCodeNodes": {},
 | 
			
		||||
    "start": []
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,97 @@
 | 
			
		||||
---
 | 
			
		||||
source: kcl/src/parser/parser_impl.rs
 | 
			
		||||
expression: actual
 | 
			
		||||
---
 | 
			
		||||
{
 | 
			
		||||
  "start": 0,
 | 
			
		||||
  "end": 34,
 | 
			
		||||
  "body": [
 | 
			
		||||
    {
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "start": 0,
 | 
			
		||||
      "end": 34,
 | 
			
		||||
      "declarations": [
 | 
			
		||||
        {
 | 
			
		||||
          "type": "VariableDeclarator",
 | 
			
		||||
          "start": 6,
 | 
			
		||||
          "end": 34,
 | 
			
		||||
          "id": {
 | 
			
		||||
            "type": "Identifier",
 | 
			
		||||
            "start": 6,
 | 
			
		||||
            "end": 10,
 | 
			
		||||
            "name": "prop"
 | 
			
		||||
          },
 | 
			
		||||
          "init": {
 | 
			
		||||
            "type": "MemberExpression",
 | 
			
		||||
            "type": "MemberExpression",
 | 
			
		||||
            "start": 13,
 | 
			
		||||
            "end": 34,
 | 
			
		||||
            "object": {
 | 
			
		||||
              "type": "MemberExpression",
 | 
			
		||||
              "type": "MemberExpression",
 | 
			
		||||
              "start": 13,
 | 
			
		||||
              "end": 29,
 | 
			
		||||
              "object": {
 | 
			
		||||
                "type": "MemberExpression",
 | 
			
		||||
                "type": "MemberExpression",
 | 
			
		||||
                "start": 13,
 | 
			
		||||
                "end": 23,
 | 
			
		||||
                "object": {
 | 
			
		||||
                  "type": "MemberExpression",
 | 
			
		||||
                  "type": "MemberExpression",
 | 
			
		||||
                  "start": 13,
 | 
			
		||||
                  "end": 19,
 | 
			
		||||
                  "object": {
 | 
			
		||||
                    "type": "Identifier",
 | 
			
		||||
                    "type": "Identifier",
 | 
			
		||||
                    "start": 13,
 | 
			
		||||
                    "end": 15,
 | 
			
		||||
                    "name": "yo"
 | 
			
		||||
                  },
 | 
			
		||||
                  "property": {
 | 
			
		||||
                    "type": "Identifier",
 | 
			
		||||
                    "type": "Identifier",
 | 
			
		||||
                    "start": 16,
 | 
			
		||||
                    "end": 19,
 | 
			
		||||
                    "name": "one"
 | 
			
		||||
                  },
 | 
			
		||||
                  "computed": false
 | 
			
		||||
                },
 | 
			
		||||
                "property": {
 | 
			
		||||
                  "type": "Identifier",
 | 
			
		||||
                  "type": "Identifier",
 | 
			
		||||
                  "start": 20,
 | 
			
		||||
                  "end": 23,
 | 
			
		||||
                  "name": "two"
 | 
			
		||||
                },
 | 
			
		||||
                "computed": false
 | 
			
		||||
              },
 | 
			
		||||
              "property": {
 | 
			
		||||
                "type": "Identifier",
 | 
			
		||||
                "type": "Identifier",
 | 
			
		||||
                "start": 24,
 | 
			
		||||
                "end": 29,
 | 
			
		||||
                "name": "three"
 | 
			
		||||
              },
 | 
			
		||||
              "computed": false
 | 
			
		||||
            },
 | 
			
		||||
            "property": {
 | 
			
		||||
              "type": "Identifier",
 | 
			
		||||
              "type": "Identifier",
 | 
			
		||||
              "start": 30,
 | 
			
		||||
              "end": 34,
 | 
			
		||||
              "name": "four"
 | 
			
		||||
            },
 | 
			
		||||
            "computed": false
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "kind": "const"
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "nonCodeMeta": {
 | 
			
		||||
    "nonCodeNodes": {},
 | 
			
		||||
    "start": []
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,56 @@
 | 
			
		||||
---
 | 
			
		||||
source: kcl/src/parser/parser_impl.rs
 | 
			
		||||
expression: actual
 | 
			
		||||
---
 | 
			
		||||
{
 | 
			
		||||
  "start": 0,
 | 
			
		||||
  "end": 17,
 | 
			
		||||
  "body": [
 | 
			
		||||
    {
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "start": 0,
 | 
			
		||||
      "end": 17,
 | 
			
		||||
      "declarations": [
 | 
			
		||||
        {
 | 
			
		||||
          "type": "VariableDeclarator",
 | 
			
		||||
          "start": 6,
 | 
			
		||||
          "end": 17,
 | 
			
		||||
          "id": {
 | 
			
		||||
            "type": "Identifier",
 | 
			
		||||
            "start": 6,
 | 
			
		||||
            "end": 9,
 | 
			
		||||
            "name": "pt1"
 | 
			
		||||
          },
 | 
			
		||||
          "init": {
 | 
			
		||||
            "type": "MemberExpression",
 | 
			
		||||
            "type": "MemberExpression",
 | 
			
		||||
            "start": 12,
 | 
			
		||||
            "end": 17,
 | 
			
		||||
            "object": {
 | 
			
		||||
              "type": "Identifier",
 | 
			
		||||
              "type": "Identifier",
 | 
			
		||||
              "start": 12,
 | 
			
		||||
              "end": 14,
 | 
			
		||||
              "name": "b1"
 | 
			
		||||
            },
 | 
			
		||||
            "property": {
 | 
			
		||||
              "type": "Literal",
 | 
			
		||||
              "type": "Literal",
 | 
			
		||||
              "start": 15,
 | 
			
		||||
              "end": 16,
 | 
			
		||||
              "value": 0,
 | 
			
		||||
              "raw": "0"
 | 
			
		||||
            },
 | 
			
		||||
            "computed": false
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "kind": "const"
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "nonCodeMeta": {
 | 
			
		||||
    "nonCodeNodes": {},
 | 
			
		||||
    "start": []
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,56 @@
 | 
			
		||||
---
 | 
			
		||||
source: kcl/src/parser/parser_impl.rs
 | 
			
		||||
expression: actual
 | 
			
		||||
---
 | 
			
		||||
{
 | 
			
		||||
  "start": 0,
 | 
			
		||||
  "end": 22,
 | 
			
		||||
  "body": [
 | 
			
		||||
    {
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "start": 0,
 | 
			
		||||
      "end": 22,
 | 
			
		||||
      "declarations": [
 | 
			
		||||
        {
 | 
			
		||||
          "type": "VariableDeclarator",
 | 
			
		||||
          "start": 6,
 | 
			
		||||
          "end": 22,
 | 
			
		||||
          "id": {
 | 
			
		||||
            "type": "Identifier",
 | 
			
		||||
            "start": 6,
 | 
			
		||||
            "end": 9,
 | 
			
		||||
            "name": "pt1"
 | 
			
		||||
          },
 | 
			
		||||
          "init": {
 | 
			
		||||
            "type": "MemberExpression",
 | 
			
		||||
            "type": "MemberExpression",
 | 
			
		||||
            "start": 12,
 | 
			
		||||
            "end": 22,
 | 
			
		||||
            "object": {
 | 
			
		||||
              "type": "Identifier",
 | 
			
		||||
              "type": "Identifier",
 | 
			
		||||
              "start": 12,
 | 
			
		||||
              "end": 14,
 | 
			
		||||
              "name": "b1"
 | 
			
		||||
            },
 | 
			
		||||
            "property": {
 | 
			
		||||
              "type": "Literal",
 | 
			
		||||
              "type": "Literal",
 | 
			
		||||
              "start": 15,
 | 
			
		||||
              "end": 21,
 | 
			
		||||
              "value": "zero",
 | 
			
		||||
              "raw": "'zero'"
 | 
			
		||||
            },
 | 
			
		||||
            "computed": false
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "kind": "const"
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "nonCodeMeta": {
 | 
			
		||||
    "nonCodeNodes": {},
 | 
			
		||||
    "start": []
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,55 @@
 | 
			
		||||
---
 | 
			
		||||
source: kcl/src/parser/parser_impl.rs
 | 
			
		||||
expression: actual
 | 
			
		||||
---
 | 
			
		||||
{
 | 
			
		||||
  "start": 0,
 | 
			
		||||
  "end": 19,
 | 
			
		||||
  "body": [
 | 
			
		||||
    {
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "start": 0,
 | 
			
		||||
      "end": 19,
 | 
			
		||||
      "declarations": [
 | 
			
		||||
        {
 | 
			
		||||
          "type": "VariableDeclarator",
 | 
			
		||||
          "start": 6,
 | 
			
		||||
          "end": 19,
 | 
			
		||||
          "id": {
 | 
			
		||||
            "type": "Identifier",
 | 
			
		||||
            "start": 6,
 | 
			
		||||
            "end": 9,
 | 
			
		||||
            "name": "pt1"
 | 
			
		||||
          },
 | 
			
		||||
          "init": {
 | 
			
		||||
            "type": "MemberExpression",
 | 
			
		||||
            "type": "MemberExpression",
 | 
			
		||||
            "start": 12,
 | 
			
		||||
            "end": 19,
 | 
			
		||||
            "object": {
 | 
			
		||||
              "type": "Identifier",
 | 
			
		||||
              "type": "Identifier",
 | 
			
		||||
              "start": 12,
 | 
			
		||||
              "end": 14,
 | 
			
		||||
              "name": "b1"
 | 
			
		||||
            },
 | 
			
		||||
            "property": {
 | 
			
		||||
              "type": "Identifier",
 | 
			
		||||
              "type": "Identifier",
 | 
			
		||||
              "start": 15,
 | 
			
		||||
              "end": 19,
 | 
			
		||||
              "name": "zero"
 | 
			
		||||
            },
 | 
			
		||||
            "computed": false
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "kind": "const"
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "nonCodeMeta": {
 | 
			
		||||
    "nonCodeNodes": {},
 | 
			
		||||
    "start": []
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,552 @@
 | 
			
		||||
---
 | 
			
		||||
source: kcl/src/parser/parser_impl.rs
 | 
			
		||||
expression: actual
 | 
			
		||||
---
 | 
			
		||||
{
 | 
			
		||||
  "start": 0,
 | 
			
		||||
  "end": 29,
 | 
			
		||||
  "body": [
 | 
			
		||||
    {
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "type": "VariableDeclaration",
 | 
			
		||||
      "start": 0,
 | 
			
		||||
      "end": 29,
 | 
			
		||||
      "declarations": [
 | 
			
		||||
        {
 | 
			
		||||
          "type": "VariableDeclarator",
 | 
			
		||||
          "start": 6,
 | 
			
		||||
          "end": 29,
 | 
			
		||||
          "id": {
 | 
			
		||||
            "type": "Identifier",
 | 
			
		||||
            "start": 6,
 | 
			
		||||
            "end": 8,
 | 
			
		||||
            "name": "sg"
 | 
			
		||||
          },
 | 
			
		||||
          "init": {
 | 
			
		||||
            "type": "CallExpression",
 | 
			
		||||
            "type": "CallExpression",
 | 
			
		||||
            "start": 11,
 | 
			
		||||
            "end": 29,
 | 
			
		||||
            "callee": {
 | 
			
		||||
              "type": "Identifier",
 | 
			
		||||
              "start": 11,
 | 
			
		||||
              "end": 24,
 | 
			
		||||
              "name": "startSketchAt"
 | 
			
		||||
            },
 | 
			
		||||
            "arguments": [
 | 
			
		||||
              {
 | 
			
		||||
                "type": "Identifier",
 | 
			
		||||
                "type": "Identifier",
 | 
			
		||||
                "start": 25,
 | 
			
		||||
                "end": 28,
 | 
			
		||||
                "name": "pos"
 | 
			
		||||
              }
 | 
			
		||||
            ],
 | 
			
		||||
            "optional": false,
 | 
			
		||||
            "function": {
 | 
			
		||||
              "type": "StdLib",
 | 
			
		||||
              "func": {
 | 
			
		||||
                "name": "startSketchAt",
 | 
			
		||||
                "summary": "Start a sketch at a given point on the 'XY' plane.",
 | 
			
		||||
                "description": "",
 | 
			
		||||
                "tags": [],
 | 
			
		||||
                "args": [
 | 
			
		||||
                  {
 | 
			
		||||
                    "name": "data",
 | 
			
		||||
                    "type": "LineData",
 | 
			
		||||
                    "schema": {
 | 
			
		||||
                      "description": "Data to draw a line.",
 | 
			
		||||
                      "anyOf": [
 | 
			
		||||
                        {
 | 
			
		||||
                          "description": "A point with a tag.",
 | 
			
		||||
                          "type": "object",
 | 
			
		||||
                          "required": [
 | 
			
		||||
                            "tag",
 | 
			
		||||
                            "to"
 | 
			
		||||
                          ],
 | 
			
		||||
                          "properties": {
 | 
			
		||||
                            "tag": {
 | 
			
		||||
                              "description": "The tag.",
 | 
			
		||||
                              "type": "string"
 | 
			
		||||
                            },
 | 
			
		||||
                            "to": {
 | 
			
		||||
                              "description": "The to point.",
 | 
			
		||||
                              "type": "array",
 | 
			
		||||
                              "items": {
 | 
			
		||||
                                "type": "number",
 | 
			
		||||
                                "format": "double"
 | 
			
		||||
                              },
 | 
			
		||||
                              "maxItems": 2,
 | 
			
		||||
                              "minItems": 2
 | 
			
		||||
                            }
 | 
			
		||||
                          }
 | 
			
		||||
                        },
 | 
			
		||||
                        {
 | 
			
		||||
                          "description": "A point.",
 | 
			
		||||
                          "type": "array",
 | 
			
		||||
                          "items": {
 | 
			
		||||
                            "type": "number",
 | 
			
		||||
                            "format": "double"
 | 
			
		||||
                          },
 | 
			
		||||
                          "maxItems": 2,
 | 
			
		||||
                          "minItems": 2
 | 
			
		||||
                        }
 | 
			
		||||
                      ]
 | 
			
		||||
                    },
 | 
			
		||||
                    "required": true
 | 
			
		||||
                  }
 | 
			
		||||
                ],
 | 
			
		||||
                "returnValue": {
 | 
			
		||||
                  "name": "",
 | 
			
		||||
                  "type": "SketchGroup",
 | 
			
		||||
                  "schema": {
 | 
			
		||||
                    "description": "A sketch group is a collection of paths.",
 | 
			
		||||
                    "type": "object",
 | 
			
		||||
                    "required": [
 | 
			
		||||
                      "__meta",
 | 
			
		||||
                      "id",
 | 
			
		||||
                      "position",
 | 
			
		||||
                      "rotation",
 | 
			
		||||
                      "start",
 | 
			
		||||
                      "value"
 | 
			
		||||
                    ],
 | 
			
		||||
                    "properties": {
 | 
			
		||||
                      "__meta": {
 | 
			
		||||
                        "description": "Metadata.",
 | 
			
		||||
                        "type": "array",
 | 
			
		||||
                        "items": {
 | 
			
		||||
                          "description": "Metadata.",
 | 
			
		||||
                          "type": "object",
 | 
			
		||||
                          "required": [
 | 
			
		||||
                            "sourceRange"
 | 
			
		||||
                          ],
 | 
			
		||||
                          "properties": {
 | 
			
		||||
                            "sourceRange": {
 | 
			
		||||
                              "description": "The source range.",
 | 
			
		||||
                              "type": "array",
 | 
			
		||||
                              "items": {
 | 
			
		||||
                                "type": "integer",
 | 
			
		||||
                                "format": "uint",
 | 
			
		||||
                                "minimum": 0.0
 | 
			
		||||
                              },
 | 
			
		||||
                              "maxItems": 2,
 | 
			
		||||
                              "minItems": 2
 | 
			
		||||
                            }
 | 
			
		||||
                          }
 | 
			
		||||
                        }
 | 
			
		||||
                      },
 | 
			
		||||
                      "id": {
 | 
			
		||||
                        "description": "The id of the sketch group.",
 | 
			
		||||
                        "type": "string",
 | 
			
		||||
                        "format": "uuid"
 | 
			
		||||
                      },
 | 
			
		||||
                      "planeId": {
 | 
			
		||||
                        "description": "The plane id of the sketch group.",
 | 
			
		||||
                        "type": "string",
 | 
			
		||||
                        "format": "uuid",
 | 
			
		||||
                        "nullable": true
 | 
			
		||||
                      },
 | 
			
		||||
                      "position": {
 | 
			
		||||
                        "description": "The position of the sketch group.",
 | 
			
		||||
                        "type": "array",
 | 
			
		||||
                        "items": {
 | 
			
		||||
                          "type": "number",
 | 
			
		||||
                          "format": "double"
 | 
			
		||||
                        },
 | 
			
		||||
                        "maxItems": 3,
 | 
			
		||||
                        "minItems": 3
 | 
			
		||||
                      },
 | 
			
		||||
                      "rotation": {
 | 
			
		||||
                        "description": "The rotation of the sketch group.",
 | 
			
		||||
                        "type": "array",
 | 
			
		||||
                        "items": {
 | 
			
		||||
                          "type": "number",
 | 
			
		||||
                          "format": "double"
 | 
			
		||||
                        },
 | 
			
		||||
                        "maxItems": 4,
 | 
			
		||||
                        "minItems": 4
 | 
			
		||||
                      },
 | 
			
		||||
                      "start": {
 | 
			
		||||
                        "description": "The starting path.",
 | 
			
		||||
                        "type": "object",
 | 
			
		||||
                        "required": [
 | 
			
		||||
                          "__geoMeta",
 | 
			
		||||
                          "from",
 | 
			
		||||
                          "name",
 | 
			
		||||
                          "to"
 | 
			
		||||
                        ],
 | 
			
		||||
                        "properties": {
 | 
			
		||||
                          "__geoMeta": {
 | 
			
		||||
                            "description": "Metadata.",
 | 
			
		||||
                            "type": "object",
 | 
			
		||||
                            "required": [
 | 
			
		||||
                              "id",
 | 
			
		||||
                              "sourceRange"
 | 
			
		||||
                            ],
 | 
			
		||||
                            "properties": {
 | 
			
		||||
                              "id": {
 | 
			
		||||
                                "description": "The id of the geometry.",
 | 
			
		||||
                                "type": "string",
 | 
			
		||||
                                "format": "uuid"
 | 
			
		||||
                              },
 | 
			
		||||
                              "sourceRange": {
 | 
			
		||||
                                "description": "The source range.",
 | 
			
		||||
                                "type": "array",
 | 
			
		||||
                                "items": {
 | 
			
		||||
                                  "type": "integer",
 | 
			
		||||
                                  "format": "uint",
 | 
			
		||||
                                  "minimum": 0.0
 | 
			
		||||
                                },
 | 
			
		||||
                                "maxItems": 2,
 | 
			
		||||
                                "minItems": 2
 | 
			
		||||
                              }
 | 
			
		||||
                            }
 | 
			
		||||
                          },
 | 
			
		||||
                          "from": {
 | 
			
		||||
                            "description": "The from point.",
 | 
			
		||||
                            "type": "array",
 | 
			
		||||
                            "items": {
 | 
			
		||||
                              "type": "number",
 | 
			
		||||
                              "format": "double"
 | 
			
		||||
                            },
 | 
			
		||||
                            "maxItems": 2,
 | 
			
		||||
                            "minItems": 2
 | 
			
		||||
                          },
 | 
			
		||||
                          "name": {
 | 
			
		||||
                            "description": "The name of the path.",
 | 
			
		||||
                            "type": "string"
 | 
			
		||||
                          },
 | 
			
		||||
                          "to": {
 | 
			
		||||
                            "description": "The to point.",
 | 
			
		||||
                            "type": "array",
 | 
			
		||||
                            "items": {
 | 
			
		||||
                              "type": "number",
 | 
			
		||||
                              "format": "double"
 | 
			
		||||
                            },
 | 
			
		||||
                            "maxItems": 2,
 | 
			
		||||
                            "minItems": 2
 | 
			
		||||
                          }
 | 
			
		||||
                        }
 | 
			
		||||
                      },
 | 
			
		||||
                      "value": {
 | 
			
		||||
                        "description": "The paths in the sketch group.",
 | 
			
		||||
                        "type": "array",
 | 
			
		||||
                        "items": {
 | 
			
		||||
                          "description": "A path.",
 | 
			
		||||
                          "oneOf": [
 | 
			
		||||
                            {
 | 
			
		||||
                              "description": "A path that goes to a point.",
 | 
			
		||||
                              "type": "object",
 | 
			
		||||
                              "required": [
 | 
			
		||||
                                "__geoMeta",
 | 
			
		||||
                                "from",
 | 
			
		||||
                                "name",
 | 
			
		||||
                                "to",
 | 
			
		||||
                                "type"
 | 
			
		||||
                              ],
 | 
			
		||||
                              "properties": {
 | 
			
		||||
                                "__geoMeta": {
 | 
			
		||||
                                  "description": "Metadata.",
 | 
			
		||||
                                  "type": "object",
 | 
			
		||||
                                  "required": [
 | 
			
		||||
                                    "id",
 | 
			
		||||
                                    "sourceRange"
 | 
			
		||||
                                  ],
 | 
			
		||||
                                  "properties": {
 | 
			
		||||
                                    "id": {
 | 
			
		||||
                                      "description": "The id of the geometry.",
 | 
			
		||||
                                      "type": "string",
 | 
			
		||||
                                      "format": "uuid"
 | 
			
		||||
                                    },
 | 
			
		||||
                                    "sourceRange": {
 | 
			
		||||
                                      "description": "The source range.",
 | 
			
		||||
                                      "type": "array",
 | 
			
		||||
                                      "items": {
 | 
			
		||||
                                        "type": "integer",
 | 
			
		||||
                                        "format": "uint",
 | 
			
		||||
                                        "minimum": 0.0
 | 
			
		||||
                                      },
 | 
			
		||||
                                      "maxItems": 2,
 | 
			
		||||
                                      "minItems": 2
 | 
			
		||||
                                    }
 | 
			
		||||
                                  }
 | 
			
		||||
                                },
 | 
			
		||||
                                "from": {
 | 
			
		||||
                                  "description": "The from point.",
 | 
			
		||||
                                  "type": "array",
 | 
			
		||||
                                  "items": {
 | 
			
		||||
                                    "type": "number",
 | 
			
		||||
                                    "format": "double"
 | 
			
		||||
                                  },
 | 
			
		||||
                                  "maxItems": 2,
 | 
			
		||||
                                  "minItems": 2
 | 
			
		||||
                                },
 | 
			
		||||
                                "name": {
 | 
			
		||||
                                  "description": "The name of the path.",
 | 
			
		||||
                                  "type": "string"
 | 
			
		||||
                                },
 | 
			
		||||
                                "to": {
 | 
			
		||||
                                  "description": "The to point.",
 | 
			
		||||
                                  "type": "array",
 | 
			
		||||
                                  "items": {
 | 
			
		||||
                                    "type": "number",
 | 
			
		||||
                                    "format": "double"
 | 
			
		||||
                                  },
 | 
			
		||||
                                  "maxItems": 2,
 | 
			
		||||
                                  "minItems": 2
 | 
			
		||||
                                },
 | 
			
		||||
                                "type": {
 | 
			
		||||
                                  "type": "string",
 | 
			
		||||
                                  "enum": [
 | 
			
		||||
                                    "toPoint"
 | 
			
		||||
                                  ]
 | 
			
		||||
                                }
 | 
			
		||||
                              }
 | 
			
		||||
                            },
 | 
			
		||||
                            {
 | 
			
		||||
                              "description": "A path that is horizontal.",
 | 
			
		||||
                              "type": "object",
 | 
			
		||||
                              "required": [
 | 
			
		||||
                                "__geoMeta",
 | 
			
		||||
                                "from",
 | 
			
		||||
                                "name",
 | 
			
		||||
                                "to",
 | 
			
		||||
                                "type",
 | 
			
		||||
                                "x"
 | 
			
		||||
                              ],
 | 
			
		||||
                              "properties": {
 | 
			
		||||
                                "__geoMeta": {
 | 
			
		||||
                                  "description": "Metadata.",
 | 
			
		||||
                                  "type": "object",
 | 
			
		||||
                                  "required": [
 | 
			
		||||
                                    "id",
 | 
			
		||||
                                    "sourceRange"
 | 
			
		||||
                                  ],
 | 
			
		||||
                                  "properties": {
 | 
			
		||||
                                    "id": {
 | 
			
		||||
                                      "description": "The id of the geometry.",
 | 
			
		||||
                                      "type": "string",
 | 
			
		||||
                                      "format": "uuid"
 | 
			
		||||
                                    },
 | 
			
		||||
                                    "sourceRange": {
 | 
			
		||||
                                      "description": "The source range.",
 | 
			
		||||
                                      "type": "array",
 | 
			
		||||
                                      "items": {
 | 
			
		||||
                                        "type": "integer",
 | 
			
		||||
                                        "format": "uint",
 | 
			
		||||
                                        "minimum": 0.0
 | 
			
		||||
                                      },
 | 
			
		||||
                                      "maxItems": 2,
 | 
			
		||||
                                      "minItems": 2
 | 
			
		||||
                                    }
 | 
			
		||||
                                  }
 | 
			
		||||
                                },
 | 
			
		||||
                                "from": {
 | 
			
		||||
                                  "description": "The from point.",
 | 
			
		||||
                                  "type": "array",
 | 
			
		||||
                                  "items": {
 | 
			
		||||
                                    "type": "number",
 | 
			
		||||
                                    "format": "double"
 | 
			
		||||
                                  },
 | 
			
		||||
                                  "maxItems": 2,
 | 
			
		||||
                                  "minItems": 2
 | 
			
		||||
                                },
 | 
			
		||||
                                "name": {
 | 
			
		||||
                                  "description": "The name of the path.",
 | 
			
		||||
                                  "type": "string"
 | 
			
		||||
                                },
 | 
			
		||||
                                "to": {
 | 
			
		||||
                                  "description": "The to point.",
 | 
			
		||||
                                  "type": "array",
 | 
			
		||||
                                  "items": {
 | 
			
		||||
                                    "type": "number",
 | 
			
		||||
                                    "format": "double"
 | 
			
		||||
                                  },
 | 
			
		||||
                                  "maxItems": 2,
 | 
			
		||||
                                  "minItems": 2
 | 
			
		||||
                                },
 | 
			
		||||
                                "type": {
 | 
			
		||||
                                  "type": "string",
 | 
			
		||||
                                  "enum": [
 | 
			
		||||
                                    "horizontal"
 | 
			
		||||
                                  ]
 | 
			
		||||
                                },
 | 
			
		||||
                                "x": {
 | 
			
		||||
                                  "description": "The x coordinate.",
 | 
			
		||||
                                  "type": "number",
 | 
			
		||||
                                  "format": "double"
 | 
			
		||||
                                }
 | 
			
		||||
                              }
 | 
			
		||||
                            },
 | 
			
		||||
                            {
 | 
			
		||||
                              "description": "An angled line to.",
 | 
			
		||||
                              "type": "object",
 | 
			
		||||
                              "required": [
 | 
			
		||||
                                "__geoMeta",
 | 
			
		||||
                                "from",
 | 
			
		||||
                                "name",
 | 
			
		||||
                                "to",
 | 
			
		||||
                                "type"
 | 
			
		||||
                              ],
 | 
			
		||||
                              "properties": {
 | 
			
		||||
                                "__geoMeta": {
 | 
			
		||||
                                  "description": "Metadata.",
 | 
			
		||||
                                  "type": "object",
 | 
			
		||||
                                  "required": [
 | 
			
		||||
                                    "id",
 | 
			
		||||
                                    "sourceRange"
 | 
			
		||||
                                  ],
 | 
			
		||||
                                  "properties": {
 | 
			
		||||
                                    "id": {
 | 
			
		||||
                                      "description": "The id of the geometry.",
 | 
			
		||||
                                      "type": "string",
 | 
			
		||||
                                      "format": "uuid"
 | 
			
		||||
                                    },
 | 
			
		||||
                                    "sourceRange": {
 | 
			
		||||
                                      "description": "The source range.",
 | 
			
		||||
                                      "type": "array",
 | 
			
		||||
                                      "items": {
 | 
			
		||||
                                        "type": "integer",
 | 
			
		||||
                                        "format": "uint",
 | 
			
		||||
                                        "minimum": 0.0
 | 
			
		||||
                                      },
 | 
			
		||||
                                      "maxItems": 2,
 | 
			
		||||
                                      "minItems": 2
 | 
			
		||||
                                    }
 | 
			
		||||
                                  }
 | 
			
		||||
                                },
 | 
			
		||||
                                "from": {
 | 
			
		||||
                                  "description": "The from point.",
 | 
			
		||||
                                  "type": "array",
 | 
			
		||||
                                  "items": {
 | 
			
		||||
                                    "type": "number",
 | 
			
		||||
                                    "format": "double"
 | 
			
		||||
                                  },
 | 
			
		||||
                                  "maxItems": 2,
 | 
			
		||||
                                  "minItems": 2
 | 
			
		||||
                                },
 | 
			
		||||
                                "name": {
 | 
			
		||||
                                  "description": "The name of the path.",
 | 
			
		||||
                                  "type": "string"
 | 
			
		||||
                                },
 | 
			
		||||
                                "to": {
 | 
			
		||||
                                  "description": "The to point.",
 | 
			
		||||
                                  "type": "array",
 | 
			
		||||
                                  "items": {
 | 
			
		||||
                                    "type": "number",
 | 
			
		||||
                                    "format": "double"
 | 
			
		||||
                                  },
 | 
			
		||||
                                  "maxItems": 2,
 | 
			
		||||
                                  "minItems": 2
 | 
			
		||||
                                },
 | 
			
		||||
                                "type": {
 | 
			
		||||
                                  "type": "string",
 | 
			
		||||
                                  "enum": [
 | 
			
		||||
                                    "angledLineTo"
 | 
			
		||||
                                  ]
 | 
			
		||||
                                },
 | 
			
		||||
                                "x": {
 | 
			
		||||
                                  "description": "The x coordinate.",
 | 
			
		||||
                                  "type": "number",
 | 
			
		||||
                                  "format": "double",
 | 
			
		||||
                                  "nullable": true
 | 
			
		||||
                                },
 | 
			
		||||
                                "y": {
 | 
			
		||||
                                  "description": "The y coordinate.",
 | 
			
		||||
                                  "type": "number",
 | 
			
		||||
                                  "format": "double",
 | 
			
		||||
                                  "nullable": true
 | 
			
		||||
                                }
 | 
			
		||||
                              }
 | 
			
		||||
                            },
 | 
			
		||||
                            {
 | 
			
		||||
                              "description": "A base path.",
 | 
			
		||||
                              "type": "object",
 | 
			
		||||
                              "required": [
 | 
			
		||||
                                "__geoMeta",
 | 
			
		||||
                                "from",
 | 
			
		||||
                                "name",
 | 
			
		||||
                                "to",
 | 
			
		||||
                                "type"
 | 
			
		||||
                              ],
 | 
			
		||||
                              "properties": {
 | 
			
		||||
                                "__geoMeta": {
 | 
			
		||||
                                  "description": "Metadata.",
 | 
			
		||||
                                  "type": "object",
 | 
			
		||||
                                  "required": [
 | 
			
		||||
                                    "id",
 | 
			
		||||
                                    "sourceRange"
 | 
			
		||||
                                  ],
 | 
			
		||||
                                  "properties": {
 | 
			
		||||
                                    "id": {
 | 
			
		||||
                                      "description": "The id of the geometry.",
 | 
			
		||||
                                      "type": "string",
 | 
			
		||||
                                      "format": "uuid"
 | 
			
		||||
                                    },
 | 
			
		||||
                                    "sourceRange": {
 | 
			
		||||
                                      "description": "The source range.",
 | 
			
		||||
                                      "type": "array",
 | 
			
		||||
                                      "items": {
 | 
			
		||||
                                        "type": "integer",
 | 
			
		||||
                                        "format": "uint",
 | 
			
		||||
                                        "minimum": 0.0
 | 
			
		||||
                                      },
 | 
			
		||||
                                      "maxItems": 2,
 | 
			
		||||
                                      "minItems": 2
 | 
			
		||||
                                    }
 | 
			
		||||
                                  }
 | 
			
		||||
                                },
 | 
			
		||||
                                "from": {
 | 
			
		||||
                                  "description": "The from point.",
 | 
			
		||||
                                  "type": "array",
 | 
			
		||||
                                  "items": {
 | 
			
		||||
                                    "type": "number",
 | 
			
		||||
                                    "format": "double"
 | 
			
		||||
                                  },
 | 
			
		||||
                                  "maxItems": 2,
 | 
			
		||||
                                  "minItems": 2
 | 
			
		||||
                                },
 | 
			
		||||
                                "name": {
 | 
			
		||||
                                  "description": "The name of the path.",
 | 
			
		||||
                                  "type": "string"
 | 
			
		||||
                                },
 | 
			
		||||
                                "to": {
 | 
			
		||||
                                  "description": "The to point.",
 | 
			
		||||
                                  "type": "array",
 | 
			
		||||
                                  "items": {
 | 
			
		||||
                                    "type": "number",
 | 
			
		||||
                                    "format": "double"
 | 
			
		||||
                                  },
 | 
			
		||||
                                  "maxItems": 2,
 | 
			
		||||
                                  "minItems": 2
 | 
			
		||||
                                },
 | 
			
		||||
                                "type": {
 | 
			
		||||
                                  "type": "string",
 | 
			
		||||
                                  "enum": [
 | 
			
		||||
                                    "base"
 | 
			
		||||
                                  ]
 | 
			
		||||
                                }
 | 
			
		||||
                              }
 | 
			
		||||
                            }
 | 
			
		||||
                          ]
 | 
			
		||||
                        }
 | 
			
		||||
                      }
 | 
			
		||||
                    }
 | 
			
		||||
                  },
 | 
			
		||||
                  "required": true
 | 
			
		||||
                },
 | 
			
		||||
                "unpublished": false,
 | 
			
		||||
                "deprecated": false
 | 
			
		||||
              }
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "kind": "const"
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "nonCodeMeta": {
 | 
			
		||||
    "nonCodeNodes": {},
 | 
			
		||||
    "start": []
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
		Reference in New Issue
	
	Block a user