v2: xor, for x = ...
parent
c85ccad0a6
commit
e56bf42270
|
@ -108,7 +108,10 @@ fn (m mut map) set(key string, value voidptr) {
|
|||
// Match is not possible anymore.
|
||||
// Probe until an empty index is found.
|
||||
// Swap when probe count is higher/richer (Robin Hood).
|
||||
mut current_kv := KeyValue{key, malloc(m.value_bytes)}
|
||||
mut current_kv := KeyValue{
|
||||
key:key
|
||||
value:malloc(m.value_bytes)
|
||||
}
|
||||
C.memcpy(current_kv.value, value, m.value_bytes)
|
||||
for m.probe_hash[index] != 0 {
|
||||
if probe_hash > m.probe_hash[index] {
|
||||
|
@ -371,4 +374,4 @@ pub fn (m map_string) str() string {
|
|||
}
|
||||
sb.writeln('}')
|
||||
return sb.str()
|
||||
}
|
||||
}
|
||||
|
|
|
@ -917,6 +917,9 @@ fn (p mut Parser) for_statement() ast.Stmt {
|
|||
if p.peek_tok.kind == .decl_assign {
|
||||
init = p.var_decl()
|
||||
}
|
||||
else if p.peek_tok.kind == .assign {
|
||||
init = p.assign_stmt()
|
||||
}
|
||||
else if p.tok.kind != .semicolon {}
|
||||
// allow `for ;; i++ {`
|
||||
// Allow `for i = 0; i < ...`
|
||||
|
|
|
@ -480,7 +480,7 @@ pub fn (k Kind) is_start_of_type() bool {
|
|||
pub fn (kind Kind) is_infix() bool {
|
||||
return kind in [.plus, .minus, .mod, .mul, .div, .eq, .ne, .gt, .lt, .key_in,
|
||||
//
|
||||
.key_as, .ge, .le, .logical_or,
|
||||
.key_as, .ge, .le, .logical_or, .xor,
|
||||
//
|
||||
.and, .dot, .pipe, .amp, .left_shift, .right_shift]
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue