Implemented negative numbers
This commit is contained in:
parent
944bacf4e1
commit
6861ae9a90
4 changed files with 28 additions and 1 deletions
|
@ -131,7 +131,15 @@ func Tokenize(buffer []byte) List {
|
|||
i++
|
||||
}
|
||||
|
||||
tokens = append(tokens, Token{Kind: Number, Position: position, Length: Length(i - position)})
|
||||
last := len(tokens) - 1
|
||||
|
||||
if len(tokens) > 0 && tokens[last].Kind == Negate {
|
||||
tokens[last].Kind = Number
|
||||
tokens[last].Length = Length(i-position) + 1
|
||||
} else {
|
||||
tokens = append(tokens, Token{Kind: Number, Position: position, Length: Length(i - position)})
|
||||
}
|
||||
|
||||
continue
|
||||
}
|
||||
|
||||
|
|
|
@ -166,6 +166,19 @@ func TestNegateAfterOperator(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func TestNegateNumber(t *testing.T) {
|
||||
tokens := token.Tokenize([]byte(`-1`))
|
||||
|
||||
expected := []token.Kind{
|
||||
token.Number,
|
||||
token.EOF,
|
||||
}
|
||||
|
||||
for i, kind := range expected {
|
||||
assert.Equal(t, tokens[i].Kind, kind)
|
||||
}
|
||||
}
|
||||
|
||||
func TestOperatorAssign(t *testing.T) {
|
||||
tokens := token.Tokenize([]byte(`a += b -= c *= d /= e &= f |= g ^= h <<= i >>= j`))
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue