generation

This commit is contained in:
aljazbrodar. 2026-01-17 15:00:01 +01:00
parent dc71999c7d
commit d30c4a2e24
5 changed files with 63 additions and 56 deletions

View file

@ -80,6 +80,8 @@ var bazno_dovoljeno bool
var bazno_naslov int
var naslov_programa int
var zacetni_naslov int
type ukaz interface {
@ -607,6 +609,7 @@ func check_M_i(el string, AST *[]ukaz) bool {
func prvi_prehod(AST *[]ukaz) {
lc_global, _ = strconv.Atoi((*AST)[0].(*format_D_n).operand)
naslov_programa = lc_global
ime_programa = (*AST)[0].(*format_D_n).oznaka
for _, el := range *AST {
//fmt.Printf("lc_global '%x'\n", lc_global)
@ -730,21 +733,9 @@ func drugi_prehod(AST *[]ukaz) {
}
}
case *format_F4_m: if st, err := strconv.Atoi(val.naslov); err == nil {
if val.n && !val.i {
} else if !val.n && val.i {
} else if val.n && val.i {
}
val.odmik = st
} else {
if val.n && !val.i {
} else if !val.n && val.i {
} else if val.n && val.i {
}
val.odmik = simbolna_tabela[val.naslov]
}
case *format_D: bazno_dovoljeno = false
case *format_D_n: switch val.ime {
@ -769,6 +760,19 @@ func drugi_prehod(AST *[]ukaz) {
}
}
func generacija(AST *[]ukaz) {
_, err := os.Create("out.obj")
if err != nil {
fmt.Println("Error creating a file: ", err)
return
}
defer file.Close()
switch
fmt.Println("H", ime_programa, naslov_programa, naslov_programa - lc_global + (*AST)[len(*AST) - 1].velikost)
}
func izpis(AST *[]ukaz) {
for _, el := range *AST {
switch val := el.(type) {
@ -847,4 +851,5 @@ func main() {
}*/
drugi_prehod(&AST)
//izpis(&AST)
generacija(&AST)
}