10bc53bafd07b8ea7cd8e5321d4720b0c46db012 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199
  1. compilation_unit {
  2. package_statement {
  3. package_name: "ExplorerTest"
  4. }
  5. is_api: true
  6. declarations {
  7. alias {
  8. name {
  9. name: "TypeAlias"
  10. }
  11. target {
  12. int_type_literal {
  13. }
  14. }
  15. }
  16. }
  17. declarations {
  18. function {
  19. name {
  20. name: "Main"
  21. }
  22. param_pattern {
  23. }
  24. return_term {
  25. kind: Expression
  26. type {
  27. identifier {
  28. name: "TypeAlias"
  29. }
  30. }
  31. }
  32. body {
  33. statements {
  34. variable_definition {
  35. pattern {
  36. binding_pattern {
  37. name: "n"
  38. type {
  39. expression_pattern {
  40. expression {
  41. identifier {
  42. name: "TypeAlias"
  43. }
  44. }
  45. }
  46. }
  47. }
  48. }
  49. init {
  50. int_literal {
  51. value: 1
  52. }
  53. }
  54. is_returned: false
  55. }
  56. }
  57. statements {
  58. variable_definition {
  59. pattern {
  60. binding_pattern {
  61. name: "m"
  62. type {
  63. expression_pattern {
  64. expression {
  65. int_type_literal {
  66. }
  67. }
  68. }
  69. }
  70. }
  71. }
  72. init {
  73. identifier {
  74. name: "n"
  75. }
  76. }
  77. is_returned: false
  78. }
  79. }
  80. statements {
  81. variable_definition {
  82. pattern {
  83. binding_pattern {
  84. name: "p"
  85. type {
  86. expression_pattern {
  87. expression {
  88. operator {
  89. op: Ptr
  90. arguments {
  91. int_type_literal {
  92. }
  93. }
  94. }
  95. }
  96. }
  97. }
  98. }
  99. }
  100. init {
  101. operator {
  102. op: AddressOf
  103. arguments {
  104. identifier {
  105. name: "n"
  106. }
  107. }
  108. }
  109. }
  110. is_returned: false
  111. }
  112. }
  113. statements {
  114. variable_definition {
  115. pattern {
  116. binding_pattern {
  117. name: "q"
  118. type {
  119. expression_pattern {
  120. expression {
  121. operator {
  122. op: Ptr
  123. arguments {
  124. identifier {
  125. name: "TypeAlias"
  126. }
  127. }
  128. }
  129. }
  130. }
  131. }
  132. }
  133. }
  134. init {
  135. operator {
  136. op: AddressOf
  137. arguments {
  138. identifier {
  139. name: "m"
  140. }
  141. }
  142. }
  143. }
  144. is_returned: false
  145. }
  146. }
  147. statements {
  148. return_expression_statement {
  149. expression {
  150. operator {
  151. op: Add
  152. arguments {
  153. operator {
  154. op: Add
  155. arguments {
  156. operator {
  157. op: Add
  158. arguments {
  159. operator {
  160. op: Deref
  161. arguments {
  162. identifier {
  163. name: "p"
  164. }
  165. }
  166. }
  167. }
  168. arguments {
  169. operator {
  170. op: Deref
  171. arguments {
  172. identifier {
  173. name: "q"
  174. }
  175. }
  176. }
  177. }
  178. }
  179. }
  180. arguments {
  181. identifier {
  182. name: "m"
  183. }
  184. }
  185. }
  186. }
  187. arguments {
  188. identifier {
  189. name: "n"
  190. }
  191. }
  192. }
  193. }
  194. }
  195. }
  196. }
  197. }
  198. }
  199. }