aboutsummaryrefslogtreecommitdiff
path: root/src/parser.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Improve `#optional_ok` logic for procedures; Add `#optional_second` for ↵gingerBill2021-04-191-0/+1
| | | | `package runtime` usage
* Experiment with new grammatical parsing rule for expression level ↵gingerBill2021-03-301-6/+34
| | | | (-strict-style) idea
* Add basic error correction in `parser` to check for unattached `else`gingerBill2021-03-261-0/+27
|
* Add better package declaration specific error message (#878)gingerBill2021-03-241-0/+5
|
* Make the parser support as many identifiers on the LHS in `for in` loops to ↵gingerBill2021-03-241-22/+6
| | | | improve error messages
* Improve error message in parsergingerBill2021-03-231-2/+2
|
* Allow `$` in polymorphic record parameter fields (but disallow mixing)gingerBill2021-03-231-3/+10
|
* Change from `test_*` prefix to `@(test)` attribute for `odin test`gingerBill2021-03-141-0/+1
|
* `odin test` to work with the new `core:testing` packagegingerBill2021-03-141-1/+15
|
* Add support for backslash \ to consume a newlinegingerBill2021-03-141-5/+0
|
* Simplify `expect_semicolon_newline_error` rulegingerBill2021-03-131-18/+13
|
* Remove `&& false` from test codegingerBill2021-03-131-1/+1
|
* Add `-strict-style` flag: Enforces code style stricter whilst parsing, ↵gingerBill2021-03-131-11/+73
| | | | requiring such things as trailing commas
* Minimize TokenPos size by using `i32` for line/column/offset and file_id ↵gingerBill2021-03-041-6/+16
| | | | | | 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)
* Add `#force_inline` parsing directly to expression statementsgingerBill2021-02-251-0/+4
|
* Remove `#force_inline for` and only have `#unroll for`gingerBill2021-02-251-1/+1
|
* Build tag to make all declarations within a file private to the package ↵gingerBill2021-02-231-0/+2
| | | | `//+private`
* Add deprecation message for `inline` and `no_inline` to use `#force_inline` ↵gingerBill2021-02-231-0/+2
| | | | and `#force_no_inline` instead
* Remove `#opaque` typesgingerBill2021-02-231-12/+2
|
* Remove `bit_field` keyword and parsing logicgingerBill2021-02-231-60/+0
|
* Remove `#opaque` usage in core librarygingerBill2021-02-231-16/+0
|
* Deprecate `inline for` in favour of `#unroll for`gingerBill2021-02-231-23/+3
|
* Add `#force_inline`, `#force_no_inline` and `#unroll` for the transition to ↵gingerBill2021-02-231-78/+98
| | | | | | deprecate and then remove the keywords `inline` and `no_inline` `inline for` will be replaced with `#unroll for`
* Remove `"pure"` and `"pure_none"` calling conventionsgingerBill2021-02-231-2/+0
|
* Remove `opaque` keyboardgingerBill2021-02-231-11/+3
|
* Add extra error checking in parser.cppgingerBill2021-01-151-0/+13
|
* Improve -insert-semicolon rulesgingerBill2020-12-091-6/+3
|
* Fix typos for `-insert-semicolon`gingerBill2020-12-091-10/+10
|
* Merge branch 'master' into parser-experimentsgingerBill2020-12-061-100/+184
|\
| * Deprecate keyword `opaque` in favour of `#opaque`gingerBill2020-12-041-0/+6
| |
| * Remove `const` as a (reserved) keywordgingerBill2020-12-041-3/+2
| |
| * Update `odin doc` to support multiple package outputs by passing multiple ↵gingerBill2020-11-181-11/+66
| | | | | | | | | | | | | | paths; Replace `-all` with `-short` Example: odin doc core/path core/path/filepath
| * Fix parser logic for first comment group line in a filegingerBill2020-11-171-0/+6
| |
| * Basic `odin doc` supportgingerBill2020-11-171-5/+1
| |
| * Add `-show-unused` (Shows unused package declarations of all imported packages)gingerBill2020-11-171-3/+3
| | | | | | | | Crude output at the moment but better than nothing
| * Minimize memory usage for AST nodes by using Slice<T> rather than Array<T> ↵gingerBill2020-11-161-53/+68
| | | | | | | | when the parameter doesn't need to grow
| * Improve logic for x->y() shorthandgingerBill2020-11-151-12/+12
| |
| * Begin clarifying allocation patterns by changing from `heap_allocator` to ↵gingerBill2020-11-151-18/+25
| | | | | | | | specific arenas
| * Fix default parameters on record typesgingerBill2020-11-091-2/+2
| |
* | Add experimental `-insert-semicolon` functionality to tokenizer and parsergingerBill2020-11-011-10/+104
|/
* Inline asm expression (-llvm-api)gingerBill2020-10-241-0/+105
| | | | | | | | | | | | 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 {...}`
* Begin work on making packages import assembly sort files (.S)gingerBill2020-10-161-1/+48
|
* Add `+build ignore` taggingerBill2020-10-151-21/+28
|
* Enforce `do` bodies to be on the same line as the control statement's ↵gingerBill2020-10-141-0/+25
| | | | condition or token
* Add `-disallow-do`gingerBill2020-09-231-0/+25
|
* Fix +build tag logicgingerBill2020-09-151-8/+8
|
* Improve error message for multi-valued global declarations not be allowedgingerBill2020-09-121-1/+6
|
* Update math and math/linalg; add "pure_none" calling conventiongingerBill2020-09-101-0/+1
|
* Revert accidental removal of `#const` for procedure variable parameters #718gingerBill2020-08-261-0/+4
|
* Remove some dead codegingerBill2020-07-141-4/+0
|