示例#1
0
文件: none.go 项目: mm0205/gcasl
// NewNone returns a none.
func NewNone() *None {
	return &None{
		Label:   token.NewLabel(),
		Opcode:  token.NewOpcode(),
		Comment: token.NewComment(),
	}
}
示例#2
0
文件: start.go 项目: mm0205/gcasl
// NewStart returns a start.
func NewStart() *Start {
	return &Start{
		Label:    token.NewLabel(),
		Opcode:   token.NewOpcode(),
		Operand1: token.NewAddress(),
		Comment:  token.NewComment(),
	}
}
示例#3
0
文件: dc.go 项目: mm0205/gcasl
// NewDC returns a dc.
func NewDC() *DC {
	return &DC{
		Label:    token.NewLabel(),
		Opcode:   token.NewOpcode(),
		Operands: []token.Token{},
		Comment:  token.NewComment(),
	}
}
示例#4
0
文件: ds.go 项目: mm0205/gcasl
// NewDS returns a ds.
func NewDS() *DS {
	return &DS{
		Label:    token.NewLabel(),
		Opcode:   token.NewOpcode(),
		Operand1: token.NewNumber(),
		Comment:  token.NewComment(),
	}
}
示例#5
0
文件: adr.go 项目: mm0205/gcasl
// NewAdr returns a adr.
func NewAdr() *Adr {
	return &Adr{
		Label:    token.NewLabel(),
		Opcode:   token.NewOpcode(),
		Operand1: token.NewAddress(),
		Comment:  token.NewComment(),
	}
}
示例#6
0
文件: r.go 项目: mm0205/gcasl
// NewR returns a r.
func NewR() *R {
	return &R{
		Label:    token.NewLabel(),
		Opcode:   token.NewOpcode(),
		Operand1: token.NewRegister(),
		Comment:  token.NewComment(),
	}
}
示例#7
0
文件: radr.go 项目: mm0205/gcasl
// NewRAdr returns a radr.
func NewRAdr() *RAdr {
	return &RAdr{
		Label:    token.NewLabel(),
		Opcode:   token.NewOpcode(),
		Operand1: token.NewRegister(),
		Operand2: token.NewAddress(),
		Comment:  token.NewComment(),
	}
}
示例#8
0
文件: inout.go 项目: mm0205/gcasl
// NewInOut returns a inout.
func NewInOut() *InOut {
	return &InOut{
		Label:    token.NewLabel(),
		Opcode:   token.NewOpcode(),
		Operand1: token.NewOperandLabel(),
		Operand2: token.NewOperandLabel(),
		Comment:  token.NewComment(),
	}
}
示例#9
0
func TestLabelParse(t *testing.T) {
	label := token.NewLabel()
	source := token.NewSource("MAIN			 START")
	err := label.Parse(source)
	if err != nil {
		t.Error(err)
	}
	if label.TextValue() != "MAIN" {
		t.Errorf("Label error %#v", label)
	}

	opcode := token.NewOpcode()
	err = opcode.Parse(source)
	if err != nil {
		t.Error(err)
	}
	if opcode.TextValue() != "START" {
		t.Errorf("Label error %#v", opcode)
	}
}
示例#10
0
func TestRegisterParse(t *testing.T) {
	testCaseList := []testCaseForTestRegisterParse{
		{data: `							LD      GR0, DATA1`},
		{data: `							LD      GR0, 65535`},
		{data: `							LD      GR0, #ABCD`},
		{data: `							LD      GR0, =12345`},
		{data: `							LD      GR0, =#1FE0`},
		{data: `							LD      GR0, ='string'`},
		{data: `							LD      GR0, ='''is esacped quote'`},
	}
	for _, testCase := range testCaseList {
		testData := testCase.data

		source := token.NewSource(testData)
		opcode := token.NewOpcode()
		err := opcode.Parse(source)
		if err != nil {
			t.Error(err)
		}

		register := token.NewRegister()
		err = register.Parse(source)
		if err != nil {
			t.Error(err)
		}

		comma := token.NewComma()
		err = comma.Parse(source)
		if err != nil {
			t.Error(err)
		}
		address := token.NewAddress()
		err = address.Parse(source)
		if err != nil {
			t.Error(err)
		}
	}
}
示例#11
0
文件: end.go 项目: mm0205/gcasl
// NewEnd returns a end.
func NewEnd() *End {
	return &End{
		Opcode:  token.NewOpcode(),
		Comment: token.NewComment(),
	}
}