Commit Graph

116 Commits (d54bcb2b62fe6cc7212bf370bcd257aaf1dfff8b)

Author SHA1 Message Date
Vexu 6a3d48353b
translate-c-2 while loops 2019-12-16 22:10:17 +02:00
Vexu e3f1bfe483
translate-c-2 if statements 2019-12-16 18:19:37 +02:00
Vexu 626562555e
translate-c-2 wors-case assign 2019-12-16 18:19:37 +02:00
Vexu d9527edfe0
translate-c-2 comma operator 2019-12-16 18:19:24 +02:00
Vexu 04dc0bd0e4
translate-c-2 variable aliasing 2019-12-16 12:45:00 +02:00
Vexu a37caaa528
translate-c-2 parameter name aliasing 2019-12-16 10:39:31 +02:00
Vexu 620bf695e8
organize tests 2019-12-16 07:43:18 +02:00
Vexu ab60c8e28f
c tokenizer escape sequences 2019-12-16 00:55:50 +02:00
Vexu 9f0e83a571
translate-c-2 macro functions 2019-12-15 23:46:35 +02:00
Vexu ed2a19dcec
translate-c-2 macro cast 2019-12-15 21:32:30 +02:00
Vexu 57170f9eb6
translate-c-2 macro inline fn 2019-12-15 19:28:34 +02:00
Vexu 75218d4765
translate-c-2 macros 2019-12-15 14:44:11 +02:00
Vexu e57e3602e7
translate-c-2 implement enums 2019-12-14 23:24:47 +02:00
Vexu 1f84586836
translate-c-2 avoid collisions with zig keywords 2019-12-14 17:00:10 +02:00
Vexu 4dae70e702
translate-c-2 container aliases 2019-12-14 13:40:33 +02:00
Vexu a4ac6d15c4
translate-c-2 array initializer expr 2019-12-14 10:49:25 +02:00
Vexu e4ca1f441b
translate-c-2 record type 2019-12-14 02:00:01 +02:00
Vexu 45abfa9e71
revert removal of translate mode in stage 1 2019-12-13 19:06:32 +02:00
Vexu 41a67126a5
translate-c-2 typedef 2019-12-13 17:40:37 +02:00
Vexu eb057ef41c
translate-c-2 dont eval init expr 2019-12-13 15:07:10 +02:00
Vexu 0795f17db2
translate-c-2 incompleteArray 2019-12-12 21:39:04 +02:00
Vexu 3bca025091
update tests 2019-12-12 18:18:43 +02:00
Merlyn Morgan-Graham 12171dba92 Add function parameters to self-hosted translate-C 2019-12-10 23:52:40 -08:00
Robin Voetter 4b4fbe3887
Replace @typeOf with @TypeOf in all zig source
This change was mostly made with `zig fmt` and this also modified some whitespace. Note that in some files, `zig fmt` produced incorrect code, so the change was made manually.
2019-12-10 11:09:41 -05:00
Andrew Kelley a3f6a58c77
remove var args from the language
closes #208
2019-12-09 15:27:27 -05:00
Andrew Kelley 47f06be369
string literals are now null terminated
this also deletes C string literals from the language, and then makes
the std lib changes and compiler changes necessary to get the behavior
tests and std lib tests passing again.
2019-11-21 20:43:41 -05:00
daurnimator ed956b5812 translate-c: add support for MacroQualified definitions 2019-11-19 01:05:17 +00:00
Andrew Kelley 3cf5c2c62b
fix regressed tests and update docs to use "type coercion" 2019-11-08 15:57:25 -05:00
Andrew Kelley e0db54e89d
update the codebase to use `@as` 2019-11-08 15:57:24 -05:00
Vexu 6b61fcddfa fix translate-c arrow deref 2019-11-06 13:58:55 -05:00
Vexu 57aa8997bd fix escape sequence rendering 2019-07-23 14:49:19 -04:00
Andrew Kelley 6fe3b20962
Merge branch 'translate-c-userland' of https://github.com/hryx/zig into hryx-translate-c-userland 2019-07-15 22:19:54 -04:00
Andrew Kelley c0489abcdb
translate-c: fix incorrectly translated double function pointer
closes #2887
2019-07-13 12:38:10 -04:00
Andrew Kelley 4e58855a4a
translate-c: better detection of pointer to struct demoted to opaque 2019-07-12 12:11:26 -04:00
hryx cc74bf5136
Translate IntegralCast; add stage2 test coverage 2019-06-27 23:12:33 -07:00
hryx b2e06c3bf4
Observe translate mode in stage2 2019-06-23 14:32:45 -07:00
hryx 226a23d977
stage1: always render space after `fn` like stage2 2019-06-23 12:46:17 -07:00
Andrew Kelley 10e9d47b49
stage2 translate-c: implement functions with no prototype
stage1 translate-c actually has this wrong. When exporting a function,
it's ok to use empty parameters. But for prototypes, "no prototype"
means that it has to be emitted as a function that accepts anything,
e.g. extern fn foo(...) void;

See #1964
2019-05-11 12:09:11 -04:00
Andrew Kelley 5f4c3e6557
stage2 translate-c: simple function definitions
See #1964
2019-05-10 23:35:46 -04:00
Andrew Kelley dbb5da14f4
stage2 translate-c: builtin types and pub
See #1964
2019-05-10 17:56:00 -04:00
Andrew Kelley 82219b1fd5
translate-c: better handling of restore points 2019-05-10 17:44:47 -04:00
Andrew Kelley a6f7a9ce2b
translate-c: we have our first test of self-hosted
See #1964
2019-05-10 16:03:54 -04:00
Andrew Kelley eb65410b62
translate-c: enough C tokenization/parsing to handle shifting in macros
See #2451
2019-05-09 12:48:38 -04:00
Andrew Kelley 62065a9aea
translate-c: handle int to ptr and ptr to int casting
See #2451
2019-05-09 12:17:23 -04:00
Andrew Kelley e3542196c0
translate-c: NULL pointers translate to `null`
See #1967
2019-05-08 19:21:54 -04:00
LemonBoy 77383f968d translate-c: Emit @ptrCast + @alignPtr sequence
Avoid producing Zig code that doesn't compile due to mismatched
alignments between pointers.

Always emit a @alignOf instead of hardcoding the alignment value
returned by LLVM for portability sake of the generated code.
2019-04-29 21:30:19 -04:00
LemonBoy ab424bbb35 translate-c: Add test for implicit casts 2019-04-22 22:23:41 +02:00
Andrew Kelley a17bf219c6
Merge pull request #2069 from ziglang/glibc-assert-translation
Implemented enough of translate-c to translate assert
2019-03-18 14:43:17 -04:00
Jimmi Holst Christensen 9171e7a7c1 More work on ignoring values correctly 2019-03-18 14:55:57 +01:00
Jimmi HC 5ae400fb39 fixed void cast and added the last tests 2019-03-15 19:11:46 +01:00