aboutsummaryrefslogtreecommitdiff
path: root/src/parser.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Add `#all_or_none`gingerBill2025-11-051-2/+16
|
* Add suggestion for `T[]` to be `[]T` if a type is allowed in that parsing ↵gingerBill2025-10-301-3/+11
| | | | context
* Add `all-bits` to feature taggingerBill2025-10-091-0/+2
|
* Add `#+test` to replace `_test.odin`gingerBill2025-09-281-0/+4
|
* Minimize mutex usage when in single threaded mode.gingerBill2025-09-101-0/+1
|
* More thread contention removalgingerBill2025-09-101-1/+9
|
* Correct #+feature checkgingerBill2025-08-081-2/+2
|
* Add `-integer-division-by-zero:self`gingerBill2025-08-081-0/+1
|
* Add `#+feature integer-division-by-zero:<string>`gingerBill2025-08-081-12/+30
|
* Merge pull request #5081 from Lperlind/vet-explicit-allocatorsgingerBill2025-07-221-0/+5
|\ | | | | Add -vet-explicit-allocators
| * Add -vet-explicit-allocatorsLucas Perlind2025-04-271-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | This vet flag will make it so that allocators must be explicitly used in places where context.allocator and context.temp_allocator are a procedure parameter. The goal of this flag is to prevent using the context.allocator in cases where a different allocator was meant to be used. Some code bases default context.allocator to nil/panic allocator to catch this at runtime. This effectively makes it a compile time error instead.
* | Check for invalid subtargets.Harold Brenes2025-07-201-3/+23
| | | | | | | | | | | | | | | | - Add 'ios' pseudo-subtarget which triggets with either iPhone or iPhoneSimulator subtargets. - Treat an explicit 'default' subtarget as exclusive only to the default subtarget, not an other platform-compatible subtargets. - 'generic' continues to resolve to true for any platform-compatible subtarget as it names appears to imply such behavior.
* | Use fi.is_dir instead of path_is_directory() when checking if an import is a ↵Harold Brenes2025-07-131-2/+2
| | | | | | | | directory with a .odin extension.
* | Correct consume comment groups in both parsersgingerBill2025-07-111-17/+20
| |
* | [parser.cpp] - packages with `.odin` in the name no longer attemptHayden Gray2025-06-051-2/+2
| | | | | | | | to parse as odin files
* | Fix #5232 by adding an edge casegingerBill2025-05-291-1/+9
|/
* Support subtargets in build tags: `#build darwin:generic` and `#build ↵gingerBill2025-04-101-4/+8
| | | | linux:android, darwin:ios`
* Improve semicolon checking rules when parsinggingerBill2025-02-241-2/+6
|
* Minor rearrange for parsing field listsgingerBill2025-02-221-113/+116
|
* Disallow syntax: `proc(x,:T)`gingerBill2025-02-221-0/+3
|
* `#unroll(N) for`gingerBill2025-01-101-11/+47
|
* Allow `#+` tags on single filesgingerBill2025-01-051-6/+4
|
* Make `-no-dynamic-literals` the default nowgingerBill2025-01-051-2/+2
|
* Add `#+feature dynamic-literals`gingerBill2025-01-051-0/+66
|
* Make `#relative` types an error in parsinggingerBill2024-11-141-0/+1
|
* Plug a memory leakbobsayshilol2024-10-271-2/+0
| | | | | The call to |array_make()| always allocates and since this variable was unused it lead to a leak. Simply plug it by removing it.
* `#min_field_align` & `#max_field_align`; deprecate `#field_align` in favour ↵gingerBill2024-09-301-11/+39
| | | | of `#min_field_align`
* Forbid parsing more fields if no separator was foundFeoramund2024-09-201-1/+5
| | | | Fixes #4278
* Changed some recently added //+ usages to #+ and also fixed some //+ usages ↵Karl Zylinski2024-09-171-1/+1
| | | | in some code generators.
* Merge branch 'master' into file-tags-without-commentsKarl Zylinski2024-09-171-11/+20
|\
| * Add `-vet-packages:<comma-separated-string-array>`gingerBill2024-09-171-11/+20
| |
* | Fix incorrect syntax error in parse_fileKarl Zylinski2024-09-141-1/+1
| |
* | Docs are generated as expected again.Karl Zylinski2024-09-141-5/+7
| |
* | Merge remote-tracking branch 'origin/master' into file-tags-without-commentsKarl Zylinski2024-09-141-14/+0
|\|
| * set -rpath to \$ORIGIN and expect libraries next to executable just like WindowsLaytan2024-09-041-14/+0
| |
* | parse_file: Removed some nesting and removed probable incorrect safety check.Karl Zylinski2024-09-091-16/+11
| |
* | Made error handling code in parse_file clearer.Karl Zylinski2024-09-091-9/+9
| |
* | Rename process_file_tag -> parse_file_tagKarl Zylinski2024-09-091-3/+3
| |
* | Simplified error messages in parse_build_tag, removed the idea of making ↵Karl Zylinski2024-09-091-17/+13
| | | | | | | | multiple notted operating systems since it was misinformed.
* | Better #+build tag error messages: Error when using more than one !notted ↵Karl Zylinski2024-09-081-2/+23
| | | | | | | | operating system per build line. Error when using more than one operating system within a 'kind', such as writing #+build windows linux.
* | Make tags use #+ syntax instead of //+ syntax so it no longer looks like a ↵Karl Zylinski2024-09-081-47/+108
|/ | | | 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.
* checker: delay foreign block checkingavanspector2024-08-261-1/+1
| | | | if file scope, otherwise as before
* Improve `parse_enforce_tabs` usagegingerBill2024-08-241-5/+17
|
* Manually implement tail-recursion for `parse_if_stmt`gingerBill2024-08-241-10/+20
|
* Add a recursion depth limit for #3987 with a consideration to use a `switch` ↵gingerBill2024-08-241-0/+8
| | | | statement or refactor the code to not use a large if-else chain
* If missing type is newline, print "newline", not \nJeroen van Rijn2024-08-171-1/+6
| | | | | | | | | | | | | Turns: W:/Odin/bug/bug.odin(3:27) Syntax Error: Expected a type, got ' ' Storage :: distinct map[] Into: W:/Odin/bug/bug.odin(3:27) Syntax Error: Expected a type, got newline Storage :: distinct map[]
* Simplify exe path check.Jeroen van Rijn2024-07-221-2/+1
|
* Fix .exe path is directory check.Jeroen van Rijn2024-07-221-4/+3
|
* Fix #3473Jeroen van Rijn2024-07-221-1/+3
| | | | Fix the problem where the initial package's directory name ended in .odin.
* Remove need for `BlockingMutex` in `Arena`gingerBill2024-07-151-1/+1
|