KCL parser: Allow .prop or [index] to follow any expression (#7371)

Previously in a member expression like `foo.x` or `foo[3]`, `foo` had to be an identifier. You could not do something like `f().x` (and if you tried, you got a cryptic error). Rather than make the error better, we should just accept any expression to be the LHS of a member expression (aka its 'object').

This does knock our "parse lots of function calls" from 58 to 55 calls before it stack overflows. But I think it's fine, we'll address this in https://github.com/KittyCAD/modeling-app/pull/6226 when I get back to it.

Closes https://github.com/KittyCAD/modeling-app/issues/7273
This commit is contained in:
Adam Chalmers
2025-06-05 08:23:48 -05:00
committed by GitHub
parent 9136fb0d1b
commit 4575b32dbc
77 changed files with 3397 additions and 1987 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 83 KiB

After

Width:  |  Height:  |  Size: 83 KiB

View File

@ -19,8 +19,8 @@ use crate::{
parsing::ast::types::{ parsing::ast::types::{
Annotation, ArrayExpression, ArrayRangeExpression, AscribedExpression, BinaryExpression, BinaryOperator, Annotation, ArrayExpression, ArrayRangeExpression, AscribedExpression, BinaryExpression, BinaryOperator,
BinaryPart, BodyItem, Expr, IfExpression, ImportPath, ImportSelector, ItemVisibility, LiteralIdentifier, BinaryPart, BodyItem, Expr, IfExpression, ImportPath, ImportSelector, ItemVisibility, LiteralIdentifier,
LiteralValue, MemberExpression, MemberObject, Name, Node, NodeRef, ObjectExpression, PipeExpression, Program, LiteralValue, MemberExpression, Name, Node, NodeRef, ObjectExpression, PipeExpression, Program, TagDeclarator,
TagDeclarator, Type, UnaryExpression, UnaryOperator, Type, UnaryExpression, UnaryOperator,
}, },
source_range::SourceRange, source_range::SourceRange,
std::args::TyF64, std::args::TyF64,
@ -739,7 +739,7 @@ impl ExecutorContext {
Expr::ArrayExpression(array_expression) => array_expression.execute(exec_state, self).await?, Expr::ArrayExpression(array_expression) => array_expression.execute(exec_state, self).await?,
Expr::ArrayRangeExpression(range_expression) => range_expression.execute(exec_state, self).await?, Expr::ArrayRangeExpression(range_expression) => range_expression.execute(exec_state, self).await?,
Expr::ObjectExpression(object_expression) => object_expression.execute(exec_state, self).await?, Expr::ObjectExpression(object_expression) => object_expression.execute(exec_state, self).await?,
Expr::MemberExpression(member_expression) => member_expression.get_result(exec_state)?, Expr::MemberExpression(member_expression) => member_expression.get_result(exec_state, self).await?,
Expr::UnaryExpression(unary_expression) => unary_expression.get_result(exec_state, self).await?, Expr::UnaryExpression(unary_expression) => unary_expression.get_result(exec_state, self).await?,
Expr::IfExpression(expr) => expr.get_result(exec_state, self).await?, Expr::IfExpression(expr) => expr.get_result(exec_state, self).await?,
Expr::LabelledExpression(expr) => { Expr::LabelledExpression(expr) => {
@ -825,7 +825,7 @@ impl BinaryPart {
BinaryPart::BinaryExpression(binary_expression) => binary_expression.get_result(exec_state, ctx).await, BinaryPart::BinaryExpression(binary_expression) => binary_expression.get_result(exec_state, ctx).await,
BinaryPart::CallExpressionKw(call_expression) => call_expression.execute(exec_state, ctx).await, BinaryPart::CallExpressionKw(call_expression) => call_expression.execute(exec_state, ctx).await,
BinaryPart::UnaryExpression(unary_expression) => unary_expression.get_result(exec_state, ctx).await, BinaryPart::UnaryExpression(unary_expression) => unary_expression.get_result(exec_state, ctx).await,
BinaryPart::MemberExpression(member_expression) => member_expression.get_result(exec_state), BinaryPart::MemberExpression(member_expression) => member_expression.get_result(exec_state, ctx).await,
BinaryPart::IfExpression(e) => e.get_result(exec_state, ctx).await, BinaryPart::IfExpression(e) => e.get_result(exec_state, ctx).await,
BinaryPart::AscribedExpression(e) => e.get_result(exec_state, ctx).await, BinaryPart::AscribedExpression(e) => e.get_result(exec_state, ctx).await,
} }
@ -942,16 +942,14 @@ impl Node<Name> {
} }
impl Node<MemberExpression> { impl Node<MemberExpression> {
fn get_result(&self, exec_state: &mut ExecState) -> Result<KclValue, KclError> { async fn get_result(&self, exec_state: &mut ExecState, ctx: &ExecutorContext) -> Result<KclValue, KclError> {
let property = Property::try_from(self.computed, self.property.clone(), exec_state, self.into())?; let property = Property::try_from(self.computed, self.property.clone(), exec_state, self.into())?;
let object = match &self.object { let meta = Metadata {
// TODO: Don't use recursion here, use a loop. source_range: SourceRange::from(self),
MemberObject::MemberExpression(member_expr) => member_expr.get_result(exec_state)?,
MemberObject::Identifier(identifier) => {
let value = exec_state.stack().get(&identifier.name, identifier.into())?;
value.clone()
}
}; };
let object = ctx
.execute_expr(&self.object, exec_state, &meta, &[], StatementKind::Expression)
.await?;
// Check the property and object match -- e.g. ints for arrays, strs for objects. // Check the property and object match -- e.g. ints for arrays, strs for objects.
match (object, property, self.computed) { match (object, property, self.computed) {

View File

@ -1949,7 +1949,7 @@ notPipeSub = 1 |> identity(!%))";
// a runtime error instead. // a runtime error instead.
parse_execute(code11).await.unwrap_err(), parse_execute(code11).await.unwrap_err(),
KclError::new_syntax(KclErrorDetails::new( KclError::new_syntax(KclErrorDetails::new(
"There was an unexpected !. Try removing it.".to_owned(), "There was an unexpected `!`. Try removing it.".to_owned(),
vec![SourceRange::new(56, 57, ModuleId::default())], vec![SourceRange::new(56, 57, ModuleId::default())],
)) ))
); );

View File

@ -247,17 +247,6 @@ impl ObjectProperty {
} }
} }
impl MemberObject {
fn get_hover_value_for_position(&self, pos: usize, code: &str, opts: &HoverOpts) -> Option<Hover> {
match self {
MemberObject::MemberExpression(member_expression) => {
member_expression.get_hover_value_for_position(pos, code, opts)
}
MemberObject::Identifier(_identifier) => None,
}
}
}
impl MemberExpression { impl MemberExpression {
fn get_hover_value_for_position(&self, pos: usize, code: &str, opts: &HoverOpts) -> Option<Hover> { fn get_hover_value_for_position(&self, pos: usize, code: &str, opts: &HoverOpts) -> Option<Hover> {
let object_source_range: SourceRange = self.object.clone().into(); let object_source_range: SourceRange = self.object.clone().into();

View File

@ -4,7 +4,7 @@ use crate::parsing::ast::types::{
Annotation, ArrayExpression, ArrayRangeExpression, AscribedExpression, BinaryExpression, BinaryPart, BodyItem, Annotation, ArrayExpression, ArrayRangeExpression, AscribedExpression, BinaryExpression, BinaryPart, BodyItem,
CallExpressionKw, DefaultParamVal, ElseIf, Expr, ExpressionStatement, FunctionExpression, FunctionType, Identifier, CallExpressionKw, DefaultParamVal, ElseIf, Expr, ExpressionStatement, FunctionExpression, FunctionType, Identifier,
IfExpression, ImportItem, ImportSelector, ImportStatement, ItemVisibility, KclNone, LabelledExpression, Literal, IfExpression, ImportItem, ImportSelector, ImportStatement, ItemVisibility, KclNone, LabelledExpression, Literal,
LiteralIdentifier, LiteralValue, MemberExpression, MemberObject, Name, ObjectExpression, ObjectProperty, Parameter, LiteralIdentifier, LiteralValue, MemberExpression, Name, ObjectExpression, ObjectProperty, Parameter,
PipeExpression, PipeSubstitution, PrimitiveType, Program, ReturnStatement, TagDeclarator, Type, TypeDeclaration, PipeExpression, PipeSubstitution, PrimitiveType, Program, ReturnStatement, TagDeclarator, Type, TypeDeclaration,
UnaryExpression, VariableDeclaration, VariableDeclarator, VariableKind, UnaryExpression, VariableDeclaration, VariableDeclarator, VariableKind,
}; };
@ -167,15 +167,6 @@ impl BinaryPart {
} }
} }
impl MemberObject {
pub fn compute_digest(&mut self) -> Digest {
match self {
MemberObject::MemberExpression(me) => me.compute_digest(),
MemberObject::Identifier(id) => id.compute_digest(),
}
}
}
impl LiteralIdentifier { impl LiteralIdentifier {
pub fn compute_digest(&mut self) -> Digest { pub fn compute_digest(&mut self) -> Digest {
match self { match self {

View File

@ -2,7 +2,7 @@ pub(crate) mod digest;
pub mod types; pub mod types;
use crate::{ use crate::{
parsing::ast::types::{BinaryPart, BodyItem, Expr, LiteralIdentifier, MemberObject}, parsing::ast::types::{BinaryPart, BodyItem, Expr, LiteralIdentifier},
ModuleId, ModuleId,
}; };
@ -57,15 +57,6 @@ impl BinaryPart {
} }
} }
impl MemberObject {
pub fn module_id(&self) -> ModuleId {
match self {
MemberObject::MemberExpression(member_expression) => member_expression.module_id,
MemberObject::Identifier(identifier) => identifier.module_id,
}
}
}
impl LiteralIdentifier { impl LiteralIdentifier {
pub fn module_id(&self) -> ModuleId { pub fn module_id(&self) -> ModuleId {
match self { match self {

View File

@ -2756,47 +2756,6 @@ impl ObjectProperty {
} }
} }
#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, ts_rs::TS, JsonSchema)]
#[ts(export)]
#[serde(tag = "type")]
pub enum MemberObject {
MemberExpression(BoxNode<MemberExpression>),
Identifier(BoxNode<Identifier>),
}
impl MemberObject {
pub fn start(&self) -> usize {
match self {
MemberObject::MemberExpression(member_expression) => member_expression.start,
MemberObject::Identifier(identifier) => identifier.start,
}
}
pub fn end(&self) -> usize {
match self {
MemberObject::MemberExpression(member_expression) => member_expression.end,
MemberObject::Identifier(identifier) => identifier.end,
}
}
pub(crate) fn contains_range(&self, range: &SourceRange) -> bool {
let sr = SourceRange::from(self);
sr.contains_range(range)
}
}
impl From<MemberObject> for SourceRange {
fn from(obj: MemberObject) -> Self {
Self::new(obj.start(), obj.end(), obj.module_id())
}
}
impl From<&MemberObject> for SourceRange {
fn from(obj: &MemberObject) -> Self {
Self::new(obj.start(), obj.end(), obj.module_id())
}
}
#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, ts_rs::TS, JsonSchema)] #[derive(Debug, Clone, Deserialize, Serialize, PartialEq, ts_rs::TS, JsonSchema)]
#[ts(export)] #[ts(export)]
#[serde(tag = "type")] #[serde(tag = "type")]
@ -2842,7 +2801,7 @@ impl From<&LiteralIdentifier> for SourceRange {
#[ts(export)] #[ts(export)]
#[serde(tag = "type")] #[serde(tag = "type")]
pub struct MemberExpression { pub struct MemberExpression {
pub object: MemberObject, pub object: Expr,
pub property: LiteralIdentifier, pub property: LiteralIdentifier,
pub computed: bool, pub computed: bool,
@ -2864,12 +2823,7 @@ impl Node<MemberExpression> {
impl MemberExpression { impl MemberExpression {
/// Rename all identifiers that have the old name to the new given name. /// Rename all identifiers that have the old name to the new given name.
fn rename_identifiers(&mut self, old_name: &str, new_name: &str) { fn rename_identifiers(&mut self, old_name: &str, new_name: &str) {
match &mut self.object { self.object.rename_identifiers(old_name, new_name);
MemberObject::MemberExpression(ref mut member_expression) => {
member_expression.rename_identifiers(old_name, new_name)
}
MemberObject::Identifier(ref mut identifier) => identifier.rename(old_name, new_name),
}
match &mut self.property { match &mut self.property {
LiteralIdentifier::Identifier(ref mut identifier) => identifier.rename(old_name, new_name), LiteralIdentifier::Identifier(ref mut identifier) => identifier.rename(old_name, new_name),

View File

@ -1,6 +1,6 @@
use serde::Serialize; use serde::Serialize;
use super::{BodyItem, Expr, MemberObject, Node, Program}; use super::{BodyItem, Expr, Node, Program};
use crate::SourceRange; use crate::SourceRange;
/// A traversal path through the AST to a node. /// A traversal path through the AST to a node.
@ -248,7 +248,7 @@ impl NodePath {
Expr::MemberExpression(node) => { Expr::MemberExpression(node) => {
if node.object.contains_range(&range) { if node.object.contains_range(&range) {
path.push(Step::MemberExpressionObject); path.push(Step::MemberExpressionObject);
return Self::from_member_expr_object(&node.object, range, path); return NodePath::from_expr(&node.object, range, path);
} }
if node.property.contains_range(&range) { if node.property.contains_range(&range) {
path.push(Step::MemberExpressionProperty); path.push(Step::MemberExpressionProperty);
@ -313,18 +313,6 @@ impl NodePath {
Some(path) Some(path)
} }
fn from_member_expr_object(mut expr: &MemberObject, range: SourceRange, mut path: NodePath) -> Option<NodePath> {
while let MemberObject::MemberExpression(node) = expr {
if !node.object.contains_range(&range) {
break;
}
path.push(Step::MemberExpressionObject);
expr = &node.object;
}
Some(path)
}
pub fn is_empty(&self) -> bool { pub fn is_empty(&self) -> bool {
self.steps.is_empty() self.steps.is_empty()
} }

View File

@ -26,8 +26,8 @@ use crate::{
Annotation, ArrayExpression, ArrayRangeExpression, BinaryExpression, BinaryOperator, BinaryPart, BodyItem, Annotation, ArrayExpression, ArrayRangeExpression, BinaryExpression, BinaryOperator, BinaryPart, BodyItem,
BoxNode, CallExpressionKw, CommentStyle, DefaultParamVal, ElseIf, Expr, ExpressionStatement, BoxNode, CallExpressionKw, CommentStyle, DefaultParamVal, ElseIf, Expr, ExpressionStatement,
FunctionExpression, FunctionType, Identifier, IfExpression, ImportItem, ImportSelector, ImportStatement, FunctionExpression, FunctionType, Identifier, IfExpression, ImportItem, ImportSelector, ImportStatement,
ItemVisibility, LabeledArg, Literal, LiteralIdentifier, LiteralValue, MemberExpression, MemberObject, Name, ItemVisibility, LabeledArg, Literal, LiteralIdentifier, LiteralValue, MemberExpression, Name, Node,
Node, NodeList, NonCodeMeta, NonCodeNode, NonCodeValue, ObjectExpression, ObjectProperty, Parameter, NodeList, NonCodeMeta, NonCodeNode, NonCodeValue, ObjectExpression, ObjectProperty, Parameter,
PipeExpression, PipeSubstitution, PrimitiveType, Program, ReturnStatement, Shebang, TagDeclarator, Type, PipeExpression, PipeSubstitution, PrimitiveType, Program, ReturnStatement, Shebang, TagDeclarator, Type,
TypeDeclaration, UnaryExpression, UnaryOperator, VariableDeclaration, VariableDeclarator, VariableKind, TypeDeclaration, UnaryExpression, UnaryOperator, VariableDeclaration, VariableDeclarator, VariableKind,
}, },
@ -1326,10 +1326,7 @@ fn member_expression_subscript(i: &mut TokenSlice) -> ModalResult<(LiteralIdenti
/// Get a property of an object, or an index of an array, or a member of a collection. /// Get a property of an object, or an index of an array, or a member of a collection.
/// Can be arbitrarily nested, e.g. `people[i]['adam'].age`. /// Can be arbitrarily nested, e.g. `people[i]['adam'].age`.
fn member_expression(i: &mut TokenSlice) -> ModalResult<Node<MemberExpression>> { fn build_member_expression(object: Expr, i: &mut TokenSlice) -> ModalResult<Node<MemberExpression>> {
// This is an identifier, followed by a sequence of members (aka properties)
// First, the identifier.
let id = nameable_identifier.context(expected("the identifier of the object whose property you're trying to access, e.g. in 'shape.size.width', 'shape' is the identifier")).parse_next(i)?;
// Now a sequence of members. // Now a sequence of members.
let member = alt((member_expression_dot, member_expression_subscript)).context(expected("a member/property, e.g. size.x and size['height'] and size[0] are all different ways to access a member/property of 'size'")); let member = alt((member_expression_dot, member_expression_subscript)).context(expected("a member/property, e.g. size.x and size['height'] and size[0] are all different ways to access a member/property of 'size'"));
let mut members: Vec<_> = repeat(1.., member) let mut members: Vec<_> = repeat(1.., member)
@ -1340,11 +1337,11 @@ fn member_expression(i: &mut TokenSlice) -> ModalResult<Node<MemberExpression>>
// It's safe to call remove(0), because the vec is created from repeat(1..), // It's safe to call remove(0), because the vec is created from repeat(1..),
// which is guaranteed to have >=1 elements. // which is guaranteed to have >=1 elements.
let (property, end, computed) = members.remove(0); let (property, end, computed) = members.remove(0);
let start = id.start; let start = object.start();
let module_id = id.module_id; let module_id = object.module_id();
let initial_member_expression = Node::new( let initial_member_expression = Node::new(
MemberExpression { MemberExpression {
object: MemberObject::Identifier(Box::new(id)), object,
computed, computed,
property, property,
digest: None, digest: None,
@ -1362,7 +1359,7 @@ fn member_expression(i: &mut TokenSlice) -> ModalResult<Node<MemberExpression>>
.fold(initial_member_expression, |accumulated, (property, end, computed)| { .fold(initial_member_expression, |accumulated, (property, end, computed)| {
Node::new( Node::new(
MemberExpression { MemberExpression {
object: MemberObject::MemberExpression(Box::new(accumulated)), object: Expr::MemberExpression(Box::new(accumulated)),
computed, computed,
property, property,
digest: None, digest: None,
@ -2085,8 +2082,7 @@ fn unnecessarily_bracketed(i: &mut TokenSlice) -> ModalResult<Expr> {
} }
fn expr_allowed_in_pipe_expr(i: &mut TokenSlice) -> ModalResult<Expr> { fn expr_allowed_in_pipe_expr(i: &mut TokenSlice) -> ModalResult<Expr> {
alt(( let parsed_expr = alt((
member_expression.map(Box::new).map(Expr::MemberExpression),
bool_value.map(Box::new).map(Expr::Literal), bool_value.map(Box::new).map(Expr::Literal),
tag.map(Box::new).map(Expr::TagDeclarator), tag.map(Box::new).map(Expr::TagDeclarator),
literal.map(Expr::Literal), literal.map(Expr::Literal),
@ -2100,14 +2096,19 @@ fn expr_allowed_in_pipe_expr(i: &mut TokenSlice) -> ModalResult<Expr> {
unnecessarily_bracketed, unnecessarily_bracketed,
)) ))
.context(expected("a KCL expression (but not a pipe expression)")) .context(expected("a KCL expression (but not a pipe expression)"))
.parse_next(i) .parse_next(i)?;
let maybe_member = build_member_expression(parsed_expr.clone(), i);
if let Ok(mem) = maybe_member {
return Ok(Expr::MemberExpression(Box::new(mem)));
}
Ok(parsed_expr)
} }
fn possible_operands(i: &mut TokenSlice) -> ModalResult<Expr> { fn possible_operands(i: &mut TokenSlice) -> ModalResult<Expr> {
let mut expr = alt(( let mut expr = alt((
unary_expression.map(Box::new).map(Expr::UnaryExpression), unary_expression.map(Box::new).map(Expr::UnaryExpression),
bool_value.map(Box::new).map(Expr::Literal), bool_value.map(Box::new).map(Expr::Literal),
member_expression.map(Box::new).map(Expr::MemberExpression),
literal.map(Expr::Literal), literal.map(Expr::Literal),
fn_call_kw.map(Box::new).map(Expr::CallExpressionKw), fn_call_kw.map(Box::new).map(Expr::CallExpressionKw),
name.map(Box::new).map(Expr::Name), name.map(Box::new).map(Expr::Name),
@ -2118,6 +2119,10 @@ fn possible_operands(i: &mut TokenSlice) -> ModalResult<Expr> {
"a KCL value which can be used as an argument/operand to an operator", "a KCL value which can be used as an argument/operand to an operator",
)) ))
.parse_next(i)?; .parse_next(i)?;
let maybe_member = build_member_expression(expr.clone(), i);
if let Ok(mem) = maybe_member {
expr = Expr::MemberExpression(Box::new(mem));
}
let ty = opt((colon, opt(whitespace), type_)).parse_next(i)?; let ty = opt((colon, opt(whitespace), type_)).parse_next(i)?;
if let Some((_, _, ty)) = ty { if let Some((_, _, ty)) = ty {
@ -3258,7 +3263,7 @@ fn fn_call_kw(i: &mut TokenSlice) -> ModalResult<Node<CallExpressionKw>> {
return Err(ErrMode::Cut( return Err(ErrMode::Cut(
CompilationError::fatal( CompilationError::fatal(
SourceRange::from(&tok), SourceRange::from(&tok),
format!("There was an unexpected {}. Try removing it.", tok.value), format!("There was an unexpected `{}`. Try removing it.", tok.value),
) )
.into(), .into(),
)); ));
@ -4427,7 +4432,7 @@ z(-[["#,
assert_err( assert_err(
r#"z r#"z
(--#"#, (--#"#,
"There was an unexpected -. Try removing it.", "There was an unexpected `-`. Try removing it.",
[3, 4], [3, 4],
); );
} }
@ -4997,6 +5002,17 @@ type foo = fn(fn, f: fn(number(_))): [fn([any]): string]
assert_no_err(some_program_string); assert_no_err(some_program_string);
} }
#[test]
fn test_parse_fn_call_then_field() {
let some_program_string = "myFunction().field";
let module_id = ModuleId::default();
let tokens = crate::parsing::token::lex(some_program_string, module_id).unwrap(); // Updated import path
let actual = expression.parse(tokens.as_slice()).unwrap();
let Expr::MemberExpression(_expr) = actual else {
panic!("expected member expression")
};
}
#[test] #[test]
fn test_parse_array_missing_closing_bracket() { fn test_parse_array_missing_closing_bracket() {
let some_program_string = r#" let some_program_string = r#"
@ -5185,7 +5201,7 @@ bar = 1
.cause .cause
.as_ref() .as_ref()
.expect("Found an error, but there was no cause. Add a cause."); .expect("Found an error, but there was no cause. Add a cause.");
assert_eq!(cause.message, "There was an unexpected }. Try removing it.",); assert_eq!(cause.message, "There was an unexpected `}`. Try removing it.",);
assert_eq!(cause.source_range.start(), expected_src_start); assert_eq!(cause.source_range.start(), expected_src_start);
} }

View File

@ -117,12 +117,20 @@ expression: actual
"computed": false, "computed": false,
"end": 45, "end": 45,
"object": { "object": {
"abs_path": false,
"commentStart": 40, "commentStart": 40,
"end": 43, "end": 43,
"name": "obj", "name": {
"commentStart": 40,
"end": 43,
"name": "obj",
"start": 40,
"type": "Identifier"
},
"path": [],
"start": 40, "start": 40,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 44, "commentStart": 44,

View File

@ -117,12 +117,20 @@ expression: actual
"computed": false, "computed": false,
"end": 49, "end": 49,
"object": { "object": {
"abs_path": false,
"commentStart": 41, "commentStart": 41,
"end": 44, "end": 44,
"name": "obj", "name": {
"commentStart": 41,
"end": 44,
"name": "obj",
"start": 41,
"type": "Identifier"
},
"path": [],
"start": 41, "start": 41,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 45, "commentStart": 45,

View File

@ -104,12 +104,20 @@ expression: actual
"computed": false, "computed": false,
"end": 44, "end": 44,
"object": { "object": {
"abs_path": false,
"commentStart": 36, "commentStart": 36,
"end": 39, "end": 39,
"name": "obj", "name": {
"commentStart": 36,
"end": 39,
"name": "obj",
"start": 36,
"type": "Identifier"
},
"path": [],
"start": 36, "start": 36,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 40, "commentStart": 40,

View File

@ -120,12 +120,20 @@ expression: actual
"computed": false, "computed": false,
"end": 49, "end": 49,
"object": { "object": {
"abs_path": false,
"commentStart": 41, "commentStart": 41,
"end": 44, "end": 44,
"name": "obj", "name": {
"commentStart": 41,
"end": 44,
"name": "obj",
"start": 41,
"type": "Identifier"
},
"path": [],
"start": 41, "start": 41,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 45, "commentStart": 45,

View File

@ -107,12 +107,20 @@ expression: actual
"computed": false, "computed": false,
"end": 45, "end": 45,
"object": { "object": {
"abs_path": false,
"commentStart": 37, "commentStart": 37,
"end": 40, "end": 40,
"name": "obj", "name": {
"commentStart": 37,
"end": 40,
"name": "obj",
"start": 37,
"type": "Identifier"
},
"path": [],
"start": 37, "start": 37,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 41, "commentStart": 41,

View File

@ -107,12 +107,20 @@ expression: actual
"computed": false, "computed": false,
"end": 44, "end": 44,
"object": { "object": {
"abs_path": false,
"commentStart": 36, "commentStart": 36,
"end": 39, "end": 39,
"name": "obj", "name": {
"commentStart": 36,
"end": 39,
"name": "obj",
"start": 36,
"type": "Identifier"
},
"path": [],
"start": 36, "start": 36,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 40, "commentStart": 40,

View File

@ -37,12 +37,20 @@ expression: actual
"computed": false, "computed": false,
"end": 18, "end": 18,
"object": { "object": {
"abs_path": false,
"commentStart": 13, "commentStart": 13,
"end": 16, "end": 16,
"name": "obj", "name": {
"commentStart": 13,
"end": 16,
"name": "obj",
"start": 13,
"type": "Identifier"
},
"path": [],
"start": 13, "start": 13,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 17, "commentStart": 17,

View File

@ -24,12 +24,20 @@ expression: actual
"computed": false, "computed": false,
"end": 19, "end": 19,
"object": { "object": {
"abs_path": false,
"commentStart": 11, "commentStart": 11,
"end": 14, "end": 14,
"name": "obj", "name": {
"commentStart": 11,
"end": 14,
"name": "obj",
"start": 11,
"type": "Identifier"
},
"path": [],
"start": 11, "start": 11,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 15, "commentStart": 15,

View File

@ -101,12 +101,20 @@ expression: actual
"computed": false, "computed": false,
"end": 44, "end": 44,
"object": { "object": {
"abs_path": false,
"commentStart": 36, "commentStart": 36,
"end": 39, "end": 39,
"name": "obj", "name": {
"commentStart": 36,
"end": 39,
"name": "obj",
"start": 36,
"type": "Identifier"
},
"path": [],
"start": 36, "start": 36,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 40, "commentStart": 40,

View File

@ -25,12 +25,20 @@ expression: actual
"computed": false, "computed": false,
"end": 16, "end": 16,
"object": { "object": {
"abs_path": false,
"commentStart": 7, "commentStart": 7,
"end": 9, "end": 9,
"name": "yo", "name": {
"commentStart": 7,
"end": 9,
"name": "yo",
"start": 7,
"type": "Identifier"
},
"path": [],
"start": 7, "start": 7,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 10, "commentStart": 10,

View File

@ -21,12 +21,20 @@ expression: actual
"computed": true, "computed": true,
"end": 11, "end": 11,
"object": { "object": {
"abs_path": false,
"commentStart": 6, "commentStart": 6,
"end": 8, "end": 8,
"name": "b1", "name": {
"commentStart": 6,
"end": 8,
"name": "b1",
"start": 6,
"type": "Identifier"
},
"path": [],
"start": 6, "start": 6,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 9, "commentStart": 9,

View File

@ -33,12 +33,20 @@ expression: actual
"computed": false, "computed": false,
"end": 13, "end": 13,
"object": { "object": {
"abs_path": false,
"commentStart": 7, "commentStart": 7,
"end": 9, "end": 9,
"name": "yo", "name": {
"commentStart": 7,
"end": 9,
"name": "yo",
"start": 7,
"type": "Identifier"
},
"path": [],
"start": 7, "start": 7,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 10, "commentStart": 10,

View File

@ -21,12 +21,20 @@ expression: actual
"computed": false, "computed": false,
"end": 11, "end": 11,
"object": { "object": {
"abs_path": false,
"commentStart": 6, "commentStart": 6,
"end": 8, "end": 8,
"name": "b1", "name": {
"commentStart": 6,
"end": 8,
"name": "b1",
"start": 6,
"type": "Identifier"
},
"path": [],
"start": 6, "start": 6,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 9, "commentStart": 9,

View File

@ -21,12 +21,20 @@ expression: actual
"computed": false, "computed": false,
"end": 16, "end": 16,
"object": { "object": {
"abs_path": false,
"commentStart": 6, "commentStart": 6,
"end": 8, "end": 8,
"name": "b1", "name": {
"commentStart": 6,
"end": 8,
"name": "b1",
"start": 6,
"type": "Identifier"
},
"path": [],
"start": 6, "start": 6,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 9, "commentStart": 9,

View File

@ -21,12 +21,20 @@ expression: actual
"computed": false, "computed": false,
"end": 13, "end": 13,
"object": { "object": {
"abs_path": false,
"commentStart": 6, "commentStart": 6,
"end": 8, "end": 8,
"name": "b1", "name": {
"commentStart": 6,
"end": 8,
"name": "b1",
"start": 6,
"type": "Identifier"
},
"path": [],
"start": 6, "start": 6,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 9, "commentStart": 9,

View File

@ -5,8 +5,8 @@ use crate::parsing::{
Annotation, ArrayExpression, ArrayRangeExpression, AscribedExpression, BinaryExpression, BinaryOperator, Annotation, ArrayExpression, ArrayRangeExpression, AscribedExpression, BinaryExpression, BinaryOperator,
BinaryPart, BodyItem, CallExpressionKw, CommentStyle, DefaultParamVal, Expr, FormatOptions, FunctionExpression, BinaryPart, BodyItem, CallExpressionKw, CommentStyle, DefaultParamVal, Expr, FormatOptions, FunctionExpression,
IfExpression, ImportSelector, ImportStatement, ItemVisibility, LabeledArg, Literal, LiteralIdentifier, IfExpression, ImportSelector, ImportStatement, ItemVisibility, LabeledArg, Literal, LiteralIdentifier,
LiteralValue, MemberExpression, MemberObject, Node, NonCodeNode, NonCodeValue, ObjectExpression, Parameter, LiteralValue, MemberExpression, Node, NonCodeNode, NonCodeValue, ObjectExpression, Parameter, PipeExpression,
PipeExpression, Program, TagDeclarator, TypeDeclaration, UnaryExpression, VariableDeclaration, VariableKind, Program, TagDeclarator, TypeDeclaration, UnaryExpression, VariableDeclaration, VariableKind,
}, },
deprecation, DeprecationKind, PIPE_OPERATOR, deprecation, DeprecationKind, PIPE_OPERATOR,
}; };
@ -278,11 +278,11 @@ impl Expr {
ctxt = ExprContext::Other; ctxt = ExprContext::Other;
} }
match &self { match &self {
Expr::BinaryExpression(bin_exp) => bin_exp.recast(options), Expr::BinaryExpression(bin_exp) => bin_exp.recast(options, indentation_level, ctxt),
Expr::ArrayExpression(array_exp) => array_exp.recast(options, indentation_level, ctxt), Expr::ArrayExpression(array_exp) => array_exp.recast(options, indentation_level, ctxt),
Expr::ArrayRangeExpression(range_exp) => range_exp.recast(options, indentation_level, ctxt), Expr::ArrayRangeExpression(range_exp) => range_exp.recast(options, indentation_level, ctxt),
Expr::ObjectExpression(ref obj_exp) => obj_exp.recast(options, indentation_level, ctxt), Expr::ObjectExpression(ref obj_exp) => obj_exp.recast(options, indentation_level, ctxt),
Expr::MemberExpression(mem_exp) => mem_exp.recast(), Expr::MemberExpression(mem_exp) => mem_exp.recast(options, indentation_level, ctxt),
Expr::Literal(literal) => literal.recast(), Expr::Literal(literal) => literal.recast(),
Expr::FunctionExpression(func_exp) => { Expr::FunctionExpression(func_exp) => {
let mut result = if is_decl { String::new() } else { "fn".to_owned() }; let mut result = if is_decl { String::new() } else { "fn".to_owned() };
@ -299,7 +299,7 @@ impl Expr {
} }
Expr::TagDeclarator(tag) => tag.recast(), Expr::TagDeclarator(tag) => tag.recast(),
Expr::PipeExpression(pipe_exp) => pipe_exp.recast(options, indentation_level), Expr::PipeExpression(pipe_exp) => pipe_exp.recast(options, indentation_level),
Expr::UnaryExpression(unary_exp) => unary_exp.recast(options), Expr::UnaryExpression(unary_exp) => unary_exp.recast(options, indentation_level, ctxt),
Expr::IfExpression(e) => e.recast(options, indentation_level, ctxt), Expr::IfExpression(e) => e.recast(options, indentation_level, ctxt),
Expr::PipeSubstitution(_) => crate::parsing::PIPE_SUBSTITUTION_OPERATOR.to_string(), Expr::PipeSubstitution(_) => crate::parsing::PIPE_SUBSTITUTION_OPERATOR.to_string(),
Expr::LabelledExpression(e) => { Expr::LabelledExpression(e) => {
@ -332,7 +332,7 @@ impl AscribedExpression {
} }
impl BinaryPart { impl BinaryPart {
fn recast(&self, options: &FormatOptions, indentation_level: usize) -> String { fn recast(&self, options: &FormatOptions, indentation_level: usize, ctxt: ExprContext) -> String {
match &self { match &self {
BinaryPart::Literal(literal) => literal.recast(), BinaryPart::Literal(literal) => literal.recast(),
BinaryPart::Name(name) => { BinaryPart::Name(name) => {
@ -342,12 +342,16 @@ impl BinaryPart {
None => result, None => result,
} }
} }
BinaryPart::BinaryExpression(binary_expression) => binary_expression.recast(options), BinaryPart::BinaryExpression(binary_expression) => {
binary_expression.recast(options, indentation_level, ctxt)
}
BinaryPart::CallExpressionKw(call_expression) => { BinaryPart::CallExpressionKw(call_expression) => {
call_expression.recast(options, indentation_level, ExprContext::Other) call_expression.recast(options, indentation_level, ExprContext::Other)
} }
BinaryPart::UnaryExpression(unary_expression) => unary_expression.recast(options), BinaryPart::UnaryExpression(unary_expression) => unary_expression.recast(options, indentation_level, ctxt),
BinaryPart::MemberExpression(member_expression) => member_expression.recast(), BinaryPart::MemberExpression(member_expression) => {
member_expression.recast(options, indentation_level, ctxt)
}
BinaryPart::IfExpression(e) => e.recast(options, indentation_level, ExprContext::Other), BinaryPart::IfExpression(e) => e.recast(options, indentation_level, ExprContext::Other),
BinaryPart::AscribedExpression(e) => e.recast(options, indentation_level, ExprContext::Other), BinaryPart::AscribedExpression(e) => e.recast(options, indentation_level, ExprContext::Other),
} }
@ -670,7 +674,7 @@ impl ObjectExpression {
} }
impl MemberExpression { impl MemberExpression {
fn recast(&self) -> String { fn recast(&self, options: &FormatOptions, indentation_level: usize, ctxt: ExprContext) -> String {
let key_str = match &self.property { let key_str = match &self.property {
LiteralIdentifier::Identifier(identifier) => { LiteralIdentifier::Identifier(identifier) => {
if self.computed { if self.computed {
@ -682,15 +686,12 @@ impl MemberExpression {
LiteralIdentifier::Literal(lit) => format!("[{}]", &(*lit.raw)), LiteralIdentifier::Literal(lit) => format!("[{}]", &(*lit.raw)),
}; };
match &self.object { self.object.recast(options, indentation_level, ctxt) + key_str.as_str()
MemberObject::MemberExpression(member_exp) => member_exp.recast() + key_str.as_str(),
MemberObject::Identifier(identifier) => identifier.name.to_string() + key_str.as_str(),
}
} }
} }
impl BinaryExpression { impl BinaryExpression {
fn recast(&self, options: &FormatOptions) -> String { fn recast(&self, options: &FormatOptions, _indentation_level: usize, ctxt: ExprContext) -> String {
let maybe_wrap_it = |a: String, doit: bool| -> String { let maybe_wrap_it = |a: String, doit: bool| -> String {
if doit { if doit {
format!("({})", a) format!("({})", a)
@ -715,15 +716,15 @@ impl BinaryExpression {
format!( format!(
"{} {} {}", "{} {} {}",
maybe_wrap_it(self.left.recast(options, 0), should_wrap_left), maybe_wrap_it(self.left.recast(options, 0, ctxt), should_wrap_left),
self.operator, self.operator,
maybe_wrap_it(self.right.recast(options, 0), should_wrap_right) maybe_wrap_it(self.right.recast(options, 0, ctxt), should_wrap_right)
) )
} }
} }
impl UnaryExpression { impl UnaryExpression {
fn recast(&self, options: &FormatOptions) -> String { fn recast(&self, options: &FormatOptions, _indentation_level: usize, ctxt: ExprContext) -> String {
match self.argument { match self.argument {
BinaryPart::Literal(_) BinaryPart::Literal(_)
| BinaryPart::Name(_) | BinaryPart::Name(_)
@ -731,10 +732,10 @@ impl UnaryExpression {
| BinaryPart::IfExpression(_) | BinaryPart::IfExpression(_)
| BinaryPart::AscribedExpression(_) | BinaryPart::AscribedExpression(_)
| BinaryPart::CallExpressionKw(_) => { | BinaryPart::CallExpressionKw(_) => {
format!("{}{}", &self.operator, self.argument.recast(options, 0)) format!("{}{}", &self.operator, self.argument.recast(options, 0, ctxt))
} }
BinaryPart::BinaryExpression(_) | BinaryPart::UnaryExpression(_) => { BinaryPart::BinaryExpression(_) | BinaryPart::UnaryExpression(_) => {
format!("{}({})", &self.operator, self.argument.recast(options, 0)) format!("{}({})", &self.operator, self.argument.recast(options, 0, ctxt))
} }
} }
} }

View File

@ -226,15 +226,6 @@ impl<'tree> From<&'tree types::BinaryPart> for Node<'tree> {
} }
} }
impl<'tree> From<&'tree types::MemberObject> for Node<'tree> {
fn from(node: &'tree types::MemberObject) -> Self {
match node {
types::MemberObject::MemberExpression(me) => me.as_ref().into(),
types::MemberObject::Identifier(id) => id.as_ref().into(),
}
}
}
impl<'tree> From<&'tree types::LiteralIdentifier> for Node<'tree> { impl<'tree> From<&'tree types::LiteralIdentifier> for Node<'tree> {
fn from(node: &'tree types::LiteralIdentifier) -> Self { fn from(node: &'tree types::LiteralIdentifier) -> Self {
match node { match node {

View File

@ -274,164 +274,38 @@ description: Result of parsing add_lots.kcl
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"left": { "left": {
"callee": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "f",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name"
},
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"left": {
"commentStart": 0,
"end": 0,
"left": {
"commentStart": 0,
"end": 0,
"left": {
"callee": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "f",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name"
},
"commentStart": 0,
"end": 0,
"start": 0,
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": {
"commentStart": 0,
"end": 0,
"raw": "0",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 0.0,
"suffix": "None"
}
}
},
"operator": "+",
"right": {
"callee": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "f",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name"
},
"commentStart": 0,
"end": 0,
"start": 0,
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": {
"commentStart": 0,
"end": 0,
"raw": "1",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 1.0,
"suffix": "None"
}
}
},
"start": 0,
"type": "BinaryExpression",
"type": "BinaryExpression"
},
"operator": "+",
"right": {
"callee": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "f",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name"
},
"commentStart": 0,
"end": 0,
"start": 0,
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": {
"commentStart": 0,
"end": 0,
"raw": "2",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 2.0,
"suffix": "None"
}
}
},
"start": 0,
"type": "BinaryExpression",
"type": "BinaryExpression"
},
"operator": "+",
"right": {
"callee": {
"abs_path": false,
"commentStart": 0,
"end": 0,
"name": {
"commentStart": 0,
"end": 0,
"name": "f",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0,
"type": "Name"
},
"commentStart": 0,
"end": 0,
"start": 0,
"type": "CallExpressionKw",
"type": "CallExpressionKw",
"unlabeled": {
"commentStart": 0,
"end": 0,
"raw": "3",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 3.0,
"suffix": "None"
}
}
},
"start": 0, "start": 0,
"type": "BinaryExpression", "type": "CallExpressionKw",
"type": "BinaryExpression" "type": "CallExpressionKw",
"unlabeled": {
"commentStart": 0,
"end": 0,
"raw": "0",
"start": 0,
"type": "Literal",
"type": "Literal",
"value": {
"value": 0.0,
"suffix": "None"
}
}
}, },
"operator": "+", "operator": "+",
"right": { "right": {
@ -458,12 +332,12 @@ description: Result of parsing add_lots.kcl
"unlabeled": { "unlabeled": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"raw": "4", "raw": "1",
"start": 0, "start": 0,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
"value": 4.0, "value": 1.0,
"suffix": "None" "suffix": "None"
} }
} }
@ -497,12 +371,12 @@ description: Result of parsing add_lots.kcl
"unlabeled": { "unlabeled": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"raw": "5", "raw": "2",
"start": 0, "start": 0,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
"value": 5.0, "value": 2.0,
"suffix": "None" "suffix": "None"
} }
} }
@ -536,12 +410,12 @@ description: Result of parsing add_lots.kcl
"unlabeled": { "unlabeled": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"raw": "6", "raw": "3",
"start": 0, "start": 0,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
"value": 6.0, "value": 3.0,
"suffix": "None" "suffix": "None"
} }
} }
@ -575,12 +449,12 @@ description: Result of parsing add_lots.kcl
"unlabeled": { "unlabeled": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"raw": "7", "raw": "4",
"start": 0, "start": 0,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
"value": 7.0, "value": 4.0,
"suffix": "None" "suffix": "None"
} }
} }
@ -614,12 +488,12 @@ description: Result of parsing add_lots.kcl
"unlabeled": { "unlabeled": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"raw": "8", "raw": "5",
"start": 0, "start": 0,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
"value": 8.0, "value": 5.0,
"suffix": "None" "suffix": "None"
} }
} }
@ -653,12 +527,12 @@ description: Result of parsing add_lots.kcl
"unlabeled": { "unlabeled": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"raw": "9", "raw": "6",
"start": 0, "start": 0,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
"value": 9.0, "value": 6.0,
"suffix": "None" "suffix": "None"
} }
} }
@ -692,12 +566,12 @@ description: Result of parsing add_lots.kcl
"unlabeled": { "unlabeled": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"raw": "10", "raw": "7",
"start": 0, "start": 0,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
"value": 10.0, "value": 7.0,
"suffix": "None" "suffix": "None"
} }
} }
@ -731,12 +605,12 @@ description: Result of parsing add_lots.kcl
"unlabeled": { "unlabeled": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"raw": "11", "raw": "8",
"start": 0, "start": 0,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
"value": 11.0, "value": 8.0,
"suffix": "None" "suffix": "None"
} }
} }
@ -770,12 +644,12 @@ description: Result of parsing add_lots.kcl
"unlabeled": { "unlabeled": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"raw": "12", "raw": "9",
"start": 0, "start": 0,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
"value": 12.0, "value": 9.0,
"suffix": "None" "suffix": "None"
} }
} }
@ -809,12 +683,12 @@ description: Result of parsing add_lots.kcl
"unlabeled": { "unlabeled": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"raw": "13", "raw": "10",
"start": 0, "start": 0,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
"value": 13.0, "value": 10.0,
"suffix": "None" "suffix": "None"
} }
} }
@ -848,12 +722,12 @@ description: Result of parsing add_lots.kcl
"unlabeled": { "unlabeled": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"raw": "14", "raw": "11",
"start": 0, "start": 0,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
"value": 14.0, "value": 11.0,
"suffix": "None" "suffix": "None"
} }
} }
@ -887,12 +761,12 @@ description: Result of parsing add_lots.kcl
"unlabeled": { "unlabeled": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"raw": "15", "raw": "12",
"start": 0, "start": 0,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
"value": 15.0, "value": 12.0,
"suffix": "None" "suffix": "None"
} }
} }
@ -926,12 +800,12 @@ description: Result of parsing add_lots.kcl
"unlabeled": { "unlabeled": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"raw": "16", "raw": "13",
"start": 0, "start": 0,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
"value": 16.0, "value": 13.0,
"suffix": "None" "suffix": "None"
} }
} }
@ -965,12 +839,12 @@ description: Result of parsing add_lots.kcl
"unlabeled": { "unlabeled": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"raw": "17", "raw": "14",
"start": 0, "start": 0,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
"value": 17.0, "value": 14.0,
"suffix": "None" "suffix": "None"
} }
} }
@ -1004,12 +878,12 @@ description: Result of parsing add_lots.kcl
"unlabeled": { "unlabeled": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"raw": "18", "raw": "15",
"start": 0, "start": 0,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
"value": 18.0, "value": 15.0,
"suffix": "None" "suffix": "None"
} }
} }
@ -1043,12 +917,12 @@ description: Result of parsing add_lots.kcl
"unlabeled": { "unlabeled": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"raw": "19", "raw": "16",
"start": 0, "start": 0,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
"value": 19.0, "value": 16.0,
"suffix": "None" "suffix": "None"
} }
} }
@ -1082,12 +956,12 @@ description: Result of parsing add_lots.kcl
"unlabeled": { "unlabeled": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"raw": "20", "raw": "17",
"start": 0, "start": 0,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
"value": 20.0, "value": 17.0,
"suffix": "None" "suffix": "None"
} }
} }
@ -1121,12 +995,12 @@ description: Result of parsing add_lots.kcl
"unlabeled": { "unlabeled": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"raw": "21", "raw": "18",
"start": 0, "start": 0,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
"value": 21.0, "value": 18.0,
"suffix": "None" "suffix": "None"
} }
} }
@ -1160,12 +1034,12 @@ description: Result of parsing add_lots.kcl
"unlabeled": { "unlabeled": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"raw": "22", "raw": "19",
"start": 0, "start": 0,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
"value": 22.0, "value": 19.0,
"suffix": "None" "suffix": "None"
} }
} }
@ -1199,12 +1073,12 @@ description: Result of parsing add_lots.kcl
"unlabeled": { "unlabeled": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"raw": "23", "raw": "20",
"start": 0, "start": 0,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
"value": 23.0, "value": 20.0,
"suffix": "None" "suffix": "None"
} }
} }
@ -1238,12 +1112,12 @@ description: Result of parsing add_lots.kcl
"unlabeled": { "unlabeled": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"raw": "24", "raw": "21",
"start": 0, "start": 0,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
"value": 24.0, "value": 21.0,
"suffix": "None" "suffix": "None"
} }
} }
@ -1277,12 +1151,12 @@ description: Result of parsing add_lots.kcl
"unlabeled": { "unlabeled": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"raw": "25", "raw": "22",
"start": 0, "start": 0,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
"value": 25.0, "value": 22.0,
"suffix": "None" "suffix": "None"
} }
} }
@ -1316,12 +1190,12 @@ description: Result of parsing add_lots.kcl
"unlabeled": { "unlabeled": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"raw": "26", "raw": "23",
"start": 0, "start": 0,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
"value": 26.0, "value": 23.0,
"suffix": "None" "suffix": "None"
} }
} }
@ -1355,12 +1229,12 @@ description: Result of parsing add_lots.kcl
"unlabeled": { "unlabeled": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"raw": "27", "raw": "24",
"start": 0, "start": 0,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
"value": 27.0, "value": 24.0,
"suffix": "None" "suffix": "None"
} }
} }
@ -1394,12 +1268,12 @@ description: Result of parsing add_lots.kcl
"unlabeled": { "unlabeled": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"raw": "28", "raw": "25",
"start": 0, "start": 0,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
"value": 28.0, "value": 25.0,
"suffix": "None" "suffix": "None"
} }
} }
@ -1433,12 +1307,12 @@ description: Result of parsing add_lots.kcl
"unlabeled": { "unlabeled": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"raw": "29", "raw": "26",
"start": 0, "start": 0,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
"value": 29.0, "value": 26.0,
"suffix": "None" "suffix": "None"
} }
} }
@ -1472,12 +1346,12 @@ description: Result of parsing add_lots.kcl
"unlabeled": { "unlabeled": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"raw": "30", "raw": "27",
"start": 0, "start": 0,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
"value": 30.0, "value": 27.0,
"suffix": "None" "suffix": "None"
} }
} }
@ -1511,12 +1385,12 @@ description: Result of parsing add_lots.kcl
"unlabeled": { "unlabeled": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"raw": "31", "raw": "28",
"start": 0, "start": 0,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
"value": 31.0, "value": 28.0,
"suffix": "None" "suffix": "None"
} }
} }
@ -1550,12 +1424,12 @@ description: Result of parsing add_lots.kcl
"unlabeled": { "unlabeled": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"raw": "32", "raw": "29",
"start": 0, "start": 0,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
"value": 32.0, "value": 29.0,
"suffix": "None" "suffix": "None"
} }
} }
@ -1589,12 +1463,12 @@ description: Result of parsing add_lots.kcl
"unlabeled": { "unlabeled": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"raw": "33", "raw": "30",
"start": 0, "start": 0,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
"value": 33.0, "value": 30.0,
"suffix": "None" "suffix": "None"
} }
} }
@ -1628,12 +1502,12 @@ description: Result of parsing add_lots.kcl
"unlabeled": { "unlabeled": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"raw": "34", "raw": "31",
"start": 0, "start": 0,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
"value": 34.0, "value": 31.0,
"suffix": "None" "suffix": "None"
} }
} }
@ -1667,12 +1541,12 @@ description: Result of parsing add_lots.kcl
"unlabeled": { "unlabeled": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"raw": "35", "raw": "32",
"start": 0, "start": 0,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
"value": 35.0, "value": 32.0,
"suffix": "None" "suffix": "None"
} }
} }
@ -1706,12 +1580,12 @@ description: Result of parsing add_lots.kcl
"unlabeled": { "unlabeled": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"raw": "36", "raw": "33",
"start": 0, "start": 0,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
"value": 36.0, "value": 33.0,
"suffix": "None" "suffix": "None"
} }
} }
@ -1745,12 +1619,12 @@ description: Result of parsing add_lots.kcl
"unlabeled": { "unlabeled": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"raw": "37", "raw": "34",
"start": 0, "start": 0,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
"value": 37.0, "value": 34.0,
"suffix": "None" "suffix": "None"
} }
} }
@ -1784,12 +1658,12 @@ description: Result of parsing add_lots.kcl
"unlabeled": { "unlabeled": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"raw": "38", "raw": "35",
"start": 0, "start": 0,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
"value": 38.0, "value": 35.0,
"suffix": "None" "suffix": "None"
} }
} }
@ -1823,12 +1697,12 @@ description: Result of parsing add_lots.kcl
"unlabeled": { "unlabeled": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"raw": "39", "raw": "36",
"start": 0, "start": 0,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
"value": 39.0, "value": 36.0,
"suffix": "None" "suffix": "None"
} }
} }
@ -1862,12 +1736,12 @@ description: Result of parsing add_lots.kcl
"unlabeled": { "unlabeled": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"raw": "40", "raw": "37",
"start": 0, "start": 0,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
"value": 40.0, "value": 37.0,
"suffix": "None" "suffix": "None"
} }
} }
@ -1901,12 +1775,12 @@ description: Result of parsing add_lots.kcl
"unlabeled": { "unlabeled": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"raw": "41", "raw": "38",
"start": 0, "start": 0,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
"value": 41.0, "value": 38.0,
"suffix": "None" "suffix": "None"
} }
} }
@ -1940,12 +1814,12 @@ description: Result of parsing add_lots.kcl
"unlabeled": { "unlabeled": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"raw": "42", "raw": "39",
"start": 0, "start": 0,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
"value": 42.0, "value": 39.0,
"suffix": "None" "suffix": "None"
} }
} }
@ -1979,12 +1853,12 @@ description: Result of parsing add_lots.kcl
"unlabeled": { "unlabeled": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"raw": "43", "raw": "40",
"start": 0, "start": 0,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
"value": 43.0, "value": 40.0,
"suffix": "None" "suffix": "None"
} }
} }
@ -2018,12 +1892,12 @@ description: Result of parsing add_lots.kcl
"unlabeled": { "unlabeled": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"raw": "44", "raw": "41",
"start": 0, "start": 0,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
"value": 44.0, "value": 41.0,
"suffix": "None" "suffix": "None"
} }
} }
@ -2057,12 +1931,12 @@ description: Result of parsing add_lots.kcl
"unlabeled": { "unlabeled": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"raw": "45", "raw": "42",
"start": 0, "start": 0,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
"value": 45.0, "value": 42.0,
"suffix": "None" "suffix": "None"
} }
} }
@ -2096,12 +1970,12 @@ description: Result of parsing add_lots.kcl
"unlabeled": { "unlabeled": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"raw": "46", "raw": "43",
"start": 0, "start": 0,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
"value": 46.0, "value": 43.0,
"suffix": "None" "suffix": "None"
} }
} }
@ -2135,12 +2009,12 @@ description: Result of parsing add_lots.kcl
"unlabeled": { "unlabeled": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"raw": "47", "raw": "44",
"start": 0, "start": 0,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
"value": 47.0, "value": 44.0,
"suffix": "None" "suffix": "None"
} }
} }
@ -2174,12 +2048,12 @@ description: Result of parsing add_lots.kcl
"unlabeled": { "unlabeled": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"raw": "48", "raw": "45",
"start": 0, "start": 0,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
"value": 48.0, "value": 45.0,
"suffix": "None" "suffix": "None"
} }
} }
@ -2213,12 +2087,12 @@ description: Result of parsing add_lots.kcl
"unlabeled": { "unlabeled": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"raw": "49", "raw": "46",
"start": 0, "start": 0,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
"value": 49.0, "value": 46.0,
"suffix": "None" "suffix": "None"
} }
} }
@ -2252,12 +2126,12 @@ description: Result of parsing add_lots.kcl
"unlabeled": { "unlabeled": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"raw": "50", "raw": "47",
"start": 0, "start": 0,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
"value": 50.0, "value": 47.0,
"suffix": "None" "suffix": "None"
} }
} }
@ -2291,12 +2165,12 @@ description: Result of parsing add_lots.kcl
"unlabeled": { "unlabeled": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"raw": "51", "raw": "48",
"start": 0, "start": 0,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
"value": 51.0, "value": 48.0,
"suffix": "None" "suffix": "None"
} }
} }
@ -2330,12 +2204,12 @@ description: Result of parsing add_lots.kcl
"unlabeled": { "unlabeled": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"raw": "52", "raw": "49",
"start": 0, "start": 0,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
"value": 52.0, "value": 49.0,
"suffix": "None" "suffix": "None"
} }
} }
@ -2369,12 +2243,12 @@ description: Result of parsing add_lots.kcl
"unlabeled": { "unlabeled": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"raw": "53", "raw": "50",
"start": 0, "start": 0,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
"value": 53.0, "value": 50.0,
"suffix": "None" "suffix": "None"
} }
} }
@ -2408,12 +2282,12 @@ description: Result of parsing add_lots.kcl
"unlabeled": { "unlabeled": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"raw": "54", "raw": "51",
"start": 0, "start": 0,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
"value": 54.0, "value": 51.0,
"suffix": "None" "suffix": "None"
} }
} }
@ -2447,12 +2321,12 @@ description: Result of parsing add_lots.kcl
"unlabeled": { "unlabeled": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"raw": "55", "raw": "52",
"start": 0, "start": 0,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
"value": 55.0, "value": 52.0,
"suffix": "None" "suffix": "None"
} }
} }
@ -2486,12 +2360,12 @@ description: Result of parsing add_lots.kcl
"unlabeled": { "unlabeled": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"raw": "56", "raw": "53",
"start": 0, "start": 0,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
"value": 56.0, "value": 53.0,
"suffix": "None" "suffix": "None"
} }
} }
@ -2525,12 +2399,12 @@ description: Result of parsing add_lots.kcl
"unlabeled": { "unlabeled": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"raw": "57", "raw": "54",
"start": 0, "start": 0,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
"value": 57.0, "value": 54.0,
"suffix": "None" "suffix": "None"
} }
} }
@ -2564,12 +2438,12 @@ description: Result of parsing add_lots.kcl
"unlabeled": { "unlabeled": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"raw": "58", "raw": "55",
"start": 0, "start": 0,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
"value": 58.0, "value": 55.0,
"suffix": "None" "suffix": "None"
} }
} }
@ -2604,12 +2478,12 @@ description: Result of parsing add_lots.kcl
"arg": { "arg": {
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"raw": "3422", "raw": "3080",
"start": 0, "start": 0,
"type": "Literal", "type": "Literal",
"type": "Literal", "type": "Literal",
"value": { "value": {
"value": 3422.0, "value": 3080.0,
"suffix": "None" "suffix": "None"
} }
} }

View File

@ -2,6 +2,6 @@ fn f(@i) {
return i * 2 return i * 2
} }
x = f(0) + f(1) + f(2) + f(3) + f(4) + f(5) + f(6) + f(7) + f(8) + f(9) + f(10) + f(11) + f(12) + f(13) + f(14) + f(15) + f(16) + f(17) + f(18) + f(19) + f(20) + f(21) + f(22) + f(23) + f(24) + f(25) + f(26) + f(27) + f(28) + f(29) + f(30) + f(31) + f(32) + f(33) + f(34) + f(35) + f(36) + f(37) + f(38) + f(39) + f(40) + f(41) + f(42) + f(43) + f(44) + f(45) + f(46) + f(47) + f(48) + f(49) + f(50) + f(51) + f(52) + f(53) + f(54) + f(55) + f(56) + f(57) + f(58) x = f(0) + f(1) + f(2) + f(3) + f(4) + f(5) + f(6) + f(7) + f(8) + f(9) + f(10) + f(11) + f(12) + f(13) + f(14) + f(15) + f(16) + f(17) + f(18) + f(19) + f(20) + f(21) + f(22) + f(23) + f(24) + f(25) + f(26) + f(27) + f(28) + f(29) + f(30) + f(31) + f(32) + f(33) + f(34) + f(35) + f(36) + f(37) + f(38) + f(39) + f(40) + f(41) + f(42) + f(43) + f(44) + f(45) + f(46) + f(47) + f(48) + f(49) + f(50) + f(51) + f(52) + f(53) + f(54) + f(55)
assert(x, isEqualTo = 3422, error = "Big sum") assert(x, isEqualTo = 3080, error = "Big sum")

View File

@ -1459,93 +1459,6 @@ description: Operations executed add_lots.kcl
}, },
"sourceRange": [] "sourceRange": []
}, },
{
"type": "GroupBegin",
"group": {
"type": "FunctionCall",
"name": "f",
"functionSourceRange": [],
"unlabeledArg": {
"value": {
"type": "Number",
"value": 56.0,
"ty": {
"type": "Default",
"len": {
"type": "Mm"
},
"angle": {
"type": "Degrees"
}
}
},
"sourceRange": []
},
"labeledArgs": {}
},
"sourceRange": []
},
{
"type": "GroupBegin",
"group": {
"type": "FunctionCall",
"name": "f",
"functionSourceRange": [],
"unlabeledArg": {
"value": {
"type": "Number",
"value": 57.0,
"ty": {
"type": "Default",
"len": {
"type": "Mm"
},
"angle": {
"type": "Degrees"
}
}
},
"sourceRange": []
},
"labeledArgs": {}
},
"sourceRange": []
},
{
"type": "GroupBegin",
"group": {
"type": "FunctionCall",
"name": "f",
"functionSourceRange": [],
"unlabeledArg": {
"value": {
"type": "Number",
"value": 58.0,
"ty": {
"type": "Default",
"len": {
"type": "Mm"
},
"angle": {
"type": "Degrees"
}
}
},
"sourceRange": []
},
"labeledArgs": {}
},
"sourceRange": []
},
{
"type": "GroupEnd"
},
{
"type": "GroupEnd"
},
{
"type": "GroupEnd"
},
{ {
"type": "GroupEnd" "type": "GroupEnd"
}, },

View File

@ -9,7 +9,7 @@ description: Variables in memory after executing add_lots.kcl
}, },
"x": { "x": {
"type": "Number", "type": "Number",
"value": 3422.0, "value": 3080.0,
"ty": { "ty": {
"type": "Default", "type": "Default",
"len": { "len": {

View File

@ -6,6 +6,6 @@ fn f(@i) {
return i * 2 return i * 2
} }
x = f(0) + f(1) + f(2) + f(3) + f(4) + f(5) + f(6) + f(7) + f(8) + f(9) + f(10) + f(11) + f(12) + f(13) + f(14) + f(15) + f(16) + f(17) + f(18) + f(19) + f(20) + f(21) + f(22) + f(23) + f(24) + f(25) + f(26) + f(27) + f(28) + f(29) + f(30) + f(31) + f(32) + f(33) + f(34) + f(35) + f(36) + f(37) + f(38) + f(39) + f(40) + f(41) + f(42) + f(43) + f(44) + f(45) + f(46) + f(47) + f(48) + f(49) + f(50) + f(51) + f(52) + f(53) + f(54) + f(55) + f(56) + f(57) + f(58) x = f(0) + f(1) + f(2) + f(3) + f(4) + f(5) + f(6) + f(7) + f(8) + f(9) + f(10) + f(11) + f(12) + f(13) + f(14) + f(15) + f(16) + f(17) + f(18) + f(19) + f(20) + f(21) + f(22) + f(23) + f(24) + f(25) + f(26) + f(27) + f(28) + f(29) + f(30) + f(31) + f(32) + f(33) + f(34) + f(35) + f(36) + f(37) + f(38) + f(39) + f(40) + f(41) + f(42) + f(43) + f(44) + f(45) + f(46) + f(47) + f(48) + f(49) + f(50) + f(51) + f(52) + f(53) + f(54) + f(55)
assert(x, isEqualTo = 3422, error = "Big sum") assert(x, isEqualTo = 3080, error = "Big sum")

View File

@ -320,12 +320,20 @@ description: Result of parsing array_elem_pop.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "new_arr1", "name": {
"commentStart": 0,
"end": 0,
"name": "new_arr1",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -420,12 +428,20 @@ description: Result of parsing array_elem_pop.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "new_arr1", "name": {
"commentStart": 0,
"end": 0,
"name": "new_arr1",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -520,12 +536,20 @@ description: Result of parsing array_elem_pop.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "new_arr2", "name": {
"commentStart": 0,
"end": 0,
"name": "new_arr2",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,

View File

@ -147,12 +147,20 @@ description: Result of parsing array_elem_pop_fail.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "pushedArr", "name": {
"commentStart": 0,
"end": 0,
"name": "pushedArr",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,

View File

@ -309,12 +309,20 @@ description: Result of parsing array_elem_push.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "new_arr1", "name": {
"commentStart": 0,
"end": 0,
"name": "new_arr1",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -409,12 +417,20 @@ description: Result of parsing array_elem_push.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "new_arr1", "name": {
"commentStart": 0,
"end": 0,
"name": "new_arr1",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -509,12 +525,20 @@ description: Result of parsing array_elem_push.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "new_arr1", "name": {
"commentStart": 0,
"end": 0,
"name": "new_arr1",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -609,12 +633,20 @@ description: Result of parsing array_elem_push.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "new_arr1", "name": {
"commentStart": 0,
"end": 0,
"name": "new_arr1",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -709,12 +741,20 @@ description: Result of parsing array_elem_push.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "new_arr2", "name": {
"commentStart": 0,
"end": 0,
"name": "new_arr2",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -809,12 +849,20 @@ description: Result of parsing array_elem_push.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "new_arr2", "name": {
"commentStart": 0,
"end": 0,
"name": "new_arr2",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -909,12 +957,20 @@ description: Result of parsing array_elem_push.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "new_arr2", "name": {
"commentStart": 0,
"end": 0,
"name": "new_arr2",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -1009,12 +1065,20 @@ description: Result of parsing array_elem_push.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "new_arr2", "name": {
"commentStart": 0,
"end": 0,
"name": "new_arr2",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -1109,12 +1173,20 @@ description: Result of parsing array_elem_push.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "new_arr2", "name": {
"commentStart": 0,
"end": 0,
"name": "new_arr2",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,

View File

@ -171,12 +171,20 @@ description: Result of parsing array_elem_push_fail.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "arr", "name": {
"commentStart": 0,
"end": 0,
"name": "arr",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,

View File

@ -51,12 +51,20 @@ description: Result of parsing array_index_oob.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "arr", "name": {
"commentStart": 0,
"end": 0,
"name": "arr",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,

View File

@ -233,12 +233,20 @@ description: Result of parsing array_push_item_wrong_type.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "arrPrime", "name": {
"commentStart": 0,
"end": 0,
"name": "arrPrime",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,

View File

@ -130,12 +130,20 @@ description: Result of parsing array_range_expr.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "r1", "name": {
"commentStart": 0,
"end": 0,
"name": "r1",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -357,12 +365,20 @@ description: Result of parsing array_range_expr.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "r2", "name": {
"commentStart": 0,
"end": 0,
"name": "r2",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -575,12 +591,20 @@ description: Result of parsing array_range_expr.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "r3", "name": {
"commentStart": 0,
"end": 0,
"name": "r3",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -675,12 +699,20 @@ description: Result of parsing array_range_expr.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "r3", "name": {
"commentStart": 0,
"end": 0,
"name": "r3",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -876,12 +908,20 @@ description: Result of parsing array_range_expr.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "r4", "name": {
"commentStart": 0,
"end": 0,
"name": "r4",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -976,12 +1016,20 @@ description: Result of parsing array_range_expr.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "r4", "name": {
"commentStart": 0,
"end": 0,
"name": "r4",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -1076,12 +1124,20 @@ description: Result of parsing array_range_expr.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "r4", "name": {
"commentStart": 0,
"end": 0,
"name": "r4",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,

View File

@ -146,12 +146,20 @@ description: Result of parsing array_range_negative_expr.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "xs", "name": {
"commentStart": 0,
"end": 0,
"name": "xs",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,

View File

@ -111,12 +111,20 @@ description: Result of parsing array_range_with_units.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "a", "name": {
"commentStart": 0,
"end": 0,
"name": "a",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -192,12 +200,20 @@ description: Result of parsing array_range_with_units.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "a", "name": {
"commentStart": 0,
"end": 0,
"name": "a",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -273,12 +289,20 @@ description: Result of parsing array_range_with_units.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "a", "name": {
"commentStart": 0,
"end": 0,
"name": "a",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,

View File

@ -133,12 +133,20 @@ description: Result of parsing computed_var.kcl
"computed": true, "computed": true,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "arr", "name": {
"commentStart": 0,
"end": 0,
"name": "arr",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -346,12 +354,20 @@ description: Result of parsing computed_var.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "obj", "name": {
"commentStart": 0,
"end": 0,
"name": "obj",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,

View File

@ -94,12 +94,20 @@ description: Result of parsing cube.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "center", "name": {
"commentStart": 0,
"end": 0,
"name": "center",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -143,12 +151,20 @@ description: Result of parsing cube.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "center", "name": {
"commentStart": 0,
"end": 0,
"name": "center",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,

View File

@ -94,12 +94,20 @@ description: Result of parsing cube_with_error.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "center", "name": {
"commentStart": 0,
"end": 0,
"name": "center",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -143,12 +151,20 @@ description: Result of parsing cube_with_error.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "center", "name": {
"commentStart": 0,
"end": 0,
"name": "center",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,

View File

@ -109,12 +109,20 @@ description: Result of parsing i_shape.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "d_wrist_circumference", "name": {
"commentStart": 0,
"end": 0,
"name": "d_wrist_circumference",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -138,12 +146,20 @@ description: Result of parsing i_shape.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "d_wrist_circumference", "name": {
"commentStart": 0,
"end": 0,
"name": "d_wrist_circumference",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -171,12 +187,20 @@ description: Result of parsing i_shape.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "d_wrist_circumference", "name": {
"commentStart": 0,
"end": 0,
"name": "d_wrist_circumference",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -204,12 +228,20 @@ description: Result of parsing i_shape.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "d_wrist_circumference", "name": {
"commentStart": 0,
"end": 0,
"name": "d_wrist_circumference",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -810,12 +842,20 @@ description: Result of parsing i_shape.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "d_wrist_circumference", "name": {
"commentStart": 0,
"end": 0,
"name": "d_wrist_circumference",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -2359,12 +2399,20 @@ description: Result of parsing i_shape.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "d_wrist_circumference", "name": {
"commentStart": 0,
"end": 0,
"name": "d_wrist_circumference",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -2388,12 +2436,20 @@ description: Result of parsing i_shape.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "d_wrist_circumference", "name": {
"commentStart": 0,
"end": 0,
"name": "d_wrist_circumference",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -2421,12 +2477,20 @@ description: Result of parsing i_shape.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "d_wrist_circumference", "name": {
"commentStart": 0,
"end": 0,
"name": "d_wrist_circumference",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,

View File

@ -88,12 +88,20 @@ description: Result of parsing index_of_array.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "arr", "name": {
"commentStart": 0,
"end": 0,
"name": "arr",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -366,12 +374,20 @@ description: Result of parsing index_of_array.kcl
"computed": true, "computed": true,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "arr", "name": {
"commentStart": 0,
"end": 0,
"name": "arr",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,

View File

@ -83,12 +83,20 @@ description: Result of parsing intersect_cubes.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "center", "name": {
"commentStart": 0,
"end": 0,
"name": "center",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -135,12 +143,20 @@ description: Result of parsing intersect_cubes.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "center", "name": {
"commentStart": 0,
"end": 0,
"name": "center",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -231,12 +247,20 @@ description: Result of parsing intersect_cubes.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "center", "name": {
"commentStart": 0,
"end": 0,
"name": "center",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -283,12 +307,20 @@ description: Result of parsing intersect_cubes.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "center", "name": {
"commentStart": 0,
"end": 0,
"name": "center",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -379,12 +411,20 @@ description: Result of parsing intersect_cubes.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "center", "name": {
"commentStart": 0,
"end": 0,
"name": "center",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -431,12 +471,20 @@ description: Result of parsing intersect_cubes.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "center", "name": {
"commentStart": 0,
"end": 0,
"name": "center",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -527,12 +575,20 @@ description: Result of parsing intersect_cubes.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "center", "name": {
"commentStart": 0,
"end": 0,
"name": "center",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -579,12 +635,20 @@ description: Result of parsing intersect_cubes.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "center", "name": {
"commentStart": 0,
"end": 0,
"name": "center",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,

View File

@ -88,12 +88,20 @@ description: Result of parsing invalid_index_fractional.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "arr", "name": {
"commentStart": 0,
"end": 0,
"name": "arr",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,

View File

@ -129,12 +129,20 @@ description: Result of parsing invalid_index_negative.kcl
"computed": true, "computed": true,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "arr", "name": {
"commentStart": 0,
"end": 0,
"name": "arr",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,

View File

@ -88,12 +88,20 @@ description: Result of parsing invalid_index_str.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "arr", "name": {
"commentStart": 0,
"end": 0,
"name": "arr",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,

View File

@ -55,12 +55,20 @@ description: Result of parsing invalid_member_object.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "num", "name": {
"commentStart": 0,
"end": 0,
"name": "num",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,

View File

@ -52,12 +52,20 @@ description: Result of parsing invalid_member_object_prop.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "b", "name": {
"commentStart": 0,
"end": 0,
"name": "b",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,

View File

@ -132,12 +132,20 @@ description: Result of parsing invalid_member_object_using_string.kcl
"computed": true, "computed": true,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "obj", "name": {
"commentStart": 0,
"end": 0,
"name": "obj",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,

View File

@ -653,19 +653,19 @@ flowchart LR
84 --- 144 84 --- 144
84 --- 238 84 --- 238
86 --- 168 86 --- 168
86 x--> 188 86 x--> 189
86 --- 212 86 --- 212
86 --- 257 86 --- 257
88 --- 169 88 --- 169
88 x--> 188 88 x--> 189
88 --- 213 88 --- 213
88 --- 258 88 --- 258
90 --- 167 90 --- 167
90 x--> 188 90 x--> 189
90 --- 214 90 --- 214
90 --- 259 90 --- 259
92 --- 170 92 --- 170
92 x--> 188 92 x--> 189
92 --- 215 92 --- 215
92 --- 260 92 --- 260
119 --- 133 119 --- 133
@ -950,10 +950,10 @@ flowchart LR
218 <--x 186 218 <--x 186
219 <--x 186 219 <--x 186
194 <--x 187 194 <--x 187
212 <--x 189 212 <--x 188
213 <--x 189 213 <--x 188
214 <--x 189 214 <--x 188
215 <--x 189 215 <--x 188
220 <--x 269 220 <--x 269
223 <--x 268 223 <--x 268
``` ```

View File

@ -850,12 +850,20 @@ description: Result of parsing ball-joint-rod-end.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "pointOnRingPolar", "name": {
"commentStart": 0,
"end": 0,
"name": "pointOnRingPolar",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,

Binary file not shown.

Before

Width:  |  Height:  |  Size: 83 KiB

After

Width:  |  Height:  |  Size: 83 KiB

View File

@ -91,20 +91,20 @@ flowchart LR
8 --- 37 8 --- 37
9 --- 21 9 --- 21
9 x--> 25 9 x--> 25
9 --- 33 9 --- 30
9 --- 39 9 --- 36
10 --- 22 10 --- 22
10 x--> 25 10 x--> 25
10 --- 29 10 --- 32
10 --- 35 10 --- 38
11 --- 23 11 --- 23
11 x--> 25 11 x--> 25
11 --- 30 11 --- 33
11 --- 36 11 --- 39
12 --- 24 12 --- 24
12 x--> 25 12 x--> 25
12 --- 32 12 --- 29
12 --- 38 12 --- 35
14 --- 19 14 --- 19
14 x--> 27 14 x--> 27
14 --- 28 14 --- 28
@ -135,18 +135,18 @@ flowchart LR
20 --- 31 20 --- 31
20 --- 37 20 --- 37
38 <--x 20 38 <--x 20
21 --- 33 21 --- 30
35 <--x 21 21 --- 36
21 --- 39 37 <--x 21
22 --- 29 22 --- 32
22 --- 35 22 --- 38
36 <--x 22 39 <--x 22
23 --- 30 23 --- 33
23 --- 36 35 <--x 23
37 <--x 23 23 --- 39
24 --- 32 24 --- 29
24 --- 38 24 --- 35
39 <--x 24 36 <--x 24
28 <--x 26 28 <--x 26
29 <--x 27 29 <--x 27
30 <--x 27 30 <--x 27

File diff suppressed because it is too large Load Diff

View File

@ -366,114 +366,114 @@ flowchart LR
11 ---- 74 11 ---- 74
26 --- 75 26 --- 75
26 x--> 108 26 x--> 108
26 --- 139 26 --- 117
26 --- 171 26 --- 149
27 --- 76 27 --- 76
27 x--> 108 27 x--> 108
27 --- 114 27 --- 116
27 --- 146 27 --- 148
28 --- 77 28 --- 77
28 x--> 108 28 x--> 108
28 --- 115 28 --- 134
28 --- 147 28 --- 166
29 --- 78 29 --- 78
29 x--> 108 29 x--> 108
29 --- 132 29 --- 114
29 --- 164 29 --- 146
30 --- 79 30 --- 79
30 x--> 108 30 x--> 108
30 --- 124 30 --- 118
30 --- 156 30 --- 150
31 --- 80 31 --- 80
31 x--> 108 31 x--> 108
31 --- 138 31 --- 139
31 --- 170 31 --- 171
32 --- 81 32 --- 81
32 x--> 108 32 x--> 108
32 --- 129 32 --- 115
32 --- 161 32 --- 147
33 --- 82 33 --- 82
33 x--> 108 33 x--> 108
33 --- 119 33 --- 126
33 --- 151 33 --- 158
34 --- 83 34 --- 83
34 x--> 108 34 x--> 108
34 --- 123 34 --- 127
34 --- 155 34 --- 159
35 --- 84 35 --- 84
35 x--> 108 35 x--> 108
35 --- 135 35 --- 138
35 --- 167 35 --- 170
36 --- 85 36 --- 85
36 x--> 108 36 x--> 108
36 --- 125 36 --- 133
36 --- 157 36 --- 165
37 --- 86 37 --- 86
37 x--> 108 37 x--> 108
37 --- 116 37 --- 119
37 --- 148 37 --- 151
38 --- 87 38 --- 87
38 x--> 108 38 x--> 108
38 --- 131 38 --- 125
38 --- 163 38 --- 157
39 --- 88 39 --- 88
39 x--> 108 39 x--> 108
39 --- 127 39 --- 124
39 --- 159 39 --- 156
40 --- 89 40 --- 89
40 x--> 108 40 x--> 108
40 --- 134 40 --- 120
40 --- 166 40 --- 152
41 --- 90 41 --- 90
41 x--> 108 41 x--> 108
41 --- 130 41 --- 131
41 --- 162 41 --- 163
42 --- 91 42 --- 91
42 x--> 108 42 x--> 108
42 --- 136 42 --- 128
42 --- 168 42 --- 160
43 --- 92 43 --- 92
43 x--> 108 43 x--> 108
43 --- 126 43 --- 130
43 --- 158 43 --- 162
44 --- 93 44 --- 93
44 x--> 108 44 x--> 108
44 --- 113 44 --- 136
44 --- 145 44 --- 168
45 --- 94 45 --- 94
45 x--> 108 45 x--> 108
45 --- 133 45 --- 135
45 --- 165 45 --- 167
46 --- 95 46 --- 95
46 x--> 108 46 x--> 108
46 --- 137 46 --- 123
46 --- 169 46 --- 155
47 --- 96 47 --- 96
47 x--> 108 47 x--> 108
47 --- 128 47 --- 122
47 --- 160 47 --- 154
48 --- 97 48 --- 97
48 x--> 108 48 x--> 108
48 --- 118 48 --- 132
48 --- 150 48 --- 164
49 --- 98 49 --- 98
49 x--> 108 49 x--> 108
49 --- 121 49 --- 129
49 --- 153 49 --- 161
50 --- 99 50 --- 99
50 x--> 108 50 x--> 108
50 --- 120 50 --- 137
50 --- 152 50 --- 169
51 --- 100 51 --- 100
51 x--> 108 51 x--> 108
51 --- 117 51 --- 113
51 --- 149 51 --- 145
52 --- 101 52 --- 101
52 x--> 108 52 x--> 108
52 --- 122 52 --- 121
52 --- 154 52 --- 153
61 --- 102 61 --- 102
61 x--> 109 61 x--> 110
61 --- 140 61 --- 140
61 --- 172 61 --- 172
63 --- 103 63 --- 103
@ -594,87 +594,87 @@ flowchart LR
74 --- 174 74 --- 174
74 --- 175 74 --- 175
74 --- 176 74 --- 176
75 --- 139 75 --- 117
145 <--x 75 75 --- 149
75 --- 171 150 <--x 75
76 --- 114 76 --- 116
76 --- 146 76 --- 148
147 <--x 76 149 <--x 76
77 --- 115 77 --- 134
77 --- 147 77 --- 166
148 <--x 77 167 <--x 77
78 --- 132 78 --- 114
78 --- 164 78 --- 146
165 <--x 78 147 <--x 78
79 --- 124 79 --- 118
79 --- 156 79 --- 150
157 <--x 79 151 <--x 79
80 --- 138 80 --- 139
80 --- 170 145 <--x 80
171 <--x 80 80 --- 171
81 --- 129 81 --- 115
81 --- 161 81 --- 147
162 <--x 81 148 <--x 81
82 --- 119 82 --- 126
82 --- 151 82 --- 158
152 <--x 82 159 <--x 82
83 --- 123 83 --- 127
83 --- 155 83 --- 159
156 <--x 83 160 <--x 83
84 --- 135 84 --- 138
84 --- 167 84 --- 170
168 <--x 84 171 <--x 84
85 --- 125 85 --- 133
85 --- 157 85 --- 165
158 <--x 85 166 <--x 85
86 --- 116 86 --- 119
86 --- 148 86 --- 151
149 <--x 86 152 <--x 86
87 --- 131 87 --- 125
87 --- 163 87 --- 157
164 <--x 87 158 <--x 87
88 --- 127 88 --- 124
88 --- 159 88 --- 156
160 <--x 88 157 <--x 88
89 --- 134 89 --- 120
89 --- 166 89 --- 152
167 <--x 89 153 <--x 89
90 --- 130 90 --- 131
90 --- 162 90 --- 163
163 <--x 90 164 <--x 90
91 --- 136 91 --- 128
91 --- 168 91 --- 160
169 <--x 91 161 <--x 91
92 --- 126 92 --- 130
92 --- 158 92 --- 162
159 <--x 92 163 <--x 92
93 --- 113 93 --- 136
93 --- 145 93 --- 168
146 <--x 93 169 <--x 93
94 --- 133 94 --- 135
94 --- 165 94 --- 167
166 <--x 94 168 <--x 94
95 --- 137 95 --- 123
95 --- 169 95 --- 155
170 <--x 95 156 <--x 95
96 --- 128 96 --- 122
96 --- 160 96 --- 154
161 <--x 96 155 <--x 96
97 --- 118 97 --- 132
97 --- 150 97 --- 164
151 <--x 97 165 <--x 97
98 --- 121 98 --- 129
98 --- 153 98 --- 161
154 <--x 98 162 <--x 98
99 --- 120 99 --- 137
99 --- 152 99 --- 169
153 <--x 99 170 <--x 99
100 --- 117 100 --- 113
100 --- 149 100 --- 145
150 <--x 100 146 <--x 100
101 --- 122 101 --- 121
101 --- 154 101 --- 153
155 <--x 101 154 <--x 101
102 --- 140 102 --- 140
102 --- 172 102 --- 172
103 --- 144 103 --- 144
@ -689,7 +689,7 @@ flowchart LR
106 --- 141 106 --- 141
106 --- 173 106 --- 173
174 <--x 106 174 <--x 106
140 <--x 110 140 <--x 109
141 <--x 111 141 <--x 111
142 <--x 111 142 <--x 111
143 <--x 111 143 <--x 111

View File

@ -2038,12 +2038,20 @@ description: Result of parsing dodecahedron.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "rotation", "name": {
"commentStart": 0,
"end": 0,
"name": "rotation",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -2078,12 +2086,20 @@ description: Result of parsing dodecahedron.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "rotation", "name": {
"commentStart": 0,
"end": 0,
"name": "rotation",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -2116,12 +2132,20 @@ description: Result of parsing dodecahedron.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "rotation", "name": {
"commentStart": 0,
"end": 0,
"name": "rotation",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -2154,12 +2178,20 @@ description: Result of parsing dodecahedron.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "rotation", "name": {
"commentStart": 0,
"end": 0,
"name": "rotation",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -2756,12 +2788,20 @@ description: Result of parsing dodecahedron.kcl
"computed": true, "computed": true,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "solids", "name": {
"commentStart": 0,
"end": 0,
"name": "solids",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,

View File

@ -1636,12 +1636,20 @@ description: Result of parsing enclosure.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "originStart", "name": {
"commentStart": 0,
"end": 0,
"name": "originStart",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -1664,12 +1672,20 @@ description: Result of parsing enclosure.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "originStart", "name": {
"commentStart": 0,
"end": 0,
"name": "originStart",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -1797,12 +1813,20 @@ description: Result of parsing enclosure.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "originStart", "name": {
"commentStart": 0,
"end": 0,
"name": "originStart",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -1825,12 +1849,20 @@ description: Result of parsing enclosure.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "originStart", "name": {
"commentStart": 0,
"end": 0,
"name": "originStart",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,

View File

@ -2440,12 +2440,20 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "bs", "name": {
"commentStart": 0,
"end": 0,
"name": "bs",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -2502,12 +2510,20 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "bs", "name": {
"commentStart": 0,
"end": 0,
"name": "bs",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -2564,12 +2580,20 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "bs", "name": {
"commentStart": 0,
"end": 0,
"name": "bs",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -2626,12 +2650,20 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "bs", "name": {
"commentStart": 0,
"end": 0,
"name": "bs",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,

View File

@ -375,12 +375,20 @@ description: Result of parsing food-service-spatula.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "start", "name": {
"commentStart": 0,
"end": 0,
"name": "start",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -404,12 +412,20 @@ description: Result of parsing food-service-spatula.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "end", "name": {
"commentStart": 0,
"end": 0,
"name": "end",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -449,12 +465,20 @@ description: Result of parsing food-service-spatula.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "end", "name": {
"commentStart": 0,
"end": 0,
"name": "end",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -478,12 +502,20 @@ description: Result of parsing food-service-spatula.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "start", "name": {
"commentStart": 0,
"end": 0,
"name": "start",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -574,12 +606,20 @@ description: Result of parsing food-service-spatula.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "end", "name": {
"commentStart": 0,
"end": 0,
"name": "end",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -603,12 +643,20 @@ description: Result of parsing food-service-spatula.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "start", "name": {
"commentStart": 0,
"end": 0,
"name": "start",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -639,12 +687,20 @@ description: Result of parsing food-service-spatula.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "end", "name": {
"commentStart": 0,
"end": 0,
"name": "end",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -668,12 +724,20 @@ description: Result of parsing food-service-spatula.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "start", "name": {
"commentStart": 0,
"end": 0,
"name": "start",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -780,12 +844,20 @@ description: Result of parsing food-service-spatula.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "end", "name": {
"commentStart": 0,
"end": 0,
"name": "end",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -809,12 +881,20 @@ description: Result of parsing food-service-spatula.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "start", "name": {
"commentStart": 0,
"end": 0,
"name": "start",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -845,12 +925,20 @@ description: Result of parsing food-service-spatula.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "end", "name": {
"commentStart": 0,
"end": 0,
"name": "end",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -874,12 +962,20 @@ description: Result of parsing food-service-spatula.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "start", "name": {
"commentStart": 0,
"end": 0,
"name": "start",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -961,12 +1057,20 @@ description: Result of parsing food-service-spatula.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "end", "name": {
"commentStart": 0,
"end": 0,
"name": "end",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -990,12 +1094,20 @@ description: Result of parsing food-service-spatula.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "start", "name": {
"commentStart": 0,
"end": 0,
"name": "start",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -1186,12 +1298,20 @@ description: Result of parsing food-service-spatula.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "end", "name": {
"commentStart": 0,
"end": 0,
"name": "end",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -1215,12 +1335,20 @@ description: Result of parsing food-service-spatula.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "start", "name": {
"commentStart": 0,
"end": 0,
"name": "start",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -1297,12 +1425,20 @@ description: Result of parsing food-service-spatula.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "end", "name": {
"commentStart": 0,
"end": 0,
"name": "end",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -1326,12 +1462,20 @@ description: Result of parsing food-service-spatula.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "start", "name": {
"commentStart": 0,
"end": 0,
"name": "start",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -1491,12 +1635,20 @@ description: Result of parsing food-service-spatula.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "start", "name": {
"commentStart": 0,
"end": 0,
"name": "start",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -1650,12 +1802,20 @@ description: Result of parsing food-service-spatula.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "start", "name": {
"commentStart": 0,
"end": 0,
"name": "start",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,

View File

@ -6500,12 +6500,20 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "magnetHolesExtrude", "name": {
"commentStart": 0,
"end": 0,
"name": "magnetHolesExtrude",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -6578,12 +6586,20 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "magnetHolesExtrude", "name": {
"commentStart": 0,
"end": 0,
"name": "magnetHolesExtrude",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -6656,12 +6672,20 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "magnetHolesExtrude", "name": {
"commentStart": 0,
"end": 0,
"name": "magnetHolesExtrude",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -6734,12 +6758,20 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "magnetHolesExtrude", "name": {
"commentStart": 0,
"end": 0,
"name": "magnetHolesExtrude",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -7145,12 +7177,20 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "magnetCutoutExtrude", "name": {
"commentStart": 0,
"end": 0,
"name": "magnetCutoutExtrude",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -7223,12 +7263,20 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "magnetCutoutExtrude", "name": {
"commentStart": 0,
"end": 0,
"name": "magnetCutoutExtrude",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -7301,12 +7349,20 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "magnetCutoutExtrude", "name": {
"commentStart": 0,
"end": 0,
"name": "magnetCutoutExtrude",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -7379,12 +7435,20 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "magnetCutoutExtrude", "name": {
"commentStart": 0,
"end": 0,
"name": "magnetCutoutExtrude",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,

View File

@ -582,48 +582,48 @@ flowchart LR
46 --- 226 46 --- 226
72 --- 112 72 --- 112
72 x--> 151 72 x--> 151
72 --- 164 72 --- 166
72 --- 198 72 --- 200
73 --- 113 73 --- 113
73 x--> 151 73 x--> 151
73 --- 160 73 --- 164
73 --- 194 73 --- 198
74 --- 114 74 --- 114
74 x--> 151 74 x--> 151
74 --- 163 74 --- 162
74 --- 197 74 --- 196
75 --- 115 75 --- 115
75 x--> 151 75 x--> 151
75 --- 166 75 --- 165
75 --- 200 75 --- 199
76 --- 116 76 --- 116
76 x--> 151 76 x--> 151
76 --- 165 76 --- 160
76 --- 199 76 --- 194
77 --- 117 77 --- 117
77 x--> 151 77 x--> 151
77 --- 170 77 --- 168
77 --- 204 77 --- 202
78 --- 118 78 --- 118
78 x--> 151 78 x--> 151
78 --- 169 78 --- 169
78 --- 203 78 --- 203
79 --- 119 79 --- 119
79 x--> 151 79 x--> 151
79 --- 161 79 --- 163
79 --- 195 79 --- 197
80 --- 120 80 --- 120
80 x--> 151 80 x--> 151
80 --- 167 80 --- 170
80 --- 201 80 --- 204
81 --- 121 81 --- 121
81 x--> 151 81 x--> 151
81 --- 162 81 --- 161
81 --- 196 81 --- 195
82 --- 122 82 --- 122
82 x--> 151 82 x--> 151
82 --- 168 82 --- 167
82 --- 202 82 --- 201
84 --- 123 84 --- 123
84 x--> 145 84 x--> 145
84 --- 171 84 --- 171
@ -756,39 +756,39 @@ flowchart LR
109 --- 107 109 --- 107
111 --- 159 111 --- 159
111 --- 193 111 --- 193
112 --- 164 112 --- 166
112 --- 198 112 --- 200
199 <--x 112 201 <--x 112
113 --- 160 113 --- 164
113 --- 194 113 --- 198
195 <--x 113 199 <--x 113
114 --- 163 114 --- 162
114 --- 197 114 --- 196
198 <--x 114 197 <--x 114
115 --- 166 115 --- 165
115 --- 200 115 --- 199
201 <--x 115 200 <--x 115
116 --- 165 116 --- 160
116 --- 199 116 --- 194
200 <--x 116 195 <--x 116
117 --- 170 117 --- 168
194 <--x 117 117 --- 202
117 --- 204 203 <--x 117
118 --- 169 118 --- 169
118 --- 203 118 --- 203
204 <--x 118 204 <--x 118
119 --- 161 119 --- 163
119 --- 195 119 --- 197
196 <--x 119 198 <--x 119
120 --- 167 120 --- 170
120 --- 201 194 <--x 120
202 <--x 120 120 --- 204
121 --- 162 121 --- 161
121 --- 196 121 --- 195
197 <--x 121 196 <--x 121
122 --- 168 122 --- 167
122 --- 202 122 --- 201
203 <--x 122 202 <--x 122
123 --- 171 123 --- 171
123 --- 205 123 --- 205
124 --- 186 124 --- 186

View File

@ -204,12 +204,20 @@ description: Result of parsing hex-nut.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "start", "name": {
"commentStart": 0,
"end": 0,
"name": "start",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -253,12 +261,20 @@ description: Result of parsing hex-nut.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "start", "name": {
"commentStart": 0,
"end": 0,
"name": "start",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -744,12 +760,20 @@ description: Result of parsing hex-nut.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "start", "name": {
"commentStart": 0,
"end": 0,
"name": "start",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -772,12 +796,20 @@ description: Result of parsing hex-nut.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "start", "name": {
"commentStart": 0,
"end": 0,
"name": "start",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,

View File

@ -177,72 +177,72 @@ flowchart LR
2 ---- 34 2 ---- 34
17 --- 35 17 --- 35
17 x--> 52 17 x--> 52
17 --- 67 17 --- 66
17 --- 84 17 --- 83
18 --- 36 18 --- 36
18 x--> 52 18 x--> 52
18 --- 58 18 --- 54
18 --- 75 18 --- 71
19 --- 37 19 --- 37
19 x--> 52 19 x--> 52
19 --- 56 19 --- 61
19 --- 73 19 --- 78
20 --- 38 20 --- 38
20 x--> 52 20 x--> 52
20 --- 68 20 --- 67
20 --- 85 20 --- 84
21 --- 39 21 --- 39
21 x--> 52 21 x--> 52
21 --- 63 21 --- 57
21 --- 80 21 --- 74
22 --- 40 22 --- 40
22 x--> 52 22 x--> 52
22 --- 54 22 --- 64
22 --- 71 22 --- 81
23 --- 41 23 --- 41
23 x--> 52 23 x--> 52
23 --- 60 23 --- 62
23 --- 77 23 --- 79
24 --- 42 24 --- 42
24 x--> 52 24 x--> 52
24 --- 57 24 --- 68
24 --- 74 24 --- 85
25 --- 43 25 --- 43
25 x--> 52 25 x--> 52
25 --- 64 25 --- 70
25 --- 81 25 --- 87
26 --- 44 26 --- 44
26 x--> 52 26 x--> 52
26 --- 59 26 --- 56
26 --- 76 26 --- 73
27 --- 45 27 --- 45
27 x--> 52 27 x--> 52
27 --- 69 27 --- 69
27 --- 86 27 --- 86
28 --- 46 28 --- 46
28 x--> 52 28 x--> 52
28 --- 66 28 --- 65
28 --- 83 28 --- 82
29 --- 47 29 --- 47
29 x--> 52 29 x--> 52
29 --- 55 29 --- 55
29 --- 72 29 --- 72
30 --- 48 30 --- 48
30 x--> 52 30 x--> 52
30 --- 61 30 --- 58
30 --- 78 30 --- 75
31 --- 49 31 --- 49
31 x--> 52 31 x--> 52
31 --- 70 31 --- 60
31 --- 87 31 --- 77
32 --- 50 32 --- 50
32 x--> 52 32 x--> 52
32 --- 65 32 --- 63
32 --- 82 32 --- 80
33 --- 51 33 --- 51
33 x--> 52 33 x--> 52
33 --- 62 33 --- 59
33 --- 79 33 --- 76
34 --- 35 34 --- 35
34 --- 36 34 --- 36
34 --- 37 34 --- 37
@ -296,57 +296,57 @@ flowchart LR
34 --- 85 34 --- 85
34 --- 86 34 --- 86
34 --- 87 34 --- 87
35 --- 67 35 --- 66
83 <--x 35 82 <--x 35
35 --- 84 35 --- 83
36 --- 58 36 --- 54
74 <--x 36 36 --- 71
36 --- 75 87 <--x 36
37 --- 56 37 --- 61
72 <--x 37 77 <--x 37
37 --- 73 37 --- 78
38 --- 68 38 --- 67
84 <--x 38 83 <--x 38
38 --- 85 38 --- 84
39 --- 63 39 --- 57
79 <--x 39 73 <--x 39
39 --- 80 39 --- 74
40 --- 54 40 --- 64
40 --- 71 80 <--x 40
87 <--x 40 40 --- 81
41 --- 60 41 --- 62
76 <--x 41 78 <--x 41
41 --- 77 41 --- 79
42 --- 57 42 --- 68
73 <--x 42 84 <--x 42
42 --- 74 42 --- 85
43 --- 64 43 --- 70
80 <--x 43 86 <--x 43
43 --- 81 43 --- 87
44 --- 59 44 --- 56
75 <--x 44 72 <--x 44
44 --- 76 44 --- 73
45 --- 69 45 --- 69
85 <--x 45 85 <--x 45
45 --- 86 45 --- 86
46 --- 66 46 --- 65
82 <--x 46 81 <--x 46
46 --- 83 46 --- 82
47 --- 55 47 --- 55
71 <--x 47 71 <--x 47
47 --- 72 47 --- 72
48 --- 61 48 --- 58
77 <--x 48 74 <--x 48
48 --- 78 48 --- 75
49 --- 70 49 --- 60
86 <--x 49 76 <--x 49
49 --- 87 49 --- 77
50 --- 65 50 --- 63
81 <--x 50 79 <--x 50
50 --- 82 50 --- 80
51 --- 62 51 --- 59
78 <--x 51 75 <--x 51
51 --- 79 51 --- 76
54 <--x 53 54 <--x 53
55 <--x 53 55 <--x 53
56 <--x 53 56 <--x 53

View File

@ -2745,12 +2745,20 @@ description: Result of parsing keyboard.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "originStart", "name": {
"commentStart": 0,
"end": 0,
"name": "originStart",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -2773,12 +2781,20 @@ description: Result of parsing keyboard.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "originStart", "name": {
"commentStart": 0,
"end": 0,
"name": "originStart",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -9147,12 +9163,20 @@ description: Result of parsing keyboard.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "origin", "name": {
"commentStart": 0,
"end": 0,
"name": "origin",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -9219,12 +9243,20 @@ description: Result of parsing keyboard.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "origin", "name": {
"commentStart": 0,
"end": 0,
"name": "origin",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -9504,12 +9536,20 @@ description: Result of parsing keyboard.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "origin", "name": {
"commentStart": 0,
"end": 0,
"name": "origin",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -9605,12 +9645,20 @@ description: Result of parsing keyboard.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "origin", "name": {
"commentStart": 0,
"end": 0,
"name": "origin",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -9973,12 +10021,20 @@ description: Result of parsing keyboard.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "origin", "name": {
"commentStart": 0,
"end": 0,
"name": "origin",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -10400,12 +10456,20 @@ description: Result of parsing keyboard.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "origin", "name": {
"commentStart": 0,
"end": 0,
"name": "origin",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -10980,12 +11044,20 @@ description: Result of parsing keyboard.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "origin", "name": {
"commentStart": 0,
"end": 0,
"name": "origin",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -11052,12 +11124,20 @@ description: Result of parsing keyboard.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "origin", "name": {
"commentStart": 0,
"end": 0,
"name": "origin",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -11812,12 +11892,20 @@ description: Result of parsing keyboard.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "origin", "name": {
"commentStart": 0,
"end": 0,
"name": "origin",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -11884,12 +11972,20 @@ description: Result of parsing keyboard.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "origin", "name": {
"commentStart": 0,
"end": 0,
"name": "origin",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,

View File

@ -113,8 +113,8 @@ flowchart LR
8 --- 20 8 --- 20
8 ---- 25 8 ---- 25
12 <--x 32 12 <--x 32
12 --- 33 12 <--x 33
12 <--x 34 12 --- 34
13 --- 31 13 --- 31
13 x--> 35 13 x--> 35
13 --- 39 13 --- 39

View File

@ -77,12 +77,20 @@ description: Result of parsing non_string_key_of_object.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "obj", "name": {
"commentStart": 0,
"end": 0,
"name": "obj",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,

View File

@ -51,12 +51,20 @@ description: Result of parsing object_prop_not_found.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "obj", "name": {
"commentStart": 0,
"end": 0,
"name": "obj",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,

View File

@ -1220,12 +1220,20 @@ description: Result of parsing pentagon_fillet_sugar.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "c1", "name": {
"commentStart": 0,
"end": 0,
"name": "c1",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -1281,12 +1289,20 @@ description: Result of parsing pentagon_fillet_sugar.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "c1", "name": {
"commentStart": 0,
"end": 0,
"name": "c1",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -1579,12 +1595,20 @@ description: Result of parsing pentagon_fillet_sugar.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "c2", "name": {
"commentStart": 0,
"end": 0,
"name": "c2",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -1640,12 +1664,20 @@ description: Result of parsing pentagon_fillet_sugar.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "c2", "name": {
"commentStart": 0,
"end": 0,
"name": "c2",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,

View File

@ -1036,12 +1036,20 @@ description: Result of parsing sketch_in_object.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "x2", "name": {
"commentStart": 0,
"end": 0,
"name": "x2",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,

View File

@ -83,12 +83,20 @@ description: Result of parsing subtract_cylinder_from_cube.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "center", "name": {
"commentStart": 0,
"end": 0,
"name": "center",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -131,12 +139,20 @@ description: Result of parsing subtract_cylinder_from_cube.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "center", "name": {
"commentStart": 0,
"end": 0,
"name": "center",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -223,12 +239,20 @@ description: Result of parsing subtract_cylinder_from_cube.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "center", "name": {
"commentStart": 0,
"end": 0,
"name": "center",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -271,12 +295,20 @@ description: Result of parsing subtract_cylinder_from_cube.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "center", "name": {
"commentStart": 0,
"end": 0,
"name": "center",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -363,12 +395,20 @@ description: Result of parsing subtract_cylinder_from_cube.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "center", "name": {
"commentStart": 0,
"end": 0,
"name": "center",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -411,12 +451,20 @@ description: Result of parsing subtract_cylinder_from_cube.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "center", "name": {
"commentStart": 0,
"end": 0,
"name": "center",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -503,12 +551,20 @@ description: Result of parsing subtract_cylinder_from_cube.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "center", "name": {
"commentStart": 0,
"end": 0,
"name": "center",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -551,12 +607,20 @@ description: Result of parsing subtract_cylinder_from_cube.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "center", "name": {
"commentStart": 0,
"end": 0,
"name": "center",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,

View File

@ -83,12 +83,20 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "pos", "name": {
"commentStart": 0,
"end": 0,
"name": "pos",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -135,12 +143,20 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "pos", "name": {
"commentStart": 0,
"end": 0,
"name": "pos",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -231,12 +247,20 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "pos", "name": {
"commentStart": 0,
"end": 0,
"name": "pos",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -283,12 +307,20 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "pos", "name": {
"commentStart": 0,
"end": 0,
"name": "pos",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -379,12 +411,20 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "pos", "name": {
"commentStart": 0,
"end": 0,
"name": "pos",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -431,12 +471,20 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "pos", "name": {
"commentStart": 0,
"end": 0,
"name": "pos",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -527,12 +575,20 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "pos", "name": {
"commentStart": 0,
"end": 0,
"name": "pos",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -579,12 +635,20 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "pos", "name": {
"commentStart": 0,
"end": 0,
"name": "pos",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 60 KiB

View File

@ -83,12 +83,20 @@ description: Result of parsing union_cubes.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "pos", "name": {
"commentStart": 0,
"end": 0,
"name": "pos",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -135,12 +143,20 @@ description: Result of parsing union_cubes.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "pos", "name": {
"commentStart": 0,
"end": 0,
"name": "pos",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -231,12 +247,20 @@ description: Result of parsing union_cubes.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "pos", "name": {
"commentStart": 0,
"end": 0,
"name": "pos",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -283,12 +307,20 @@ description: Result of parsing union_cubes.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "pos", "name": {
"commentStart": 0,
"end": 0,
"name": "pos",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -379,12 +411,20 @@ description: Result of parsing union_cubes.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "pos", "name": {
"commentStart": 0,
"end": 0,
"name": "pos",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -431,12 +471,20 @@ description: Result of parsing union_cubes.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "pos", "name": {
"commentStart": 0,
"end": 0,
"name": "pos",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -527,12 +575,20 @@ description: Result of parsing union_cubes.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "pos", "name": {
"commentStart": 0,
"end": 0,
"name": "pos",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,
@ -579,12 +635,20 @@ description: Result of parsing union_cubes.kcl
"computed": false, "computed": false,
"end": 0, "end": 0,
"object": { "object": {
"abs_path": false,
"commentStart": 0, "commentStart": 0,
"end": 0, "end": 0,
"name": "pos", "name": {
"commentStart": 0,
"end": 0,
"name": "pos",
"start": 0,
"type": "Identifier"
},
"path": [],
"start": 0, "start": 0,
"type": "Identifier", "type": "Name",
"type": "Identifier" "type": "Name"
}, },
"property": { "property": {
"commentStart": 0, "commentStart": 0,