gruggers 0.5.3

rust implementation of the grug language
Documentation
[
    {
        "name": "on_a",
        "statements": [
            {
                "arguments": [
                    {
                        "arguments": [
                            {
                                "type": "NUMBER_EXPR",
                                "value": "50"
                            }
                        ],
                        "name": "helper_fib",
                        "type": "CALL_EXPR"
                    }
                ],
                "name": "initialize",
                "type": "CALL_STATEMENT"
            }
        ],
        "type": "GLOBAL_ON_FN"
    },
    {
        "type": "GLOBAL_EMPTY_LINE"
    },
    {
        "arguments": [
            {
                "name": "n",
                "type": "number"
            }
        ],
        "name": "helper_fib",
        "return_type": "number",
        "statements": [
            {
                "condition": {
                    "left_expr": {
                        "left_expr": {
                            "str": "n",
                            "type": "IDENTIFIER_EXPR"
                        },
                        "operator": "EQUALS_TOKEN",
                        "right_expr": {
                            "type": "NUMBER_EXPR",
                            "value": "0"
                        },
                        "type": "BINARY_EXPR"
                    },
                    "operator": "OR_TOKEN",
                    "right_expr": {
                        "left_expr": {
                            "str": "n",
                            "type": "IDENTIFIER_EXPR"
                        },
                        "operator": "EQUALS_TOKEN",
                        "right_expr": {
                            "type": "NUMBER_EXPR",
                            "value": "1"
                        },
                        "type": "BINARY_EXPR"
                    },
                    "type": "LOGICAL_EXPR"
                },
                "if_statements": [
                    {
                        "expr": {
                            "str": "n",
                            "type": "IDENTIFIER_EXPR"
                        },
                        "type": "RETURN_STATEMENT"
                    }
                ],
                "type": "IF_STATEMENT"
            },
            {
                "expr": {
                    "left_expr": {
                        "arguments": [
                            {
                                "left_expr": {
                                    "str": "n",
                                    "type": "IDENTIFIER_EXPR"
                                },
                                "operator": "MINUS_TOKEN",
                                "right_expr": {
                                    "type": "NUMBER_EXPR",
                                    "value": "1"
                                },
                                "type": "BINARY_EXPR"
                            }
                        ],
                        "name": "helper_fib",
                        "type": "CALL_EXPR"
                    },
                    "operator": "PLUS_TOKEN",
                    "right_expr": {
                        "arguments": [
                            {
                                "left_expr": {
                                    "str": "n",
                                    "type": "IDENTIFIER_EXPR"
                                },
                                "operator": "MINUS_TOKEN",
                                "right_expr": {
                                    "type": "NUMBER_EXPR",
                                    "value": "2"
                                },
                                "type": "BINARY_EXPR"
                            }
                        ],
                        "name": "helper_fib",
                        "type": "CALL_EXPR"
                    },
                    "type": "BINARY_EXPR"
                },
                "type": "RETURN_STATEMENT"
            }
        ],
        "type": "GLOBAL_HELPER_FN"
    }
]