aboutsummaryrefslogtreecommitdiff
path: root/src/tokenizer.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Documentation typo fix in tokenizer.Karl Zylinski2024-09-091-1/+1
|
* Make tags use #+ syntax instead of //+ syntax so it no longer looks like a ↵Karl Zylinski2024-09-081-0/+15
| | | | comment. Old style still works but is deprecated with a warning. Using unknown tags is now an error instead of a warning. There is a new token for #+ which consumes the whole line (or until it hits a comment). The tags are parsed like before. There are errors to tell you if you use something invalid in the pre-package-line block.
* Merge pull request #3760 from Feoramund/refactor-show-error-on-linegingerBill2024-07-011-4/+0
|\ | | | | Refactor `show_error_on_line`
| * Remove unused code from tokenizerFeoramund2024-06-141-4/+0
| |
* | Improve tokenization for false integer literals but not effect possible ↵gingerBill2024-06-281-13/+15
| | | | | | | | float literals
* | Improve error message for #3754gingerBill2024-06-281-0/+6
| |
* | Improve tokenizing wrong number literalsgingerBill2024-06-281-0/+1
|/
* Fix invalid rune literal reported twiceFeoramund2024-04-281-2/+1
| | | | | The tokenizer and the parser were reporting it in different positions. This way, they'll report in the same spot.
* Improve error messages for `switch` and `for` r-values with a suggestiongingerBill2024-04-121-0/+1
|
* Add `bit_field` as a keywordgingerBill2024-02-221-0/+1
|
* Add `or_break` and `or_continue` constructsgingerBill2023-09-301-0/+4
|
* Replace a lot of warnings with errors; remove deprecated stuffgingerBill2023-08-011-2/+2
|
* Minor change to handling of propagation of errors with `---` as a valuegingerBill2023-05-221-3/+3
|
* `gb_internal` a lotgingerBill2022-12-181-35/+35
|
* Add ODIN_ERROR_POS_STYLE environment variablegingerBill2022-01-261-8/+0
| | | | | | | | Allowing for two different error message styles: default or odin path(line:column) message unix path:line:column: message
* Move error handling code to a separate filegingerBill2022-01-101-413/+2
|
* Fix `set_file_path_string` and `thread_safe_set_ast_file_from_id`gingerBill2021-11-241-4/+4
|
* Improve usage of `file_id`gingerBill2021-11-151-3/+3
|
* Change syntax for matrices to `matrix[R, C]T`gingerBill2021-10-191-0/+1
|
* Copying file contents rather than memory mappinggingerBill2021-10-121-17/+17
|
* Force file copy on `odin strip-semicolon`gingerBill2021-09-181-4/+6
|
* Refactor `init_tokenizer_with_data` to file memory mapping (Windows only ↵gingerBill2021-09-181-30/+24
| | | | currently)
* Replace many uses of `heap_allocator()` with `permanent_allocator()`gingerBill2021-09-131-8/+2
|
* Strip semicolons; Make `odin strip-semicolon` replace `..` with `..=` if ↵gingerBill2021-09-061-1/+2
| | | | used as a binary operator
* Make `-insert-semicolon` the default nowgingerBill2021-08-311-57/+48
|
* `ERROR_BLOCK()` any usages of "Did you mean?" like behaviour whilst ↵gingerBill2021-08-271-0/+2
| | | | iterating across a scope entry map
* Use local mutex for each `AstFile.arena`gingerBill2021-08-261-2/+1
|
* Remove the old `inline` and `no_inline` tokensgingerBill2021-08-231-2/+0
|
* Fix deadlock caused by typogingerBill2021-08-191-16/+13
|
* Update semi-colon insertion rules for `or_return`gingerBill2021-08-151-0/+1
|
* Make `or_else` and `or_return` operators (binary and suffix respectively)gingerBill2021-08-151-2/+4
|
* Fix column in tokenizer (due to removed line)gingerBill2021-08-131-1/+2
|
* Minor procedure renamegingerBill2021-08-081-1/+1
|
* Simplify `init_tokenizer_with_data`gingerBill2021-08-081-4/+4
|
* Reduce superfluous error messages for return statements expecting not-1 ↵gingerBill2021-08-071-1/+5
| | | | return values
* Remove optimizations in tokenizer and default to older code (same logic) ↵gingerBill2021-08-031-45/+2
| | | | (optimize later)
* Prepare tokenizer for optimizationsgingerBill2021-08-021-20/+36
|
* Remove the literal conversion logic to the parser from the tokenizergingerBill2021-08-021-29/+0
|
* Replace `line` with `column_minus_one` in `Tokenizer`; Remove dead codegingerBill2021-08-021-45/+26
|
* Begin optimizing tokenizer; Replace `gb_utf8_decode` with `utf8_decode` (CC ↵gingerBill2021-08-011-30/+56
| | | | but easier to change later)
* Clean up a bit of the tokenizer code so that the semicolon insertion rules ↵gingerBill2021-08-011-127/+142
| | | | are in one place
* Give `begin_error_block` its own recursive mutexgingerBill2021-07-291-2/+4
|
* Define which mutexes are blocking and recursive explicitlygingerBill2021-07-271-31/+29
|
* Remove `try`; Replace `try x else y` with `or_else(x, y)`gingerBill2021-07-051-1/+0
|
* Try `try` and `or_else` built-in procedures with operators `try` and `try else`gingerBill2021-07-041-0/+1
|
* Fix semicolon insertion rule for `---`gingerBill2021-06-261-5/+5
|
* Add range-based error messages to `-verbose-errors`gingerBill2021-05-191-22/+42
| | | | | | | | Example: Cannot convert '(1 + 2)' to 'untyped bool' from 'untyped integer' x := (1 + 2) * true; ^~~~~~^
* Replace `error` calls with `Token` to use `TokenPos`gingerBill2021-05-191-51/+48
|
* Add `-verbose-errors` which shows the error in the line of codegingerBill2021-05-191-2/+90
|
* Allow `..=` alongside `..` as a "full range" operator; Update ↵gingerBill2021-05-161-0/+4
| | | | `core:odin/parser` etc