aboutsummaryrefslogtreecommitdiff
path: root/src/parser.hpp
Commit message (Collapse)AuthorAgeFilesLines
* Add `intrinsics.procedure_of`gingerBill2024-06-101-0/+1
| | | | | | | | ```odin foo :: proc(x: $T) { fmt.println(x) } bar :: intrinsics.procedure_of(foo(int(123))) // parameters are never ran at compile time, similar to `size_of` bar(333) // prints 333 ```
* Delay checking foreign import paths until after global scope is checkedgingerBill2024-05-281-0/+1
|
* Begin moving `foreign import` import paths to be evaluated in the semantic ↵gingerBill2024-05-271-1/+1
| | | | phase rather than parsing.
* Add `#no_broadcast` procedure parameter to disallow automatic array ↵gingerBill2024-03-211-1/+2
| | | | programming broadcasting on procedure arguments
* Add `#row_major matrix[R, C]T`gingerBill2024-03-191-0/+1
| | | | | As well as `#column_major matrix[R, C]T` as an alias for just `matrix[R, C]T`. This is because some libraries require a row_major internal layout but still want to be used with row or major oriented vectors.
* Fix #3284gingerBill2024-03-161-0/+2
|
* Add field tags to `bit_field`gingerBill2024-02-221-0/+1
|
* Add general support for `bit_field`sgingerBill2024-02-221-0/+1
|
* Begin work adding `bit_field`gingerBill2024-02-221-0/+15
|
* Add `#field_align(N)`gingerBill2024-01-281-0/+1
| | | | | It sets the minimum alignment for the fields within a struct. This cannot be used with `#packed`, but can be used with `#align(N)`. If `#align(N)` is less than `#field_align(N)`, then a warning will be printed.
* Add frontend stuff instrumentation toolinggingerBill2024-01-071-0/+2
| | | | | | | //+no-instrumentation @(no_instrumentation) @(instrumentation_enter) @(instrumentation_exit)
* Add `or_break` and `or_continue` constructsgingerBill2023-09-301-0/+1
|
* Add `sanitize_address` attribute to all normal packagesgingerBill2023-09-211-0/+1
|
* Add attribute `@(require) import "foo"` to replace/supplement `_ :: foo`gingerBill2023-08-221-0/+1
|
* Disallow `import` declarations within a `when` statementgingerBill2023-08-041-0/+1
|
* Add separate `-vet` flags; `-vet-using-*` flags; `//+vet` file flagsgingerBill2023-07-311-0/+2
|
* Fix line error printing for error messagesgingerBill2023-06-191-2/+2
|
* Basic support for new procedure code (non-polymorphic, non-proc-group)gingerBill2023-06-151-0/+6
|
* Basic support for `#reverse for in` on normal arraysgingerBill2023-05-291-0/+1
|
* Minor change to handling of propagation of errors with `---` as a valuegingerBill2023-05-221-1/+1
|
* Add `intrinsics.type_merge`gingerBill2023-05-191-0/+9
|
* Add `struct #no_copy`gingerBill2023-04-151-0/+1
|
* Fix potential race condition when determining the package namegingerBill2023-01-161-0/+1
|
* Remove `auto_cast` procedure field flaggingerBill2023-01-161-2/+2
| | | | Fixes #2285
* Replace all queues with MPSCQueue where possiblegingerBill2023-01-121-0/+1
|
* General improves to `alloc_ast_node` and other unnecessary checksgingerBill2023-01-031-3/+2
|
* Use a package local mutex for `add_type_and_value`gingerBill2023-01-021-0/+1
|
* Remove need the MPMC in single threaded casegingerBill2022-12-221-3/+2
|
* Clean up mutex usage in the parsergingerBill2022-12-221-22/+29
|
* Add minor commentgingerBill2022-12-221-2/+2
|
* Revert "Change `tav` to be a pointer internally"gingerBill2022-12-221-5/+2
| | | | This reverts commit e98f1a28e68e82753728f58b3465793192b74f9d.
* Change `tav` to be a pointer internallygingerBill2022-12-221-2/+5
|
* Set the file's filename and directory in `init_ast_file`gingerBill2022-12-201-0/+5
|
* Remove dead code in the compilergingerBill2022-12-181-5/+0
|
* `gb_internal` a lotgingerBill2022-12-181-15/+15
|
* Replace `#optional_second` with `#optional_allocator_error`gingerBill2022-09-121-1/+1
|
* Add `#load(path) or_else default` in favour of `#load_or(path, default)`gingerBill2022-08-111-1/+2
|
* Add `#soa` pointer type to aid with refactoring to `#soa` data typesgingerBill2022-08-081-1/+2
| | | | | | | | a: #soa[16]Foo p := &a[6] #assert(type_of(p) == #soa^#soa[16]Foo) p^.x = 123 p.x = 123
* 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
|\