13168 lines
		
	
	
		
			455 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			13168 lines
		
	
	
		
			455 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| ---
 | |
| source: kcl-lib/src/simulation_tests.rs
 | |
| description: Result of parsing keyboard.kcl
 | |
| ---
 | |
| {
 | |
|   "Ok": {
 | |
|     "body": [
 | |
|       {
 | |
|         "commentStart": 0,
 | |
|         "declaration": {
 | |
|           "commentStart": 0,
 | |
|           "end": 0,
 | |
|           "id": {
 | |
|             "commentStart": 0,
 | |
|             "end": 0,
 | |
|             "name": "baseColor",
 | |
|             "start": 0,
 | |
|             "type": "Identifier"
 | |
|           },
 | |
|           "init": {
 | |
|             "commentStart": 0,
 | |
|             "end": 0,
 | |
|             "raw": "\"#0f0f0f\"",
 | |
|             "start": 0,
 | |
|             "type": "Literal",
 | |
|             "type": "Literal",
 | |
|             "value": "#0f0f0f"
 | |
|           },
 | |
|           "start": 0,
 | |
|           "type": "VariableDeclarator"
 | |
|         },
 | |
|         "end": 0,
 | |
|         "kind": "const",
 | |
|         "preComments": [
 | |
|           "// Define parameters"
 | |
|         ],
 | |
|         "start": 0,
 | |
|         "type": "VariableDeclaration",
 | |
|         "type": "VariableDeclaration"
 | |
|       },
 | |
|       {
 | |
|         "commentStart": 0,
 | |
|         "declaration": {
 | |
|           "commentStart": 0,
 | |
|           "end": 0,
 | |
|           "id": {
 | |
|             "commentStart": 0,
 | |
|             "end": 0,
 | |
|             "name": "highlightColor1",
 | |
|             "start": 0,
 | |
|             "type": "Identifier"
 | |
|           },
 | |
|           "init": {
 | |
|             "commentStart": 0,
 | |
|             "end": 0,
 | |
|             "raw": "\"#b0b0b0\"",
 | |
|             "start": 0,
 | |
|             "type": "Literal",
 | |
|             "type": "Literal",
 | |
|             "value": "#b0b0b0"
 | |
|           },
 | |
|           "start": 0,
 | |
|           "type": "VariableDeclarator"
 | |
|         },
 | |
|         "end": 0,
 | |
|         "kind": "const",
 | |
|         "start": 0,
 | |
|         "type": "VariableDeclaration",
 | |
|         "type": "VariableDeclaration"
 | |
|       },
 | |
|       {
 | |
|         "commentStart": 0,
 | |
|         "declaration": {
 | |
|           "commentStart": 0,
 | |
|           "end": 0,
 | |
|           "id": {
 | |
|             "commentStart": 0,
 | |
|             "end": 0,
 | |
|             "name": "highlightColor2",
 | |
|             "start": 0,
 | |
|             "type": "Identifier"
 | |
|           },
 | |
|           "init": {
 | |
|             "commentStart": 0,
 | |
|             "end": 0,
 | |
|             "raw": "\"#23af93\"",
 | |
|             "start": 0,
 | |
|             "type": "Literal",
 | |
|             "type": "Literal",
 | |
|             "value": "#23af93"
 | |
|           },
 | |
|           "start": 0,
 | |
|           "type": "VariableDeclarator"
 | |
|         },
 | |
|         "end": 0,
 | |
|         "kind": "const",
 | |
|         "start": 0,
 | |
|         "type": "VariableDeclaration",
 | |
|         "type": "VariableDeclaration"
 | |
|       },
 | |
|       {
 | |
|         "commentStart": 0,
 | |
|         "declaration": {
 | |
|           "commentStart": 0,
 | |
|           "end": 0,
 | |
|           "id": {
 | |
|             "commentStart": 0,
 | |
|             "end": 0,
 | |
|             "name": "keyHeight",
 | |
|             "start": 0,
 | |
|             "type": "Identifier"
 | |
|           },
 | |
|           "init": {
 | |
|             "commentStart": 0,
 | |
|             "end": 0,
 | |
|             "raw": "0.8",
 | |
|             "start": 0,
 | |
|             "type": "Literal",
 | |
|             "type": "Literal",
 | |
|             "value": {
 | |
|               "value": 0.8,
 | |
|               "suffix": "None"
 | |
|             }
 | |
|           },
 | |
|           "start": 0,
 | |
|           "type": "VariableDeclarator"
 | |
|         },
 | |
|         "end": 0,
 | |
|         "kind": "const",
 | |
|         "start": 0,
 | |
|         "type": "VariableDeclaration",
 | |
|         "type": "VariableDeclaration"
 | |
|       },
 | |
|       {
 | |
|         "commentStart": 0,
 | |
|         "declaration": {
 | |
|           "commentStart": 0,
 | |
|           "end": 0,
 | |
|           "id": {
 | |
|             "commentStart": 0,
 | |
|             "end": 0,
 | |
|             "name": "keyDepth",
 | |
|             "start": 0,
 | |
|             "type": "Identifier"
 | |
|           },
 | |
|           "init": {
 | |
|             "commentStart": 0,
 | |
|             "end": 0,
 | |
|             "raw": "0.1",
 | |
|             "start": 0,
 | |
|             "type": "Literal",
 | |
|             "type": "Literal",
 | |
|             "value": {
 | |
|               "value": 0.1,
 | |
|               "suffix": "None"
 | |
|             }
 | |
|           },
 | |
|           "start": 0,
 | |
|           "type": "VariableDeclarator"
 | |
|         },
 | |
|         "end": 0,
 | |
|         "kind": "const",
 | |
|         "start": 0,
 | |
|         "type": "VariableDeclaration",
 | |
|         "type": "VariableDeclaration"
 | |
|       },
 | |
|       {
 | |
|         "commentStart": 0,
 | |
|         "declaration": {
 | |
|           "commentStart": 0,
 | |
|           "end": 0,
 | |
|           "id": {
 | |
|             "commentStart": 0,
 | |
|             "end": 0,
 | |
|             "name": "spacing",
 | |
|             "start": 0,
 | |
|             "type": "Identifier"
 | |
|           },
 | |
|           "init": {
 | |
|             "commentStart": 0,
 | |
|             "end": 0,
 | |
|             "raw": "0.1",
 | |
|             "start": 0,
 | |
|             "type": "Literal",
 | |
|             "type": "Literal",
 | |
|             "value": {
 | |
|               "value": 0.1,
 | |
|               "suffix": "None"
 | |
|             }
 | |
|           },
 | |
|           "start": 0,
 | |
|           "type": "VariableDeclarator"
 | |
|         },
 | |
|         "end": 0,
 | |
|         "kind": "const",
 | |
|         "start": 0,
 | |
|         "type": "VariableDeclaration",
 | |
|         "type": "VariableDeclaration"
 | |
|       },
 | |
|       {
 | |
|         "commentStart": 0,
 | |
|         "declaration": {
 | |
|           "commentStart": 0,
 | |
|           "end": 0,
 | |
|           "id": {
 | |
|             "commentStart": 0,
 | |
|             "end": 0,
 | |
|             "name": "row1",
 | |
|             "start": 0,
 | |
|             "type": "Identifier"
 | |
|           },
 | |
|           "init": {
 | |
|             "commentStart": 0,
 | |
|             "end": 0,
 | |
|             "left": {
 | |
|               "abs_path": false,
 | |
|               "commentStart": 0,
 | |
|               "end": 0,
 | |
|               "name": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "spacing",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "path": [],
 | |
|               "start": 0,
 | |
|               "type": "Name",
 | |
|               "type": "Name"
 | |
|             },
 | |
|             "operator": "*",
 | |
|             "right": {
 | |
|               "commentStart": 0,
 | |
|               "end": 0,
 | |
|               "raw": "3",
 | |
|               "start": 0,
 | |
|               "type": "Literal",
 | |
|               "type": "Literal",
 | |
|               "value": {
 | |
|                 "value": 3.0,
 | |
|                 "suffix": "None"
 | |
|               }
 | |
|             },
 | |
|             "start": 0,
 | |
|             "type": "BinaryExpression",
 | |
|             "type": "BinaryExpression"
 | |
|           },
 | |
|           "start": 0,
 | |
|           "type": "VariableDeclarator"
 | |
|         },
 | |
|         "end": 0,
 | |
|         "kind": "const",
 | |
|         "start": 0,
 | |
|         "type": "VariableDeclaration",
 | |
|         "type": "VariableDeclaration"
 | |
|       },
 | |
|       {
 | |
|         "commentStart": 0,
 | |
|         "declaration": {
 | |
|           "commentStart": 0,
 | |
|           "end": 0,
 | |
|           "id": {
 | |
|             "commentStart": 0,
 | |
|             "end": 0,
 | |
|             "name": "row2",
 | |
|             "start": 0,
 | |
|             "type": "Identifier"
 | |
|           },
 | |
|           "init": {
 | |
|             "commentStart": 0,
 | |
|             "end": 0,
 | |
|             "left": {
 | |
|               "commentStart": 0,
 | |
|               "end": 0,
 | |
|               "left": {
 | |
|                 "abs_path": false,
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "row1",
 | |
|                   "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": "keyHeight",
 | |
|                   "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": "spacing",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "path": [],
 | |
|               "start": 0,
 | |
|               "type": "Name",
 | |
|               "type": "Name"
 | |
|             },
 | |
|             "start": 0,
 | |
|             "type": "BinaryExpression",
 | |
|             "type": "BinaryExpression"
 | |
|           },
 | |
|           "start": 0,
 | |
|           "type": "VariableDeclarator"
 | |
|         },
 | |
|         "end": 0,
 | |
|         "kind": "const",
 | |
|         "start": 0,
 | |
|         "type": "VariableDeclaration",
 | |
|         "type": "VariableDeclaration"
 | |
|       },
 | |
|       {
 | |
|         "commentStart": 0,
 | |
|         "declaration": {
 | |
|           "commentStart": 0,
 | |
|           "end": 0,
 | |
|           "id": {
 | |
|             "commentStart": 0,
 | |
|             "end": 0,
 | |
|             "name": "row3",
 | |
|             "start": 0,
 | |
|             "type": "Identifier"
 | |
|           },
 | |
|           "init": {
 | |
|             "commentStart": 0,
 | |
|             "end": 0,
 | |
|             "left": {
 | |
|               "commentStart": 0,
 | |
|               "end": 0,
 | |
|               "left": {
 | |
|                 "abs_path": false,
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "row2",
 | |
|                   "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": "keyHeight",
 | |
|                   "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": "spacing",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "path": [],
 | |
|               "start": 0,
 | |
|               "type": "Name",
 | |
|               "type": "Name"
 | |
|             },
 | |
|             "start": 0,
 | |
|             "type": "BinaryExpression",
 | |
|             "type": "BinaryExpression"
 | |
|           },
 | |
|           "start": 0,
 | |
|           "type": "VariableDeclarator"
 | |
|         },
 | |
|         "end": 0,
 | |
|         "kind": "const",
 | |
|         "start": 0,
 | |
|         "type": "VariableDeclaration",
 | |
|         "type": "VariableDeclaration"
 | |
|       },
 | |
|       {
 | |
|         "commentStart": 0,
 | |
|         "declaration": {
 | |
|           "commentStart": 0,
 | |
|           "end": 0,
 | |
|           "id": {
 | |
|             "commentStart": 0,
 | |
|             "end": 0,
 | |
|             "name": "row4",
 | |
|             "start": 0,
 | |
|             "type": "Identifier"
 | |
|           },
 | |
|           "init": {
 | |
|             "commentStart": 0,
 | |
|             "end": 0,
 | |
|             "left": {
 | |
|               "commentStart": 0,
 | |
|               "end": 0,
 | |
|               "left": {
 | |
|                 "abs_path": false,
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "row3",
 | |
|                   "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": "keyHeight",
 | |
|                   "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": "spacing",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "path": [],
 | |
|               "start": 0,
 | |
|               "type": "Name",
 | |
|               "type": "Name"
 | |
|             },
 | |
|             "start": 0,
 | |
|             "type": "BinaryExpression",
 | |
|             "type": "BinaryExpression"
 | |
|           },
 | |
|           "start": 0,
 | |
|           "type": "VariableDeclarator"
 | |
|         },
 | |
|         "end": 0,
 | |
|         "kind": "const",
 | |
|         "start": 0,
 | |
|         "type": "VariableDeclaration",
 | |
|         "type": "VariableDeclaration"
 | |
|       },
 | |
|       {
 | |
|         "commentStart": 0,
 | |
|         "declaration": {
 | |
|           "commentStart": 0,
 | |
|           "end": 0,
 | |
|           "id": {
 | |
|             "commentStart": 0,
 | |
|             "end": 0,
 | |
|             "name": "row5",
 | |
|             "start": 0,
 | |
|             "type": "Identifier"
 | |
|           },
 | |
|           "init": {
 | |
|             "commentStart": 0,
 | |
|             "end": 0,
 | |
|             "left": {
 | |
|               "commentStart": 0,
 | |
|               "end": 0,
 | |
|               "left": {
 | |
|                 "abs_path": false,
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "row4",
 | |
|                   "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": "keyHeight",
 | |
|                   "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": "spacing",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "path": [],
 | |
|               "start": 0,
 | |
|               "type": "Name",
 | |
|               "type": "Name"
 | |
|             },
 | |
|             "start": 0,
 | |
|             "type": "BinaryExpression",
 | |
|             "type": "BinaryExpression"
 | |
|           },
 | |
|           "start": 0,
 | |
|           "type": "VariableDeclarator"
 | |
|         },
 | |
|         "end": 0,
 | |
|         "kind": "const",
 | |
|         "start": 0,
 | |
|         "type": "VariableDeclaration",
 | |
|         "type": "VariableDeclaration"
 | |
|       },
 | |
|       {
 | |
|         "commentStart": 0,
 | |
|         "declaration": {
 | |
|           "commentStart": 0,
 | |
|           "end": 0,
 | |
|           "id": {
 | |
|             "commentStart": 0,
 | |
|             "end": 0,
 | |
|             "name": "row6",
 | |
|             "start": 0,
 | |
|             "type": "Identifier"
 | |
|           },
 | |
|           "init": {
 | |
|             "commentStart": 0,
 | |
|             "end": 0,
 | |
|             "left": {
 | |
|               "commentStart": 0,
 | |
|               "end": 0,
 | |
|               "left": {
 | |
|                 "abs_path": false,
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "row5",
 | |
|                   "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": "keyHeight",
 | |
|                   "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": "spacing",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "path": [],
 | |
|               "start": 0,
 | |
|               "type": "Name",
 | |
|               "type": "Name"
 | |
|             },
 | |
|             "start": 0,
 | |
|             "type": "BinaryExpression",
 | |
|             "type": "BinaryExpression"
 | |
|           },
 | |
|           "start": 0,
 | |
|           "type": "VariableDeclarator"
 | |
|         },
 | |
|         "end": 0,
 | |
|         "kind": "const",
 | |
|         "start": 0,
 | |
|         "type": "VariableDeclaration",
 | |
|         "type": "VariableDeclaration"
 | |
|       },
 | |
|       {
 | |
|         "commentStart": 0,
 | |
|         "declaration": {
 | |
|           "commentStart": 0,
 | |
|           "end": 0,
 | |
|           "id": {
 | |
|             "commentStart": 0,
 | |
|             "end": 0,
 | |
|             "name": "sketch001",
 | |
|             "start": 0,
 | |
|             "type": "Identifier"
 | |
|           },
 | |
|           "init": {
 | |
|             "body": [
 | |
|               {
 | |
|                 "callee": {
 | |
|                   "abs_path": false,
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "name": "startSketchOn",
 | |
|                     "start": 0,
 | |
|                     "type": "Identifier"
 | |
|                   },
 | |
|                   "path": [],
 | |
|                   "start": 0,
 | |
|                   "type": "Name"
 | |
|                 },
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "start": 0,
 | |
|                 "type": "CallExpressionKw",
 | |
|                 "type": "CallExpressionKw",
 | |
|                 "unlabeled": {
 | |
|                   "abs_path": false,
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "name": "YZ",
 | |
|                     "start": 0,
 | |
|                     "type": "Identifier"
 | |
|                   },
 | |
|                   "path": [],
 | |
|                   "start": 0,
 | |
|                   "type": "Name",
 | |
|                   "type": "Name"
 | |
|                 }
 | |
|               },
 | |
|               {
 | |
|                 "arguments": [
 | |
|                   {
 | |
|                     "type": "LabeledArg",
 | |
|                     "label": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "name": "at",
 | |
|                       "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"
 | |
|                           }
 | |
|                         }
 | |
|                       ],
 | |
|                       "end": 0,
 | |
|                       "start": 0,
 | |
|                       "type": "ArrayExpression",
 | |
|                       "type": "ArrayExpression"
 | |
|                     }
 | |
|                   }
 | |
|                 ],
 | |
|                 "callee": {
 | |
|                   "abs_path": false,
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "name": "startProfile",
 | |
|                     "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": "end",
 | |
|                       "start": 0,
 | |
|                       "type": "Identifier"
 | |
|                     },
 | |
|                     "arg": {
 | |
|                       "commentStart": 0,
 | |
|                       "elements": [
 | |
|                         {
 | |
|                           "argument": {
 | |
|                             "commentStart": 0,
 | |
|                             "end": 0,
 | |
|                             "raw": "0.14",
 | |
|                             "start": 0,
 | |
|                             "type": "Literal",
 | |
|                             "type": "Literal",
 | |
|                             "value": {
 | |
|                               "value": 0.14,
 | |
|                               "suffix": "None"
 | |
|                             }
 | |
|                           },
 | |
|                           "commentStart": 0,
 | |
|                           "end": 0,
 | |
|                           "operator": "-",
 | |
|                           "start": 0,
 | |
|                           "type": "UnaryExpression",
 | |
|                           "type": "UnaryExpression"
 | |
|                         },
 | |
|                         {
 | |
|                           "commentStart": 0,
 | |
|                           "end": 0,
 | |
|                           "raw": "0.68",
 | |
|                           "start": 0,
 | |
|                           "type": "Literal",
 | |
|                           "type": "Literal",
 | |
|                           "value": {
 | |
|                             "value": 0.68,
 | |
|                             "suffix": "None"
 | |
|                           }
 | |
|                         }
 | |
|                       ],
 | |
|                       "end": 0,
 | |
|                       "start": 0,
 | |
|                       "type": "ArrayExpression",
 | |
|                       "type": "ArrayExpression"
 | |
|                     }
 | |
|                   },
 | |
|                   {
 | |
|                     "type": "LabeledArg",
 | |
|                     "label": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "name": "tag",
 | |
|                       "start": 0,
 | |
|                       "type": "Identifier"
 | |
|                     },
 | |
|                     "arg": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "start": 0,
 | |
|                       "type": "TagDeclarator",
 | |
|                       "type": "TagDeclarator",
 | |
|                       "value": "seg01"
 | |
|                     }
 | |
|                   }
 | |
|                 ],
 | |
|                 "callee": {
 | |
|                   "abs_path": false,
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "name": "line",
 | |
|                     "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": "angle",
 | |
|                       "start": 0,
 | |
|                       "type": "Identifier"
 | |
|                     },
 | |
|                     "arg": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "raw": "7",
 | |
|                       "start": 0,
 | |
|                       "type": "Literal",
 | |
|                       "type": "Literal",
 | |
|                       "value": {
 | |
|                         "value": 7.0,
 | |
|                         "suffix": "None"
 | |
|                       }
 | |
|                     }
 | |
|                   },
 | |
|                   {
 | |
|                     "type": "LabeledArg",
 | |
|                     "label": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "name": "length",
 | |
|                       "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": "row6",
 | |
|                             "start": 0,
 | |
|                             "type": "Identifier"
 | |
|                           },
 | |
|                           "path": [],
 | |
|                           "start": 0,
 | |
|                           "type": "Name",
 | |
|                           "type": "Name"
 | |
|                         },
 | |
|                         "operator": "+",
 | |
|                         "right": {
 | |
|                           "commentStart": 0,
 | |
|                           "end": 0,
 | |
|                           "left": {
 | |
|                             "commentStart": 0,
 | |
|                             "end": 0,
 | |
|                             "raw": "3",
 | |
|                             "start": 0,
 | |
|                             "type": "Literal",
 | |
|                             "type": "Literal",
 | |
|                             "value": {
 | |
|                               "value": 3.0,
 | |
|                               "suffix": "None"
 | |
|                             }
 | |
|                           },
 | |
|                           "operator": "*",
 | |
|                           "right": {
 | |
|                             "abs_path": false,
 | |
|                             "commentStart": 0,
 | |
|                             "end": 0,
 | |
|                             "name": {
 | |
|                               "commentStart": 0,
 | |
|                               "end": 0,
 | |
|                               "name": "spacing",
 | |
|                               "start": 0,
 | |
|                               "type": "Identifier"
 | |
|                             },
 | |
|                             "path": [],
 | |
|                             "start": 0,
 | |
|                             "type": "Name",
 | |
|                             "type": "Name"
 | |
|                           },
 | |
|                           "start": 0,
 | |
|                           "type": "BinaryExpression",
 | |
|                           "type": "BinaryExpression"
 | |
|                         },
 | |
|                         "start": 0,
 | |
|                         "type": "BinaryExpression",
 | |
|                         "type": "BinaryExpression"
 | |
|                       },
 | |
|                       "operator": "+",
 | |
|                       "right": {
 | |
|                         "abs_path": false,
 | |
|                         "commentStart": 0,
 | |
|                         "end": 0,
 | |
|                         "name": {
 | |
|                           "commentStart": 0,
 | |
|                           "end": 0,
 | |
|                           "name": "keyHeight",
 | |
|                           "start": 0,
 | |
|                           "type": "Identifier"
 | |
|                         },
 | |
|                         "path": [],
 | |
|                         "start": 0,
 | |
|                         "type": "Name",
 | |
|                         "type": "Name"
 | |
|                       },
 | |
|                       "start": 0,
 | |
|                       "type": "BinaryExpression",
 | |
|                       "type": "BinaryExpression"
 | |
|                     }
 | |
|                   },
 | |
|                   {
 | |
|                     "type": "LabeledArg",
 | |
|                     "label": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "name": "tag",
 | |
|                       "start": 0,
 | |
|                       "type": "Identifier"
 | |
|                     },
 | |
|                     "arg": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "start": 0,
 | |
|                       "type": "TagDeclarator",
 | |
|                       "type": "TagDeclarator",
 | |
|                       "value": "seg02"
 | |
|                     }
 | |
|                   }
 | |
|                 ],
 | |
|                 "callee": {
 | |
|                   "abs_path": false,
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "name": "angledLine",
 | |
|                     "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": "endAbsolute",
 | |
|                       "start": 0,
 | |
|                       "type": "Identifier"
 | |
|                     },
 | |
|                     "arg": {
 | |
|                       "commentStart": 0,
 | |
|                       "elements": [
 | |
|                         {
 | |
|                           "commentStart": 0,
 | |
|                           "end": 0,
 | |
|                           "raw": "5.13",
 | |
|                           "start": 0,
 | |
|                           "type": "Literal",
 | |
|                           "type": "Literal",
 | |
|                           "value": {
 | |
|                             "value": 5.13,
 | |
|                             "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": "tag",
 | |
|                       "start": 0,
 | |
|                       "type": "Identifier"
 | |
|                     },
 | |
|                     "arg": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "start": 0,
 | |
|                       "type": "TagDeclarator",
 | |
|                       "type": "TagDeclarator",
 | |
|                       "value": "seg03"
 | |
|                     }
 | |
|                   }
 | |
|                 ],
 | |
|                 "callee": {
 | |
|                   "abs_path": false,
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "name": "line",
 | |
|                     "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": "endAbsolute",
 | |
|                       "start": 0,
 | |
|                       "type": "Identifier"
 | |
|                     },
 | |
|                     "arg": {
 | |
|                       "commentStart": 0,
 | |
|                       "elements": [
 | |
|                         {
 | |
|                           "callee": {
 | |
|                             "abs_path": false,
 | |
|                             "commentStart": 0,
 | |
|                             "end": 0,
 | |
|                             "name": {
 | |
|                               "commentStart": 0,
 | |
|                               "end": 0,
 | |
|                               "name": "profileStartX",
 | |
|                               "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"
 | |
|                           }
 | |
|                         },
 | |
|                         {
 | |
|                           "callee": {
 | |
|                             "abs_path": false,
 | |
|                             "commentStart": 0,
 | |
|                             "end": 0,
 | |
|                             "name": {
 | |
|                               "commentStart": 0,
 | |
|                               "end": 0,
 | |
|                               "name": "profileStartY",
 | |
|                               "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"
 | |
|                           }
 | |
|                         }
 | |
|                       ],
 | |
|                       "end": 0,
 | |
|                       "start": 0,
 | |
|                       "type": "ArrayExpression",
 | |
|                       "type": "ArrayExpression"
 | |
|                     }
 | |
|                   },
 | |
|                   {
 | |
|                     "type": "LabeledArg",
 | |
|                     "label": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "name": "tag",
 | |
|                       "start": 0,
 | |
|                       "type": "Identifier"
 | |
|                     },
 | |
|                     "arg": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "start": 0,
 | |
|                       "type": "TagDeclarator",
 | |
|                       "type": "TagDeclarator",
 | |
|                       "value": "seg04"
 | |
|                     }
 | |
|                   }
 | |
|                 ],
 | |
|                 "callee": {
 | |
|                   "abs_path": false,
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "name": "line",
 | |
|                     "start": 0,
 | |
|                     "type": "Identifier"
 | |
|                   },
 | |
|                   "path": [],
 | |
|                   "start": 0,
 | |
|                   "type": "Name"
 | |
|                 },
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "start": 0,
 | |
|                 "type": "CallExpressionKw",
 | |
|                 "type": "CallExpressionKw",
 | |
|                 "unlabeled": null
 | |
|               },
 | |
|               {
 | |
|                 "callee": {
 | |
|                   "abs_path": false,
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "name": "close",
 | |
|                     "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": "length",
 | |
|                       "start": 0,
 | |
|                       "type": "Identifier"
 | |
|                     },
 | |
|                     "arg": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "raw": "13.6",
 | |
|                       "start": 0,
 | |
|                       "type": "Literal",
 | |
|                       "type": "Literal",
 | |
|                       "value": {
 | |
|                         "value": 13.6,
 | |
|                         "suffix": "None"
 | |
|                       }
 | |
|                     }
 | |
|                   }
 | |
|                 ],
 | |
|                 "callee": {
 | |
|                   "abs_path": false,
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "name": "extrude",
 | |
|                     "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": "color",
 | |
|                       "start": 0,
 | |
|                       "type": "Identifier"
 | |
|                     },
 | |
|                     "arg": {
 | |
|                       "abs_path": false,
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "name": {
 | |
|                         "commentStart": 0,
 | |
|                         "end": 0,
 | |
|                         "name": "baseColor",
 | |
|                         "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": "appearance",
 | |
|                     "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": "radius",
 | |
|                       "start": 0,
 | |
|                       "type": "Identifier"
 | |
|                     },
 | |
|                     "arg": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "raw": ".6",
 | |
|                       "start": 0,
 | |
|                       "type": "Literal",
 | |
|                       "type": "Literal",
 | |
|                       "value": {
 | |
|                         "value": 0.6,
 | |
|                         "suffix": "None"
 | |
|                       }
 | |
|                     }
 | |
|                   },
 | |
|                   {
 | |
|                     "type": "LabeledArg",
 | |
|                     "label": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "name": "tags",
 | |
|                       "start": 0,
 | |
|                       "type": "Identifier"
 | |
|                     },
 | |
|                     "arg": {
 | |
|                       "commentStart": 0,
 | |
|                       "elements": [
 | |
|                         {
 | |
|                           "callee": {
 | |
|                             "abs_path": false,
 | |
|                             "commentStart": 0,
 | |
|                             "end": 0,
 | |
|                             "name": {
 | |
|                               "commentStart": 0,
 | |
|                               "end": 0,
 | |
|                               "name": "getOppositeEdge",
 | |
|                               "start": 0,
 | |
|                               "type": "Identifier"
 | |
|                             },
 | |
|                             "path": [],
 | |
|                             "start": 0,
 | |
|                             "type": "Name"
 | |
|                           },
 | |
|                           "commentStart": 0,
 | |
|                           "end": 0,
 | |
|                           "start": 0,
 | |
|                           "type": "CallExpressionKw",
 | |
|                           "type": "CallExpressionKw",
 | |
|                           "unlabeled": {
 | |
|                             "abs_path": false,
 | |
|                             "commentStart": 0,
 | |
|                             "end": 0,
 | |
|                             "name": {
 | |
|                               "commentStart": 0,
 | |
|                               "end": 0,
 | |
|                               "name": "seg01",
 | |
|                               "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": "getOppositeEdge",
 | |
|                               "start": 0,
 | |
|                               "type": "Identifier"
 | |
|                             },
 | |
|                             "path": [],
 | |
|                             "start": 0,
 | |
|                             "type": "Name"
 | |
|                           },
 | |
|                           "commentStart": 0,
 | |
|                           "end": 0,
 | |
|                           "start": 0,
 | |
|                           "type": "CallExpressionKw",
 | |
|                           "type": "CallExpressionKw",
 | |
|                           "unlabeled": {
 | |
|                             "abs_path": false,
 | |
|                             "commentStart": 0,
 | |
|                             "end": 0,
 | |
|                             "name": {
 | |
|                               "commentStart": 0,
 | |
|                               "end": 0,
 | |
|                               "name": "seg03",
 | |
|                               "start": 0,
 | |
|                               "type": "Identifier"
 | |
|                             },
 | |
|                             "path": [],
 | |
|                             "start": 0,
 | |
|                             "type": "Name",
 | |
|                             "type": "Name"
 | |
|                           }
 | |
|                         },
 | |
|                         {
 | |
|                           "abs_path": false,
 | |
|                           "commentStart": 0,
 | |
|                           "end": 0,
 | |
|                           "name": {
 | |
|                             "commentStart": 0,
 | |
|                             "end": 0,
 | |
|                             "name": "seg01",
 | |
|                             "start": 0,
 | |
|                             "type": "Identifier"
 | |
|                           },
 | |
|                           "path": [],
 | |
|                           "start": 0,
 | |
|                           "type": "Name",
 | |
|                           "type": "Name"
 | |
|                         },
 | |
|                         {
 | |
|                           "abs_path": false,
 | |
|                           "commentStart": 0,
 | |
|                           "end": 0,
 | |
|                           "name": {
 | |
|                             "commentStart": 0,
 | |
|                             "end": 0,
 | |
|                             "name": "seg03",
 | |
|                             "start": 0,
 | |
|                             "type": "Identifier"
 | |
|                           },
 | |
|                           "path": [],
 | |
|                           "start": 0,
 | |
|                           "type": "Name",
 | |
|                           "type": "Name"
 | |
|                         }
 | |
|                       ],
 | |
|                       "end": 0,
 | |
|                       "start": 0,
 | |
|                       "type": "ArrayExpression",
 | |
|                       "type": "ArrayExpression"
 | |
|                     }
 | |
|                   }
 | |
|                 ],
 | |
|                 "callee": {
 | |
|                   "abs_path": false,
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "name": "fillet",
 | |
|                     "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": {
 | |
|                 "9": [
 | |
|                   {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "start": 0,
 | |
|                     "type": "NonCodeNode",
 | |
|                     "value": {
 | |
|                       "type": "newLineBlockComment",
 | |
|                       "value": "Create a short cylindrical foot at each corner of the keyboard",
 | |
|                       "style": "line"
 | |
|                     }
 | |
|                   }
 | |
|                 ]
 | |
|               },
 | |
|               "startNodes": []
 | |
|             },
 | |
|             "start": 0,
 | |
|             "type": "PipeExpression",
 | |
|             "type": "PipeExpression"
 | |
|           },
 | |
|           "start": 0,
 | |
|           "type": "VariableDeclarator"
 | |
|         },
 | |
|         "end": 0,
 | |
|         "kind": "const",
 | |
|         "preComments": [
 | |
|           "",
 | |
|           "",
 | |
|           "// Sketch the side profile of the keyboard base and extrude to total width"
 | |
|         ],
 | |
|         "start": 0,
 | |
|         "type": "VariableDeclaration",
 | |
|         "type": "VariableDeclaration"
 | |
|       },
 | |
|       {
 | |
|         "commentStart": 0,
 | |
|         "declaration": {
 | |
|           "commentStart": 0,
 | |
|           "end": 0,
 | |
|           "id": {
 | |
|             "commentStart": 0,
 | |
|             "end": 0,
 | |
|             "name": "sketch003",
 | |
|             "start": 0,
 | |
|             "type": "Identifier"
 | |
|           },
 | |
|           "init": {
 | |
|             "arguments": [
 | |
|               {
 | |
|                 "type": "LabeledArg",
 | |
|                 "label": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "face",
 | |
|                   "start": 0,
 | |
|                   "type": "Identifier"
 | |
|                 },
 | |
|                 "arg": {
 | |
|                   "abs_path": false,
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "name": "seg04",
 | |
|                     "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": "startSketchOn",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "path": [],
 | |
|               "start": 0,
 | |
|               "type": "Name"
 | |
|             },
 | |
|             "commentStart": 0,
 | |
|             "end": 0,
 | |
|             "start": 0,
 | |
|             "type": "CallExpressionKw",
 | |
|             "type": "CallExpressionKw",
 | |
|             "unlabeled": {
 | |
|               "abs_path": false,
 | |
|               "commentStart": 0,
 | |
|               "end": 0,
 | |
|               "name": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "sketch001",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "path": [],
 | |
|               "start": 0,
 | |
|               "type": "Name",
 | |
|               "type": "Name"
 | |
|             }
 | |
|           },
 | |
|           "start": 0,
 | |
|           "type": "VariableDeclarator"
 | |
|         },
 | |
|         "end": 0,
 | |
|         "kind": "const",
 | |
|         "start": 0,
 | |
|         "type": "VariableDeclaration",
 | |
|         "type": "VariableDeclaration"
 | |
|       },
 | |
|       {
 | |
|         "commentStart": 0,
 | |
|         "declaration": {
 | |
|           "commentStart": 0,
 | |
|           "end": 0,
 | |
|           "id": {
 | |
|             "commentStart": 0,
 | |
|             "end": 0,
 | |
|             "name": "profile001",
 | |
|             "start": 0,
 | |
|             "type": "Identifier"
 | |
|           },
 | |
|           "init": {
 | |
|             "arguments": [
 | |
|               {
 | |
|                 "type": "LabeledArg",
 | |
|                 "label": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "center",
 | |
|                   "start": 0,
 | |
|                   "type": "Identifier"
 | |
|                 },
 | |
|                 "arg": {
 | |
|                   "commentStart": 0,
 | |
|                   "elements": [
 | |
|                     {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "raw": "0.75",
 | |
|                       "start": 0,
 | |
|                       "type": "Literal",
 | |
|                       "type": "Literal",
 | |
|                       "value": {
 | |
|                         "value": 0.75,
 | |
|                         "suffix": "None"
 | |
|                       }
 | |
|                     },
 | |
|                     {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "raw": "0.75",
 | |
|                       "start": 0,
 | |
|                       "type": "Literal",
 | |
|                       "type": "Literal",
 | |
|                       "value": {
 | |
|                         "value": 0.75,
 | |
|                         "suffix": "None"
 | |
|                       }
 | |
|                     }
 | |
|                   ],
 | |
|                   "end": 0,
 | |
|                   "start": 0,
 | |
|                   "type": "ArrayExpression",
 | |
|                   "type": "ArrayExpression"
 | |
|                 }
 | |
|               },
 | |
|               {
 | |
|                 "type": "LabeledArg",
 | |
|                 "label": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "radius",
 | |
|                   "start": 0,
 | |
|                   "type": "Identifier"
 | |
|                 },
 | |
|                 "arg": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "raw": "0.4",
 | |
|                   "start": 0,
 | |
|                   "type": "Literal",
 | |
|                   "type": "Literal",
 | |
|                   "value": {
 | |
|                     "value": 0.4,
 | |
|                     "suffix": "None"
 | |
|                   }
 | |
|                 }
 | |
|               }
 | |
|             ],
 | |
|             "callee": {
 | |
|               "abs_path": false,
 | |
|               "commentStart": 0,
 | |
|               "end": 0,
 | |
|               "name": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "circle",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "path": [],
 | |
|               "start": 0,
 | |
|               "type": "Name"
 | |
|             },
 | |
|             "commentStart": 0,
 | |
|             "end": 0,
 | |
|             "start": 0,
 | |
|             "type": "CallExpressionKw",
 | |
|             "type": "CallExpressionKw",
 | |
|             "unlabeled": {
 | |
|               "abs_path": false,
 | |
|               "commentStart": 0,
 | |
|               "end": 0,
 | |
|               "name": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "sketch003",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "path": [],
 | |
|               "start": 0,
 | |
|               "type": "Name",
 | |
|               "type": "Name"
 | |
|             }
 | |
|           },
 | |
|           "start": 0,
 | |
|           "type": "VariableDeclarator"
 | |
|         },
 | |
|         "end": 0,
 | |
|         "kind": "const",
 | |
|         "start": 0,
 | |
|         "type": "VariableDeclaration",
 | |
|         "type": "VariableDeclaration"
 | |
|       },
 | |
|       {
 | |
|         "commentStart": 0,
 | |
|         "declaration": {
 | |
|           "commentStart": 0,
 | |
|           "end": 0,
 | |
|           "id": {
 | |
|             "commentStart": 0,
 | |
|             "end": 0,
 | |
|             "name": "profile003",
 | |
|             "start": 0,
 | |
|             "type": "Identifier"
 | |
|           },
 | |
|           "init": {
 | |
|             "arguments": [
 | |
|               {
 | |
|                 "type": "LabeledArg",
 | |
|                 "label": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "center",
 | |
|                   "start": 0,
 | |
|                   "type": "Identifier"
 | |
|                 },
 | |
|                 "arg": {
 | |
|                   "commentStart": 0,
 | |
|                   "elements": [
 | |
|                     {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "raw": "4.4",
 | |
|                       "start": 0,
 | |
|                       "type": "Literal",
 | |
|                       "type": "Literal",
 | |
|                       "value": {
 | |
|                         "value": 4.4,
 | |
|                         "suffix": "None"
 | |
|                       }
 | |
|                     },
 | |
|                     {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "raw": "0.75",
 | |
|                       "start": 0,
 | |
|                       "type": "Literal",
 | |
|                       "type": "Literal",
 | |
|                       "value": {
 | |
|                         "value": 0.75,
 | |
|                         "suffix": "None"
 | |
|                       }
 | |
|                     }
 | |
|                   ],
 | |
|                   "end": 0,
 | |
|                   "start": 0,
 | |
|                   "type": "ArrayExpression",
 | |
|                   "type": "ArrayExpression"
 | |
|                 }
 | |
|               },
 | |
|               {
 | |
|                 "type": "LabeledArg",
 | |
|                 "label": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "radius",
 | |
|                   "start": 0,
 | |
|                   "type": "Identifier"
 | |
|                 },
 | |
|                 "arg": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "raw": "0.4",
 | |
|                   "start": 0,
 | |
|                   "type": "Literal",
 | |
|                   "type": "Literal",
 | |
|                   "value": {
 | |
|                     "value": 0.4,
 | |
|                     "suffix": "None"
 | |
|                   }
 | |
|                 }
 | |
|               }
 | |
|             ],
 | |
|             "callee": {
 | |
|               "abs_path": false,
 | |
|               "commentStart": 0,
 | |
|               "end": 0,
 | |
|               "name": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "circle",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "path": [],
 | |
|               "start": 0,
 | |
|               "type": "Name"
 | |
|             },
 | |
|             "commentStart": 0,
 | |
|             "end": 0,
 | |
|             "start": 0,
 | |
|             "type": "CallExpressionKw",
 | |
|             "type": "CallExpressionKw",
 | |
|             "unlabeled": {
 | |
|               "abs_path": false,
 | |
|               "commentStart": 0,
 | |
|               "end": 0,
 | |
|               "name": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "sketch003",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "path": [],
 | |
|               "start": 0,
 | |
|               "type": "Name",
 | |
|               "type": "Name"
 | |
|             }
 | |
|           },
 | |
|           "start": 0,
 | |
|           "type": "VariableDeclarator"
 | |
|         },
 | |
|         "end": 0,
 | |
|         "kind": "const",
 | |
|         "start": 0,
 | |
|         "type": "VariableDeclaration",
 | |
|         "type": "VariableDeclaration"
 | |
|       },
 | |
|       {
 | |
|         "commentStart": 0,
 | |
|         "declaration": {
 | |
|           "commentStart": 0,
 | |
|           "end": 0,
 | |
|           "id": {
 | |
|             "commentStart": 0,
 | |
|             "end": 0,
 | |
|             "name": "profile004",
 | |
|             "start": 0,
 | |
|             "type": "Identifier"
 | |
|           },
 | |
|           "init": {
 | |
|             "arguments": [
 | |
|               {
 | |
|                 "type": "LabeledArg",
 | |
|                 "label": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "center",
 | |
|                   "start": 0,
 | |
|                   "type": "Identifier"
 | |
|                 },
 | |
|                 "arg": {
 | |
|                   "commentStart": 0,
 | |
|                   "elements": [
 | |
|                     {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "raw": "0.73",
 | |
|                       "start": 0,
 | |
|                       "type": "Literal",
 | |
|                       "type": "Literal",
 | |
|                       "value": {
 | |
|                         "value": 0.73,
 | |
|                         "suffix": "None"
 | |
|                       }
 | |
|                     },
 | |
|                     {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "left": {
 | |
|                         "commentStart": 0,
 | |
|                         "end": 0,
 | |
|                         "raw": "13.6",
 | |
|                         "start": 0,
 | |
|                         "type": "Literal",
 | |
|                         "type": "Literal",
 | |
|                         "value": {
 | |
|                           "value": 13.6,
 | |
|                           "suffix": "None"
 | |
|                         }
 | |
|                       },
 | |
|                       "operator": "-",
 | |
|                       "right": {
 | |
|                         "commentStart": 0,
 | |
|                         "end": 0,
 | |
|                         "raw": ".75",
 | |
|                         "start": 0,
 | |
|                         "type": "Literal",
 | |
|                         "type": "Literal",
 | |
|                         "value": {
 | |
|                           "value": 0.75,
 | |
|                           "suffix": "None"
 | |
|                         }
 | |
|                       },
 | |
|                       "start": 0,
 | |
|                       "type": "BinaryExpression",
 | |
|                       "type": "BinaryExpression"
 | |
|                     }
 | |
|                   ],
 | |
|                   "end": 0,
 | |
|                   "start": 0,
 | |
|                   "type": "ArrayExpression",
 | |
|                   "type": "ArrayExpression"
 | |
|                 }
 | |
|               },
 | |
|               {
 | |
|                 "type": "LabeledArg",
 | |
|                 "label": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "radius",
 | |
|                   "start": 0,
 | |
|                   "type": "Identifier"
 | |
|                 },
 | |
|                 "arg": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "raw": "0.4",
 | |
|                   "start": 0,
 | |
|                   "type": "Literal",
 | |
|                   "type": "Literal",
 | |
|                   "value": {
 | |
|                     "value": 0.4,
 | |
|                     "suffix": "None"
 | |
|                   }
 | |
|                 }
 | |
|               }
 | |
|             ],
 | |
|             "callee": {
 | |
|               "abs_path": false,
 | |
|               "commentStart": 0,
 | |
|               "end": 0,
 | |
|               "name": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "circle",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "path": [],
 | |
|               "start": 0,
 | |
|               "type": "Name"
 | |
|             },
 | |
|             "commentStart": 0,
 | |
|             "end": 0,
 | |
|             "start": 0,
 | |
|             "type": "CallExpressionKw",
 | |
|             "type": "CallExpressionKw",
 | |
|             "unlabeled": {
 | |
|               "abs_path": false,
 | |
|               "commentStart": 0,
 | |
|               "end": 0,
 | |
|               "name": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "sketch003",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "path": [],
 | |
|               "start": 0,
 | |
|               "type": "Name",
 | |
|               "type": "Name"
 | |
|             }
 | |
|           },
 | |
|           "start": 0,
 | |
|           "type": "VariableDeclarator"
 | |
|         },
 | |
|         "end": 0,
 | |
|         "kind": "const",
 | |
|         "start": 0,
 | |
|         "type": "VariableDeclaration",
 | |
|         "type": "VariableDeclaration"
 | |
|       },
 | |
|       {
 | |
|         "commentStart": 0,
 | |
|         "declaration": {
 | |
|           "commentStart": 0,
 | |
|           "end": 0,
 | |
|           "id": {
 | |
|             "commentStart": 0,
 | |
|             "end": 0,
 | |
|             "name": "profile005",
 | |
|             "start": 0,
 | |
|             "type": "Identifier"
 | |
|           },
 | |
|           "init": {
 | |
|             "arguments": [
 | |
|               {
 | |
|                 "type": "LabeledArg",
 | |
|                 "label": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "center",
 | |
|                   "start": 0,
 | |
|                   "type": "Identifier"
 | |
|                 },
 | |
|                 "arg": {
 | |
|                   "commentStart": 0,
 | |
|                   "elements": [
 | |
|                     {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "raw": "4.4",
 | |
|                       "start": 0,
 | |
|                       "type": "Literal",
 | |
|                       "type": "Literal",
 | |
|                       "value": {
 | |
|                         "value": 4.4,
 | |
|                         "suffix": "None"
 | |
|                       }
 | |
|                     },
 | |
|                     {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "left": {
 | |
|                         "commentStart": 0,
 | |
|                         "end": 0,
 | |
|                         "raw": "13.6",
 | |
|                         "start": 0,
 | |
|                         "type": "Literal",
 | |
|                         "type": "Literal",
 | |
|                         "value": {
 | |
|                           "value": 13.6,
 | |
|                           "suffix": "None"
 | |
|                         }
 | |
|                       },
 | |
|                       "operator": "-",
 | |
|                       "right": {
 | |
|                         "commentStart": 0,
 | |
|                         "end": 0,
 | |
|                         "raw": ".75",
 | |
|                         "start": 0,
 | |
|                         "type": "Literal",
 | |
|                         "type": "Literal",
 | |
|                         "value": {
 | |
|                           "value": 0.75,
 | |
|                           "suffix": "None"
 | |
|                         }
 | |
|                       },
 | |
|                       "start": 0,
 | |
|                       "type": "BinaryExpression",
 | |
|                       "type": "BinaryExpression"
 | |
|                     }
 | |
|                   ],
 | |
|                   "end": 0,
 | |
|                   "start": 0,
 | |
|                   "type": "ArrayExpression",
 | |
|                   "type": "ArrayExpression"
 | |
|                 }
 | |
|               },
 | |
|               {
 | |
|                 "type": "LabeledArg",
 | |
|                 "label": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "radius",
 | |
|                   "start": 0,
 | |
|                   "type": "Identifier"
 | |
|                 },
 | |
|                 "arg": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "raw": "0.4",
 | |
|                   "start": 0,
 | |
|                   "type": "Literal",
 | |
|                   "type": "Literal",
 | |
|                   "value": {
 | |
|                     "value": 0.4,
 | |
|                     "suffix": "None"
 | |
|                   }
 | |
|                 }
 | |
|               }
 | |
|             ],
 | |
|             "callee": {
 | |
|               "abs_path": false,
 | |
|               "commentStart": 0,
 | |
|               "end": 0,
 | |
|               "name": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "circle",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "path": [],
 | |
|               "start": 0,
 | |
|               "type": "Name"
 | |
|             },
 | |
|             "commentStart": 0,
 | |
|             "end": 0,
 | |
|             "start": 0,
 | |
|             "type": "CallExpressionKw",
 | |
|             "type": "CallExpressionKw",
 | |
|             "unlabeled": {
 | |
|               "abs_path": false,
 | |
|               "commentStart": 0,
 | |
|               "end": 0,
 | |
|               "name": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "sketch003",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "path": [],
 | |
|               "start": 0,
 | |
|               "type": "Name",
 | |
|               "type": "Name"
 | |
|             }
 | |
|           },
 | |
|           "start": 0,
 | |
|           "type": "VariableDeclarator"
 | |
|         },
 | |
|         "end": 0,
 | |
|         "kind": "const",
 | |
|         "start": 0,
 | |
|         "type": "VariableDeclaration",
 | |
|         "type": "VariableDeclaration"
 | |
|       },
 | |
|       {
 | |
|         "commentStart": 0,
 | |
|         "end": 0,
 | |
|         "expression": {
 | |
|           "arguments": [
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "length",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "raw": ".15",
 | |
|                 "start": 0,
 | |
|                 "type": "Literal",
 | |
|                 "type": "Literal",
 | |
|                 "value": {
 | |
|                   "value": 0.15,
 | |
|                   "suffix": "None"
 | |
|                 }
 | |
|               }
 | |
|             }
 | |
|           ],
 | |
|           "callee": {
 | |
|             "abs_path": false,
 | |
|             "commentStart": 0,
 | |
|             "end": 0,
 | |
|             "name": {
 | |
|               "commentStart": 0,
 | |
|               "end": 0,
 | |
|               "name": "extrude",
 | |
|               "start": 0,
 | |
|               "type": "Identifier"
 | |
|             },
 | |
|             "path": [],
 | |
|             "start": 0,
 | |
|             "type": "Name"
 | |
|           },
 | |
|           "commentStart": 0,
 | |
|           "end": 0,
 | |
|           "start": 0,
 | |
|           "type": "CallExpressionKw",
 | |
|           "type": "CallExpressionKw",
 | |
|           "unlabeled": {
 | |
|             "commentStart": 0,
 | |
|             "elements": [
 | |
|               {
 | |
|                 "abs_path": false,
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "profile001",
 | |
|                   "start": 0,
 | |
|                   "type": "Identifier"
 | |
|                 },
 | |
|                 "path": [],
 | |
|                 "start": 0,
 | |
|                 "type": "Name",
 | |
|                 "type": "Name"
 | |
|               },
 | |
|               {
 | |
|                 "abs_path": false,
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "profile003",
 | |
|                   "start": 0,
 | |
|                   "type": "Identifier"
 | |
|                 },
 | |
|                 "path": [],
 | |
|                 "start": 0,
 | |
|                 "type": "Name",
 | |
|                 "type": "Name"
 | |
|               },
 | |
|               {
 | |
|                 "abs_path": false,
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "profile004",
 | |
|                   "start": 0,
 | |
|                   "type": "Identifier"
 | |
|                 },
 | |
|                 "path": [],
 | |
|                 "start": 0,
 | |
|                 "type": "Name",
 | |
|                 "type": "Name"
 | |
|               },
 | |
|               {
 | |
|                 "abs_path": false,
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "profile005",
 | |
|                   "start": 0,
 | |
|                   "type": "Identifier"
 | |
|                 },
 | |
|                 "path": [],
 | |
|                 "start": 0,
 | |
|                 "type": "Name",
 | |
|                 "type": "Name"
 | |
|               }
 | |
|             ],
 | |
|             "end": 0,
 | |
|             "start": 0,
 | |
|             "type": "ArrayExpression",
 | |
|             "type": "ArrayExpression"
 | |
|           }
 | |
|         },
 | |
|         "start": 0,
 | |
|         "type": "ExpressionStatement",
 | |
|         "type": "ExpressionStatement"
 | |
|       },
 | |
|       {
 | |
|         "commentStart": 0,
 | |
|         "declaration": {
 | |
|           "commentStart": 0,
 | |
|           "end": 0,
 | |
|           "id": {
 | |
|             "commentStart": 0,
 | |
|             "end": 0,
 | |
|             "name": "plane001",
 | |
|             "start": 0,
 | |
|             "type": "Identifier"
 | |
|           },
 | |
|           "init": {
 | |
|             "commentStart": 0,
 | |
|             "end": 0,
 | |
|             "properties": [
 | |
|               {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "key": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "origin",
 | |
|                   "start": 0,
 | |
|                   "type": "Identifier"
 | |
|                 },
 | |
|                 "start": 0,
 | |
|                 "type": "ObjectProperty",
 | |
|                 "value": {
 | |
|                   "commentStart": 0,
 | |
|                   "elements": [
 | |
|                     {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "raw": "0.0",
 | |
|                       "start": 0,
 | |
|                       "type": "Literal",
 | |
|                       "type": "Literal",
 | |
|                       "value": {
 | |
|                         "value": 0.0,
 | |
|                         "suffix": "None"
 | |
|                       }
 | |
|                     },
 | |
|                     {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "raw": "0.0",
 | |
|                       "start": 0,
 | |
|                       "type": "Literal",
 | |
|                       "type": "Literal",
 | |
|                       "value": {
 | |
|                         "value": 0.0,
 | |
|                         "suffix": "None"
 | |
|                       }
 | |
|                     },
 | |
|                     {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "raw": "0.7",
 | |
|                       "start": 0,
 | |
|                       "type": "Literal",
 | |
|                       "type": "Literal",
 | |
|                       "value": {
 | |
|                         "value": 0.7,
 | |
|                         "suffix": "None"
 | |
|                       }
 | |
|                     }
 | |
|                   ],
 | |
|                   "end": 0,
 | |
|                   "start": 0,
 | |
|                   "type": "ArrayExpression",
 | |
|                   "type": "ArrayExpression"
 | |
|                 }
 | |
|               },
 | |
|               {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "key": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "xAxis",
 | |
|                   "start": 0,
 | |
|                   "type": "Identifier"
 | |
|                 },
 | |
|                 "start": 0,
 | |
|                 "type": "ObjectProperty",
 | |
|                 "value": {
 | |
|                   "commentStart": 0,
 | |
|                   "elements": [
 | |
|                     {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "raw": "1.0",
 | |
|                       "start": 0,
 | |
|                       "type": "Literal",
 | |
|                       "type": "Literal",
 | |
|                       "value": {
 | |
|                         "value": 1.0,
 | |
|                         "suffix": "None"
 | |
|                       }
 | |
|                     },
 | |
|                     {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "raw": "0.0",
 | |
|                       "start": 0,
 | |
|                       "type": "Literal",
 | |
|                       "type": "Literal",
 | |
|                       "value": {
 | |
|                         "value": 0.0,
 | |
|                         "suffix": "None"
 | |
|                       }
 | |
|                     },
 | |
|                     {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "raw": "0.0",
 | |
|                       "start": 0,
 | |
|                       "type": "Literal",
 | |
|                       "type": "Literal",
 | |
|                       "value": {
 | |
|                         "value": 0.0,
 | |
|                         "suffix": "None"
 | |
|                       }
 | |
|                     }
 | |
|                   ],
 | |
|                   "end": 0,
 | |
|                   "start": 0,
 | |
|                   "type": "ArrayExpression",
 | |
|                   "type": "ArrayExpression"
 | |
|                 }
 | |
|               },
 | |
|               {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "key": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "yAxis",
 | |
|                   "start": 0,
 | |
|                   "type": "Identifier"
 | |
|                 },
 | |
|                 "start": 0,
 | |
|                 "type": "ObjectProperty",
 | |
|                 "value": {
 | |
|                   "commentStart": 0,
 | |
|                   "elements": [
 | |
|                     {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "raw": "0.0",
 | |
|                       "start": 0,
 | |
|                       "type": "Literal",
 | |
|                       "type": "Literal",
 | |
|                       "value": {
 | |
|                         "value": 0.0,
 | |
|                         "suffix": "None"
 | |
|                       }
 | |
|                     },
 | |
|                     {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "raw": "1.0",
 | |
|                       "start": 0,
 | |
|                       "type": "Literal",
 | |
|                       "type": "Literal",
 | |
|                       "value": {
 | |
|                         "value": 1.0,
 | |
|                         "suffix": "None"
 | |
|                       }
 | |
|                     },
 | |
|                     {
 | |
|                       "callee": {
 | |
|                         "abs_path": false,
 | |
|                         "commentStart": 0,
 | |
|                         "end": 0,
 | |
|                         "name": {
 | |
|                           "commentStart": 0,
 | |
|                           "end": 0,
 | |
|                           "name": "sin",
 | |
|                           "start": 0,
 | |
|                           "type": "Identifier"
 | |
|                         },
 | |
|                         "path": [],
 | |
|                         "start": 0,
 | |
|                         "type": "Name"
 | |
|                       },
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "start": 0,
 | |
|                       "type": "CallExpressionKw",
 | |
|                       "type": "CallExpressionKw",
 | |
|                       "unlabeled": {
 | |
|                         "commentStart": 0,
 | |
|                         "end": 0,
 | |
|                         "raw": "7deg",
 | |
|                         "start": 0,
 | |
|                         "type": "Literal",
 | |
|                         "type": "Literal",
 | |
|                         "value": {
 | |
|                           "value": 7.0,
 | |
|                           "suffix": "Deg"
 | |
|                         }
 | |
|                       }
 | |
|                     }
 | |
|                   ],
 | |
|                   "end": 0,
 | |
|                   "start": 0,
 | |
|                   "type": "ArrayExpression",
 | |
|                   "type": "ArrayExpression"
 | |
|                 }
 | |
|               },
 | |
|               {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "key": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "zAxis",
 | |
|                   "start": 0,
 | |
|                   "type": "Identifier"
 | |
|                 },
 | |
|                 "start": 0,
 | |
|                 "type": "ObjectProperty",
 | |
|                 "value": {
 | |
|                   "commentStart": 0,
 | |
|                   "elements": [
 | |
|                     {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "raw": "0.0",
 | |
|                       "start": 0,
 | |
|                       "type": "Literal",
 | |
|                       "type": "Literal",
 | |
|                       "value": {
 | |
|                         "value": 0.0,
 | |
|                         "suffix": "None"
 | |
|                       }
 | |
|                     },
 | |
|                     {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "raw": "0.0",
 | |
|                       "start": 0,
 | |
|                       "type": "Literal",
 | |
|                       "type": "Literal",
 | |
|                       "value": {
 | |
|                         "value": 0.0,
 | |
|                         "suffix": "None"
 | |
|                       }
 | |
|                     },
 | |
|                     {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "raw": "1.0",
 | |
|                       "start": 0,
 | |
|                       "type": "Literal",
 | |
|                       "type": "Literal",
 | |
|                       "value": {
 | |
|                         "value": 1.0,
 | |
|                         "suffix": "None"
 | |
|                       }
 | |
|                     }
 | |
|                   ],
 | |
|                   "end": 0,
 | |
|                   "start": 0,
 | |
|                   "type": "ArrayExpression",
 | |
|                   "type": "ArrayExpression"
 | |
|                 }
 | |
|               }
 | |
|             ],
 | |
|             "start": 0,
 | |
|             "type": "ObjectExpression",
 | |
|             "type": "ObjectExpression"
 | |
|           },
 | |
|           "start": 0,
 | |
|           "type": "VariableDeclarator"
 | |
|         },
 | |
|         "end": 0,
 | |
|         "kind": "const",
 | |
|         "preComments": [
 | |
|           "",
 | |
|           "",
 | |
|           "// Define the plane to sketch keyboard keys on"
 | |
|         ],
 | |
|         "start": 0,
 | |
|         "type": "VariableDeclaration",
 | |
|         "type": "VariableDeclaration"
 | |
|       },
 | |
|       {
 | |
|         "commentStart": 0,
 | |
|         "declaration": {
 | |
|           "commentStart": 0,
 | |
|           "end": 0,
 | |
|           "id": {
 | |
|             "commentStart": 0,
 | |
|             "end": 0,
 | |
|             "name": "keyFn",
 | |
|             "start": 0,
 | |
|             "type": "Identifier"
 | |
|           },
 | |
|           "init": {
 | |
|             "body": {
 | |
|               "body": [
 | |
|                 {
 | |
|                   "commentStart": 0,
 | |
|                   "declaration": {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "id": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "name": "sketch002",
 | |
|                       "start": 0,
 | |
|                       "type": "Identifier"
 | |
|                     },
 | |
|                     "init": {
 | |
|                       "callee": {
 | |
|                         "abs_path": false,
 | |
|                         "commentStart": 0,
 | |
|                         "end": 0,
 | |
|                         "name": {
 | |
|                           "commentStart": 0,
 | |
|                           "end": 0,
 | |
|                           "name": "startSketchOn",
 | |
|                           "start": 0,
 | |
|                           "type": "Identifier"
 | |
|                         },
 | |
|                         "path": [],
 | |
|                         "start": 0,
 | |
|                         "type": "Name"
 | |
|                       },
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "start": 0,
 | |
|                       "type": "CallExpressionKw",
 | |
|                       "type": "CallExpressionKw",
 | |
|                       "unlabeled": {
 | |
|                         "abs_path": false,
 | |
|                         "commentStart": 0,
 | |
|                         "end": 0,
 | |
|                         "name": {
 | |
|                           "commentStart": 0,
 | |
|                           "end": 0,
 | |
|                           "name": "plane001",
 | |
|                           "start": 0,
 | |
|                           "type": "Identifier"
 | |
|                         },
 | |
|                         "path": [],
 | |
|                         "start": 0,
 | |
|                         "type": "Name",
 | |
|                         "type": "Name"
 | |
|                       }
 | |
|                     },
 | |
|                     "start": 0,
 | |
|                     "type": "VariableDeclarator"
 | |
|                   },
 | |
|                   "end": 0,
 | |
|                   "kind": "const",
 | |
|                   "start": 0,
 | |
|                   "type": "VariableDeclaration",
 | |
|                   "type": "VariableDeclaration"
 | |
|                 },
 | |
|                 {
 | |
|                   "commentStart": 0,
 | |
|                   "declaration": {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "id": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "name": "profile002",
 | |
|                       "start": 0,
 | |
|                       "type": "Identifier"
 | |
|                     },
 | |
|                     "init": {
 | |
|                       "body": [
 | |
|                         {
 | |
|                           "arguments": [
 | |
|                             {
 | |
|                               "type": "LabeledArg",
 | |
|                               "label": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "name": "at",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "arg": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "elements": [
 | |
|                                   {
 | |
|                                     "commentStart": 0,
 | |
|                                     "computed": false,
 | |
|                                     "end": 0,
 | |
|                                     "object": {
 | |
|                                       "commentStart": 0,
 | |
|                                       "end": 0,
 | |
|                                       "name": "originStart",
 | |
|                                       "start": 0,
 | |
|                                       "type": "Identifier",
 | |
|                                       "type": "Identifier"
 | |
|                                     },
 | |
|                                     "property": {
 | |
|                                       "commentStart": 0,
 | |
|                                       "end": 0,
 | |
|                                       "raw": "0",
 | |
|                                       "start": 0,
 | |
|                                       "type": "Literal",
 | |
|                                       "type": "Literal",
 | |
|                                       "value": {
 | |
|                                         "value": 0.0,
 | |
|                                         "suffix": "None"
 | |
|                                       }
 | |
|                                     },
 | |
|                                     "start": 0,
 | |
|                                     "type": "MemberExpression",
 | |
|                                     "type": "MemberExpression"
 | |
|                                   },
 | |
|                                   {
 | |
|                                     "commentStart": 0,
 | |
|                                     "computed": false,
 | |
|                                     "end": 0,
 | |
|                                     "object": {
 | |
|                                       "commentStart": 0,
 | |
|                                       "end": 0,
 | |
|                                       "name": "originStart",
 | |
|                                       "start": 0,
 | |
|                                       "type": "Identifier",
 | |
|                                       "type": "Identifier"
 | |
|                                     },
 | |
|                                     "property": {
 | |
|                                       "commentStart": 0,
 | |
|                                       "end": 0,
 | |
|                                       "raw": "1",
 | |
|                                       "start": 0,
 | |
|                                       "type": "Literal",
 | |
|                                       "type": "Literal",
 | |
|                                       "value": {
 | |
|                                         "value": 1.0,
 | |
|                                         "suffix": "None"
 | |
|                                       }
 | |
|                                     },
 | |
|                                     "start": 0,
 | |
|                                     "type": "MemberExpression",
 | |
|                                     "type": "MemberExpression"
 | |
|                                   }
 | |
|                                 ],
 | |
|                                 "end": 0,
 | |
|                                 "start": 0,
 | |
|                                 "type": "ArrayExpression",
 | |
|                                 "type": "ArrayExpression"
 | |
|                               }
 | |
|                             }
 | |
|                           ],
 | |
|                           "callee": {
 | |
|                             "abs_path": false,
 | |
|                             "commentStart": 0,
 | |
|                             "end": 0,
 | |
|                             "name": {
 | |
|                               "commentStart": 0,
 | |
|                               "end": 0,
 | |
|                               "name": "startProfile",
 | |
|                               "start": 0,
 | |
|                               "type": "Identifier"
 | |
|                             },
 | |
|                             "path": [],
 | |
|                             "start": 0,
 | |
|                             "type": "Name"
 | |
|                           },
 | |
|                           "commentStart": 0,
 | |
|                           "end": 0,
 | |
|                           "start": 0,
 | |
|                           "type": "CallExpressionKw",
 | |
|                           "type": "CallExpressionKw",
 | |
|                           "unlabeled": {
 | |
|                             "abs_path": false,
 | |
|                             "commentStart": 0,
 | |
|                             "end": 0,
 | |
|                             "name": {
 | |
|                               "commentStart": 0,
 | |
|                               "end": 0,
 | |
|                               "name": "sketch002",
 | |
|                               "start": 0,
 | |
|                               "type": "Identifier"
 | |
|                             },
 | |
|                             "path": [],
 | |
|                             "start": 0,
 | |
|                             "type": "Name",
 | |
|                             "type": "Name"
 | |
|                           }
 | |
|                         },
 | |
|                         {
 | |
|                           "arguments": [
 | |
|                             {
 | |
|                               "type": "LabeledArg",
 | |
|                               "label": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "name": "angleStart",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "arg": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "raw": "180",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Literal",
 | |
|                                 "type": "Literal",
 | |
|                                 "value": {
 | |
|                                   "value": 180.0,
 | |
|                                   "suffix": "None"
 | |
|                                 }
 | |
|                               }
 | |
|                             },
 | |
|                             {
 | |
|                               "type": "LabeledArg",
 | |
|                               "label": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "name": "angleEnd",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "arg": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "raw": "270",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Literal",
 | |
|                                 "type": "Literal",
 | |
|                                 "value": {
 | |
|                                   "value": 270.0,
 | |
|                                   "suffix": "None"
 | |
|                                 }
 | |
|                               }
 | |
|                             },
 | |
|                             {
 | |
|                               "type": "LabeledArg",
 | |
|                               "label": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "name": "radius",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "arg": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "raw": "0.1",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Literal",
 | |
|                                 "type": "Literal",
 | |
|                                 "value": {
 | |
|                                   "value": 0.1,
 | |
|                                   "suffix": "None"
 | |
|                                 }
 | |
|                               }
 | |
|                             }
 | |
|                           ],
 | |
|                           "callee": {
 | |
|                             "abs_path": false,
 | |
|                             "commentStart": 0,
 | |
|                             "end": 0,
 | |
|                             "name": {
 | |
|                               "commentStart": 0,
 | |
|                               "end": 0,
 | |
|                               "name": "arc",
 | |
|                               "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": "angle",
 | |
|                                 "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": "length",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "arg": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "left": {
 | |
|                                   "abs_path": false,
 | |
|                                   "commentStart": 0,
 | |
|                                   "end": 0,
 | |
|                                   "name": {
 | |
|                                     "commentStart": 0,
 | |
|                                     "end": 0,
 | |
|                                     "name": "keyWidth",
 | |
|                                     "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": 0.2,
 | |
|                                     "suffix": "None"
 | |
|                                   }
 | |
|                                 },
 | |
|                                 "start": 0,
 | |
|                                 "type": "BinaryExpression",
 | |
|                                 "type": "BinaryExpression"
 | |
|                               }
 | |
|                             },
 | |
|                             {
 | |
|                               "type": "LabeledArg",
 | |
|                               "label": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "name": "tag",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "arg": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "start": 0,
 | |
|                                 "type": "TagDeclarator",
 | |
|                                 "type": "TagDeclarator",
 | |
|                                 "value": "rectangleSegmentA001"
 | |
|                               }
 | |
|                             }
 | |
|                           ],
 | |
|                           "callee": {
 | |
|                             "abs_path": false,
 | |
|                             "commentStart": 0,
 | |
|                             "end": 0,
 | |
|                             "name": {
 | |
|                               "commentStart": 0,
 | |
|                               "end": 0,
 | |
|                               "name": "angledLine",
 | |
|                               "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": "radius",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "arg": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "raw": "0.1",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Literal",
 | |
|                                 "type": "Literal",
 | |
|                                 "value": {
 | |
|                                   "value": 0.1,
 | |
|                                   "suffix": "None"
 | |
|                                 }
 | |
|                               }
 | |
|                             },
 | |
|                             {
 | |
|                               "type": "LabeledArg",
 | |
|                               "label": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "name": "angle",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "arg": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "raw": "90",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Literal",
 | |
|                                 "type": "Literal",
 | |
|                                 "value": {
 | |
|                                   "value": 90.0,
 | |
|                                   "suffix": "None"
 | |
|                                 }
 | |
|                               }
 | |
|                             }
 | |
|                           ],
 | |
|                           "callee": {
 | |
|                             "abs_path": false,
 | |
|                             "commentStart": 0,
 | |
|                             "end": 0,
 | |
|                             "name": {
 | |
|                               "commentStart": 0,
 | |
|                               "end": 0,
 | |
|                               "name": "tangentialArc",
 | |
|                               "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": "angle",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "arg": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "left": {
 | |
|                                   "callee": {
 | |
|                                     "abs_path": false,
 | |
|                                     "commentStart": 0,
 | |
|                                     "end": 0,
 | |
|                                     "name": {
 | |
|                                       "commentStart": 0,
 | |
|                                       "end": 0,
 | |
|                                       "name": "segAng",
 | |
|                                       "start": 0,
 | |
|                                       "type": "Identifier"
 | |
|                                     },
 | |
|                                     "path": [],
 | |
|                                     "start": 0,
 | |
|                                     "type": "Name"
 | |
|                                   },
 | |
|                                   "commentStart": 0,
 | |
|                                   "end": 0,
 | |
|                                   "start": 0,
 | |
|                                   "type": "CallExpressionKw",
 | |
|                                   "type": "CallExpressionKw",
 | |
|                                   "unlabeled": {
 | |
|                                     "abs_path": false,
 | |
|                                     "commentStart": 0,
 | |
|                                     "end": 0,
 | |
|                                     "name": {
 | |
|                                       "commentStart": 0,
 | |
|                                       "end": 0,
 | |
|                                       "name": "rectangleSegmentA001",
 | |
|                                       "start": 0,
 | |
|                                       "type": "Identifier"
 | |
|                                     },
 | |
|                                     "path": [],
 | |
|                                     "start": 0,
 | |
|                                     "type": "Name",
 | |
|                                     "type": "Name"
 | |
|                                   }
 | |
|                                 },
 | |
|                                 "operator": "+",
 | |
|                                 "right": {
 | |
|                                   "commentStart": 0,
 | |
|                                   "end": 0,
 | |
|                                   "raw": "90",
 | |
|                                   "start": 0,
 | |
|                                   "type": "Literal",
 | |
|                                   "type": "Literal",
 | |
|                                   "value": {
 | |
|                                     "value": 90.0,
 | |
|                                     "suffix": "None"
 | |
|                                   }
 | |
|                                 },
 | |
|                                 "start": 0,
 | |
|                                 "type": "BinaryExpression",
 | |
|                                 "type": "BinaryExpression"
 | |
|                               }
 | |
|                             },
 | |
|                             {
 | |
|                               "type": "LabeledArg",
 | |
|                               "label": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "name": "length",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "arg": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "left": {
 | |
|                                   "abs_path": false,
 | |
|                                   "commentStart": 0,
 | |
|                                   "end": 0,
 | |
|                                   "name": {
 | |
|                                     "commentStart": 0,
 | |
|                                     "end": 0,
 | |
|                                     "name": "keyHeight",
 | |
|                                     "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": 0.2,
 | |
|                                     "suffix": "None"
 | |
|                                   }
 | |
|                                 },
 | |
|                                 "start": 0,
 | |
|                                 "type": "BinaryExpression",
 | |
|                                 "type": "BinaryExpression"
 | |
|                               }
 | |
|                             },
 | |
|                             {
 | |
|                               "type": "LabeledArg",
 | |
|                               "label": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "name": "tag",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "arg": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "start": 0,
 | |
|                                 "type": "TagDeclarator",
 | |
|                                 "type": "TagDeclarator",
 | |
|                                 "value": "rectangleSegmentB001"
 | |
|                               }
 | |
|                             }
 | |
|                           ],
 | |
|                           "callee": {
 | |
|                             "abs_path": false,
 | |
|                             "commentStart": 0,
 | |
|                             "end": 0,
 | |
|                             "name": {
 | |
|                               "commentStart": 0,
 | |
|                               "end": 0,
 | |
|                               "name": "angledLine",
 | |
|                               "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": "radius",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "arg": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "raw": "0.1",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Literal",
 | |
|                                 "type": "Literal",
 | |
|                                 "value": {
 | |
|                                   "value": 0.1,
 | |
|                                   "suffix": "None"
 | |
|                                 }
 | |
|                               }
 | |
|                             },
 | |
|                             {
 | |
|                               "type": "LabeledArg",
 | |
|                               "label": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "name": "angle",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "arg": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "raw": "90",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Literal",
 | |
|                                 "type": "Literal",
 | |
|                                 "value": {
 | |
|                                   "value": 90.0,
 | |
|                                   "suffix": "None"
 | |
|                                 }
 | |
|                               }
 | |
|                             }
 | |
|                           ],
 | |
|                           "callee": {
 | |
|                             "abs_path": false,
 | |
|                             "commentStart": 0,
 | |
|                             "end": 0,
 | |
|                             "name": {
 | |
|                               "commentStart": 0,
 | |
|                               "end": 0,
 | |
|                               "name": "tangentialArc",
 | |
|                               "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": "angle",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "arg": {
 | |
|                                 "callee": {
 | |
|                                   "abs_path": false,
 | |
|                                   "commentStart": 0,
 | |
|                                   "end": 0,
 | |
|                                   "name": {
 | |
|                                     "commentStart": 0,
 | |
|                                     "end": 0,
 | |
|                                     "name": "segAng",
 | |
|                                     "start": 0,
 | |
|                                     "type": "Identifier"
 | |
|                                   },
 | |
|                                   "path": [],
 | |
|                                   "start": 0,
 | |
|                                   "type": "Name"
 | |
|                                 },
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "start": 0,
 | |
|                                 "type": "CallExpressionKw",
 | |
|                                 "type": "CallExpressionKw",
 | |
|                                 "unlabeled": {
 | |
|                                   "abs_path": false,
 | |
|                                   "commentStart": 0,
 | |
|                                   "end": 0,
 | |
|                                   "name": {
 | |
|                                     "commentStart": 0,
 | |
|                                     "end": 0,
 | |
|                                     "name": "rectangleSegmentA001",
 | |
|                                     "start": 0,
 | |
|                                     "type": "Identifier"
 | |
|                                   },
 | |
|                                   "path": [],
 | |
|                                   "start": 0,
 | |
|                                   "type": "Name",
 | |
|                                   "type": "Name"
 | |
|                                 }
 | |
|                               }
 | |
|                             },
 | |
|                             {
 | |
|                               "type": "LabeledArg",
 | |
|                               "label": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "name": "length",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "arg": {
 | |
|                                 "argument": {
 | |
|                                   "callee": {
 | |
|                                     "abs_path": false,
 | |
|                                     "commentStart": 0,
 | |
|                                     "end": 0,
 | |
|                                     "name": {
 | |
|                                       "commentStart": 0,
 | |
|                                       "end": 0,
 | |
|                                       "name": "segLen",
 | |
|                                       "start": 0,
 | |
|                                       "type": "Identifier"
 | |
|                                     },
 | |
|                                     "path": [],
 | |
|                                     "start": 0,
 | |
|                                     "type": "Name"
 | |
|                                   },
 | |
|                                   "commentStart": 0,
 | |
|                                   "end": 0,
 | |
|                                   "start": 0,
 | |
|                                   "type": "CallExpressionKw",
 | |
|                                   "type": "CallExpressionKw",
 | |
|                                   "unlabeled": {
 | |
|                                     "abs_path": false,
 | |
|                                     "commentStart": 0,
 | |
|                                     "end": 0,
 | |
|                                     "name": {
 | |
|                                       "commentStart": 0,
 | |
|                                       "end": 0,
 | |
|                                       "name": "rectangleSegmentA001",
 | |
|                                       "start": 0,
 | |
|                                       "type": "Identifier"
 | |
|                                     },
 | |
|                                     "path": [],
 | |
|                                     "start": 0,
 | |
|                                     "type": "Name",
 | |
|                                     "type": "Name"
 | |
|                                   }
 | |
|                                 },
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "operator": "-",
 | |
|                                 "start": 0,
 | |
|                                 "type": "UnaryExpression",
 | |
|                                 "type": "UnaryExpression"
 | |
|                               }
 | |
|                             },
 | |
|                             {
 | |
|                               "type": "LabeledArg",
 | |
|                               "label": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "name": "tag",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "arg": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "start": 0,
 | |
|                                 "type": "TagDeclarator",
 | |
|                                 "type": "TagDeclarator",
 | |
|                                 "value": "rectangleSegmentC001"
 | |
|                               }
 | |
|                             }
 | |
|                           ],
 | |
|                           "callee": {
 | |
|                             "abs_path": false,
 | |
|                             "commentStart": 0,
 | |
|                             "end": 0,
 | |
|                             "name": {
 | |
|                               "commentStart": 0,
 | |
|                               "end": 0,
 | |
|                               "name": "angledLine",
 | |
|                               "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": "radius",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "arg": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "raw": "0.1",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Literal",
 | |
|                                 "type": "Literal",
 | |
|                                 "value": {
 | |
|                                   "value": 0.1,
 | |
|                                   "suffix": "None"
 | |
|                                 }
 | |
|                               }
 | |
|                             },
 | |
|                             {
 | |
|                               "type": "LabeledArg",
 | |
|                               "label": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "name": "angle",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "arg": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "raw": "90",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Literal",
 | |
|                                 "type": "Literal",
 | |
|                                 "value": {
 | |
|                                   "value": 90.0,
 | |
|                                   "suffix": "None"
 | |
|                                 }
 | |
|                               }
 | |
|                             }
 | |
|                           ],
 | |
|                           "callee": {
 | |
|                             "abs_path": false,
 | |
|                             "commentStart": 0,
 | |
|                             "end": 0,
 | |
|                             "name": {
 | |
|                               "commentStart": 0,
 | |
|                               "end": 0,
 | |
|                               "name": "tangentialArc",
 | |
|                               "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": "endAbsolute",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "arg": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "elements": [
 | |
|                                   {
 | |
|                                     "callee": {
 | |
|                                       "abs_path": false,
 | |
|                                       "commentStart": 0,
 | |
|                                       "end": 0,
 | |
|                                       "name": {
 | |
|                                         "commentStart": 0,
 | |
|                                         "end": 0,
 | |
|                                         "name": "profileStartX",
 | |
|                                         "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"
 | |
|                                     }
 | |
|                                   },
 | |
|                                   {
 | |
|                                     "callee": {
 | |
|                                       "abs_path": false,
 | |
|                                       "commentStart": 0,
 | |
|                                       "end": 0,
 | |
|                                       "name": {
 | |
|                                         "commentStart": 0,
 | |
|                                         "end": 0,
 | |
|                                         "name": "profileStartY",
 | |
|                                         "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"
 | |
|                                     }
 | |
|                                   }
 | |
|                                 ],
 | |
|                                 "end": 0,
 | |
|                                 "start": 0,
 | |
|                                 "type": "ArrayExpression",
 | |
|                                 "type": "ArrayExpression"
 | |
|                               }
 | |
|                             },
 | |
|                             {
 | |
|                               "type": "LabeledArg",
 | |
|                               "label": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "name": "tag",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "arg": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "start": 0,
 | |
|                                 "type": "TagDeclarator",
 | |
|                                 "type": "TagDeclarator",
 | |
|                                 "value": "rectangleSegmentD001"
 | |
|                               }
 | |
|                             }
 | |
|                           ],
 | |
|                           "callee": {
 | |
|                             "abs_path": false,
 | |
|                             "commentStart": 0,
 | |
|                             "end": 0,
 | |
|                             "name": {
 | |
|                               "commentStart": 0,
 | |
|                               "end": 0,
 | |
|                               "name": "line",
 | |
|                               "start": 0,
 | |
|                               "type": "Identifier"
 | |
|                             },
 | |
|                             "path": [],
 | |
|                             "start": 0,
 | |
|                             "type": "Name"
 | |
|                           },
 | |
|                           "commentStart": 0,
 | |
|                           "end": 0,
 | |
|                           "start": 0,
 | |
|                           "type": "CallExpressionKw",
 | |
|                           "type": "CallExpressionKw",
 | |
|                           "unlabeled": null
 | |
|                         },
 | |
|                         {
 | |
|                           "callee": {
 | |
|                             "abs_path": false,
 | |
|                             "commentStart": 0,
 | |
|                             "end": 0,
 | |
|                             "name": {
 | |
|                               "commentStart": 0,
 | |
|                               "end": 0,
 | |
|                               "name": "close",
 | |
|                               "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": "length",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "arg": {
 | |
|                                 "abs_path": false,
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "name": {
 | |
|                                   "commentStart": 0,
 | |
|                                   "end": 0,
 | |
|                                   "name": "keyDepth",
 | |
|                                   "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": "extrude",
 | |
|                               "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": "color",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "arg": {
 | |
|                                 "abs_path": false,
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "name": {
 | |
|                                   "commentStart": 0,
 | |
|                                   "end": 0,
 | |
|                                   "name": "color",
 | |
|                                   "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": "appearance",
 | |
|                               "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,
 | |
|                                 "left": {
 | |
|                                   "abs_path": false,
 | |
|                                   "commentStart": 0,
 | |
|                                   "end": 0,
 | |
|                                   "name": {
 | |
|                                     "commentStart": 0,
 | |
|                                     "end": 0,
 | |
|                                     "name": "repeats",
 | |
|                                     "start": 0,
 | |
|                                     "type": "Identifier"
 | |
|                                   },
 | |
|                                   "path": [],
 | |
|                                   "start": 0,
 | |
|                                   "type": "Name",
 | |
|                                   "type": "Name"
 | |
|                                 },
 | |
|                                 "operator": "+",
 | |
|                                 "right": {
 | |
|                                   "commentStart": 0,
 | |
|                                   "end": 0,
 | |
|                                   "raw": "1",
 | |
|                                   "start": 0,
 | |
|                                   "type": "Literal",
 | |
|                                   "type": "Literal",
 | |
|                                   "value": {
 | |
|                                     "value": 1.0,
 | |
|                                     "suffix": "None"
 | |
|                                   }
 | |
|                                 },
 | |
|                                 "start": 0,
 | |
|                                 "type": "BinaryExpression",
 | |
|                                 "type": "BinaryExpression"
 | |
|                               }
 | |
|                             },
 | |
|                             {
 | |
|                               "type": "LabeledArg",
 | |
|                               "label": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "name": "distance",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "arg": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "left": {
 | |
|                                   "abs_path": false,
 | |
|                                   "commentStart": 0,
 | |
|                                   "end": 0,
 | |
|                                   "name": {
 | |
|                                     "commentStart": 0,
 | |
|                                     "end": 0,
 | |
|                                     "name": "keyWidth",
 | |
|                                     "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": "spacing",
 | |
|                                     "start": 0,
 | |
|                                     "type": "Identifier"
 | |
|                                   },
 | |
|                                   "path": [],
 | |
|                                   "start": 0,
 | |
|                                   "type": "Name",
 | |
|                                   "type": "Name"
 | |
|                                 },
 | |
|                                 "start": 0,
 | |
|                                 "type": "BinaryExpression",
 | |
|                                 "type": "BinaryExpression"
 | |
|                               }
 | |
|                             },
 | |
|                             {
 | |
|                               "type": "LabeledArg",
 | |
|                               "label": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "name": "axis",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "arg": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "elements": [
 | |
|                                   {
 | |
|                                     "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"
 | |
|                                     }
 | |
|                                   },
 | |
|                                   {
 | |
|                                     "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"
 | |
|                               }
 | |
|                             }
 | |
|                           ],
 | |
|                           "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": {
 | |
|                           "11": [
 | |
|                             {
 | |
|                               "commentStart": 0,
 | |
|                               "end": 0,
 | |
|                               "start": 0,
 | |
|                               "type": "NonCodeNode",
 | |
|                               "value": {
 | |
|                                 "type": "blockComment",
 | |
|                                 "value": "Repeat key when desired. This will default to zero",
 | |
|                                 "style": "line"
 | |
|                               }
 | |
|                             }
 | |
|                           ]
 | |
|                         },
 | |
|                         "startNodes": []
 | |
|                       },
 | |
|                       "start": 0,
 | |
|                       "type": "PipeExpression",
 | |
|                       "type": "PipeExpression"
 | |
|                     },
 | |
|                     "start": 0,
 | |
|                     "type": "VariableDeclarator"
 | |
|                   },
 | |
|                   "end": 0,
 | |
|                   "kind": "const",
 | |
|                   "start": 0,
 | |
|                   "type": "VariableDeclaration",
 | |
|                   "type": "VariableDeclaration"
 | |
|                 },
 | |
|                 {
 | |
|                   "argument": {
 | |
|                     "abs_path": false,
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "name": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "name": "sketch001",
 | |
|                       "start": 0,
 | |
|                       "type": "Identifier"
 | |
|                     },
 | |
|                     "path": [],
 | |
|                     "start": 0,
 | |
|                     "type": "Name",
 | |
|                     "type": "Name"
 | |
|                   },
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "start": 0,
 | |
|                   "type": "ReturnStatement",
 | |
|                   "type": "ReturnStatement"
 | |
|                 }
 | |
|               ],
 | |
|               "commentStart": 0,
 | |
|               "end": 0,
 | |
|               "start": 0
 | |
|             },
 | |
|             "commentStart": 0,
 | |
|             "end": 0,
 | |
|             "params": [
 | |
|               {
 | |
|                 "type": "Parameter",
 | |
|                 "identifier": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "originStart",
 | |
|                   "start": 0,
 | |
|                   "type": "Identifier"
 | |
|                 }
 | |
|               },
 | |
|               {
 | |
|                 "type": "Parameter",
 | |
|                 "identifier": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "keyWidth",
 | |
|                   "start": 0,
 | |
|                   "type": "Identifier"
 | |
|                 }
 | |
|               },
 | |
|               {
 | |
|                 "type": "Parameter",
 | |
|                 "identifier": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "keyHeight",
 | |
|                   "start": 0,
 | |
|                   "type": "Identifier"
 | |
|                 }
 | |
|               },
 | |
|               {
 | |
|                 "type": "Parameter",
 | |
|                 "identifier": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "repeats",
 | |
|                   "start": 0,
 | |
|                   "type": "Identifier"
 | |
|                 }
 | |
|               },
 | |
|               {
 | |
|                 "type": "Parameter",
 | |
|                 "identifier": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "color",
 | |
|                   "start": 0,
 | |
|                   "type": "Identifier"
 | |
|                 }
 | |
|               }
 | |
|             ],
 | |
|             "start": 0,
 | |
|             "type": "FunctionExpression",
 | |
|             "type": "FunctionExpression"
 | |
|           },
 | |
|           "start": 0,
 | |
|           "type": "VariableDeclarator"
 | |
|         },
 | |
|         "end": 0,
 | |
|         "kind": "fn",
 | |
|         "preComments": [
 | |
|           "",
 | |
|           "",
 | |
|           "// Create a function to build a key. Parameterize for position, width, height, number of instances, and appearance color."
 | |
|         ],
 | |
|         "start": 0,
 | |
|         "type": "VariableDeclaration",
 | |
|         "type": "VariableDeclaration"
 | |
|       },
 | |
|       {
 | |
|         "commentStart": 0,
 | |
|         "end": 0,
 | |
|         "expression": {
 | |
|           "arguments": [
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "originStart",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "commentStart": 0,
 | |
|                 "elements": [
 | |
|                   {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "raw": "0.3",
 | |
|                     "start": 0,
 | |
|                     "type": "Literal",
 | |
|                     "type": "Literal",
 | |
|                     "value": {
 | |
|                       "value": 0.3,
 | |
|                       "suffix": "None"
 | |
|                     }
 | |
|                   },
 | |
|                   {
 | |
|                     "abs_path": false,
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "name": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "name": "row1",
 | |
|                       "start": 0,
 | |
|                       "type": "Identifier"
 | |
|                     },
 | |
|                     "path": [],
 | |
|                     "start": 0,
 | |
|                     "type": "Name",
 | |
|                     "type": "Name"
 | |
|                   }
 | |
|                 ],
 | |
|                 "end": 0,
 | |
|                 "start": 0,
 | |
|                 "type": "ArrayExpression",
 | |
|                 "type": "ArrayExpression"
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "keyWidth",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "raw": "1.1",
 | |
|                 "start": 0,
 | |
|                 "type": "Literal",
 | |
|                 "type": "Literal",
 | |
|                 "value": {
 | |
|                   "value": 1.1,
 | |
|                   "suffix": "None"
 | |
|                 }
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "keyHeight",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "abs_path": false,
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "keyHeight",
 | |
|                   "start": 0,
 | |
|                   "type": "Identifier"
 | |
|                 },
 | |
|                 "path": [],
 | |
|                 "start": 0,
 | |
|                 "type": "Name",
 | |
|                 "type": "Name"
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "repeats",
 | |
|                 "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": "color",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "abs_path": false,
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "highlightColor2",
 | |
|                   "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": "keyFn",
 | |
|               "start": 0,
 | |
|               "type": "Identifier"
 | |
|             },
 | |
|             "path": [],
 | |
|             "start": 0,
 | |
|             "type": "Name"
 | |
|           },
 | |
|           "commentStart": 0,
 | |
|           "end": 0,
 | |
|           "start": 0,
 | |
|           "type": "CallExpressionKw",
 | |
|           "type": "CallExpressionKw",
 | |
|           "unlabeled": null
 | |
|         },
 | |
|         "preComments": [
 | |
|           "",
 | |
|           "",
 | |
|           "// Build the first row of keys"
 | |
|         ],
 | |
|         "start": 0,
 | |
|         "type": "ExpressionStatement",
 | |
|         "type": "ExpressionStatement"
 | |
|       },
 | |
|       {
 | |
|         "commentStart": 0,
 | |
|         "end": 0,
 | |
|         "expression": {
 | |
|           "arguments": [
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "originStart",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "commentStart": 0,
 | |
|                 "elements": [
 | |
|                   {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "raw": "1.5",
 | |
|                     "start": 0,
 | |
|                     "type": "Literal",
 | |
|                     "type": "Literal",
 | |
|                     "value": {
 | |
|                       "value": 1.5,
 | |
|                       "suffix": "None"
 | |
|                     }
 | |
|                   },
 | |
|                   {
 | |
|                     "abs_path": false,
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "name": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "name": "row1",
 | |
|                       "start": 0,
 | |
|                       "type": "Identifier"
 | |
|                     },
 | |
|                     "path": [],
 | |
|                     "start": 0,
 | |
|                     "type": "Name",
 | |
|                     "type": "Name"
 | |
|                   }
 | |
|                 ],
 | |
|                 "end": 0,
 | |
|                 "start": 0,
 | |
|                 "type": "ArrayExpression",
 | |
|                 "type": "ArrayExpression"
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "keyWidth",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "raw": "0.8",
 | |
|                 "start": 0,
 | |
|                 "type": "Literal",
 | |
|                 "type": "Literal",
 | |
|                 "value": {
 | |
|                   "value": 0.8,
 | |
|                   "suffix": "None"
 | |
|                 }
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "keyHeight",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "abs_path": false,
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "keyHeight",
 | |
|                   "start": 0,
 | |
|                   "type": "Identifier"
 | |
|                 },
 | |
|                 "path": [],
 | |
|                 "start": 0,
 | |
|                 "type": "Name",
 | |
|                 "type": "Name"
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "repeats",
 | |
|                 "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": "color",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "abs_path": false,
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "highlightColor1",
 | |
|                   "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": "keyFn",
 | |
|               "start": 0,
 | |
|               "type": "Identifier"
 | |
|             },
 | |
|             "path": [],
 | |
|             "start": 0,
 | |
|             "type": "Name"
 | |
|           },
 | |
|           "commentStart": 0,
 | |
|           "end": 0,
 | |
|           "start": 0,
 | |
|           "type": "CallExpressionKw",
 | |
|           "type": "CallExpressionKw",
 | |
|           "unlabeled": null
 | |
|         },
 | |
|         "start": 0,
 | |
|         "type": "ExpressionStatement",
 | |
|         "type": "ExpressionStatement"
 | |
|       },
 | |
|       {
 | |
|         "commentStart": 0,
 | |
|         "end": 0,
 | |
|         "expression": {
 | |
|           "arguments": [
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "originStart",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "commentStart": 0,
 | |
|                 "elements": [
 | |
|                   {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "left": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "left": {
 | |
|                         "abs_path": false,
 | |
|                         "commentStart": 0,
 | |
|                         "end": 0,
 | |
|                         "name": {
 | |
|                           "commentStart": 0,
 | |
|                           "end": 0,
 | |
|                           "name": "spacing",
 | |
|                           "start": 0,
 | |
|                           "type": "Identifier"
 | |
|                         },
 | |
|                         "path": [],
 | |
|                         "start": 0,
 | |
|                         "type": "Name",
 | |
|                         "type": "Name"
 | |
|                       },
 | |
|                       "operator": "*",
 | |
|                       "right": {
 | |
|                         "commentStart": 0,
 | |
|                         "end": 0,
 | |
|                         "raw": "7",
 | |
|                         "start": 0,
 | |
|                         "type": "Literal",
 | |
|                         "type": "Literal",
 | |
|                         "value": {
 | |
|                           "value": 7.0,
 | |
|                           "suffix": "None"
 | |
|                         }
 | |
|                       },
 | |
|                       "start": 0,
 | |
|                       "type": "BinaryExpression",
 | |
|                       "type": "BinaryExpression"
 | |
|                     },
 | |
|                     "operator": "+",
 | |
|                     "right": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "raw": "3.5",
 | |
|                       "start": 0,
 | |
|                       "type": "Literal",
 | |
|                       "type": "Literal",
 | |
|                       "value": {
 | |
|                         "value": 3.5,
 | |
|                         "suffix": "None"
 | |
|                       }
 | |
|                     },
 | |
|                     "start": 0,
 | |
|                     "type": "BinaryExpression",
 | |
|                     "type": "BinaryExpression"
 | |
|                   },
 | |
|                   {
 | |
|                     "abs_path": false,
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "name": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "name": "row1",
 | |
|                       "start": 0,
 | |
|                       "type": "Identifier"
 | |
|                     },
 | |
|                     "path": [],
 | |
|                     "start": 0,
 | |
|                     "type": "Name",
 | |
|                     "type": "Name"
 | |
|                   }
 | |
|                 ],
 | |
|                 "end": 0,
 | |
|                 "start": 0,
 | |
|                 "type": "ArrayExpression",
 | |
|                 "type": "ArrayExpression"
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "keyWidth",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "raw": "5.2",
 | |
|                 "start": 0,
 | |
|                 "type": "Literal",
 | |
|                 "type": "Literal",
 | |
|                 "value": {
 | |
|                   "value": 5.2,
 | |
|                   "suffix": "None"
 | |
|                 }
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "keyHeight",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "abs_path": false,
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "keyHeight",
 | |
|                   "start": 0,
 | |
|                   "type": "Identifier"
 | |
|                 },
 | |
|                 "path": [],
 | |
|                 "start": 0,
 | |
|                 "type": "Name",
 | |
|                 "type": "Name"
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "repeats",
 | |
|                 "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": "color",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "abs_path": false,
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "highlightColor2",
 | |
|                   "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": "keyFn",
 | |
|               "start": 0,
 | |
|               "type": "Identifier"
 | |
|             },
 | |
|             "path": [],
 | |
|             "start": 0,
 | |
|             "type": "Name"
 | |
|           },
 | |
|           "commentStart": 0,
 | |
|           "end": 0,
 | |
|           "start": 0,
 | |
|           "type": "CallExpressionKw",
 | |
|           "type": "CallExpressionKw",
 | |
|           "unlabeled": null
 | |
|         },
 | |
|         "start": 0,
 | |
|         "type": "ExpressionStatement",
 | |
|         "type": "ExpressionStatement"
 | |
|       },
 | |
|       {
 | |
|         "commentStart": 0,
 | |
|         "end": 0,
 | |
|         "expression": {
 | |
|           "arguments": [
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "originStart",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "commentStart": 0,
 | |
|                 "elements": [
 | |
|                   {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "left": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "left": {
 | |
|                         "abs_path": false,
 | |
|                         "commentStart": 0,
 | |
|                         "end": 0,
 | |
|                         "name": {
 | |
|                           "commentStart": 0,
 | |
|                           "end": 0,
 | |
|                           "name": "spacing",
 | |
|                           "start": 0,
 | |
|                           "type": "Identifier"
 | |
|                         },
 | |
|                         "path": [],
 | |
|                         "start": 0,
 | |
|                         "type": "Name",
 | |
|                         "type": "Name"
 | |
|                       },
 | |
|                       "operator": "*",
 | |
|                       "right": {
 | |
|                         "commentStart": 0,
 | |
|                         "end": 0,
 | |
|                         "raw": "8",
 | |
|                         "start": 0,
 | |
|                         "type": "Literal",
 | |
|                         "type": "Literal",
 | |
|                         "value": {
 | |
|                           "value": 8.0,
 | |
|                           "suffix": "None"
 | |
|                         }
 | |
|                       },
 | |
|                       "start": 0,
 | |
|                       "type": "BinaryExpression",
 | |
|                       "type": "BinaryExpression"
 | |
|                     },
 | |
|                     "operator": "+",
 | |
|                     "right": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "raw": "8.7",
 | |
|                       "start": 0,
 | |
|                       "type": "Literal",
 | |
|                       "type": "Literal",
 | |
|                       "value": {
 | |
|                         "value": 8.7,
 | |
|                         "suffix": "None"
 | |
|                       }
 | |
|                     },
 | |
|                     "start": 0,
 | |
|                     "type": "BinaryExpression",
 | |
|                     "type": "BinaryExpression"
 | |
|                   },
 | |
|                   {
 | |
|                     "abs_path": false,
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "name": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "name": "row1",
 | |
|                       "start": 0,
 | |
|                       "type": "Identifier"
 | |
|                     },
 | |
|                     "path": [],
 | |
|                     "start": 0,
 | |
|                     "type": "Name",
 | |
|                     "type": "Name"
 | |
|                   }
 | |
|                 ],
 | |
|                 "end": 0,
 | |
|                 "start": 0,
 | |
|                 "type": "ArrayExpression",
 | |
|                 "type": "ArrayExpression"
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "keyWidth",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "raw": "0.8",
 | |
|                 "start": 0,
 | |
|                 "type": "Literal",
 | |
|                 "type": "Literal",
 | |
|                 "value": {
 | |
|                   "value": 0.8,
 | |
|                   "suffix": "None"
 | |
|                 }
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "keyHeight",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "abs_path": false,
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "keyHeight",
 | |
|                   "start": 0,
 | |
|                   "type": "Identifier"
 | |
|                 },
 | |
|                 "path": [],
 | |
|                 "start": 0,
 | |
|                 "type": "Name",
 | |
|                 "type": "Name"
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "repeats",
 | |
|                 "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": "color",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "abs_path": false,
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "highlightColor1",
 | |
|                   "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": "keyFn",
 | |
|               "start": 0,
 | |
|               "type": "Identifier"
 | |
|             },
 | |
|             "path": [],
 | |
|             "start": 0,
 | |
|             "type": "Name"
 | |
|           },
 | |
|           "commentStart": 0,
 | |
|           "end": 0,
 | |
|           "start": 0,
 | |
|           "type": "CallExpressionKw",
 | |
|           "type": "CallExpressionKw",
 | |
|           "unlabeled": null
 | |
|         },
 | |
|         "start": 0,
 | |
|         "type": "ExpressionStatement",
 | |
|         "type": "ExpressionStatement"
 | |
|       },
 | |
|       {
 | |
|         "commentStart": 0,
 | |
|         "end": 0,
 | |
|         "expression": {
 | |
|           "arguments": [
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "originStart",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "commentStart": 0,
 | |
|                 "elements": [
 | |
|                   {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "left": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "left": {
 | |
|                         "abs_path": false,
 | |
|                         "commentStart": 0,
 | |
|                         "end": 0,
 | |
|                         "name": {
 | |
|                           "commentStart": 0,
 | |
|                           "end": 0,
 | |
|                           "name": "spacing",
 | |
|                           "start": 0,
 | |
|                           "type": "Identifier"
 | |
|                         },
 | |
|                         "path": [],
 | |
|                         "start": 0,
 | |
|                         "type": "Name",
 | |
|                         "type": "Name"
 | |
|                       },
 | |
|                       "operator": "*",
 | |
|                       "right": {
 | |
|                         "commentStart": 0,
 | |
|                         "end": 0,
 | |
|                         "raw": "8",
 | |
|                         "start": 0,
 | |
|                         "type": "Literal",
 | |
|                         "type": "Literal",
 | |
|                         "value": {
 | |
|                           "value": 8.0,
 | |
|                           "suffix": "None"
 | |
|                         }
 | |
|                       },
 | |
|                       "start": 0,
 | |
|                       "type": "BinaryExpression",
 | |
|                       "type": "BinaryExpression"
 | |
|                     },
 | |
|                     "operator": "+",
 | |
|                     "right": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "raw": "9.6",
 | |
|                       "start": 0,
 | |
|                       "type": "Literal",
 | |
|                       "type": "Literal",
 | |
|                       "value": {
 | |
|                         "value": 9.6,
 | |
|                         "suffix": "None"
 | |
|                       }
 | |
|                     },
 | |
|                     "start": 0,
 | |
|                     "type": "BinaryExpression",
 | |
|                     "type": "BinaryExpression"
 | |
|                   },
 | |
|                   {
 | |
|                     "abs_path": false,
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "name": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "name": "row1",
 | |
|                       "start": 0,
 | |
|                       "type": "Identifier"
 | |
|                     },
 | |
|                     "path": [],
 | |
|                     "start": 0,
 | |
|                     "type": "Name",
 | |
|                     "type": "Name"
 | |
|                   }
 | |
|                 ],
 | |
|                 "end": 0,
 | |
|                 "start": 0,
 | |
|                 "type": "ArrayExpression",
 | |
|                 "type": "ArrayExpression"
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "keyWidth",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "raw": "0.8",
 | |
|                 "start": 0,
 | |
|                 "type": "Literal",
 | |
|                 "type": "Literal",
 | |
|                 "value": {
 | |
|                   "value": 0.8,
 | |
|                   "suffix": "None"
 | |
|                 }
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "keyHeight",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "abs_path": false,
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "keyHeight",
 | |
|                   "start": 0,
 | |
|                   "type": "Identifier"
 | |
|                 },
 | |
|                 "path": [],
 | |
|                 "start": 0,
 | |
|                 "type": "Name",
 | |
|                 "type": "Name"
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "repeats",
 | |
|                 "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": "color",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "abs_path": false,
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "highlightColor1",
 | |
|                   "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": "keyFn",
 | |
|               "start": 0,
 | |
|               "type": "Identifier"
 | |
|             },
 | |
|             "path": [],
 | |
|             "start": 0,
 | |
|             "type": "Name"
 | |
|           },
 | |
|           "commentStart": 0,
 | |
|           "end": 0,
 | |
|           "start": 0,
 | |
|           "type": "CallExpressionKw",
 | |
|           "type": "CallExpressionKw",
 | |
|           "unlabeled": null
 | |
|         },
 | |
|         "start": 0,
 | |
|         "type": "ExpressionStatement",
 | |
|         "type": "ExpressionStatement"
 | |
|       },
 | |
|       {
 | |
|         "commentStart": 0,
 | |
|         "end": 0,
 | |
|         "expression": {
 | |
|           "arguments": [
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "originStart",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "commentStart": 0,
 | |
|                 "elements": [
 | |
|                   {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "left": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "left": {
 | |
|                         "abs_path": false,
 | |
|                         "commentStart": 0,
 | |
|                         "end": 0,
 | |
|                         "name": {
 | |
|                           "commentStart": 0,
 | |
|                           "end": 0,
 | |
|                           "name": "spacing",
 | |
|                           "start": 0,
 | |
|                           "type": "Identifier"
 | |
|                         },
 | |
|                         "path": [],
 | |
|                         "start": 0,
 | |
|                         "type": "Name",
 | |
|                         "type": "Name"
 | |
|                       },
 | |
|                       "operator": "*",
 | |
|                       "right": {
 | |
|                         "commentStart": 0,
 | |
|                         "end": 0,
 | |
|                         "raw": "10",
 | |
|                         "start": 0,
 | |
|                         "type": "Literal",
 | |
|                         "type": "Literal",
 | |
|                         "value": {
 | |
|                           "value": 10.0,
 | |
|                           "suffix": "None"
 | |
|                         }
 | |
|                       },
 | |
|                       "start": 0,
 | |
|                       "type": "BinaryExpression",
 | |
|                       "type": "BinaryExpression"
 | |
|                     },
 | |
|                     "operator": "+",
 | |
|                     "right": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "raw": "10.3",
 | |
|                       "start": 0,
 | |
|                       "type": "Literal",
 | |
|                       "type": "Literal",
 | |
|                       "value": {
 | |
|                         "value": 10.3,
 | |
|                         "suffix": "None"
 | |
|                       }
 | |
|                     },
 | |
|                     "start": 0,
 | |
|                     "type": "BinaryExpression",
 | |
|                     "type": "BinaryExpression"
 | |
|                   },
 | |
|                   {
 | |
|                     "abs_path": false,
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "name": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "name": "row1",
 | |
|                       "start": 0,
 | |
|                       "type": "Identifier"
 | |
|                     },
 | |
|                     "path": [],
 | |
|                     "start": 0,
 | |
|                     "type": "Name",
 | |
|                     "type": "Name"
 | |
|                   }
 | |
|                 ],
 | |
|                 "end": 0,
 | |
|                 "start": 0,
 | |
|                 "type": "ArrayExpression",
 | |
|                 "type": "ArrayExpression"
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "keyWidth",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "raw": "1.1",
 | |
|                 "start": 0,
 | |
|                 "type": "Literal",
 | |
|                 "type": "Literal",
 | |
|                 "value": {
 | |
|                   "value": 1.1,
 | |
|                   "suffix": "None"
 | |
|                 }
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "keyHeight",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "abs_path": false,
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "keyHeight",
 | |
|                   "start": 0,
 | |
|                   "type": "Identifier"
 | |
|                 },
 | |
|                 "path": [],
 | |
|                 "start": 0,
 | |
|                 "type": "Name",
 | |
|                 "type": "Name"
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "repeats",
 | |
|                 "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": "color",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "abs_path": false,
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "highlightColor1",
 | |
|                   "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": "keyFn",
 | |
|               "start": 0,
 | |
|               "type": "Identifier"
 | |
|             },
 | |
|             "path": [],
 | |
|             "start": 0,
 | |
|             "type": "Name"
 | |
|           },
 | |
|           "commentStart": 0,
 | |
|           "end": 0,
 | |
|           "start": 0,
 | |
|           "type": "CallExpressionKw",
 | |
|           "type": "CallExpressionKw",
 | |
|           "unlabeled": null
 | |
|         },
 | |
|         "start": 0,
 | |
|         "type": "ExpressionStatement",
 | |
|         "type": "ExpressionStatement"
 | |
|       },
 | |
|       {
 | |
|         "commentStart": 0,
 | |
|         "end": 0,
 | |
|         "expression": {
 | |
|           "arguments": [
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "originStart",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "commentStart": 0,
 | |
|                 "elements": [
 | |
|                   {
 | |
|                     "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": "spacing",
 | |
|                             "start": 0,
 | |
|                             "type": "Identifier"
 | |
|                           },
 | |
|                           "path": [],
 | |
|                           "start": 0,
 | |
|                           "type": "Name",
 | |
|                           "type": "Name"
 | |
|                         },
 | |
|                         "operator": "*",
 | |
|                         "right": {
 | |
|                           "commentStart": 0,
 | |
|                           "end": 0,
 | |
|                           "raw": "12",
 | |
|                           "start": 0,
 | |
|                           "type": "Literal",
 | |
|                           "type": "Literal",
 | |
|                           "value": {
 | |
|                             "value": 12.0,
 | |
|                             "suffix": "None"
 | |
|                           }
 | |
|                         },
 | |
|                         "start": 0,
 | |
|                         "type": "BinaryExpression",
 | |
|                         "type": "BinaryExpression"
 | |
|                       },
 | |
|                       "operator": "+",
 | |
|                       "right": {
 | |
|                         "commentStart": 0,
 | |
|                         "end": 0,
 | |
|                         "raw": "10.3",
 | |
|                         "start": 0,
 | |
|                         "type": "Literal",
 | |
|                         "type": "Literal",
 | |
|                         "value": {
 | |
|                           "value": 10.3,
 | |
|                           "suffix": "None"
 | |
|                         }
 | |
|                       },
 | |
|                       "start": 0,
 | |
|                       "type": "BinaryExpression",
 | |
|                       "type": "BinaryExpression"
 | |
|                     },
 | |
|                     "operator": "+",
 | |
|                     "right": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "raw": "1",
 | |
|                       "start": 0,
 | |
|                       "type": "Literal",
 | |
|                       "type": "Literal",
 | |
|                       "value": {
 | |
|                         "value": 1.0,
 | |
|                         "suffix": "None"
 | |
|                       }
 | |
|                     },
 | |
|                     "start": 0,
 | |
|                     "type": "BinaryExpression",
 | |
|                     "type": "BinaryExpression"
 | |
|                   },
 | |
|                   {
 | |
|                     "abs_path": false,
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "name": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "name": "row1",
 | |
|                       "start": 0,
 | |
|                       "type": "Identifier"
 | |
|                     },
 | |
|                     "path": [],
 | |
|                     "start": 0,
 | |
|                     "type": "Name",
 | |
|                     "type": "Name"
 | |
|                   }
 | |
|                 ],
 | |
|                 "end": 0,
 | |
|                 "start": 0,
 | |
|                 "type": "ArrayExpression",
 | |
|                 "type": "ArrayExpression"
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "keyWidth",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "raw": "0.8",
 | |
|                 "start": 0,
 | |
|                 "type": "Literal",
 | |
|                 "type": "Literal",
 | |
|                 "value": {
 | |
|                   "value": 0.8,
 | |
|                   "suffix": "None"
 | |
|                 }
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "keyHeight",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "abs_path": false,
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "keyHeight",
 | |
|                   "start": 0,
 | |
|                   "type": "Identifier"
 | |
|                 },
 | |
|                 "path": [],
 | |
|                 "start": 0,
 | |
|                 "type": "Name",
 | |
|                 "type": "Name"
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "repeats",
 | |
|                 "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": "color",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "abs_path": false,
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "highlightColor2",
 | |
|                   "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": "keyFn",
 | |
|               "start": 0,
 | |
|               "type": "Identifier"
 | |
|             },
 | |
|             "path": [],
 | |
|             "start": 0,
 | |
|             "type": "Name"
 | |
|           },
 | |
|           "commentStart": 0,
 | |
|           "end": 0,
 | |
|           "start": 0,
 | |
|           "type": "CallExpressionKw",
 | |
|           "type": "CallExpressionKw",
 | |
|           "unlabeled": null
 | |
|         },
 | |
|         "start": 0,
 | |
|         "type": "ExpressionStatement",
 | |
|         "type": "ExpressionStatement"
 | |
|       },
 | |
|       {
 | |
|         "commentStart": 0,
 | |
|         "end": 0,
 | |
|         "expression": {
 | |
|           "arguments": [
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "originStart",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "commentStart": 0,
 | |
|                 "elements": [
 | |
|                   {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "left": {
 | |
|                       "abs_path": false,
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "name": {
 | |
|                         "commentStart": 0,
 | |
|                         "end": 0,
 | |
|                         "name": "spacing",
 | |
|                         "start": 0,
 | |
|                         "type": "Identifier"
 | |
|                       },
 | |
|                       "path": [],
 | |
|                       "start": 0,
 | |
|                       "type": "Name",
 | |
|                       "type": "Name"
 | |
|                     },
 | |
|                     "operator": "*",
 | |
|                     "right": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "raw": "3",
 | |
|                       "start": 0,
 | |
|                       "type": "Literal",
 | |
|                       "type": "Literal",
 | |
|                       "value": {
 | |
|                         "value": 3.0,
 | |
|                         "suffix": "None"
 | |
|                       }
 | |
|                     },
 | |
|                     "start": 0,
 | |
|                     "type": "BinaryExpression",
 | |
|                     "type": "BinaryExpression"
 | |
|                   },
 | |
|                   {
 | |
|                     "abs_path": false,
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "name": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "name": "row2",
 | |
|                       "start": 0,
 | |
|                       "type": "Identifier"
 | |
|                     },
 | |
|                     "path": [],
 | |
|                     "start": 0,
 | |
|                     "type": "Name",
 | |
|                     "type": "Name"
 | |
|                   }
 | |
|                 ],
 | |
|                 "end": 0,
 | |
|                 "start": 0,
 | |
|                 "type": "ArrayExpression",
 | |
|                 "type": "ArrayExpression"
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "keyWidth",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "raw": "1.7",
 | |
|                 "start": 0,
 | |
|                 "type": "Literal",
 | |
|                 "type": "Literal",
 | |
|                 "value": {
 | |
|                   "value": 1.7,
 | |
|                   "suffix": "None"
 | |
|                 }
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "keyHeight",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "abs_path": false,
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "keyHeight",
 | |
|                   "start": 0,
 | |
|                   "type": "Identifier"
 | |
|                 },
 | |
|                 "path": [],
 | |
|                 "start": 0,
 | |
|                 "type": "Name",
 | |
|                 "type": "Name"
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "repeats",
 | |
|                 "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": "color",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "abs_path": false,
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "highlightColor2",
 | |
|                   "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": "keyFn",
 | |
|               "start": 0,
 | |
|               "type": "Identifier"
 | |
|             },
 | |
|             "path": [],
 | |
|             "start": 0,
 | |
|             "type": "Name"
 | |
|           },
 | |
|           "commentStart": 0,
 | |
|           "end": 0,
 | |
|           "start": 0,
 | |
|           "type": "CallExpressionKw",
 | |
|           "type": "CallExpressionKw",
 | |
|           "unlabeled": null
 | |
|         },
 | |
|         "preComments": [
 | |
|           "",
 | |
|           "",
 | |
|           "// Build the second row of keys"
 | |
|         ],
 | |
|         "start": 0,
 | |
|         "type": "ExpressionStatement",
 | |
|         "type": "ExpressionStatement"
 | |
|       },
 | |
|       {
 | |
|         "commentStart": 0,
 | |
|         "end": 0,
 | |
|         "expression": {
 | |
|           "arguments": [
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "originStart",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "commentStart": 0,
 | |
|                 "elements": [
 | |
|                   {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "left": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "left": {
 | |
|                         "abs_path": false,
 | |
|                         "commentStart": 0,
 | |
|                         "end": 0,
 | |
|                         "name": {
 | |
|                           "commentStart": 0,
 | |
|                           "end": 0,
 | |
|                           "name": "spacing",
 | |
|                           "start": 0,
 | |
|                           "type": "Identifier"
 | |
|                         },
 | |
|                         "path": [],
 | |
|                         "start": 0,
 | |
|                         "type": "Name",
 | |
|                         "type": "Name"
 | |
|                       },
 | |
|                       "operator": "*",
 | |
|                       "right": {
 | |
|                         "commentStart": 0,
 | |
|                         "end": 0,
 | |
|                         "raw": "4",
 | |
|                         "start": 0,
 | |
|                         "type": "Literal",
 | |
|                         "type": "Literal",
 | |
|                         "value": {
 | |
|                           "value": 4.0,
 | |
|                           "suffix": "None"
 | |
|                         }
 | |
|                       },
 | |
|                       "start": 0,
 | |
|                       "type": "BinaryExpression",
 | |
|                       "type": "BinaryExpression"
 | |
|                     },
 | |
|                     "operator": "+",
 | |
|                     "right": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "raw": "1.7",
 | |
|                       "start": 0,
 | |
|                       "type": "Literal",
 | |
|                       "type": "Literal",
 | |
|                       "value": {
 | |
|                         "value": 1.7,
 | |
|                         "suffix": "None"
 | |
|                       }
 | |
|                     },
 | |
|                     "start": 0,
 | |
|                     "type": "BinaryExpression",
 | |
|                     "type": "BinaryExpression"
 | |
|                   },
 | |
|                   {
 | |
|                     "abs_path": false,
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "name": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "name": "row2",
 | |
|                       "start": 0,
 | |
|                       "type": "Identifier"
 | |
|                     },
 | |
|                     "path": [],
 | |
|                     "start": 0,
 | |
|                     "type": "Name",
 | |
|                     "type": "Name"
 | |
|                   }
 | |
|                 ],
 | |
|                 "end": 0,
 | |
|                 "start": 0,
 | |
|                 "type": "ArrayExpression",
 | |
|                 "type": "ArrayExpression"
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "keyWidth",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "raw": "0.8",
 | |
|                 "start": 0,
 | |
|                 "type": "Literal",
 | |
|                 "type": "Literal",
 | |
|                 "value": {
 | |
|                   "value": 0.8,
 | |
|                   "suffix": "None"
 | |
|                 }
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "keyHeight",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "abs_path": false,
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "keyHeight",
 | |
|                   "start": 0,
 | |
|                   "type": "Identifier"
 | |
|                 },
 | |
|                 "path": [],
 | |
|                 "start": 0,
 | |
|                 "type": "Name",
 | |
|                 "type": "Name"
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "repeats",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "raw": "9",
 | |
|                 "start": 0,
 | |
|                 "type": "Literal",
 | |
|                 "type": "Literal",
 | |
|                 "value": {
 | |
|                   "value": 9.0,
 | |
|                   "suffix": "None"
 | |
|                 }
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "color",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "abs_path": false,
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "highlightColor1",
 | |
|                   "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": "keyFn",
 | |
|               "start": 0,
 | |
|               "type": "Identifier"
 | |
|             },
 | |
|             "path": [],
 | |
|             "start": 0,
 | |
|             "type": "Name"
 | |
|           },
 | |
|           "commentStart": 0,
 | |
|           "end": 0,
 | |
|           "start": 0,
 | |
|           "type": "CallExpressionKw",
 | |
|           "type": "CallExpressionKw",
 | |
|           "unlabeled": null
 | |
|         },
 | |
|         "start": 0,
 | |
|         "type": "ExpressionStatement",
 | |
|         "type": "ExpressionStatement"
 | |
|       },
 | |
|       {
 | |
|         "commentStart": 0,
 | |
|         "end": 0,
 | |
|         "expression": {
 | |
|           "arguments": [
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "originStart",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "commentStart": 0,
 | |
|                 "elements": [
 | |
|                   {
 | |
|                     "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": "spacing",
 | |
|                             "start": 0,
 | |
|                             "type": "Identifier"
 | |
|                           },
 | |
|                           "path": [],
 | |
|                           "start": 0,
 | |
|                           "type": "Name",
 | |
|                           "type": "Name"
 | |
|                         },
 | |
|                         "operator": "*",
 | |
|                         "right": {
 | |
|                           "commentStart": 0,
 | |
|                           "end": 0,
 | |
|                           "raw": "14",
 | |
|                           "start": 0,
 | |
|                           "type": "Literal",
 | |
|                           "type": "Literal",
 | |
|                           "value": {
 | |
|                             "value": 14.0,
 | |
|                             "suffix": "None"
 | |
|                           }
 | |
|                         },
 | |
|                         "start": 0,
 | |
|                         "type": "BinaryExpression",
 | |
|                         "type": "BinaryExpression"
 | |
|                       },
 | |
|                       "operator": "+",
 | |
|                       "right": {
 | |
|                         "commentStart": 0,
 | |
|                         "end": 0,
 | |
|                         "raw": "1.7",
 | |
|                         "start": 0,
 | |
|                         "type": "Literal",
 | |
|                         "type": "Literal",
 | |
|                         "value": {
 | |
|                           "value": 1.7,
 | |
|                           "suffix": "None"
 | |
|                         }
 | |
|                       },
 | |
|                       "start": 0,
 | |
|                       "type": "BinaryExpression",
 | |
|                       "type": "BinaryExpression"
 | |
|                     },
 | |
|                     "operator": "+",
 | |
|                     "right": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "left": {
 | |
|                         "commentStart": 0,
 | |
|                         "end": 0,
 | |
|                         "raw": "0.8",
 | |
|                         "start": 0,
 | |
|                         "type": "Literal",
 | |
|                         "type": "Literal",
 | |
|                         "value": {
 | |
|                           "value": 0.8,
 | |
|                           "suffix": "None"
 | |
|                         }
 | |
|                       },
 | |
|                       "operator": "*",
 | |
|                       "right": {
 | |
|                         "commentStart": 0,
 | |
|                         "end": 0,
 | |
|                         "raw": "10",
 | |
|                         "start": 0,
 | |
|                         "type": "Literal",
 | |
|                         "type": "Literal",
 | |
|                         "value": {
 | |
|                           "value": 10.0,
 | |
|                           "suffix": "None"
 | |
|                         }
 | |
|                       },
 | |
|                       "start": 0,
 | |
|                       "type": "BinaryExpression",
 | |
|                       "type": "BinaryExpression"
 | |
|                     },
 | |
|                     "start": 0,
 | |
|                     "type": "BinaryExpression",
 | |
|                     "type": "BinaryExpression"
 | |
|                   },
 | |
|                   {
 | |
|                     "abs_path": false,
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "name": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "name": "row2",
 | |
|                       "start": 0,
 | |
|                       "type": "Identifier"
 | |
|                     },
 | |
|                     "path": [],
 | |
|                     "start": 0,
 | |
|                     "type": "Name",
 | |
|                     "type": "Name"
 | |
|                   }
 | |
|                 ],
 | |
|                 "end": 0,
 | |
|                 "start": 0,
 | |
|                 "type": "ArrayExpression",
 | |
|                 "type": "ArrayExpression"
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "keyWidth",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "raw": "2.2",
 | |
|                 "start": 0,
 | |
|                 "type": "Literal",
 | |
|                 "type": "Literal",
 | |
|                 "value": {
 | |
|                   "value": 2.2,
 | |
|                   "suffix": "None"
 | |
|                 }
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "keyHeight",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "abs_path": false,
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "keyHeight",
 | |
|                   "start": 0,
 | |
|                   "type": "Identifier"
 | |
|                 },
 | |
|                 "path": [],
 | |
|                 "start": 0,
 | |
|                 "type": "Name",
 | |
|                 "type": "Name"
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "repeats",
 | |
|                 "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": "color",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "abs_path": false,
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "highlightColor2",
 | |
|                   "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": "keyFn",
 | |
|               "start": 0,
 | |
|               "type": "Identifier"
 | |
|             },
 | |
|             "path": [],
 | |
|             "start": 0,
 | |
|             "type": "Name"
 | |
|           },
 | |
|           "commentStart": 0,
 | |
|           "end": 0,
 | |
|           "start": 0,
 | |
|           "type": "CallExpressionKw",
 | |
|           "type": "CallExpressionKw",
 | |
|           "unlabeled": null
 | |
|         },
 | |
|         "start": 0,
 | |
|         "type": "ExpressionStatement",
 | |
|         "type": "ExpressionStatement"
 | |
|       },
 | |
|       {
 | |
|         "commentStart": 0,
 | |
|         "end": 0,
 | |
|         "expression": {
 | |
|           "arguments": [
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "originStart",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "commentStart": 0,
 | |
|                 "elements": [
 | |
|                   {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "left": {
 | |
|                       "abs_path": false,
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "name": {
 | |
|                         "commentStart": 0,
 | |
|                         "end": 0,
 | |
|                         "name": "spacing",
 | |
|                         "start": 0,
 | |
|                         "type": "Identifier"
 | |
|                       },
 | |
|                       "path": [],
 | |
|                       "start": 0,
 | |
|                       "type": "Name",
 | |
|                       "type": "Name"
 | |
|                     },
 | |
|                     "operator": "*",
 | |
|                     "right": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "raw": "3",
 | |
|                       "start": 0,
 | |
|                       "type": "Literal",
 | |
|                       "type": "Literal",
 | |
|                       "value": {
 | |
|                         "value": 3.0,
 | |
|                         "suffix": "None"
 | |
|                       }
 | |
|                     },
 | |
|                     "start": 0,
 | |
|                     "type": "BinaryExpression",
 | |
|                     "type": "BinaryExpression"
 | |
|                   },
 | |
|                   {
 | |
|                     "abs_path": false,
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "name": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "name": "row3",
 | |
|                       "start": 0,
 | |
|                       "type": "Identifier"
 | |
|                     },
 | |
|                     "path": [],
 | |
|                     "start": 0,
 | |
|                     "type": "Name",
 | |
|                     "type": "Name"
 | |
|                   }
 | |
|                 ],
 | |
|                 "end": 0,
 | |
|                 "start": 0,
 | |
|                 "type": "ArrayExpression",
 | |
|                 "type": "ArrayExpression"
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "keyWidth",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "left": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "raw": "1.1",
 | |
|                   "start": 0,
 | |
|                   "type": "Literal",
 | |
|                   "type": "Literal",
 | |
|                   "value": {
 | |
|                     "value": 1.1,
 | |
|                     "suffix": "None"
 | |
|                   }
 | |
|                 },
 | |
|                 "operator": "+",
 | |
|                 "right": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "raw": ".1",
 | |
|                   "start": 0,
 | |
|                   "type": "Literal",
 | |
|                   "type": "Literal",
 | |
|                   "value": {
 | |
|                     "value": 0.1,
 | |
|                     "suffix": "None"
 | |
|                   }
 | |
|                 },
 | |
|                 "start": 0,
 | |
|                 "type": "BinaryExpression",
 | |
|                 "type": "BinaryExpression"
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "keyHeight",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "abs_path": false,
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "keyHeight",
 | |
|                   "start": 0,
 | |
|                   "type": "Identifier"
 | |
|                 },
 | |
|                 "path": [],
 | |
|                 "start": 0,
 | |
|                 "type": "Name",
 | |
|                 "type": "Name"
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "repeats",
 | |
|                 "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": "color",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "abs_path": false,
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "highlightColor1",
 | |
|                   "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": "keyFn",
 | |
|               "start": 0,
 | |
|               "type": "Identifier"
 | |
|             },
 | |
|             "path": [],
 | |
|             "start": 0,
 | |
|             "type": "Name"
 | |
|           },
 | |
|           "commentStart": 0,
 | |
|           "end": 0,
 | |
|           "start": 0,
 | |
|           "type": "CallExpressionKw",
 | |
|           "type": "CallExpressionKw",
 | |
|           "unlabeled": null
 | |
|         },
 | |
|         "preComments": [
 | |
|           "",
 | |
|           "",
 | |
|           "// Build the third row of keys"
 | |
|         ],
 | |
|         "start": 0,
 | |
|         "type": "ExpressionStatement",
 | |
|         "type": "ExpressionStatement"
 | |
|       },
 | |
|       {
 | |
|         "commentStart": 0,
 | |
|         "end": 0,
 | |
|         "expression": {
 | |
|           "arguments": [
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "originStart",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "commentStart": 0,
 | |
|                 "elements": [
 | |
|                   {
 | |
|                     "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": "spacing",
 | |
|                             "start": 0,
 | |
|                             "type": "Identifier"
 | |
|                           },
 | |
|                           "path": [],
 | |
|                           "start": 0,
 | |
|                           "type": "Name",
 | |
|                           "type": "Name"
 | |
|                         },
 | |
|                         "operator": "*",
 | |
|                         "right": {
 | |
|                           "commentStart": 0,
 | |
|                           "end": 0,
 | |
|                           "raw": "4",
 | |
|                           "start": 0,
 | |
|                           "type": "Literal",
 | |
|                           "type": "Literal",
 | |
|                           "value": {
 | |
|                             "value": 4.0,
 | |
|                             "suffix": "None"
 | |
|                           }
 | |
|                         },
 | |
|                         "start": 0,
 | |
|                         "type": "BinaryExpression",
 | |
|                         "type": "BinaryExpression"
 | |
|                       },
 | |
|                       "operator": "+",
 | |
|                       "right": {
 | |
|                         "commentStart": 0,
 | |
|                         "end": 0,
 | |
|                         "raw": "1.1",
 | |
|                         "start": 0,
 | |
|                         "type": "Literal",
 | |
|                         "type": "Literal",
 | |
|                         "value": {
 | |
|                           "value": 1.1,
 | |
|                           "suffix": "None"
 | |
|                         }
 | |
|                       },
 | |
|                       "start": 0,
 | |
|                       "type": "BinaryExpression",
 | |
|                       "type": "BinaryExpression"
 | |
|                     },
 | |
|                     "operator": "+",
 | |
|                     "right": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "raw": ".1",
 | |
|                       "start": 0,
 | |
|                       "type": "Literal",
 | |
|                       "type": "Literal",
 | |
|                       "value": {
 | |
|                         "value": 0.1,
 | |
|                         "suffix": "None"
 | |
|                       }
 | |
|                     },
 | |
|                     "start": 0,
 | |
|                     "type": "BinaryExpression",
 | |
|                     "type": "BinaryExpression"
 | |
|                   },
 | |
|                   {
 | |
|                     "abs_path": false,
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "name": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "name": "row3",
 | |
|                       "start": 0,
 | |
|                       "type": "Identifier"
 | |
|                     },
 | |
|                     "path": [],
 | |
|                     "start": 0,
 | |
|                     "type": "Name",
 | |
|                     "type": "Name"
 | |
|                   }
 | |
|                 ],
 | |
|                 "end": 0,
 | |
|                 "start": 0,
 | |
|                 "type": "ArrayExpression",
 | |
|                 "type": "ArrayExpression"
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "keyWidth",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "raw": "0.8",
 | |
|                 "start": 0,
 | |
|                 "type": "Literal",
 | |
|                 "type": "Literal",
 | |
|                 "value": {
 | |
|                   "value": 0.8,
 | |
|                   "suffix": "None"
 | |
|                 }
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "keyHeight",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "abs_path": false,
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "keyHeight",
 | |
|                   "start": 0,
 | |
|                   "type": "Identifier"
 | |
|                 },
 | |
|                 "path": [],
 | |
|                 "start": 0,
 | |
|                 "type": "Name",
 | |
|                 "type": "Name"
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "repeats",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "raw": "10",
 | |
|                 "start": 0,
 | |
|                 "type": "Literal",
 | |
|                 "type": "Literal",
 | |
|                 "value": {
 | |
|                   "value": 10.0,
 | |
|                   "suffix": "None"
 | |
|                 }
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "color",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "abs_path": false,
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "highlightColor1",
 | |
|                   "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": "keyFn",
 | |
|               "start": 0,
 | |
|               "type": "Identifier"
 | |
|             },
 | |
|             "path": [],
 | |
|             "start": 0,
 | |
|             "type": "Name"
 | |
|           },
 | |
|           "commentStart": 0,
 | |
|           "end": 0,
 | |
|           "start": 0,
 | |
|           "type": "CallExpressionKw",
 | |
|           "type": "CallExpressionKw",
 | |
|           "unlabeled": null
 | |
|         },
 | |
|         "start": 0,
 | |
|         "type": "ExpressionStatement",
 | |
|         "type": "ExpressionStatement"
 | |
|       },
 | |
|       {
 | |
|         "commentStart": 0,
 | |
|         "end": 0,
 | |
|         "expression": {
 | |
|           "arguments": [
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "originStart",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "commentStart": 0,
 | |
|                 "elements": [
 | |
|                   {
 | |
|                     "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": "spacing",
 | |
|                             "start": 0,
 | |
|                             "type": "Identifier"
 | |
|                           },
 | |
|                           "path": [],
 | |
|                           "start": 0,
 | |
|                           "type": "Name",
 | |
|                           "type": "Name"
 | |
|                         },
 | |
|                         "operator": "*",
 | |
|                         "right": {
 | |
|                           "commentStart": 0,
 | |
|                           "end": 0,
 | |
|                           "raw": "3",
 | |
|                           "start": 0,
 | |
|                           "type": "Literal",
 | |
|                           "type": "Literal",
 | |
|                           "value": {
 | |
|                             "value": 3.0,
 | |
|                             "suffix": "None"
 | |
|                           }
 | |
|                         },
 | |
|                         "start": 0,
 | |
|                         "type": "BinaryExpression",
 | |
|                         "type": "BinaryExpression"
 | |
|                       },
 | |
|                       "operator": "+",
 | |
|                       "right": {
 | |
|                         "commentStart": 0,
 | |
|                         "end": 0,
 | |
|                         "raw": "11.1",
 | |
|                         "start": 0,
 | |
|                         "type": "Literal",
 | |
|                         "type": "Literal",
 | |
|                         "value": {
 | |
|                           "value": 11.1,
 | |
|                           "suffix": "None"
 | |
|                         }
 | |
|                       },
 | |
|                       "start": 0,
 | |
|                       "type": "BinaryExpression",
 | |
|                       "type": "BinaryExpression"
 | |
|                     },
 | |
|                     "operator": "+",
 | |
|                     "right": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "raw": ".1",
 | |
|                       "start": 0,
 | |
|                       "type": "Literal",
 | |
|                       "type": "Literal",
 | |
|                       "value": {
 | |
|                         "value": 0.1,
 | |
|                         "suffix": "None"
 | |
|                       }
 | |
|                     },
 | |
|                     "start": 0,
 | |
|                     "type": "BinaryExpression",
 | |
|                     "type": "BinaryExpression"
 | |
|                   },
 | |
|                   {
 | |
|                     "abs_path": false,
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "name": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "name": "row3",
 | |
|                       "start": 0,
 | |
|                       "type": "Identifier"
 | |
|                     },
 | |
|                     "path": [],
 | |
|                     "start": 0,
 | |
|                     "type": "Name",
 | |
|                     "type": "Name"
 | |
|                   }
 | |
|                 ],
 | |
|                 "end": 0,
 | |
|                 "start": 0,
 | |
|                 "type": "ArrayExpression",
 | |
|                 "type": "ArrayExpression"
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "keyWidth",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "left": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "raw": "1.4",
 | |
|                   "start": 0,
 | |
|                   "type": "Literal",
 | |
|                   "type": "Literal",
 | |
|                   "value": {
 | |
|                     "value": 1.4,
 | |
|                     "suffix": "None"
 | |
|                   }
 | |
|                 },
 | |
|                 "operator": "+",
 | |
|                 "right": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "raw": ".4",
 | |
|                   "start": 0,
 | |
|                   "type": "Literal",
 | |
|                   "type": "Literal",
 | |
|                   "value": {
 | |
|                     "value": 0.4,
 | |
|                     "suffix": "None"
 | |
|                   }
 | |
|                 },
 | |
|                 "start": 0,
 | |
|                 "type": "BinaryExpression",
 | |
|                 "type": "BinaryExpression"
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "keyHeight",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "abs_path": false,
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "keyHeight",
 | |
|                   "start": 0,
 | |
|                   "type": "Identifier"
 | |
|                 },
 | |
|                 "path": [],
 | |
|                 "start": 0,
 | |
|                 "type": "Name",
 | |
|                 "type": "Name"
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "repeats",
 | |
|                 "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": "color",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "abs_path": false,
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "highlightColor2",
 | |
|                   "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": "keyFn",
 | |
|               "start": 0,
 | |
|               "type": "Identifier"
 | |
|             },
 | |
|             "path": [],
 | |
|             "start": 0,
 | |
|             "type": "Name"
 | |
|           },
 | |
|           "commentStart": 0,
 | |
|           "end": 0,
 | |
|           "start": 0,
 | |
|           "type": "CallExpressionKw",
 | |
|           "type": "CallExpressionKw",
 | |
|           "unlabeled": null
 | |
|         },
 | |
|         "start": 0,
 | |
|         "type": "ExpressionStatement",
 | |
|         "type": "ExpressionStatement"
 | |
|       },
 | |
|       {
 | |
|         "commentStart": 0,
 | |
|         "end": 0,
 | |
|         "expression": {
 | |
|           "arguments": [
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "originStart",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "commentStart": 0,
 | |
|                 "elements": [
 | |
|                   {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "left": {
 | |
|                       "abs_path": false,
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "name": {
 | |
|                         "commentStart": 0,
 | |
|                         "end": 0,
 | |
|                         "name": "spacing",
 | |
|                         "start": 0,
 | |
|                         "type": "Identifier"
 | |
|                       },
 | |
|                       "path": [],
 | |
|                       "start": 0,
 | |
|                       "type": "Name",
 | |
|                       "type": "Name"
 | |
|                     },
 | |
|                     "operator": "*",
 | |
|                     "right": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "raw": "3",
 | |
|                       "start": 0,
 | |
|                       "type": "Literal",
 | |
|                       "type": "Literal",
 | |
|                       "value": {
 | |
|                         "value": 3.0,
 | |
|                         "suffix": "None"
 | |
|                       }
 | |
|                     },
 | |
|                     "start": 0,
 | |
|                     "type": "BinaryExpression",
 | |
|                     "type": "BinaryExpression"
 | |
|                   },
 | |
|                   {
 | |
|                     "abs_path": false,
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "name": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "name": "row4",
 | |
|                       "start": 0,
 | |
|                       "type": "Identifier"
 | |
|                     },
 | |
|                     "path": [],
 | |
|                     "start": 0,
 | |
|                     "type": "Name",
 | |
|                     "type": "Name"
 | |
|                   }
 | |
|                 ],
 | |
|                 "end": 0,
 | |
|                 "start": 0,
 | |
|                 "type": "ArrayExpression",
 | |
|                 "type": "ArrayExpression"
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "keyWidth",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "raw": "0.9",
 | |
|                 "start": 0,
 | |
|                 "type": "Literal",
 | |
|                 "type": "Literal",
 | |
|                 "value": {
 | |
|                   "value": 0.9,
 | |
|                   "suffix": "None"
 | |
|                 }
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "keyHeight",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "abs_path": false,
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "keyHeight",
 | |
|                   "start": 0,
 | |
|                   "type": "Identifier"
 | |
|                 },
 | |
|                 "path": [],
 | |
|                 "start": 0,
 | |
|                 "type": "Name",
 | |
|                 "type": "Name"
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "repeats",
 | |
|                 "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": "color",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "abs_path": false,
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "highlightColor1",
 | |
|                   "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": "keyFn",
 | |
|               "start": 0,
 | |
|               "type": "Identifier"
 | |
|             },
 | |
|             "path": [],
 | |
|             "start": 0,
 | |
|             "type": "Name"
 | |
|           },
 | |
|           "commentStart": 0,
 | |
|           "end": 0,
 | |
|           "start": 0,
 | |
|           "type": "CallExpressionKw",
 | |
|           "type": "CallExpressionKw",
 | |
|           "unlabeled": null
 | |
|         },
 | |
|         "preComments": [
 | |
|           "",
 | |
|           "",
 | |
|           "// Build the fourth row of keys"
 | |
|         ],
 | |
|         "start": 0,
 | |
|         "type": "ExpressionStatement",
 | |
|         "type": "ExpressionStatement"
 | |
|       },
 | |
|       {
 | |
|         "commentStart": 0,
 | |
|         "end": 0,
 | |
|         "expression": {
 | |
|           "arguments": [
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "originStart",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "commentStart": 0,
 | |
|                 "elements": [
 | |
|                   {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "left": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "left": {
 | |
|                         "abs_path": false,
 | |
|                         "commentStart": 0,
 | |
|                         "end": 0,
 | |
|                         "name": {
 | |
|                           "commentStart": 0,
 | |
|                           "end": 0,
 | |
|                           "name": "spacing",
 | |
|                           "start": 0,
 | |
|                           "type": "Identifier"
 | |
|                         },
 | |
|                         "path": [],
 | |
|                         "start": 0,
 | |
|                         "type": "Name",
 | |
|                         "type": "Name"
 | |
|                       },
 | |
|                       "operator": "*",
 | |
|                       "right": {
 | |
|                         "commentStart": 0,
 | |
|                         "end": 0,
 | |
|                         "raw": "4",
 | |
|                         "start": 0,
 | |
|                         "type": "Literal",
 | |
|                         "type": "Literal",
 | |
|                         "value": {
 | |
|                           "value": 4.0,
 | |
|                           "suffix": "None"
 | |
|                         }
 | |
|                       },
 | |
|                       "start": 0,
 | |
|                       "type": "BinaryExpression",
 | |
|                       "type": "BinaryExpression"
 | |
|                     },
 | |
|                     "operator": "+",
 | |
|                     "right": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "raw": "0.9",
 | |
|                       "start": 0,
 | |
|                       "type": "Literal",
 | |
|                       "type": "Literal",
 | |
|                       "value": {
 | |
|                         "value": 0.9,
 | |
|                         "suffix": "None"
 | |
|                       }
 | |
|                     },
 | |
|                     "start": 0,
 | |
|                     "type": "BinaryExpression",
 | |
|                     "type": "BinaryExpression"
 | |
|                   },
 | |
|                   {
 | |
|                     "abs_path": false,
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "name": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "name": "row4",
 | |
|                       "start": 0,
 | |
|                       "type": "Identifier"
 | |
|                     },
 | |
|                     "path": [],
 | |
|                     "start": 0,
 | |
|                     "type": "Name",
 | |
|                     "type": "Name"
 | |
|                   }
 | |
|                 ],
 | |
|                 "end": 0,
 | |
|                 "start": 0,
 | |
|                 "type": "ArrayExpression",
 | |
|                 "type": "ArrayExpression"
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "keyWidth",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "raw": "0.8",
 | |
|                 "start": 0,
 | |
|                 "type": "Literal",
 | |
|                 "type": "Literal",
 | |
|                 "value": {
 | |
|                   "value": 0.8,
 | |
|                   "suffix": "None"
 | |
|                 }
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "keyHeight",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "abs_path": false,
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "keyHeight",
 | |
|                   "start": 0,
 | |
|                   "type": "Identifier"
 | |
|                 },
 | |
|                 "path": [],
 | |
|                 "start": 0,
 | |
|                 "type": "Name",
 | |
|                 "type": "Name"
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "repeats",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "raw": "11",
 | |
|                 "start": 0,
 | |
|                 "type": "Literal",
 | |
|                 "type": "Literal",
 | |
|                 "value": {
 | |
|                   "value": 11.0,
 | |
|                   "suffix": "None"
 | |
|                 }
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "color",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "abs_path": false,
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "highlightColor1",
 | |
|                   "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": "keyFn",
 | |
|               "start": 0,
 | |
|               "type": "Identifier"
 | |
|             },
 | |
|             "path": [],
 | |
|             "start": 0,
 | |
|             "type": "Name"
 | |
|           },
 | |
|           "commentStart": 0,
 | |
|           "end": 0,
 | |
|           "start": 0,
 | |
|           "type": "CallExpressionKw",
 | |
|           "type": "CallExpressionKw",
 | |
|           "unlabeled": null
 | |
|         },
 | |
|         "start": 0,
 | |
|         "type": "ExpressionStatement",
 | |
|         "type": "ExpressionStatement"
 | |
|       },
 | |
|       {
 | |
|         "commentStart": 0,
 | |
|         "end": 0,
 | |
|         "expression": {
 | |
|           "arguments": [
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "originStart",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "commentStart": 0,
 | |
|                 "elements": [
 | |
|                   {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "left": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "left": {
 | |
|                         "abs_path": false,
 | |
|                         "commentStart": 0,
 | |
|                         "end": 0,
 | |
|                         "name": {
 | |
|                           "commentStart": 0,
 | |
|                           "end": 0,
 | |
|                           "name": "spacing",
 | |
|                           "start": 0,
 | |
|                           "type": "Identifier"
 | |
|                         },
 | |
|                         "path": [],
 | |
|                         "start": 0,
 | |
|                         "type": "Name",
 | |
|                         "type": "Name"
 | |
|                       },
 | |
|                       "operator": "*",
 | |
|                       "right": {
 | |
|                         "commentStart": 0,
 | |
|                         "end": 0,
 | |
|                         "raw": "3",
 | |
|                         "start": 0,
 | |
|                         "type": "Literal",
 | |
|                         "type": "Literal",
 | |
|                         "value": {
 | |
|                           "value": 3.0,
 | |
|                           "suffix": "None"
 | |
|                         }
 | |
|                       },
 | |
|                       "start": 0,
 | |
|                       "type": "BinaryExpression",
 | |
|                       "type": "BinaryExpression"
 | |
|                     },
 | |
|                     "operator": "+",
 | |
|                     "right": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "raw": "11.8",
 | |
|                       "start": 0,
 | |
|                       "type": "Literal",
 | |
|                       "type": "Literal",
 | |
|                       "value": {
 | |
|                         "value": 11.8,
 | |
|                         "suffix": "None"
 | |
|                       }
 | |
|                     },
 | |
|                     "start": 0,
 | |
|                     "type": "BinaryExpression",
 | |
|                     "type": "BinaryExpression"
 | |
|                   },
 | |
|                   {
 | |
|                     "abs_path": false,
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "name": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "name": "row4",
 | |
|                       "start": 0,
 | |
|                       "type": "Identifier"
 | |
|                     },
 | |
|                     "path": [],
 | |
|                     "start": 0,
 | |
|                     "type": "Name",
 | |
|                     "type": "Name"
 | |
|                   }
 | |
|                 ],
 | |
|                 "end": 0,
 | |
|                 "start": 0,
 | |
|                 "type": "ArrayExpression",
 | |
|                 "type": "ArrayExpression"
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "keyWidth",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "raw": "1.2",
 | |
|                 "start": 0,
 | |
|                 "type": "Literal",
 | |
|                 "type": "Literal",
 | |
|                 "value": {
 | |
|                   "value": 1.2,
 | |
|                   "suffix": "None"
 | |
|                 }
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "keyHeight",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "abs_path": false,
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "keyHeight",
 | |
|                   "start": 0,
 | |
|                   "type": "Identifier"
 | |
|                 },
 | |
|                 "path": [],
 | |
|                 "start": 0,
 | |
|                 "type": "Name",
 | |
|                 "type": "Name"
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "repeats",
 | |
|                 "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": "color",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "abs_path": false,
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "highlightColor1",
 | |
|                   "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": "keyFn",
 | |
|               "start": 0,
 | |
|               "type": "Identifier"
 | |
|             },
 | |
|             "path": [],
 | |
|             "start": 0,
 | |
|             "type": "Name"
 | |
|           },
 | |
|           "commentStart": 0,
 | |
|           "end": 0,
 | |
|           "start": 0,
 | |
|           "type": "CallExpressionKw",
 | |
|           "type": "CallExpressionKw",
 | |
|           "unlabeled": null
 | |
|         },
 | |
|         "start": 0,
 | |
|         "type": "ExpressionStatement",
 | |
|         "type": "ExpressionStatement"
 | |
|       },
 | |
|       {
 | |
|         "commentStart": 0,
 | |
|         "end": 0,
 | |
|         "expression": {
 | |
|           "arguments": [
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "originStart",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "commentStart": 0,
 | |
|                 "elements": [
 | |
|                   {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "left": {
 | |
|                       "abs_path": false,
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "name": {
 | |
|                         "commentStart": 0,
 | |
|                         "end": 0,
 | |
|                         "name": "spacing",
 | |
|                         "start": 0,
 | |
|                         "type": "Identifier"
 | |
|                       },
 | |
|                       "path": [],
 | |
|                       "start": 0,
 | |
|                       "type": "Name",
 | |
|                       "type": "Name"
 | |
|                     },
 | |
|                     "operator": "*",
 | |
|                     "right": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "raw": "3",
 | |
|                       "start": 0,
 | |
|                       "type": "Literal",
 | |
|                       "type": "Literal",
 | |
|                       "value": {
 | |
|                         "value": 3.0,
 | |
|                         "suffix": "None"
 | |
|                       }
 | |
|                     },
 | |
|                     "start": 0,
 | |
|                     "type": "BinaryExpression",
 | |
|                     "type": "BinaryExpression"
 | |
|                   },
 | |
|                   {
 | |
|                     "abs_path": false,
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "name": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "name": "row5",
 | |
|                       "start": 0,
 | |
|                       "type": "Identifier"
 | |
|                     },
 | |
|                     "path": [],
 | |
|                     "start": 0,
 | |
|                     "type": "Name",
 | |
|                     "type": "Name"
 | |
|                   }
 | |
|                 ],
 | |
|                 "end": 0,
 | |
|                 "start": 0,
 | |
|                 "type": "ArrayExpression",
 | |
|                 "type": "ArrayExpression"
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "keyWidth",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "raw": "0.8",
 | |
|                 "start": 0,
 | |
|                 "type": "Literal",
 | |
|                 "type": "Literal",
 | |
|                 "value": {
 | |
|                   "value": 0.8,
 | |
|                   "suffix": "None"
 | |
|                 }
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "keyHeight",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "abs_path": false,
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "keyHeight",
 | |
|                   "start": 0,
 | |
|                   "type": "Identifier"
 | |
|                 },
 | |
|                 "path": [],
 | |
|                 "start": 0,
 | |
|                 "type": "Name",
 | |
|                 "type": "Name"
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "repeats",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "raw": "12",
 | |
|                 "start": 0,
 | |
|                 "type": "Literal",
 | |
|                 "type": "Literal",
 | |
|                 "value": {
 | |
|                   "value": 12.0,
 | |
|                   "suffix": "None"
 | |
|                 }
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "color",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "abs_path": false,
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "highlightColor1",
 | |
|                   "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": "keyFn",
 | |
|               "start": 0,
 | |
|               "type": "Identifier"
 | |
|             },
 | |
|             "path": [],
 | |
|             "start": 0,
 | |
|             "type": "Name"
 | |
|           },
 | |
|           "commentStart": 0,
 | |
|           "end": 0,
 | |
|           "start": 0,
 | |
|           "type": "CallExpressionKw",
 | |
|           "type": "CallExpressionKw",
 | |
|           "unlabeled": null
 | |
|         },
 | |
|         "preComments": [
 | |
|           "",
 | |
|           "",
 | |
|           "// Build the fifth row of keys"
 | |
|         ],
 | |
|         "start": 0,
 | |
|         "type": "ExpressionStatement",
 | |
|         "type": "ExpressionStatement"
 | |
|       },
 | |
|       {
 | |
|         "commentStart": 0,
 | |
|         "end": 0,
 | |
|         "expression": {
 | |
|           "arguments": [
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "originStart",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "commentStart": 0,
 | |
|                 "elements": [
 | |
|                   {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "left": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "left": {
 | |
|                         "abs_path": false,
 | |
|                         "commentStart": 0,
 | |
|                         "end": 0,
 | |
|                         "name": {
 | |
|                           "commentStart": 0,
 | |
|                           "end": 0,
 | |
|                           "name": "spacing",
 | |
|                           "start": 0,
 | |
|                           "type": "Identifier"
 | |
|                         },
 | |
|                         "path": [],
 | |
|                         "start": 0,
 | |
|                         "type": "Name",
 | |
|                         "type": "Name"
 | |
|                       },
 | |
|                       "operator": "*",
 | |
|                       "right": {
 | |
|                         "commentStart": 0,
 | |
|                         "end": 0,
 | |
|                         "raw": "3",
 | |
|                         "start": 0,
 | |
|                         "type": "Literal",
 | |
|                         "type": "Literal",
 | |
|                         "value": {
 | |
|                           "value": 3.0,
 | |
|                           "suffix": "None"
 | |
|                         }
 | |
|                       },
 | |
|                       "start": 0,
 | |
|                       "type": "BinaryExpression",
 | |
|                       "type": "BinaryExpression"
 | |
|                     },
 | |
|                     "operator": "+",
 | |
|                     "right": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "raw": "11.7",
 | |
|                       "start": 0,
 | |
|                       "type": "Literal",
 | |
|                       "type": "Literal",
 | |
|                       "value": {
 | |
|                         "value": 11.7,
 | |
|                         "suffix": "None"
 | |
|                       }
 | |
|                     },
 | |
|                     "start": 0,
 | |
|                     "type": "BinaryExpression",
 | |
|                     "type": "BinaryExpression"
 | |
|                   },
 | |
|                   {
 | |
|                     "abs_path": false,
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "name": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "name": "row5",
 | |
|                       "start": 0,
 | |
|                       "type": "Identifier"
 | |
|                     },
 | |
|                     "path": [],
 | |
|                     "start": 0,
 | |
|                     "type": "Name",
 | |
|                     "type": "Name"
 | |
|                   }
 | |
|                 ],
 | |
|                 "end": 0,
 | |
|                 "start": 0,
 | |
|                 "type": "ArrayExpression",
 | |
|                 "type": "ArrayExpression"
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "keyWidth",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "raw": "1.3",
 | |
|                 "start": 0,
 | |
|                 "type": "Literal",
 | |
|                 "type": "Literal",
 | |
|                 "value": {
 | |
|                   "value": 1.3,
 | |
|                   "suffix": "None"
 | |
|                 }
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "keyHeight",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "abs_path": false,
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "keyHeight",
 | |
|                   "start": 0,
 | |
|                   "type": "Identifier"
 | |
|                 },
 | |
|                 "path": [],
 | |
|                 "start": 0,
 | |
|                 "type": "Name",
 | |
|                 "type": "Name"
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "repeats",
 | |
|                 "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": "color",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "abs_path": false,
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "highlightColor2",
 | |
|                   "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": "keyFn",
 | |
|               "start": 0,
 | |
|               "type": "Identifier"
 | |
|             },
 | |
|             "path": [],
 | |
|             "start": 0,
 | |
|             "type": "Name"
 | |
|           },
 | |
|           "commentStart": 0,
 | |
|           "end": 0,
 | |
|           "start": 0,
 | |
|           "type": "CallExpressionKw",
 | |
|           "type": "CallExpressionKw",
 | |
|           "unlabeled": null
 | |
|         },
 | |
|         "start": 0,
 | |
|         "type": "ExpressionStatement",
 | |
|         "type": "ExpressionStatement"
 | |
|       },
 | |
|       {
 | |
|         "commentStart": 0,
 | |
|         "end": 0,
 | |
|         "expression": {
 | |
|           "arguments": [
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "originStart",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "commentStart": 0,
 | |
|                 "elements": [
 | |
|                   {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "left": {
 | |
|                       "abs_path": false,
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "name": {
 | |
|                         "commentStart": 0,
 | |
|                         "end": 0,
 | |
|                         "name": "spacing",
 | |
|                         "start": 0,
 | |
|                         "type": "Identifier"
 | |
|                       },
 | |
|                       "path": [],
 | |
|                       "start": 0,
 | |
|                       "type": "Name",
 | |
|                       "type": "Name"
 | |
|                     },
 | |
|                     "operator": "*",
 | |
|                     "right": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "raw": "3",
 | |
|                       "start": 0,
 | |
|                       "type": "Literal",
 | |
|                       "type": "Literal",
 | |
|                       "value": {
 | |
|                         "value": 3.0,
 | |
|                         "suffix": "None"
 | |
|                       }
 | |
|                     },
 | |
|                     "start": 0,
 | |
|                     "type": "BinaryExpression",
 | |
|                     "type": "BinaryExpression"
 | |
|                   },
 | |
|                   {
 | |
|                     "abs_path": false,
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "name": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "name": "row6",
 | |
|                       "start": 0,
 | |
|                       "type": "Identifier"
 | |
|                     },
 | |
|                     "path": [],
 | |
|                     "start": 0,
 | |
|                     "type": "Name",
 | |
|                     "type": "Name"
 | |
|                   }
 | |
|                 ],
 | |
|                 "end": 0,
 | |
|                 "start": 0,
 | |
|                 "type": "ArrayExpression",
 | |
|                 "type": "ArrayExpression"
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "keyWidth",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "raw": "1.1",
 | |
|                 "start": 0,
 | |
|                 "type": "Literal",
 | |
|                 "type": "Literal",
 | |
|                 "value": {
 | |
|                   "value": 1.1,
 | |
|                   "suffix": "None"
 | |
|                 }
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "keyHeight",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "left": {
 | |
|                   "abs_path": false,
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "name": "keyHeight",
 | |
|                     "start": 0,
 | |
|                     "type": "Identifier"
 | |
|                   },
 | |
|                   "path": [],
 | |
|                   "start": 0,
 | |
|                   "type": "Name",
 | |
|                   "type": "Name"
 | |
|                 },
 | |
|                 "operator": "*",
 | |
|                 "right": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "raw": ".6",
 | |
|                   "start": 0,
 | |
|                   "type": "Literal",
 | |
|                   "type": "Literal",
 | |
|                   "value": {
 | |
|                     "value": 0.6,
 | |
|                     "suffix": "None"
 | |
|                   }
 | |
|                 },
 | |
|                 "start": 0,
 | |
|                 "type": "BinaryExpression",
 | |
|                 "type": "BinaryExpression"
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "repeats",
 | |
|                 "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": "color",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "abs_path": false,
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "highlightColor2",
 | |
|                   "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": "keyFn",
 | |
|               "start": 0,
 | |
|               "type": "Identifier"
 | |
|             },
 | |
|             "path": [],
 | |
|             "start": 0,
 | |
|             "type": "Name"
 | |
|           },
 | |
|           "commentStart": 0,
 | |
|           "end": 0,
 | |
|           "start": 0,
 | |
|           "type": "CallExpressionKw",
 | |
|           "type": "CallExpressionKw",
 | |
|           "unlabeled": null
 | |
|         },
 | |
|         "preComments": [
 | |
|           "",
 | |
|           "",
 | |
|           "// Build the sixth row of keys"
 | |
|         ],
 | |
|         "start": 0,
 | |
|         "type": "ExpressionStatement",
 | |
|         "type": "ExpressionStatement"
 | |
|       },
 | |
|       {
 | |
|         "commentStart": 0,
 | |
|         "end": 0,
 | |
|         "expression": {
 | |
|           "arguments": [
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "originStart",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "commentStart": 0,
 | |
|                 "elements": [
 | |
|                   {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "left": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "left": {
 | |
|                         "abs_path": false,
 | |
|                         "commentStart": 0,
 | |
|                         "end": 0,
 | |
|                         "name": {
 | |
|                           "commentStart": 0,
 | |
|                           "end": 0,
 | |
|                           "name": "spacing",
 | |
|                           "start": 0,
 | |
|                           "type": "Identifier"
 | |
|                         },
 | |
|                         "path": [],
 | |
|                         "start": 0,
 | |
|                         "type": "Name",
 | |
|                         "type": "Name"
 | |
|                       },
 | |
|                       "operator": "*",
 | |
|                       "right": {
 | |
|                         "commentStart": 0,
 | |
|                         "end": 0,
 | |
|                         "raw": "4",
 | |
|                         "start": 0,
 | |
|                         "type": "Literal",
 | |
|                         "type": "Literal",
 | |
|                         "value": {
 | |
|                           "value": 4.0,
 | |
|                           "suffix": "None"
 | |
|                         }
 | |
|                       },
 | |
|                       "start": 0,
 | |
|                       "type": "BinaryExpression",
 | |
|                       "type": "BinaryExpression"
 | |
|                     },
 | |
|                     "operator": "+",
 | |
|                     "right": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "raw": "1.1",
 | |
|                       "start": 0,
 | |
|                       "type": "Literal",
 | |
|                       "type": "Literal",
 | |
|                       "value": {
 | |
|                         "value": 1.1,
 | |
|                         "suffix": "None"
 | |
|                       }
 | |
|                     },
 | |
|                     "start": 0,
 | |
|                     "type": "BinaryExpression",
 | |
|                     "type": "BinaryExpression"
 | |
|                   },
 | |
|                   {
 | |
|                     "abs_path": false,
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "name": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "name": "row6",
 | |
|                       "start": 0,
 | |
|                       "type": "Identifier"
 | |
|                     },
 | |
|                     "path": [],
 | |
|                     "start": 0,
 | |
|                     "type": "Name",
 | |
|                     "type": "Name"
 | |
|                   }
 | |
|                 ],
 | |
|                 "end": 0,
 | |
|                 "start": 0,
 | |
|                 "type": "ArrayExpression",
 | |
|                 "type": "ArrayExpression"
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "keyWidth",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "raw": "0.8",
 | |
|                 "start": 0,
 | |
|                 "type": "Literal",
 | |
|                 "type": "Literal",
 | |
|                 "value": {
 | |
|                   "value": 0.8,
 | |
|                   "suffix": "None"
 | |
|                 }
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "keyHeight",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "left": {
 | |
|                   "abs_path": false,
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "name": "keyHeight",
 | |
|                     "start": 0,
 | |
|                     "type": "Identifier"
 | |
|                   },
 | |
|                   "path": [],
 | |
|                   "start": 0,
 | |
|                   "type": "Name",
 | |
|                   "type": "Name"
 | |
|                 },
 | |
|                 "operator": "*",
 | |
|                 "right": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "raw": ".6",
 | |
|                   "start": 0,
 | |
|                   "type": "Literal",
 | |
|                   "type": "Literal",
 | |
|                   "value": {
 | |
|                     "value": 0.6,
 | |
|                     "suffix": "None"
 | |
|                   }
 | |
|                 },
 | |
|                 "start": 0,
 | |
|                 "type": "BinaryExpression",
 | |
|                 "type": "BinaryExpression"
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "repeats",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "raw": "11",
 | |
|                 "start": 0,
 | |
|                 "type": "Literal",
 | |
|                 "type": "Literal",
 | |
|                 "value": {
 | |
|                   "value": 11.0,
 | |
|                   "suffix": "None"
 | |
|                 }
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "color",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "abs_path": false,
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "highlightColor1",
 | |
|                   "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": "keyFn",
 | |
|               "start": 0,
 | |
|               "type": "Identifier"
 | |
|             },
 | |
|             "path": [],
 | |
|             "start": 0,
 | |
|             "type": "Name"
 | |
|           },
 | |
|           "commentStart": 0,
 | |
|           "end": 0,
 | |
|           "start": 0,
 | |
|           "type": "CallExpressionKw",
 | |
|           "type": "CallExpressionKw",
 | |
|           "unlabeled": null
 | |
|         },
 | |
|         "start": 0,
 | |
|         "type": "ExpressionStatement",
 | |
|         "type": "ExpressionStatement"
 | |
|       },
 | |
|       {
 | |
|         "commentStart": 0,
 | |
|         "end": 0,
 | |
|         "expression": {
 | |
|           "arguments": [
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "originStart",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "commentStart": 0,
 | |
|                 "elements": [
 | |
|                   {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "left": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "left": {
 | |
|                         "abs_path": false,
 | |
|                         "commentStart": 0,
 | |
|                         "end": 0,
 | |
|                         "name": {
 | |
|                           "commentStart": 0,
 | |
|                           "end": 0,
 | |
|                           "name": "spacing",
 | |
|                           "start": 0,
 | |
|                           "type": "Identifier"
 | |
|                         },
 | |
|                         "path": [],
 | |
|                         "start": 0,
 | |
|                         "type": "Name",
 | |
|                         "type": "Name"
 | |
|                       },
 | |
|                       "operator": "*",
 | |
|                       "right": {
 | |
|                         "commentStart": 0,
 | |
|                         "end": 0,
 | |
|                         "raw": "3",
 | |
|                         "start": 0,
 | |
|                         "type": "Literal",
 | |
|                         "type": "Literal",
 | |
|                         "value": {
 | |
|                           "value": 3.0,
 | |
|                           "suffix": "None"
 | |
|                         }
 | |
|                       },
 | |
|                       "start": 0,
 | |
|                       "type": "BinaryExpression",
 | |
|                       "type": "BinaryExpression"
 | |
|                     },
 | |
|                     "operator": "+",
 | |
|                     "right": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "raw": "12",
 | |
|                       "start": 0,
 | |
|                       "type": "Literal",
 | |
|                       "type": "Literal",
 | |
|                       "value": {
 | |
|                         "value": 12.0,
 | |
|                         "suffix": "None"
 | |
|                       }
 | |
|                     },
 | |
|                     "start": 0,
 | |
|                     "type": "BinaryExpression",
 | |
|                     "type": "BinaryExpression"
 | |
|                   },
 | |
|                   {
 | |
|                     "abs_path": false,
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "name": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "name": "row6",
 | |
|                       "start": 0,
 | |
|                       "type": "Identifier"
 | |
|                     },
 | |
|                     "path": [],
 | |
|                     "start": 0,
 | |
|                     "type": "Name",
 | |
|                     "type": "Name"
 | |
|                   }
 | |
|                 ],
 | |
|                 "end": 0,
 | |
|                 "start": 0,
 | |
|                 "type": "ArrayExpression",
 | |
|                 "type": "ArrayExpression"
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "keyWidth",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "raw": "1",
 | |
|                 "start": 0,
 | |
|                 "type": "Literal",
 | |
|                 "type": "Literal",
 | |
|                 "value": {
 | |
|                   "value": 1.0,
 | |
|                   "suffix": "None"
 | |
|                 }
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "keyHeight",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "left": {
 | |
|                   "abs_path": false,
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "name": "keyHeight",
 | |
|                     "start": 0,
 | |
|                     "type": "Identifier"
 | |
|                   },
 | |
|                   "path": [],
 | |
|                   "start": 0,
 | |
|                   "type": "Name",
 | |
|                   "type": "Name"
 | |
|                 },
 | |
|                 "operator": "*",
 | |
|                 "right": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "raw": ".6",
 | |
|                   "start": 0,
 | |
|                   "type": "Literal",
 | |
|                   "type": "Literal",
 | |
|                   "value": {
 | |
|                     "value": 0.6,
 | |
|                     "suffix": "None"
 | |
|                   }
 | |
|                 },
 | |
|                 "start": 0,
 | |
|                 "type": "BinaryExpression",
 | |
|                 "type": "BinaryExpression"
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "repeats",
 | |
|                 "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": "color",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "abs_path": false,
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "highlightColor2",
 | |
|                   "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": "keyFn",
 | |
|               "start": 0,
 | |
|               "type": "Identifier"
 | |
|             },
 | |
|             "path": [],
 | |
|             "start": 0,
 | |
|             "type": "Name"
 | |
|           },
 | |
|           "commentStart": 0,
 | |
|           "end": 0,
 | |
|           "start": 0,
 | |
|           "type": "CallExpressionKw",
 | |
|           "type": "CallExpressionKw",
 | |
|           "unlabeled": null
 | |
|         },
 | |
|         "start": 0,
 | |
|         "type": "ExpressionStatement",
 | |
|         "type": "ExpressionStatement"
 | |
|       },
 | |
|       {
 | |
|         "commentStart": 0,
 | |
|         "declaration": {
 | |
|           "commentStart": 0,
 | |
|           "end": 0,
 | |
|           "id": {
 | |
|             "commentStart": 0,
 | |
|             "end": 0,
 | |
|             "name": "plane002",
 | |
|             "start": 0,
 | |
|             "type": "Identifier"
 | |
|           },
 | |
|           "init": {
 | |
|             "commentStart": 0,
 | |
|             "end": 0,
 | |
|             "properties": [
 | |
|               {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "key": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "origin",
 | |
|                   "start": 0,
 | |
|                   "type": "Identifier"
 | |
|                 },
 | |
|                 "start": 0,
 | |
|                 "type": "ObjectProperty",
 | |
|                 "value": {
 | |
|                   "commentStart": 0,
 | |
|                   "elements": [
 | |
|                     {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "raw": "0.0",
 | |
|                       "start": 0,
 | |
|                       "type": "Literal",
 | |
|                       "type": "Literal",
 | |
|                       "value": {
 | |
|                         "value": 0.0,
 | |
|                         "suffix": "None"
 | |
|                       }
 | |
|                     },
 | |
|                     {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "raw": "0.0",
 | |
|                       "start": 0,
 | |
|                       "type": "Literal",
 | |
|                       "type": "Literal",
 | |
|                       "value": {
 | |
|                         "value": 0.0,
 | |
|                         "suffix": "None"
 | |
|                       }
 | |
|                     },
 | |
|                     {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "raw": ".81",
 | |
|                       "start": 0,
 | |
|                       "type": "Literal",
 | |
|                       "type": "Literal",
 | |
|                       "value": {
 | |
|                         "value": 0.81,
 | |
|                         "suffix": "None"
 | |
|                       }
 | |
|                     }
 | |
|                   ],
 | |
|                   "end": 0,
 | |
|                   "start": 0,
 | |
|                   "type": "ArrayExpression",
 | |
|                   "type": "ArrayExpression"
 | |
|                 }
 | |
|               },
 | |
|               {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "key": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "xAxis",
 | |
|                   "start": 0,
 | |
|                   "type": "Identifier"
 | |
|                 },
 | |
|                 "start": 0,
 | |
|                 "type": "ObjectProperty",
 | |
|                 "value": {
 | |
|                   "commentStart": 0,
 | |
|                   "elements": [
 | |
|                     {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "raw": "1.0",
 | |
|                       "start": 0,
 | |
|                       "type": "Literal",
 | |
|                       "type": "Literal",
 | |
|                       "value": {
 | |
|                         "value": 1.0,
 | |
|                         "suffix": "None"
 | |
|                       }
 | |
|                     },
 | |
|                     {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "raw": "0.0",
 | |
|                       "start": 0,
 | |
|                       "type": "Literal",
 | |
|                       "type": "Literal",
 | |
|                       "value": {
 | |
|                         "value": 0.0,
 | |
|                         "suffix": "None"
 | |
|                       }
 | |
|                     },
 | |
|                     {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "raw": "0.0",
 | |
|                       "start": 0,
 | |
|                       "type": "Literal",
 | |
|                       "type": "Literal",
 | |
|                       "value": {
 | |
|                         "value": 0.0,
 | |
|                         "suffix": "None"
 | |
|                       }
 | |
|                     }
 | |
|                   ],
 | |
|                   "end": 0,
 | |
|                   "start": 0,
 | |
|                   "type": "ArrayExpression",
 | |
|                   "type": "ArrayExpression"
 | |
|                 }
 | |
|               },
 | |
|               {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "key": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "yAxis",
 | |
|                   "start": 0,
 | |
|                   "type": "Identifier"
 | |
|                 },
 | |
|                 "start": 0,
 | |
|                 "type": "ObjectProperty",
 | |
|                 "value": {
 | |
|                   "commentStart": 0,
 | |
|                   "elements": [
 | |
|                     {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "raw": "0.0",
 | |
|                       "start": 0,
 | |
|                       "type": "Literal",
 | |
|                       "type": "Literal",
 | |
|                       "value": {
 | |
|                         "value": 0.0,
 | |
|                         "suffix": "None"
 | |
|                       }
 | |
|                     },
 | |
|                     {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "raw": "1.0",
 | |
|                       "start": 0,
 | |
|                       "type": "Literal",
 | |
|                       "type": "Literal",
 | |
|                       "value": {
 | |
|                         "value": 1.0,
 | |
|                         "suffix": "None"
 | |
|                       }
 | |
|                     },
 | |
|                     {
 | |
|                       "callee": {
 | |
|                         "abs_path": false,
 | |
|                         "commentStart": 0,
 | |
|                         "end": 0,
 | |
|                         "name": {
 | |
|                           "commentStart": 0,
 | |
|                           "end": 0,
 | |
|                           "name": "sin",
 | |
|                           "start": 0,
 | |
|                           "type": "Identifier"
 | |
|                         },
 | |
|                         "path": [],
 | |
|                         "start": 0,
 | |
|                         "type": "Name"
 | |
|                       },
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "start": 0,
 | |
|                       "type": "CallExpressionKw",
 | |
|                       "type": "CallExpressionKw",
 | |
|                       "unlabeled": {
 | |
|                         "commentStart": 0,
 | |
|                         "end": 0,
 | |
|                         "raw": "7deg",
 | |
|                         "start": 0,
 | |
|                         "type": "Literal",
 | |
|                         "type": "Literal",
 | |
|                         "value": {
 | |
|                           "value": 7.0,
 | |
|                           "suffix": "Deg"
 | |
|                         }
 | |
|                       }
 | |
|                     }
 | |
|                   ],
 | |
|                   "end": 0,
 | |
|                   "start": 0,
 | |
|                   "type": "ArrayExpression",
 | |
|                   "type": "ArrayExpression"
 | |
|                 }
 | |
|               },
 | |
|               {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "key": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "zAxis",
 | |
|                   "start": 0,
 | |
|                   "type": "Identifier"
 | |
|                 },
 | |
|                 "start": 0,
 | |
|                 "type": "ObjectProperty",
 | |
|                 "value": {
 | |
|                   "commentStart": 0,
 | |
|                   "elements": [
 | |
|                     {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "raw": "0.0",
 | |
|                       "start": 0,
 | |
|                       "type": "Literal",
 | |
|                       "type": "Literal",
 | |
|                       "value": {
 | |
|                         "value": 0.0,
 | |
|                         "suffix": "None"
 | |
|                       }
 | |
|                     },
 | |
|                     {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "raw": "0.0",
 | |
|                       "start": 0,
 | |
|                       "type": "Literal",
 | |
|                       "type": "Literal",
 | |
|                       "value": {
 | |
|                         "value": 0.0,
 | |
|                         "suffix": "None"
 | |
|                       }
 | |
|                     },
 | |
|                     {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "raw": "1.0",
 | |
|                       "start": 0,
 | |
|                       "type": "Literal",
 | |
|                       "type": "Literal",
 | |
|                       "value": {
 | |
|                         "value": 1.0,
 | |
|                         "suffix": "None"
 | |
|                       }
 | |
|                     }
 | |
|                   ],
 | |
|                   "end": 0,
 | |
|                   "start": 0,
 | |
|                   "type": "ArrayExpression",
 | |
|                   "type": "ArrayExpression"
 | |
|                 }
 | |
|               }
 | |
|             ],
 | |
|             "start": 0,
 | |
|             "type": "ObjectExpression",
 | |
|             "type": "ObjectExpression"
 | |
|           },
 | |
|           "start": 0,
 | |
|           "type": "VariableDeclarator"
 | |
|         },
 | |
|         "end": 0,
 | |
|         "kind": "const",
 | |
|         "preComments": [
 | |
|           "",
 | |
|           "",
 | |
|           "// Create a plane to sketch ZOO brand letters on"
 | |
|         ],
 | |
|         "start": 0,
 | |
|         "type": "VariableDeclaration",
 | |
|         "type": "VariableDeclaration"
 | |
|       },
 | |
|       {
 | |
|         "commentStart": 0,
 | |
|         "declaration": {
 | |
|           "commentStart": 0,
 | |
|           "end": 0,
 | |
|           "id": {
 | |
|             "commentStart": 0,
 | |
|             "end": 0,
 | |
|             "name": "z",
 | |
|             "start": 0,
 | |
|             "type": "Identifier"
 | |
|           },
 | |
|           "init": {
 | |
|             "body": {
 | |
|               "body": [
 | |
|                 {
 | |
|                   "commentStart": 0,
 | |
|                   "declaration": {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "id": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "name": "z",
 | |
|                       "start": 0,
 | |
|                       "type": "Identifier"
 | |
|                     },
 | |
|                     "init": {
 | |
|                       "body": [
 | |
|                         {
 | |
|                           "callee": {
 | |
|                             "abs_path": false,
 | |
|                             "commentStart": 0,
 | |
|                             "end": 0,
 | |
|                             "name": {
 | |
|                               "commentStart": 0,
 | |
|                               "end": 0,
 | |
|                               "name": "startSketchOn",
 | |
|                               "start": 0,
 | |
|                               "type": "Identifier"
 | |
|                             },
 | |
|                             "path": [],
 | |
|                             "start": 0,
 | |
|                             "type": "Name"
 | |
|                           },
 | |
|                           "commentStart": 0,
 | |
|                           "end": 0,
 | |
|                           "start": 0,
 | |
|                           "type": "CallExpressionKw",
 | |
|                           "type": "CallExpressionKw",
 | |
|                           "unlabeled": {
 | |
|                             "abs_path": false,
 | |
|                             "commentStart": 0,
 | |
|                             "end": 0,
 | |
|                             "name": {
 | |
|                               "commentStart": 0,
 | |
|                               "end": 0,
 | |
|                               "name": "plane002",
 | |
|                               "start": 0,
 | |
|                               "type": "Identifier"
 | |
|                             },
 | |
|                             "path": [],
 | |
|                             "start": 0,
 | |
|                             "type": "Name",
 | |
|                             "type": "Name"
 | |
|                           }
 | |
|                         },
 | |
|                         {
 | |
|                           "arguments": [
 | |
|                             {
 | |
|                               "type": "LabeledArg",
 | |
|                               "label": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "name": "at",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "arg": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "elements": [
 | |
|                                   {
 | |
|                                     "commentStart": 0,
 | |
|                                     "end": 0,
 | |
|                                     "left": {
 | |
|                                       "commentStart": 0,
 | |
|                                       "end": 0,
 | |
|                                       "raw": "0",
 | |
|                                       "start": 0,
 | |
|                                       "type": "Literal",
 | |
|                                       "type": "Literal",
 | |
|                                       "value": {
 | |
|                                         "value": 0.0,
 | |
|                                         "suffix": "None"
 | |
|                                       }
 | |
|                                     },
 | |
|                                     "operator": "+",
 | |
|                                     "right": {
 | |
|                                       "commentStart": 0,
 | |
|                                       "computed": false,
 | |
|                                       "end": 0,
 | |
|                                       "object": {
 | |
|                                         "commentStart": 0,
 | |
|                                         "end": 0,
 | |
|                                         "name": "origin",
 | |
|                                         "start": 0,
 | |
|                                         "type": "Identifier",
 | |
|                                         "type": "Identifier"
 | |
|                                       },
 | |
|                                       "property": {
 | |
|                                         "commentStart": 0,
 | |
|                                         "end": 0,
 | |
|                                         "raw": "0",
 | |
|                                         "start": 0,
 | |
|                                         "type": "Literal",
 | |
|                                         "type": "Literal",
 | |
|                                         "value": {
 | |
|                                           "value": 0.0,
 | |
|                                           "suffix": "None"
 | |
|                                         }
 | |
|                                       },
 | |
|                                       "start": 0,
 | |
|                                       "type": "MemberExpression",
 | |
|                                       "type": "MemberExpression"
 | |
|                                     },
 | |
|                                     "start": 0,
 | |
|                                     "type": "BinaryExpression",
 | |
|                                     "type": "BinaryExpression"
 | |
|                                   },
 | |
|                                   {
 | |
|                                     "commentStart": 0,
 | |
|                                     "end": 0,
 | |
|                                     "left": {
 | |
|                                       "commentStart": 0,
 | |
|                                       "end": 0,
 | |
|                                       "left": {
 | |
|                                         "commentStart": 0,
 | |
|                                         "end": 0,
 | |
|                                         "raw": "0.15",
 | |
|                                         "start": 0,
 | |
|                                         "type": "Literal",
 | |
|                                         "type": "Literal",
 | |
|                                         "value": {
 | |
|                                           "value": 0.15,
 | |
|                                           "suffix": "None"
 | |
|                                         }
 | |
|                                       },
 | |
|                                       "operator": "*",
 | |
|                                       "right": {
 | |
|                                         "abs_path": false,
 | |
|                                         "commentStart": 0,
 | |
|                                         "end": 0,
 | |
|                                         "name": {
 | |
|                                           "commentStart": 0,
 | |
|                                           "end": 0,
 | |
|                                           "name": "scale",
 | |
|                                           "start": 0,
 | |
|                                           "type": "Identifier"
 | |
|                                         },
 | |
|                                         "path": [],
 | |
|                                         "start": 0,
 | |
|                                         "type": "Name",
 | |
|                                         "type": "Name"
 | |
|                                       },
 | |
|                                       "start": 0,
 | |
|                                       "type": "BinaryExpression",
 | |
|                                       "type": "BinaryExpression"
 | |
|                                     },
 | |
|                                     "operator": "+",
 | |
|                                     "right": {
 | |
|                                       "commentStart": 0,
 | |
|                                       "computed": false,
 | |
|                                       "end": 0,
 | |
|                                       "object": {
 | |
|                                         "commentStart": 0,
 | |
|                                         "end": 0,
 | |
|                                         "name": "origin",
 | |
|                                         "start": 0,
 | |
|                                         "type": "Identifier",
 | |
|                                         "type": "Identifier"
 | |
|                                       },
 | |
|                                       "property": {
 | |
|                                         "commentStart": 0,
 | |
|                                         "end": 0,
 | |
|                                         "raw": "1",
 | |
|                                         "start": 0,
 | |
|                                         "type": "Literal",
 | |
|                                         "type": "Literal",
 | |
|                                         "value": {
 | |
|                                           "value": 1.0,
 | |
|                                           "suffix": "None"
 | |
|                                         }
 | |
|                                       },
 | |
|                                       "start": 0,
 | |
|                                       "type": "MemberExpression",
 | |
|                                       "type": "MemberExpression"
 | |
|                                     },
 | |
|                                     "start": 0,
 | |
|                                     "type": "BinaryExpression",
 | |
|                                     "type": "BinaryExpression"
 | |
|                                   }
 | |
|                                 ],
 | |
|                                 "end": 0,
 | |
|                                 "start": 0,
 | |
|                                 "type": "ArrayExpression",
 | |
|                                 "type": "ArrayExpression"
 | |
|                               }
 | |
|                             }
 | |
|                           ],
 | |
|                           "callee": {
 | |
|                             "abs_path": false,
 | |
|                             "commentStart": 0,
 | |
|                             "end": 0,
 | |
|                             "name": {
 | |
|                               "commentStart": 0,
 | |
|                               "end": 0,
 | |
|                               "name": "startProfile",
 | |
|                               "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": "length",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "arg": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "left": {
 | |
|                                   "argument": {
 | |
|                                     "commentStart": 0,
 | |
|                                     "end": 0,
 | |
|                                     "raw": "0.15",
 | |
|                                     "start": 0,
 | |
|                                     "type": "Literal",
 | |
|                                     "type": "Literal",
 | |
|                                     "value": {
 | |
|                                       "value": 0.15,
 | |
|                                       "suffix": "None"
 | |
|                                     }
 | |
|                                   },
 | |
|                                   "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": "scale",
 | |
|                                     "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": "yLine",
 | |
|                               "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": "length",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "arg": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "left": {
 | |
|                                   "commentStart": 0,
 | |
|                                   "end": 0,
 | |
|                                   "raw": "0.15",
 | |
|                                   "start": 0,
 | |
|                                   "type": "Literal",
 | |
|                                   "type": "Literal",
 | |
|                                   "value": {
 | |
|                                     "value": 0.15,
 | |
|                                     "suffix": "None"
 | |
|                                   }
 | |
|                                 },
 | |
|                                 "operator": "*",
 | |
|                                 "right": {
 | |
|                                   "abs_path": false,
 | |
|                                   "commentStart": 0,
 | |
|                                   "end": 0,
 | |
|                                   "name": {
 | |
|                                     "commentStart": 0,
 | |
|                                     "end": 0,
 | |
|                                     "name": "scale",
 | |
|                                     "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": "xLine",
 | |
|                               "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": "angle",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "arg": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "raw": "47.15",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Literal",
 | |
|                                 "type": "Literal",
 | |
|                                 "value": {
 | |
|                                   "value": 47.15,
 | |
|                                   "suffix": "None"
 | |
|                                 }
 | |
|                               }
 | |
|                             },
 | |
|                             {
 | |
|                               "type": "LabeledArg",
 | |
|                               "label": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "name": "endAbsoluteX",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "arg": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "left": {
 | |
|                                   "commentStart": 0,
 | |
|                                   "end": 0,
 | |
|                                   "left": {
 | |
|                                     "commentStart": 0,
 | |
|                                     "end": 0,
 | |
|                                     "raw": "0.3",
 | |
|                                     "start": 0,
 | |
|                                     "type": "Literal",
 | |
|                                     "type": "Literal",
 | |
|                                     "value": {
 | |
|                                       "value": 0.3,
 | |
|                                       "suffix": "None"
 | |
|                                     }
 | |
|                                   },
 | |
|                                   "operator": "*",
 | |
|                                   "right": {
 | |
|                                     "abs_path": false,
 | |
|                                     "commentStart": 0,
 | |
|                                     "end": 0,
 | |
|                                     "name": {
 | |
|                                       "commentStart": 0,
 | |
|                                       "end": 0,
 | |
|                                       "name": "scale",
 | |
|                                       "start": 0,
 | |
|                                       "type": "Identifier"
 | |
|                                     },
 | |
|                                     "path": [],
 | |
|                                     "start": 0,
 | |
|                                     "type": "Name",
 | |
|                                     "type": "Name"
 | |
|                                   },
 | |
|                                   "start": 0,
 | |
|                                   "type": "BinaryExpression",
 | |
|                                   "type": "BinaryExpression"
 | |
|                                 },
 | |
|                                 "operator": "+",
 | |
|                                 "right": {
 | |
|                                   "commentStart": 0,
 | |
|                                   "computed": false,
 | |
|                                   "end": 0,
 | |
|                                   "object": {
 | |
|                                     "commentStart": 0,
 | |
|                                     "end": 0,
 | |
|                                     "name": "origin",
 | |
|                                     "start": 0,
 | |
|                                     "type": "Identifier",
 | |
|                                     "type": "Identifier"
 | |
|                                   },
 | |
|                                   "property": {
 | |
|                                     "commentStart": 0,
 | |
|                                     "end": 0,
 | |
|                                     "raw": "0",
 | |
|                                     "start": 0,
 | |
|                                     "type": "Literal",
 | |
|                                     "type": "Literal",
 | |
|                                     "value": {
 | |
|                                       "value": 0.0,
 | |
|                                       "suffix": "None"
 | |
|                                     }
 | |
|                                   },
 | |
|                                   "start": 0,
 | |
|                                   "type": "MemberExpression",
 | |
|                                   "type": "MemberExpression"
 | |
|                                 },
 | |
|                                 "start": 0,
 | |
|                                 "type": "BinaryExpression",
 | |
|                                 "type": "BinaryExpression"
 | |
|                               }
 | |
|                             },
 | |
|                             {
 | |
|                               "type": "LabeledArg",
 | |
|                               "label": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "name": "tag",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "arg": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "start": 0,
 | |
|                                 "type": "TagDeclarator",
 | |
|                                 "type": "TagDeclarator",
 | |
|                                 "value": "seg1"
 | |
|                               }
 | |
|                             }
 | |
|                           ],
 | |
|                           "callee": {
 | |
|                             "abs_path": false,
 | |
|                             "commentStart": 0,
 | |
|                             "end": 0,
 | |
|                             "name": {
 | |
|                               "commentStart": 0,
 | |
|                               "end": 0,
 | |
|                               "name": "angledLine",
 | |
|                               "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": "endAbsolute",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "arg": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "left": {
 | |
|                                   "commentStart": 0,
 | |
|                                   "end": 0,
 | |
|                                   "raw": "0",
 | |
|                                   "start": 0,
 | |
|                                   "type": "Literal",
 | |
|                                   "type": "Literal",
 | |
|                                   "value": {
 | |
|                                     "value": 0.0,
 | |
|                                     "suffix": "None"
 | |
|                                   }
 | |
|                                 },
 | |
|                                 "operator": "+",
 | |
|                                 "right": {
 | |
|                                   "commentStart": 0,
 | |
|                                   "computed": false,
 | |
|                                   "end": 0,
 | |
|                                   "object": {
 | |
|                                     "commentStart": 0,
 | |
|                                     "end": 0,
 | |
|                                     "name": "origin",
 | |
|                                     "start": 0,
 | |
|                                     "type": "Identifier",
 | |
|                                     "type": "Identifier"
 | |
|                                   },
 | |
|                                   "property": {
 | |
|                                     "commentStart": 0,
 | |
|                                     "end": 0,
 | |
|                                     "raw": "1",
 | |
|                                     "start": 0,
 | |
|                                     "type": "Literal",
 | |
|                                     "type": "Literal",
 | |
|                                     "value": {
 | |
|                                       "value": 1.0,
 | |
|                                       "suffix": "None"
 | |
|                                     }
 | |
|                                   },
 | |
|                                   "start": 0,
 | |
|                                   "type": "MemberExpression",
 | |
|                                   "type": "MemberExpression"
 | |
|                                 },
 | |
|                                 "start": 0,
 | |
|                                 "type": "BinaryExpression",
 | |
|                                 "type": "BinaryExpression"
 | |
|                               }
 | |
|                             },
 | |
|                             {
 | |
|                               "type": "LabeledArg",
 | |
|                               "label": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "name": "tag",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "arg": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "start": 0,
 | |
|                                 "type": "TagDeclarator",
 | |
|                                 "type": "TagDeclarator",
 | |
|                                 "value": "seg3"
 | |
|                               }
 | |
|                             }
 | |
|                           ],
 | |
|                           "callee": {
 | |
|                             "abs_path": false,
 | |
|                             "commentStart": 0,
 | |
|                             "end": 0,
 | |
|                             "name": {
 | |
|                               "commentStart": 0,
 | |
|                               "end": 0,
 | |
|                               "name": "yLine",
 | |
|                               "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": "length",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "arg": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "left": {
 | |
|                                   "commentStart": 0,
 | |
|                                   "end": 0,
 | |
|                                   "raw": "0.63",
 | |
|                                   "start": 0,
 | |
|                                   "type": "Literal",
 | |
|                                   "type": "Literal",
 | |
|                                   "value": {
 | |
|                                     "value": 0.63,
 | |
|                                     "suffix": "None"
 | |
|                                   }
 | |
|                                 },
 | |
|                                 "operator": "*",
 | |
|                                 "right": {
 | |
|                                   "abs_path": false,
 | |
|                                   "commentStart": 0,
 | |
|                                   "end": 0,
 | |
|                                   "name": {
 | |
|                                     "commentStart": 0,
 | |
|                                     "end": 0,
 | |
|                                     "name": "scale",
 | |
|                                     "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": "xLine",
 | |
|                               "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": "length",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "arg": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "left": {
 | |
|                                   "commentStart": 0,
 | |
|                                   "end": 0,
 | |
|                                   "raw": "0.225",
 | |
|                                   "start": 0,
 | |
|                                   "type": "Literal",
 | |
|                                   "type": "Literal",
 | |
|                                   "value": {
 | |
|                                     "value": 0.225,
 | |
|                                     "suffix": "None"
 | |
|                                   }
 | |
|                                 },
 | |
|                                 "operator": "*",
 | |
|                                 "right": {
 | |
|                                   "abs_path": false,
 | |
|                                   "commentStart": 0,
 | |
|                                   "end": 0,
 | |
|                                   "name": {
 | |
|                                     "commentStart": 0,
 | |
|                                     "end": 0,
 | |
|                                     "name": "scale",
 | |
|                                     "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": "yLine",
 | |
|                               "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": "length",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "arg": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "left": {
 | |
|                                   "argument": {
 | |
|                                     "commentStart": 0,
 | |
|                                     "end": 0,
 | |
|                                     "raw": "0.57",
 | |
|                                     "start": 0,
 | |
|                                     "type": "Literal",
 | |
|                                     "type": "Literal",
 | |
|                                     "value": {
 | |
|                                       "value": 0.57,
 | |
|                                       "suffix": "None"
 | |
|                                     }
 | |
|                                   },
 | |
|                                   "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": "scale",
 | |
|                                     "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": "xLine",
 | |
|                               "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": "angle",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "arg": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "raw": "47.15",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Literal",
 | |
|                                 "type": "Literal",
 | |
|                                 "value": {
 | |
|                                   "value": 47.15,
 | |
|                                   "suffix": "None"
 | |
|                                 }
 | |
|                               }
 | |
|                             },
 | |
|                             {
 | |
|                               "type": "LabeledArg",
 | |
|                               "label": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "name": "endAbsoluteX",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "arg": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "left": {
 | |
|                                   "commentStart": 0,
 | |
|                                   "end": 0,
 | |
|                                   "left": {
 | |
|                                     "commentStart": 0,
 | |
|                                     "end": 0,
 | |
|                                     "raw": "0.93",
 | |
|                                     "start": 0,
 | |
|                                     "type": "Literal",
 | |
|                                     "type": "Literal",
 | |
|                                     "value": {
 | |
|                                       "value": 0.93,
 | |
|                                       "suffix": "None"
 | |
|                                     }
 | |
|                                   },
 | |
|                                   "operator": "*",
 | |
|                                   "right": {
 | |
|                                     "abs_path": false,
 | |
|                                     "commentStart": 0,
 | |
|                                     "end": 0,
 | |
|                                     "name": {
 | |
|                                       "commentStart": 0,
 | |
|                                       "end": 0,
 | |
|                                       "name": "scale",
 | |
|                                       "start": 0,
 | |
|                                       "type": "Identifier"
 | |
|                                     },
 | |
|                                     "path": [],
 | |
|                                     "start": 0,
 | |
|                                     "type": "Name",
 | |
|                                     "type": "Name"
 | |
|                                   },
 | |
|                                   "start": 0,
 | |
|                                   "type": "BinaryExpression",
 | |
|                                   "type": "BinaryExpression"
 | |
|                                 },
 | |
|                                 "operator": "+",
 | |
|                                 "right": {
 | |
|                                   "commentStart": 0,
 | |
|                                   "computed": false,
 | |
|                                   "end": 0,
 | |
|                                   "object": {
 | |
|                                     "commentStart": 0,
 | |
|                                     "end": 0,
 | |
|                                     "name": "origin",
 | |
|                                     "start": 0,
 | |
|                                     "type": "Identifier",
 | |
|                                     "type": "Identifier"
 | |
|                                   },
 | |
|                                   "property": {
 | |
|                                     "commentStart": 0,
 | |
|                                     "end": 0,
 | |
|                                     "raw": "0",
 | |
|                                     "start": 0,
 | |
|                                     "type": "Literal",
 | |
|                                     "type": "Literal",
 | |
|                                     "value": {
 | |
|                                       "value": 0.0,
 | |
|                                       "suffix": "None"
 | |
|                                     }
 | |
|                                   },
 | |
|                                   "start": 0,
 | |
|                                   "type": "MemberExpression",
 | |
|                                   "type": "MemberExpression"
 | |
|                                 },
 | |
|                                 "start": 0,
 | |
|                                 "type": "BinaryExpression",
 | |
|                                 "type": "BinaryExpression"
 | |
|                               }
 | |
|                             }
 | |
|                           ],
 | |
|                           "callee": {
 | |
|                             "abs_path": false,
 | |
|                             "commentStart": 0,
 | |
|                             "end": 0,
 | |
|                             "name": {
 | |
|                               "commentStart": 0,
 | |
|                               "end": 0,
 | |
|                               "name": "angledLine",
 | |
|                               "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": "length",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "arg": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "left": {
 | |
|                                   "commentStart": 0,
 | |
|                                   "end": 0,
 | |
|                                   "raw": "0.15",
 | |
|                                   "start": 0,
 | |
|                                   "type": "Literal",
 | |
|                                   "type": "Literal",
 | |
|                                   "value": {
 | |
|                                     "value": 0.15,
 | |
|                                     "suffix": "None"
 | |
|                                   }
 | |
|                                 },
 | |
|                                 "operator": "*",
 | |
|                                 "right": {
 | |
|                                   "abs_path": false,
 | |
|                                   "commentStart": 0,
 | |
|                                   "end": 0,
 | |
|                                   "name": {
 | |
|                                     "commentStart": 0,
 | |
|                                     "end": 0,
 | |
|                                     "name": "scale",
 | |
|                                     "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": "yLine",
 | |
|                               "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": "length",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "arg": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "left": {
 | |
|                                   "argument": {
 | |
|                                     "commentStart": 0,
 | |
|                                     "end": 0,
 | |
|                                     "raw": "0.15",
 | |
|                                     "start": 0,
 | |
|                                     "type": "Literal",
 | |
|                                     "type": "Literal",
 | |
|                                     "value": {
 | |
|                                       "value": 0.15,
 | |
|                                       "suffix": "None"
 | |
|                                     }
 | |
|                                   },
 | |
|                                   "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": "scale",
 | |
|                                     "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": "xLine",
 | |
|                               "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": "angle",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "arg": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "raw": "47.15",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Literal",
 | |
|                                 "type": "Literal",
 | |
|                                 "value": {
 | |
|                                   "value": 47.15,
 | |
|                                   "suffix": "None"
 | |
|                                 }
 | |
|                               }
 | |
|                             },
 | |
|                             {
 | |
|                               "type": "LabeledArg",
 | |
|                               "label": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "name": "length",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "arg": {
 | |
|                                 "argument": {
 | |
|                                   "callee": {
 | |
|                                     "abs_path": false,
 | |
|                                     "commentStart": 0,
 | |
|                                     "end": 0,
 | |
|                                     "name": {
 | |
|                                       "commentStart": 0,
 | |
|                                       "end": 0,
 | |
|                                       "name": "segLen",
 | |
|                                       "start": 0,
 | |
|                                       "type": "Identifier"
 | |
|                                     },
 | |
|                                     "path": [],
 | |
|                                     "start": 0,
 | |
|                                     "type": "Name"
 | |
|                                   },
 | |
|                                   "commentStart": 0,
 | |
|                                   "end": 0,
 | |
|                                   "start": 0,
 | |
|                                   "type": "CallExpressionKw",
 | |
|                                   "type": "CallExpressionKw",
 | |
|                                   "unlabeled": {
 | |
|                                     "abs_path": false,
 | |
|                                     "commentStart": 0,
 | |
|                                     "end": 0,
 | |
|                                     "name": {
 | |
|                                       "commentStart": 0,
 | |
|                                       "end": 0,
 | |
|                                       "name": "seg1",
 | |
|                                       "start": 0,
 | |
|                                       "type": "Identifier"
 | |
|                                     },
 | |
|                                     "path": [],
 | |
|                                     "start": 0,
 | |
|                                     "type": "Name",
 | |
|                                     "type": "Name"
 | |
|                                   }
 | |
|                                 },
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "operator": "-",
 | |
|                                 "start": 0,
 | |
|                                 "type": "UnaryExpression",
 | |
|                                 "type": "UnaryExpression"
 | |
|                               }
 | |
|                             },
 | |
|                             {
 | |
|                               "type": "LabeledArg",
 | |
|                               "label": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "name": "tag",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "arg": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "start": 0,
 | |
|                                 "type": "TagDeclarator",
 | |
|                                 "type": "TagDeclarator",
 | |
|                                 "value": "seg2"
 | |
|                               }
 | |
|                             }
 | |
|                           ],
 | |
|                           "callee": {
 | |
|                             "abs_path": false,
 | |
|                             "commentStart": 0,
 | |
|                             "end": 0,
 | |
|                             "name": {
 | |
|                               "commentStart": 0,
 | |
|                               "end": 0,
 | |
|                               "name": "angledLine",
 | |
|                               "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": "length",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "arg": {
 | |
|                                 "callee": {
 | |
|                                   "abs_path": false,
 | |
|                                   "commentStart": 0,
 | |
|                                   "end": 0,
 | |
|                                   "name": {
 | |
|                                     "commentStart": 0,
 | |
|                                     "end": 0,
 | |
|                                     "name": "segLen",
 | |
|                                     "start": 0,
 | |
|                                     "type": "Identifier"
 | |
|                                   },
 | |
|                                   "path": [],
 | |
|                                   "start": 0,
 | |
|                                   "type": "Name"
 | |
|                                 },
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "start": 0,
 | |
|                                 "type": "CallExpressionKw",
 | |
|                                 "type": "CallExpressionKw",
 | |
|                                 "unlabeled": {
 | |
|                                   "abs_path": false,
 | |
|                                   "commentStart": 0,
 | |
|                                   "end": 0,
 | |
|                                   "name": {
 | |
|                                     "commentStart": 0,
 | |
|                                     "end": 0,
 | |
|                                     "name": "seg3",
 | |
|                                     "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": "yLine",
 | |
|                               "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": "endAbsolute",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "arg": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "left": {
 | |
|                                   "commentStart": 0,
 | |
|                                   "end": 0,
 | |
|                                   "raw": "0",
 | |
|                                   "start": 0,
 | |
|                                   "type": "Literal",
 | |
|                                   "type": "Literal",
 | |
|                                   "value": {
 | |
|                                     "value": 0.0,
 | |
|                                     "suffix": "None"
 | |
|                                   }
 | |
|                                 },
 | |
|                                 "operator": "+",
 | |
|                                 "right": {
 | |
|                                   "commentStart": 0,
 | |
|                                   "computed": false,
 | |
|                                   "end": 0,
 | |
|                                   "object": {
 | |
|                                     "commentStart": 0,
 | |
|                                     "end": 0,
 | |
|                                     "name": "origin",
 | |
|                                     "start": 0,
 | |
|                                     "type": "Identifier",
 | |
|                                     "type": "Identifier"
 | |
|                                   },
 | |
|                                   "property": {
 | |
|                                     "commentStart": 0,
 | |
|                                     "end": 0,
 | |
|                                     "raw": "0",
 | |
|                                     "start": 0,
 | |
|                                     "type": "Literal",
 | |
|                                     "type": "Literal",
 | |
|                                     "value": {
 | |
|                                       "value": 0.0,
 | |
|                                       "suffix": "None"
 | |
|                                     }
 | |
|                                   },
 | |
|                                   "start": 0,
 | |
|                                   "type": "MemberExpression",
 | |
|                                   "type": "MemberExpression"
 | |
|                                 },
 | |
|                                 "start": 0,
 | |
|                                 "type": "BinaryExpression",
 | |
|                                 "type": "BinaryExpression"
 | |
|                               }
 | |
|                             }
 | |
|                           ],
 | |
|                           "callee": {
 | |
|                             "abs_path": false,
 | |
|                             "commentStart": 0,
 | |
|                             "end": 0,
 | |
|                             "name": {
 | |
|                               "commentStart": 0,
 | |
|                               "end": 0,
 | |
|                               "name": "xLine",
 | |
|                               "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": "length",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "arg": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "left": {
 | |
|                                   "argument": {
 | |
|                                     "commentStart": 0,
 | |
|                                     "end": 0,
 | |
|                                     "raw": "0.225",
 | |
|                                     "start": 0,
 | |
|                                     "type": "Literal",
 | |
|                                     "type": "Literal",
 | |
|                                     "value": {
 | |
|                                       "value": 0.225,
 | |
|                                       "suffix": "None"
 | |
|                                     }
 | |
|                                   },
 | |
|                                   "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": "scale",
 | |
|                                     "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": "yLine",
 | |
|                               "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": "angle",
 | |
|                                 "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": "intersectTag",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "arg": {
 | |
|                                 "abs_path": false,
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "name": {
 | |
|                                   "commentStart": 0,
 | |
|                                   "end": 0,
 | |
|                                   "name": "seg2",
 | |
|                                   "start": 0,
 | |
|                                   "type": "Identifier"
 | |
|                                 },
 | |
|                                 "path": [],
 | |
|                                 "start": 0,
 | |
|                                 "type": "Name",
 | |
|                                 "type": "Name"
 | |
|                               }
 | |
|                             },
 | |
|                             {
 | |
|                               "type": "LabeledArg",
 | |
|                               "label": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "name": "offset",
 | |
|                                 "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": "angledLineThatIntersects",
 | |
|                               "start": 0,
 | |
|                               "type": "Identifier"
 | |
|                             },
 | |
|                             "path": [],
 | |
|                             "start": 0,
 | |
|                             "type": "Name"
 | |
|                           },
 | |
|                           "commentStart": 0,
 | |
|                           "end": 0,
 | |
|                           "start": 0,
 | |
|                           "type": "CallExpressionKw",
 | |
|                           "type": "CallExpressionKw",
 | |
|                           "unlabeled": null
 | |
|                         },
 | |
|                         {
 | |
|                           "callee": {
 | |
|                             "abs_path": false,
 | |
|                             "commentStart": 0,
 | |
|                             "end": 0,
 | |
|                             "name": {
 | |
|                               "commentStart": 0,
 | |
|                               "end": 0,
 | |
|                               "name": "close",
 | |
|                               "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": "length",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "arg": {
 | |
|                                 "argument": {
 | |
|                                   "abs_path": false,
 | |
|                                   "commentStart": 0,
 | |
|                                   "end": 0,
 | |
|                                   "name": {
 | |
|                                     "commentStart": 0,
 | |
|                                     "end": 0,
 | |
|                                     "name": "depth",
 | |
|                                     "start": 0,
 | |
|                                     "type": "Identifier"
 | |
|                                   },
 | |
|                                   "path": [],
 | |
|                                   "start": 0,
 | |
|                                   "type": "Name",
 | |
|                                   "type": "Name"
 | |
|                                 },
 | |
|                                 "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": "extrude",
 | |
|                               "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": "color",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "arg": {
 | |
|                                 "abs_path": false,
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "name": {
 | |
|                                   "commentStart": 0,
 | |
|                                   "end": 0,
 | |
|                                   "name": "baseColor",
 | |
|                                   "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": "appearance",
 | |
|                               "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,
 | |
|                       "start": 0,
 | |
|                       "type": "PipeExpression",
 | |
|                       "type": "PipeExpression"
 | |
|                     },
 | |
|                     "start": 0,
 | |
|                     "type": "VariableDeclarator"
 | |
|                   },
 | |
|                   "end": 0,
 | |
|                   "kind": "const",
 | |
|                   "start": 0,
 | |
|                   "type": "VariableDeclaration",
 | |
|                   "type": "VariableDeclaration"
 | |
|                 },
 | |
|                 {
 | |
|                   "argument": {
 | |
|                     "abs_path": false,
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "name": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "name": "z",
 | |
|                       "start": 0,
 | |
|                       "type": "Identifier"
 | |
|                     },
 | |
|                     "path": [],
 | |
|                     "start": 0,
 | |
|                     "type": "Name",
 | |
|                     "type": "Name"
 | |
|                   },
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "start": 0,
 | |
|                   "type": "ReturnStatement",
 | |
|                   "type": "ReturnStatement"
 | |
|                 }
 | |
|               ],
 | |
|               "commentStart": 0,
 | |
|               "end": 0,
 | |
|               "start": 0
 | |
|             },
 | |
|             "commentStart": 0,
 | |
|             "end": 0,
 | |
|             "params": [
 | |
|               {
 | |
|                 "type": "Parameter",
 | |
|                 "identifier": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "origin",
 | |
|                   "start": 0,
 | |
|                   "type": "Identifier"
 | |
|                 }
 | |
|               },
 | |
|               {
 | |
|                 "type": "Parameter",
 | |
|                 "identifier": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "scale",
 | |
|                   "start": 0,
 | |
|                   "type": "Identifier"
 | |
|                 }
 | |
|               },
 | |
|               {
 | |
|                 "type": "Parameter",
 | |
|                 "identifier": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "depth",
 | |
|                   "start": 0,
 | |
|                   "type": "Identifier"
 | |
|                 }
 | |
|               }
 | |
|             ],
 | |
|             "start": 0,
 | |
|             "type": "FunctionExpression",
 | |
|             "type": "FunctionExpression"
 | |
|           },
 | |
|           "start": 0,
 | |
|           "type": "VariableDeclarator"
 | |
|         },
 | |
|         "end": 0,
 | |
|         "kind": "fn",
 | |
|         "preComments": [
 | |
|           "",
 | |
|           "",
 | |
|           "// Define a function to draw the ZOO 'Z'"
 | |
|         ],
 | |
|         "start": 0,
 | |
|         "type": "VariableDeclaration",
 | |
|         "type": "VariableDeclaration"
 | |
|       },
 | |
|       {
 | |
|         "commentStart": 0,
 | |
|         "declaration": {
 | |
|           "commentStart": 0,
 | |
|           "end": 0,
 | |
|           "id": {
 | |
|             "commentStart": 0,
 | |
|             "end": 0,
 | |
|             "name": "o",
 | |
|             "start": 0,
 | |
|             "type": "Identifier"
 | |
|           },
 | |
|           "init": {
 | |
|             "body": {
 | |
|               "body": [
 | |
|                 {
 | |
|                   "commentStart": 0,
 | |
|                   "declaration": {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "id": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "name": "oSketch001",
 | |
|                       "start": 0,
 | |
|                       "type": "Identifier"
 | |
|                     },
 | |
|                     "init": {
 | |
|                       "body": [
 | |
|                         {
 | |
|                           "callee": {
 | |
|                             "abs_path": false,
 | |
|                             "commentStart": 0,
 | |
|                             "end": 0,
 | |
|                             "name": {
 | |
|                               "commentStart": 0,
 | |
|                               "end": 0,
 | |
|                               "name": "startSketchOn",
 | |
|                               "start": 0,
 | |
|                               "type": "Identifier"
 | |
|                             },
 | |
|                             "path": [],
 | |
|                             "start": 0,
 | |
|                             "type": "Name"
 | |
|                           },
 | |
|                           "commentStart": 0,
 | |
|                           "end": 0,
 | |
|                           "start": 0,
 | |
|                           "type": "CallExpressionKw",
 | |
|                           "type": "CallExpressionKw",
 | |
|                           "unlabeled": {
 | |
|                             "abs_path": false,
 | |
|                             "commentStart": 0,
 | |
|                             "end": 0,
 | |
|                             "name": {
 | |
|                               "commentStart": 0,
 | |
|                               "end": 0,
 | |
|                               "name": "plane002",
 | |
|                               "start": 0,
 | |
|                               "type": "Identifier"
 | |
|                             },
 | |
|                             "path": [],
 | |
|                             "start": 0,
 | |
|                             "type": "Name",
 | |
|                             "type": "Name"
 | |
|                           }
 | |
|                         },
 | |
|                         {
 | |
|                           "arguments": [
 | |
|                             {
 | |
|                               "type": "LabeledArg",
 | |
|                               "label": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "name": "at",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "arg": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "elements": [
 | |
|                                   {
 | |
|                                     "commentStart": 0,
 | |
|                                     "end": 0,
 | |
|                                     "left": {
 | |
|                                       "commentStart": 0,
 | |
|                                       "end": 0,
 | |
|                                       "left": {
 | |
|                                         "commentStart": 0,
 | |
|                                         "end": 0,
 | |
|                                         "raw": ".788",
 | |
|                                         "start": 0,
 | |
|                                         "type": "Literal",
 | |
|                                         "type": "Literal",
 | |
|                                         "value": {
 | |
|                                           "value": 0.788,
 | |
|                                           "suffix": "None"
 | |
|                                         }
 | |
|                                       },
 | |
|                                       "operator": "*",
 | |
|                                       "right": {
 | |
|                                         "abs_path": false,
 | |
|                                         "commentStart": 0,
 | |
|                                         "end": 0,
 | |
|                                         "name": {
 | |
|                                           "commentStart": 0,
 | |
|                                           "end": 0,
 | |
|                                           "name": "scale",
 | |
|                                           "start": 0,
 | |
|                                           "type": "Identifier"
 | |
|                                         },
 | |
|                                         "path": [],
 | |
|                                         "start": 0,
 | |
|                                         "type": "Name",
 | |
|                                         "type": "Name"
 | |
|                                       },
 | |
|                                       "start": 0,
 | |
|                                       "type": "BinaryExpression",
 | |
|                                       "type": "BinaryExpression"
 | |
|                                     },
 | |
|                                     "operator": "+",
 | |
|                                     "right": {
 | |
|                                       "commentStart": 0,
 | |
|                                       "computed": false,
 | |
|                                       "end": 0,
 | |
|                                       "object": {
 | |
|                                         "commentStart": 0,
 | |
|                                         "end": 0,
 | |
|                                         "name": "origin",
 | |
|                                         "start": 0,
 | |
|                                         "type": "Identifier",
 | |
|                                         "type": "Identifier"
 | |
|                                       },
 | |
|                                       "property": {
 | |
|                                         "commentStart": 0,
 | |
|                                         "end": 0,
 | |
|                                         "raw": "0",
 | |
|                                         "start": 0,
 | |
|                                         "type": "Literal",
 | |
|                                         "type": "Literal",
 | |
|                                         "value": {
 | |
|                                           "value": 0.0,
 | |
|                                           "suffix": "None"
 | |
|                                         }
 | |
|                                       },
 | |
|                                       "start": 0,
 | |
|                                       "type": "MemberExpression",
 | |
|                                       "type": "MemberExpression"
 | |
|                                     },
 | |
|                                     "start": 0,
 | |
|                                     "type": "BinaryExpression",
 | |
|                                     "type": "BinaryExpression"
 | |
|                                   },
 | |
|                                   {
 | |
|                                     "commentStart": 0,
 | |
|                                     "end": 0,
 | |
|                                     "left": {
 | |
|                                       "commentStart": 0,
 | |
|                                       "end": 0,
 | |
|                                       "left": {
 | |
|                                         "commentStart": 0,
 | |
|                                         "end": 0,
 | |
|                                         "raw": ".921",
 | |
|                                         "start": 0,
 | |
|                                         "type": "Literal",
 | |
|                                         "type": "Literal",
 | |
|                                         "value": {
 | |
|                                           "value": 0.921,
 | |
|                                           "suffix": "None"
 | |
|                                         }
 | |
|                                       },
 | |
|                                       "operator": "*",
 | |
|                                       "right": {
 | |
|                                         "abs_path": false,
 | |
|                                         "commentStart": 0,
 | |
|                                         "end": 0,
 | |
|                                         "name": {
 | |
|                                           "commentStart": 0,
 | |
|                                           "end": 0,
 | |
|                                           "name": "scale",
 | |
|                                           "start": 0,
 | |
|                                           "type": "Identifier"
 | |
|                                         },
 | |
|                                         "path": [],
 | |
|                                         "start": 0,
 | |
|                                         "type": "Name",
 | |
|                                         "type": "Name"
 | |
|                                       },
 | |
|                                       "start": 0,
 | |
|                                       "type": "BinaryExpression",
 | |
|                                       "type": "BinaryExpression"
 | |
|                                     },
 | |
|                                     "operator": "+",
 | |
|                                     "right": {
 | |
|                                       "commentStart": 0,
 | |
|                                       "computed": false,
 | |
|                                       "end": 0,
 | |
|                                       "object": {
 | |
|                                         "commentStart": 0,
 | |
|                                         "end": 0,
 | |
|                                         "name": "origin",
 | |
|                                         "start": 0,
 | |
|                                         "type": "Identifier",
 | |
|                                         "type": "Identifier"
 | |
|                                       },
 | |
|                                       "property": {
 | |
|                                         "commentStart": 0,
 | |
|                                         "end": 0,
 | |
|                                         "raw": "1",
 | |
|                                         "start": 0,
 | |
|                                         "type": "Literal",
 | |
|                                         "type": "Literal",
 | |
|                                         "value": {
 | |
|                                           "value": 1.0,
 | |
|                                           "suffix": "None"
 | |
|                                         }
 | |
|                                       },
 | |
|                                       "start": 0,
 | |
|                                       "type": "MemberExpression",
 | |
|                                       "type": "MemberExpression"
 | |
|                                     },
 | |
|                                     "start": 0,
 | |
|                                     "type": "BinaryExpression",
 | |
|                                     "type": "BinaryExpression"
 | |
|                                   }
 | |
|                                 ],
 | |
|                                 "end": 0,
 | |
|                                 "start": 0,
 | |
|                                 "type": "ArrayExpression",
 | |
|                                 "type": "ArrayExpression"
 | |
|                               }
 | |
|                             }
 | |
|                           ],
 | |
|                           "callee": {
 | |
|                             "abs_path": false,
 | |
|                             "commentStart": 0,
 | |
|                             "end": 0,
 | |
|                             "name": {
 | |
|                               "commentStart": 0,
 | |
|                               "end": 0,
 | |
|                               "name": "startProfile",
 | |
|                               "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": "angleStart",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "arg": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "left": {
 | |
|                                   "commentStart": 0,
 | |
|                                   "end": 0,
 | |
|                                   "raw": "47.15",
 | |
|                                   "start": 0,
 | |
|                                   "type": "Literal",
 | |
|                                   "type": "Literal",
 | |
|                                   "value": {
 | |
|                                     "value": 47.15,
 | |
|                                     "suffix": "None"
 | |
|                                   }
 | |
|                                 },
 | |
|                                 "operator": "+",
 | |
|                                 "right": {
 | |
|                                   "commentStart": 0,
 | |
|                                   "end": 0,
 | |
|                                   "raw": "6",
 | |
|                                   "start": 0,
 | |
|                                   "type": "Literal",
 | |
|                                   "type": "Literal",
 | |
|                                   "value": {
 | |
|                                     "value": 6.0,
 | |
|                                     "suffix": "None"
 | |
|                                   }
 | |
|                                 },
 | |
|                                 "start": 0,
 | |
|                                 "type": "BinaryExpression",
 | |
|                                 "type": "BinaryExpression"
 | |
|                               }
 | |
|                             },
 | |
|                             {
 | |
|                               "type": "LabeledArg",
 | |
|                               "label": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "name": "angleEnd",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "arg": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "left": {
 | |
|                                   "commentStart": 0,
 | |
|                                   "end": 0,
 | |
|                                   "left": {
 | |
|                                     "commentStart": 0,
 | |
|                                     "end": 0,
 | |
|                                     "raw": "47.15",
 | |
|                                     "start": 0,
 | |
|                                     "type": "Literal",
 | |
|                                     "type": "Literal",
 | |
|                                     "value": {
 | |
|                                       "value": 47.15,
 | |
|                                       "suffix": "None"
 | |
|                                     }
 | |
|                                   },
 | |
|                                   "operator": "-",
 | |
|                                   "right": {
 | |
|                                     "commentStart": 0,
 | |
|                                     "end": 0,
 | |
|                                     "raw": "6",
 | |
|                                     "start": 0,
 | |
|                                     "type": "Literal",
 | |
|                                     "type": "Literal",
 | |
|                                     "value": {
 | |
|                                       "value": 6.0,
 | |
|                                       "suffix": "None"
 | |
|                                     }
 | |
|                                   },
 | |
|                                   "start": 0,
 | |
|                                   "type": "BinaryExpression",
 | |
|                                   "type": "BinaryExpression"
 | |
|                                 },
 | |
|                                 "operator": "+",
 | |
|                                 "right": {
 | |
|                                   "commentStart": 0,
 | |
|                                   "end": 0,
 | |
|                                   "raw": "180",
 | |
|                                   "start": 0,
 | |
|                                   "type": "Literal",
 | |
|                                   "type": "Literal",
 | |
|                                   "value": {
 | |
|                                     "value": 180.0,
 | |
|                                     "suffix": "None"
 | |
|                                   }
 | |
|                                 },
 | |
|                                 "start": 0,
 | |
|                                 "type": "BinaryExpression",
 | |
|                                 "type": "BinaryExpression"
 | |
|                               }
 | |
|                             },
 | |
|                             {
 | |
|                               "type": "LabeledArg",
 | |
|                               "label": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "name": "radius",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "arg": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "left": {
 | |
|                                   "commentStart": 0,
 | |
|                                   "end": 0,
 | |
|                                   "raw": ".525",
 | |
|                                   "start": 0,
 | |
|                                   "type": "Literal",
 | |
|                                   "type": "Literal",
 | |
|                                   "value": {
 | |
|                                     "value": 0.525,
 | |
|                                     "suffix": "None"
 | |
|                                   }
 | |
|                                 },
 | |
|                                 "operator": "*",
 | |
|                                 "right": {
 | |
|                                   "abs_path": false,
 | |
|                                   "commentStart": 0,
 | |
|                                   "end": 0,
 | |
|                                   "name": {
 | |
|                                     "commentStart": 0,
 | |
|                                     "end": 0,
 | |
|                                     "name": "scale",
 | |
|                                     "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": "arc",
 | |
|                               "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": "angle",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "arg": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "raw": "47.15",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Literal",
 | |
|                                 "type": "Literal",
 | |
|                                 "value": {
 | |
|                                   "value": 47.15,
 | |
|                                   "suffix": "None"
 | |
|                                 }
 | |
|                               }
 | |
|                             },
 | |
|                             {
 | |
|                               "type": "LabeledArg",
 | |
|                               "label": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "name": "length",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "arg": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "left": {
 | |
|                                   "commentStart": 0,
 | |
|                                   "end": 0,
 | |
|                                   "raw": ".24",
 | |
|                                   "start": 0,
 | |
|                                   "type": "Literal",
 | |
|                                   "type": "Literal",
 | |
|                                   "value": {
 | |
|                                     "value": 0.24,
 | |
|                                     "suffix": "None"
 | |
|                                   }
 | |
|                                 },
 | |
|                                 "operator": "*",
 | |
|                                 "right": {
 | |
|                                   "abs_path": false,
 | |
|                                   "commentStart": 0,
 | |
|                                   "end": 0,
 | |
|                                   "name": {
 | |
|                                     "commentStart": 0,
 | |
|                                     "end": 0,
 | |
|                                     "name": "scale",
 | |
|                                     "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": "angledLine",
 | |
|                               "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": "angleStart",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "arg": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "left": {
 | |
|                                   "commentStart": 0,
 | |
|                                   "end": 0,
 | |
|                                   "left": {
 | |
|                                     "commentStart": 0,
 | |
|                                     "end": 0,
 | |
|                                     "raw": "47.15",
 | |
|                                     "start": 0,
 | |
|                                     "type": "Literal",
 | |
|                                     "type": "Literal",
 | |
|                                     "value": {
 | |
|                                       "value": 47.15,
 | |
|                                       "suffix": "None"
 | |
|                                     }
 | |
|                                   },
 | |
|                                   "operator": "-",
 | |
|                                   "right": {
 | |
|                                     "commentStart": 0,
 | |
|                                     "end": 0,
 | |
|                                     "raw": "11",
 | |
|                                     "start": 0,
 | |
|                                     "type": "Literal",
 | |
|                                     "type": "Literal",
 | |
|                                     "value": {
 | |
|                                       "value": 11.0,
 | |
|                                       "suffix": "None"
 | |
|                                     }
 | |
|                                   },
 | |
|                                   "start": 0,
 | |
|                                   "type": "BinaryExpression",
 | |
|                                   "type": "BinaryExpression"
 | |
|                                 },
 | |
|                                 "operator": "+",
 | |
|                                 "right": {
 | |
|                                   "commentStart": 0,
 | |
|                                   "end": 0,
 | |
|                                   "raw": "180",
 | |
|                                   "start": 0,
 | |
|                                   "type": "Literal",
 | |
|                                   "type": "Literal",
 | |
|                                   "value": {
 | |
|                                     "value": 180.0,
 | |
|                                     "suffix": "None"
 | |
|                                   }
 | |
|                                 },
 | |
|                                 "start": 0,
 | |
|                                 "type": "BinaryExpression",
 | |
|                                 "type": "BinaryExpression"
 | |
|                               }
 | |
|                             },
 | |
|                             {
 | |
|                               "type": "LabeledArg",
 | |
|                               "label": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "name": "angleEnd",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "arg": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "left": {
 | |
|                                   "commentStart": 0,
 | |
|                                   "end": 0,
 | |
|                                   "raw": "47.15",
 | |
|                                   "start": 0,
 | |
|                                   "type": "Literal",
 | |
|                                   "type": "Literal",
 | |
|                                   "value": {
 | |
|                                     "value": 47.15,
 | |
|                                     "suffix": "None"
 | |
|                                   }
 | |
|                                 },
 | |
|                                 "operator": "+",
 | |
|                                 "right": {
 | |
|                                   "commentStart": 0,
 | |
|                                   "end": 0,
 | |
|                                   "raw": "11",
 | |
|                                   "start": 0,
 | |
|                                   "type": "Literal",
 | |
|                                   "type": "Literal",
 | |
|                                   "value": {
 | |
|                                     "value": 11.0,
 | |
|                                     "suffix": "None"
 | |
|                                   }
 | |
|                                 },
 | |
|                                 "start": 0,
 | |
|                                 "type": "BinaryExpression",
 | |
|                                 "type": "BinaryExpression"
 | |
|                               }
 | |
|                             },
 | |
|                             {
 | |
|                               "type": "LabeledArg",
 | |
|                               "label": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "name": "radius",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "arg": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "left": {
 | |
|                                   "commentStart": 0,
 | |
|                                   "end": 0,
 | |
|                                   "raw": ".288",
 | |
|                                   "start": 0,
 | |
|                                   "type": "Literal",
 | |
|                                   "type": "Literal",
 | |
|                                   "value": {
 | |
|                                     "value": 0.288,
 | |
|                                     "suffix": "None"
 | |
|                                   }
 | |
|                                 },
 | |
|                                 "operator": "*",
 | |
|                                 "right": {
 | |
|                                   "abs_path": false,
 | |
|                                   "commentStart": 0,
 | |
|                                   "end": 0,
 | |
|                                   "name": {
 | |
|                                     "commentStart": 0,
 | |
|                                     "end": 0,
 | |
|                                     "name": "scale",
 | |
|                                     "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": "arc",
 | |
|                               "start": 0,
 | |
|                               "type": "Identifier"
 | |
|                             },
 | |
|                             "path": [],
 | |
|                             "start": 0,
 | |
|                             "type": "Name"
 | |
|                           },
 | |
|                           "commentStart": 0,
 | |
|                           "end": 0,
 | |
|                           "start": 0,
 | |
|                           "type": "CallExpressionKw",
 | |
|                           "type": "CallExpressionKw",
 | |
|                           "unlabeled": null
 | |
|                         },
 | |
|                         {
 | |
|                           "callee": {
 | |
|                             "abs_path": false,
 | |
|                             "commentStart": 0,
 | |
|                             "end": 0,
 | |
|                             "name": {
 | |
|                               "commentStart": 0,
 | |
|                               "end": 0,
 | |
|                               "name": "close",
 | |
|                               "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": "length",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "arg": {
 | |
|                                 "argument": {
 | |
|                                   "abs_path": false,
 | |
|                                   "commentStart": 0,
 | |
|                                   "end": 0,
 | |
|                                   "name": {
 | |
|                                     "commentStart": 0,
 | |
|                                     "end": 0,
 | |
|                                     "name": "depth",
 | |
|                                     "start": 0,
 | |
|                                     "type": "Identifier"
 | |
|                                   },
 | |
|                                   "path": [],
 | |
|                                   "start": 0,
 | |
|                                   "type": "Name",
 | |
|                                   "type": "Name"
 | |
|                                 },
 | |
|                                 "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": "extrude",
 | |
|                               "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": "color",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "arg": {
 | |
|                                 "abs_path": false,
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "name": {
 | |
|                                   "commentStart": 0,
 | |
|                                   "end": 0,
 | |
|                                   "name": "baseColor",
 | |
|                                   "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": "appearance",
 | |
|                               "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,
 | |
|                       "start": 0,
 | |
|                       "type": "PipeExpression",
 | |
|                       "type": "PipeExpression"
 | |
|                     },
 | |
|                     "start": 0,
 | |
|                     "type": "VariableDeclarator"
 | |
|                   },
 | |
|                   "end": 0,
 | |
|                   "kind": "const",
 | |
|                   "start": 0,
 | |
|                   "type": "VariableDeclaration",
 | |
|                   "type": "VariableDeclaration"
 | |
|                 },
 | |
|                 {
 | |
|                   "commentStart": 0,
 | |
|                   "declaration": {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "id": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "name": "o",
 | |
|                       "start": 0,
 | |
|                       "type": "Identifier"
 | |
|                     },
 | |
|                     "init": {
 | |
|                       "body": [
 | |
|                         {
 | |
|                           "callee": {
 | |
|                             "abs_path": false,
 | |
|                             "commentStart": 0,
 | |
|                             "end": 0,
 | |
|                             "name": {
 | |
|                               "commentStart": 0,
 | |
|                               "end": 0,
 | |
|                               "name": "startSketchOn",
 | |
|                               "start": 0,
 | |
|                               "type": "Identifier"
 | |
|                             },
 | |
|                             "path": [],
 | |
|                             "start": 0,
 | |
|                             "type": "Name"
 | |
|                           },
 | |
|                           "commentStart": 0,
 | |
|                           "end": 0,
 | |
|                           "start": 0,
 | |
|                           "type": "CallExpressionKw",
 | |
|                           "type": "CallExpressionKw",
 | |
|                           "unlabeled": {
 | |
|                             "abs_path": false,
 | |
|                             "commentStart": 0,
 | |
|                             "end": 0,
 | |
|                             "name": {
 | |
|                               "commentStart": 0,
 | |
|                               "end": 0,
 | |
|                               "name": "plane002",
 | |
|                               "start": 0,
 | |
|                               "type": "Identifier"
 | |
|                             },
 | |
|                             "path": [],
 | |
|                             "start": 0,
 | |
|                             "type": "Name",
 | |
|                             "type": "Name"
 | |
|                           }
 | |
|                         },
 | |
|                         {
 | |
|                           "arguments": [
 | |
|                             {
 | |
|                               "type": "LabeledArg",
 | |
|                               "label": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "name": "at",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "arg": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "elements": [
 | |
|                                   {
 | |
|                                     "commentStart": 0,
 | |
|                                     "end": 0,
 | |
|                                     "left": {
 | |
|                                       "commentStart": 0,
 | |
|                                       "end": 0,
 | |
|                                       "left": {
 | |
|                                         "commentStart": 0,
 | |
|                                         "end": 0,
 | |
|                                         "raw": ".16",
 | |
|                                         "start": 0,
 | |
|                                         "type": "Literal",
 | |
|                                         "type": "Literal",
 | |
|                                         "value": {
 | |
|                                           "value": 0.16,
 | |
|                                           "suffix": "None"
 | |
|                                         }
 | |
|                                       },
 | |
|                                       "operator": "*",
 | |
|                                       "right": {
 | |
|                                         "abs_path": false,
 | |
|                                         "commentStart": 0,
 | |
|                                         "end": 0,
 | |
|                                         "name": {
 | |
|                                           "commentStart": 0,
 | |
|                                           "end": 0,
 | |
|                                           "name": "scale",
 | |
|                                           "start": 0,
 | |
|                                           "type": "Identifier"
 | |
|                                         },
 | |
|                                         "path": [],
 | |
|                                         "start": 0,
 | |
|                                         "type": "Name",
 | |
|                                         "type": "Name"
 | |
|                                       },
 | |
|                                       "start": 0,
 | |
|                                       "type": "BinaryExpression",
 | |
|                                       "type": "BinaryExpression"
 | |
|                                     },
 | |
|                                     "operator": "+",
 | |
|                                     "right": {
 | |
|                                       "commentStart": 0,
 | |
|                                       "computed": false,
 | |
|                                       "end": 0,
 | |
|                                       "object": {
 | |
|                                         "commentStart": 0,
 | |
|                                         "end": 0,
 | |
|                                         "name": "origin",
 | |
|                                         "start": 0,
 | |
|                                         "type": "Identifier",
 | |
|                                         "type": "Identifier"
 | |
|                                       },
 | |
|                                       "property": {
 | |
|                                         "commentStart": 0,
 | |
|                                         "end": 0,
 | |
|                                         "raw": "0",
 | |
|                                         "start": 0,
 | |
|                                         "type": "Literal",
 | |
|                                         "type": "Literal",
 | |
|                                         "value": {
 | |
|                                           "value": 0.0,
 | |
|                                           "suffix": "None"
 | |
|                                         }
 | |
|                                       },
 | |
|                                       "start": 0,
 | |
|                                       "type": "MemberExpression",
 | |
|                                       "type": "MemberExpression"
 | |
|                                     },
 | |
|                                     "start": 0,
 | |
|                                     "type": "BinaryExpression",
 | |
|                                     "type": "BinaryExpression"
 | |
|                                   },
 | |
|                                   {
 | |
|                                     "commentStart": 0,
 | |
|                                     "end": 0,
 | |
|                                     "left": {
 | |
|                                       "commentStart": 0,
 | |
|                                       "end": 0,
 | |
|                                       "left": {
 | |
|                                         "commentStart": 0,
 | |
|                                         "end": 0,
 | |
|                                         "raw": ".079",
 | |
|                                         "start": 0,
 | |
|                                         "type": "Literal",
 | |
|                                         "type": "Literal",
 | |
|                                         "value": {
 | |
|                                           "value": 0.079,
 | |
|                                           "suffix": "None"
 | |
|                                         }
 | |
|                                       },
 | |
|                                       "operator": "*",
 | |
|                                       "right": {
 | |
|                                         "abs_path": false,
 | |
|                                         "commentStart": 0,
 | |
|                                         "end": 0,
 | |
|                                         "name": {
 | |
|                                           "commentStart": 0,
 | |
|                                           "end": 0,
 | |
|                                           "name": "scale",
 | |
|                                           "start": 0,
 | |
|                                           "type": "Identifier"
 | |
|                                         },
 | |
|                                         "path": [],
 | |
|                                         "start": 0,
 | |
|                                         "type": "Name",
 | |
|                                         "type": "Name"
 | |
|                                       },
 | |
|                                       "start": 0,
 | |
|                                       "type": "BinaryExpression",
 | |
|                                       "type": "BinaryExpression"
 | |
|                                     },
 | |
|                                     "operator": "+",
 | |
|                                     "right": {
 | |
|                                       "commentStart": 0,
 | |
|                                       "computed": false,
 | |
|                                       "end": 0,
 | |
|                                       "object": {
 | |
|                                         "commentStart": 0,
 | |
|                                         "end": 0,
 | |
|                                         "name": "origin",
 | |
|                                         "start": 0,
 | |
|                                         "type": "Identifier",
 | |
|                                         "type": "Identifier"
 | |
|                                       },
 | |
|                                       "property": {
 | |
|                                         "commentStart": 0,
 | |
|                                         "end": 0,
 | |
|                                         "raw": "1",
 | |
|                                         "start": 0,
 | |
|                                         "type": "Literal",
 | |
|                                         "type": "Literal",
 | |
|                                         "value": {
 | |
|                                           "value": 1.0,
 | |
|                                           "suffix": "None"
 | |
|                                         }
 | |
|                                       },
 | |
|                                       "start": 0,
 | |
|                                       "type": "MemberExpression",
 | |
|                                       "type": "MemberExpression"
 | |
|                                     },
 | |
|                                     "start": 0,
 | |
|                                     "type": "BinaryExpression",
 | |
|                                     "type": "BinaryExpression"
 | |
|                                   }
 | |
|                                 ],
 | |
|                                 "end": 0,
 | |
|                                 "start": 0,
 | |
|                                 "type": "ArrayExpression",
 | |
|                                 "type": "ArrayExpression"
 | |
|                               }
 | |
|                             }
 | |
|                           ],
 | |
|                           "callee": {
 | |
|                             "abs_path": false,
 | |
|                             "commentStart": 0,
 | |
|                             "end": 0,
 | |
|                             "name": {
 | |
|                               "commentStart": 0,
 | |
|                               "end": 0,
 | |
|                               "name": "startProfile",
 | |
|                               "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": "angleStart",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "arg": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "left": {
 | |
|                                   "commentStart": 0,
 | |
|                                   "end": 0,
 | |
|                                   "left": {
 | |
|                                     "commentStart": 0,
 | |
|                                     "end": 0,
 | |
|                                     "raw": "47.15",
 | |
|                                     "start": 0,
 | |
|                                     "type": "Literal",
 | |
|                                     "type": "Literal",
 | |
|                                     "value": {
 | |
|                                       "value": 47.15,
 | |
|                                       "suffix": "None"
 | |
|                                     }
 | |
|                                   },
 | |
|                                   "operator": "+",
 | |
|                                   "right": {
 | |
|                                     "commentStart": 0,
 | |
|                                     "end": 0,
 | |
|                                     "raw": "6",
 | |
|                                     "start": 0,
 | |
|                                     "type": "Literal",
 | |
|                                     "type": "Literal",
 | |
|                                     "value": {
 | |
|                                       "value": 6.0,
 | |
|                                       "suffix": "None"
 | |
|                                     }
 | |
|                                   },
 | |
|                                   "start": 0,
 | |
|                                   "type": "BinaryExpression",
 | |
|                                   "type": "BinaryExpression"
 | |
|                                 },
 | |
|                                 "operator": "-",
 | |
|                                 "right": {
 | |
|                                   "commentStart": 0,
 | |
|                                   "end": 0,
 | |
|                                   "raw": "180",
 | |
|                                   "start": 0,
 | |
|                                   "type": "Literal",
 | |
|                                   "type": "Literal",
 | |
|                                   "value": {
 | |
|                                     "value": 180.0,
 | |
|                                     "suffix": "None"
 | |
|                                   }
 | |
|                                 },
 | |
|                                 "start": 0,
 | |
|                                 "type": "BinaryExpression",
 | |
|                                 "type": "BinaryExpression"
 | |
|                               }
 | |
|                             },
 | |
|                             {
 | |
|                               "type": "LabeledArg",
 | |
|                               "label": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "name": "angleEnd",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "arg": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "left": {
 | |
|                                   "commentStart": 0,
 | |
|                                   "end": 0,
 | |
|                                   "raw": "47.15",
 | |
|                                   "start": 0,
 | |
|                                   "type": "Literal",
 | |
|                                   "type": "Literal",
 | |
|                                   "value": {
 | |
|                                     "value": 47.15,
 | |
|                                     "suffix": "None"
 | |
|                                   }
 | |
|                                 },
 | |
|                                 "operator": "-",
 | |
|                                 "right": {
 | |
|                                   "commentStart": 0,
 | |
|                                   "end": 0,
 | |
|                                   "raw": "6",
 | |
|                                   "start": 0,
 | |
|                                   "type": "Literal",
 | |
|                                   "type": "Literal",
 | |
|                                   "value": {
 | |
|                                     "value": 6.0,
 | |
|                                     "suffix": "None"
 | |
|                                   }
 | |
|                                 },
 | |
|                                 "start": 0,
 | |
|                                 "type": "BinaryExpression",
 | |
|                                 "type": "BinaryExpression"
 | |
|                               }
 | |
|                             },
 | |
|                             {
 | |
|                               "type": "LabeledArg",
 | |
|                               "label": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "name": "radius",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "arg": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "left": {
 | |
|                                   "commentStart": 0,
 | |
|                                   "end": 0,
 | |
|                                   "raw": ".525",
 | |
|                                   "start": 0,
 | |
|                                   "type": "Literal",
 | |
|                                   "type": "Literal",
 | |
|                                   "value": {
 | |
|                                     "value": 0.525,
 | |
|                                     "suffix": "None"
 | |
|                                   }
 | |
|                                 },
 | |
|                                 "operator": "*",
 | |
|                                 "right": {
 | |
|                                   "abs_path": false,
 | |
|                                   "commentStart": 0,
 | |
|                                   "end": 0,
 | |
|                                   "name": {
 | |
|                                     "commentStart": 0,
 | |
|                                     "end": 0,
 | |
|                                     "name": "scale",
 | |
|                                     "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": "arc",
 | |
|                               "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": "angle",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "arg": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "raw": "47.15",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Literal",
 | |
|                                 "type": "Literal",
 | |
|                                 "value": {
 | |
|                                   "value": 47.15,
 | |
|                                   "suffix": "None"
 | |
|                                 }
 | |
|                               }
 | |
|                             },
 | |
|                             {
 | |
|                               "type": "LabeledArg",
 | |
|                               "label": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "name": "length",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "arg": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "left": {
 | |
|                                   "argument": {
 | |
|                                     "commentStart": 0,
 | |
|                                     "end": 0,
 | |
|                                     "raw": ".24",
 | |
|                                     "start": 0,
 | |
|                                     "type": "Literal",
 | |
|                                     "type": "Literal",
 | |
|                                     "value": {
 | |
|                                       "value": 0.24,
 | |
|                                       "suffix": "None"
 | |
|                                     }
 | |
|                                   },
 | |
|                                   "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": "scale",
 | |
|                                     "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": "angledLine",
 | |
|                               "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": "angleStart",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "arg": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "left": {
 | |
|                                   "commentStart": 0,
 | |
|                                   "end": 0,
 | |
|                                   "raw": "47.15",
 | |
|                                   "start": 0,
 | |
|                                   "type": "Literal",
 | |
|                                   "type": "Literal",
 | |
|                                   "value": {
 | |
|                                     "value": 47.15,
 | |
|                                     "suffix": "None"
 | |
|                                   }
 | |
|                                 },
 | |
|                                 "operator": "-",
 | |
|                                 "right": {
 | |
|                                   "commentStart": 0,
 | |
|                                   "end": 0,
 | |
|                                   "raw": "11",
 | |
|                                   "start": 0,
 | |
|                                   "type": "Literal",
 | |
|                                   "type": "Literal",
 | |
|                                   "value": {
 | |
|                                     "value": 11.0,
 | |
|                                     "suffix": "None"
 | |
|                                   }
 | |
|                                 },
 | |
|                                 "start": 0,
 | |
|                                 "type": "BinaryExpression",
 | |
|                                 "type": "BinaryExpression"
 | |
|                               }
 | |
|                             },
 | |
|                             {
 | |
|                               "type": "LabeledArg",
 | |
|                               "label": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "name": "angleEnd",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "arg": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "left": {
 | |
|                                   "commentStart": 0,
 | |
|                                   "end": 0,
 | |
|                                   "left": {
 | |
|                                     "commentStart": 0,
 | |
|                                     "end": 0,
 | |
|                                     "raw": "47.15",
 | |
|                                     "start": 0,
 | |
|                                     "type": "Literal",
 | |
|                                     "type": "Literal",
 | |
|                                     "value": {
 | |
|                                       "value": 47.15,
 | |
|                                       "suffix": "None"
 | |
|                                     }
 | |
|                                   },
 | |
|                                   "operator": "+",
 | |
|                                   "right": {
 | |
|                                     "commentStart": 0,
 | |
|                                     "end": 0,
 | |
|                                     "raw": "11",
 | |
|                                     "start": 0,
 | |
|                                     "type": "Literal",
 | |
|                                     "type": "Literal",
 | |
|                                     "value": {
 | |
|                                       "value": 11.0,
 | |
|                                       "suffix": "None"
 | |
|                                     }
 | |
|                                   },
 | |
|                                   "start": 0,
 | |
|                                   "type": "BinaryExpression",
 | |
|                                   "type": "BinaryExpression"
 | |
|                                 },
 | |
|                                 "operator": "-",
 | |
|                                 "right": {
 | |
|                                   "commentStart": 0,
 | |
|                                   "end": 0,
 | |
|                                   "raw": "180",
 | |
|                                   "start": 0,
 | |
|                                   "type": "Literal",
 | |
|                                   "type": "Literal",
 | |
|                                   "value": {
 | |
|                                     "value": 180.0,
 | |
|                                     "suffix": "None"
 | |
|                                   }
 | |
|                                 },
 | |
|                                 "start": 0,
 | |
|                                 "type": "BinaryExpression",
 | |
|                                 "type": "BinaryExpression"
 | |
|                               }
 | |
|                             },
 | |
|                             {
 | |
|                               "type": "LabeledArg",
 | |
|                               "label": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "name": "radius",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "arg": {
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "left": {
 | |
|                                   "commentStart": 0,
 | |
|                                   "end": 0,
 | |
|                                   "raw": ".288",
 | |
|                                   "start": 0,
 | |
|                                   "type": "Literal",
 | |
|                                   "type": "Literal",
 | |
|                                   "value": {
 | |
|                                     "value": 0.288,
 | |
|                                     "suffix": "None"
 | |
|                                   }
 | |
|                                 },
 | |
|                                 "operator": "*",
 | |
|                                 "right": {
 | |
|                                   "abs_path": false,
 | |
|                                   "commentStart": 0,
 | |
|                                   "end": 0,
 | |
|                                   "name": {
 | |
|                                     "commentStart": 0,
 | |
|                                     "end": 0,
 | |
|                                     "name": "scale",
 | |
|                                     "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": "arc",
 | |
|                               "start": 0,
 | |
|                               "type": "Identifier"
 | |
|                             },
 | |
|                             "path": [],
 | |
|                             "start": 0,
 | |
|                             "type": "Name"
 | |
|                           },
 | |
|                           "commentStart": 0,
 | |
|                           "end": 0,
 | |
|                           "start": 0,
 | |
|                           "type": "CallExpressionKw",
 | |
|                           "type": "CallExpressionKw",
 | |
|                           "unlabeled": null
 | |
|                         },
 | |
|                         {
 | |
|                           "callee": {
 | |
|                             "abs_path": false,
 | |
|                             "commentStart": 0,
 | |
|                             "end": 0,
 | |
|                             "name": {
 | |
|                               "commentStart": 0,
 | |
|                               "end": 0,
 | |
|                               "name": "close",
 | |
|                               "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": "length",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "arg": {
 | |
|                                 "argument": {
 | |
|                                   "abs_path": false,
 | |
|                                   "commentStart": 0,
 | |
|                                   "end": 0,
 | |
|                                   "name": {
 | |
|                                     "commentStart": 0,
 | |
|                                     "end": 0,
 | |
|                                     "name": "depth",
 | |
|                                     "start": 0,
 | |
|                                     "type": "Identifier"
 | |
|                                   },
 | |
|                                   "path": [],
 | |
|                                   "start": 0,
 | |
|                                   "type": "Name",
 | |
|                                   "type": "Name"
 | |
|                                 },
 | |
|                                 "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": "extrude",
 | |
|                               "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": "color",
 | |
|                                 "start": 0,
 | |
|                                 "type": "Identifier"
 | |
|                               },
 | |
|                               "arg": {
 | |
|                                 "abs_path": false,
 | |
|                                 "commentStart": 0,
 | |
|                                 "end": 0,
 | |
|                                 "name": {
 | |
|                                   "commentStart": 0,
 | |
|                                   "end": 0,
 | |
|                                   "name": "baseColor",
 | |
|                                   "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": "appearance",
 | |
|                               "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,
 | |
|                       "start": 0,
 | |
|                       "type": "PipeExpression",
 | |
|                       "type": "PipeExpression"
 | |
|                     },
 | |
|                     "start": 0,
 | |
|                     "type": "VariableDeclarator"
 | |
|                   },
 | |
|                   "end": 0,
 | |
|                   "kind": "const",
 | |
|                   "start": 0,
 | |
|                   "type": "VariableDeclaration",
 | |
|                   "type": "VariableDeclaration"
 | |
|                 },
 | |
|                 {
 | |
|                   "argument": {
 | |
|                     "abs_path": false,
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "name": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "name": "o",
 | |
|                       "start": 0,
 | |
|                       "type": "Identifier"
 | |
|                     },
 | |
|                     "path": [],
 | |
|                     "start": 0,
 | |
|                     "type": "Name",
 | |
|                     "type": "Name"
 | |
|                   },
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "start": 0,
 | |
|                   "type": "ReturnStatement",
 | |
|                   "type": "ReturnStatement"
 | |
|                 }
 | |
|               ],
 | |
|               "commentStart": 0,
 | |
|               "end": 0,
 | |
|               "nonCodeMeta": {
 | |
|                 "nonCodeNodes": {
 | |
|                   "0": [
 | |
|                     {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "start": 0,
 | |
|                       "type": "NonCodeNode",
 | |
|                       "value": {
 | |
|                         "type": "newLine"
 | |
|                       }
 | |
|                     }
 | |
|                   ]
 | |
|                 },
 | |
|                 "startNodes": []
 | |
|               },
 | |
|               "start": 0
 | |
|             },
 | |
|             "commentStart": 0,
 | |
|             "end": 0,
 | |
|             "params": [
 | |
|               {
 | |
|                 "type": "Parameter",
 | |
|                 "identifier": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "origin",
 | |
|                   "start": 0,
 | |
|                   "type": "Identifier"
 | |
|                 }
 | |
|               },
 | |
|               {
 | |
|                 "type": "Parameter",
 | |
|                 "identifier": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "scale",
 | |
|                   "start": 0,
 | |
|                   "type": "Identifier"
 | |
|                 }
 | |
|               },
 | |
|               {
 | |
|                 "type": "Parameter",
 | |
|                 "identifier": {
 | |
|                   "commentStart": 0,
 | |
|                   "end": 0,
 | |
|                   "name": "depth",
 | |
|                   "start": 0,
 | |
|                   "type": "Identifier"
 | |
|                 }
 | |
|               }
 | |
|             ],
 | |
|             "start": 0,
 | |
|             "type": "FunctionExpression",
 | |
|             "type": "FunctionExpression"
 | |
|           },
 | |
|           "start": 0,
 | |
|           "type": "VariableDeclarator"
 | |
|         },
 | |
|         "end": 0,
 | |
|         "kind": "fn",
 | |
|         "preComments": [
 | |
|           "",
 | |
|           "",
 | |
|           "// Define a function to draw the ZOO 'O'"
 | |
|         ],
 | |
|         "start": 0,
 | |
|         "type": "VariableDeclaration",
 | |
|         "type": "VariableDeclaration"
 | |
|       },
 | |
|       {
 | |
|         "commentStart": 0,
 | |
|         "end": 0,
 | |
|         "expression": {
 | |
|           "arguments": [
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "origin",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "commentStart": 0,
 | |
|                 "elements": [
 | |
|                   {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "raw": "2.3",
 | |
|                     "start": 0,
 | |
|                     "type": "Literal",
 | |
|                     "type": "Literal",
 | |
|                     "value": {
 | |
|                       "value": 2.3,
 | |
|                       "suffix": "None"
 | |
|                     }
 | |
|                   },
 | |
|                   {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "raw": "1.3",
 | |
|                     "start": 0,
 | |
|                     "type": "Literal",
 | |
|                     "type": "Literal",
 | |
|                     "value": {
 | |
|                       "value": 1.3,
 | |
|                       "suffix": "None"
 | |
|                     }
 | |
|                   }
 | |
|                 ],
 | |
|                 "end": 0,
 | |
|                 "start": 0,
 | |
|                 "type": "ArrayExpression",
 | |
|                 "type": "ArrayExpression"
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "scale",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "raw": ".4",
 | |
|                 "start": 0,
 | |
|                 "type": "Literal",
 | |
|                 "type": "Literal",
 | |
|                 "value": {
 | |
|                   "value": 0.4,
 | |
|                   "suffix": "None"
 | |
|                 }
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "depth",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "raw": "0.03",
 | |
|                 "start": 0,
 | |
|                 "type": "Literal",
 | |
|                 "type": "Literal",
 | |
|                 "value": {
 | |
|                   "value": 0.03,
 | |
|                   "suffix": "None"
 | |
|                 }
 | |
|               }
 | |
|             }
 | |
|           ],
 | |
|           "callee": {
 | |
|             "abs_path": false,
 | |
|             "commentStart": 0,
 | |
|             "end": 0,
 | |
|             "name": {
 | |
|               "commentStart": 0,
 | |
|               "end": 0,
 | |
|               "name": "z",
 | |
|               "start": 0,
 | |
|               "type": "Identifier"
 | |
|             },
 | |
|             "path": [],
 | |
|             "start": 0,
 | |
|             "type": "Name"
 | |
|           },
 | |
|           "commentStart": 0,
 | |
|           "end": 0,
 | |
|           "start": 0,
 | |
|           "type": "CallExpressionKw",
 | |
|           "type": "CallExpressionKw",
 | |
|           "unlabeled": null
 | |
|         },
 | |
|         "preComments": [
 | |
|           "",
 | |
|           "",
 | |
|           "// Place the Z logo on the Z key. Place the O logo on the O and P keys"
 | |
|         ],
 | |
|         "start": 0,
 | |
|         "type": "ExpressionStatement",
 | |
|         "type": "ExpressionStatement"
 | |
|       },
 | |
|       {
 | |
|         "commentStart": 0,
 | |
|         "end": 0,
 | |
|         "expression": {
 | |
|           "arguments": [
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "origin",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "commentStart": 0,
 | |
|                 "elements": [
 | |
|                   {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "raw": "8.71",
 | |
|                     "start": 0,
 | |
|                     "type": "Literal",
 | |
|                     "type": "Literal",
 | |
|                     "value": {
 | |
|                       "value": 8.71,
 | |
|                       "suffix": "None"
 | |
|                     }
 | |
|                   },
 | |
|                   {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "left": {
 | |
|                       "abs_path": false,
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "name": {
 | |
|                         "commentStart": 0,
 | |
|                         "end": 0,
 | |
|                         "name": "row4",
 | |
|                         "start": 0,
 | |
|                         "type": "Identifier"
 | |
|                       },
 | |
|                       "path": [],
 | |
|                       "start": 0,
 | |
|                       "type": "Name",
 | |
|                       "type": "Name"
 | |
|                     },
 | |
|                     "operator": "+",
 | |
|                     "right": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "raw": ".08",
 | |
|                       "start": 0,
 | |
|                       "type": "Literal",
 | |
|                       "type": "Literal",
 | |
|                       "value": {
 | |
|                         "value": 0.08,
 | |
|                         "suffix": "None"
 | |
|                       }
 | |
|                     },
 | |
|                     "start": 0,
 | |
|                     "type": "BinaryExpression",
 | |
|                     "type": "BinaryExpression"
 | |
|                   }
 | |
|                 ],
 | |
|                 "end": 0,
 | |
|                 "start": 0,
 | |
|                 "type": "ArrayExpression",
 | |
|                 "type": "ArrayExpression"
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "scale",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "raw": "0.4",
 | |
|                 "start": 0,
 | |
|                 "type": "Literal",
 | |
|                 "type": "Literal",
 | |
|                 "value": {
 | |
|                   "value": 0.4,
 | |
|                   "suffix": "None"
 | |
|                 }
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "depth",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "raw": "0.03",
 | |
|                 "start": 0,
 | |
|                 "type": "Literal",
 | |
|                 "type": "Literal",
 | |
|                 "value": {
 | |
|                   "value": 0.03,
 | |
|                   "suffix": "None"
 | |
|                 }
 | |
|               }
 | |
|             }
 | |
|           ],
 | |
|           "callee": {
 | |
|             "abs_path": false,
 | |
|             "commentStart": 0,
 | |
|             "end": 0,
 | |
|             "name": {
 | |
|               "commentStart": 0,
 | |
|               "end": 0,
 | |
|               "name": "o",
 | |
|               "start": 0,
 | |
|               "type": "Identifier"
 | |
|             },
 | |
|             "path": [],
 | |
|             "start": 0,
 | |
|             "type": "Name"
 | |
|           },
 | |
|           "commentStart": 0,
 | |
|           "end": 0,
 | |
|           "start": 0,
 | |
|           "type": "CallExpressionKw",
 | |
|           "type": "CallExpressionKw",
 | |
|           "unlabeled": null
 | |
|         },
 | |
|         "start": 0,
 | |
|         "type": "ExpressionStatement",
 | |
|         "type": "ExpressionStatement"
 | |
|       },
 | |
|       {
 | |
|         "commentStart": 0,
 | |
|         "end": 0,
 | |
|         "expression": {
 | |
|           "arguments": [
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "origin",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "commentStart": 0,
 | |
|                 "elements": [
 | |
|                   {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "left": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "raw": "8.71",
 | |
|                       "start": 0,
 | |
|                       "type": "Literal",
 | |
|                       "type": "Literal",
 | |
|                       "value": {
 | |
|                         "value": 8.71,
 | |
|                         "suffix": "None"
 | |
|                       }
 | |
|                     },
 | |
|                     "operator": "+",
 | |
|                     "right": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "raw": "0.9",
 | |
|                       "start": 0,
 | |
|                       "type": "Literal",
 | |
|                       "type": "Literal",
 | |
|                       "value": {
 | |
|                         "value": 0.9,
 | |
|                         "suffix": "None"
 | |
|                       }
 | |
|                     },
 | |
|                     "start": 0,
 | |
|                     "type": "BinaryExpression",
 | |
|                     "type": "BinaryExpression"
 | |
|                   },
 | |
|                   {
 | |
|                     "commentStart": 0,
 | |
|                     "end": 0,
 | |
|                     "left": {
 | |
|                       "abs_path": false,
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "name": {
 | |
|                         "commentStart": 0,
 | |
|                         "end": 0,
 | |
|                         "name": "row4",
 | |
|                         "start": 0,
 | |
|                         "type": "Identifier"
 | |
|                       },
 | |
|                       "path": [],
 | |
|                       "start": 0,
 | |
|                       "type": "Name",
 | |
|                       "type": "Name"
 | |
|                     },
 | |
|                     "operator": "+",
 | |
|                     "right": {
 | |
|                       "commentStart": 0,
 | |
|                       "end": 0,
 | |
|                       "raw": ".08",
 | |
|                       "start": 0,
 | |
|                       "type": "Literal",
 | |
|                       "type": "Literal",
 | |
|                       "value": {
 | |
|                         "value": 0.08,
 | |
|                         "suffix": "None"
 | |
|                       }
 | |
|                     },
 | |
|                     "start": 0,
 | |
|                     "type": "BinaryExpression",
 | |
|                     "type": "BinaryExpression"
 | |
|                   }
 | |
|                 ],
 | |
|                 "end": 0,
 | |
|                 "start": 0,
 | |
|                 "type": "ArrayExpression",
 | |
|                 "type": "ArrayExpression"
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "scale",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "raw": "0.4",
 | |
|                 "start": 0,
 | |
|                 "type": "Literal",
 | |
|                 "type": "Literal",
 | |
|                 "value": {
 | |
|                   "value": 0.4,
 | |
|                   "suffix": "None"
 | |
|                 }
 | |
|               }
 | |
|             },
 | |
|             {
 | |
|               "type": "LabeledArg",
 | |
|               "label": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "depth",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "arg": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "raw": "0.03",
 | |
|                 "start": 0,
 | |
|                 "type": "Literal",
 | |
|                 "type": "Literal",
 | |
|                 "value": {
 | |
|                   "value": 0.03,
 | |
|                   "suffix": "None"
 | |
|                 }
 | |
|               }
 | |
|             }
 | |
|           ],
 | |
|           "callee": {
 | |
|             "abs_path": false,
 | |
|             "commentStart": 0,
 | |
|             "end": 0,
 | |
|             "name": {
 | |
|               "commentStart": 0,
 | |
|               "end": 0,
 | |
|               "name": "o",
 | |
|               "start": 0,
 | |
|               "type": "Identifier"
 | |
|             },
 | |
|             "path": [],
 | |
|             "start": 0,
 | |
|             "type": "Name"
 | |
|           },
 | |
|           "commentStart": 0,
 | |
|           "end": 0,
 | |
|           "start": 0,
 | |
|           "type": "CallExpressionKw",
 | |
|           "type": "CallExpressionKw",
 | |
|           "unlabeled": null
 | |
|         },
 | |
|         "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": [
 | |
|           "// Zoo Keyboard",
 | |
|           "// A custom keyboard with Zoo brand lettering",
 | |
|           "",
 | |
|           "",
 | |
|           "// Set units"
 | |
|         ],
 | |
|         "properties": [
 | |
|           {
 | |
|             "commentStart": 0,
 | |
|             "end": 0,
 | |
|             "key": {
 | |
|               "commentStart": 0,
 | |
|               "end": 0,
 | |
|               "name": "defaultLengthUnit",
 | |
|               "start": 0,
 | |
|               "type": "Identifier"
 | |
|             },
 | |
|             "start": 0,
 | |
|             "type": "ObjectProperty",
 | |
|             "value": {
 | |
|               "abs_path": false,
 | |
|               "commentStart": 0,
 | |
|               "end": 0,
 | |
|               "name": {
 | |
|                 "commentStart": 0,
 | |
|                 "end": 0,
 | |
|                 "name": "in",
 | |
|                 "start": 0,
 | |
|                 "type": "Identifier"
 | |
|               },
 | |
|               "path": [],
 | |
|               "start": 0,
 | |
|               "type": "Name",
 | |
|               "type": "Name"
 | |
|             }
 | |
|           },
 | |
|           {
 | |
|             "commentStart": 0,
 | |
|             "end": 0,
 | |
|             "key": {
 | |
|               "commentStart": 0,
 | |
|               "end": 0,
 | |
|               "name": "kclVersion",
 | |
|               "start": 0,
 | |
|               "type": "Identifier"
 | |
|             },
 | |
|             "start": 0,
 | |
|             "type": "ObjectProperty",
 | |
|             "value": {
 | |
|               "commentStart": 0,
 | |
|               "end": 0,
 | |
|               "raw": "1.0",
 | |
|               "start": 0,
 | |
|               "type": "Literal",
 | |
|               "type": "Literal",
 | |
|               "value": {
 | |
|                 "value": 1.0,
 | |
|                 "suffix": "None"
 | |
|               }
 | |
|             }
 | |
|           }
 | |
|         ],
 | |
|         "start": 0,
 | |
|         "type": "Annotation"
 | |
|       }
 | |
|     ],
 | |
|     "nonCodeMeta": {
 | |
|       "nonCodeNodes": {},
 | |
|       "startNodes": [
 | |
|         {
 | |
|           "commentStart": 0,
 | |
|           "end": 0,
 | |
|           "start": 0,
 | |
|           "type": "NonCodeNode",
 | |
|           "value": {
 | |
|             "type": "newLine"
 | |
|           }
 | |
|         }
 | |
|       ]
 | |
|     },
 | |
|     "start": 0
 | |
|   }
 | |
| }
 |