Accept idents as KW args (#6644)
Support kw arg/local variable shorthand Signed-off-by: Nick Cameron <nrc@ncameron.org>
This commit is contained in:
		@ -57,9 +57,9 @@ fn connectorSketch(@plane, start) {
 | 
			
		||||
 | 
			
		||||
export fn connector(@plane, length) {
 | 
			
		||||
  connectorSketch(plane, start = [-12, 8])
 | 
			
		||||
    |> extrude(length = length)
 | 
			
		||||
    |> extrude(length)
 | 
			
		||||
  connectorSketch(plane, start = [16, 8])
 | 
			
		||||
    |> extrude(length = length)
 | 
			
		||||
    |> extrude(length)
 | 
			
		||||
  return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -79,7 +79,7 @@ fn seatSlatSketch(@plane) {
 | 
			
		||||
 | 
			
		||||
export fn seatSlats(@plane, length) {
 | 
			
		||||
  seatSlatSketch(plane)
 | 
			
		||||
    |> extrude(length = length)
 | 
			
		||||
    |> extrude(length)
 | 
			
		||||
  return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -99,7 +99,7 @@ fn backSlatsSketch(@plane) {
 | 
			
		||||
 | 
			
		||||
export fn backSlats(@plane, length) {
 | 
			
		||||
  b = backSlatsSketch(plane)
 | 
			
		||||
    |> extrude(length = length)
 | 
			
		||||
    |> extrude(length)
 | 
			
		||||
  return b
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -15,7 +15,7 @@ holeDia = 4
 | 
			
		||||
sketch001 = startSketchOn(XY)
 | 
			
		||||
  |> startProfile(at = [0, 0])
 | 
			
		||||
  |> angledLine(angle = 0, length = width, tag = $rectangleSegmentA001)
 | 
			
		||||
  |> angledLine(angle = segAng(rectangleSegmentA001) + 90, length = length, tag = $rectangleSegmentB001)
 | 
			
		||||
  |> angledLine(angle = segAng(rectangleSegmentA001) + 90, length, tag = $rectangleSegmentB001)
 | 
			
		||||
  |> angledLine(angle = segAng(rectangleSegmentA001), length = -segLen(rectangleSegmentA001), tag = $rectangleSegmentC001)
 | 
			
		||||
  |> line(endAbsolute = [profileStartX(%), profileStartY(%)], tag = $rectangleSegmentD001)
 | 
			
		||||
  |> close()
 | 
			
		||||
@ -74,7 +74,7 @@ function001([
 | 
			
		||||
sketch003 = startSketchOn(XY)
 | 
			
		||||
  |> startProfile(at = [width * 1.2, 0])
 | 
			
		||||
  |> angledLine(angle = 0, length = width, tag = $rectangleSegmentA002)
 | 
			
		||||
  |> angledLine(angle = segAng(rectangleSegmentA001) + 90, length = length, tag = $rectangleSegmentB002)
 | 
			
		||||
  |> angledLine(angle = segAng(rectangleSegmentA001) + 90, length, tag = $rectangleSegmentB002)
 | 
			
		||||
  |> angledLine(angle = segAng(rectangleSegmentA001), length = -segLen(rectangleSegmentA001), tag = $rectangleSegmentC002)
 | 
			
		||||
  |> line(endAbsolute = [profileStartX(%), profileStartY(%)], tag = $rectangleSegmentD002)
 | 
			
		||||
  |> close()
 | 
			
		||||
 | 
			
		||||
@ -1311,10 +1311,15 @@ impl Node<CallExpressionKw> {
 | 
			
		||||
                Some(l) => {
 | 
			
		||||
                    fn_args.insert(l.name.clone(), arg);
 | 
			
		||||
                }
 | 
			
		||||
                None => errors.push(arg),
 | 
			
		||||
                None => {
 | 
			
		||||
                    if let Some(id) = arg_expr.arg.ident_name() {
 | 
			
		||||
                        fn_args.insert(id.to_owned(), arg);
 | 
			
		||||
                    } else {
 | 
			
		||||
                        errors.push(arg);
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        let fn_args = fn_args; // remove mutability
 | 
			
		||||
 | 
			
		||||
        // Evaluate the unlabeled first param, if any exists.
 | 
			
		||||
        let unlabeled = if let Some(ref arg_expr) = self.unlabeled {
 | 
			
		||||
@ -1323,12 +1328,15 @@ impl Node<CallExpressionKw> {
 | 
			
		||||
            let value = ctx
 | 
			
		||||
                .execute_expr(arg_expr, exec_state, &metadata, &[], StatementKind::Expression)
 | 
			
		||||
                .await?;
 | 
			
		||||
            Some(Arg::new(value, source_range))
 | 
			
		||||
 | 
			
		||||
            let label = arg_expr.ident_name().map(str::to_owned);
 | 
			
		||||
 | 
			
		||||
            Some((label, Arg::new(value, source_range)))
 | 
			
		||||
        } else {
 | 
			
		||||
            None
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        let args = Args::new_kw(
 | 
			
		||||
        let mut args = Args::new_kw(
 | 
			
		||||
            KwArgs {
 | 
			
		||||
                unlabeled,
 | 
			
		||||
                labeled: fn_args,
 | 
			
		||||
@ -1347,6 +1355,20 @@ impl Node<CallExpressionKw> {
 | 
			
		||||
                    ));
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                let formals = func.args(false);
 | 
			
		||||
 | 
			
		||||
                // If it's possible the input arg was meant to be labelled and we probably don't want to use
 | 
			
		||||
                // it as the input arg, then treat it as labelled.
 | 
			
		||||
                if let Some((Some(label), _)) = &args.kw_args.unlabeled {
 | 
			
		||||
                    if (formals.iter().all(|a| a.label_required) || exec_state.pipe_value().is_some())
 | 
			
		||||
                        && formals.iter().any(|a| &a.name == label && a.label_required)
 | 
			
		||||
                        && !args.kw_args.labeled.contains_key(label)
 | 
			
		||||
                    {
 | 
			
		||||
                        let (label, arg) = args.kw_args.unlabeled.take().unwrap();
 | 
			
		||||
                        args.kw_args.labeled.insert(label.unwrap(), arg);
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                #[cfg(feature = "artifact-graph")]
 | 
			
		||||
                let op = if func.feature_tree_operation() {
 | 
			
		||||
                    let op_labeled_args = args
 | 
			
		||||
@ -1368,7 +1390,6 @@ impl Node<CallExpressionKw> {
 | 
			
		||||
                    None
 | 
			
		||||
                };
 | 
			
		||||
 | 
			
		||||
                let formals = func.args(false);
 | 
			
		||||
                for (label, arg) in &args.kw_args.labeled {
 | 
			
		||||
                    match formals.iter().find(|p| &p.name == label) {
 | 
			
		||||
                        Some(p) => {
 | 
			
		||||
@ -1865,6 +1886,21 @@ fn type_check_params_kw(
 | 
			
		||||
    args: &mut KwArgs,
 | 
			
		||||
    exec_state: &mut ExecState,
 | 
			
		||||
) -> Result<(), KclError> {
 | 
			
		||||
    // If it's possible the input arg was meant to be labelled and we probably don't want to use
 | 
			
		||||
    // it as the input arg, then treat it as labelled.
 | 
			
		||||
    if let Some((Some(label), _)) = &args.unlabeled {
 | 
			
		||||
        if (function_expression.params.iter().all(|p| p.labeled) || exec_state.pipe_value().is_some())
 | 
			
		||||
            && function_expression
 | 
			
		||||
                .params
 | 
			
		||||
                .iter()
 | 
			
		||||
                .any(|p| &p.identifier.name == label && p.labeled)
 | 
			
		||||
            && !args.labeled.contains_key(label)
 | 
			
		||||
        {
 | 
			
		||||
            let (label, arg) = args.unlabeled.take().unwrap();
 | 
			
		||||
            args.labeled.insert(label.unwrap(), arg);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    for (label, arg) in &mut args.labeled {
 | 
			
		||||
        match function_expression.params.iter().find(|p| &p.identifier.name == label) {
 | 
			
		||||
            Some(p) => {
 | 
			
		||||
@ -1959,10 +1995,11 @@ fn type_check_params_kw(
 | 
			
		||||
    if let Some(arg) = &mut args.unlabeled {
 | 
			
		||||
        if let Some(p) = function_expression.params.iter().find(|p| !p.labeled) {
 | 
			
		||||
            if let Some(ty) = &p.type_ {
 | 
			
		||||
                arg.value = arg
 | 
			
		||||
                arg.1.value = arg
 | 
			
		||||
                    .1
 | 
			
		||||
                    .value
 | 
			
		||||
                    .coerce(
 | 
			
		||||
                        &RuntimeType::from_parsed(ty.inner.clone(), exec_state, arg.source_range)
 | 
			
		||||
                        &RuntimeType::from_parsed(ty.inner.clone(), exec_state, arg.1.source_range)
 | 
			
		||||
                            .map_err(|e| KclError::Semantic(e.into()))?,
 | 
			
		||||
                        exec_state,
 | 
			
		||||
                    )
 | 
			
		||||
@ -1974,9 +2011,9 @@ fn type_check_params_kw(
 | 
			
		||||
                                    .map(|n| format!("`{}`", n))
 | 
			
		||||
                                    .unwrap_or_else(|| "this function".to_owned()),
 | 
			
		||||
                                ty.inner,
 | 
			
		||||
                                arg.value.human_friendly_type()
 | 
			
		||||
                                arg.1.value.human_friendly_type()
 | 
			
		||||
                            ),
 | 
			
		||||
                            source_ranges: vec![arg.source_range],
 | 
			
		||||
                            source_ranges: vec![arg.1.source_range],
 | 
			
		||||
                        })
 | 
			
		||||
                    })?;
 | 
			
		||||
            }
 | 
			
		||||
@ -2139,10 +2176,11 @@ impl FunctionSource {
 | 
			
		||||
                if let Some(arg) = &mut args.kw_args.unlabeled {
 | 
			
		||||
                    if let Some(p) = ast.params.iter().find(|p| !p.labeled) {
 | 
			
		||||
                        if let Some(ty) = &p.type_ {
 | 
			
		||||
                            arg.value = arg
 | 
			
		||||
                            arg.1.value = arg
 | 
			
		||||
                                .1
 | 
			
		||||
                                .value
 | 
			
		||||
                                .coerce(
 | 
			
		||||
                                    &RuntimeType::from_parsed(ty.inner.clone(), exec_state, arg.source_range)
 | 
			
		||||
                                    &RuntimeType::from_parsed(ty.inner.clone(), exec_state, arg.1.source_range)
 | 
			
		||||
                                        .map_err(|e| KclError::Semantic(e.into()))?,
 | 
			
		||||
                                    exec_state,
 | 
			
		||||
                                )
 | 
			
		||||
@ -2152,7 +2190,7 @@ impl FunctionSource {
 | 
			
		||||
                                            "The input argument of {} requires a value with type `{}`, but found {}",
 | 
			
		||||
                                            props.name,
 | 
			
		||||
                                            ty.inner,
 | 
			
		||||
                                            arg.value.human_friendly_type(),
 | 
			
		||||
                                            arg.1.value.human_friendly_type(),
 | 
			
		||||
                                        ),
 | 
			
		||||
                                        source_ranges: vec![callsite],
 | 
			
		||||
                                    })
 | 
			
		||||
@ -2224,7 +2262,7 @@ impl FunctionSource {
 | 
			
		||||
                                .kw_args
 | 
			
		||||
                                .unlabeled
 | 
			
		||||
                                .as_ref()
 | 
			
		||||
                                .map(|arg| OpArg::new(OpKclValue::from(&arg.value), arg.source_range)),
 | 
			
		||||
                                .map(|arg| OpArg::new(OpKclValue::from(&arg.1.value), arg.1.source_range)),
 | 
			
		||||
                            labeled_args: op_labeled_args,
 | 
			
		||||
                        },
 | 
			
		||||
                        source_range: callsite,
 | 
			
		||||
@ -2665,13 +2703,12 @@ a = foo()
 | 
			
		||||
 | 
			
		||||
    #[tokio::test(flavor = "multi_thread")]
 | 
			
		||||
    async fn test_sensible_error_when_missing_equals_in_kwarg() {
 | 
			
		||||
        for (i, call) in ["f(x=1,y)", "f(x=1,3,z)", "f(x=1,y,z=1)", "f(x=1, 3 + 4, z=1)"]
 | 
			
		||||
        for (i, call) in ["f(x=1,3,0)", "f(x=1,3,z)", "f(x=1,0,z=1)", "f(x=1, 3 + 4, z)"]
 | 
			
		||||
            .into_iter()
 | 
			
		||||
            .enumerate()
 | 
			
		||||
        {
 | 
			
		||||
            let program = format!(
 | 
			
		||||
                "fn foo() {{ return 0 }}
 | 
			
		||||
y = 42
 | 
			
		||||
z = 0
 | 
			
		||||
fn f(x, y, z) {{ return 0 }}
 | 
			
		||||
{call}"
 | 
			
		||||
@ -2691,9 +2728,10 @@ fn f(x, y, z) {{ return 0 }}
 | 
			
		||||
 | 
			
		||||
    #[tokio::test(flavor = "multi_thread")]
 | 
			
		||||
    async fn default_param_for_unlabeled() {
 | 
			
		||||
        // Tests that the input param for myExtrude is taken from the pipeline value.
 | 
			
		||||
        // Tests that the input param for myExtrude is taken from the pipeline value and same-name
 | 
			
		||||
        // keyword args.
 | 
			
		||||
        let ast = r#"fn myExtrude(@sk, length) {
 | 
			
		||||
  return extrude(sk, length = length)
 | 
			
		||||
  return extrude(sk, length)
 | 
			
		||||
}
 | 
			
		||||
sketch001 = startSketchOn(XY)
 | 
			
		||||
  |> circle(center = [0, 0], radius = 93.75)
 | 
			
		||||
@ -2703,6 +2741,18 @@ sketch001 = startSketchOn(XY)
 | 
			
		||||
        parse_execute(ast).await.unwrap();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    #[tokio::test(flavor = "multi_thread")]
 | 
			
		||||
    async fn dont_use_unlabelled_as_input() {
 | 
			
		||||
        // `length` should be used as the `length` argument to extrude, not the unlabelled input
 | 
			
		||||
        let ast = r#"length = 10
 | 
			
		||||
startSketchOn(XY)
 | 
			
		||||
  |> circle(center = [0, 0], radius = 93.75)
 | 
			
		||||
  |> extrude(length)
 | 
			
		||||
"#;
 | 
			
		||||
 | 
			
		||||
        parse_execute(ast).await.unwrap();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    #[tokio::test(flavor = "multi_thread")]
 | 
			
		||||
    async fn ascription_in_binop() {
 | 
			
		||||
        let ast = r#"foo = tan(0): number(rad) - 4deg"#;
 | 
			
		||||
 | 
			
		||||
@ -186,7 +186,7 @@ impl<T> Node<T> {
 | 
			
		||||
        self.comment_start = start;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    pub fn map_ref<'a, U: 'a>(&'a self, f: fn(&'a T) -> U) -> Node<U> {
 | 
			
		||||
    pub fn map_ref<'a, U: 'a>(&'a self, f: impl Fn(&'a T) -> U) -> Node<U> {
 | 
			
		||||
        Node {
 | 
			
		||||
            inner: f(&self.inner),
 | 
			
		||||
            start: self.start,
 | 
			
		||||
@ -1187,7 +1187,7 @@ impl Expr {
 | 
			
		||||
 | 
			
		||||
    pub fn ident_name(&self) -> Option<&str> {
 | 
			
		||||
        match self {
 | 
			
		||||
            Expr::Name(ident) => Some(&ident.name.name),
 | 
			
		||||
            Expr::Name(name) => name.local_ident().map(|n| n.inner),
 | 
			
		||||
            _ => None,
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
@ -2371,7 +2371,7 @@ impl Name {
 | 
			
		||||
 | 
			
		||||
    pub fn local_ident(&self) -> Option<Node<&str>> {
 | 
			
		||||
        if self.path.is_empty() && !self.abs_path {
 | 
			
		||||
            Some(self.name.map_ref(|n| &n.name))
 | 
			
		||||
            Some(self.name.map_ref(|n| &*n.name))
 | 
			
		||||
        } else {
 | 
			
		||||
            None
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@ -59,7 +59,9 @@ impl Arg {
 | 
			
		||||
#[derive(Debug, Clone, Default)]
 | 
			
		||||
pub struct KwArgs {
 | 
			
		||||
    /// Unlabeled keyword args. Currently only the first arg can be unlabeled.
 | 
			
		||||
    pub unlabeled: Option<Arg>,
 | 
			
		||||
    /// If the argument was a local variable, then the first element of the tuple is its name
 | 
			
		||||
    /// which may be used to treat this arg as a labelled arg.
 | 
			
		||||
    pub unlabeled: Option<(Option<String>, Arg)>,
 | 
			
		||||
    /// Labeled args.
 | 
			
		||||
    pub labeled: IndexMap<String, Arg>,
 | 
			
		||||
    pub errors: Vec<Arg>,
 | 
			
		||||
@ -342,6 +344,7 @@ impl Args {
 | 
			
		||||
        self.kw_args
 | 
			
		||||
            .unlabeled
 | 
			
		||||
            .as_ref()
 | 
			
		||||
            .map(|(_, a)| a)
 | 
			
		||||
            .or(self.args.first())
 | 
			
		||||
            .or(self.pipe_value.as_ref())
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -48,7 +48,7 @@ async fn call_map_closure(
 | 
			
		||||
    ctxt: &ExecutorContext,
 | 
			
		||||
) -> Result<KclValue, KclError> {
 | 
			
		||||
    let kw_args = KwArgs {
 | 
			
		||||
        unlabeled: Some(Arg::new(input, source_range)),
 | 
			
		||||
        unlabeled: Some((None, Arg::new(input, source_range))),
 | 
			
		||||
        labeled: Default::default(),
 | 
			
		||||
        errors: Vec::new(),
 | 
			
		||||
    };
 | 
			
		||||
@ -104,7 +104,7 @@ async fn call_reduce_closure(
 | 
			
		||||
    let mut labeled = IndexMap::with_capacity(1);
 | 
			
		||||
    labeled.insert("accum".to_string(), Arg::new(accum, source_range));
 | 
			
		||||
    let kw_args = KwArgs {
 | 
			
		||||
        unlabeled: Some(Arg::new(elem, source_range)),
 | 
			
		||||
        unlabeled: Some((None, Arg::new(elem, source_range))),
 | 
			
		||||
        labeled,
 | 
			
		||||
        errors: Vec::new(),
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
@ -424,7 +424,7 @@ async fn make_transform<T: GeometryTrait>(
 | 
			
		||||
        meta: vec![source_range.into()],
 | 
			
		||||
    };
 | 
			
		||||
    let kw_args = KwArgs {
 | 
			
		||||
        unlabeled: Some(Arg::new(repetition_num, source_range)),
 | 
			
		||||
        unlabeled: Some((None, Arg::new(repetition_num, source_range))),
 | 
			
		||||
        labeled: Default::default(),
 | 
			
		||||
        errors: Vec::new(),
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
@ -456,13 +456,7 @@ description: Result of parsing enclosure.kcl
 | 
			
		||||
                  },
 | 
			
		||||
                  {
 | 
			
		||||
                    "type": "LabeledArg",
 | 
			
		||||
                    "label": {
 | 
			
		||||
                      "commentStart": 0,
 | 
			
		||||
                      "end": 0,
 | 
			
		||||
                      "name": "length",
 | 
			
		||||
                      "start": 0,
 | 
			
		||||
                      "type": "Identifier"
 | 
			
		||||
                    },
 | 
			
		||||
                    "label": null,
 | 
			
		||||
                    "arg": {
 | 
			
		||||
                      "abs_path": false,
 | 
			
		||||
                      "commentStart": 0,
 | 
			
		||||
@ -3178,13 +3172,7 @@ description: Result of parsing enclosure.kcl
 | 
			
		||||
                  },
 | 
			
		||||
                  {
 | 
			
		||||
                    "type": "LabeledArg",
 | 
			
		||||
                    "label": {
 | 
			
		||||
                      "commentStart": 0,
 | 
			
		||||
                      "end": 0,
 | 
			
		||||
                      "name": "length",
 | 
			
		||||
                      "start": 0,
 | 
			
		||||
                      "type": "Identifier"
 | 
			
		||||
                    },
 | 
			
		||||
                    "label": null,
 | 
			
		||||
                    "arg": {
 | 
			
		||||
                      "abs_path": false,
 | 
			
		||||
                      "commentStart": 0,
 | 
			
		||||
 | 
			
		||||
@ -28,9 +28,9 @@ description: Variables in memory after executing enclosure.kcl
 | 
			
		||||
          "id": "[uuid]",
 | 
			
		||||
          "sourceRange": [],
 | 
			
		||||
          "tag": {
 | 
			
		||||
            "commentStart": 485,
 | 
			
		||||
            "end": 506,
 | 
			
		||||
            "start": 485,
 | 
			
		||||
            "commentStart": 476,
 | 
			
		||||
            "end": 497,
 | 
			
		||||
            "start": 476,
 | 
			
		||||
            "type": "TagDeclarator",
 | 
			
		||||
            "value": "rectangleSegmentB001"
 | 
			
		||||
          },
 | 
			
		||||
@ -41,9 +41,9 @@ description: Variables in memory after executing enclosure.kcl
 | 
			
		||||
          "id": "[uuid]",
 | 
			
		||||
          "sourceRange": [],
 | 
			
		||||
          "tag": {
 | 
			
		||||
            "commentStart": 608,
 | 
			
		||||
            "end": 629,
 | 
			
		||||
            "start": 608,
 | 
			
		||||
            "commentStart": 599,
 | 
			
		||||
            "end": 620,
 | 
			
		||||
            "start": 599,
 | 
			
		||||
            "type": "TagDeclarator",
 | 
			
		||||
            "value": "rectangleSegmentC001"
 | 
			
		||||
          },
 | 
			
		||||
@ -54,9 +54,9 @@ description: Variables in memory after executing enclosure.kcl
 | 
			
		||||
          "id": "[uuid]",
 | 
			
		||||
          "sourceRange": [],
 | 
			
		||||
          "tag": {
 | 
			
		||||
            "commentStart": 699,
 | 
			
		||||
            "end": 720,
 | 
			
		||||
            "start": 699,
 | 
			
		||||
            "commentStart": 690,
 | 
			
		||||
            "end": 711,
 | 
			
		||||
            "start": 690,
 | 
			
		||||
            "type": "TagDeclarator",
 | 
			
		||||
            "value": "rectangleSegmentD001"
 | 
			
		||||
          },
 | 
			
		||||
@ -102,9 +102,9 @@ description: Variables in memory after executing enclosure.kcl
 | 
			
		||||
              0.0
 | 
			
		||||
            ],
 | 
			
		||||
            "tag": {
 | 
			
		||||
              "commentStart": 485,
 | 
			
		||||
              "end": 506,
 | 
			
		||||
              "start": 485,
 | 
			
		||||
              "commentStart": 476,
 | 
			
		||||
              "end": 497,
 | 
			
		||||
              "start": 476,
 | 
			
		||||
              "type": "TagDeclarator",
 | 
			
		||||
              "value": "rectangleSegmentB001"
 | 
			
		||||
            },
 | 
			
		||||
@ -127,9 +127,9 @@ description: Variables in memory after executing enclosure.kcl
 | 
			
		||||
              175.0
 | 
			
		||||
            ],
 | 
			
		||||
            "tag": {
 | 
			
		||||
              "commentStart": 608,
 | 
			
		||||
              "end": 629,
 | 
			
		||||
              "start": 608,
 | 
			
		||||
              "commentStart": 599,
 | 
			
		||||
              "end": 620,
 | 
			
		||||
              "start": 599,
 | 
			
		||||
              "type": "TagDeclarator",
 | 
			
		||||
              "value": "rectangleSegmentC001"
 | 
			
		||||
            },
 | 
			
		||||
@ -152,9 +152,9 @@ description: Variables in memory after executing enclosure.kcl
 | 
			
		||||
              175.0
 | 
			
		||||
            ],
 | 
			
		||||
            "tag": {
 | 
			
		||||
              "commentStart": 699,
 | 
			
		||||
              "end": 720,
 | 
			
		||||
              "start": 699,
 | 
			
		||||
              "commentStart": 690,
 | 
			
		||||
              "end": 711,
 | 
			
		||||
              "start": 690,
 | 
			
		||||
              "type": "TagDeclarator",
 | 
			
		||||
              "value": "rectangleSegmentD001"
 | 
			
		||||
            },
 | 
			
		||||
@ -354,9 +354,9 @@ description: Variables in memory after executing enclosure.kcl
 | 
			
		||||
          "id": "[uuid]",
 | 
			
		||||
          "sourceRange": [],
 | 
			
		||||
          "tag": {
 | 
			
		||||
            "commentStart": 2445,
 | 
			
		||||
            "end": 2466,
 | 
			
		||||
            "start": 2445,
 | 
			
		||||
            "commentStart": 2436,
 | 
			
		||||
            "end": 2457,
 | 
			
		||||
            "start": 2436,
 | 
			
		||||
            "type": "TagDeclarator",
 | 
			
		||||
            "value": "rectangleSegmentA002"
 | 
			
		||||
          },
 | 
			
		||||
@ -367,9 +367,9 @@ description: Variables in memory after executing enclosure.kcl
 | 
			
		||||
          "id": "[uuid]",
 | 
			
		||||
          "sourceRange": [],
 | 
			
		||||
          "tag": {
 | 
			
		||||
            "commentStart": 2550,
 | 
			
		||||
            "end": 2571,
 | 
			
		||||
            "start": 2550,
 | 
			
		||||
            "commentStart": 2532,
 | 
			
		||||
            "end": 2553,
 | 
			
		||||
            "start": 2532,
 | 
			
		||||
            "type": "TagDeclarator",
 | 
			
		||||
            "value": "rectangleSegmentB002"
 | 
			
		||||
          },
 | 
			
		||||
@ -380,9 +380,9 @@ description: Variables in memory after executing enclosure.kcl
 | 
			
		||||
          "id": "[uuid]",
 | 
			
		||||
          "sourceRange": [],
 | 
			
		||||
          "tag": {
 | 
			
		||||
            "commentStart": 2673,
 | 
			
		||||
            "end": 2694,
 | 
			
		||||
            "start": 2673,
 | 
			
		||||
            "commentStart": 2655,
 | 
			
		||||
            "end": 2676,
 | 
			
		||||
            "start": 2655,
 | 
			
		||||
            "type": "TagDeclarator",
 | 
			
		||||
            "value": "rectangleSegmentC002"
 | 
			
		||||
          },
 | 
			
		||||
@ -393,9 +393,9 @@ description: Variables in memory after executing enclosure.kcl
 | 
			
		||||
          "id": "[uuid]",
 | 
			
		||||
          "sourceRange": [],
 | 
			
		||||
          "tag": {
 | 
			
		||||
            "commentStart": 2764,
 | 
			
		||||
            "end": 2785,
 | 
			
		||||
            "start": 2764,
 | 
			
		||||
            "commentStart": 2746,
 | 
			
		||||
            "end": 2767,
 | 
			
		||||
            "start": 2746,
 | 
			
		||||
            "type": "TagDeclarator",
 | 
			
		||||
            "value": "rectangleSegmentD002"
 | 
			
		||||
          },
 | 
			
		||||
@ -416,9 +416,9 @@ description: Variables in memory after executing enclosure.kcl
 | 
			
		||||
              0.0
 | 
			
		||||
            ],
 | 
			
		||||
            "tag": {
 | 
			
		||||
              "commentStart": 2445,
 | 
			
		||||
              "end": 2466,
 | 
			
		||||
              "start": 2445,
 | 
			
		||||
              "commentStart": 2436,
 | 
			
		||||
              "end": 2457,
 | 
			
		||||
              "start": 2436,
 | 
			
		||||
              "type": "TagDeclarator",
 | 
			
		||||
              "value": "rectangleSegmentA002"
 | 
			
		||||
            },
 | 
			
		||||
@ -441,9 +441,9 @@ description: Variables in memory after executing enclosure.kcl
 | 
			
		||||
              0.0
 | 
			
		||||
            ],
 | 
			
		||||
            "tag": {
 | 
			
		||||
              "commentStart": 2550,
 | 
			
		||||
              "end": 2571,
 | 
			
		||||
              "start": 2550,
 | 
			
		||||
              "commentStart": 2532,
 | 
			
		||||
              "end": 2553,
 | 
			
		||||
              "start": 2532,
 | 
			
		||||
              "type": "TagDeclarator",
 | 
			
		||||
              "value": "rectangleSegmentB002"
 | 
			
		||||
            },
 | 
			
		||||
@ -466,9 +466,9 @@ description: Variables in memory after executing enclosure.kcl
 | 
			
		||||
              175.0
 | 
			
		||||
            ],
 | 
			
		||||
            "tag": {
 | 
			
		||||
              "commentStart": 2673,
 | 
			
		||||
              "end": 2694,
 | 
			
		||||
              "start": 2673,
 | 
			
		||||
              "commentStart": 2655,
 | 
			
		||||
              "end": 2676,
 | 
			
		||||
              "start": 2655,
 | 
			
		||||
              "type": "TagDeclarator",
 | 
			
		||||
              "value": "rectangleSegmentC002"
 | 
			
		||||
            },
 | 
			
		||||
@ -491,9 +491,9 @@ description: Variables in memory after executing enclosure.kcl
 | 
			
		||||
              175.0
 | 
			
		||||
            ],
 | 
			
		||||
            "tag": {
 | 
			
		||||
              "commentStart": 2764,
 | 
			
		||||
              "end": 2785,
 | 
			
		||||
              "start": 2764,
 | 
			
		||||
              "commentStart": 2746,
 | 
			
		||||
              "end": 2767,
 | 
			
		||||
              "start": 2746,
 | 
			
		||||
              "type": "TagDeclarator",
 | 
			
		||||
              "value": "rectangleSegmentD002"
 | 
			
		||||
            },
 | 
			
		||||
@ -693,9 +693,9 @@ description: Variables in memory after executing enclosure.kcl
 | 
			
		||||
          "id": "[uuid]",
 | 
			
		||||
          "sourceRange": [],
 | 
			
		||||
          "tag": {
 | 
			
		||||
            "commentStart": 4147,
 | 
			
		||||
            "end": 4168,
 | 
			
		||||
            "start": 4147,
 | 
			
		||||
            "commentStart": 4129,
 | 
			
		||||
            "end": 4150,
 | 
			
		||||
            "start": 4129,
 | 
			
		||||
            "type": "TagDeclarator",
 | 
			
		||||
            "value": "rectangleSegmentA003"
 | 
			
		||||
          },
 | 
			
		||||
@ -706,9 +706,9 @@ description: Variables in memory after executing enclosure.kcl
 | 
			
		||||
          "id": "[uuid]",
 | 
			
		||||
          "sourceRange": [],
 | 
			
		||||
          "tag": {
 | 
			
		||||
            "commentStart": 4274,
 | 
			
		||||
            "end": 4295,
 | 
			
		||||
            "start": 4274,
 | 
			
		||||
            "commentStart": 4256,
 | 
			
		||||
            "end": 4277,
 | 
			
		||||
            "start": 4256,
 | 
			
		||||
            "type": "TagDeclarator",
 | 
			
		||||
            "value": "rectangleSegmentB003"
 | 
			
		||||
          },
 | 
			
		||||
@ -719,9 +719,9 @@ description: Variables in memory after executing enclosure.kcl
 | 
			
		||||
          "id": "[uuid]",
 | 
			
		||||
          "sourceRange": [],
 | 
			
		||||
          "tag": {
 | 
			
		||||
            "commentStart": 4397,
 | 
			
		||||
            "end": 4418,
 | 
			
		||||
            "start": 4397,
 | 
			
		||||
            "commentStart": 4379,
 | 
			
		||||
            "end": 4400,
 | 
			
		||||
            "start": 4379,
 | 
			
		||||
            "type": "TagDeclarator",
 | 
			
		||||
            "value": "rectangleSegmentC003"
 | 
			
		||||
          },
 | 
			
		||||
@ -732,9 +732,9 @@ description: Variables in memory after executing enclosure.kcl
 | 
			
		||||
          "id": "[uuid]",
 | 
			
		||||
          "sourceRange": [],
 | 
			
		||||
          "tag": {
 | 
			
		||||
            "commentStart": 4488,
 | 
			
		||||
            "end": 4509,
 | 
			
		||||
            "start": 4488,
 | 
			
		||||
            "commentStart": 4470,
 | 
			
		||||
            "end": 4491,
 | 
			
		||||
            "start": 4470,
 | 
			
		||||
            "type": "TagDeclarator",
 | 
			
		||||
            "value": "rectangleSegmentD003"
 | 
			
		||||
          },
 | 
			
		||||
@ -755,9 +755,9 @@ description: Variables in memory after executing enclosure.kcl
 | 
			
		||||
              3.0
 | 
			
		||||
            ],
 | 
			
		||||
            "tag": {
 | 
			
		||||
              "commentStart": 4147,
 | 
			
		||||
              "end": 4168,
 | 
			
		||||
              "start": 4147,
 | 
			
		||||
              "commentStart": 4129,
 | 
			
		||||
              "end": 4150,
 | 
			
		||||
              "start": 4129,
 | 
			
		||||
              "type": "TagDeclarator",
 | 
			
		||||
              "value": "rectangleSegmentA003"
 | 
			
		||||
            },
 | 
			
		||||
@ -780,9 +780,9 @@ description: Variables in memory after executing enclosure.kcl
 | 
			
		||||
              3.0
 | 
			
		||||
            ],
 | 
			
		||||
            "tag": {
 | 
			
		||||
              "commentStart": 4274,
 | 
			
		||||
              "end": 4295,
 | 
			
		||||
              "start": 4274,
 | 
			
		||||
              "commentStart": 4256,
 | 
			
		||||
              "end": 4277,
 | 
			
		||||
              "start": 4256,
 | 
			
		||||
              "type": "TagDeclarator",
 | 
			
		||||
              "value": "rectangleSegmentB003"
 | 
			
		||||
            },
 | 
			
		||||
@ -805,9 +805,9 @@ description: Variables in memory after executing enclosure.kcl
 | 
			
		||||
              172.0
 | 
			
		||||
            ],
 | 
			
		||||
            "tag": {
 | 
			
		||||
              "commentStart": 4397,
 | 
			
		||||
              "end": 4418,
 | 
			
		||||
              "start": 4397,
 | 
			
		||||
              "commentStart": 4379,
 | 
			
		||||
              "end": 4400,
 | 
			
		||||
              "start": 4379,
 | 
			
		||||
              "type": "TagDeclarator",
 | 
			
		||||
              "value": "rectangleSegmentC003"
 | 
			
		||||
            },
 | 
			
		||||
@ -830,9 +830,9 @@ description: Variables in memory after executing enclosure.kcl
 | 
			
		||||
              172.0
 | 
			
		||||
            ],
 | 
			
		||||
            "tag": {
 | 
			
		||||
              "commentStart": 4488,
 | 
			
		||||
              "end": 4509,
 | 
			
		||||
              "start": 4488,
 | 
			
		||||
              "commentStart": 4470,
 | 
			
		||||
              "end": 4491,
 | 
			
		||||
              "start": 4470,
 | 
			
		||||
              "type": "TagDeclarator",
 | 
			
		||||
              "value": "rectangleSegmentD003"
 | 
			
		||||
            },
 | 
			
		||||
@ -896,9 +896,9 @@ description: Variables in memory after executing enclosure.kcl
 | 
			
		||||
                "id": "[uuid]",
 | 
			
		||||
                "sourceRange": [],
 | 
			
		||||
                "tag": {
 | 
			
		||||
                  "commentStart": 2445,
 | 
			
		||||
                  "end": 2466,
 | 
			
		||||
                  "start": 2445,
 | 
			
		||||
                  "commentStart": 2436,
 | 
			
		||||
                  "end": 2457,
 | 
			
		||||
                  "start": 2436,
 | 
			
		||||
                  "type": "TagDeclarator",
 | 
			
		||||
                  "value": "rectangleSegmentA002"
 | 
			
		||||
                },
 | 
			
		||||
@ -909,9 +909,9 @@ description: Variables in memory after executing enclosure.kcl
 | 
			
		||||
                "id": "[uuid]",
 | 
			
		||||
                "sourceRange": [],
 | 
			
		||||
                "tag": {
 | 
			
		||||
                  "commentStart": 2550,
 | 
			
		||||
                  "end": 2571,
 | 
			
		||||
                  "start": 2550,
 | 
			
		||||
                  "commentStart": 2532,
 | 
			
		||||
                  "end": 2553,
 | 
			
		||||
                  "start": 2532,
 | 
			
		||||
                  "type": "TagDeclarator",
 | 
			
		||||
                  "value": "rectangleSegmentB002"
 | 
			
		||||
                },
 | 
			
		||||
@ -922,9 +922,9 @@ description: Variables in memory after executing enclosure.kcl
 | 
			
		||||
                "id": "[uuid]",
 | 
			
		||||
                "sourceRange": [],
 | 
			
		||||
                "tag": {
 | 
			
		||||
                  "commentStart": 2673,
 | 
			
		||||
                  "end": 2694,
 | 
			
		||||
                  "start": 2673,
 | 
			
		||||
                  "commentStart": 2655,
 | 
			
		||||
                  "end": 2676,
 | 
			
		||||
                  "start": 2655,
 | 
			
		||||
                  "type": "TagDeclarator",
 | 
			
		||||
                  "value": "rectangleSegmentC002"
 | 
			
		||||
                },
 | 
			
		||||
@ -935,9 +935,9 @@ description: Variables in memory after executing enclosure.kcl
 | 
			
		||||
                "id": "[uuid]",
 | 
			
		||||
                "sourceRange": [],
 | 
			
		||||
                "tag": {
 | 
			
		||||
                  "commentStart": 2764,
 | 
			
		||||
                  "end": 2785,
 | 
			
		||||
                  "start": 2764,
 | 
			
		||||
                  "commentStart": 2746,
 | 
			
		||||
                  "end": 2767,
 | 
			
		||||
                  "start": 2746,
 | 
			
		||||
                  "type": "TagDeclarator",
 | 
			
		||||
                  "value": "rectangleSegmentD002"
 | 
			
		||||
                },
 | 
			
		||||
@ -958,9 +958,9 @@ description: Variables in memory after executing enclosure.kcl
 | 
			
		||||
                    0.0
 | 
			
		||||
                  ],
 | 
			
		||||
                  "tag": {
 | 
			
		||||
                    "commentStart": 2445,
 | 
			
		||||
                    "end": 2466,
 | 
			
		||||
                    "start": 2445,
 | 
			
		||||
                    "commentStart": 2436,
 | 
			
		||||
                    "end": 2457,
 | 
			
		||||
                    "start": 2436,
 | 
			
		||||
                    "type": "TagDeclarator",
 | 
			
		||||
                    "value": "rectangleSegmentA002"
 | 
			
		||||
                  },
 | 
			
		||||
@ -983,9 +983,9 @@ description: Variables in memory after executing enclosure.kcl
 | 
			
		||||
                    0.0
 | 
			
		||||
                  ],
 | 
			
		||||
                  "tag": {
 | 
			
		||||
                    "commentStart": 2550,
 | 
			
		||||
                    "end": 2571,
 | 
			
		||||
                    "start": 2550,
 | 
			
		||||
                    "commentStart": 2532,
 | 
			
		||||
                    "end": 2553,
 | 
			
		||||
                    "start": 2532,
 | 
			
		||||
                    "type": "TagDeclarator",
 | 
			
		||||
                    "value": "rectangleSegmentB002"
 | 
			
		||||
                  },
 | 
			
		||||
@ -1008,9 +1008,9 @@ description: Variables in memory after executing enclosure.kcl
 | 
			
		||||
                    175.0
 | 
			
		||||
                  ],
 | 
			
		||||
                  "tag": {
 | 
			
		||||
                    "commentStart": 2673,
 | 
			
		||||
                    "end": 2694,
 | 
			
		||||
                    "start": 2673,
 | 
			
		||||
                    "commentStart": 2655,
 | 
			
		||||
                    "end": 2676,
 | 
			
		||||
                    "start": 2655,
 | 
			
		||||
                    "type": "TagDeclarator",
 | 
			
		||||
                    "value": "rectangleSegmentC002"
 | 
			
		||||
                  },
 | 
			
		||||
@ -1033,9 +1033,9 @@ description: Variables in memory after executing enclosure.kcl
 | 
			
		||||
                    175.0
 | 
			
		||||
                  ],
 | 
			
		||||
                  "tag": {
 | 
			
		||||
                    "commentStart": 2764,
 | 
			
		||||
                    "end": 2785,
 | 
			
		||||
                    "start": 2764,
 | 
			
		||||
                    "commentStart": 2746,
 | 
			
		||||
                    "end": 2767,
 | 
			
		||||
                    "start": 2746,
 | 
			
		||||
                    "type": "TagDeclarator",
 | 
			
		||||
                    "value": "rectangleSegmentD002"
 | 
			
		||||
                  },
 | 
			
		||||
@ -1495,9 +1495,9 @@ description: Variables in memory after executing enclosure.kcl
 | 
			
		||||
            0.0
 | 
			
		||||
          ],
 | 
			
		||||
          "tag": {
 | 
			
		||||
            "commentStart": 485,
 | 
			
		||||
            "end": 506,
 | 
			
		||||
            "start": 485,
 | 
			
		||||
            "commentStart": 476,
 | 
			
		||||
            "end": 497,
 | 
			
		||||
            "start": 476,
 | 
			
		||||
            "type": "TagDeclarator",
 | 
			
		||||
            "value": "rectangleSegmentB001"
 | 
			
		||||
          },
 | 
			
		||||
@ -1520,9 +1520,9 @@ description: Variables in memory after executing enclosure.kcl
 | 
			
		||||
            175.0
 | 
			
		||||
          ],
 | 
			
		||||
          "tag": {
 | 
			
		||||
            "commentStart": 608,
 | 
			
		||||
            "end": 629,
 | 
			
		||||
            "start": 608,
 | 
			
		||||
            "commentStart": 599,
 | 
			
		||||
            "end": 620,
 | 
			
		||||
            "start": 599,
 | 
			
		||||
            "type": "TagDeclarator",
 | 
			
		||||
            "value": "rectangleSegmentC001"
 | 
			
		||||
          },
 | 
			
		||||
@ -1545,9 +1545,9 @@ description: Variables in memory after executing enclosure.kcl
 | 
			
		||||
            175.0
 | 
			
		||||
          ],
 | 
			
		||||
          "tag": {
 | 
			
		||||
            "commentStart": 699,
 | 
			
		||||
            "end": 720,
 | 
			
		||||
            "start": 699,
 | 
			
		||||
            "commentStart": 690,
 | 
			
		||||
            "end": 711,
 | 
			
		||||
            "start": 690,
 | 
			
		||||
            "type": "TagDeclarator",
 | 
			
		||||
            "value": "rectangleSegmentD001"
 | 
			
		||||
          },
 | 
			
		||||
@ -1669,9 +1669,9 @@ description: Variables in memory after executing enclosure.kcl
 | 
			
		||||
            0.0
 | 
			
		||||
          ],
 | 
			
		||||
          "tag": {
 | 
			
		||||
            "commentStart": 2445,
 | 
			
		||||
            "end": 2466,
 | 
			
		||||
            "start": 2445,
 | 
			
		||||
            "commentStart": 2436,
 | 
			
		||||
            "end": 2457,
 | 
			
		||||
            "start": 2436,
 | 
			
		||||
            "type": "TagDeclarator",
 | 
			
		||||
            "value": "rectangleSegmentA002"
 | 
			
		||||
          },
 | 
			
		||||
@ -1694,9 +1694,9 @@ description: Variables in memory after executing enclosure.kcl
 | 
			
		||||
            0.0
 | 
			
		||||
          ],
 | 
			
		||||
          "tag": {
 | 
			
		||||
            "commentStart": 2550,
 | 
			
		||||
            "end": 2571,
 | 
			
		||||
            "start": 2550,
 | 
			
		||||
            "commentStart": 2532,
 | 
			
		||||
            "end": 2553,
 | 
			
		||||
            "start": 2532,
 | 
			
		||||
            "type": "TagDeclarator",
 | 
			
		||||
            "value": "rectangleSegmentB002"
 | 
			
		||||
          },
 | 
			
		||||
@ -1719,9 +1719,9 @@ description: Variables in memory after executing enclosure.kcl
 | 
			
		||||
            175.0
 | 
			
		||||
          ],
 | 
			
		||||
          "tag": {
 | 
			
		||||
            "commentStart": 2673,
 | 
			
		||||
            "end": 2694,
 | 
			
		||||
            "start": 2673,
 | 
			
		||||
            "commentStart": 2655,
 | 
			
		||||
            "end": 2676,
 | 
			
		||||
            "start": 2655,
 | 
			
		||||
            "type": "TagDeclarator",
 | 
			
		||||
            "value": "rectangleSegmentC002"
 | 
			
		||||
          },
 | 
			
		||||
@ -1744,9 +1744,9 @@ description: Variables in memory after executing enclosure.kcl
 | 
			
		||||
            175.0
 | 
			
		||||
          ],
 | 
			
		||||
          "tag": {
 | 
			
		||||
            "commentStart": 2764,
 | 
			
		||||
            "end": 2785,
 | 
			
		||||
            "start": 2764,
 | 
			
		||||
            "commentStart": 2746,
 | 
			
		||||
            "end": 2767,
 | 
			
		||||
            "start": 2746,
 | 
			
		||||
            "type": "TagDeclarator",
 | 
			
		||||
            "value": "rectangleSegmentD002"
 | 
			
		||||
          },
 | 
			
		||||
@ -1868,9 +1868,9 @@ description: Variables in memory after executing enclosure.kcl
 | 
			
		||||
            3.0
 | 
			
		||||
          ],
 | 
			
		||||
          "tag": {
 | 
			
		||||
            "commentStart": 4147,
 | 
			
		||||
            "end": 4168,
 | 
			
		||||
            "start": 4147,
 | 
			
		||||
            "commentStart": 4129,
 | 
			
		||||
            "end": 4150,
 | 
			
		||||
            "start": 4129,
 | 
			
		||||
            "type": "TagDeclarator",
 | 
			
		||||
            "value": "rectangleSegmentA003"
 | 
			
		||||
          },
 | 
			
		||||
@ -1893,9 +1893,9 @@ description: Variables in memory after executing enclosure.kcl
 | 
			
		||||
            3.0
 | 
			
		||||
          ],
 | 
			
		||||
          "tag": {
 | 
			
		||||
            "commentStart": 4274,
 | 
			
		||||
            "end": 4295,
 | 
			
		||||
            "start": 4274,
 | 
			
		||||
            "commentStart": 4256,
 | 
			
		||||
            "end": 4277,
 | 
			
		||||
            "start": 4256,
 | 
			
		||||
            "type": "TagDeclarator",
 | 
			
		||||
            "value": "rectangleSegmentB003"
 | 
			
		||||
          },
 | 
			
		||||
@ -1918,9 +1918,9 @@ description: Variables in memory after executing enclosure.kcl
 | 
			
		||||
            172.0
 | 
			
		||||
          ],
 | 
			
		||||
          "tag": {
 | 
			
		||||
            "commentStart": 4397,
 | 
			
		||||
            "end": 4418,
 | 
			
		||||
            "start": 4397,
 | 
			
		||||
            "commentStart": 4379,
 | 
			
		||||
            "end": 4400,
 | 
			
		||||
            "start": 4379,
 | 
			
		||||
            "type": "TagDeclarator",
 | 
			
		||||
            "value": "rectangleSegmentC003"
 | 
			
		||||
          },
 | 
			
		||||
@ -1943,9 +1943,9 @@ description: Variables in memory after executing enclosure.kcl
 | 
			
		||||
            172.0
 | 
			
		||||
          ],
 | 
			
		||||
          "tag": {
 | 
			
		||||
            "commentStart": 4488,
 | 
			
		||||
            "end": 4509,
 | 
			
		||||
            "start": 4488,
 | 
			
		||||
            "commentStart": 4470,
 | 
			
		||||
            "end": 4491,
 | 
			
		||||
            "start": 4470,
 | 
			
		||||
            "type": "TagDeclarator",
 | 
			
		||||
            "value": "rectangleSegmentD003"
 | 
			
		||||
          },
 | 
			
		||||
@ -2009,9 +2009,9 @@ description: Variables in memory after executing enclosure.kcl
 | 
			
		||||
              "id": "[uuid]",
 | 
			
		||||
              "sourceRange": [],
 | 
			
		||||
              "tag": {
 | 
			
		||||
                "commentStart": 2445,
 | 
			
		||||
                "end": 2466,
 | 
			
		||||
                "start": 2445,
 | 
			
		||||
                "commentStart": 2436,
 | 
			
		||||
                "end": 2457,
 | 
			
		||||
                "start": 2436,
 | 
			
		||||
                "type": "TagDeclarator",
 | 
			
		||||
                "value": "rectangleSegmentA002"
 | 
			
		||||
              },
 | 
			
		||||
@ -2022,9 +2022,9 @@ description: Variables in memory after executing enclosure.kcl
 | 
			
		||||
              "id": "[uuid]",
 | 
			
		||||
              "sourceRange": [],
 | 
			
		||||
              "tag": {
 | 
			
		||||
                "commentStart": 2550,
 | 
			
		||||
                "end": 2571,
 | 
			
		||||
                "start": 2550,
 | 
			
		||||
                "commentStart": 2532,
 | 
			
		||||
                "end": 2553,
 | 
			
		||||
                "start": 2532,
 | 
			
		||||
                "type": "TagDeclarator",
 | 
			
		||||
                "value": "rectangleSegmentB002"
 | 
			
		||||
              },
 | 
			
		||||
@ -2035,9 +2035,9 @@ description: Variables in memory after executing enclosure.kcl
 | 
			
		||||
              "id": "[uuid]",
 | 
			
		||||
              "sourceRange": [],
 | 
			
		||||
              "tag": {
 | 
			
		||||
                "commentStart": 2673,
 | 
			
		||||
                "end": 2694,
 | 
			
		||||
                "start": 2673,
 | 
			
		||||
                "commentStart": 2655,
 | 
			
		||||
                "end": 2676,
 | 
			
		||||
                "start": 2655,
 | 
			
		||||
                "type": "TagDeclarator",
 | 
			
		||||
                "value": "rectangleSegmentC002"
 | 
			
		||||
              },
 | 
			
		||||
@ -2048,9 +2048,9 @@ description: Variables in memory after executing enclosure.kcl
 | 
			
		||||
              "id": "[uuid]",
 | 
			
		||||
              "sourceRange": [],
 | 
			
		||||
              "tag": {
 | 
			
		||||
                "commentStart": 2764,
 | 
			
		||||
                "end": 2785,
 | 
			
		||||
                "start": 2764,
 | 
			
		||||
                "commentStart": 2746,
 | 
			
		||||
                "end": 2767,
 | 
			
		||||
                "start": 2746,
 | 
			
		||||
                "type": "TagDeclarator",
 | 
			
		||||
                "value": "rectangleSegmentD002"
 | 
			
		||||
              },
 | 
			
		||||
@ -2071,9 +2071,9 @@ description: Variables in memory after executing enclosure.kcl
 | 
			
		||||
                  0.0
 | 
			
		||||
                ],
 | 
			
		||||
                "tag": {
 | 
			
		||||
                  "commentStart": 2445,
 | 
			
		||||
                  "end": 2466,
 | 
			
		||||
                  "start": 2445,
 | 
			
		||||
                  "commentStart": 2436,
 | 
			
		||||
                  "end": 2457,
 | 
			
		||||
                  "start": 2436,
 | 
			
		||||
                  "type": "TagDeclarator",
 | 
			
		||||
                  "value": "rectangleSegmentA002"
 | 
			
		||||
                },
 | 
			
		||||
@ -2096,9 +2096,9 @@ description: Variables in memory after executing enclosure.kcl
 | 
			
		||||
                  0.0
 | 
			
		||||
                ],
 | 
			
		||||
                "tag": {
 | 
			
		||||
                  "commentStart": 2550,
 | 
			
		||||
                  "end": 2571,
 | 
			
		||||
                  "start": 2550,
 | 
			
		||||
                  "commentStart": 2532,
 | 
			
		||||
                  "end": 2553,
 | 
			
		||||
                  "start": 2532,
 | 
			
		||||
                  "type": "TagDeclarator",
 | 
			
		||||
                  "value": "rectangleSegmentB002"
 | 
			
		||||
                },
 | 
			
		||||
@ -2121,9 +2121,9 @@ description: Variables in memory after executing enclosure.kcl
 | 
			
		||||
                  175.0
 | 
			
		||||
                ],
 | 
			
		||||
                "tag": {
 | 
			
		||||
                  "commentStart": 2673,
 | 
			
		||||
                  "end": 2694,
 | 
			
		||||
                  "start": 2673,
 | 
			
		||||
                  "commentStart": 2655,
 | 
			
		||||
                  "end": 2676,
 | 
			
		||||
                  "start": 2655,
 | 
			
		||||
                  "type": "TagDeclarator",
 | 
			
		||||
                  "value": "rectangleSegmentC002"
 | 
			
		||||
                },
 | 
			
		||||
@ -2146,9 +2146,9 @@ description: Variables in memory after executing enclosure.kcl
 | 
			
		||||
                  175.0
 | 
			
		||||
                ],
 | 
			
		||||
                "tag": {
 | 
			
		||||
                  "commentStart": 2764,
 | 
			
		||||
                  "end": 2785,
 | 
			
		||||
                  "start": 2764,
 | 
			
		||||
                  "commentStart": 2746,
 | 
			
		||||
                  "end": 2767,
 | 
			
		||||
                  "start": 2746,
 | 
			
		||||
                  "type": "TagDeclarator",
 | 
			
		||||
                  "value": "rectangleSegmentD002"
 | 
			
		||||
                },
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user