Browse Source

Replace [...] with [?]

gingerBill 7 years ago
parent
commit
23ab3c4713
4 changed files with 20 additions and 20 deletions
  1. 13 13
      examples/demo.odin
  2. 1 1
      examples/old_demos/demo005.odin
  3. 4 4
      src/check_expr.cpp
  4. 2 2
      src/parser.cpp

+ 13 - 13
examples/demo.odin

@@ -23,7 +23,7 @@ when ODIN_OS == "windows" {
 @(link_name="general_stuff")
 general_stuff :: proc() {
 	fmt.println("# general_stuff");
-	{ // `do` for inline statments rather than block
+	{ // `do` for inline statements rather than block
 		foo :: proc() do fmt.println("Foo!");
 		if   false do foo();
 		for  false do foo();
@@ -534,7 +534,7 @@ parametric_polymorphism :: proc() {
 
 
 
-prefix_table := [...]string{
+prefix_table := [?]string{
 	"White",
 	"Red",
 	"Green",
@@ -658,7 +658,7 @@ using_in :: proc() {
 	f.x, f.y = 123, 321;
 	println(f);
 	using x, y in f;
-	f.x, f.y = 456, 654;
+	x, y = 456, 654;
 	println(f);
 }
 
@@ -731,15 +731,15 @@ explicit_procedure_overloading :: proc() {
 
 main :: proc() {
 	when true {
-		general_stuff();
-		default_struct_values();
-		union_type();
-		parametric_polymorphism();
-		threading_example();
-		array_programming();
-		using_in();
-		named_proc_return_parameters();
-		enum_export();
-		explicit_procedure_overloading();
+		// general_stuff();
+		// default_struct_values();
+		// union_type();
+		// parametric_polymorphism();
+		// threading_example();
+		// array_programming();
+		// using_in();
+		// named_proc_return_parameters();
+		// enum_export();
+		// explicit_procedure_overloading();
 	}
 }

+ 1 - 1
examples/old_demos/demo005.odin

@@ -202,7 +202,7 @@ loops :: proc() {
 		fmt.println(val, idx);
 	}
 
-	primes := [...]int{2, 3, 5, 7, 11, 13, 17, 19};
+	primes := [?]int{2, 3, 5, 7, 11, 13, 17, 19};
 
 	for p in primes {
 		fmt.println(p);

+ 4 - 4
src/check_expr.cpp

@@ -5275,11 +5275,11 @@ ExprKind check_expr_base_internal(Checker *c, Operand *o, AstNode *node, Type *t
 		if (cl->type != nullptr) {
 			type = nullptr;
 
-			// [...]Type
+			// [?]Type
 			if (cl->type->kind == AstNode_ArrayType && cl->type->ArrayType.count != nullptr) {
 				AstNode *count = cl->type->ArrayType.count;
 				if (count->kind == AstNode_UnaryExpr &&
-				    count->UnaryExpr.op.kind == Token_Ellipsis) {
+				    count->UnaryExpr.op.kind == Token_Question) {
 					type = make_type_array(c->allocator, check_type(c, cl->type->ArrayType.elem), -1);
 					is_to_be_determined_array_count = true;
 				}
@@ -6278,8 +6278,8 @@ gbString write_expr_to_string(gbString str, AstNode *node) {
 		str = gb_string_append_rune(str, '[');
 		if (at->count != nullptr &&
 		    at->count->kind == AstNode_UnaryExpr &&
-		    at->count->UnaryExpr.op.kind == Token_Ellipsis) {
-			str = gb_string_appendc(str, "...");
+		    at->count->UnaryExpr.op.kind == Token_Question) {
+			str = gb_string_appendc(str, "?");
 		} else {
 			str = write_expr_to_string(str, at->count);
 		}

+ 2 - 2
src/parser.cpp

@@ -1770,8 +1770,8 @@ AstNode *parse_operand(AstFile *f, bool lhs) {
 		AstNode *count_expr = nullptr;
 		bool is_vector = false;
 
-		if (f->curr_token.kind == Token_Ellipsis) {
-			count_expr = ast_unary_expr(f, expect_token(f, Token_Ellipsis), nullptr);
+		if (f->curr_token.kind == Token_Question) {
+			count_expr = ast_unary_expr(f, expect_token(f, Token_Question), nullptr);
 		} else if (allow_token(f, Token_dynamic)) {
 			expect_token(f, Token_CloseBracket);
 			return ast_dynamic_array_type(f, token, parse_type(f));