aboutsummaryrefslogtreecommitdiff
path: root/src/parser.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Compiler: Add early error for output path being a directory.Jeroen van Rijn2022-04-241-1/+1
| | | | | | | | | | | | - Introduce new `Path` type and an array of build paths on the build context. - Resolve input and output paths/files early (before parsing). - Error early if inputs are missing or outputs are directories. - Plumb new file path generation into linker stage instead of its adhoc method. TODO: - Remove more adhoc file path generation in parser and linker stage. - Make intermediate object file generation use new path system. - Round out and robustify Path helper functions.
* `union #shared_nil`gingerBill2022-03-241-4/+26
| | | | 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)
* Fix #1610gingerBill2022-03-141-29/+21
|
* check for semi-colon before EOF tooSébastien Marie2022-03-031-1/+2
|
* Check if directory exists with the same target executable name when building ↵gingerBill2022-02-281-0/+16
| | | | a directory
* Correct `ExactValue_Pointer`gingerBill2022-02-221-63/+0
|
* Simplify `parse_binary_expr`gingerBill2022-02-221-48/+109
|
* Minimize memory usage by having an arena per thread rather than an arena per ↵gingerBill2022-02-181-6/+6
| | | | file
* Merge branch 'master' into directx-packagesgingerBill2022-02-161-0/+6
|\
| * Allow sysv and win64 calling conventions to be used on any platform on amd64gingerBill2022-02-161-0/+6
| |
* | Add `#subtype` struct field prefix, required to have a COM interface hierarchygingerBill2022-02-161-1/+3
|/
* Correct `#sparse` usage and error messagesgingerBill2022-02-051-0/+16
|
* Rename `#partial[Enum]Type` to `#sparse[Enum]Type` for non-contiguous enum ↵gingerBill2022-02-051-1/+1
| | | | fields
* Minor sanity clean upgingerBill2022-02-021-0/+1
|
* Add `//+private file` to complement `//+private` (`//+private package`)gingerBill2022-02-021-2/+10
|
* Correct false positive check in `check_unique_package_names`gingerBill2022-01-311-0/+5
|
* Add `#no_type_assert` and `#type_assert` to disable implicit type assertions ↵gingerBill2022-01-271-0/+36
| | | | with `x.(T)`
* Handle line comment bettergingerBill2022-01-241-5/+15
|
* Parse comments on enums fieldsgingerBill2022-01-241-1/+41
|
* Update CommentGroup parsing for struct typesgingerBill2022-01-241-1/+1
|
* Correct package docs parsinggingerBill2022-01-171-0/+9
|
* Fix #1381gingerBill2022-01-021-0/+9
|
* Improve usage of `file_id`gingerBill2021-11-151-6/+6
|
* Begin minimizing `Ast` sizegingerBill2021-11-141-8/+12
|
* Merge branch 'master' into new-matrix-typegingerBill2021-10-231-2/+4
|\
| * Allow parsing for `[^]T{}` to improve error messagesgingerBill2021-10-231-0/+3
| |
| * Rename `-ignore-lazy` to `-internal-ignore-lazy`gingerBill2021-10-231-2/+1
| |
* | Support matrix literalsgingerBill2021-10-201-0/+1
| |
* | Change syntax for matrices to `matrix[R, C]T`gingerBill2021-10-191-18/+19
| |
* | Begin work on matrix typegingerBill2021-10-181-1/+53
|/
* Copying file contents rather than memory mappinggingerBill2021-10-121-2/+1
|
* Minor simplification to `#assert` and `#panic` parsinggingerBill2021-09-231-6/+1
|
* Simplify directive parsing for expressionsgingerBill2021-09-231-26/+1
|
* Force file copy on `odin strip-semicolon`gingerBill2021-09-181-1/+2
|
* Make `permanent_allocator()` thread localgingerBill2021-09-131-3/+0
|
* Replace many uses of `heap_allocator()` with `permanent_allocator()`gingerBill2021-09-131-6/+4
|
* Add `-strict-style-init-only`gingerBill2021-09-091-0/+2
|
* Add calling convention `"system"` which is an alias for `"stdcall"` on ↵gingerBill2021-09-081-0/+6
| | | | Windows and `"cdecl"` on other platforms
* Strip semicolons; Make `odin strip-semicolon` replace `..` with `..=` if ↵gingerBill2021-09-061-0/+4
| | | | used as a binary operator
* Strip semicolon if followed by a `}` or `)` on the same linegingerBill2021-08-311-0/+12
|
* Correct parsing rules for `#assert` directives for semicolonsgingerBill2021-08-311-32/+12
|
* Remove dead code and add debug messagesgingerBill2021-08-311-25/+8
|
* Add semicolon stripping command: `odin strip-semicolon`, has the same ↵gingerBill2021-08-311-6/+13
| | | | parameters as `odin check`
* Make `-insert-semicolon` the default nowgingerBill2021-08-311-92/+22
|
* Disable local mutex for the time being.gingerBill2021-08-261-1/+2
|
* Use local mutex for each `AstFile.arena`gingerBill2021-08-261-1/+2
|
* Unify thread pool logic across the rest of the compiler, using a global ↵gingerBill2021-08-261-32/+37
| | | | thread pool
* Change the implementation of `Arena` to use virtual memory, and remove the ↵gingerBill2021-08-261-3/+2
| | | | old gbArena code
* Simplify logic for `parse_binary_expr`gingerBill2021-08-251-16/+17
|
* Remove the old `inline` and `no_inline` tokensgingerBill2021-08-231-24/+1
|