mirror of
https://github.com/krgamestudios/Toy.git
synced 2026-05-01 22:40:10 +10:00
Implemented the attribute operator, using a period
This commit is contained in:
@@ -431,6 +431,19 @@ static void processInvoke(Toy_VM* vm) {
|
||||
}
|
||||
}
|
||||
|
||||
static void processAttribute(Toy_VM* vm) {
|
||||
//get the compound & attribute
|
||||
Toy_Value attribute = Toy_popStack(&vm->stack);
|
||||
Toy_Value value = Toy_popStack(&vm->stack);
|
||||
|
||||
//URGENT: type-based attributes
|
||||
Toy_pushStack(&vm->stack, TOY_VALUE_FROM_NULL()); //tmp
|
||||
|
||||
//cleanup
|
||||
Toy_freeValue(value);
|
||||
Toy_freeValue(attribute);
|
||||
}
|
||||
|
||||
static void processDuplicate(Toy_VM* vm) {
|
||||
Toy_Value value = Toy_copyValue(&vm->memoryBucket, Toy_peekStack(&vm->stack));
|
||||
Toy_pushStack(&vm->stack, value);
|
||||
@@ -958,6 +971,10 @@ static unsigned int process(Toy_VM* vm) {
|
||||
processInvoke(vm);
|
||||
break;
|
||||
|
||||
case TOY_OPCODE_ATTRIBUTE:
|
||||
processAttribute(vm);
|
||||
break;
|
||||
|
||||
case TOY_OPCODE_DUPLICATE:
|
||||
processDuplicate(vm);
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user