Jelajahi Sumber

v0.3 Release

Ginger Bill 8 tahun lalu
induk
melakukan
333924cce1
3 mengubah file dengan 9 tambahan dan 9 penghapusan
  1. 6 4
      code/demo.odin
  2. 3 4
      core/_preload.odin
  3. 0 1
      src/parser.c

+ 6 - 4
code/demo.odin

@@ -41,7 +41,7 @@ main :: proc() {
 
 	// Divisor based modulo operator
 	{
-		x: i128 = -5;
+		x: i128 = -15;
 		y: i128 = 2;
 
 		fmt.println(x %  y); // Dividend based
@@ -73,6 +73,7 @@ main :: proc() {
 			id:       u64,
 			position: [vector 2]f32,
 			name:     string,
+
 			Tree{leaf_count: int},
 			Frog{ribbit_volume: f32},
 		}
@@ -81,7 +82,7 @@ main :: proc() {
 		e = Entity.Frog{ribbit_volume = 0.5, name = "Trevor"};
 
 		if frog, ok := e.(Entity.Frog); ok {
-			fmt.printf("%s the frog ribbit's at %f\n", frog.name, frog.ribbit_volume);
+			fmt.printf("%s the frog ribbits at %f\n", frog.name, frog.ribbit_volume);
 		}
 
 		// Panics if the type assertion fails
@@ -153,7 +154,7 @@ main :: proc() {
 
 
 
-		Float32Data :: bit_field {
+		Float32Data :: bit_field #align 4 {
 			fraction: 23,
 			exponent:  8,
 			sign:      1,
@@ -182,7 +183,7 @@ main :: proc() {
 	}
 
 	// Goals for v0.4 and further
-	//  * Compile as C++and use some of its constructs for sanity e.g. overloading
+	//  * Compile as C++ and use some of its constructs for sanity e.g. overloading
 	//  	- Safe array with bounds checking
 	//  	- Map type for self documentation
 	//  	- u128 i128 acting like core types
@@ -196,4 +197,5 @@ main :: proc() {
 	//  	- Foreign variables
 	//  * Documentation Generation System for code
 	//  * General Documentation for Odin
+	//  * Attributes
 }

+ 3 - 4
core/_preload.odin

@@ -30,10 +30,10 @@ TypeInfoEnumValue :: raw_union {
 }
 // NOTE(bill): This must match the compiler's
 CallingConvention :: enum {
-	ODIN = 0,
+	Odin = 0,
 	C    = 1,
-	STD  = 2,
-	FAST = 3,
+	Std  = 2,
+	Fast = 3,
 }
 
 TypeInfoRecord :: struct #ordered {
@@ -326,7 +326,6 @@ __complex64_ne  :: proc(a, b: complex64)  -> bool #inline { return real(a) != re
 __complex128_eq :: proc(a, b: complex128) -> bool #inline { return real(a) == real(b) && imag(a) == imag(b); }
 __complex128_ne :: proc(a, b: complex128) -> bool #inline { return real(a) != real(b) || imag(a) != imag(b); }
 
-
 __assert :: proc(file: string, line, column: int, msg: string) #inline {
 	fmt.fprintf(os.stderr, "%s(%d:%d) Runtime assertion: %s\n",
 	            file, line, column, msg);

+ 0 - 1
src/parser.c

@@ -3880,7 +3880,6 @@ AstNodeArray parse_stmt_list(AstFile *f) {
 	AstNodeArray list = make_ast_node_array(f);
 
 	while (f->curr_token.kind != Token_case &&
-	       // f->curr_token.kind != Token_default &&
 	       f->curr_token.kind != Token_CloseBrace &&
 	       f->curr_token.kind != Token_EOF) {
 		AstNode *stmt = parse_stmt(f);