Commit Graph

215 Commits

Author SHA1 Message Date
Feoramund
29987c20c0 Fix invalid rune literal reported twice
The tokenizer and the parser were reporting it in different positions.
This way, they'll report in the same spot.
2024-04-28 07:02:21 -04:00
gingerBill
46b9bd8c0e Improve error messages for switch and for r-values with a suggestion 2024-04-12 13:35:14 +01:00
gingerBill
213b2fd0f8 Add bit_field as a keyword 2024-02-22 14:01:23 +00:00
gingerBill
648b83d6ea Add or_break and or_continue constructs 2023-09-30 15:04:17 +01:00
gingerBill
69e1f42aed Replace a lot of warnings with errors; remove deprecated stuff 2023-08-01 11:11:15 +01:00
gingerBill
8bf32ac697 Minor change to handling of propagation of errors with --- as a value 2023-05-22 12:53:29 +01:00
gingerBill
ac5f5a33e9 gb_internal a lot 2022-12-18 21:17:07 +00:00
gingerBill
081a5a52a6 Add ODIN_ERROR_POS_STYLE environment variable
Allowing for two different error message styles:
default or odin
    path(line:column) message
unix
    path:line:column: message
2022-01-26 16:09:22 +00:00
gingerBill
6f3e450c50 Move error handling code to a separate file 2022-01-10 14:03:36 +00:00
gingerBill
5e2280a787 Fix set_file_path_string and thread_safe_set_ast_file_from_id 2021-11-24 16:20:01 +00:00
gingerBill
e814a3693f Improve usage of file_id 2021-11-15 17:26:01 +00:00
gingerBill
1556fad65a Change syntax for matrices to matrix[R, C]T 2021-10-19 11:31:11 +01:00
gingerBill
2ad6aa7886 Copying file contents rather than memory mapping 2021-10-12 11:06:39 +01:00
gingerBill
05ac2002e0 Force file copy on odin strip-semicolon 2021-09-18 12:52:43 +01:00
gingerBill
3713f11461 Refactor init_tokenizer_with_data to file memory mapping (Windows only currently) 2021-09-18 11:58:27 +01:00
gingerBill
042dbda47f Replace many uses of heap_allocator() with permanent_allocator() 2021-09-13 01:30:30 +01:00
gingerBill
0434281f73 Strip semicolons; Make odin strip-semicolon replace .. with ..= if used as a binary operator 2021-09-06 20:15:59 +01:00
gingerBill
1fff96e088 Make -insert-semicolon the default now 2021-08-31 21:13:53 +01:00
gingerBill
b88e945268 ERROR_BLOCK() any usages of "Did you mean?" like behaviour whilst iterating across a scope entry map 2021-08-27 12:14:51 +01:00
gingerBill
da79124e5d Use local mutex for each AstFile.arena 2021-08-26 23:10:15 +01:00
gingerBill
bd86993035 Remove the old inline and no_inline tokens 2021-08-23 12:37:42 +01:00
gingerBill
35026000bb Fix deadlock caused by typo 2021-08-19 11:40:26 +01:00
gingerBill
b8661e0ae0 Update semi-colon insertion rules for or_return 2021-08-15 17:16:37 +01:00
gingerBill
21cbac755e Make or_else and or_return operators (binary and suffix respectively) 2021-08-15 17:14:35 +01:00
gingerBill
799a56bbcb Fix column in tokenizer (due to removed line) 2021-08-13 10:50:05 +01:00
gingerBill
5fd64f48ee Minor procedure rename 2021-08-08 12:48:44 +01:00
gingerBill
a3b7126875 Simplify init_tokenizer_with_data 2021-08-08 12:47:45 +01:00
gingerBill
000bda8419 Reduce superfluous error messages for return statements expecting not-1 return values 2021-08-07 16:29:00 +01:00
gingerBill
545b345eea Remove optimizations in tokenizer and default to older code (same logic) (optimize later) 2021-08-03 13:33:01 +01:00
gingerBill
b0e64ca7e8 Prepare tokenizer for optimizations 2021-08-02 16:47:32 +01:00
gingerBill
7f3d4cb504 Remove the literal conversion logic to the parser from the tokenizer 2021-08-02 00:53:45 +01:00
gingerBill
97be36d18a Replace line with column_minus_one in Tokenizer; Remove dead code 2021-08-02 00:26:54 +01:00
gingerBill
be76da2c90 Begin optimizing tokenizer; Replace gb_utf8_decode with utf8_decode (CC but easier to change later) 2021-08-01 23:56:17 +01:00
gingerBill
b1a8357f50 Clean up a bit of the tokenizer code so that the semicolon insertion rules are in one place 2021-08-01 22:41:00 +01:00
gingerBill
700624119b Give begin_error_block its own recursive mutex 2021-07-29 12:35:11 +01:00
gingerBill
a5d6fda433 Define which mutexes are blocking and recursive explicitly 2021-07-27 23:14:01 +01:00
gingerBill
a98eee145d Remove try; Replace try x else y with or_else(x, y) 2021-07-05 16:23:13 +01:00
gingerBill
4b831dbddd Try try and or_else built-in procedures with operators try and try else 2021-07-04 12:37:21 +01:00
gingerBill
11c565e199 Fix semicolon insertion rule for --- 2021-06-26 22:47:12 +01:00
gingerBill
9c54ed5792 Add range-based error messages to -verbose-errors
Example:
Cannot convert '(1 + 2)' to 'untyped bool' from 'untyped integer'

	x := (1 + 2) * true;
	     ^~~~~~^
2021-05-19 14:15:57 +01:00
gingerBill
5108ebf015 Replace error calls with Token to use TokenPos 2021-05-19 13:02:44 +01:00
gingerBill
86dbcb1b20 Add -verbose-errors which shows the error in the line of code 2021-05-19 12:57:30 +01:00
gingerBill
ce08e832f7 Allow ..= alongside .. as a "full range" operator; Update core:odin/parser etc 2021-05-16 12:34:35 +01:00
gingerBill
7886798156 Add space 2021-05-15 19:49:48 +01:00
gingerBill
0ad599675e Improve semicolon insertion rule for dummy tokens ++ and -- 2021-05-15 19:47:00 +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
Gitea
011c8d5cda fix Syntax Warning 2021-04-09 13:03:01 +03:00
gingerBill
54e6c50769 Implement f16 functionality 2021-04-01 10:06:00 +01:00
gingerBill
8cc4cba06c Add support for backslash \ to consume a newline 2021-03-14 12:53:57 +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