Commit Graph

111 Commits (3eca42c17be1105dbc76c22fdc8447bccf11de0d)

Author SHA1 Message Date
Andrew Kelley ae2151a751 use signed integer for sizes of things 2016-01-18 21:13:14 -07:00
Andrew Kelley ea21d2beb6 add error for shadowing a type
closes #61
2016-01-18 17:04:37 -07:00
Andrew Kelley 32821e7098 add function pointer support
See #14
2016-01-18 16:42:45 -07:00
Andrew Kelley 3a326d5005 pave the road for function pointers
See #14
2016-01-18 08:50:10 -07:00
Andrew Kelley fbbef14013 add for loop which can iterate over arrays
See #51
2016-01-18 07:00:45 -07:00
Andrew Kelley f0a43cfda9 fix nested arrays 2016-01-18 04:34:26 -07:00
Andrew Kelley 5f7685336f better main symbol prototype
closes #64
2016-01-16 00:07:34 -07:00
Andrew Kelley 8205253b2b support array literals 2016-01-15 20:01:49 -07:00
Andrew Kelley 8bc3fae1cf fix error message for struct initialization on array 2016-01-15 19:05:51 -07:00
Andrew Kelley dc162c7f83 rename "use" to "import" 2016-01-15 18:45:52 -07:00
Andrew Kelley 86f55bce53 add void arrays test 2016-01-15 18:41:19 -07:00
Andrew Kelley 0c9afede9e overflow intrinsics take type as first argument 2016-01-14 17:04:35 -07:00
Andrew Kelley 5f9ecb8566 instead of 'as' to cast, call type as function 2016-01-14 02:52:33 -07:00
Andrew Kelley d121ed961a fix noalias codegen
also make some parsing error messages better
2016-01-13 22:18:10 -07:00
Andrew Kelley b28b7f63d1 all types are now expressions
See #22
2016-01-13 18:15:51 -07:00
Andrew Kelley cb46d0b5b0 fix not adding builtin functions code 2016-01-11 20:44:10 -07:00
Andrew Kelley ccc8e9f4c3 support enums with values attached 2016-01-11 20:33:06 -07:00
Andrew Kelley aaa62eda72 simple enum support 2016-01-11 01:15:17 -07:00
Andrew Kelley b147ff5b60 fix codegen for void struct fields 2016-01-10 18:56:50 -07:00
Andrew Kelley 35b74d4013 order-independent declarations even from imports
closes #42
2016-01-10 01:25:20 -07:00
Andrew Kelley 49d0971cd4 detect and report top level decl dependency loop 2016-01-10 00:03:31 -07:00
Andrew Kelley 1fe1235e14 order-independent declarations
code constructs and traverses a dependency graph in a deterministic
order.
2016-01-09 23:49:22 -07:00
Andrew Kelley 6d9119fcd9 add memcpy and memset intrinsics 2016-01-09 02:16:54 -07:00
Andrew Kelley b7dd88ad68 suport checked arithmetic operations via intrinsics
closes #32
2016-01-08 23:41:40 -07:00
Andrew Kelley 0c84ecd19d codegen: fix else if expression and maybe unwrap expr 2016-01-08 03:59:37 -07:00
Andrew Kelley 9aea99a999 implement array slicing syntax
closes #52
2016-01-07 05:29:11 -07:00
Andrew Kelley a3c97081ca add ?? maybe unwrapping binary operator
add null literal
fix number literal / maybe interactions
2016-01-07 03:23:38 -07:00
Andrew Kelley c75d40680f while detects simple constant condition 2016-01-06 18:02:42 -07:00
Andrew Kelley 5f0bfcac24 fix undefined reference to memcpy in release mode
when not depending on libc, we generate memcpy and memset
implementations.
2016-01-06 06:40:25 -07:00
Andrew Kelley 66eee5a06b add unknown size array test 2016-01-06 01:30:11 -07:00
Andrew Kelley 4ef062b9c8 array syntax is [10]i32 instead of [i32; 10] 2016-01-05 22:47:47 -07:00
Andrew Kelley 3327b0488d add #min_value() and #max_value() 2016-01-05 06:30:49 -07:00
Andrew Kelley a11d0aaf62 progress toward compile time constant expression evaluation 2016-01-04 23:37:17 -07:00
Andrew Kelley e0aa0736be add pointer dereferencing operator 2016-01-04 19:11:36 -07:00
Andrew Kelley 4514661cfe add member functions 2016-01-04 16:57:22 -07:00
Andrew Kelley 44d5d008d0 partial import segregation
See #3
2016-01-04 03:31:57 -07:00
Andrew Kelley 333a322127 multiple files example no longer use libc 2016-01-04 01:52:32 -07:00
Andrew Kelley e64c0941f9 implement #sizeof()
closes #8
2016-01-03 19:38:36 -07:00
Andrew Kelley fa6e3eec46 add #typeof() compiler function 2016-01-03 18:17:50 -07:00
Andrew Kelley 258bc73eee fix implicit cast after unreachable bad code gen 2016-01-02 20:13:10 -07:00
Andrew Kelley 187d00ca83 ability to access pointers with array indexing syntax
closes #40
2016-01-02 19:47:36 -07:00
Andrew Kelley 724dcdd384 error for if var expression not maybe type 2016-01-02 00:09:49 -07:00
Andrew Kelley 9a8851515b basic maybe type working 2016-01-02 00:06:06 -07:00
Andrew Kelley b3ac5c16ec block expressions require parens
closes #39
2015-12-31 16:04:13 -07:00
Andrew Kelley 5943f99510 implement continue expression
closes #6
2015-12-24 15:36:49 -07:00
Andrew Kelley 44ca5e19dc add error for break outside loop
also fix break in nested loops
2015-12-24 15:30:55 -07:00
Andrew Kelley 5ceaae288c add break expression 2015-12-24 15:09:47 -07:00
Andrew Kelley ffc593b808 add test for while loop 2015-12-24 14:41:00 -07:00
Andrew Kelley 2e74889c3c add test for invalid field in struct value expression 2015-12-24 13:49:23 -07:00
Andrew Kelley 08a7ce7dd5 add error for missing or duplicate field in struct value expr 2015-12-24 13:47:07 -07:00