generation
This commit is contained in:
parent
dc71999c7d
commit
d30c4a2e24
5 changed files with 63 additions and 56 deletions
|
|
@ -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)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue