---
source: kcl-lib/src/parsing/parser.rs
expression: actual
---
{
  "body": [
    {
      "commentStart": 0,
      "declaration": {
        "commentStart": 3,
        "end": 59,
        "id": {
          "commentStart": 3,
          "end": 4,
          "moduleId": 0,
          "name": "f",
          "start": 3,
          "type": "Identifier"
        },
        "init": {
          "body": {
            "body": [
              {
                "argument": {
                  "arguments": [
                    {
                      "type": "LabeledArg",
                      "label": {
                        "commentStart": 30,
                        "end": 35,
                        "moduleId": 0,
                        "name": "maybe",
                        "start": 30,
                        "type": "Identifier"
                      },
                      "arg": {
                        "abs_path": false,
                        "commentStart": 36,
                        "end": 41,
                        "moduleId": 0,
                        "name": {
                          "commentStart": 36,
                          "end": 41,
                          "moduleId": 0,
                          "name": "angle",
                          "start": 36,
                          "type": "Identifier"
                        },
                        "path": [],
                        "start": 36,
                        "type": "Name",
                        "type": "Name"
                      }
                    },
                    {
                      "type": "LabeledArg",
                      "label": {
                        "commentStart": 43,
                        "end": 52,
                        "moduleId": 0,
                        "name": "otherwise",
                        "start": 43,
                        "type": "Identifier"
                      },
                      "arg": {
                        "commentStart": 53,
                        "end": 56,
                        "moduleId": 0,
                        "raw": "360",
                        "start": 53,
                        "type": "Literal",
                        "type": "Literal",
                        "value": {
                          "value": 360.0,
                          "suffix": "None"
                        }
                      }
                    }
                  ],
                  "callee": {
                    "abs_path": false,
                    "commentStart": 22,
                    "end": 29,
                    "moduleId": 0,
                    "name": {
                      "commentStart": 22,
                      "end": 29,
                      "moduleId": 0,
                      "name": "default",
                      "start": 22,
                      "type": "Identifier"
                    },
                    "path": [],
                    "start": 22,
                    "type": "Name"
                  },
                  "commentStart": 22,
                  "end": 57,
                  "moduleId": 0,
                  "start": 22,
                  "type": "CallExpressionKw",
                  "type": "CallExpressionKw",
                  "unlabeled": null
                },
                "commentStart": 15,
                "end": 57,
                "moduleId": 0,
                "start": 15,
                "type": "ReturnStatement",
                "type": "ReturnStatement"
              }
            ],
            "commentStart": 13,
            "end": 59,
            "moduleId": 0,
            "start": 13
          },
          "commentStart": 4,
          "end": 59,
          "moduleId": 0,
          "name": {
            "commentStart": 3,
            "end": 4,
            "moduleId": 0,
            "name": "f",
            "start": 3,
            "type": "Identifier"
          },
          "params": [
            {
              "type": "Parameter",
              "identifier": {
                "commentStart": 5,
                "end": 10,
                "moduleId": 0,
                "name": "angle",
                "start": 5,
                "type": "Identifier"
              },
              "default_value": {
                "type": "KclNone",
                "type": "KclNone",
                "__private": "KCL_NONE_ID"
              }
            }
          ],
          "start": 4,
          "type": "FunctionExpression",
          "type": "FunctionExpression"
        },
        "moduleId": 0,
        "start": 3,
        "type": "VariableDeclarator"
      },
      "end": 59,
      "kind": "fn",
      "moduleId": 0,
      "start": 0,
      "type": "VariableDeclaration",
      "type": "VariableDeclaration"
    }
  ],
  "commentStart": 0,
  "end": 59,
  "moduleId": 0,
  "start": 0
}
