rinha 0.0.6

Competição saudável de compiladores
Documentation
{
    "name": "files/sum.rinha",
    "expression": {
        "kind": "Let",
        "name": {
            "text": "sum",
            "location": {
                "start": 4,
                "end": 7,
                "filename": "files/sum.rinha"
            }
        },
        "value": {
            "kind": "Function",
            "parameters": [
                {
                    "text": "n",
                    "location": {
                        "start": 14,
                        "end": 15,
                        "filename": "files/sum.rinha"
                    }
                }
            ],
            "value": {
                "kind": "If",
                "condition": {
                    "kind": "Binary",
                    "lhs": {
                        "kind": "Var",
                        "text": "n",
                        "location": {
                            "start": 28,
                            "end": 29,
                            "filename": "files/sum.rinha"
                        }
                    },
                    "op": "Eq",
                    "rhs": {
                        "kind": "Int",
                        "value": 1,
                        "location": {
                            "start": 33,
                            "end": 34,
                            "filename": "files/sum.rinha"
                        }
                    },
                    "location": {
                        "start": 28,
                        "end": 34,
                        "filename": "files/sum.rinha"
                    }
                },
                "then": {
                    "kind": "Var",
                    "text": "n",
                    "location": {
                        "start": 42,
                        "end": 43,
                        "filename": "files/sum.rinha"
                    }
                },
                "otherwise": {
                    "kind": "Binary",
                    "lhs": {
                        "kind": "Var",
                        "text": "n",
                        "location": {
                            "start": 59,
                            "end": 60,
                            "filename": "files/sum.rinha"
                        }
                    },
                    "op": "Add",
                    "rhs": {
                        "kind": "Call",
                        "callee": {
                            "kind": "Var",
                            "text": "sum",
                            "location": {
                                "start": 63,
                                "end": 66,
                                "filename": "files/sum.rinha"
                            }
                        },
                        "arguments": [
                            {
                                "kind": "Binary",
                                "lhs": {
                                    "kind": "Var",
                                    "text": "n",
                                    "location": {
                                        "start": 67,
                                        "end": 68,
                                        "filename": "files/sum.rinha"
                                    }
                                },
                                "op": "Sub",
                                "rhs": {
                                    "kind": "Int",
                                    "value": 1,
                                    "location": {
                                        "start": 71,
                                        "end": 72,
                                        "filename": "files/sum.rinha"
                                    }
                                },
                                "location": {
                                    "start": 67,
                                    "end": 72,
                                    "filename": "files/sum.rinha"
                                }
                            }
                        ],
                        "location": {
                            "start": 63,
                            "end": 73,
                            "filename": "files/sum.rinha"
                        }
                    },
                    "location": {
                        "start": 59,
                        "end": 73,
                        "filename": "files/sum.rinha"
                    }
                },
                "location": {
                    "start": 24,
                    "end": 77,
                    "filename": "files/sum.rinha"
                }
            },
            "location": {
                "start": 10,
                "end": 79,
                "filename": "files/sum.rinha"
            }
        },
        "next": {
            "kind": "Print",
            "value": {
                "kind": "Call",
                "callee": {
                    "kind": "Var",
                    "text": "sum",
                    "location": {
                        "start": 89,
                        "end": 92,
                        "filename": "files/sum.rinha"
                    }
                },
                "arguments": [
                    {
                        "kind": "Int",
                        "value": 5,
                        "location": {
                            "start": 93,
                            "end": 94,
                            "filename": "files/sum.rinha"
                        }
                    }
                ],
                "location": {
                    "start": 89,
                    "end": 95,
                    "filename": "files/sum.rinha"
                }
            },
            "location": {
                "start": 82,
                "end": 96,
                "filename": "files/sum.rinha"
            }
        },
        "location": {
            "start": 0,
            "end": 96,
            "filename": "files/sum.rinha"
        }
    },
    "location": {
        "start": 0,
        "end": 96,
        "filename": "files/sum.rinha"
    }
}