826 lines
22 KiB
Plaintext
826 lines
22 KiB
Plaintext
---
|
|
source: kcl-lib/src/simulation_tests.rs
|
|
description: Result of parsing car-wheel-assembly.kcl
|
|
---
|
|
{
|
|
"Ok": {
|
|
"body": [
|
|
{
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"path": {
|
|
"type": "Kcl",
|
|
"filename": "car-wheel.kcl"
|
|
},
|
|
"preComments": [
|
|
"// Import parts"
|
|
],
|
|
"selector": {
|
|
"type": "None",
|
|
"alias": {
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"name": "carWheel",
|
|
"start": 0,
|
|
"type": "Identifier"
|
|
}
|
|
},
|
|
"start": 0,
|
|
"type": "ImportStatement",
|
|
"type": "ImportStatement"
|
|
},
|
|
{
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"path": {
|
|
"type": "Kcl",
|
|
"filename": "car-rotor.kcl"
|
|
},
|
|
"selector": {
|
|
"type": "None",
|
|
"alias": {
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"name": "carRotor",
|
|
"start": 0,
|
|
"type": "Identifier"
|
|
}
|
|
},
|
|
"start": 0,
|
|
"type": "ImportStatement",
|
|
"type": "ImportStatement"
|
|
},
|
|
{
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"path": {
|
|
"type": "Kcl",
|
|
"filename": "brake-caliper.kcl"
|
|
},
|
|
"selector": {
|
|
"type": "None",
|
|
"alias": {
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"name": "brakeCaliper",
|
|
"start": 0,
|
|
"type": "Identifier"
|
|
}
|
|
},
|
|
"start": 0,
|
|
"type": "ImportStatement",
|
|
"type": "ImportStatement"
|
|
},
|
|
{
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"path": {
|
|
"type": "Kcl",
|
|
"filename": "lug-nut.kcl"
|
|
},
|
|
"selector": {
|
|
"type": "None",
|
|
"alias": {
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"name": "lugNut",
|
|
"start": 0,
|
|
"type": "Identifier"
|
|
}
|
|
},
|
|
"start": 0,
|
|
"type": "ImportStatement",
|
|
"type": "ImportStatement"
|
|
},
|
|
{
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"path": {
|
|
"type": "Kcl",
|
|
"filename": "car-tire.kcl"
|
|
},
|
|
"selector": {
|
|
"type": "None",
|
|
"alias": {
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"name": "carTire",
|
|
"start": 0,
|
|
"type": "Identifier"
|
|
}
|
|
},
|
|
"start": 0,
|
|
"type": "ImportStatement",
|
|
"type": "ImportStatement"
|
|
},
|
|
{
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"path": {
|
|
"type": "Kcl",
|
|
"filename": "parameters.kcl"
|
|
},
|
|
"preComments": [
|
|
"",
|
|
"",
|
|
"// Import parameters"
|
|
],
|
|
"selector": {
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"start": 0,
|
|
"type": "Glob"
|
|
},
|
|
"start": 0,
|
|
"type": "ImportStatement",
|
|
"type": "ImportStatement"
|
|
},
|
|
{
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"expression": {
|
|
"body": [
|
|
{
|
|
"abs_path": false,
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"name": {
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"name": "carRotor",
|
|
"start": 0,
|
|
"type": "Identifier"
|
|
},
|
|
"path": [],
|
|
"start": 0,
|
|
"type": "Name",
|
|
"type": "Name"
|
|
},
|
|
{
|
|
"arguments": [
|
|
{
|
|
"type": "LabeledArg",
|
|
"label": {
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"name": "x",
|
|
"start": 0,
|
|
"type": "Identifier"
|
|
},
|
|
"arg": {
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"raw": "0",
|
|
"start": 0,
|
|
"type": "Literal",
|
|
"type": "Literal",
|
|
"value": {
|
|
"value": 0.0,
|
|
"suffix": "None"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"type": "LabeledArg",
|
|
"label": {
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"name": "y",
|
|
"start": 0,
|
|
"type": "Identifier"
|
|
},
|
|
"arg": {
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"raw": "0.5",
|
|
"start": 0,
|
|
"type": "Literal",
|
|
"type": "Literal",
|
|
"value": {
|
|
"value": 0.5,
|
|
"suffix": "None"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"type": "LabeledArg",
|
|
"label": {
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"name": "z",
|
|
"start": 0,
|
|
"type": "Identifier"
|
|
},
|
|
"arg": {
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"raw": "0",
|
|
"start": 0,
|
|
"type": "Literal",
|
|
"type": "Literal",
|
|
"value": {
|
|
"value": 0.0,
|
|
"suffix": "None"
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"callee": {
|
|
"abs_path": false,
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"name": {
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"name": "translate",
|
|
"start": 0,
|
|
"type": "Identifier"
|
|
},
|
|
"path": [],
|
|
"start": 0,
|
|
"type": "Name"
|
|
},
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"start": 0,
|
|
"type": "CallExpressionKw",
|
|
"type": "CallExpressionKw",
|
|
"unlabeled": null
|
|
}
|
|
],
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"nonCodeMeta": {
|
|
"nonCodeNodes": {
|
|
"1": [
|
|
{
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"start": 0,
|
|
"type": "NonCodeNode",
|
|
"value": {
|
|
"type": "newLineBlockComment",
|
|
"value": "Place the car wheel",
|
|
"style": "line"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"startNodes": []
|
|
},
|
|
"start": 0,
|
|
"type": "PipeExpression",
|
|
"type": "PipeExpression"
|
|
},
|
|
"preComments": [
|
|
"",
|
|
"",
|
|
"// Place the car rotor"
|
|
],
|
|
"start": 0,
|
|
"type": "ExpressionStatement",
|
|
"type": "ExpressionStatement"
|
|
},
|
|
{
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"expression": {
|
|
"abs_path": false,
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"name": {
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"name": "carWheel",
|
|
"start": 0,
|
|
"type": "Identifier"
|
|
},
|
|
"path": [],
|
|
"start": 0,
|
|
"type": "Name",
|
|
"type": "Name"
|
|
},
|
|
"start": 0,
|
|
"type": "ExpressionStatement",
|
|
"type": "ExpressionStatement"
|
|
},
|
|
{
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"expression": {
|
|
"body": [
|
|
{
|
|
"abs_path": false,
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"name": {
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"name": "lugNut",
|
|
"start": 0,
|
|
"type": "Identifier"
|
|
},
|
|
"path": [],
|
|
"start": 0,
|
|
"type": "Name",
|
|
"type": "Name"
|
|
},
|
|
{
|
|
"arguments": [
|
|
{
|
|
"type": "LabeledArg",
|
|
"label": {
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"name": "arcDegrees",
|
|
"start": 0,
|
|
"type": "Identifier"
|
|
},
|
|
"arg": {
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"raw": "360",
|
|
"start": 0,
|
|
"type": "Literal",
|
|
"type": "Literal",
|
|
"value": {
|
|
"value": 360.0,
|
|
"suffix": "None"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"type": "LabeledArg",
|
|
"label": {
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"name": "axis",
|
|
"start": 0,
|
|
"type": "Identifier"
|
|
},
|
|
"arg": {
|
|
"commentStart": 0,
|
|
"elements": [
|
|
{
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"raw": "0",
|
|
"start": 0,
|
|
"type": "Literal",
|
|
"type": "Literal",
|
|
"value": {
|
|
"value": 0.0,
|
|
"suffix": "None"
|
|
}
|
|
},
|
|
{
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"raw": "1",
|
|
"start": 0,
|
|
"type": "Literal",
|
|
"type": "Literal",
|
|
"value": {
|
|
"value": 1.0,
|
|
"suffix": "None"
|
|
}
|
|
},
|
|
{
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"raw": "0",
|
|
"start": 0,
|
|
"type": "Literal",
|
|
"type": "Literal",
|
|
"value": {
|
|
"value": 0.0,
|
|
"suffix": "None"
|
|
}
|
|
}
|
|
],
|
|
"end": 0,
|
|
"start": 0,
|
|
"type": "ArrayExpression",
|
|
"type": "ArrayExpression"
|
|
}
|
|
},
|
|
{
|
|
"type": "LabeledArg",
|
|
"label": {
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"name": "center",
|
|
"start": 0,
|
|
"type": "Identifier"
|
|
},
|
|
"arg": {
|
|
"commentStart": 0,
|
|
"elements": [
|
|
{
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"raw": "0",
|
|
"start": 0,
|
|
"type": "Literal",
|
|
"type": "Literal",
|
|
"value": {
|
|
"value": 0.0,
|
|
"suffix": "None"
|
|
}
|
|
},
|
|
{
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"raw": "0",
|
|
"start": 0,
|
|
"type": "Literal",
|
|
"type": "Literal",
|
|
"value": {
|
|
"value": 0.0,
|
|
"suffix": "None"
|
|
}
|
|
},
|
|
{
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"raw": "0",
|
|
"start": 0,
|
|
"type": "Literal",
|
|
"type": "Literal",
|
|
"value": {
|
|
"value": 0.0,
|
|
"suffix": "None"
|
|
}
|
|
}
|
|
],
|
|
"end": 0,
|
|
"start": 0,
|
|
"type": "ArrayExpression",
|
|
"type": "ArrayExpression"
|
|
}
|
|
},
|
|
{
|
|
"type": "LabeledArg",
|
|
"label": {
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"name": "instances",
|
|
"start": 0,
|
|
"type": "Identifier"
|
|
},
|
|
"arg": {
|
|
"abs_path": false,
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"name": {
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"name": "lugCount",
|
|
"start": 0,
|
|
"type": "Identifier"
|
|
},
|
|
"path": [],
|
|
"start": 0,
|
|
"type": "Name",
|
|
"type": "Name"
|
|
}
|
|
},
|
|
{
|
|
"type": "LabeledArg",
|
|
"label": {
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"name": "rotateDuplicates",
|
|
"start": 0,
|
|
"type": "Identifier"
|
|
},
|
|
"arg": {
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"raw": "false",
|
|
"start": 0,
|
|
"type": "Literal",
|
|
"type": "Literal",
|
|
"value": false
|
|
}
|
|
}
|
|
],
|
|
"callee": {
|
|
"abs_path": false,
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"name": {
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"name": "patternCircular3d",
|
|
"start": 0,
|
|
"type": "Identifier"
|
|
},
|
|
"path": [],
|
|
"start": 0,
|
|
"type": "Name"
|
|
},
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"start": 0,
|
|
"type": "CallExpressionKw",
|
|
"type": "CallExpressionKw",
|
|
"unlabeled": null
|
|
}
|
|
],
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"nonCodeMeta": {
|
|
"nonCodeNodes": {
|
|
"1": [
|
|
{
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"start": 0,
|
|
"type": "NonCodeNode",
|
|
"value": {
|
|
"type": "newLineBlockComment",
|
|
"value": "Place the brake caliper",
|
|
"style": "line"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"startNodes": []
|
|
},
|
|
"start": 0,
|
|
"type": "PipeExpression",
|
|
"type": "PipeExpression"
|
|
},
|
|
"preComments": [
|
|
"",
|
|
"",
|
|
"// Place the lug nuts"
|
|
],
|
|
"start": 0,
|
|
"type": "ExpressionStatement",
|
|
"type": "ExpressionStatement"
|
|
},
|
|
{
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"expression": {
|
|
"body": [
|
|
{
|
|
"abs_path": false,
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"name": {
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"name": "brakeCaliper",
|
|
"start": 0,
|
|
"type": "Identifier"
|
|
},
|
|
"path": [],
|
|
"start": 0,
|
|
"type": "Name",
|
|
"type": "Name"
|
|
},
|
|
{
|
|
"arguments": [
|
|
{
|
|
"type": "LabeledArg",
|
|
"label": {
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"name": "x",
|
|
"start": 0,
|
|
"type": "Identifier"
|
|
},
|
|
"arg": {
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"raw": "0",
|
|
"start": 0,
|
|
"type": "Literal",
|
|
"type": "Literal",
|
|
"value": {
|
|
"value": 0.0,
|
|
"suffix": "None"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"type": "LabeledArg",
|
|
"label": {
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"name": "y",
|
|
"start": 0,
|
|
"type": "Identifier"
|
|
},
|
|
"arg": {
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"raw": "0.5",
|
|
"start": 0,
|
|
"type": "Literal",
|
|
"type": "Literal",
|
|
"value": {
|
|
"value": 0.5,
|
|
"suffix": "None"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"type": "LabeledArg",
|
|
"label": {
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"name": "z",
|
|
"start": 0,
|
|
"type": "Identifier"
|
|
},
|
|
"arg": {
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"raw": "0",
|
|
"start": 0,
|
|
"type": "Literal",
|
|
"type": "Literal",
|
|
"value": {
|
|
"value": 0.0,
|
|
"suffix": "None"
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"callee": {
|
|
"abs_path": false,
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"name": {
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"name": "translate",
|
|
"start": 0,
|
|
"type": "Identifier"
|
|
},
|
|
"path": [],
|
|
"start": 0,
|
|
"type": "Name"
|
|
},
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"start": 0,
|
|
"type": "CallExpressionKw",
|
|
"type": "CallExpressionKw",
|
|
"unlabeled": null
|
|
}
|
|
],
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"nonCodeMeta": {
|
|
"nonCodeNodes": {
|
|
"1": [
|
|
{
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"start": 0,
|
|
"type": "NonCodeNode",
|
|
"value": {
|
|
"type": "newLineBlockComment",
|
|
"value": "Place the car tire",
|
|
"style": "line"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"startNodes": []
|
|
},
|
|
"start": 0,
|
|
"type": "PipeExpression",
|
|
"type": "PipeExpression"
|
|
},
|
|
"start": 0,
|
|
"type": "ExpressionStatement",
|
|
"type": "ExpressionStatement"
|
|
},
|
|
{
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"expression": {
|
|
"abs_path": false,
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"name": {
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"name": "carTire",
|
|
"start": 0,
|
|
"type": "Identifier"
|
|
},
|
|
"path": [],
|
|
"start": 0,
|
|
"type": "Name",
|
|
"type": "Name"
|
|
},
|
|
"start": 0,
|
|
"type": "ExpressionStatement",
|
|
"type": "ExpressionStatement"
|
|
}
|
|
],
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"innerAttrs": [
|
|
{
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"name": {
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"name": "settings",
|
|
"start": 0,
|
|
"type": "Identifier"
|
|
},
|
|
"preComments": [
|
|
"// Car Wheel Assembly",
|
|
"// A car wheel assembly with a rotor, tire, and lug nuts.",
|
|
"",
|
|
"",
|
|
"// Set units"
|
|
],
|
|
"properties": [
|
|
{
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"key": {
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"name": "defaultLengthUnit",
|
|
"start": 0,
|
|
"type": "Identifier"
|
|
},
|
|
"start": 0,
|
|
"type": "ObjectProperty",
|
|
"value": {
|
|
"abs_path": false,
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"name": {
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"name": "in",
|
|
"start": 0,
|
|
"type": "Identifier"
|
|
},
|
|
"path": [],
|
|
"start": 0,
|
|
"type": "Name",
|
|
"type": "Name"
|
|
}
|
|
},
|
|
{
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"key": {
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"name": "kclVersion",
|
|
"start": 0,
|
|
"type": "Identifier"
|
|
},
|
|
"start": 0,
|
|
"type": "ObjectProperty",
|
|
"value": {
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"raw": "1.0",
|
|
"start": 0,
|
|
"type": "Literal",
|
|
"type": "Literal",
|
|
"value": {
|
|
"value": 1.0,
|
|
"suffix": "None"
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"start": 0,
|
|
"type": "Annotation"
|
|
}
|
|
],
|
|
"nonCodeMeta": {
|
|
"nonCodeNodes": {},
|
|
"startNodes": [
|
|
{
|
|
"commentStart": 0,
|
|
"end": 0,
|
|
"start": 0,
|
|
"type": "NonCodeNode",
|
|
"value": {
|
|
"type": "newLine"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"start": 0
|
|
}
|
|
}
|