aboutsummaryrefslogtreecommitdiff
path: root/src/parser.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Try `try` and `or_else` built-in procedures with operators `try` and `try else`gingerBill2021-07-041-0/+35
|
* Make default calling convention code more correct to readgingerBill2021-06-081-1/+1
|
* Replace `js_wasm32` with `freestanding_wasm32`gingerBill2021-06-081-1/+1
|
* All spaces in `import`-like pathsgingerBill2021-06-031-1/+3
|
* Fix #996gingerBill2021-05-311-9/+11
|
* Add range-based error messages to `-verbose-errors`gingerBill2021-05-191-124/+34
| | | | | | | | Example: Cannot convert '(1 + 2)' to 'untyped bool' from 'untyped integer' x := (1 + 2) * true; ^~~~~~^
* Replace `error` calls with `Token` to use `TokenPos`gingerBill2021-05-191-4/+4
|
* Add `-verbose-errors` which shows the error in the line of codegingerBill2021-05-191-0/+43
|
* Allow `..=` alongside `..` as a "full range" operator; Update ↵gingerBill2021-05-161-8/+10
| | | | `core:odin/parser` etc
* Tokenize `++` and `--` as tokens but disallow them in the parser, and give ↵gingerBill2021-05-151-8/+25
| | | | better error messages for they are used as operators/statements
* Disallow duplicate unary operators for `+`, `-`, and `~`gingerBill2021-05-151-3/+13
|
* Fix #746gingerBill2021-05-121-8/+9
|
* Unify `AstTernaryExpr` with `AstTernaryIfExpr`gingerBill2021-05-051-14/+1
| | | | | Allow for both syntaxes `x if cond else y` and `cond ? x : y` Removes the confusing semantics behind `?:` which could be `if` or `when` depending on the context.
* Fix missing newline checkgingerBill2021-05-041-0/+2
|
* Add missing `skip_possible_newline_for_literal` callsgingerBill2021-05-031-1/+5
|
* Fix parsing error for `for`gingerBill2021-05-021-1/+1
|
* Add extra check for `#no_bounds_check` etc being followed by a newline or ↵gingerBill2021-05-011-16/+15
| | | | empty statement
* Simplify/Fix the state_flag behaviour for code generationgingerBill2021-05-011-0/+8
|
* Add "naked" calling convention (removes prologue and epilogue)gingerBill2021-04-281-0/+1
|
* Make compound literals require trailing commas if followed by a newlinegingerBill2021-04-261-0/+3
|
* Change expr_level increment rules within a compound literalgingerBill2021-04-261-2/+0
|
* Fix constant aliasing for debug informationgingerBill2021-04-261-0/+4
|
* Fix logic for `\n` ignoringgingerBill2021-04-261-0/+9
|
* Correct `\n` ignore rulesgingerBill2021-04-261-3/+10
|
* Make -strict-style the default #871gingerBill2021-04-261-10/+5
|
* Move out some intrinsics into separate procedures in llvm_backend.cpp; ↵gingerBill2021-04-241-22/+22
| | | | Rename `InlineRangeStmt` to `UnrollRangeStmt` (eventually merge the two AST nodes)
* 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
|