pine-parser 0.2.2

Parser for Pine Script.
Documentation
[
  {
    "Expression": {
      "Call": {
        "callee": {
          "Variable": {
            "name": "library"
          }
        },
        "args": [
          {
            "Positional": {
              "Literal": {
                "String": "Point"
              }
            }
          }
        ],
        "id": 1
      }
    }
  },
  {
    "TypeDecl": {
      "name": "point",
      "fields": [
        {
          "name": "x",
          "type_annotation": "int",
          "default_value": null
        },
        {
          "name": "y",
          "type_annotation": "float",
          "default_value": null
        }
      ],
      "export": true
    }
  },
  {
    "MethodDecl": {
      "name": "set",
      "params": [
        {
          "type_annotation": "point",
          "name": "this",
          "default_value": null
        }
      ],
      "body": [
        {
          "Assignment": {
            "target": {
              "MemberAccess": {
                "object": {
                  "Variable": {
                    "name": "this"
                  }
                },
                "member": "x"
              }
            },
            "value": {
              "Literal": {
                "Int": 1
              }
            }
          }
        }
      ],
      "export": true
    }
  },
  {
    "FunctionDecl": {
      "name": "add",
      "params": [
        {
          "name": "x"
        },
        {
          "name": "y"
        }
      ],
      "body": [
        {
          "Expression": {
            "Binary": {
              "left": {
                "Variable": {
                  "name": "x"
                }
              },
              "op": "Add",
              "right": {
                "Variable": {
                  "name": "y"
                }
              }
            }
          }
        }
      ],
      "export": true
    }
  },
  {
    "EnumDecl": {
      "name": "Signal",
      "fields": [
        {
          "name": "buy",
          "title": "Buy signal"
        },
        {
          "name": "sell",
          "title": "Sell signal"
        }
      ],
      "export": true
    }
  }
]