gruggers 0.5.1

rust implementation of the grug language
[
    {
        "kind": "on_function",
        "name": "on_a",
        "arguments": [],
        "body_statements": [
            {
                "kind": "variable",
                "name": "i",
                "type": "number",
                "assignment_expr": {
                    "type": "number",
                    "value": 0,
                    "string": "0"
                }
            },
            {
                "kind": "empty_line"
            },
            {
                "kind": "while",
                "cond": {
                    "type": "binary",
                    "operator": "<",
                    "left": {
                        "type": "identifier",
                        "value": "i"
                    },
                    "right": {
                        "type": "number",
                        "value": 2,
                        "string": "2"
                    }
                },
                "statements": [
                    {
                        "kind": "call",
                        "expr": {
                            "type": "call",
                            "function_name": "nothing",
                            "arguments": []
                        }
                    },
                    {
                        "kind": "empty_line"
                    },
                    {
                        "name": "i",
                        "kind": "variable",
                        "assignment_expr": {
                            "type": "binary",
                            "operator": "+",
                            "left": {
                                "type": "identifier",
                                "value": "i"
                            },
                            "right": {
                                "type": "number",
                                "value": 1,
                                "string": "1"
                            }
                        }
                    },
                    {
                        "kind": "empty_line"
                    },
                    {
                        "kind": "continue"
                    },
                    {
                        "kind": "empty_line"
                    },
                    {
                        "kind": "call",
                        "expr": {
                            "type": "call",
                            "function_name": "nothing",
                            "arguments": []
                        }
                    }
                ]
            }
        ]
    }
]