Commit Graph

295 Commits

Author SHA1 Message Date
Andrew Kelley
deb3586884 implement %% prefix operator
See #23

also make undefined constants use llvm undef value
2016-01-25 15:45:05 -07:00
Andrew Kelley
4b9e1dd438 fix tests and add %% operator test 2016-01-25 14:04:29 -07:00
Andrew Kelley
6db6609df8 implement %% operator
See #23
2016-01-25 13:53:40 -07:00
Andrew Kelley
bcb18338cd update std lib to use error type and global variables 2016-01-24 22:53:00 -07:00
Andrew Kelley
29a83f648b support the %return expression 2016-01-24 20:13:08 -07:00
Andrew Kelley
f5cc7f65a3 fix parameter access of sret functions 2016-01-24 19:27:12 -07:00
Andrew Kelley
419652ee8f ability to return structs byvalue from functions
closes #57
2016-01-24 18:34:50 -07:00
Andrew Kelley
ca7b85b32e fix number literal implicit cast 2016-01-24 14:51:47 -07:00
Andrew Kelley
5c18826240 introduce the error keyword and type
See #23
2016-01-24 01:34:57 -07:00
Andrew Kelley
706f72f1b4 fix hang when returning from while loop
also fixes duplicate error message for function missing
return type.

also makes guess number game use %void for main return type.

closes #58
2016-01-23 02:46:24 -07:00
Andrew Kelley
c0ea9290c4 main returns %void 2016-01-23 02:14:01 -07:00
Andrew Kelley
91d911007b codegen: fix field access of arrays
also fix error type analyze error
2016-01-23 00:53:43 -07:00
Andrew Kelley
a922d5d42a implement literal error values
See #23
2016-01-23 00:34:59 -07:00
Andrew Kelley
1543043bf5 fix no error emitted for redeclaring global var
closes #81
2016-01-23 00:07:08 -07:00
Andrew Kelley
bfceb18631 character literal returns a number literal 2016-01-22 23:24:09 -07:00
Andrew Kelley
e269caae02 implement undefined literal 2016-01-22 23:12:33 -07:00
Andrew Kelley
0e51c16ef5 add undefined literal 2016-01-22 22:42:02 -07:00
Andrew Kelley
523e3b86af support statically initialized array literal 2016-01-22 22:02:07 -07:00
Andrew Kelley
21fc5a6402 un-special case constant global strings 2016-01-22 20:36:08 -07:00
Andrew Kelley
1158bc3ead support statically initialized structs 2016-01-22 18:05:22 -07:00
Andrew Kelley
7bd9c82386 add compile error for non constant expr global 2016-01-22 16:40:15 -07:00
Andrew Kelley
72fa03bada add undefined reserved word 2016-01-22 16:05:29 -07:00
Andrew Kelley
272fe1c54c implicit casts rewrite the AST 2016-01-22 15:31:35 -07:00
Andrew Kelley
b09a0cd072 allow constants to have number literal values
also codegen takes advantage of constant expr eval
2016-01-21 15:23:24 -07:00
Andrew Kelley
32e2196257 number literal rework 2016-01-21 03:02:25 -07:00
Andrew Kelley
5e212db29c parsing error value decls and error value literals
and return with '?' or '%' prefix
2016-01-20 18:18:50 -07:00
Andrew Kelley
961adc0909 Merge branch 'master' of github.com:andrewrk/zig 2016-01-20 02:16:36 -07:00
Andrew Kelley
ad9759bc8e basic support for switch expression 2016-01-20 02:12:24 -07:00
MovingtoMars
361531891f rename value_count to member_count
rename BuiltinFnIdValueCount to BuiltinFnIdMemberCount

rename value_count to member_count
2016-01-20 22:03:03 +13:00
Andrew Kelley
c17309dbc5 add switch statement support to parser 2016-01-19 20:29:36 -07:00
Andrew Kelley
890714b8ca Revert "delete parseh"
This reverts commit 18374ea8f1.
2016-01-18 21:28:54 -07:00
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
4c50606b9d refactor std to use for loop 2016-01-18 07:16:17 -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
ca8d8f114f rename "alwaysinline" to "inline" 2016-01-15 20:05:39 -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
8818c59cbc parser: fix not setting container init kind 2016-01-15 19:02:04 -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
0311b35a21 reduce precedence of {} suffix operator
this makes []u8 {1, 2, 3, 4} work for array literal
2016-01-15 17:40:12 -07:00
Andrew Kelley
8d60ffe314 solve the mystery of undefined reference error
big surprise, C++ is to blame
2016-01-15 17:12:26 -07:00
Andrew Kelley
8409e518ab fix build with gcc 2016-01-15 14:29:02 -07:00
Andrew Kelley
18374ea8f1 delete parseh
we'll have to switch to the clang C++ api anyway
we'll revive this code later
2016-01-15 14:16:07 -07:00
Andrew Kelley
b0f608a6a7 merge constant expression evaluator with analyzer 2016-01-15 04:45:25 -07:00