# Path: luna/objects.py
# class LuaValue(object):
# class LBoolean(LuaValue):
# class LNil(LuaValue):
# class LNumber(LuaValue):
# class LString(LuaValue):
# class LVar(LuaValue):
#     def __eq__(self, other):
#     def __ne__(self, other):
#     def __iter__(self):
#     def __repr__(self):
#     def __init__(self, value):
#     def __hash__(self):
#     def __init__(self, value):
#     def __hash__(self):
#     def __init__(self, value):
#     def __hash__(self):
#     def __init__(self, value):
#     def __hash__(self):
# 
# Path: luna/vm/opcodes.py
# class OpCode(object):
# class BinaryAdd(OpCode):
# class BinarySubtract(OpCode):
# class Call(OpCode):
# class LoadConst(OpCode):
# class LoadName(OpCode):
# class PopBlock(OpCode):
# class SetupDo(OpCode):
# class StoreName(OpCode):
#     def __eq__(self, other):
#     def __ne__(self, other):
#     def __iter__(self):
#     def __repr__(self):
#     def __init__(self, index):
#     def __init__(self, index):
#     def __init__(self, index):


from luna import objects as obj
from luna.vm import opcodes as ops


def test_ass1(compile_stmt):
    frame = compile_stmt('a = 1')

    assert frame.code == [
        ops.LoadConst(0),
        ops.LoadConst(1),
        ops.StoreName(),
    ]
    assert frame.consts == [

# Path: luna/objects.py
# class LuaValue(object):
# class LBoolean(LuaValue):
# class LNil(LuaValue):
# class LNumber(LuaValue):
# class LString(LuaValue):
# class LVar(LuaValue):
#     def __eq__(self, other):
#     def __ne__(self, other):
#     def __iter__(self):
#     def __repr__(self):
#     def __init__(self, value):
#     def __hash__(self):
#     def __init__(self, value):
#     def __hash__(self):
#     def __init__(self, value):
#     def __hash__(self):
#     def __init__(self, value):
#     def __hash__(self):
# 
# Path: luna/vm/opcodes.py
# class OpCode(object):
# class BinaryAdd(OpCode):
# class BinarySubtract(OpCode):
# class Call(OpCode):
# class LoadConst(OpCode):
# class LoadName(OpCode):
# class PopBlock(OpCode):
# class SetupDo(OpCode):
# class StoreName(OpCode):
#     def __eq__(self, other):
#     def __ne__(self, other):
#     def __iter__(self):
#     def __repr__(self):
#     def __init__(self, index):
#     def __init__(self, index):
#     def __init__(self, index):


# Path: tests/compiler/_test_compiler.py
from luna import objects as obj
from luna.vm import opcodes as ops



def test_ass1(compile_stmt):
    frame = compile_stmt('a = 1')

    assert frame.code == [
        ops.LoadConst(0),
        ops.LoadConst(1),
        ops.StoreName(),
    ]
    assert frame.consts == [

        obj.LVar('a'),