オレオレ言語を作る

レポジトリ: https://github.com/sfpgmr/sgl2

optimize

    


    

{
  "id": "(program)",
  "scope": {
    "def": {},
    "typedef": {}
  },
  "builtInTypes": {},
  "statements": [
    {
      "id": "type",
      "value": "𩸽",
      "lbp": 0,
      "line": 2,
      "pos": 7,
      "nodeType": "function",
      "sign": true,
      "varName": "𩸽",
      "type": {
        "id": "type",
        "value": "i32",
        "type": {
          "id": "type",
          "value": "i32",
          "type": "i32",
          "nodeType": "builtin",
          "typedef": true,
          "userType": false,
          "size": 4,
          "bitSize": 32,
          "integer": true,
          "max": 2147483647,
          "min": -134217728,
          "reserved": false,
          "led": null,
          "std": null,
          "lbp": 0,
          "scope": {
            "def": {},
            "typedef": {}
          }
        },
        "nodeType": "builtin",
        "typedef": true,
        "userType": false,
        "size": 4,
        "bitSize": 32,
        "integer": true,
        "max": 2147483647,
        "min": -134217728,
        "reserved": false,
        "led": null,
        "std": null,
        "lbp": 0,
        "scope": {
          "def": {},
          "typedef": {}
        },
        "line": 2,
        "pos": 5,
        "sign": true,
        "rvalue": false
      },
      "reserved": false,
      "led": null,
      "std": null,
      "scope": {
        "def": {},
        "typedef": {}
      },
      "params": [
        {
          "id": "(name)",
          "value": "a",
          "lbp": 0,
          "line": 2,
          "pos": 13,
          "nodeType": "name",
          "sign": true,
          "type": {
            "id": "type",
            "value": "i32",
            "type": "i32",
            "nodeType": "builtin",
            "typedef": true,
            "userType": false,
            "size": 4,
            "bitSize": 32,
            "integer": true,
            "max": 2147483647,
            "min": -134217728,
            "reserved": false,
            "led": null,
            "std": null,
            "lbp": 0,
            "scope": {
              "def": {},
              "typedef": {}
            }
          },
          "reserved": false,
          "led": null,
          "std": null,
          "scope": {
            "def": {},
            "typedef": {}
          },
          "rvalue": false,
          "varIndex": 0,
          "stored": 0
        },
        {
          "id": "(name)",
          "value": "b",
          "lbp": 0,
          "line": 2,
          "pos": 19,
          "nodeType": "name",
          "sign": true,
          "type": {
            "id": "type",
            "value": "i32",
            "type": "i32",
            "nodeType": "builtin",
            "typedef": true,
            "userType": false,
            "size": 4,
            "bitSize": 32,
            "integer": true,
            "max": 2147483647,
            "min": -134217728,
            "reserved": false,
            "led": null,
            "std": null,
            "lbp": 0,
            "scope": {
              "def": {},
              "typedef": {}
            }
          },
          "reserved": false,
          "led": null,
          "std": null,
          "scope": {
            "def": {},
            "typedef": {}
          },
          "rvalue": false,
          "varIndex": 1,
          "stored": 0
        }
      ],
      "statements": [
        {
          "id": "return",
          "value": "return",
          "lbp": 0,
          "line": 3,
          "pos": 12,
          "nodeType": "statement",
          "sign": true,
          "rvalue": false,
          "first": {
            "id": "*",
            "value": "*",
            "lbp": 70,
            "line": 3,
            "pos": 16,
            "nodeType": "binary",
            "sign": true,
            "first": {
              "id": "(name)",
              "value": "a",
              "lbp": 0,
              "line": 3,
              "pos": 14,
              "nodeType": "reference",
              "sign": true,
              "type": {
                "id": "type",
                "value": "i32",
                "type": "i32",
                "nodeType": "builtin",
                "typedef": true,
                "userType": false,
                "size": 4,
                "bitSize": 32,
                "integer": true,
                "max": 2147483647,
                "min": -134217728,
                "reserved": false,
                "led": null,
                "std": null,
                "lbp": 0,
                "scope": {
                  "def": {},
                  "typedef": {}
                }
              },
              "reserved": false,
              "led": null,
              "std": null,
              "scope": {
                "def": {},
                "typedef": {}
              },
              "rvalue": true,
              "varIndex": 0,
              "stored": 0
            },
            "rvalue": true,
            "second": {
              "id": "(name)",
              "value": "b",
              "lbp": 0,
              "line": 3,
              "pos": 18,
              "nodeType": "reference",
              "sign": true,
              "type": {
                "id": "type",
                "value": "i32",
                "type": "i32",
                "nodeType": "builtin",
                "typedef": true,
                "userType": false,
                "size": 4,
                "bitSize": 32,
                "integer": true,
                "max": 2147483647,
                "min": -134217728,
                "reserved": false,
                "led": null,
                "std": null,
                "lbp": 0,
                "scope": {
                  "def": {},
                  "typedef": {}
                }
              },
              "reserved": false,
              "led": null,
              "std": null,
              "scope": {
                "def": {},
                "typedef": {}
              },
              "rvalue": true,
              "varIndex": 1,
              "stored": 0
            },
            "type": {
              "id": "type",
              "value": "i32",
              "type": "i32",
              "nodeType": "builtin",
              "typedef": true,
              "userType": false,
              "size": 4,
              "bitSize": 32,
              "integer": true,
              "max": 2147483647,
              "min": -134217728,
              "reserved": false,
              "led": null,
              "std": null,
              "lbp": 0,
              "scope": {
                "def": {},
                "typedef": {}
              }
            }
          },
          "type": {
            "id": "type",
            "value": "i32",
            "type": "i32",
            "nodeType": "builtin",
            "typedef": true,
            "userType": false,
            "size": 4,
            "bitSize": 32,
            "integer": true,
            "max": 2147483647,
            "min": -134217728,
            "reserved": false,
            "led": null,
            "std": null,
            "lbp": 0,
            "scope": {
              "def": {},
              "typedef": {}
            }
          }
        }
      ]
    },
    {
      "id": "type",
      "value": "main",
      "lbp": 0,
      "line": 6,
      "pos": 17,
      "nodeType": "function",
      "sign": true,
      "varName": "main",
      "type": {
        "id": "type",
        "value": "i32",
        "type": {
          "id": "type",
          "value": "i32",
          "type": "i32",
          "nodeType": "builtin",
          "typedef": true,
          "userType": false,
          "size": 4,
          "bitSize": 32,
          "integer": true,
          "max": 2147483647,
          "min": -134217728,
          "reserved": false,
          "led": null,
          "std": null,
          "lbp": 0,
          "scope": {
            "def": {},
            "typedef": {}
          }
        },
        "nodeType": "builtin",
        "typedef": true,
        "userType": false,
        "size": 4,
        "bitSize": 32,
        "integer": true,
        "max": 2147483647,
        "min": -134217728,
        "reserved": false,
        "led": null,
        "std": null,
        "lbp": 0,
        "scope": {
          "def": {},
          "typedef": {}
        },
        "line": 6,
        "pos": 12,
        "sign": true,
        "export": true
      },
      "export": true,
      "reserved": false,
      "led": null,
      "std": null,
      "scope": {
        "def": {},
        "typedef": {}
      },
      "params": [],
      "statements": [
        {
          "id": "(name)",
          "value": "b",
          "lbp": 0,
          "line": 7,
          "pos": 9,
          "nodeType": "define",
          "sign": true,
          "varName": "b",
          "type": {
            "id": "type",
            "value": "i32",
            "type": {
              "id": "type",
              "value": "i32",
              "type": "i32",
              "nodeType": "builtin",
              "typedef": true,
              "userType": false,
              "size": 4,
              "bitSize": 32,
              "integer": true,
              "max": 2147483647,
              "min": -134217728,
              "reserved": false,
              "led": null,
              "std": null,
              "lbp": 0,
              "scope": {
                "def": {},
                "typedef": {}
              }
            },
            "nodeType": "builtin",
            "typedef": true,
            "userType": false,
            "size": 4,
            "bitSize": 32,
            "integer": true,
            "max": 2147483647,
            "min": -134217728,
            "reserved": false,
            "led": null,
            "std": null,
            "lbp": 0,
            "scope": {
              "def": {},
              "typedef": {}
            },
            "line": 7,
            "pos": 7,
            "sign": true,
            "rvalue": false
          },
          "reserved": false,
          "led": null,
          "std": null,
          "scope": {
            "def": {},
            "typedef": {}
          },
          "rvalue": false,
          "initialExpression": {
            "id": "(literal)",
            "value": "0",
            "lbp": 0,
            "line": 7,
            "pos": 13,
            "nodeType": "literal",
            "sign": false,
            "type": {
              "id": "type",
              "value": "i32",
              "type": "i32",
              "nodeType": "builtin",
              "typedef": true,
              "userType": false,
              "size": 4,
              "bitSize": 32,
              "integer": true,
              "max": 2147483647,
              "min": -134217728,
              "reserved": false,
              "led": null,
              "std": null,
              "lbp": 0,
              "scope": {
                "def": {},
                "typedef": {}
              }
            },
            "rvalue": true
          },
          "varIndex": 0,
          "stored": 0
        },
        {
          "id": "for",
          "value": "for",
          "lbp": 0,
          "line": 9,
          "pos": 7,
          "nodeType": "statement",
          "sign": true,
          "rvalue": false,
          "first": [
            {
              "id": "(name)",
              "value": "c",
              "lbp": 0,
              "line": 9,
              "pos": 13,
              "nodeType": "define",
              "sign": true,
              "varName": "c",
              "type": {
                "id": "type",
                "value": "i32",
                "type": {
                  "id": "type",
                  "value": "i32",
                  "type": "i32",
                  "nodeType": "builtin",
                  "typedef": true,
                  "userType": false,
                  "size": 4,
                  "bitSize": 32,
                  "integer": true,
                  "max": 2147483647,
                  "min": -134217728,
                  "reserved": false,
                  "led": null,
                  "std": null,
                  "lbp": 0,
                  "scope": {
                    "def": {},
                    "typedef": {}
                  }
                },
                "nodeType": "builtin",
                "typedef": true,
                "userType": false,
                "size": 4,
                "bitSize": 32,
                "integer": true,
                "max": 2147483647,
                "min": -134217728,
                "reserved": false,
                "led": null,
                "std": null,
                "lbp": 0,
                "scope": {
                  "def": {},
                  "typedef": {}
                },
                "line": 9,
                "pos": 11,
                "sign": true,
                "rvalue": false
              },
              "reserved": false,
              "led": null,
              "std": null,
              "scope": {
                "def": {},
                "typedef": {}
              },
              "rvalue": false,
              "initialExpression": {
                "id": "(literal)",
                "value": "0",
                "lbp": 0,
                "line": 9,
                "pos": 17,
                "nodeType": "literal",
                "sign": false,
                "type": {
                  "id": "type",
                  "value": "i32",
                  "type": "i32",
                  "nodeType": "builtin",
                  "typedef": true,
                  "userType": false,
                  "size": 4,
                  "bitSize": 32,
                  "integer": true,
                  "max": 2147483647,
                  "min": -134217728,
                  "reserved": false,
                  "led": null,
                  "std": null,
                  "lbp": 0,
                  "scope": {
                    "def": {},
                    "typedef": {}
                  }
                },
                "rvalue": true
              },
              "varIndex": 1,
              "stored": 0
            }
          ],
          "second": {
            "id": "<",
            "value": "<",
            "lbp": 40,
            "line": 9,
            "pos": 21,
            "nodeType": "binary",
            "sign": true,
            "first": {
              "id": "(name)",
              "value": "c",
              "lbp": 0,
              "line": 9,
              "pos": 19,
              "nodeType": "reference",
              "sign": true,
              "varName": "c",
              "type": {
                "id": "type",
                "value": "i32",
                "type": {
                  "id": "type",
                  "value": "i32",
                  "type": "i32",
                  "nodeType": "builtin",
                  "typedef": true,
                  "userType": false,
                  "size": 4,
                  "bitSize": 32,
                  "integer": true,
                  "max": 2147483647,
                  "min": -134217728,
                  "reserved": false,
                  "led": null,
                  "std": null,
                  "lbp": 0,
                  "scope": {
                    "def": {},
                    "typedef": {}
                  }
                },
                "nodeType": "builtin",
                "typedef": true,
                "userType": false,
                "size": 4,
                "bitSize": 32,
                "integer": true,
                "max": 2147483647,
                "min": -134217728,
                "reserved": false,
                "led": null,
                "std": null,
                "lbp": 0,
                "scope": {
                  "def": {},
                  "typedef": {}
                },
                "line": 9,
                "pos": 11,
                "sign": true,
                "rvalue": false
              },
              "reserved": false,
              "led": null,
              "std": null,
              "scope": {
                "def": {},
                "typedef": {}
              },
              "rvalue": false,
              "initialExpression": {
                "id": "(literal)",
                "value": "0",
                "lbp": 0,
                "line": 9,
                "pos": 17,
                "nodeType": "literal",
                "sign": false,
                "type": {
                  "id": "type",
                  "value": "i32",
                  "type": "i32",
                  "nodeType": "builtin",
                  "typedef": true,
                  "userType": false,
                  "size": 4,
                  "bitSize": 32,
                  "integer": true,
                  "max": 2147483647,
                  "min": -134217728,
                  "reserved": false,
                  "led": null,
                  "std": null,
                  "lbp": 0,
                  "scope": {
                    "def": {},
                    "typedef": {}
                  }
                },
                "rvalue": true
              }
            },
            "rvalue": false,
            "second": {
              "id": "(literal)",
              "value": "4",
              "lbp": 0,
              "line": 9,
              "pos": 23,
              "nodeType": "literal",
              "sign": false,
              "type": {
                "id": "type",
                "value": "i32",
                "type": "i32",
                "nodeType": "builtin",
                "typedef": true,
                "userType": false,
                "size": 4,
                "bitSize": 32,
                "integer": true,
                "max": 2147483647,
                "min": -134217728,
                "reserved": false,
                "led": null,
                "std": null,
                "lbp": 0,
                "scope": {
                  "def": {},
                  "typedef": {}
                }
              },
              "rvalue": true
            },
            "type": {
              "id": "type",
              "value": "i32",
              "type": {
                "id": "type",
                "value": "i32",
                "type": "i32",
                "nodeType": "builtin",
                "typedef": true,
                "userType": false,
                "size": 4,
                "bitSize": 32,
                "integer": true,
                "max": 2147483647,
                "min": -134217728,
                "reserved": false,
                "led": null,
                "std": null,
                "lbp": 0,
                "scope": {
                  "def": {},
                  "typedef": {}
                }
              },
              "nodeType": "builtin",
              "typedef": true,
              "userType": false,
              "size": 4,
              "bitSize": 32,
              "integer": true,
              "max": 2147483647,
              "min": -134217728,
              "reserved": false,
              "led": null,
              "std": null,
              "lbp": 0,
              "scope": {
                "def": {},
                "typedef": {}
              },
              "line": 9,
              "pos": 11,
              "sign": true,
              "rvalue": false
            }
          },
          "third": {
            "id": "++",
            "value": "++",
            "lbp": 70,
            "line": 9,
            "pos": 26,
            "nodeType": "unary",
            "sign": true,
            "first": {
              "id": "(name)",
              "value": "c",
              "lbp": 0,
              "line": 9,
              "pos": 27,
              "nodeType": "reference",
              "sign": true,
              "varName": "c",
              "type": {
                "id": "type",
                "value": "i32",
                "type": {
                  "id": "type",
                  "value": "i32",
                  "type": "i32",
                  "nodeType": "builtin",
                  "typedef": true,
                  "userType": false,
                  "size": 4,
                  "bitSize": 32,
                  "integer": true,
                  "max": 2147483647,
                  "min": -134217728,
                  "reserved": false,
                  "led": null,
                  "std": null,
                  "lbp": 0,
                  "scope": {
                    "def": {},
                    "typedef": {}
                  }
                },
                "nodeType": "builtin",
                "typedef": true,
                "userType": false,
                "size": 4,
                "bitSize": 32,
                "integer": true,
                "max": 2147483647,
                "min": -134217728,
                "reserved": false,
                "led": null,
                "std": null,
                "lbp": 0,
                "scope": {
                  "def": {},
                  "typedef": {}
                },
                "line": 9,
                "pos": 11,
                "sign": true,
                "rvalue": false
              },
              "reserved": false,
              "led": null,
              "std": null,
              "scope": {
                "def": {},
                "typedef": {}
              },
              "rvalue": false,
              "initialExpression": {
                "id": "(literal)",
                "value": "0",
                "lbp": 0,
                "line": 9,
                "pos": 17,
                "nodeType": "literal",
                "sign": false,
                "type": {
                  "id": "type",
                  "value": "i32",
                  "type": "i32",
                  "nodeType": "builtin",
                  "typedef": true,
                  "userType": false,
                  "size": 4,
                  "bitSize": 32,
                  "integer": true,
                  "max": 2147483647,
                  "min": -134217728,
                  "reserved": false,
                  "led": null,
                  "std": null,
                  "lbp": 0,
                  "scope": {
                    "def": {},
                    "typedef": {}
                  }
                },
                "rvalue": true
              },
              "varIndex": 1,
              "stored": 0
            },
            "rvalue": false,
            "type": {
              "id": "type",
              "value": "i32",
              "type": {
                "id": "type",
                "value": "i32",
                "type": "i32",
                "nodeType": "builtin",
                "typedef": true,
                "userType": false,
                "size": 4,
                "bitSize": 32,
                "integer": true,
                "max": 2147483647,
                "min": -134217728,
                "reserved": false,
                "led": null,
                "std": null,
                "lbp": 0,
                "scope": {
                  "def": {},
                  "typedef": {}
                }
              },
              "nodeType": "builtin",
              "typedef": true,
              "userType": false,
              "size": 4,
              "bitSize": 32,
              "integer": true,
              "max": 2147483647,
              "min": -134217728,
              "reserved": false,
              "led": null,
              "std": null,
              "lbp": 0,
              "scope": {
                "def": {},
                "typedef": {}
              },
              "line": 9,
              "pos": 11,
              "sign": true,
              "rvalue": false
            }
          },
          "fourth": {
            "id": "{",
            "value": "{",
            "lbp": 0,
            "line": 9,
            "pos": 30,
            "nodeType": "block",
            "sign": true,
            "first": [
              {
                "id": "=",
                "value": "=",
                "lbp": 10,
                "line": 10,
                "pos": 9,
                "nodeType": "binary",
                "sign": true,
                "first": {
                  "id": "(name)",
                  "value": "b",
                  "lbp": 0,
                  "line": 10,
                  "pos": 7,
                  "nodeType": "reference",
                  "sign": true,
                  "varName": "b",
                  "type": {
                    "id": "type",
                    "value": "i32",
                    "type": {
                      "id": "type",
                      "value": "i32",
                      "type": "i32",
                      "nodeType": "builtin",
                      "typedef": true,
                      "userType": false,
                      "size": 4,
                      "bitSize": 32,
                      "integer": true,
                      "max": 2147483647,
                      "min": -134217728,
                      "reserved": false,
                      "led": null,
                      "std": null,
                      "lbp": 0,
                      "scope": {
                        "def": {},
                        "typedef": {}
                      }
                    },
                    "nodeType": "builtin",
                    "typedef": true,
                    "userType": false,
                    "size": 4,
                    "bitSize": 32,
                    "integer": true,
                    "max": 2147483647,
                    "min": -134217728,
                    "reserved": false,
                    "led": null,
                    "std": null,
                    "lbp": 0,
                    "scope": {
                      "def": {},
                      "typedef": {}
                    },
                    "line": 7,
                    "pos": 7,
                    "sign": true,
                    "rvalue": false
                  },
                  "reserved": false,
                  "led": null,
                  "std": null,
                  "scope": {
                    "def": {},
                    "typedef": {}
                  },
                  "rvalue": false,
                  "initialExpression": {
                    "id": "(literal)",
                    "value": "0",
                    "lbp": 0,
                    "line": 7,
                    "pos": 13,
                    "nodeType": "literal",
                    "sign": false,
                    "type": {
                      "id": "type",
                      "value": "i32",
                      "type": "i32",
                      "nodeType": "builtin",
                      "typedef": true,
                      "userType": false,
                      "size": 4,
                      "bitSize": 32,
                      "integer": true,
                      "max": 2147483647,
                      "min": -134217728,
                      "reserved": false,
                      "led": null,
                      "std": null,
                      "lbp": 0,
                      "scope": {
                        "def": {},
                        "typedef": {}
                      }
                    },
                    "rvalue": true
                  },
                  "varIndex": 0,
                  "stored": 0
                },
                "rvalue": false,
                "second": {
                  "id": "+",
                  "value": "+",
                  "lbp": 50,
                  "line": 10,
                  "pos": 13,
                  "nodeType": "binary",
                  "sign": true,
                  "first": {
                    "id": "(name)",
                    "value": "b",
                    "lbp": 0,
                    "line": 10,
                    "pos": 11,
                    "nodeType": "reference",
                    "sign": true,
                    "varName": "b",
                    "type": {
                      "id": "type",
                      "value": "i32",
                      "type": {
                        "id": "type",
                        "value": "i32",
                        "type": "i32",
                        "nodeType": "builtin",
                        "typedef": true,
                        "userType": false,
                        "size": 4,
                        "bitSize": 32,
                        "integer": true,
                        "max": 2147483647,
                        "min": -134217728,
                        "reserved": false,
                        "led": null,
                        "std": null,
                        "lbp": 0,
                        "scope": {
                          "def": {},
                          "typedef": {}
                        }
                      },
                      "nodeType": "builtin",
                      "typedef": true,
                      "userType": false,
                      "size": 4,
                      "bitSize": 32,
                      "integer": true,
                      "max": 2147483647,
                      "min": -134217728,
                      "reserved": false,
                      "led": null,
                      "std": null,
                      "lbp": 0,
                      "scope": {
                        "def": {},
                        "typedef": {}
                      },
                      "line": 7,
                      "pos": 7,
                      "sign": true,
                      "rvalue": false
                    },
                    "reserved": false,
                    "led": null,
                    "std": null,
                    "scope": {
                      "def": {},
                      "typedef": {}
                    },
                    "rvalue": true,
                    "initialExpression": {
                      "id": "(literal)",
                      "value": "0",
                      "lbp": 0,
                      "line": 7,
                      "pos": 13,
                      "nodeType": "literal",
                      "sign": false,
                      "type": {
                        "id": "type",
                        "value": "i32",
                        "type": "i32",
                        "nodeType": "builtin",
                        "typedef": true,
                        "userType": false,
                        "size": 4,
                        "bitSize": 32,
                        "integer": true,
                        "max": 2147483647,
                        "min": -134217728,
                        "reserved": false,
                        "led": null,
                        "std": null,
                        "lbp": 0,
                        "scope": {
                          "def": {},
                          "typedef": {}
                        }
                      },
                      "rvalue": true
                    },
                    "varIndex": 0,
                    "stored": 0
                  },
                  "rvalue": true,
                  "second": {
                    "id": "(literal)",
                    "value": "1",
                    "lbp": 0,
                    "line": 10,
                    "pos": 15,
                    "nodeType": "literal",
                    "sign": false,
                    "type": {
                      "id": "type",
                      "value": "i32",
                      "type": "i32",
                      "nodeType": "builtin",
                      "typedef": true,
                      "userType": false,
                      "size": 4,
                      "bitSize": 32,
                      "integer": true,
                      "max": 2147483647,
                      "min": -134217728,
                      "reserved": false,
                      "led": null,
                      "std": null,
                      "lbp": 0,
                      "scope": {
                        "def": {},
                        "typedef": {}
                      }
                    },
                    "rvalue": true
                  },
                  "type": {
                    "id": "type",
                    "value": "i32",
                    "type": {
                      "id": "type",
                      "value": "i32",
                      "type": "i32",
                      "nodeType": "builtin",
                      "typedef": true,
                      "userType": false,
                      "size": 4,
                      "bitSize": 32,
                      "integer": true,
                      "max": 2147483647,
                      "min": -134217728,
                      "reserved": false,
                      "led": null,
                      "std": null,
                      "lbp": 0,
                      "scope": {
                        "def": {},
                        "typedef": {}
                      }
                    },
                    "nodeType": "builtin",
                    "typedef": true,
                    "userType": false,
                    "size": 4,
                    "bitSize": 32,
                    "integer": true,
                    "max": 2147483647,
                    "min": -134217728,
                    "reserved": false,
                    "led": null,
                    "std": null,
                    "lbp": 0,
                    "scope": {
                      "def": {},
                      "typedef": {}
                    },
                    "line": 7,
                    "pos": 7,
                    "sign": true,
                    "rvalue": false
                  }
                },
                "type": {
                  "id": "type",
                  "value": "i32",
                  "type": {
                    "id": "type",
                    "value": "i32",
                    "type": "i32",
                    "nodeType": "builtin",
                    "typedef": true,
                    "userType": false,
                    "size": 4,
                    "bitSize": 32,
                    "integer": true,
                    "max": 2147483647,
                    "min": -134217728,
                    "reserved": false,
                    "led": null,
                    "std": null,
                    "lbp": 0,
                    "scope": {
                      "def": {},
                      "typedef": {}
                    }
                  },
                  "nodeType": "builtin",
                  "typedef": true,
                  "userType": false,
                  "size": 4,
                  "bitSize": 32,
                  "integer": true,
                  "max": 2147483647,
                  "min": -134217728,
                  "reserved": false,
                  "led": null,
                  "std": null,
                  "lbp": 0,
                  "scope": {
                    "def": {},
                    "typedef": {}
                  },
                  "line": 7,
                  "pos": 7,
                  "sign": true,
                  "rvalue": false
                },
                "assignment": true
              }
            ],
            "rvalue": false
          }
        },
        {
          "id": "return",
          "value": "return",
          "lbp": 0,
          "line": 12,
          "pos": 10,
          "nodeType": "statement",
          "sign": true,
          "rvalue": false,
          "first": {
            "id": "(",
            "value": "(",
            "lbp": 80,
            "line": 12,
            "pos": 13,
            "nodeType": "call",
            "sign": true,
            "first": {
              "id": "type",
              "value": "𩸽",
              "lbp": 0,
              "line": 12,
              "pos": 12,
              "nodeType": "reference",
              "sign": true,
              "varName": "𩸽",
              "type": {
                "id": "type",
                "value": "i32",
                "type": {
                  "id": "type",
                  "value": "i32",
                  "type": "i32",
                  "nodeType": "builtin",
                  "typedef": true,
                  "userType": false,
                  "size": 4,
                  "bitSize": 32,
                  "integer": true,
                  "max": 2147483647,
                  "min": -134217728,
                  "reserved": false,
                  "led": null,
                  "std": null,
                  "lbp": 0,
                  "scope": {
                    "def": {},
                    "typedef": {}
                  }
                },
                "nodeType": "builtin",
                "typedef": true,
                "userType": false,
                "size": 4,
                "bitSize": 32,
                "integer": true,
                "max": 2147483647,
                "min": -134217728,
                "reserved": false,
                "led": null,
                "std": null,
                "lbp": 0,
                "scope": {
                  "def": {},
                  "typedef": {}
                },
                "line": 2,
                "pos": 5,
                "sign": true,
                "rvalue": false
              },
              "reserved": false,
              "led": null,
              "std": null,
              "scope": {
                "def": {},
                "typedef": {}
              },
              "params": [
                {
                  "id": "(name)",
                  "value": "a",
                  "lbp": 0,
                  "line": 2,
                  "pos": 13,
                  "nodeType": "name",
                  "sign": true,
                  "type": {
                    "id": "type",
                    "value": "i32",
                    "type": "i32",
                    "nodeType": "builtin",
                    "typedef": true,
                    "userType": false,
                    "size": 4,
                    "bitSize": 32,
                    "integer": true,
                    "max": 2147483647,
                    "min": -134217728,
                    "reserved": false,
                    "led": null,
                    "std": null,
                    "lbp": 0,
                    "scope": {
                      "def": {},
                      "typedef": {}
                    }
                  },
                  "reserved": false,
                  "led": null,
                  "std": null,
                  "scope": {
                    "def": {},
                    "typedef": {}
                  },
                  "rvalue": false,
                  "varIndex": 0,
                  "stored": 0
                },
                {
                  "id": "(name)",
                  "value": "b",
                  "lbp": 0,
                  "line": 2,
                  "pos": 19,
                  "nodeType": "name",
                  "sign": true,
                  "type": {
                    "id": "type",
                    "value": "i32",
                    "type": "i32",
                    "nodeType": "builtin",
                    "typedef": true,
                    "userType": false,
                    "size": 4,
                    "bitSize": 32,
                    "integer": true,
                    "max": 2147483647,
                    "min": -134217728,
                    "reserved": false,
                    "led": null,
                    "std": null,
                    "lbp": 0,
                    "scope": {
                      "def": {},
                      "typedef": {}
                    }
                  },
                  "reserved": false,
                  "led": null,
                  "std": null,
                  "scope": {
                    "def": {},
                    "typedef": {}
                  },
                  "rvalue": false,
                  "varIndex": 1,
                  "stored": 0
                }
              ],
              "statements": [
                {
                  "id": "return",
                  "value": "return",
                  "lbp": 0,
                  "line": 3,
                  "pos": 12,
                  "nodeType": "statement",
                  "sign": true,
                  "rvalue": false,
                  "first": {
                    "id": "*",
                    "value": "*",
                    "lbp": 70,
                    "line": 3,
                    "pos": 16,
                    "nodeType": "binary",
                    "sign": true,
                    "first": {
                      "id": "(name)",
                      "value": "a",
                      "lbp": 0,
                      "line": 3,
                      "pos": 14,
                      "nodeType": "reference",
                      "sign": true,
                      "type": {
                        "id": "type",
                        "value": "i32",
                        "type": "i32",
                        "nodeType": "builtin",
                        "typedef": true,
                        "userType": false,
                        "size": 4,
                        "bitSize": 32,
                        "integer": true,
                        "max": 2147483647,
                        "min": -134217728,
                        "reserved": false,
                        "led": null,
                        "std": null,
                        "lbp": 0,
                        "scope": {
                          "def": {},
                          "typedef": {}
                        }
                      },
                      "reserved": false,
                      "led": null,
                      "std": null,
                      "scope": {
                        "def": {},
                        "typedef": {}
                      },
                      "rvalue": true,
                      "varIndex": 0,
                      "stored": 0
                    },
                    "rvalue": true,
                    "second": {
                      "id": "(name)",
                      "value": "b",
                      "lbp": 0,
                      "line": 3,
                      "pos": 18,
                      "nodeType": "reference",
                      "sign": true,
                      "type": {
                        "id": "type",
                        "value": "i32",
                        "type": "i32",
                        "nodeType": "builtin",
                        "typedef": true,
                        "userType": false,
                        "size": 4,
                        "bitSize": 32,
                        "integer": true,
                        "max": 2147483647,
                        "min": -134217728,
                        "reserved": false,
                        "led": null,
                        "std": null,
                        "lbp": 0,
                        "scope": {
                          "def": {},
                          "typedef": {}
                        }
                      },
                      "reserved": false,
                      "led": null,
                      "std": null,
                      "scope": {
                        "def": {},
                        "typedef": {}
                      },
                      "rvalue": true,
                      "varIndex": 1,
                      "stored": 0
                    },
                    "type": {
                      "id": "type",
                      "value": "i32",
                      "type": "i32",
                      "nodeType": "builtin",
                      "typedef": true,
                      "userType": false,
                      "size": 4,
                      "bitSize": 32,
                      "integer": true,
                      "max": 2147483647,
                      "min": -134217728,
                      "reserved": false,
                      "led": null,
                      "std": null,
                      "lbp": 0,
                      "scope": {
                        "def": {},
                        "typedef": {}
                      }
                    }
                  },
                  "type": {
                    "id": "type",
                    "value": "i32",
                    "type": "i32",
                    "nodeType": "builtin",
                    "typedef": true,
                    "userType": false,
                    "size": 4,
                    "bitSize": 32,
                    "integer": true,
                    "max": 2147483647,
                    "min": -134217728,
                    "reserved": false,
                    "led": null,
                    "std": null,
                    "lbp": 0,
                    "scope": {
                      "def": {},
                      "typedef": {}
                    }
                  }
                }
              ],
              "rvalue": true
            },
            "rvalue": true,
            "second": [
              {
                "id": "(name)",
                "value": "b",
                "lbp": 0,
                "line": 12,
                "pos": 14,
                "nodeType": "reference",
                "sign": true,
                "varName": "b",
                "type": {
                  "id": "type",
                  "value": "i32",
                  "type": {
                    "id": "type",
                    "value": "i32",
                    "type": "i32",
                    "nodeType": "builtin",
                    "typedef": true,
                    "userType": false,
                    "size": 4,
                    "bitSize": 32,
                    "integer": true,
                    "max": 2147483647,
                    "min": -134217728,
                    "reserved": false,
                    "led": null,
                    "std": null,
                    "lbp": 0,
                    "scope": {
                      "def": {},
                      "typedef": {}
                    }
                  },
                  "nodeType": "builtin",
                  "typedef": true,
                  "userType": false,
                  "size": 4,
                  "bitSize": 32,
                  "integer": true,
                  "max": 2147483647,
                  "min": -134217728,
                  "reserved": false,
                  "led": null,
                  "std": null,
                  "lbp": 0,
                  "scope": {
                    "def": {},
                    "typedef": {}
                  },
                  "line": 7,
                  "pos": 7,
                  "sign": true,
                  "rvalue": false
                },
                "reserved": false,
                "led": null,
                "std": null,
                "scope": {
                  "def": {},
                  "typedef": {}
                },
                "rvalue": true,
                "initialExpression": {
                  "id": "(literal)",
                  "value": "0",
                  "lbp": 0,
                  "line": 7,
                  "pos": 13,
                  "nodeType": "literal",
                  "sign": false,
                  "type": {
                    "id": "type",
                    "value": "i32",
                    "type": "i32",
                    "nodeType": "builtin",
                    "typedef": true,
                    "userType": false,
                    "size": 4,
                    "bitSize": 32,
                    "integer": true,
                    "max": 2147483647,
                    "min": -134217728,
                    "reserved": false,
                    "led": null,
                    "std": null,
                    "lbp": 0,
                    "scope": {
                      "def": {},
                      "typedef": {}
                    }
                  },
                  "rvalue": true
                },
                "varIndex": 0,
                "stored": 0
              },
              {
                "id": "(name)",
                "value": "b",
                "lbp": 0,
                "line": 12,
                "pos": 16,
                "nodeType": "reference",
                "sign": true,
                "varName": "b",
                "type": {
                  "id": "type",
                  "value": "i32",
                  "type": {
                    "id": "type",
                    "value": "i32",
                    "type": "i32",
                    "nodeType": "builtin",
                    "typedef": true,
                    "userType": false,
                    "size": 4,
                    "bitSize": 32,
                    "integer": true,
                    "max": 2147483647,
                    "min": -134217728,
                    "reserved": false,
                    "led": null,
                    "std": null,
                    "lbp": 0,
                    "scope": {
                      "def": {},
                      "typedef": {}
                    }
                  },
                  "nodeType": "builtin",
                  "typedef": true,
                  "userType": false,
                  "size": 4,
                  "bitSize": 32,
                  "integer": true,
                  "max": 2147483647,
                  "min": -134217728,
                  "reserved": false,
                  "led": null,
                  "std": null,
                  "lbp": 0,
                  "scope": {
                    "def": {},
                    "typedef": {}
                  },
                  "line": 7,
                  "pos": 7,
                  "sign": true,
                  "rvalue": false
                },
                "reserved": false,
                "led": null,
                "std": null,
                "scope": {
                  "def": {},
                  "typedef": {}
                },
                "rvalue": true,
                "initialExpression": {
                  "id": "(literal)",
                  "value": "0",
                  "lbp": 0,
                  "line": 7,
                  "pos": 13,
                  "nodeType": "literal",
                  "sign": false,
                  "type": {
                    "id": "type",
                    "value": "i32",
                    "type": "i32",
                    "nodeType": "builtin",
                    "typedef": true,
                    "userType": false,
                    "size": 4,
                    "bitSize": 32,
                    "integer": true,
                    "max": 2147483647,
                    "min": -134217728,
                    "reserved": false,
                    "led": null,
                    "std": null,
                    "lbp": 0,
                    "scope": {
                      "def": {},
                      "typedef": {}
                    }
                  },
                  "rvalue": true
                },
                "varIndex": 0,
                "stored": 0
              }
            ],
            "type": {
              "id": "type",
              "value": "i32",
              "type": {
                "id": "type",
                "value": "i32",
                "type": "i32",
                "nodeType": "builtin",
                "typedef": true,
                "userType": false,
                "size": 4,
                "bitSize": 32,
                "integer": true,
                "max": 2147483647,
                "min": -134217728,
                "reserved": false,
                "led": null,
                "std": null,
                "lbp": 0,
                "scope": {
                  "def": {},
                  "typedef": {}
                }
              },
              "nodeType": "builtin",
              "typedef": true,
              "userType": false,
              "size": 4,
              "bitSize": 32,
              "integer": true,
              "max": 2147483647,
              "min": -134217728,
              "reserved": false,
              "led": null,
              "std": null,
              "lbp": 0,
              "scope": {
                "def": {},
                "typedef": {}
              },
              "line": 2,
              "pos": 5,
              "sign": true,
              "rvalue": false
            }
          },
          "type": {
            "id": "type",
            "value": "i32",
            "type": {
              "id": "type",
              "value": "i32",
              "type": "i32",
              "nodeType": "builtin",
              "typedef": true,
              "userType": false,
              "size": 4,
              "bitSize": 32,
              "integer": true,
              "max": 2147483647,
              "min": -134217728,
              "reserved": false,
              "led": null,
              "std": null,
              "lbp": 0,
              "scope": {
                "def": {},
                "typedef": {}
              }
            },
            "nodeType": "builtin",
            "typedef": true,
            "userType": false,
            "size": 4,
            "bitSize": 32,
            "integer": true,
            "max": 2147483647,
            "min": -134217728,
            "reserved": false,
            "led": null,
            "std": null,
            "lbp": 0,
            "scope": {
              "def": {},
              "typedef": {}
            },
            "line": 2,
            "pos": 5,
            "sign": true,
            "rvalue": false
          }
        }
      ]
    }
  ]
}