diff --git a/core/text/scanner/scanner.odin b/core/text/scanner/scanner.odin index 03b4bb28a..45c2a5d8f 100644 --- a/core/text/scanner/scanner.odin +++ b/core/text/scanner/scanner.odin @@ -61,14 +61,17 @@ Scan_Flag :: enum u32 { Scan_Comments, Skip_Comments, // if set with .Scan_Comments, comments become white space } -Scan_Flags :: bit_set[Scan_Flag; u32]; +Scan_Flags :: distinct bit_set[Scan_Flag; u32]; Odin_Like_Tokens :: Scan_Flags{.Scan_Idents, .Scan_Ints, .Scan_Floats, .Scan_Chars, .Scan_Strings, .Scan_Raw_Strings, .Scan_Comments, .Skip_Comments}; C_Like_Tokens :: Scan_Flags{.Scan_Idents, .Scan_Ints, .Scan_C_Int_Prefixes, .Scan_Floats, .Scan_Chars, .Scan_Strings, .Scan_Raw_Strings, .Scan_Comments, .Skip_Comments}; +// Only allows for ASCII whitespace +Whitespace :: distinct bit_set['\x00'.. (tok: rune) { s.pos.line = 0; redo: for { - for s.whitespace & (1<val0 != nullptr && rs->val1 == nullptr) { + if (is_type_map(operand.type) || is_type_bit_set(operand.type)) { + gbString v = expr_to_string(rs->val0); + defer (gb_string_free(v)); + error_line("\tSuggestion: place parentheses around the expression\n"); + error_line("\t for (%s in %s) {\n", v, s); + } + } } }