@target mips, mipt2 package main; import ( //palavra "sub" "git.gojus.com.br/eugeniucarvalho/samples" "git.gojus.com.br/eugeniucarvalho/xxla" ) const ( DIVISOR = 2 MULTIPLICADOR = 2 ) //type time int type A struct { //samples.Entidade Vivo bool Idade int } type G struct { //main.A //main.A valores int ID int } func Z(x int) int { return x + 3 } func L(x *int) int,int { a := Z(3) return *x + 1, 2 + 2 } //var ( // v1 G //) func main() { var ( i int j int t int variavel G //variavel = G{} /* variavel = G{ A: A{ Vivo:true, }, valores:1, ID:2, } */ //m int k *int //b bool v = true array = []int{1,2,3,4,5,} array2 [DIVISOR][4]int ) /* i = 2 array[i] = 1 t = array[i] array[6] = 1 t[1] = 1 */ i = 2 + t j,t = L(k) *k = 4 variavel.ID = 1 t = variavel.ID /* k = &i i = *k t++ i = 2 + *k */ //t = array2[1][2] //array2[i][2] = t /** IF3: if (i == 0 || (i != 4 || j > 10)) { v1.ID = 1 } else { j = 10 } Saltos IF0: if (i == 0 ){ j = 20 } IF1: if true { j = 20 } IF2: if (i == 0 ){ j = 10 } else { j = 30 } IF4: if (i == 0 && (i != 4 && j > 10)) { j = 1 } else { j = 10 } SWITCH: switch { case k < 10: variavel.ID = variavel.ID + k fallthrough case true == false: variavel.ID = variavel.ID - k default: variavel.ID = variavel.ID - k } FOR1: i = 0 for i < 10 { variavel.ID = variavel.ID + i i++ } FOR2: i = 0 for i < 10 && j = true { variavel.ID = variavel.ID + i i++ } FOR3: for i < 10 || j = true { variavel.ID = variavel.ID + i i++ } : 6: 0: pop_param _V2 T< pop_param > 7: 1: _T4 := *_V2 T< pointer_assignment > 8: 2: _T5 := _T4 + 1 T< assign > 9: 3: push_return _T5 T< push_return > 10: 4: return 1 T< return > : : 10: 00048021 addu s0,zero,a0 .6.--pop param 11: 33d10000 lw s1,fp,0 .7.--load address stored in _V2 12: 32280000 lw t0,s1,0 .7.--load content of address stored in s1 13: 01490001 addiu t1,t2,1 .8. */ //variavel.ID = *k //i = variavel.ID //variavel.ID = 1 //variavel.valores = &i //variavel.ID = 10 //variavel.Entidade.ID = 20 //variavel.valores = &i //j = 10 //i = 10 //m = L(&i) //m = L(k) //k = &i //j = *k //*k = j /* j = *variavel.valores + 2 i := 0 for i < 10 { variavel.ID = variavel.ID + i i++ } if 1 != b { variavel.ID = -20 } z := InitA(10) i = -10 k = -i b = !true t = !b k = (i + 10) / 2 z1 := InitA(10) k = i + z k = 10 % 2 if k > 10 { variavel.ID = 1 } switch { case k < 10: variavel.ID = variavel.ID + k fallthrough case true == false: variavel.ID = variavel.ID - k default: variavel.ID = variavel.ID - k } */ } /* var ( k = 1 estrutura *A Y *int ) x := samples.DoPacote() na := A { valid : true, id : 1, } a := 1 k = &a // Atualizar o valor do endereco do ponteiro *k = 3 // Atribuicao do valor a variavel referenciado pelo ponteiro *k = *k // Copia do conteudo de um ponteiro para outro ponteiro y := lista(k) z := listaEstrutura(estrutura, 1) // fim var G variavel //res := variavel.Ativada() res := false || true k := 1 X0: switch res := variavel.Ativada(); res { case 'a', 'b', 'd': variavel.ID = variavel.ID + k break variavel.ID = variavel.ID + k fallthrough case 'c': variavel.ID = variavel.ID - k } X1: switch { case 1 < 10: variavel.ID = variavel.ID + k fallthrough case true == false: variavel.ID = variavel.ID - k default: variavel.ID = variavel.ID - k } X2: if res == true && 4 < 2 { variavel.ID = 15 + 1 } else if res == true || 4 < 2 { variavel.ID = 15 + 1 } else { variavel.ID = 5 + 11 } X3: if res := variavel.Ativada(); res { variavel.ID = 15 + 1 } X4: for i := 0; i < 10; i++ { res = variavel.Somar(10) goto X1 variavel.ID = variavel.ID + i continue } X5: i := 0 for i < 10 { res = variavel.Somar(10) variavel.ID = variavel.ID + i i++ } X6: // saia for x, y := range lista() { res = variavel.Somar(10) variavel.ID = variavel.ID + i i++ } variavel.A.Nome = 10 res = res || (true && false) b, x := Crazy(10) variavel.ID++ */ /** func (x *G) Somar(i int) int { return i + x.ID } func Crazy(x int) bool, int { return x, true } func lista(v *int) int { return v + 1 } func InitA(v int) int { return v + 1 } func listaEstrutura(r *A) int { return r.valid + 1 } func L(a *int) *int { *a = *a + 1 return a } */