This commit is contained in:
aljazbrodar. 2025-12-28 14:52:19 +01:00
parent acce30cea1
commit ad4eba0796
3 changed files with 114 additions and 0 deletions

View file

@ -0,0 +1,42 @@
arithr START 0 .komentar1
LDS #11 .komentar2
LDT #5
.komentar3
LDA ZERO
ADDR S, A
ADDR T, A
STA sum
.komentar4
LDA ZERO
ADDR S, A
SUBR T, A
STA diff
LDA ZERO
ADDR S, A
MULR T, A
STA prod
LDA ZERO
ADDR S, A
DIVR T, A
STA quot
LDA ZERO
ADDR S, A
LOOP SUBR T, A .komentar5
COMPR A, T
JGT LOOP
JEQ LOOP
STA mod
HALT J HALT
END arithr
ZERO WORD 0
sum RESW 1
diff RESW 1
prod RESW 1
quot RESW 1 .komentar6
mod RESW 1
.komentar7

View file

@ -0,0 +1,55 @@
package main
import (
"fmt"
"os"
"regexp"
)
/*
type ukaz struct {
opcode int
st_operandov int
format int
}
var ukazna_tabela = map[string]ukaz{
"LDA":
}*/
func main() {
inputbyte, err := os.ReadFile("input.asm")
if err != nil {
fmt.Println("Error reading input file: ", err)
return
}
input := string(inputbyte)
pattern := regexp.MustCompile(`.*\n`)
matches := pattern.FindAllString(input, -1)
//var cleared_matches []string
for _, el := range matches {
match_pure_comment, err := regexp.MatchString(`(?m)^[\t ]*\..*$\n`, el)
if err != nil {
fmt.Println("Error while matching string.")
}
if match_pure_comment {
continue
}
match_empty, err := regexp.MatchString(`(?m)^[\t ]*$\n`, el)
if err != nil {
fmt.Println("Error while matching string.")
}
if match_empty {
continue
}
match_command, err := regexp.MatchString(``, el)
fmt.Print(el)
}
//Zbirnik mora opraviti naslednje naloge:
//1) Pregledati in razčleniti zbirniški stavek (pregledovalnik)
//2) Mnemonike nadomestiti z operacijskimi kodami
//3) Simbolična imena nadomestiti z ustreznimi številskimi ekvivalenti
//4) Razrešiti simbolične operande
//...
//<zbirniski stavek> ::== [<oznaka stavka>] <ločilo> <mnemonik> <ločilo> {<operand> <ločilo>} [<komentar>]
}

View file

@ -0,0 +1,17 @@
package main
import (
"fmt"
"regexp"
)
func main() {
pattern := regexp.MustCompile(`o\w*g`)
fmt.Println(pattern.FindString("oogenesis")) // returns ""
fmt.Println(pattern.FindString("ck")) // returns "ook"
fmt.Println(pattern.FindString("oocyst")) // returns ""
fmt.Println(pattern.FindString("book")) // returns "ook"}
match, what := regexp.MatchString("p([a-z]+)ch", "peach")
fmt.Println(match)
fmt.Println(what)
}