aboutsummaryrefslogtreecommitdiff
path: root/src/parser.hpp
Commit message (Collapse)AuthorAgeFilesLines
* Remove dead `#maybe` codegingerBill2022-08-011-1/+0
|
* Simplify parser logic for field prefixesgingerBill2022-08-011-0/+4
|
* Add `#by_ptr` procedure attribute to enforce a parameter to be passed by ↵gingerBill2022-07-241-1/+2
| | | | pointer internally
* Fix #1888gingerBill2022-07-161-1/+3
|
* Improvements to `-strict-style` and trailing commasgingerBill2022-06-131-0/+1
|
* Improve missing handled results for built in proceduresgingerBill2022-05-301-1/+0
|
* Merge functionality of `#maybe` with the standard 'union' functionalitygingerBill2022-05-231-1/+1
|
* Allow for `import _ "foo"` to allow for `@(init)` procedures; Remove `using ↵gingerBill2022-05-141-1/+0
| | | | import` code
* `union #shared_nil`gingerBill2022-03-241-2/+8
| | | | This adds a feature to `union` which requires all the variants to have a `nil` value and on assign to the union, checks whether that value is `nil` or not. If the value is `nil`, the union will be `nil` (thus sharing the `nil` value)
* Check if directory exists with the same target executable name when building ↵gingerBill2022-02-281-0/+1
| | | | a directory
* Minimize memory usage by having an arena per thread rather than an arena per ↵gingerBill2022-02-181-4/+2
| | | | file
* Merge branch 'master' into directx-packagesgingerBill2022-02-161-0/+18
|\
| * Allow sysv and win64 calling conventions to be used on any platform on amd64gingerBill2022-02-161-0/+18
| |
* | Add `#subtype` struct field prefix, required to have a COM interface hierarchygingerBill2022-02-161-1/+2
|/
* Correct `#sparse` usage and error messagesgingerBill2022-02-051-0/+1
|
* Add `//+private file` to complement `//+private` (`//+private package`)gingerBill2022-02-021-3/+5
|
* Add `#no_type_assert` and `#type_assert` to disable implicit type assertions ↵gingerBill2022-01-271-0/+4
| | | | with `x.(T)`
* Parse comments on enums fieldsgingerBill2022-01-241-0/+6
|
* Improve usage of `file_id`gingerBill2021-11-151-2/+6
|
* Remove `scope` field from `Ast`gingerBill2021-11-141-6/+16
|
* Begin minimizing `Ast` sizegingerBill2021-11-141-10/+17
|
* Merge branch 'master' into new-matrix-typegingerBill2021-10-231-1/+1
|\
| * Fix check_remove_expr_infogingerBill2021-10-221-1/+1
| |
* | Begin work on matrix typegingerBill2021-10-181-0/+7
|/
* Add @(init) attribute for procedures, allowing for procedures to be called ↵gingerBill2021-10-031-0/+1
| | | | | | at startup These procedures will be called after global variables have been initialized as normal
* Add semicolon stripping command: `odin strip-semicolon`, has the same ↵gingerBill2021-08-311-0/+1
| | | | parameters as `odin check`
* Unify thread pool logic across the rest of the compiler, using a global ↵gingerBill2021-08-261-3/+1
| | | | thread pool
* Change the implementation of `Arena` to use virtual memory, and remove the ↵gingerBill2021-08-261-3/+2
| | | | old gbArena code
* Add multi-pointer types `[^]T`gingerBill2021-08-211-0/+4
|
* Remove unused codegingerBill2021-08-191-1/+1
|
* Remove dead code, and add an extra mutexgingerBill2021-08-181-1/+1
|
* Make `or_else` and `or_return` operators (binary and suffix respectively)gingerBill2021-08-151-0/+2
|
* Remove some dead codegingerBill2021-08-151-2/+3
|
* Improve error handling for field list prefixesgingerBill2021-08-151-1/+1
|
* Minor clean up of `parse_field_prefixes`gingerBill2021-08-151-1/+1
|
* Add `#any_int` directive to replace `auto_cast` uses on parameters.gingerBill2021-08-151-0/+1
|
* Define where `#bounds_check`/`#no_bounds_check` can be appliedgingerBill2021-08-151-2/+0
|
* Define which mutexes are blocking and recursive explicitlygingerBill2021-07-271-3/+3
|
* Big simplification and improvement of the entity collection system, reducing ↵gingerBill2021-07-271-1/+16
| | | | unneeded steps for packages
* Improve default scope sizegingerBill2021-07-271-0/+1
|
* INTERNAL USE ONLY: `//+lazy` build flaggingerBill2021-07-251-3/+8
|
* `enum Addressing_Mode : u8;`gingerBill2021-07-121-1/+2
|
* Move things around for sanity checking for multithread preparationgingerBill2021-07-101-10/+12
|
* Remove `try`; Replace `try x else y` with `or_else(x, y)`gingerBill2021-07-051-2/+0
|
* Try `try` and `or_else` built-in procedures with operators `try` and `try else`gingerBill2021-07-041-0/+2
|
* Correct selector call expression chaining behaviour (a bit of a hack)gingerBill2021-06-161-1/+7
|
* Make default calling convention code more correct to readgingerBill2021-06-081-9/+13
|
* Add support for `Addressing_OptionalOkPtr`gingerBill2021-06-061-17/+18
| | | | Allowing for `i, ok := &x.(T);` (type assertions) and `v, ok := &m[k];` (map indexing)
* Experimental support for inline swizzling for array types of len <= 4 e.g. ↵gingerBill2021-06-051-1/+8
| | | | `v.xyz`, `v.argb`, `v.xxx`
* Add range-based error messages to `-verbose-errors`gingerBill2021-05-191-3/+3
| | | | | | | | Example: Cannot convert '(1 + 2)' to 'untyped bool' from 'untyped integer' x := (1 + 2) * true; ^~~~~~^