program_2.go 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404
  1. @target mips, mipt2
  2. package main;
  3. import (
  4. //palavra "sub"
  5. "git.gojus.com.br/eugeniucarvalho/samples"
  6. "git.gojus.com.br/eugeniucarvalho/xxla"
  7. )
  8. const (
  9. DIVISOR = 2
  10. MULTIPLICADOR = 2
  11. )
  12. //type time int
  13. type A struct {
  14. //samples.Entidade
  15. Vivo bool
  16. Idade int
  17. }
  18. type G struct {
  19. //main.A
  20. //main.A
  21. valores int
  22. ID int
  23. }
  24. func Z(x int) int {
  25. return x + 3
  26. }
  27. func L(x *int) int,int {
  28. a := Z(3)
  29. return *x + 1, 2 + 2
  30. }
  31. //var (
  32. // v1 G
  33. //)
  34. func main() {
  35. var (
  36. i int
  37. j int
  38. t int
  39. variavel G
  40. //variavel = G{}
  41. /*
  42. variavel = G{
  43. A: A{
  44. Vivo:true,
  45. },
  46. valores:1,
  47. ID:2,
  48. }
  49. */
  50. //m int
  51. k *int
  52. //b bool
  53. v = true
  54. array = []int{1,2,3,4,5,}
  55. array2 [DIVISOR][4]int
  56. )
  57. /*
  58. i = 2
  59. array[i] = 1
  60. t = array[i]
  61. array[6] = 1
  62. t[1] = 1
  63. */
  64. i = 2 + t
  65. j,t = L(k)
  66. *k = 4
  67. variavel.ID = 1
  68. t = variavel.ID
  69. /*
  70. k = &i
  71. i = *k
  72. t++
  73. i = 2 + *k
  74. */
  75. //t = array2[1][2]
  76. //array2[i][2] = t
  77. /**
  78. IF3:
  79. if (i == 0 || (i != 4 || j > 10)) {
  80. v1.ID = 1
  81. } else {
  82. j = 10
  83. }
  84. Saltos
  85. IF0:
  86. if (i == 0 ){
  87. j = 20
  88. }
  89. IF1:
  90. if true {
  91. j = 20
  92. }
  93. IF2:
  94. if (i == 0 ){
  95. j = 10
  96. } else {
  97. j = 30
  98. }
  99. IF4:
  100. if (i == 0 && (i != 4 && j > 10)) {
  101. j = 1
  102. } else {
  103. j = 10
  104. }
  105. SWITCH:
  106. switch {
  107. case k < 10:
  108. variavel.ID = variavel.ID + k
  109. fallthrough
  110. case true == false:
  111. variavel.ID = variavel.ID - k
  112. default:
  113. variavel.ID = variavel.ID - k
  114. }
  115. FOR1:
  116. i = 0
  117. for i < 10 {
  118. variavel.ID = variavel.ID + i
  119. i++
  120. }
  121. FOR2:
  122. i = 0
  123. for i < 10 && j = true {
  124. variavel.ID = variavel.ID + i
  125. i++
  126. }
  127. FOR3:
  128. for i < 10 || j = true {
  129. variavel.ID = variavel.ID + i
  130. i++
  131. }
  132. <main.L>:
  133. 6: 0: pop_param _V2 T< pop_param >
  134. 7: 1: _T4 := *_V2 T< pointer_assign >
  135. 8: 2: _T5 := _T4 + 1 T< assign >
  136. 9: 3: push_return _T5 T< push_return >
  137. 10: 4: return 1 T< return >
  138. : <main.L-end>:
  139. 10: 00048021 addu s0,zero,a0 .6.--pop param
  140. 11: 33d10000 lw s1,fp,0 .7.--load address stored in _V2
  141. 12: 32280000 lw t0,s1,0 .7.--load content of address stored in s1
  142. 13: 01490001 addiu t1,t2,1 .8.
  143. */
  144. //variavel.ID = *k
  145. //i = variavel.ID
  146. //variavel.ID = 1
  147. //variavel.valores = &i
  148. //variavel.ID = 10
  149. //variavel.Entidade.ID = 20
  150. //variavel.valores = &i
  151. //j = 10
  152. //i = 10
  153. //m = L(&i)
  154. //m = L(k)
  155. //k = &i
  156. //j = *k
  157. //*k = j
  158. /*
  159. j = *variavel.valores + 2
  160. i := 0
  161. for i < 10 {
  162. variavel.ID = variavel.ID + i
  163. i++
  164. }
  165. if 1 != b {
  166. variavel.ID = -20
  167. }
  168. z := InitA(10)
  169. i = -10
  170. k = -i
  171. b = !true
  172. t = !b
  173. k = (i + 10) / 2
  174. z1 := InitA(10)
  175. k = i + z
  176. k = 10 % 2
  177. if k > 10 {
  178. variavel.ID = 1
  179. }
  180. switch {
  181. case k < 10:
  182. variavel.ID = variavel.ID + k
  183. fallthrough
  184. case true == false:
  185. variavel.ID = variavel.ID - k
  186. default:
  187. variavel.ID = variavel.ID - k
  188. }
  189. */
  190. }
  191. /*
  192. var (
  193. k = 1
  194. estrutura *A
  195. Y *int
  196. )
  197. x := samples.DoPacote()
  198. na := A {
  199. valid : true,
  200. id : 1,
  201. }
  202. a := 1
  203. k = &a // Atualizar o valor do endereco do ponteiro
  204. *k = 3 // Atribuicao do valor a variavel referenciado pelo ponteiro
  205. *k = *k // Copia do conteudo de um ponteiro para outro ponteiro
  206. y := lista(k)
  207. z := listaEstrutura(estrutura, 1)
  208. // fim
  209. var G variavel
  210. //res := variavel.Ativada()
  211. res := false || true
  212. k := 1
  213. X0:
  214. switch res := variavel.Ativada(); res {
  215. case 'a', 'b', 'd':
  216. variavel.ID = variavel.ID + k
  217. break
  218. variavel.ID = variavel.ID + k
  219. fallthrough
  220. case 'c':
  221. variavel.ID = variavel.ID - k
  222. }
  223. X1:
  224. switch {
  225. case 1 < 10:
  226. variavel.ID = variavel.ID + k
  227. fallthrough
  228. case true == false:
  229. variavel.ID = variavel.ID - k
  230. default:
  231. variavel.ID = variavel.ID - k
  232. }
  233. X2:
  234. if res == true && 4 < 2 {
  235. variavel.ID = 15 + 1
  236. } else if res == true || 4 < 2 {
  237. variavel.ID = 15 + 1
  238. } else {
  239. variavel.ID = 5 + 11
  240. }
  241. X3:
  242. if res := variavel.Ativada(); res {
  243. variavel.ID = 15 + 1
  244. }
  245. X4:
  246. for i := 0; i < 10; i++ {
  247. res = variavel.Somar(10)
  248. goto X1
  249. variavel.ID = variavel.ID + i
  250. continue
  251. }
  252. X5:
  253. i := 0
  254. for i < 10 {
  255. res = variavel.Somar(10)
  256. variavel.ID = variavel.ID + i
  257. i++
  258. }
  259. X6:
  260. // saia
  261. for x, y := range lista() {
  262. res = variavel.Somar(10)
  263. variavel.ID = variavel.ID + i
  264. i++
  265. }
  266. variavel.A.Nome = 10
  267. res = res || (true && false)
  268. b, x := Crazy(10)
  269. variavel.ID++
  270. */
  271. /**
  272. func (x *G) Somar(i int) int {
  273. return i + x.ID
  274. }
  275. func Crazy(x int) bool, int {
  276. return x, true
  277. }
  278. func lista(v *int) int {
  279. return v + 1
  280. }
  281. func InitA(v int) int {
  282. return v + 1
  283. }
  284. func listaEstrutura(r *A) int {
  285. return r.valid + 1
  286. }
  287. func L(a *int) *int {
  288. *a = *a + 1
  289. return a
  290. }
  291. */