gruggers 0.5.3

rust implementation of the grug language
Documentation
[
    {
        "name": "on_a",
        "statements": [
            {
                "assignment": {
                    "type": "NUMBER_EXPR",
                    "value": "0"
                },
                "name": "i",
                "type": "VARIABLE_STATEMENT",
                "variable_type": "number"
            },
            {
                "type": "EMPTY_LINE_STATEMENT"
            },
            {
                "condition": {
                    "type": "TRUE_EXPR"
                },
                "statements": [
                    {
                        "name": "nothing",
                        "type": "CALL_STATEMENT"
                    },
                    {
                        "condition": {
                            "left_expr": {
                                "str": "i",
                                "type": "IDENTIFIER_EXPR"
                            },
                            "operator": "NOT_EQUALS_TOKEN",
                            "right_expr": {
                                "type": "NUMBER_EXPR",
                                "value": "2"
                            },
                            "type": "BINARY_EXPR"
                        },
                        "statements": [
                            {
                                "assignment": {
                                    "left_expr": {
                                        "str": "i",
                                        "type": "IDENTIFIER_EXPR"
                                    },
                                    "operator": "PLUS_TOKEN",
                                    "right_expr": {
                                        "type": "NUMBER_EXPR",
                                        "value": "1"
                                    },
                                    "type": "BINARY_EXPR"
                                },
                                "name": "i",
                                "type": "VARIABLE_STATEMENT"
                            },
                            {
                                "condition": {
                                    "expr": {
                                        "left_expr": {
                                            "str": "i",
                                            "type": "IDENTIFIER_EXPR"
                                        },
                                        "operator": "EQUALS_TOKEN",
                                        "right_expr": {
                                            "type": "NUMBER_EXPR",
                                            "value": "1"
                                        },
                                        "type": "BINARY_EXPR"
                                    },
                                    "type": "PARENTHESIZED_EXPR"
                                },
                                "if_statements": [
                                    {
                                        "type": "CONTINUE_STATEMENT"
                                    }
                                ],
                                "type": "IF_STATEMENT"
                            },
                            {
                                "name": "nothing",
                                "type": "CALL_STATEMENT"
                            }
                        ],
                        "type": "WHILE_STATEMENT"
                    },
                    {
                        "type": "BREAK_STATEMENT"
                    }
                ],
                "type": "WHILE_STATEMENT"
            }
        ],
        "type": "GLOBAL_ON_FN"
    }
]