verbena 0.2.0

Scripting language
# Test arithmetic augmented assignment operators
# Addition
a = 5
a += 3
assert a == 8, "Addition augmented assignment failed"

# Subtraction
b = 10
b -= 4
assert b == 6, "Subtraction augmented assignment failed"

# Multiplication
c = 7
c *= 3
assert c == 21, "Multiplication augmented assignment failed"

# Division
d = 20
d /= 4
assert d == 5, "Division augmented assignment failed"

# Modulo
f = 15
f %= 4
assert f == 3, "Modulo augmented assignment failed"

# Exponentiation
g = 2
g **= 3
assert g == 8, "Exponentiation augmented assignment failed"

# Test string augmented assignment
# String concatenation
s1 = "Hello"
s1 += " World"
assert s1 == "Hello World", "String concatenation augmented assignment failed"

# Test bitwise augmented assignment operators
# Bitwise AND
h = 60  # 0011 1100
h &= 13  # 0000 1101
assert h == 12, "Bitwise AND augmented assignment failed"  # 0000 1100

# Bitwise OR
i = 60  # 0011 1100
i |= 13  # 0000 1101
assert i == 61, "Bitwise OR augmented assignment failed"  # 0011 1101

# Bitwise XOR
j = 60  # 0011 1100
j ^= 13  # 0000 1101
assert j == 49, "Bitwise XOR augmented assignment failed"  # 0011 0001

# Left shift
k = 8  # 0000 1000
k <<= 2  # Shift left by 2 bits
assert k == 32, "Left shift augmented assignment failed"  # 0010 0000

# Right shift
m = 16  # 0001 0000
m >>= 2  # Shift right by 2 bits
assert m == 4, "Right shift augmented assignment failed"  # 0000 0100

# Print success message if all tests pass
print "All augmented assignment tests passed!"