3141 lines
		
	
	
		
			98 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			3141 lines
		
	
	
		
			98 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| ---
 | |
| source: kcl-lib/src/simulation_tests.rs
 | |
| description: Result of parsing pipe-flange-assembly.kcl
 | |
| ---
 | |
| {
 | |
|   "Ok": {
 | |
|     "body": [
 | |
|       {
 | |
|         "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,
 | |
|         "path": {
 | |
|           "type": "Kcl",
 | |
|           "filename": "9472k188-gasket.kcl"
 | |
|         },
 | |
|         "preComments": [
 | |
|           "",
 | |
|           "",
 | |
|           "// Import parts"
 | |
|         ],
 | |
|         "selector": {
 | |
|           "type": "None",
 | |
|           "alias": {
 | |
|             "commentStart": 0,
 | |
|             "end": 0,
 | |
|             "name": "gasket",
 | |
|             "start": 0,
 | |
|             "type": "Identifier"
 | |
|           }
 | |
|         },
 | |
|         "start": 0,
 | |
|         "type": "ImportStatement",
 | |
|         "type": "ImportStatement"
 | |
|       },
 | |
|       {
 | |
|         "commentStart": 0,
 | |
|         "end": 0,
 | |
|         "path": {
 | |
|           "type": "Kcl",
 | |
|           "filename": "68095k348-flange.kcl"
 | |
|         },
 | |
|         "selector": {
 | |
|           "type": "List",
 | |
|           "items": [
 | |
|             {
 | |
|               "alias": null,
 | |
|               "commentStart": 0,
 | |
|               "end": 0,
 | |
|               "name": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "flange",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "start": 0,
 | |
|               "type": "ImportItem"
 | |
|             }
 | |
|           ]
 | |
|         },
 | |
|         "start": 0,
 | |
|         "type": "ImportStatement",
 | |
|         "type": "ImportStatement"
 | |
|       },
 | |
|       {
 | |
|         "commentStart": 0,
 | |
|         "end": 0,
 | |
|         "path": {
 | |
|           "type": "Kcl",
 | |
|           "filename": "98017a257-washer.kcl"
 | |
|         },
 | |
|         "selector": {
 | |
|           "type": "List",
 | |
|           "items": [
 | |
|             {
 | |
|               "alias": null,
 | |
|               "commentStart": 0,
 | |
|               "end": 0,
 | |
|               "name": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "washer",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "start": 0,
 | |
|               "type": "ImportItem"
 | |
|             }
 | |
|           ]
 | |
|         },
 | |
|         "start": 0,
 | |
|         "type": "ImportStatement",
 | |
|         "type": "ImportStatement"
 | |
|       },
 | |
|       {
 | |
|         "commentStart": 0,
 | |
|         "end": 0,
 | |
|         "path": {
 | |
|           "type": "Kcl",
 | |
|           "filename": "91251a404-bolt.kcl"
 | |
|         },
 | |
|         "selector": {
 | |
|           "type": "List",
 | |
|           "items": [
 | |
|             {
 | |
|               "alias": null,
 | |
|               "commentStart": 0,
 | |
|               "end": 0,
 | |
|               "name": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "bolt",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "start": 0,
 | |
|               "type": "ImportItem"
 | |
|             }
 | |
|           ]
 | |
|         },
 | |
|         "start": 0,
 | |
|         "type": "ImportStatement",
 | |
|         "type": "ImportStatement"
 | |
|       },
 | |
|       {
 | |
|         "commentStart": 0,
 | |
|         "end": 0,
 | |
|         "path": {
 | |
|           "type": "Kcl",
 | |
|           "filename": "95479a127-hex-nut.kcl"
 | |
|         },
 | |
|         "selector": {
 | |
|           "type": "List",
 | |
|           "items": [
 | |
|             {
 | |
|               "alias": null,
 | |
|               "commentStart": 0,
 | |
|               "end": 0,
 | |
|               "name": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "hexNut",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "start": 0,
 | |
|               "type": "ImportItem"
 | |
|             }
 | |
|           ]
 | |
|         },
 | |
|         "start": 0,
 | |
|         "type": "ImportStatement",
 | |
|         "type": "ImportStatement"
 | |
|       },
 | |
|       {
 | |
|         "commentStart": 0,
 | |
|         "end": 0,
 | |
|         "path": {
 | |
|           "type": "Kcl",
 | |
|           "filename": "1120t74-pipe.kcl"
 | |
|         },
 | |
|         "selector": {
 | |
|           "type": "List",
 | |
|           "items": [
 | |
|             {
 | |
|               "alias": null,
 | |
|               "commentStart": 0,
 | |
|               "end": 0,
 | |
|               "name": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "pipe",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "start": 0,
 | |
|               "type": "ImportItem"
 | |
|             }
 | |
|           ]
 | |
|         },
 | |
|         "start": 0,
 | |
|         "type": "ImportStatement",
 | |
|         "type": "ImportStatement"
 | |
|       },
 | |
|       {
 | |
|         "commentStart": 0,
 | |
|         "end": 0,
 | |
|         "expression": {
 | |
|           "callee": {
 | |
|             "abs_path": false,
 | |
|             "commentStart": 0,
 | |
|             "end": 0,
 | |
|             "name": {
 | |
|               "commentStart": 0,
 | |
|               "end": 0,
 | |
|               "name": "flange",
 | |
|               "start": 0,
 | |
|               "type": "Identifier"
 | |
|             },
 | |
|             "path": [],
 | |
|             "start": 0,
 | |
|             "type": "Name"
 | |
|           },
 | |
|           "commentStart": 0,
 | |
|           "end": 0,
 | |
|           "start": 0,
 | |
|           "type": "CallExpressionKw",
 | |
|           "type": "CallExpressionKw",
 | |
|           "unlabeled": null
 | |
|         },
 | |
|         "preComments": [
 | |
|           "",
 | |
|           "",
 | |
|           "// Place flanges"
 | |
|         ],
 | |
|         "start": 0,
 | |
|         "type": "ExpressionStatement",
 | |
|         "type": "ExpressionStatement"
 | |
|       },
 | |
|       {
 | |
|         "commentStart": 0,
 | |
|         "end": 0,
 | |
|         "expression": {
 | |
|           "body": [
 | |
|             {
 | |
|               "callee": {
 | |
|                 "abs_path": false,
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "flange",
 | |
|                   "start": 0,
 | |
|                   "type": "Identifier"
 | |
|                 },
 | |
|                 "path": [],
 | |
|                 "start": 0,
 | |
|                 "type": "Name"
 | |
|               },
 | |
|               "commentStart": 0,
 | |
|               "end": 0,
 | |
|               "start": 0,
 | |
|               "type": "CallExpressionKw",
 | |
|               "type": "CallExpressionKw",
 | |
|               "unlabeled": null
 | |
|             },
 | |
|             {
 | |
|               "arguments": [
 | |
|                 {
 | |
|                   "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": "angle",
 | |
|                     "start": 0,
 | |
|                     "type": "Identifier"
 | |
|                   },
 | |
|                   "arg": {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "raw": "180",
 | |
|                     "start": 0,
 | |
|                     "type": "Literal",
 | |
|                     "type": "Literal",
 | |
|                     "value": {
 | |
|                       "value": 180.0,
 | |
|                       "suffix": "None"
 | |
|                     }
 | |
|                   }
 | |
|                 }
 | |
|               ],
 | |
|               "callee": {
 | |
|                 "abs_path": false,
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "rotate",
 | |
|                   "start": 0,
 | |
|                   "type": "Identifier"
 | |
|                 },
 | |
|                 "path": [],
 | |
|                 "start": 0,
 | |
|                 "type": "Name"
 | |
|               },
 | |
|               "commentStart": 0,
 | |
|               "end": 0,
 | |
|               "start": 0,
 | |
|               "type": "CallExpressionKw",
 | |
|               "type": "CallExpressionKw",
 | |
|               "unlabeled": null
 | |
|             },
 | |
|             {
 | |
|               "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",
 | |
|                     "start": 0,
 | |
|                     "type": "Literal",
 | |
|                     "type": "Literal",
 | |
|                     "value": {
 | |
|                       "value": 0.0,
 | |
|                       "suffix": "None"
 | |
|                     }
 | |
|                   }
 | |
|                 },
 | |
|                 {
 | |
|                   "type": "LabeledArg",
 | |
|                   "label": {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "name": "z",
 | |
|                     "start": 0,
 | |
|                     "type": "Identifier"
 | |
|                   },
 | |
|                   "arg": {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "left": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "left": {
 | |
|                         "abs_path": false,
 | |
|                         "commentStart": 0,
 | |
|                         "end": 0,
 | |
|                         "name": {
 | |
|                           "commentStart": 0,
 | |
|                           "end": 0,
 | |
|                           "name": "flangeBackHeight",
 | |
|                           "start": 0,
 | |
|                           "type": "Identifier"
 | |
|                         },
 | |
|                         "path": [],
 | |
|                         "start": 0,
 | |
|                         "type": "Name",
 | |
|                         "type": "Name"
 | |
|                       },
 | |
|                       "operator": "*",
 | |
|                       "right": {
 | |
|                         "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": {
 | |
|                       "abs_path": false,
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "name": {
 | |
|                         "commentStart": 0,
 | |
|                         "end": 0,
 | |
|                         "name": "gasketThickness",
 | |
|                         "start": 0,
 | |
|                         "type": "Identifier"
 | |
|                       },
 | |
|                       "path": [],
 | |
|                       "start": 0,
 | |
|                       "type": "Name",
 | |
|                       "type": "Name"
 | |
|                     },
 | |
|                     "start": 0,
 | |
|                     "type": "BinaryExpression",
 | |
|                     "type": "BinaryExpression"
 | |
|                   }
 | |
|                 }
 | |
|               ],
 | |
|               "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": {
 | |
|               "2": [
 | |
|                 {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "start": 0,
 | |
|                   "type": "NonCodeNode",
 | |
|                   "value": {
 | |
|                     "type": "newLineBlockComment",
 | |
|                     "value": "Place gasket between the flanges",
 | |
|                     "style": "line"
 | |
|                   }
 | |
|                 }
 | |
|               ]
 | |
|             },
 | |
|             "startNodes": []
 | |
|           },
 | |
|           "start": 0,
 | |
|           "type": "PipeExpression",
 | |
|           "type": "PipeExpression"
 | |
|         },
 | |
|         "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": "gasket",
 | |
|                 "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",
 | |
|                     "start": 0,
 | |
|                     "type": "Literal",
 | |
|                     "type": "Literal",
 | |
|                     "value": {
 | |
|                       "value": 0.0,
 | |
|                       "suffix": "None"
 | |
|                     }
 | |
|                   }
 | |
|                 },
 | |
|                 {
 | |
|                   "type": "LabeledArg",
 | |
|                   "label": {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "name": "z",
 | |
|                     "start": 0,
 | |
|                     "type": "Identifier"
 | |
|                   },
 | |
|                   "arg": {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "left": {
 | |
|                       "argument": {
 | |
|                         "abs_path": false,
 | |
|                         "commentStart": 0,
 | |
|                         "end": 0,
 | |
|                         "name": {
 | |
|                           "commentStart": 0,
 | |
|                           "end": 0,
 | |
|                           "name": "flangeBackHeight",
 | |
|                           "start": 0,
 | |
|                           "type": "Identifier"
 | |
|                         },
 | |
|                         "path": [],
 | |
|                         "start": 0,
 | |
|                         "type": "Name",
 | |
|                         "type": "Name"
 | |
|                       },
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "operator": "-",
 | |
|                       "start": 0,
 | |
|                       "type": "UnaryExpression",
 | |
|                       "type": "UnaryExpression"
 | |
|                     },
 | |
|                     "operator": "-",
 | |
|                     "right": {
 | |
|                       "abs_path": false,
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "name": {
 | |
|                         "commentStart": 0,
 | |
|                         "end": 0,
 | |
|                         "name": "gasketThickness",
 | |
|                         "start": 0,
 | |
|                         "type": "Identifier"
 | |
|                       },
 | |
|                       "path": [],
 | |
|                       "start": 0,
 | |
|                       "type": "Name",
 | |
|                       "type": "Name"
 | |
|                     },
 | |
|                     "start": 0,
 | |
|                     "type": "BinaryExpression",
 | |
|                     "type": "BinaryExpression"
 | |
|                   }
 | |
|                 }
 | |
|               ],
 | |
|               "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 eight washers (four front, four back)",
 | |
|                     "style": "line"
 | |
|                   }
 | |
|                 }
 | |
|               ]
 | |
|             },
 | |
|             "startNodes": []
 | |
|           },
 | |
|           "start": 0,
 | |
|           "type": "PipeExpression",
 | |
|           "type": "PipeExpression"
 | |
|         },
 | |
|         "start": 0,
 | |
|         "type": "ExpressionStatement",
 | |
|         "type": "ExpressionStatement"
 | |
|       },
 | |
|       {
 | |
|         "commentStart": 0,
 | |
|         "end": 0,
 | |
|         "expression": {
 | |
|           "body": [
 | |
|             {
 | |
|               "callee": {
 | |
|                 "abs_path": false,
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "washer",
 | |
|                   "start": 0,
 | |
|                   "type": "Identifier"
 | |
|                 },
 | |
|                 "path": [],
 | |
|                 "start": 0,
 | |
|                 "type": "Name"
 | |
|               },
 | |
|               "commentStart": 0,
 | |
|               "end": 0,
 | |
|               "start": 0,
 | |
|               "type": "CallExpressionKw",
 | |
|               "type": "CallExpressionKw",
 | |
|               "unlabeled": null
 | |
|             },
 | |
|             {
 | |
|               "arguments": [
 | |
|                 {
 | |
|                   "type": "LabeledArg",
 | |
|                   "label": {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "name": "x",
 | |
|                     "start": 0,
 | |
|                     "type": "Identifier"
 | |
|                   },
 | |
|                   "arg": {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "left": {
 | |
|                       "abs_path": false,
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "name": {
 | |
|                         "commentStart": 0,
 | |
|                         "end": 0,
 | |
|                         "name": "mountingHolePlacementDiameter",
 | |
|                         "start": 0,
 | |
|                         "type": "Identifier"
 | |
|                       },
 | |
|                       "path": [],
 | |
|                       "start": 0,
 | |
|                       "type": "Name",
 | |
|                       "type": "Name"
 | |
|                     },
 | |
|                     "operator": "/",
 | |
|                     "right": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "raw": "2",
 | |
|                       "start": 0,
 | |
|                       "type": "Literal",
 | |
|                       "type": "Literal",
 | |
|                       "value": {
 | |
|                         "value": 2.0,
 | |
|                         "suffix": "None"
 | |
|                       }
 | |
|                     },
 | |
|                     "start": 0,
 | |
|                     "type": "BinaryExpression",
 | |
|                     "type": "BinaryExpression"
 | |
|                   }
 | |
|                 },
 | |
|                 {
 | |
|                   "type": "LabeledArg",
 | |
|                   "label": {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "name": "y",
 | |
|                     "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": "z",
 | |
|                     "start": 0,
 | |
|                     "type": "Identifier"
 | |
|                   },
 | |
|                   "arg": {
 | |
|                     "abs_path": false,
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "name": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "name": "flangeBaseThickness",
 | |
|                       "start": 0,
 | |
|                       "type": "Identifier"
 | |
|                     },
 | |
|                     "path": [],
 | |
|                     "start": 0,
 | |
|                     "type": "Name",
 | |
|                     "type": "Name"
 | |
|                   }
 | |
|                 }
 | |
|               ],
 | |
|               "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
 | |
|             },
 | |
|             {
 | |
|               "arguments": [
 | |
|                 {
 | |
|                   "type": "LabeledArg",
 | |
|                   "label": {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "name": "instances",
 | |
|                     "start": 0,
 | |
|                     "type": "Identifier"
 | |
|                   },
 | |
|                   "arg": {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "raw": "4",
 | |
|                     "start": 0,
 | |
|                     "type": "Literal",
 | |
|                     "type": "Literal",
 | |
|                     "value": {
 | |
|                       "value": 4.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": "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"
 | |
|                         }
 | |
|                       }
 | |
|                     ],
 | |
|                     "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": "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": "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": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "start": 0,
 | |
|                 "type": "PipeSubstitution",
 | |
|                 "type": "PipeSubstitution"
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "arguments": [
 | |
|                 {
 | |
|                   "type": "LabeledArg",
 | |
|                   "label": {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "name": "instances",
 | |
|                     "start": 0,
 | |
|                     "type": "Identifier"
 | |
|                   },
 | |
|                   "arg": {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "raw": "2",
 | |
|                     "start": 0,
 | |
|                     "type": "Literal",
 | |
|                     "type": "Literal",
 | |
|                     "value": {
 | |
|                       "value": 2.0,
 | |
|                       "suffix": "None"
 | |
|                     }
 | |
|                   }
 | |
|                 },
 | |
|                 {
 | |
|                   "type": "LabeledArg",
 | |
|                   "label": {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "name": "distance",
 | |
|                     "start": 0,
 | |
|                     "type": "Identifier"
 | |
|                   },
 | |
|                   "arg": {
 | |
|                     "argument": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "left": {
 | |
|                         "commentStart": 0,
 | |
|                         "end": 0,
 | |
|                         "left": {
 | |
|                           "commentStart": 0,
 | |
|                           "end": 0,
 | |
|                           "left": {
 | |
|                             "commentStart": 0,
 | |
|                             "end": 0,
 | |
|                             "left": {
 | |
|                               "abs_path": false,
 | |
|                               "commentStart": 0,
 | |
|                               "end": 0,
 | |
|                               "name": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "name": "flangeBaseThickness",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "path": [],
 | |
|                               "start": 0,
 | |
|                               "type": "Name",
 | |
|                               "type": "Name"
 | |
|                             },
 | |
|                             "operator": "*",
 | |
|                             "right": {
 | |
|                               "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": {
 | |
|                             "commentStart": 0,
 | |
|                             "end": 0,
 | |
|                             "left": {
 | |
|                               "abs_path": false,
 | |
|                               "commentStart": 0,
 | |
|                               "end": 0,
 | |
|                               "name": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "name": "flangeBackHeight",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "path": [],
 | |
|                               "start": 0,
 | |
|                               "type": "Name",
 | |
|                               "type": "Name"
 | |
|                             },
 | |
|                             "operator": "*",
 | |
|                             "right": {
 | |
|                               "commentStart": 0,
 | |
|                               "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"
 | |
|                         },
 | |
|                         "operator": "+",
 | |
|                         "right": {
 | |
|                           "abs_path": false,
 | |
|                           "commentStart": 0,
 | |
|                           "end": 0,
 | |
|                           "name": {
 | |
|                             "commentStart": 0,
 | |
|                             "end": 0,
 | |
|                             "name": "gasketThickness",
 | |
|                             "start": 0,
 | |
|                             "type": "Identifier"
 | |
|                           },
 | |
|                           "path": [],
 | |
|                           "start": 0,
 | |
|                           "type": "Name",
 | |
|                           "type": "Name"
 | |
|                         },
 | |
|                         "start": 0,
 | |
|                         "type": "BinaryExpression",
 | |
|                         "type": "BinaryExpression"
 | |
|                       },
 | |
|                       "operator": "+",
 | |
|                       "right": {
 | |
|                         "abs_path": false,
 | |
|                         "commentStart": 0,
 | |
|                         "end": 0,
 | |
|                         "name": {
 | |
|                           "commentStart": 0,
 | |
|                           "end": 0,
 | |
|                           "name": "washerThickness",
 | |
|                           "start": 0,
 | |
|                           "type": "Identifier"
 | |
|                         },
 | |
|                         "path": [],
 | |
|                         "start": 0,
 | |
|                         "type": "Name",
 | |
|                         "type": "Name"
 | |
|                       },
 | |
|                       "start": 0,
 | |
|                       "type": "BinaryExpression",
 | |
|                       "type": "BinaryExpression"
 | |
|                     },
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "operator": "-",
 | |
|                     "start": 0,
 | |
|                     "type": "UnaryExpression",
 | |
|                     "type": "UnaryExpression"
 | |
|                   }
 | |
|                 },
 | |
|                 {
 | |
|                   "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": "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"
 | |
|                         }
 | |
|                       }
 | |
|                     ],
 | |
|                     "end": 0,
 | |
|                     "start": 0,
 | |
|                     "type": "ArrayExpression",
 | |
|                     "type": "ArrayExpression"
 | |
|                   }
 | |
|                 }
 | |
|               ],
 | |
|               "callee": {
 | |
|                 "abs_path": false,
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "patternLinear3d",
 | |
|                   "start": 0,
 | |
|                   "type": "Identifier"
 | |
|                 },
 | |
|                 "path": [],
 | |
|                 "start": 0,
 | |
|                 "type": "Name"
 | |
|               },
 | |
|               "commentStart": 0,
 | |
|               "end": 0,
 | |
|               "start": 0,
 | |
|               "type": "CallExpressionKw",
 | |
|               "type": "CallExpressionKw",
 | |
|               "unlabeled": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "start": 0,
 | |
|                 "type": "PipeSubstitution",
 | |
|                 "type": "PipeSubstitution"
 | |
|               }
 | |
|             }
 | |
|           ],
 | |
|           "commentStart": 0,
 | |
|           "end": 0,
 | |
|           "nonCodeMeta": {
 | |
|             "nonCodeNodes": {
 | |
|               "3": [
 | |
|                 {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "start": 0,
 | |
|                   "type": "NonCodeNode",
 | |
|                   "value": {
 | |
|                     "type": "newLineBlockComment",
 | |
|                     "value": "Place four bolts",
 | |
|                     "style": "line"
 | |
|                   }
 | |
|                 }
 | |
|               ]
 | |
|             },
 | |
|             "startNodes": []
 | |
|           },
 | |
|           "start": 0,
 | |
|           "type": "PipeExpression",
 | |
|           "type": "PipeExpression"
 | |
|         },
 | |
|         "start": 0,
 | |
|         "type": "ExpressionStatement",
 | |
|         "type": "ExpressionStatement"
 | |
|       },
 | |
|       {
 | |
|         "commentStart": 0,
 | |
|         "end": 0,
 | |
|         "expression": {
 | |
|           "body": [
 | |
|             {
 | |
|               "callee": {
 | |
|                 "abs_path": false,
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "bolt",
 | |
|                   "start": 0,
 | |
|                   "type": "Identifier"
 | |
|                 },
 | |
|                 "path": [],
 | |
|                 "start": 0,
 | |
|                 "type": "Name"
 | |
|               },
 | |
|               "commentStart": 0,
 | |
|               "end": 0,
 | |
|               "start": 0,
 | |
|               "type": "CallExpressionKw",
 | |
|               "type": "CallExpressionKw",
 | |
|               "unlabeled": null
 | |
|             },
 | |
|             {
 | |
|               "arguments": [
 | |
|                 {
 | |
|                   "type": "LabeledArg",
 | |
|                   "label": {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "name": "x",
 | |
|                     "start": 0,
 | |
|                     "type": "Identifier"
 | |
|                   },
 | |
|                   "arg": {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "left": {
 | |
|                       "abs_path": false,
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "name": {
 | |
|                         "commentStart": 0,
 | |
|                         "end": 0,
 | |
|                         "name": "mountingHolePlacementDiameter",
 | |
|                         "start": 0,
 | |
|                         "type": "Identifier"
 | |
|                       },
 | |
|                       "path": [],
 | |
|                       "start": 0,
 | |
|                       "type": "Name",
 | |
|                       "type": "Name"
 | |
|                     },
 | |
|                     "operator": "/",
 | |
|                     "right": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "raw": "2",
 | |
|                       "start": 0,
 | |
|                       "type": "Literal",
 | |
|                       "type": "Literal",
 | |
|                       "value": {
 | |
|                         "value": 2.0,
 | |
|                         "suffix": "None"
 | |
|                       }
 | |
|                     },
 | |
|                     "start": 0,
 | |
|                     "type": "BinaryExpression",
 | |
|                     "type": "BinaryExpression"
 | |
|                   }
 | |
|                 },
 | |
|                 {
 | |
|                   "type": "LabeledArg",
 | |
|                   "label": {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "name": "y",
 | |
|                     "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": "z",
 | |
|                     "start": 0,
 | |
|                     "type": "Identifier"
 | |
|                   },
 | |
|                   "arg": {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "left": {
 | |
|                       "abs_path": false,
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "name": {
 | |
|                         "commentStart": 0,
 | |
|                         "end": 0,
 | |
|                         "name": "flangeBaseThickness",
 | |
|                         "start": 0,
 | |
|                         "type": "Identifier"
 | |
|                       },
 | |
|                       "path": [],
 | |
|                       "start": 0,
 | |
|                       "type": "Name",
 | |
|                       "type": "Name"
 | |
|                     },
 | |
|                     "operator": "+",
 | |
|                     "right": {
 | |
|                       "abs_path": false,
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "name": {
 | |
|                         "commentStart": 0,
 | |
|                         "end": 0,
 | |
|                         "name": "washerThickness",
 | |
|                         "start": 0,
 | |
|                         "type": "Identifier"
 | |
|                       },
 | |
|                       "path": [],
 | |
|                       "start": 0,
 | |
|                       "type": "Name",
 | |
|                       "type": "Name"
 | |
|                     },
 | |
|                     "start": 0,
 | |
|                     "type": "BinaryExpression",
 | |
|                     "type": "BinaryExpression"
 | |
|                   }
 | |
|                 }
 | |
|               ],
 | |
|               "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
 | |
|             },
 | |
|             {
 | |
|               "arguments": [
 | |
|                 {
 | |
|                   "type": "LabeledArg",
 | |
|                   "label": {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "name": "roll",
 | |
|                     "start": 0,
 | |
|                     "type": "Identifier"
 | |
|                   },
 | |
|                   "arg": {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "raw": "90",
 | |
|                     "start": 0,
 | |
|                     "type": "Literal",
 | |
|                     "type": "Literal",
 | |
|                     "value": {
 | |
|                       "value": 90.0,
 | |
|                       "suffix": "None"
 | |
|                     }
 | |
|                   }
 | |
|                 },
 | |
|                 {
 | |
|                   "type": "LabeledArg",
 | |
|                   "label": {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "name": "pitch",
 | |
|                     "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": "yaw",
 | |
|                     "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": "rotate",
 | |
|                   "start": 0,
 | |
|                   "type": "Identifier"
 | |
|                 },
 | |
|                 "path": [],
 | |
|                 "start": 0,
 | |
|                 "type": "Name"
 | |
|               },
 | |
|               "commentStart": 0,
 | |
|               "end": 0,
 | |
|               "start": 0,
 | |
|               "type": "CallExpressionKw",
 | |
|               "type": "CallExpressionKw",
 | |
|               "unlabeled": null
 | |
|             },
 | |
|             {
 | |
|               "arguments": [
 | |
|                 {
 | |
|                   "type": "LabeledArg",
 | |
|                   "label": {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "name": "instances",
 | |
|                     "start": 0,
 | |
|                     "type": "Identifier"
 | |
|                   },
 | |
|                   "arg": {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "raw": "4",
 | |
|                     "start": 0,
 | |
|                     "type": "Literal",
 | |
|                     "type": "Literal",
 | |
|                     "value": {
 | |
|                       "value": 4.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": "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"
 | |
|                         }
 | |
|                       }
 | |
|                     ],
 | |
|                     "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": "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": "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": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "start": 0,
 | |
|                 "type": "PipeSubstitution",
 | |
|                 "type": "PipeSubstitution"
 | |
|               }
 | |
|             }
 | |
|           ],
 | |
|           "commentStart": 0,
 | |
|           "end": 0,
 | |
|           "nonCodeMeta": {
 | |
|             "nonCodeNodes": {
 | |
|               "3": [
 | |
|                 {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "start": 0,
 | |
|                   "type": "NonCodeNode",
 | |
|                   "value": {
 | |
|                     "type": "newLineBlockComment",
 | |
|                     "value": "Place four hex nuts",
 | |
|                     "style": "line"
 | |
|                   }
 | |
|                 }
 | |
|               ]
 | |
|             },
 | |
|             "startNodes": []
 | |
|           },
 | |
|           "start": 0,
 | |
|           "type": "PipeExpression",
 | |
|           "type": "PipeExpression"
 | |
|         },
 | |
|         "start": 0,
 | |
|         "type": "ExpressionStatement",
 | |
|         "type": "ExpressionStatement"
 | |
|       },
 | |
|       {
 | |
|         "commentStart": 0,
 | |
|         "end": 0,
 | |
|         "expression": {
 | |
|           "body": [
 | |
|             {
 | |
|               "callee": {
 | |
|                 "abs_path": false,
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "hexNut",
 | |
|                   "start": 0,
 | |
|                   "type": "Identifier"
 | |
|                 },
 | |
|                 "path": [],
 | |
|                 "start": 0,
 | |
|                 "type": "Name"
 | |
|               },
 | |
|               "commentStart": 0,
 | |
|               "end": 0,
 | |
|               "start": 0,
 | |
|               "type": "CallExpressionKw",
 | |
|               "type": "CallExpressionKw",
 | |
|               "unlabeled": null
 | |
|             },
 | |
|             {
 | |
|               "arguments": [
 | |
|                 {
 | |
|                   "type": "LabeledArg",
 | |
|                   "label": {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "name": "x",
 | |
|                     "start": 0,
 | |
|                     "type": "Identifier"
 | |
|                   },
 | |
|                   "arg": {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "left": {
 | |
|                       "abs_path": false,
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "name": {
 | |
|                         "commentStart": 0,
 | |
|                         "end": 0,
 | |
|                         "name": "mountingHolePlacementDiameter",
 | |
|                         "start": 0,
 | |
|                         "type": "Identifier"
 | |
|                       },
 | |
|                       "path": [],
 | |
|                       "start": 0,
 | |
|                       "type": "Name",
 | |
|                       "type": "Name"
 | |
|                     },
 | |
|                     "operator": "/",
 | |
|                     "right": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "raw": "2",
 | |
|                       "start": 0,
 | |
|                       "type": "Literal",
 | |
|                       "type": "Literal",
 | |
|                       "value": {
 | |
|                         "value": 2.0,
 | |
|                         "suffix": "None"
 | |
|                       }
 | |
|                     },
 | |
|                     "start": 0,
 | |
|                     "type": "BinaryExpression",
 | |
|                     "type": "BinaryExpression"
 | |
|                   }
 | |
|                 },
 | |
|                 {
 | |
|                   "type": "LabeledArg",
 | |
|                   "label": {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "name": "y",
 | |
|                     "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": "z",
 | |
|                     "start": 0,
 | |
|                     "type": "Identifier"
 | |
|                   },
 | |
|                   "arg": {
 | |
|                     "argument": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "left": {
 | |
|                         "commentStart": 0,
 | |
|                         "end": 0,
 | |
|                         "left": {
 | |
|                           "commentStart": 0,
 | |
|                           "end": 0,
 | |
|                           "left": {
 | |
|                             "commentStart": 0,
 | |
|                             "end": 0,
 | |
|                             "left": {
 | |
|                               "commentStart": 0,
 | |
|                               "end": 0,
 | |
|                               "left": {
 | |
|                                 "abs_path": false,
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "name": {
 | |
|                                   "commentStart": 0,
 | |
|                                   "end": 0,
 | |
|                                   "name": "flangeBackHeight",
 | |
|                                   "start": 0,
 | |
|                                   "type": "Identifier"
 | |
|                                 },
 | |
|                                 "path": [],
 | |
|                                 "start": 0,
 | |
|                                 "type": "Name",
 | |
|                                 "type": "Name"
 | |
|                               },
 | |
|                               "operator": "*",
 | |
|                               "right": {
 | |
|                                 "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": {
 | |
|                               "abs_path": false,
 | |
|                               "commentStart": 0,
 | |
|                               "end": 0,
 | |
|                               "name": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "name": "gasketThickness",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "path": [],
 | |
|                               "start": 0,
 | |
|                               "type": "Name",
 | |
|                               "type": "Name"
 | |
|                             },
 | |
|                             "start": 0,
 | |
|                             "type": "BinaryExpression",
 | |
|                             "type": "BinaryExpression"
 | |
|                           },
 | |
|                           "operator": "+",
 | |
|                           "right": {
 | |
|                             "abs_path": false,
 | |
|                             "commentStart": 0,
 | |
|                             "end": 0,
 | |
|                             "name": {
 | |
|                               "commentStart": 0,
 | |
|                               "end": 0,
 | |
|                               "name": "flangeBaseThickness",
 | |
|                               "start": 0,
 | |
|                               "type": "Identifier"
 | |
|                             },
 | |
|                             "path": [],
 | |
|                             "start": 0,
 | |
|                             "type": "Name",
 | |
|                             "type": "Name"
 | |
|                           },
 | |
|                           "start": 0,
 | |
|                           "type": "BinaryExpression",
 | |
|                           "type": "BinaryExpression"
 | |
|                         },
 | |
|                         "operator": "+",
 | |
|                         "right": {
 | |
|                           "abs_path": false,
 | |
|                           "commentStart": 0,
 | |
|                           "end": 0,
 | |
|                           "name": {
 | |
|                             "commentStart": 0,
 | |
|                             "end": 0,
 | |
|                             "name": "washerThickness",
 | |
|                             "start": 0,
 | |
|                             "type": "Identifier"
 | |
|                           },
 | |
|                           "path": [],
 | |
|                           "start": 0,
 | |
|                           "type": "Name",
 | |
|                           "type": "Name"
 | |
|                         },
 | |
|                         "start": 0,
 | |
|                         "type": "BinaryExpression",
 | |
|                         "type": "BinaryExpression"
 | |
|                       },
 | |
|                       "operator": "+",
 | |
|                       "right": {
 | |
|                         "abs_path": false,
 | |
|                         "commentStart": 0,
 | |
|                         "end": 0,
 | |
|                         "name": {
 | |
|                           "commentStart": 0,
 | |
|                           "end": 0,
 | |
|                           "name": "hexNutThickness",
 | |
|                           "start": 0,
 | |
|                           "type": "Identifier"
 | |
|                         },
 | |
|                         "path": [],
 | |
|                         "start": 0,
 | |
|                         "type": "Name",
 | |
|                         "type": "Name"
 | |
|                       },
 | |
|                       "start": 0,
 | |
|                       "type": "BinaryExpression",
 | |
|                       "type": "BinaryExpression"
 | |
|                     },
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "operator": "-",
 | |
|                     "start": 0,
 | |
|                     "type": "UnaryExpression",
 | |
|                     "type": "UnaryExpression"
 | |
|                   }
 | |
|                 }
 | |
|               ],
 | |
|               "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
 | |
|             },
 | |
|             {
 | |
|               "arguments": [
 | |
|                 {
 | |
|                   "type": "LabeledArg",
 | |
|                   "label": {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "name": "instances",
 | |
|                     "start": 0,
 | |
|                     "type": "Identifier"
 | |
|                   },
 | |
|                   "arg": {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "raw": "4",
 | |
|                     "start": 0,
 | |
|                     "type": "Literal",
 | |
|                     "type": "Literal",
 | |
|                     "value": {
 | |
|                       "value": 4.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": "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"
 | |
|                         }
 | |
|                       }
 | |
|                     ],
 | |
|                     "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": "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": "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": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "start": 0,
 | |
|                 "type": "PipeSubstitution",
 | |
|                 "type": "PipeSubstitution"
 | |
|               }
 | |
|             }
 | |
|           ],
 | |
|           "commentStart": 0,
 | |
|           "end": 0,
 | |
|           "nonCodeMeta": {
 | |
|             "nonCodeNodes": {
 | |
|               "2": [
 | |
|                 {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "start": 0,
 | |
|                   "type": "NonCodeNode",
 | |
|                   "value": {
 | |
|                     "type": "newLineBlockComment",
 | |
|                     "value": "Place both pieces of pipe",
 | |
|                     "style": "line"
 | |
|                   }
 | |
|                 }
 | |
|               ]
 | |
|             },
 | |
|             "startNodes": []
 | |
|           },
 | |
|           "start": 0,
 | |
|           "type": "PipeExpression",
 | |
|           "type": "PipeExpression"
 | |
|         },
 | |
|         "start": 0,
 | |
|         "type": "ExpressionStatement",
 | |
|         "type": "ExpressionStatement"
 | |
|       },
 | |
|       {
 | |
|         "commentStart": 0,
 | |
|         "end": 0,
 | |
|         "expression": {
 | |
|           "body": [
 | |
|             {
 | |
|               "callee": {
 | |
|                 "abs_path": false,
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "pipe",
 | |
|                   "start": 0,
 | |
|                   "type": "Identifier"
 | |
|                 },
 | |
|                 "path": [],
 | |
|                 "start": 0,
 | |
|                 "type": "Name"
 | |
|               },
 | |
|               "commentStart": 0,
 | |
|               "end": 0,
 | |
|               "start": 0,
 | |
|               "type": "CallExpressionKw",
 | |
|               "type": "CallExpressionKw",
 | |
|               "unlabeled": null
 | |
|             },
 | |
|             {
 | |
|               "arguments": [
 | |
|                 {
 | |
|                   "type": "LabeledArg",
 | |
|                   "label": {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "name": "roll",
 | |
|                     "start": 0,
 | |
|                     "type": "Identifier"
 | |
|                   },
 | |
|                   "arg": {
 | |
|                     "argument": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "raw": "90",
 | |
|                       "start": 0,
 | |
|                       "type": "Literal",
 | |
|                       "type": "Literal",
 | |
|                       "value": {
 | |
|                         "value": 90.0,
 | |
|                         "suffix": "None"
 | |
|                       }
 | |
|                     },
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "operator": "-",
 | |
|                     "start": 0,
 | |
|                     "type": "UnaryExpression",
 | |
|                     "type": "UnaryExpression"
 | |
|                   }
 | |
|                 },
 | |
|                 {
 | |
|                   "type": "LabeledArg",
 | |
|                   "label": {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "name": "pitch",
 | |
|                     "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": "yaw",
 | |
|                     "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": "rotate",
 | |
|                   "start": 0,
 | |
|                   "type": "Identifier"
 | |
|                 },
 | |
|                 "path": [],
 | |
|                 "start": 0,
 | |
|                 "type": "Name"
 | |
|               },
 | |
|               "commentStart": 0,
 | |
|               "end": 0,
 | |
|               "start": 0,
 | |
|               "type": "CallExpressionKw",
 | |
|               "type": "CallExpressionKw",
 | |
|               "unlabeled": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "start": 0,
 | |
|                 "type": "PipeSubstitution",
 | |
|                 "type": "PipeSubstitution"
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "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",
 | |
|                     "start": 0,
 | |
|                     "type": "Literal",
 | |
|                     "type": "Literal",
 | |
|                     "value": {
 | |
|                       "value": 0.0,
 | |
|                       "suffix": "None"
 | |
|                     }
 | |
|                   }
 | |
|                 },
 | |
|                 {
 | |
|                   "type": "LabeledArg",
 | |
|                   "label": {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "name": "z",
 | |
|                     "start": 0,
 | |
|                     "type": "Identifier"
 | |
|                   },
 | |
|                   "arg": {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "left": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "left": {
 | |
|                         "abs_path": false,
 | |
|                         "commentStart": 0,
 | |
|                         "end": 0,
 | |
|                         "name": {
 | |
|                           "commentStart": 0,
 | |
|                           "end": 0,
 | |
|                           "name": "flangeBaseThickness",
 | |
|                           "start": 0,
 | |
|                           "type": "Identifier"
 | |
|                         },
 | |
|                         "path": [],
 | |
|                         "start": 0,
 | |
|                         "type": "Name",
 | |
|                         "type": "Name"
 | |
|                       },
 | |
|                       "operator": "+",
 | |
|                       "right": {
 | |
|                         "abs_path": false,
 | |
|                         "commentStart": 0,
 | |
|                         "end": 0,
 | |
|                         "name": {
 | |
|                           "commentStart": 0,
 | |
|                           "end": 0,
 | |
|                           "name": "flangeFrontHeight",
 | |
|                           "start": 0,
 | |
|                           "type": "Identifier"
 | |
|                         },
 | |
|                         "path": [],
 | |
|                         "start": 0,
 | |
|                         "type": "Name",
 | |
|                         "type": "Name"
 | |
|                       },
 | |
|                       "start": 0,
 | |
|                       "type": "BinaryExpression",
 | |
|                       "type": "BinaryExpression"
 | |
|                     },
 | |
|                     "operator": "-",
 | |
|                     "right": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "raw": "0.5",
 | |
|                       "start": 0,
 | |
|                       "type": "Literal",
 | |
|                       "type": "Literal",
 | |
|                       "value": {
 | |
|                         "value": 0.5,
 | |
|                         "suffix": "None"
 | |
|                       }
 | |
|                     },
 | |
|                     "start": 0,
 | |
|                     "type": "BinaryExpression",
 | |
|                     "type": "BinaryExpression"
 | |
|                   }
 | |
|                 },
 | |
|                 {
 | |
|                   "type": "LabeledArg",
 | |
|                   "label": {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "name": "global",
 | |
|                     "start": 0,
 | |
|                     "type": "Identifier"
 | |
|                   },
 | |
|                   "arg": {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "raw": "true",
 | |
|                     "start": 0,
 | |
|                     "type": "Literal",
 | |
|                     "type": "Literal",
 | |
|                     "value": true
 | |
|                   }
 | |
|                 }
 | |
|               ],
 | |
|               "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": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "start": 0,
 | |
|                 "type": "PipeSubstitution",
 | |
|                 "type": "PipeSubstitution"
 | |
|               }
 | |
|             }
 | |
|           ],
 | |
|           "commentStart": 0,
 | |
|           "end": 0,
 | |
|           "start": 0,
 | |
|           "type": "PipeExpression",
 | |
|           "type": "PipeExpression"
 | |
|         },
 | |
|         "start": 0,
 | |
|         "type": "ExpressionStatement",
 | |
|         "type": "ExpressionStatement"
 | |
|       },
 | |
|       {
 | |
|         "commentStart": 0,
 | |
|         "end": 0,
 | |
|         "expression": {
 | |
|           "body": [
 | |
|             {
 | |
|               "callee": {
 | |
|                 "abs_path": false,
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "pipe",
 | |
|                   "start": 0,
 | |
|                   "type": "Identifier"
 | |
|                 },
 | |
|                 "path": [],
 | |
|                 "start": 0,
 | |
|                 "type": "Name"
 | |
|               },
 | |
|               "commentStart": 0,
 | |
|               "end": 0,
 | |
|               "start": 0,
 | |
|               "type": "CallExpressionKw",
 | |
|               "type": "CallExpressionKw",
 | |
|               "unlabeled": null
 | |
|             },
 | |
|             {
 | |
|               "arguments": [
 | |
|                 {
 | |
|                   "type": "LabeledArg",
 | |
|                   "label": {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "name": "roll",
 | |
|                     "start": 0,
 | |
|                     "type": "Identifier"
 | |
|                   },
 | |
|                   "arg": {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "raw": "90",
 | |
|                     "start": 0,
 | |
|                     "type": "Literal",
 | |
|                     "type": "Literal",
 | |
|                     "value": {
 | |
|                       "value": 90.0,
 | |
|                       "suffix": "None"
 | |
|                     }
 | |
|                   }
 | |
|                 },
 | |
|                 {
 | |
|                   "type": "LabeledArg",
 | |
|                   "label": {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "name": "pitch",
 | |
|                     "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": "yaw",
 | |
|                     "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": "rotate",
 | |
|                   "start": 0,
 | |
|                   "type": "Identifier"
 | |
|                 },
 | |
|                 "path": [],
 | |
|                 "start": 0,
 | |
|                 "type": "Name"
 | |
|               },
 | |
|               "commentStart": 0,
 | |
|               "end": 0,
 | |
|               "start": 0,
 | |
|               "type": "CallExpressionKw",
 | |
|               "type": "CallExpressionKw",
 | |
|               "unlabeled": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "start": 0,
 | |
|                 "type": "PipeSubstitution",
 | |
|                 "type": "PipeSubstitution"
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "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",
 | |
|                     "start": 0,
 | |
|                     "type": "Literal",
 | |
|                     "type": "Literal",
 | |
|                     "value": {
 | |
|                       "value": 0.0,
 | |
|                       "suffix": "None"
 | |
|                     }
 | |
|                   }
 | |
|                 },
 | |
|                 {
 | |
|                   "type": "LabeledArg",
 | |
|                   "label": {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "name": "z",
 | |
|                     "start": 0,
 | |
|                     "type": "Identifier"
 | |
|                   },
 | |
|                   "arg": {
 | |
|                     "argument": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "left": {
 | |
|                         "commentStart": 0,
 | |
|                         "end": 0,
 | |
|                         "left": {
 | |
|                           "commentStart": 0,
 | |
|                           "end": 0,
 | |
|                           "left": {
 | |
|                             "commentStart": 0,
 | |
|                             "end": 0,
 | |
|                             "left": {
 | |
|                               "commentStart": 0,
 | |
|                               "end": 0,
 | |
|                               "left": {
 | |
|                                 "abs_path": false,
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "name": {
 | |
|                                   "commentStart": 0,
 | |
|                                   "end": 0,
 | |
|                                   "name": "flangeBackHeight",
 | |
|                                   "start": 0,
 | |
|                                   "type": "Identifier"
 | |
|                                 },
 | |
|                                 "path": [],
 | |
|                                 "start": 0,
 | |
|                                 "type": "Name",
 | |
|                                 "type": "Name"
 | |
|                               },
 | |
|                               "operator": "*",
 | |
|                               "right": {
 | |
|                                 "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": {
 | |
|                               "abs_path": false,
 | |
|                               "commentStart": 0,
 | |
|                               "end": 0,
 | |
|                               "name": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "name": "gasketThickness",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "path": [],
 | |
|                               "start": 0,
 | |
|                               "type": "Name",
 | |
|                               "type": "Name"
 | |
|                             },
 | |
|                             "start": 0,
 | |
|                             "type": "BinaryExpression",
 | |
|                             "type": "BinaryExpression"
 | |
|                           },
 | |
|                           "operator": "+",
 | |
|                           "right": {
 | |
|                             "abs_path": false,
 | |
|                             "commentStart": 0,
 | |
|                             "end": 0,
 | |
|                             "name": {
 | |
|                               "commentStart": 0,
 | |
|                               "end": 0,
 | |
|                               "name": "flangeBaseThickness",
 | |
|                               "start": 0,
 | |
|                               "type": "Identifier"
 | |
|                             },
 | |
|                             "path": [],
 | |
|                             "start": 0,
 | |
|                             "type": "Name",
 | |
|                             "type": "Name"
 | |
|                           },
 | |
|                           "start": 0,
 | |
|                           "type": "BinaryExpression",
 | |
|                           "type": "BinaryExpression"
 | |
|                         },
 | |
|                         "operator": "+",
 | |
|                         "right": {
 | |
|                           "abs_path": false,
 | |
|                           "commentStart": 0,
 | |
|                           "end": 0,
 | |
|                           "name": {
 | |
|                             "commentStart": 0,
 | |
|                             "end": 0,
 | |
|                             "name": "flangeFrontHeight",
 | |
|                             "start": 0,
 | |
|                             "type": "Identifier"
 | |
|                           },
 | |
|                           "path": [],
 | |
|                           "start": 0,
 | |
|                           "type": "Name",
 | |
|                           "type": "Name"
 | |
|                         },
 | |
|                         "start": 0,
 | |
|                         "type": "BinaryExpression",
 | |
|                         "type": "BinaryExpression"
 | |
|                       },
 | |
|                       "operator": "-",
 | |
|                       "right": {
 | |
|                         "commentStart": 0,
 | |
|                         "end": 0,
 | |
|                         "raw": "0.5",
 | |
|                         "start": 0,
 | |
|                         "type": "Literal",
 | |
|                         "type": "Literal",
 | |
|                         "value": {
 | |
|                           "value": 0.5,
 | |
|                           "suffix": "None"
 | |
|                         }
 | |
|                       },
 | |
|                       "start": 0,
 | |
|                       "type": "BinaryExpression",
 | |
|                       "type": "BinaryExpression"
 | |
|                     },
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "operator": "-",
 | |
|                     "start": 0,
 | |
|                     "type": "UnaryExpression",
 | |
|                     "type": "UnaryExpression"
 | |
|                   }
 | |
|                 },
 | |
|                 {
 | |
|                   "type": "LabeledArg",
 | |
|                   "label": {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "name": "global",
 | |
|                     "start": 0,
 | |
|                     "type": "Identifier"
 | |
|                   },
 | |
|                   "arg": {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "raw": "true",
 | |
|                     "start": 0,
 | |
|                     "type": "Literal",
 | |
|                     "type": "Literal",
 | |
|                     "value": true
 | |
|                   }
 | |
|                 }
 | |
|               ],
 | |
|               "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": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "start": 0,
 | |
|                 "type": "PipeSubstitution",
 | |
|                 "type": "PipeSubstitution"
 | |
|               }
 | |
|             }
 | |
|           ],
 | |
|           "commentStart": 0,
 | |
|           "end": 0,
 | |
|           "start": 0,
 | |
|           "type": "PipeExpression",
 | |
|           "type": "PipeExpression"
 | |
|         },
 | |
|         "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": [
 | |
|           "// Pipe and Flange Assembly",
 | |
|           "// A crucial component in various piping systems, designed to facilitate the connection, disconnection, and access to piping for inspection, cleaning, and modifications. This assembly combines pipes (long cylindrical conduits) with flanges (plate-like fittings) to create a secure yet detachable joint.",
 | |
|           "",
 | |
|           "",
 | |
|           "// 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": {
 | |
|         "13": [
 | |
|           {
 | |
|             "commentStart": 0,
 | |
|             "end": 0,
 | |
|             "start": 0,
 | |
|             "type": "NonCodeNode",
 | |
|             "value": {
 | |
|               "type": "newLine"
 | |
|             }
 | |
|           }
 | |
|         ]
 | |
|       },
 | |
|       "startNodes": [
 | |
|         {
 | |
|           "commentStart": 0,
 | |
|           "end": 0,
 | |
|           "start": 0,
 | |
|           "type": "NonCodeNode",
 | |
|           "value": {
 | |
|             "type": "newLine"
 | |
|           }
 | |
|         }
 | |
|       ]
 | |
|     },
 | |
|     "start": 0
 | |
|   }
 | |
| }
 |