Support var

This commit is contained in:
2026-01-19 22:07:25 +08:00
parent 57def6137b
commit 0833a2229b
6 changed files with 93 additions and 55 deletions

View File

@@ -9,9 +9,9 @@ using namespace camellya;
TEST_CASE("basic arithmetic", "[script]") {
State state;
const char* script = R"(
number x = 10;
number y = 20;
number z = x + y;
var x = 10;
var y = 20;
var z = x + y;
)";
REQUIRE(state.do_string(script));
@@ -31,7 +31,7 @@ TEST_CASE("basic function", "[script][func]") {
func add(number x, number y) -> number {
return x + y;
}
number z = add(10, 20);
var z = add(10, 20);
)";
REQUIRE(state.do_string(script));
@@ -48,7 +48,7 @@ TEST_CASE("basic function", "[script][func]") {
TEST_CASE("list indexing is 0-based", "[list]") {
State state;
const char* script = R"(
list numbers = [10, 20, 30];
var numbers = [10, 20, 30];
)";
REQUIRE(state.do_string(script));
@@ -78,8 +78,8 @@ TEST_CASE("class init is called on declaration", "[class][init]") {
State state;
const char* script = R"(
class Person {
number age;
string name;
var age : number;
var name : string;
func init() -> nil {
age = 18;
@@ -91,8 +91,8 @@ TEST_CASE("class init is called on declaration", "[class][init]") {
}
}
Person p;
number a = p.getAge();
var p : Person;
var a = p.getAge();
)";
REQUIRE(state.do_string(script));
@@ -152,8 +152,8 @@ TEST_CASE("class init is called on declaration", "[class][init]") {
TEST_CASE("loop break", "[script][loop]") {
State state;
const char* script = R"(
number sum = 0;
for (number i = 0; i < 10; i = i + 1) {
var sum = 0;
for (var i = 0; i < 10; i = i + 1) {
if (i == 5) {
break;
}
@@ -171,8 +171,8 @@ TEST_CASE("loop break", "[script][loop]") {
TEST_CASE("loop continue", "[script][loop]") {
State state;
const char* script = R"(
number sum = 0;
for (number i = 0; i < 5; i = i + 1) {
var sum = 0;
for (var i = 0; i < 5; i = i + 1) {
if (i == 2) {
continue;
}
@@ -190,8 +190,8 @@ TEST_CASE("loop continue", "[script][loop]") {
TEST_CASE("while break and continue", "[script][loop]") {
State state;
const char* script = R"(
number i = 0;
number sum = 0;
var i = 0;
var sum = 0;
while (i < 10) {
i = i + 1;
if (i == 3) {