mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-06 23:58:50 +00:00
Using implicit selector expressions in the core library
This commit is contained in:
@@ -2679,7 +2679,7 @@ parse_simple_stmt :: proc(p: ^Parser, flags: Stmt_Allow_Flags) -> ^ast.Stmt {
|
|||||||
return stmt;
|
return stmt;
|
||||||
|
|
||||||
case op.kind == token.In:
|
case op.kind == token.In:
|
||||||
if Stmt_Allow_Flag.In in flags {
|
if .In in flags {
|
||||||
allow_token(p, token.In);
|
allow_token(p, token.In);
|
||||||
prev_allow_range := p.allow_range;
|
prev_allow_range := p.allow_range;
|
||||||
p.allow_range = true;
|
p.allow_range = true;
|
||||||
@@ -2697,7 +2697,7 @@ parse_simple_stmt :: proc(p: ^Parser, flags: Stmt_Allow_Flags) -> ^ast.Stmt {
|
|||||||
}
|
}
|
||||||
case op.kind == token.Colon:
|
case op.kind == token.Colon:
|
||||||
expect_token_after(p, token.Colon, "identifier list");
|
expect_token_after(p, token.Colon, "identifier list");
|
||||||
if Stmt_Allow_Flag.Label in flags && len(lhs) == 1 {
|
if .Label in flags && len(lhs) == 1 {
|
||||||
switch p.curr_tok.kind {
|
switch p.curr_tok.kind {
|
||||||
case token.Open_Brace, token.If, token.For, token.Switch:
|
case token.Open_Brace, token.If, token.For, token.Switch:
|
||||||
label := lhs[0];
|
label := lhs[0];
|
||||||
|
|||||||
+4
-6
@@ -123,20 +123,18 @@ read_ptr :: proc(fd: Handle, data: rawptr, len: int) -> (int, Errno) {
|
|||||||
heap_allocator_proc :: proc(allocator_data: rawptr, mode: mem.Allocator_Mode,
|
heap_allocator_proc :: proc(allocator_data: rawptr, mode: mem.Allocator_Mode,
|
||||||
size, alignment: int,
|
size, alignment: int,
|
||||||
old_memory: rawptr, old_size: int, flags: u64 = 0, loc := #caller_location) -> rawptr {
|
old_memory: rawptr, old_size: int, flags: u64 = 0, loc := #caller_location) -> rawptr {
|
||||||
using mem.Allocator_Mode;
|
|
||||||
|
|
||||||
switch mode {
|
switch mode {
|
||||||
case Alloc:
|
case .Alloc:
|
||||||
return heap_alloc(size);
|
return heap_alloc(size);
|
||||||
|
|
||||||
case Free:
|
case .Free:
|
||||||
heap_free(old_memory);
|
heap_free(old_memory);
|
||||||
return nil;
|
return nil;
|
||||||
|
|
||||||
case Free_All:
|
case .Free_All:
|
||||||
// NOTE(bill): Does nothing
|
// NOTE(bill): Does nothing
|
||||||
|
|
||||||
case Resize:
|
case .Resize:
|
||||||
if old_memory == nil {
|
if old_memory == nil {
|
||||||
return heap_alloc(size);
|
return heap_alloc(size);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user