aboutsummaryrefslogtreecommitdiff
path: root/src/tokenizer.cpp
Commit message (Collapse)AuthorAgeFilesLines
* 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
* Add spacegingerBill2021-05-151-1/+1
|
* Improve semicolon insertion rule for dummy tokens `++` and `--`gingerBill2021-05-151-0/+2
|
* Tokenize `++` and `--` as tokens but disallow them in the parser, and give ↵gingerBill2021-05-151-3/+11
| | | | better error messages for they are used as operators/statements
* fix Syntax WarningGitea2021-04-091-1/+1
|
* Implement `f16` functionalitygingerBill2021-04-011-1/+2
|
* Add support for backslash \ to consume a newlinegingerBill2021-03-141-2/+41
|
* Minimize TokenPos size by using `i32` for line/column/offset and file_id ↵gingerBill2021-03-041-29/+77
| | | | | | instead of `String` To make `i32` safe, the parser limits the file size of odin files to a maximum of 2GiB (which will be good enough for the vast vast majority of cases)
* Remove `bit_field` keyword and parsing logicgingerBill2021-02-231-1/+0
|
* Add flags `-ignore-warnings` and `-warnings-as-errors`gingerBill2021-02-231-25/+40
|
* Remove `opaque` keyboardgingerBill2021-02-231-1/+0
|
* Add extra error checksgingerBill2021-01-181-0/+4
|
* Remove unused tokensgingerBill2020-12-061-10/+2
|
* Merge branch 'master' into parser-experimentsgingerBill2020-12-061-2/+0
|\
| * Remove the (reserved) keyword `macro`gingerBill2020-12-041-1/+0
| |
| * Remove `const` as a (reserved) keywordgingerBill2020-12-041-1/+0
| |
* | Add experimental `-insert-semicolon` functionality to tokenizer and parsergingerBill2020-11-011-14/+101
|/
* Inline asm expression (-llvm-api)gingerBill2020-10-241-0/+1
| | | | | | | | | | | | See https://llvm.org/docs/LangRef.html#inline-assembler-expressions Example: ``` x := asm(i32) -> i32 { "bswap $0", "=r,r", }(123); ``` Allowed directives `#side_effect`, `#align_stack`, `#att`, `#intel` e.g. `asm() #side_effect #intel {...}`
* Remove comments containing unicode characters from tokenizergingerBill2020-07-141-6/+0
|
* Add `notin` deprecationgingerBill2020-05-271-2/+7
|
* Fix tokenizationgingerBill2020-05-271-0/+1
|
* Fix tokenizing for `%%`gingerBill2020-05-271-1/+1
|
* Improve performance of tokenization and parsinggingerBill2020-05-271-160/+203
|
* Add `rune_is_letter_or_digit` for tokenizergingerBill2020-05-271-1/+1
|
* Optimize `rune_is_*` procedures for tokenizergingerBill2020-05-271-2/+4
|
* Minor tokenizer performance improvementsgingerBill2020-05-271-53/+115
|
* Fix tokenizer for `0i` #658gingerBill2020-05-241-6/+1
|
* Strip carriage return `\r` from raw string literalsgingerBill2020-05-231-1/+5
|
* Remove the need for `type_of`, `size_of`, `align_of`, `offset_of` to be keywordsgingerBill2020-05-221-4/+0
|
* Global variable initialization supportgingerBill2020-02-231-0/+4
|
* Ternary Expr; lbAddr extra; Phi node supportgingerBill2020-02-061-1/+1
|
* Allow not_in as keyword over notin, but still allow notin to workgingerBill2020-01-161-6/+10
|
* Make the `string` type elements "immutable", akin to `char const *` in CgingerBill2019-12-011-17/+17
| | | | Allows for extra security and optimization benefits