aboutsummaryrefslogtreecommitdiff
path: root/parse.go
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2017-06-17 21:14:40 +0200
committerDimitri Sokolyuk <demon@dim13.org>2017-06-17 21:14:40 +0200
commitf3ac15a5016f931ff38a2a18910e0c6881c84aa0 (patch)
treeb20dfe467f21ef8058fb283ecee63a99ce92653e /parse.go
parentd04b1be3ba0b06a0bf987da0514aaf7c4e8754b7 (diff)
Better names
Diffstat (limited to 'parse.go')
-rw-r--r--parse.go24
1 files changed, 12 insertions, 12 deletions
diff --git a/parse.go b/parse.go
index bf96844..3b8bea2 100644
--- a/parse.go
+++ b/parse.go
@@ -6,15 +6,15 @@ import "fmt"
func Decode(v uint16) Instruction {
switch {
case v&(1<<15) != 0:
- return newLit(v)
+ return ParseLit(v)
case v&(7<<13) == 0:
- return newJump(v)
+ return ParseJump(v)
case v&(7<<13) == 1<<13:
- return newCond(v)
+ return ParseCond(v)
case v&(7<<13) == 2<<13:
- return newCall(v)
+ return ParseCall(v)
case v&(7<<13) == 3<<13:
- return newALU(v)
+ return ParseALU(v)
}
return nil
}
@@ -29,7 +29,7 @@ type Instruction interface {
// Lit is a literal
type Lit uint16
-func newLit(v uint16) Lit { return Lit(v &^ uint16(1<<15)) }
+func ParseLit(v uint16) Lit { return Lit(v &^ uint16(1<<15)) }
func (v Lit) String() string { return fmt.Sprintf("LIT %0.4X", uint16(v)) }
func (v Lit) Value() uint16 { return uint16(v) }
func (v Lit) Compile() uint16 { return v.Value() | (1 << 15) }
@@ -37,7 +37,7 @@ func (v Lit) Compile() uint16 { return v.Value() | (1 << 15) }
// Jump is an unconditional branch
type Jump uint16
-func newJump(v uint16) Jump { return Jump(v &^ uint16(7<<13)) }
+func ParseJump(v uint16) Jump { return Jump(v &^ uint16(7<<13)) }
func (v Jump) String() string { return fmt.Sprintf("UBRANCH %0.4X", uint16(v<<1)) }
func (v Jump) Value() uint16 { return uint16(v) }
func (v Jump) Compile() uint16 { return v.Value() }
@@ -45,7 +45,7 @@ func (v Jump) Compile() uint16 { return v.Value() }
// Cond is a conditional branch
type Cond uint16
-func newCond(v uint16) Cond { return Cond(v &^ uint16(7<<13)) }
+func ParseCond(v uint16) Cond { return Cond(v &^ uint16(7<<13)) }
func (v Cond) String() string { return fmt.Sprintf("0BRANCH %0.4X", uint16(v<<1)) }
func (v Cond) Value() uint16 { return uint16(v) }
func (v Cond) Compile() uint16 { return v.Value() | (1 << 13) }
@@ -53,7 +53,7 @@ func (v Cond) Compile() uint16 { return v.Value() | (1 << 13) }
// Call procedure
type Call uint16
-func newCall(v uint16) Call { return Call(v &^ uint16(7<<13)) }
+func ParseCall(v uint16) Call { return Call(v &^ uint16(7<<13)) }
func (v Call) String() string { return fmt.Sprintf("CALL %0.4X", uint16(v<<1)) }
func (v Call) Value() uint16 { return uint16(v) }
func (v Call) Compile() uint16 { return v.Value() | (2 << 13) }
@@ -69,7 +69,7 @@ type ALU struct {
Ddir int8
}
-func newALU(v uint16) ALU {
+func ParseALU(v uint16) ALU {
return ALU{
Opcode: (v >> 8) & 15,
RtoPC: v&(1<<12) != 0,
@@ -128,13 +128,13 @@ const (
opNuleT // 15
)
-var opcodes = []string{
+var opcodeNames = []string{
"T", "N", "T+N", "T&N", "T|N", "T^N", "~T", "N==T",
"N<T", "N>>T", "T-1", "R", "[T]", "N<<T", "depth", "Nu<T",
}
func (v ALU) String() string {
- s := "ALU " + opcodes[v.Opcode]
+ s := "ALU " + opcodeNames[v.Opcode]
if v.RtoPC {
s += " R→PC"
}