[{"data":1,"prerenderedAt":4},["ShallowReactive",2],{"DFyWQH0qzu":3},"# `lake exe ast-export` command\n\nThis command will export the AST of a lean file or project.\n\nFor example, the following lean file `Test.lean`:\n```lean\nimport Lean\n\ndef foo := 2 + 2\n\n#eval foo\n\nexample : foo = 4 := by decide\n```\n\ncan be translated using `lake exe ast-export --one Test`, producing `.lake/build/lib/Test.out.json`:\n```json\n{\"header\":\n {\"kind\": \"Lean.Parser.Module.header\",\n  \"info\": null,\n  \"args\":\n  [[],\n   [{\"kind\": \"Lean.Parser.Module.import\",\n     \"info\": null,\n     \"args\":\n     [{\"val\": \"import\",\n       \"info\": {\"trailing\": \" \", \"pos\": [0, 6], \"leading\": \"\"}},\n      [],\n      {\"val\": \"Lean\",\n       \"rawVal\": \"Lean\",\n       \"info\": {\"trailing\": \"\\n\\n\", \"pos\": [7, 11], \"leading\": \"\"}},\n      []]}]]},\n \"commands\":\n [{\"kind\": \"Lean.Parser.Command.declaration\",\n   \"info\": null,\n   \"args\":\n   [{\"kind\": \"Lean.Parser.Command.declModifiers\",\n     \"info\": null,\n     \"args\": [[], [], [], [], [], []]},\n    {\"kind\": \"Lean.Parser.Command.definition\",\n     \"info\": null,\n     \"args\":\n     [{\"val\": \"def\", \"info\": {\"trailing\": \" \", \"pos\": [13, 16], \"leading\": \"\"}},\n      {\"kind\": \"Lean.Parser.Command.declId\",\n       \"info\": null,\n       \"args\":\n       [{\"val\": \"foo\",\n         \"rawVal\": \"foo\",\n         \"info\": {\"trailing\": \" \", \"pos\": [17, 20], \"leading\": \"\"}},\n        []]},\n      {\"kind\": \"Lean.Parser.Command.optDeclSig\",\n       \"info\": null,\n       \"args\": [[], []]},\n      {\"kind\": \"Lean.Parser.Command.declValSimple\",\n       \"info\": null,\n       \"args\":\n       [{\"val\": \":=\",\n         \"info\": {\"trailing\": \" \", \"pos\": [21, 23], \"leading\": \"\"}},\n        {\"kind\": \"Lean.Parser.Term.tuple\",\n         \"info\": null,\n         \"args\":\n         [{\"val\": \"(\",\n           \"info\": {\"trailing\": \"\", \"pos\": [24, 25], \"leading\": \"\"}},\n          [{\"kind\": \"«term_+_»\",\n            \"info\": null,\n            \"args\":\n            [{\"kind\": \"num\",\n              \"info\": null,\n              \"args\":\n              [{\"val\": \"2\",\n                \"info\": {\"trailing\": \" \", \"pos\": [25, 26], \"leading\": \"\"}}]},\n             {\"val\": \"+\",\n              \"info\": {\"trailing\": \" \", \"pos\": [27, 28], \"leading\": \"\"}},\n             {\"kind\": \"num\",\n              \"info\": null,\n              \"args\":\n              [{\"val\": \"2\",\n                \"info\": {\"trailing\": \"\", \"pos\": [29, 30], \"leading\": \"\"}}]}]},\n           {\"val\": \",\",\n            \"info\": {\"trailing\": \" \", \"pos\": [30, 31], \"leading\": \"\"}},\n           [{\"kind\": \"num\",\n             \"info\": null,\n             \"args\":\n             [{\"val\": \"1\",\n               \"info\": {\"trailing\": \"\", \"pos\": [32, 33], \"leading\": \"\"}}]}]],\n          {\"val\": \")\",\n           \"info\": {\"trailing\": \"\\n\\n\", \"pos\": [33, 34], \"leading\": \"\"}}]},\n        {\"kind\": \"Lean.Parser.Termination.suffix\",\n         \"info\": null,\n         \"args\": [[], []]},\n        []]},\n      []]}]},\n  {\"kind\": \"Lean.Parser.Command.eval\",\n   \"info\": null,\n   \"args\":\n   [{\"val\": \"#eval\", \"info\": {\"trailing\": \" \", \"pos\": [36, 41], \"leading\": \"\"}},\n    {\"val\": \"foo\",\n     \"rawVal\": \"foo\",\n     \"info\": {\"trailing\": \"\\n\\n\", \"pos\": [42, 45], \"leading\": \"\"}}]},\n  {\"kind\": \"Lean.Parser.Command.declaration\",\n   \"info\": null,\n   \"args\":\n   [{\"kind\": \"Lean.Parser.Command.declModifiers\",\n     \"info\": null,\n     \"args\": [[], [], [], [], [], []]},\n    {\"kind\": \"Lean.Parser.Command.example\",\n     \"info\": null,\n     \"args\":\n     [{\"val\": \"example\",\n       \"info\": {\"trailing\": \" \", \"pos\": [47, 54], \"leading\": \"\"}},\n      {\"kind\": \"Lean.Parser.Command.optDeclSig\",\n       \"info\": null,\n       \"args\":\n       [[],\n        [{\"kind\": \"Lean.Parser.Term.typeSpec\",\n          \"info\": null,\n          \"args\":\n          [{\"val\": \":\",\n            \"info\": {\"trailing\": \" \", \"pos\": [55, 56], \"leading\": \"\"}},\n           {\"kind\": \"«term_=_»\",\n            \"info\": null,\n            \"args\":\n            [{\"kind\": \"Lean.Parser.Term.proj\",\n              \"info\": null,\n              \"args\":\n              [{\"val\": \"foo\",\n                \"rawVal\": \"foo\",\n                \"info\": {\"trailing\": \"\", \"pos\": [57, 60], \"leading\": \"\"}},\n               {\"val\": \".\",\n                \"info\": {\"trailing\": \"\", \"pos\": [60, 61], \"leading\": \"\"}},\n               {\"kind\": \"fieldIdx\",\n                \"info\": null,\n                \"args\":\n                [{\"val\": \"1\",\n                  \"info\":\n                  {\"trailing\": \" \", \"pos\": [61, 62], \"leading\": \"\"}}]}]},\n             {\"val\": \"=\",\n              \"info\": {\"trailing\": \" \", \"pos\": [63, 64], \"leading\": \"\"}},\n             {\"kind\": \"num\",\n              \"info\": null,\n              \"args\":\n              [{\"val\": \"4\",\n                \"info\":\n                {\"trailing\": \" \", \"pos\": [65, 66], \"leading\": \"\"}}]}]}]}]]},\n      {\"kind\": \"Lean.Parser.Command.declValSimple\",\n       \"info\": null,\n       \"args\":\n       [{\"val\": \":=\",\n         \"info\": {\"trailing\": \" \", \"pos\": [67, 69], \"leading\": \"\"}},\n        {\"kind\": \"Lean.Parser.Term.byTactic\",\n         \"info\": null,\n         \"args\":\n         [{\"val\": \"by\",\n           \"info\": {\"trailing\": \" \", \"pos\": [70, 72], \"leading\": \"\"}},\n          {\"kind\": \"Lean.Parser.Tactic.tacticSeq\",\n           \"info\": null,\n           \"args\":\n           [{\"kind\": \"Lean.Parser.Tactic.tacticSeq1Indented\",\n             \"info\": null,\n             \"args\":\n             [[{\"kind\": \"Lean.Parser.Tactic.decide\",\n                \"info\": null,\n                \"args\":\n                [{\"val\": \"decide\",\n                  \"info\":\n                  {\"trailing\": \"\\n\", \"pos\": [73, 79], \"leading\": \"\"}}]}]]}]}]},\n        {\"kind\": \"Lean.Parser.Termination.suffix\",\n         \"info\": null,\n         \"args\": [[], []]},\n        []]}]}]}]}\n```\n\n",1780846765119]