Andrew Kelley
0ac714f0d6
add --library-path cli option
2016-01-31 18:32:07 -07:00
Andrew Kelley
1053172854
parseh handles typedef void better
...
and introduce c_long_double type
2016-01-31 15:44:02 -07:00
Andrew Kelley
3c2093fec6
parseh understands types better and handles some situations better
...
See #88
Also, includes partial implementation of typedef top level declaration.
See #95
Also, fix function types. Previously the way we were deduping function type
pointers was incorrect.
2016-01-31 01:20:47 -07:00
Andrew Kelley
a5c2de5fee
ability to specify function type
...
closes #14
2016-01-28 20:26:40 -07:00
Andrew Kelley
97c61313da
c_import of stdio.h works for some functions
...
See #88
2016-01-27 23:23:02 -07:00
Andrew Kelley
b6354ddd5a
move AST rendering code to separate file
2016-01-27 21:10:38 -07:00
Andrew Kelley
c281533638
build command supports -isystem argument
2016-01-27 19:22:58 -07:00
Andrew Kelley
d1ac1abd34
parseh correctly handles C's void type
2016-01-27 16:30:52 -07:00
Andrew Kelley
707154da36
fix codegen for pointers to void
2016-01-27 14:18:20 -07:00
Andrew Kelley
261517aa44
add explicit cast from isize/usize to pointer
...
closes #91
2016-01-27 12:43:03 -07:00
Andrew Kelley
0278468479
upgrade to the libclang C++ API
...
c_import creates a tmp .h file and parses it with libclang,
reporting any errors found.
See #88
2016-01-27 00:01:49 -07:00
Andrew Kelley
a73453a268
add c_import top level decl
...
see #88
2016-01-26 16:00:39 -07:00
Andrew Kelley
5afe473a86
different extern syntax and simplify parsing top level decls
2016-01-26 13:08:21 -07:00
Andrew Kelley
a37bb4a4da
add the C integer types
2016-01-25 23:21:13 -07:00
Andrew Kelley
a3e288ab5b
implement compile time string concatenation
...
See #76
2016-01-25 21:56:29 -07:00
Andrew Kelley
fb85d3a0a2
codegen: get rid of cur_block_context
2016-01-25 16:37:45 -07:00
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
6db6609df8
implement %% operator
...
See #23
2016-01-25 13:53:40 -07:00
Andrew Kelley
419652ee8f
ability to return structs byvalue from functions
...
closes #57
2016-01-24 18:34:50 -07:00
Andrew Kelley
5c18826240
introduce the error keyword and type
...
See #23
2016-01-24 01:34:57 -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
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
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
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
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
b0f608a6a7
merge constant expression evaluator with analyzer
2016-01-15 04:45:25 -07:00
Andrew Kelley
0c9afede9e
overflow intrinsics take type as first argument
2016-01-14 17:04:35 -07:00
Andrew Kelley
68c4f617ed
fix next_node_index on wrong struct
...
no more nondeterministic error messages
closes #65
2016-01-14 15:27:42 -07:00
Andrew Kelley
5f9ecb8566
instead of 'as' to cast, call type as function
2016-01-14 02:52:33 -07:00
Andrew Kelley
b28b7f63d1
all types are now expressions
...
See #22
2016-01-13 18:15:51 -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
2061cd50c0
resolve enum types and emit debug info
2016-01-11 00:25:17 -07:00
Andrew Kelley
b147ff5b60
fix codegen for void struct fields
2016-01-10 18:56:50 -07:00
Andrew Kelley
4d7835e21a
delete unused enumfield and enumdecl node types
2016-01-10 17:27:58 -07:00
Andrew Kelley
fc748e2ccd
update enum parsing to new plan
2016-01-10 16:58:21 -07:00