aboutsummaryrefslogtreecommitdiff
path: root/src/parser.hpp
Commit message (Collapse)AuthorAgeFilesLines
* Move out some intrinsics into separate procedures in llvm_backend.cpp; ↵gingerBill2021-04-241-2/+2
| | | | Rename `InlineRangeStmt` to `UnrollRangeStmt` (eventually merge the two AST nodes)
* Add new intrinsics: debug_trap, trap, read_cycle_counter, expectgingerBill2021-04-221-0/+1
|
* 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-0/+1
| | | | (-strict-style) idea
* Make the parser support as many identifiers on the LHS in `for in` loops to ↵gingerBill2021-03-241-2/+1
| | | | improve error messages
* Minimize TokenPos size by using `i32` for line/column/offset and file_id ↵gingerBill2021-03-041-1/+2
| | | | | | 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)
* Begin work on aarch64 ABI for `-llvm-api`gingerBill2021-02-241-1/+1
|
* Build tag to make all declarations within a file private to the package ↵gingerBill2021-02-231-0/+1
| | | | `//+private`
* Remove `#opaque` typesgingerBill2021-02-231-4/+0
|
* Remove `bit_field` keyword and parsing logicgingerBill2021-02-231-5/+0
|
* Remove `"pure"` and `"pure_none"` calling conventionsgingerBill2021-02-231-6/+4
|
* Add extra error checking in parser.cppgingerBill2021-01-151-4/+6
|
* Allow string literals for `[N]byte`gingerBill2020-11-201-2/+2
|
* Update `odin doc` to support multiple package outputs by passing multiple ↵gingerBill2020-11-181-0/+1
| | | | | | | paths; Replace `-all` with `-short` Example: odin doc core/path core/path/filepath
* Begin rudimentary work on implementing `odin test` tooling with ↵gingerBill2020-11-171-0/+2
| | | | `*_test.odin` files
* Minimize memory usage for AST nodes by using Slice<T> rather than Array<T> ↵gingerBill2020-11-161-29/+28
| | | | when the parameter doesn't need to grow
* Minimize Ast flags usagegingerBill2020-11-161-8/+8
|
* Begin clarifying allocation patterns by changing from `heap_allocator` to ↵gingerBill2020-11-151-0/+1
| | | | specific arenas
* Inline asm expression (-llvm-api)gingerBill2020-10-241-4/+27
| | | | | | | | | | | | 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-6/+26
|
* Add `+build ignore` taggingerBill2020-10-151-0/+1
|
* Update math and math/linalg; add "pure_none" calling conventiongingerBill2020-09-101-8/+9
|
* Revert accidental removal of `#const` for procedure variable parameters #718gingerBill2020-08-261-1/+2
|
* Remove some dead codegingerBill2020-07-141-2/+1
|
* Improve performance of tokenization and parsinggingerBill2020-05-271-2/+7
|
* Add `"pure"` procedure typesgingerBill2020-05-231-0/+1
|
* Selector Call Expressions: `x->y(123) == x.y(x, 123)`gingerBill2020-05-221-0/+1
|
* Minor fixes to improve hash map/set performancegingerBill2020-05-211-1/+1
|
* Relative pointersgingerBill2020-05-151-0/+4
|
* Implement Allow `.?` operator to unwrap any union #549gingerBill2020-05-141-1/+1
|
* Add experimental atom op tables for llvm-backendgingerBill2020-05-021-0/+2
|
* `#optional_ok` tag for proceduresgingerBill2020-04-191-0/+3
|
* Simplify compiler's `Map` and create a `StringMap` specifically for stringsgingerBill2020-04-131-10/+10
|
* Add extra internal memory analysisgingerBill2020-04-061-0/+10
|
* Merge branch 'master' into llvm-integrationgingerBill2020-03-051-2/+4
|\
| * `x if cond else y` and `x when cond else y` expressionsgingerBill2020-03-051-2/+4
| |
* | Merge branch 'master' into llvm-integrationgingerBill2020-02-291-1/+2
|\|
| * Add `proc(#const x: Type)` to enforce a constant parameter (but not ↵gingerBill2020-02-261-1/+2
| | | | | | | | polymorphic) to a procedure
* | Basic work on obj generationgingerBill2020-02-231-1/+3
| |
* | Anonymous procedure literal supportgingerBill2020-02-081-0/+1
| |
* | Slowly add more statements and expressions; Add header filegingerBill2020-02-051-4/+2
|/
* Add `union #maybe`gingerBill2020-02-011-0/+1
|
* Implement `#complete switch` by default, replace with `#partial switch` #511gingerBill2019-12-221-12/+12
|
* Also allow #no_bounds_check on an expression #499gingerBill2019-12-151-5/+5
|
* Disallow procedure calls with an associated deferred procedure to be used in ↵gingerBill2019-12-151-2/+7
| | | | logical binary expressions (short-circuiting)
* Remove addressing mode `Addressing_Immutable`gingerBill2019-12-011-1/+0
|
* Add new #soa and #vector syntaxgingerBill2019-11-171-0/+2
|
* SOA Struct support `intrinsics.soa_struct`gingerBill2019-11-021-0/+1
|
* Add `@force` to `foreign import`gingerBill2019-11-011-0/+1
|
* Fix slice and dynamic array lengths determined from ranged compound literalsgingerBill2019-10-261-1/+1
|