--- source: kcl-lib/src/simulation_tests.rs description: Result of parsing lego.kcl --- { "Ok": { "body": [ { "commentStart": 271, "declaration": { "commentStart": 294, "end": 0, "id": { "commentStart": 294, "end": 0, "name": "lbumps", "start": 0, "type": "Identifier" }, "init": { "commentStart": 303, "end": 0, "raw": "3", "start": 0, "type": "Literal", "type": "Literal", "value": { "value": 3.0, "suffix": "None" } }, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", "preComments": [ "// Define parameters" ], "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" }, { "commentStart": 304, "declaration": { "commentStart": 329, "end": 0, "id": { "commentStart": 329, "end": 0, "name": "wbumps", "start": 0, "type": "Identifier" }, "init": { "commentStart": 338, "end": 0, "raw": "2", "start": 0, "type": "Literal", "type": "Literal", "value": { "value": 2.0, "suffix": "None" } }, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" }, { "commentStart": 339, "declaration": { "commentStart": 364, "end": 0, "id": { "commentStart": 364, "end": 0, "name": "pitch", "start": 0, "type": "Identifier" }, "init": { "commentStart": 372, "end": 0, "raw": "8.0", "start": 0, "type": "Literal", "type": "Literal", "value": { "value": 8.0, "suffix": "None" } }, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" }, { "commentStart": 376, "declaration": { "commentStart": 376, "end": 0, "id": { "commentStart": 376, "end": 0, "name": "clearance", "start": 0, "type": "Identifier" }, "init": { "commentStart": 388, "end": 0, "raw": "0.1", "start": 0, "type": "Literal", "type": "Literal", "value": { "value": 0.1, "suffix": "None" } }, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" }, { "commentStart": 392, "declaration": { "commentStart": 392, "end": 0, "id": { "commentStart": 392, "end": 0, "name": "bumpDiam", "start": 0, "type": "Identifier" }, "init": { "commentStart": 403, "end": 0, "raw": "4.8", "start": 0, "type": "Literal", "type": "Literal", "value": { "value": 4.8, "suffix": "None" } }, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" }, { "commentStart": 407, "declaration": { "commentStart": 407, "end": 0, "id": { "commentStart": 407, "end": 0, "name": "bumpHeight", "start": 0, "type": "Identifier" }, "init": { "commentStart": 420, "end": 0, "raw": "1.8", "start": 0, "type": "Literal", "type": "Literal", "value": { "value": 1.8, "suffix": "None" } }, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" }, { "commentStart": 424, "declaration": { "commentStart": 424, "end": 0, "id": { "commentStart": 424, "end": 0, "name": "height", "start": 0, "type": "Identifier" }, "init": { "commentStart": 433, "end": 0, "raw": "3.2", "start": 0, "type": "Literal", "type": "Literal", "value": { "value": 3.2, "suffix": "None" } }, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" }, { "commentStart": 437, "declaration": { "commentStart": 437, "end": 0, "id": { "commentStart": 437, "end": 0, "name": "t", "start": 0, "type": "Identifier" }, "init": { "commentStart": 442, "end": 0, "left": { "commentStart": 442, "end": 0, "left": { "commentStart": 442, "end": 0, "left": { "abs_path": false, "commentStart": 442, "end": 0, "name": { "commentStart": 442, "end": 0, "name": "pitch", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name", "type": "Name" }, "operator": "-", "right": { "commentStart": 451, "end": 0, "left": { "commentStart": 451, "end": 0, "raw": "2", "start": 0, "type": "Literal", "type": "Literal", "value": { "value": 2.0, "suffix": "None" } }, "operator": "*", "right": { "abs_path": false, "commentStart": 455, "end": 0, "name": { "commentStart": 455, "end": 0, "name": "clearance", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name", "type": "Name" }, "start": 0, "type": "BinaryExpression", "type": "BinaryExpression" }, "start": 0, "type": "BinaryExpression", "type": "BinaryExpression" }, "operator": "-", "right": { "abs_path": false, "commentStart": 468, "end": 0, "name": { "commentStart": 468, "end": 0, "name": "bumpDiam", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name", "type": "Name" }, "start": 0, "type": "BinaryExpression", "type": "BinaryExpression" }, "operator": "/", "right": { "commentStart": 480, "end": 0, "raw": "2.0", "start": 0, "type": "Literal", "type": "Literal", "value": { "value": 2.0, "suffix": "None" } }, "start": 0, "type": "BinaryExpression", "type": "BinaryExpression" }, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" }, { "commentStart": 484, "declaration": { "commentStart": 484, "end": 0, "id": { "commentStart": 484, "end": 0, "name": "postDiam", "start": 0, "type": "Identifier" }, "init": { "commentStart": 495, "end": 0, "left": { "abs_path": false, "commentStart": 495, "end": 0, "name": { "commentStart": 495, "end": 0, "name": "pitch", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name", "type": "Name" }, "operator": "-", "right": { "abs_path": false, "commentStart": 503, "end": 0, "name": { "commentStart": 503, "end": 0, "name": "t", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name", "type": "Name" }, "start": 0, "type": "BinaryExpression", "type": "BinaryExpression" }, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" }, { "commentStart": 504, "declaration": { "commentStart": 525, "end": 0, "id": { "commentStart": 525, "end": 0, "name": "totalLength", "start": 0, "type": "Identifier" }, "init": { "commentStart": 539, "end": 0, "left": { "commentStart": 539, "end": 0, "left": { "abs_path": false, "commentStart": 539, "end": 0, "name": { "commentStart": 539, "end": 0, "name": "lbumps", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name", "type": "Name" }, "operator": "*", "right": { "abs_path": false, "commentStart": 548, "end": 0, "name": { "commentStart": 548, "end": 0, "name": "pitch", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name", "type": "Name" }, "start": 0, "type": "BinaryExpression", "type": "BinaryExpression" }, "operator": "-", "right": { "commentStart": 557, "end": 0, "left": { "commentStart": 557, "end": 0, "raw": "2.0", "start": 0, "type": "Literal", "type": "Literal", "value": { "value": 2.0, "suffix": "None" } }, "operator": "*", "right": { "abs_path": false, "commentStart": 563, "end": 0, "name": { "commentStart": 563, "end": 0, "name": "clearance", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name", "type": "Name" }, "start": 0, "type": "BinaryExpression", "type": "BinaryExpression" }, "start": 0, "type": "BinaryExpression", "type": "BinaryExpression" }, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" }, { "commentStart": 574, "declaration": { "commentStart": 574, "end": 0, "id": { "commentStart": 574, "end": 0, "name": "totalWidth", "start": 0, "type": "Identifier" }, "init": { "commentStart": 587, "end": 0, "left": { "commentStart": 587, "end": 0, "left": { "abs_path": false, "commentStart": 587, "end": 0, "name": { "commentStart": 587, "end": 0, "name": "wbumps", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name", "type": "Name" }, "operator": "*", "right": { "abs_path": false, "commentStart": 596, "end": 0, "name": { "commentStart": 596, "end": 0, "name": "pitch", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name", "type": "Name" }, "start": 0, "type": "BinaryExpression", "type": "BinaryExpression" }, "operator": "-", "right": { "commentStart": 605, "end": 0, "left": { "commentStart": 605, "end": 0, "raw": "2.0", "start": 0, "type": "Literal", "type": "Literal", "value": { "value": 2.0, "suffix": "None" } }, "operator": "*", "right": { "abs_path": false, "commentStart": 611, "end": 0, "name": { "commentStart": 611, "end": 0, "name": "clearance", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name", "type": "Name" }, "start": 0, "type": "BinaryExpression", "type": "BinaryExpression" }, "start": 0, "type": "BinaryExpression", "type": "BinaryExpression" }, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" }, { "commentStart": 621, "declaration": { "commentStart": 683, "end": 0, "id": { "commentStart": 683, "end": 0, "name": "lSegments", "start": 0, "type": "Identifier" }, "init": { "commentStart": 695, "end": 0, "left": { "abs_path": false, "commentStart": 695, "end": 0, "name": { "commentStart": 695, "end": 0, "name": "totalLength", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name", "type": "Name" }, "operator": "/", "right": { "abs_path": false, "commentStart": 709, "end": 0, "name": { "commentStart": 709, "end": 0, "name": "lbumps", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name", "type": "Name" }, "start": 0, "type": "BinaryExpression", "type": "BinaryExpression" }, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", "preComments": [ "", "", "// Calculate the number of segments in the length and width" ], "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" }, { "commentStart": 716, "declaration": { "commentStart": 716, "end": 0, "id": { "commentStart": 716, "end": 0, "name": "wSegments", "start": 0, "type": "Identifier" }, "init": { "commentStart": 728, "end": 0, "left": { "abs_path": false, "commentStart": 728, "end": 0, "name": { "commentStart": 728, "end": 0, "name": "totalWidth", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name", "type": "Name" }, "operator": "/", "right": { "abs_path": false, "commentStart": 741, "end": 0, "name": { "commentStart": 741, "end": 0, "name": "wbumps", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name", "type": "Name" }, "start": 0, "type": "BinaryExpression", "type": "BinaryExpression" }, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" }, { "commentStart": 747, "end": 0, "expression": { "arguments": [ { "abs_path": false, "commentStart": 839, "end": 0, "name": { "commentStart": 839, "end": 0, "name": "lbumps", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name", "type": "Name" }, { "commentStart": 847, "end": 0, "raw": "1", "start": 0, "type": "Literal", "type": "Literal", "value": { "value": 1.0, "suffix": "None" } }, { "commentStart": 850, "end": 0, "raw": "\"lbumps must be greater than 1\"", "start": 0, "type": "Literal", "type": "Literal", "value": "lbumps must be greater than 1" } ], "callee": { "abs_path": false, "commentStart": 821, "end": 0, "name": { "commentStart": 821, "end": 0, "name": "assertGreaterThan", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name" }, "commentStart": 821, "end": 0, "start": 0, "type": "CallExpression", "type": "CallExpression" }, "preComments": [ "", "", "// Add assertions to ensure that the number of bumps are greater than 1" ], "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" }, { "commentStart": 883, "end": 0, "expression": { "arguments": [ { "abs_path": false, "commentStart": 901, "end": 0, "name": { "commentStart": 901, "end": 0, "name": "wbumps", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name", "type": "Name" }, { "commentStart": 909, "end": 0, "raw": "1", "start": 0, "type": "Literal", "type": "Literal", "value": { "value": 1.0, "suffix": "None" } }, { "commentStart": 912, "end": 0, "raw": "\"wbumps must be greater than 1\"", "start": 0, "type": "Literal", "type": "Literal", "value": "wbumps must be greater than 1" } ], "callee": { "abs_path": false, "commentStart": 883, "end": 0, "name": { "commentStart": 883, "end": 0, "name": "assertGreaterThan", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name" }, "commentStart": 883, "end": 0, "start": 0, "type": "CallExpression", "type": "CallExpression" }, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" }, { "commentStart": 944, "declaration": { "commentStart": 963, "end": 0, "id": { "commentStart": 963, "end": 0, "name": "base", "start": 0, "type": "Identifier" }, "init": { "body": [ { "arguments": [ { "abs_path": false, "commentStart": 984, "end": 0, "name": { "commentStart": 984, "end": 0, "name": "XY", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name", "type": "Name" } ], "callee": { "abs_path": false, "commentStart": 970, "end": 0, "name": { "commentStart": 970, "end": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name" }, "commentStart": 970, "end": 0, "start": 0, "type": "CallExpression", "type": "CallExpression" }, { "arguments": [ { "commentStart": 1008, "elements": [ { "commentStart": 1009, "end": 0, "left": { "argument": { "abs_path": false, "commentStart": 1010, "end": 0, "name": { "commentStart": 1010, "end": 0, "name": "totalWidth", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name", "type": "Name" }, "commentStart": 1009, "end": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, "operator": "/", "right": { "commentStart": 1023, "end": 0, "raw": "2", "start": 0, "type": "Literal", "type": "Literal", "value": { "value": 2.0, "suffix": "None" } }, "start": 0, "type": "BinaryExpression", "type": "BinaryExpression" }, { "commentStart": 1026, "end": 0, "left": { "argument": { "abs_path": false, "commentStart": 1027, "end": 0, "name": { "commentStart": 1027, "end": 0, "name": "totalLength", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name", "type": "Name" }, "commentStart": 1026, "end": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, "operator": "/", "right": { "commentStart": 1041, "end": 0, "raw": "2", "start": 0, "type": "Literal", "type": "Literal", "value": { "value": 2.0, "suffix": "None" } }, "start": 0, "type": "BinaryExpression", "type": "BinaryExpression" } ], "end": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" }, { "commentStart": 1045, "end": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } ], "callee": { "abs_path": false, "commentStart": 993, "end": 0, "name": { "commentStart": 993, "end": 0, "name": "startProfileAt", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name" }, "commentStart": 993, "end": 0, "start": 0, "type": "CallExpression", "type": "CallExpression" }, { "arguments": [ { "type": "LabeledArg", "label": { "commentStart": 1058, "end": 0, "name": "end", "start": 0, "type": "Identifier" }, "arg": { "commentStart": 1064, "elements": [ { "abs_path": false, "commentStart": 1065, "end": 0, "name": { "commentStart": 1065, "end": 0, "name": "totalWidth", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name", "type": "Name" }, { "commentStart": 1077, "end": 0, "raw": "0", "start": 0, "type": "Literal", "type": "Literal", "value": { "value": 0.0, "suffix": "None" } } ], "end": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } } ], "callee": { "abs_path": false, "commentStart": 1053, "end": 0, "name": { "commentStart": 1053, "end": 0, "name": "line", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name" }, "commentStart": 1053, "end": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { "arguments": [ { "type": "LabeledArg", "label": { "commentStart": 1091, "end": 0, "name": "end", "start": 0, "type": "Identifier" }, "arg": { "commentStart": 1097, "elements": [ { "commentStart": 1098, "end": 0, "raw": "0", "start": 0, "type": "Literal", "type": "Literal", "value": { "value": 0.0, "suffix": "None" } }, { "abs_path": false, "commentStart": 1101, "end": 0, "name": { "commentStart": 1101, "end": 0, "name": "totalLength", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name", "type": "Name" } ], "end": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } } ], "callee": { "abs_path": false, "commentStart": 1086, "end": 0, "name": { "commentStart": 1086, "end": 0, "name": "line", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name" }, "commentStart": 1086, "end": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { "arguments": [ { "type": "LabeledArg", "label": { "commentStart": 1125, "end": 0, "name": "end", "start": 0, "type": "Identifier" }, "arg": { "commentStart": 1131, "elements": [ { "argument": { "abs_path": false, "commentStart": 1133, "end": 0, "name": { "commentStart": 1133, "end": 0, "name": "totalWidth", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name", "type": "Name" }, "commentStart": 1132, "end": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, { "commentStart": 1145, "end": 0, "raw": "0", "start": 0, "type": "Literal", "type": "Literal", "value": { "value": 0.0, "suffix": "None" } } ], "end": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } } ], "callee": { "abs_path": false, "commentStart": 1120, "end": 0, "name": { "commentStart": 1120, "end": 0, "name": "line", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name" }, "commentStart": 1120, "end": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { "arguments": [], "callee": { "abs_path": false, "commentStart": 1154, "end": 0, "name": { "commentStart": 1154, "end": 0, "name": "close", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name" }, "commentStart": 1154, "end": 0, "start": 0, "type": "CallExpression", "type": "CallExpression" }, { "arguments": [ { "type": "LabeledArg", "label": { "commentStart": 1175, "end": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { "abs_path": false, "commentStart": 1184, "end": 0, "name": { "commentStart": 1184, "end": 0, "name": "height", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name", "type": "Name" } } ], "callee": { "abs_path": false, "commentStart": 1167, "end": 0, "name": { "commentStart": 1167, "end": 0, "name": "extrude", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name" }, "commentStart": 1167, "end": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null } ], "commentStart": 970, "end": 0, "nonCodeMeta": { "nonCodeNodes": { "6": [ { "commentStart": 1191, "end": 0, "start": 0, "type": "NonCodeNode", "value": { "type": "newLineBlockComment", "value": "Sketch and extrude a rectangular shape to create the shell underneath the lego. Will replace with shell function when able to call a face created from shell.", "style": "line" } } ] }, "startNodes": [] }, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", "preComments": [ "", "", "// Make the base" ], "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" }, { "commentStart": 1354, "declaration": { "commentStart": 1354, "end": 0, "id": { "commentStart": 1354, "end": 0, "name": "shellExtrude", "start": 0, "type": "Identifier" }, "init": { "body": [ { "arguments": [ { "abs_path": false, "commentStart": 1383, "end": 0, "name": { "commentStart": 1383, "end": 0, "name": "base", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name", "type": "Name" }, { "commentStart": 1389, "end": 0, "raw": "\"start\"", "start": 0, "type": "Literal", "type": "Literal", "value": "start" } ], "callee": { "abs_path": false, "commentStart": 1369, "end": 0, "name": { "commentStart": 1369, "end": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name" }, "commentStart": 1369, "end": 0, "start": 0, "type": "CallExpression", "type": "CallExpression" }, { "arguments": [ { "commentStart": 1418, "elements": [ { "argument": { "commentStart": 1429, "end": 0, "left": { "commentStart": 1429, "end": 0, "left": { "abs_path": false, "commentStart": 1429, "end": 0, "name": { "commentStart": 1429, "end": 0, "name": "totalWidth", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name", "type": "Name" }, "operator": "/", "right": { "commentStart": 1442, "end": 0, "raw": "2", "start": 0, "type": "Literal", "type": "Literal", "value": { "value": 2.0, "suffix": "None" } }, "start": 0, "type": "BinaryExpression", "type": "BinaryExpression" }, "operator": "-", "right": { "abs_path": false, "commentStart": 1446, "end": 0, "name": { "commentStart": 1446, "end": 0, "name": "t", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name", "type": "Name" }, "start": 0, "type": "BinaryExpression", "type": "BinaryExpression" }, "commentStart": 1427, "end": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, { "argument": { "commentStart": 1459, "end": 0, "left": { "commentStart": 1459, "end": 0, "left": { "abs_path": false, "commentStart": 1459, "end": 0, "name": { "commentStart": 1459, "end": 0, "name": "totalLength", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name", "type": "Name" }, "operator": "/", "right": { "commentStart": 1473, "end": 0, "raw": "2", "start": 0, "type": "Literal", "type": "Literal", "value": { "value": 2.0, "suffix": "None" } }, "start": 0, "type": "BinaryExpression", "type": "BinaryExpression" }, "operator": "-", "right": { "abs_path": false, "commentStart": 1477, "end": 0, "name": { "commentStart": 1477, "end": 0, "name": "t", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name", "type": "Name" }, "start": 0, "type": "BinaryExpression", "type": "BinaryExpression" }, "commentStart": 1457, "end": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" } ], "end": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" }, { "commentStart": 1488, "end": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } ], "callee": { "abs_path": false, "commentStart": 1403, "end": 0, "name": { "commentStart": 1403, "end": 0, "name": "startProfileAt", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name" }, "commentStart": 1403, "end": 0, "start": 0, "type": "CallExpression", "type": "CallExpression" }, { "arguments": [ { "type": "LabeledArg", "label": { "commentStart": 1501, "end": 0, "name": "end", "start": 0, "type": "Identifier" }, "arg": { "commentStart": 1507, "elements": [ { "commentStart": 1508, "end": 0, "left": { "abs_path": false, "commentStart": 1508, "end": 0, "name": { "commentStart": 1508, "end": 0, "name": "totalWidth", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name", "type": "Name" }, "operator": "-", "right": { "commentStart": 1522, "end": 0, "left": { "commentStart": 1522, "end": 0, "raw": "2", "start": 0, "type": "Literal", "type": "Literal", "value": { "value": 2.0, "suffix": "None" } }, "operator": "*", "right": { "abs_path": false, "commentStart": 1526, "end": 0, "name": { "commentStart": 1526, "end": 0, "name": "t", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name", "type": "Name" }, "start": 0, "type": "BinaryExpression", "type": "BinaryExpression" }, "start": 0, "type": "BinaryExpression", "type": "BinaryExpression" }, { "commentStart": 1530, "end": 0, "raw": "0", "start": 0, "type": "Literal", "type": "Literal", "value": { "value": 0.0, "suffix": "None" } } ], "end": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } } ], "callee": { "abs_path": false, "commentStart": 1496, "end": 0, "name": { "commentStart": 1496, "end": 0, "name": "line", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name" }, "commentStart": 1496, "end": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { "arguments": [ { "type": "LabeledArg", "label": { "commentStart": 1544, "end": 0, "name": "end", "start": 0, "type": "Identifier" }, "arg": { "commentStart": 1550, "elements": [ { "commentStart": 1551, "end": 0, "raw": "0", "start": 0, "type": "Literal", "type": "Literal", "value": { "value": 0.0, "suffix": "None" } }, { "commentStart": 1554, "end": 0, "left": { "abs_path": false, "commentStart": 1554, "end": 0, "name": { "commentStart": 1554, "end": 0, "name": "totalLength", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name", "type": "Name" }, "operator": "-", "right": { "commentStart": 1569, "end": 0, "left": { "commentStart": 1569, "end": 0, "raw": "2", "start": 0, "type": "Literal", "type": "Literal", "value": { "value": 2.0, "suffix": "None" } }, "operator": "*", "right": { "abs_path": false, "commentStart": 1573, "end": 0, "name": { "commentStart": 1573, "end": 0, "name": "t", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name", "type": "Name" }, "start": 0, "type": "BinaryExpression", "type": "BinaryExpression" }, "start": 0, "type": "BinaryExpression", "type": "BinaryExpression" } ], "end": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } } ], "callee": { "abs_path": false, "commentStart": 1539, "end": 0, "name": { "commentStart": 1539, "end": 0, "name": "line", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name" }, "commentStart": 1539, "end": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { "arguments": [ { "type": "LabeledArg", "label": { "commentStart": 1588, "end": 0, "name": "end", "start": 0, "type": "Identifier" }, "arg": { "commentStart": 1594, "elements": [ { "argument": { "commentStart": 1597, "end": 0, "left": { "abs_path": false, "commentStart": 1597, "end": 0, "name": { "commentStart": 1597, "end": 0, "name": "totalWidth", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name", "type": "Name" }, "operator": "-", "right": { "commentStart": 1611, "end": 0, "left": { "commentStart": 1611, "end": 0, "raw": "2", "start": 0, "type": "Literal", "type": "Literal", "value": { "value": 2.0, "suffix": "None" } }, "operator": "*", "right": { "abs_path": false, "commentStart": 1615, "end": 0, "name": { "commentStart": 1615, "end": 0, "name": "t", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name", "type": "Name" }, "start": 0, "type": "BinaryExpression", "type": "BinaryExpression" }, "start": 0, "type": "BinaryExpression", "type": "BinaryExpression" }, "commentStart": 1595, "end": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, { "commentStart": 1620, "end": 0, "raw": "0", "start": 0, "type": "Literal", "type": "Literal", "value": { "value": 0.0, "suffix": "None" } } ], "end": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } } ], "callee": { "abs_path": false, "commentStart": 1583, "end": 0, "name": { "commentStart": 1583, "end": 0, "name": "line", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name" }, "commentStart": 1583, "end": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { "arguments": [], "callee": { "abs_path": false, "commentStart": 1629, "end": 0, "name": { "commentStart": 1629, "end": 0, "name": "close", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name" }, "commentStart": 1629, "end": 0, "start": 0, "type": "CallExpression", "type": "CallExpression" }, { "arguments": [ { "type": "LabeledArg", "label": { "commentStart": 1650, "end": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { "argument": { "commentStart": 1661, "end": 0, "left": { "abs_path": false, "commentStart": 1661, "end": 0, "name": { "commentStart": 1661, "end": 0, "name": "height", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name", "type": "Name" }, "operator": "-", "right": { "abs_path": false, "commentStart": 1670, "end": 0, "name": { "commentStart": 1670, "end": 0, "name": "t", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name", "type": "Name" }, "start": 0, "type": "BinaryExpression", "type": "BinaryExpression" }, "commentStart": 1659, "end": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" } } ], "callee": { "abs_path": false, "commentStart": 1642, "end": 0, "name": { "commentStart": 1642, "end": 0, "name": "extrude", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name" }, "commentStart": 1642, "end": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null } ], "commentStart": 1369, "end": 0, "nonCodeMeta": { "nonCodeNodes": { "6": [ { "commentStart": 1673, "end": 0, "start": 0, "type": "NonCodeNode", "value": { "type": "newLineBlockComment", "value": "Create the pegs on the top of the base", "style": "line" } } ] }, "startNodes": [] }, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" }, { "commentStart": 1717, "declaration": { "commentStart": 1717, "end": 0, "id": { "commentStart": 1717, "end": 0, "name": "peg", "start": 0, "type": "Identifier" }, "init": { "body": [ { "arguments": [ { "abs_path": false, "commentStart": 1737, "end": 0, "name": { "commentStart": 1737, "end": 0, "name": "base", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name", "type": "Name" }, { "commentStart": 1743, "end": 0, "raw": "'end'", "start": 0, "type": "Literal", "type": "Literal", "value": "end" } ], "callee": { "abs_path": false, "commentStart": 1723, "end": 0, "name": { "commentStart": 1723, "end": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name" }, "commentStart": 1723, "end": 0, "start": 0, "type": "CallExpression", "type": "CallExpression" }, { "arguments": [ { "type": "LabeledArg", "label": { "commentStart": 1770, "end": 0, "name": "center", "start": 0, "type": "Identifier" }, "arg": { "commentStart": 1779, "elements": [ { "argument": { "commentStart": 1792, "end": 0, "left": { "commentStart": 1792, "end": 0, "left": { "abs_path": false, "commentStart": 1792, "end": 0, "name": { "commentStart": 1792, "end": 0, "name": "pitch", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name", "type": "Name" }, "operator": "*", "right": { "commentStart": 1801, "end": 0, "left": { "abs_path": false, "commentStart": 1801, "end": 0, "name": { "commentStart": 1801, "end": 0, "name": "wbumps", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name", "type": "Name" }, "operator": "-", "right": { "commentStart": 1810, "end": 0, "raw": "1", "start": 0, "type": "Literal", "type": "Literal", "value": { "value": 1.0, "suffix": "None" } }, "start": 0, "type": "BinaryExpression", "type": "BinaryExpression" }, "start": 0, "type": "BinaryExpression", "type": "BinaryExpression" }, "operator": "/", "right": { "commentStart": 1815, "end": 0, "raw": "2", "start": 0, "type": "Literal", "type": "Literal", "value": { "value": 2.0, "suffix": "None" } }, "start": 0, "type": "BinaryExpression", "type": "BinaryExpression" }, "commentStart": 1790, "end": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, { "argument": { "commentStart": 1830, "end": 0, "left": { "commentStart": 1830, "end": 0, "left": { "abs_path": false, "commentStart": 1830, "end": 0, "name": { "commentStart": 1830, "end": 0, "name": "pitch", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name", "type": "Name" }, "operator": "*", "right": { "commentStart": 1839, "end": 0, "left": { "abs_path": false, "commentStart": 1839, "end": 0, "name": { "commentStart": 1839, "end": 0, "name": "lbumps", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name", "type": "Name" }, "operator": "-", "right": { "commentStart": 1848, "end": 0, "raw": "1", "start": 0, "type": "Literal", "type": "Literal", "value": { "value": 1.0, "suffix": "None" } }, "start": 0, "type": "BinaryExpression", "type": "BinaryExpression" }, "start": 0, "type": "BinaryExpression", "type": "BinaryExpression" }, "operator": "/", "right": { "commentStart": 1853, "end": 0, "raw": "2", "start": 0, "type": "Literal", "type": "Literal", "value": { "value": 2.0, "suffix": "None" } }, "start": 0, "type": "BinaryExpression", "type": "BinaryExpression" }, "commentStart": 1828, "end": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" } ], "end": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } }, { "type": "LabeledArg", "label": { "commentStart": 1873, "end": 0, "name": "radius", "start": 0, "type": "Identifier" }, "arg": { "commentStart": 1882, "end": 0, "left": { "abs_path": false, "commentStart": 1882, "end": 0, "name": { "commentStart": 1882, "end": 0, "name": "bumpDiam", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name", "type": "Name" }, "operator": "/", "right": { "commentStart": 1893, "end": 0, "raw": "2", "start": 0, "type": "Literal", "type": "Literal", "value": { "value": 2.0, "suffix": "None" } }, "start": 0, "type": "BinaryExpression", "type": "BinaryExpression" } } ], "callee": { "abs_path": false, "commentStart": 1755, "end": 0, "name": { "commentStart": 1755, "end": 0, "name": "circle", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name" }, "commentStart": 1755, "end": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { "arguments": [ { "type": "LabeledArg", "label": { "commentStart": 1924, "end": 0, "name": "axis", "start": 0, "type": "Identifier" }, "arg": { "commentStart": 1931, "elements": [ { "commentStart": 1932, "end": 0, "raw": "1", "start": 0, "type": "Literal", "type": "Literal", "value": { "value": 1.0, "suffix": "None" } }, { "commentStart": 1935, "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": 1939, "end": 0, "name": "instances", "start": 0, "type": "Identifier" }, "arg": { "abs_path": false, "commentStart": 1951, "end": 0, "name": { "commentStart": 1951, "end": 0, "name": "wbumps", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name", "type": "Name" } }, { "type": "LabeledArg", "label": { "commentStart": 1959, "end": 0, "name": "distance", "start": 0, "type": "Identifier" }, "arg": { "abs_path": false, "commentStart": 1970, "end": 0, "name": { "commentStart": 1970, "end": 0, "name": "pitch", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name", "type": "Name" } } ], "callee": { "abs_path": false, "commentStart": 1908, "end": 0, "name": { "commentStart": 1908, "end": 0, "name": "patternLinear2d", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name" }, "commentStart": 1908, "end": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { "arguments": [ { "type": "LabeledArg", "label": { "commentStart": 1998, "end": 0, "name": "axis", "start": 0, "type": "Identifier" }, "arg": { "commentStart": 2005, "elements": [ { "commentStart": 2006, "end": 0, "raw": "0", "start": 0, "type": "Literal", "type": "Literal", "value": { "value": 0.0, "suffix": "None" } }, { "commentStart": 2009, "end": 0, "raw": "1", "start": 0, "type": "Literal", "type": "Literal", "value": { "value": 1.0, "suffix": "None" } } ], "end": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } }, { "type": "LabeledArg", "label": { "commentStart": 2013, "end": 0, "name": "instances", "start": 0, "type": "Identifier" }, "arg": { "abs_path": false, "commentStart": 2025, "end": 0, "name": { "commentStart": 2025, "end": 0, "name": "lbumps", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name", "type": "Name" } }, { "type": "LabeledArg", "label": { "commentStart": 2033, "end": 0, "name": "distance", "start": 0, "type": "Identifier" }, "arg": { "abs_path": false, "commentStart": 2044, "end": 0, "name": { "commentStart": 2044, "end": 0, "name": "pitch", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name", "type": "Name" } } ], "callee": { "abs_path": false, "commentStart": 1982, "end": 0, "name": { "commentStart": 1982, "end": 0, "name": "patternLinear2d", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name" }, "commentStart": 1982, "end": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { "arguments": [ { "type": "LabeledArg", "label": { "commentStart": 2064, "end": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { "abs_path": false, "commentStart": 2073, "end": 0, "name": { "commentStart": 2073, "end": 0, "name": "bumpHeight", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name", "type": "Name" } } ], "callee": { "abs_path": false, "commentStart": 2056, "end": 0, "name": { "commentStart": 2056, "end": 0, "name": "extrude", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name" }, "commentStart": 2056, "end": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null } ], "commentStart": 1723, "end": 0, "nonCodeMeta": { "nonCodeNodes": { "4": [ { "commentStart": 2084, "end": 0, "start": 0, "type": "NonCodeNode", "value": { "type": "newLineBlockComment", "value": "Create the pegs on the bottom of the base", "style": "line" } } ] }, "startNodes": [] }, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" }, { "commentStart": 2131, "declaration": { "commentStart": 2131, "end": 0, "id": { "commentStart": 2131, "end": 0, "name": "tubePattern", "start": 0, "type": "Identifier" }, "init": { "body": [ { "arguments": [ { "abs_path": false, "commentStart": 2159, "end": 0, "name": { "commentStart": 2159, "end": 0, "name": "shellExtrude", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name", "type": "Name" }, { "commentStart": 2173, "end": 0, "raw": "'start'", "start": 0, "type": "Literal", "type": "Literal", "value": "start" } ], "callee": { "abs_path": false, "commentStart": 2145, "end": 0, "name": { "commentStart": 2145, "end": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name" }, "commentStart": 2145, "end": 0, "start": 0, "type": "CallExpression", "type": "CallExpression" }, { "arguments": [ { "type": "LabeledArg", "label": { "commentStart": 2202, "end": 0, "name": "center", "start": 0, "type": "Identifier" }, "arg": { "commentStart": 2211, "elements": [ { "argument": { "commentStart": 2224, "end": 0, "left": { "commentStart": 2224, "end": 0, "left": { "commentStart": 2224, "end": 0, "left": { "abs_path": false, "commentStart": 2224, "end": 0, "name": { "commentStart": 2224, "end": 0, "name": "pitch", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name", "type": "Name" }, "operator": "*", "right": { "commentStart": 2233, "end": 0, "left": { "abs_path": false, "commentStart": 2233, "end": 0, "name": { "commentStart": 2233, "end": 0, "name": "wbumps", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name", "type": "Name" }, "operator": "-", "right": { "commentStart": 2242, "end": 0, "raw": "1", "start": 0, "type": "Literal", "type": "Literal", "value": { "value": 1.0, "suffix": "None" } }, "start": 0, "type": "BinaryExpression", "type": "BinaryExpression" }, "start": 0, "type": "BinaryExpression", "type": "BinaryExpression" }, "operator": "/", "right": { "commentStart": 2247, "end": 0, "raw": "2", "start": 0, "type": "Literal", "type": "Literal", "value": { "value": 2.0, "suffix": "None" } }, "start": 0, "type": "BinaryExpression", "type": "BinaryExpression" }, "operator": "-", "right": { "commentStart": 2252, "end": 0, "left": { "abs_path": false, "commentStart": 2252, "end": 0, "name": { "commentStart": 2252, "end": 0, "name": "pitch", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name", "type": "Name" }, "operator": "/", "right": { "commentStart": 2260, "end": 0, "raw": "2", "start": 0, "type": "Literal", "type": "Literal", "value": { "value": 2.0, "suffix": "None" } }, "start": 0, "type": "BinaryExpression", "type": "BinaryExpression" }, "start": 0, "type": "BinaryExpression", "type": "BinaryExpression" }, "commentStart": 2222, "end": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, { "argument": { "commentStart": 2276, "end": 0, "left": { "commentStart": 2276, "end": 0, "left": { "commentStart": 2276, "end": 0, "left": { "abs_path": false, "commentStart": 2276, "end": 0, "name": { "commentStart": 2276, "end": 0, "name": "pitch", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name", "type": "Name" }, "operator": "*", "right": { "commentStart": 2285, "end": 0, "left": { "abs_path": false, "commentStart": 2285, "end": 0, "name": { "commentStart": 2285, "end": 0, "name": "lbumps", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name", "type": "Name" }, "operator": "-", "right": { "commentStart": 2294, "end": 0, "raw": "1", "start": 0, "type": "Literal", "type": "Literal", "value": { "value": 1.0, "suffix": "None" } }, "start": 0, "type": "BinaryExpression", "type": "BinaryExpression" }, "start": 0, "type": "BinaryExpression", "type": "BinaryExpression" }, "operator": "/", "right": { "commentStart": 2299, "end": 0, "raw": "2", "start": 0, "type": "Literal", "type": "Literal", "value": { "value": 2.0, "suffix": "None" } }, "start": 0, "type": "BinaryExpression", "type": "BinaryExpression" }, "operator": "-", "right": { "commentStart": 2304, "end": 0, "left": { "abs_path": false, "commentStart": 2304, "end": 0, "name": { "commentStart": 2304, "end": 0, "name": "pitch", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name", "type": "Name" }, "operator": "/", "right": { "commentStart": 2312, "end": 0, "raw": "2", "start": 0, "type": "Literal", "type": "Literal", "value": { "value": 2.0, "suffix": "None" } }, "start": 0, "type": "BinaryExpression", "type": "BinaryExpression" }, "start": 0, "type": "BinaryExpression", "type": "BinaryExpression" }, "commentStart": 2274, "end": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" } ], "end": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } }, { "type": "LabeledArg", "label": { "commentStart": 2333, "end": 0, "name": "radius", "start": 0, "type": "Identifier" }, "arg": { "commentStart": 2342, "end": 0, "left": { "abs_path": false, "commentStart": 2342, "end": 0, "name": { "commentStart": 2342, "end": 0, "name": "bumpDiam", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name", "type": "Name" }, "operator": "/", "right": { "commentStart": 2353, "end": 0, "raw": "2", "start": 0, "type": "Literal", "type": "Literal", "value": { "value": 2.0, "suffix": "None" } }, "start": 0, "type": "BinaryExpression", "type": "BinaryExpression" } } ], "callee": { "abs_path": false, "commentStart": 2187, "end": 0, "name": { "commentStart": 2187, "end": 0, "name": "circle", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name" }, "commentStart": 2187, "end": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { "arguments": [ { "type": "LabeledArg", "label": { "commentStart": 2384, "end": 0, "name": "axis", "start": 0, "type": "Identifier" }, "arg": { "commentStart": 2391, "elements": [ { "commentStart": 2392, "end": 0, "raw": "1", "start": 0, "type": "Literal", "type": "Literal", "value": { "value": 1.0, "suffix": "None" } }, { "commentStart": 2395, "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": 2399, "end": 0, "name": "instances", "start": 0, "type": "Identifier" }, "arg": { "commentStart": 2411, "end": 0, "left": { "abs_path": false, "commentStart": 2411, "end": 0, "name": { "commentStart": 2411, "end": 0, "name": "wbumps", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name", "type": "Name" }, "operator": "-", "right": { "commentStart": 2420, "end": 0, "raw": "1", "start": 0, "type": "Literal", "type": "Literal", "value": { "value": 1.0, "suffix": "None" } }, "start": 0, "type": "BinaryExpression", "type": "BinaryExpression" } }, { "type": "LabeledArg", "label": { "commentStart": 2423, "end": 0, "name": "distance", "start": 0, "type": "Identifier" }, "arg": { "abs_path": false, "commentStart": 2434, "end": 0, "name": { "commentStart": 2434, "end": 0, "name": "pitch", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name", "type": "Name" } } ], "callee": { "abs_path": false, "commentStart": 2368, "end": 0, "name": { "commentStart": 2368, "end": 0, "name": "patternLinear2d", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name" }, "commentStart": 2368, "end": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { "arguments": [ { "type": "LabeledArg", "label": { "commentStart": 2462, "end": 0, "name": "axis", "start": 0, "type": "Identifier" }, "arg": { "commentStart": 2469, "elements": [ { "commentStart": 2470, "end": 0, "raw": "0", "start": 0, "type": "Literal", "type": "Literal", "value": { "value": 0.0, "suffix": "None" } }, { "commentStart": 2473, "end": 0, "raw": "1", "start": 0, "type": "Literal", "type": "Literal", "value": { "value": 1.0, "suffix": "None" } } ], "end": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } }, { "type": "LabeledArg", "label": { "commentStart": 2477, "end": 0, "name": "instances", "start": 0, "type": "Identifier" }, "arg": { "commentStart": 2489, "end": 0, "left": { "abs_path": false, "commentStart": 2489, "end": 0, "name": { "commentStart": 2489, "end": 0, "name": "lbumps", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name", "type": "Name" }, "operator": "-", "right": { "commentStart": 2498, "end": 0, "raw": "1", "start": 0, "type": "Literal", "type": "Literal", "value": { "value": 1.0, "suffix": "None" } }, "start": 0, "type": "BinaryExpression", "type": "BinaryExpression" } }, { "type": "LabeledArg", "label": { "commentStart": 2501, "end": 0, "name": "distance", "start": 0, "type": "Identifier" }, "arg": { "abs_path": false, "commentStart": 2512, "end": 0, "name": { "commentStart": 2512, "end": 0, "name": "pitch", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name", "type": "Name" } } ], "callee": { "abs_path": false, "commentStart": 2446, "end": 0, "name": { "commentStart": 2446, "end": 0, "name": "patternLinear2d", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name" }, "commentStart": 2446, "end": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { "arguments": [ { "type": "LabeledArg", "label": { "commentStart": 2532, "end": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { "abs_path": false, "commentStart": 2541, "end": 0, "name": { "commentStart": 2541, "end": 0, "name": "bumpHeight", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name", "type": "Name" } } ], "callee": { "abs_path": false, "commentStart": 2524, "end": 0, "name": { "commentStart": 2524, "end": 0, "name": "extrude", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name" }, "commentStart": 2524, "end": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null } ], "commentStart": 2145, "end": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" } ], "commentStart": 0, "end": 0, "innerAttrs": [ { "commentStart": 0, "end": 0, "name": { "commentStart": 239, "end": 0, "name": "settings", "start": 0, "type": "Identifier" }, "preComments": [ "// Lego Brick", "// A standard Lego brick. This is a small, plastic construction block toy that can be interlocked with other blocks to build various structures, models, and figures. There are a lot of hacks used in this code.", "", "", "// Set Units" ], "properties": [ { "commentStart": 248, "end": 0, "key": { "commentStart": 248, "end": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 268, "end": 0, "name": { "commentStart": 268, "end": 0, "name": "in", "start": 0, "type": "Identifier" }, "path": [], "start": 0, "type": "Name", "type": "Name" } } ], "start": 0, "type": "Annotation" } ], "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 304, "end": 0, "start": 0, "type": "NonCodeNode", "value": { "type": "inlineComment", "value": "number of bumps long", "style": "line" } } ], "1": [ { "commentStart": 339, "end": 0, "start": 0, "type": "NonCodeNode", "value": { "type": "inlineComment", "value": "number of bumps wide", "style": "line" } } ], "8": [ { "commentStart": 504, "end": 0, "start": 0, "type": "NonCodeNode", "value": { "type": "inlineComment", "value": "works out to 6.5", "style": "line" } } ] }, "startNodes": [ { "commentStart": 271, "end": 0, "start": 0, "type": "NonCodeNode", "value": { "type": "newLine" } } ] }, "start": 0 } }