gingerBill
ce08e832f7
Allow ..= alongside .. as a "full range" operator; Update core:odin/parser etc
2021-05-16 12:34:35 +01:00
gingerBill
5d03bc61b8
Tokenize ++ and -- as tokens but disallow them in the parser, and give better error messages for they are used as operators/statements
2021-05-15 19:34:46 +01:00
gingerBill
5e31c04a01
Disallow duplicate unary operators for +, -, and ~
2021-05-15 19:13:34 +01:00
gingerBill
c6c5af527b
Fix #746
2021-05-12 23:43:16 +01:00
gingerBill
278de3a92f
Unify AstTernaryExpr with AstTernaryIfExpr
...
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.
2021-05-05 15:22:54 +01:00
gingerBill
bb9c1d04db
Fix missing newline check
2021-05-04 23:41:35 +01:00
gingerBill
77e2e1e1d0
Add missing skip_possible_newline_for_literal calls
2021-05-03 12:02:08 +01:00
gingerBill
348d25c43a
Fix parsing error for for
2021-05-02 00:11:36 +01:00
gingerBill
ced7700cdb
Add extra check for #no_bounds_check etc being followed by a newline or empty statement
2021-05-01 17:59:30 +01:00
gingerBill
406d2ab6ba
Simplify/Fix the state_flag behaviour for code generation
2021-05-01 17:42:59 +01:00
gingerBill
24fce21d90
Add "naked" calling convention (removes prologue and epilogue)
2021-04-28 10:49:30 +01:00
gingerBill
94fd59e6f0
Make compound literals require trailing commas if followed by a newline
2021-04-26 23:05:00 +01:00
gingerBill
c07ab5f9ad
Change expr_level increment rules within a compound literal
2021-04-26 23:02:00 +01:00
gingerBill
04535b2913
Fix constant aliasing for debug information
2021-04-26 22:36:20 +01:00
gingerBill
7e0c78eae7
Fix logic for \n ignoring
2021-04-26 21:39:49 +01:00
gingerBill
6d1eb473cf
Correct \n ignore rules
2021-04-26 21:25:44 +01:00
gingerBill
898245431f
Make -strict-style the default #871
2021-04-26 21:07:58 +01:00
gingerBill
c29b643a58
Move out some intrinsics into separate procedures in llvm_backend.cpp; Rename InlineRangeStmt to UnrollRangeStmt (eventually merge the two AST nodes)
2021-04-24 15:00:01 +01:00
gingerBill
f1bdd2e60f
Improve #optional_ok logic for procedures; Add #optional_second for package runtime usage
2021-04-19 22:31:14 +01:00
gingerBill
fbd01660ee
Experiment with new grammatical parsing rule for expression level (-strict-style) idea
2021-03-30 11:48:32 +01:00
gingerBill
a611cf545d
Add basic error correction in parser to check for unattached else
2021-03-26 11:39:46 +00:00
gingerBill
a5329ae48c
Add better package declaration specific error message ( #878 )
2021-03-24 14:34:30 +00:00
gingerBill
0e3ecc350a
Make the parser support as many identifiers on the LHS in for in loops to improve error messages
2021-03-24 12:11:00 +00:00
gingerBill
ccd078620b
Improve error message in parser
2021-03-23 23:05:00 +00:00
gingerBill
08f7d3edbe
Allow $ in polymorphic record parameter fields (but disallow mixing)
2021-03-23 22:59:10 +00:00
gingerBill
f5142aaec4
Change from test_* prefix to @(test) attribute for odin test
2021-03-14 18:43:21 +00:00
gingerBill
2aa588209e
odin test to work with the new core:testing package
2021-03-14 18:01:31 +00:00
gingerBill
8cc4cba06c
Add support for backslash \ to consume a newline
2021-03-14 12:53:57 +00:00
gingerBill
8f6439fa6b
Simplify expect_semicolon_newline_error rule
2021-03-13 23:17:56 +00:00
gingerBill
81efd2dc64
Remove && false from test code
2021-03-13 21:39:33 +00:00
gingerBill
b5c0c68615
Add -strict-style flag: Enforces code style stricter whilst parsing, requiring such things as trailing commas
2021-03-13 21:20:46 +00:00
gingerBill
15dbc99cb9
Minimize TokenPos size by using i32 for line/column/offset and file_id 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)
2021-03-04 16:45:30 +00:00
gingerBill
82275082ff
Add #force_inline parsing directly to expression statements
2021-02-25 10:01:12 +00:00
gingerBill
4a69bfada1
Remove #force_inline for and only have #unroll for
2021-02-25 09:55:48 +00:00
gingerBill
8f9111e552
Build tag to make all declarations within a file private to the package //+private
2021-02-23 20:40:48 +00:00
gingerBill
533dde4648
Add deprecation message for inline and no_inline to use #force_inline and #force_no_inline instead
2021-02-23 16:22:28 +00:00
gingerBill
41b854f192
Remove #opaque types
2021-02-23 15:45:06 +00:00
gingerBill
28f279329d
Remove bit_field keyword and parsing logic
2021-02-23 15:29:54 +00:00
gingerBill
fe33a64b2e
Remove #opaque usage in core library
2021-02-23 15:21:05 +00:00
gingerBill
a1693c0184
Deprecate inline for in favour of #unroll for
2021-02-23 14:45:15 +00:00
gingerBill
908a403d78
Add #force_inline, #force_no_inline and #unroll for the transition to deprecate and then remove the keywords inline and no_inline
...
`inline for` will be replaced with `#unroll for`
2021-02-23 14:37:05 +00:00
gingerBill
28ed310f31
Remove "pure" and "pure_none" calling conventions
2021-02-23 13:10:23 +00:00
gingerBill
a652c24ac3
Remove opaque keyboard
2021-02-23 13:02:18 +00:00
gingerBill
c653e400db
Add extra error checking in parser.cpp
2021-01-15 16:15:03 +00:00
gingerBill
f64584b92a
Improve -insert-semicolon rules
2020-12-09 23:40:45 +00:00
gingerBill
6f6a3f2ccf
Fix typos for -insert-semicolon
2020-12-09 23:35:08 +00:00
gingerBill
f0683c9102
Merge branch 'master' into parser-experiments
2020-12-06 00:49:48 +00:00
gingerBill
c4cb7170ee
Deprecate keyword opaque in favour of #opaque
2020-12-04 16:13:05 +00:00
gingerBill
b6bbe29c8f
Remove const as a (reserved) keyword
2020-12-04 16:04:58 +00:00
gingerBill
9408eb9580
Update odin doc to support multiple package outputs by passing multiple paths; Replace -all with -short
...
Example:
odin doc core/path core/path/filepath
2020-11-18 23:22:27 +00:00