Vexu
e0046b737e
translate-c-2 improve macro escape sequences
2019-12-20 13:50:34 +02:00
Vexu
daeb939210
translate-c-2 fix switch range
2019-12-20 11:35:21 +02:00
Vexu
d172a7335c
translate-c-2 copy parametrs to stack
2019-12-20 00:12:08 +02:00
Vexu
b7f18164f9
translate-c-2 add missing casts
2019-12-19 21:30:51 +02:00
Vexu
61482be153
translate-c-2 improve macro fn ptr caller
2019-12-19 20:58:48 +02:00
Vexu
f837c7c9cd
translate-c-2 compound assign
2019-12-19 16:13:28 +02:00
Vexu
6cd402f1b4
translate-c-2 increments worst-case
2019-12-19 10:48:32 +02:00
Vexu
809deb6ec0
translate-c-2 unary operators common case
2019-12-19 09:56:00 +02:00
Vexu
e4c47e80b4
translate-c-2 unaryexprortypetrait + fixes
2019-12-19 08:28:36 +02:00
Vexu
122a9bad39
translate-c-2 fix some casts
2019-12-19 01:38:42 +02:00
Vexu
d54c288bd3
translate-c-2 function calls
2019-12-18 23:56:39 +02:00
Vexu
c2666c48a4
translate-c-2 array access
2019-12-18 22:57:53 +02:00
Vexu
cf7a5b7a4a
translate-c-2 member access
2019-12-18 22:29:42 +02:00
Vexu
e65b9e8f7b
translate-c-2 stmt expr
2019-12-18 21:20:38 +02:00
Vexu
62bfff5e87
translate-c-2 fix expression grouping bugs
2019-12-18 13:32:19 +02:00
Vexu
f54e7d6c99
translate-c-2 update @kavika13's work to removal of TransResult
2019-12-18 12:47:35 +02:00
Vexu
90eed4172d
Merge remote-tracking branch 'kavika13/master' into translate-c-2
2019-12-18 09:51:40 +02:00
Vexu
21bc3353b8
translate-c-2 character literals and more test fixes
2019-12-18 01:04:01 +02:00
Vexu
6d7025d0c5
translate-c-2 various fixes to get more tests passing
2019-12-17 23:28:13 +02:00
Vexu
a6960b89ed
translate-c-2 fix container type resolution
2019-12-17 22:05:07 +02:00
Vexu
65531c73a9
translate-c-2 switch
2019-12-17 17:19:28 +02:00
Vexu
0283ab8a1a
translate-c-2 conditional operator
2019-12-17 12:06:28 +02:00
Vexu
daa22d42b0
translate-c-2 floats
2019-12-17 11:28:56 +02:00
Vexu
9cda93a24e
translate-c-2 don't shadow primitive types
2019-12-17 10:20:02 +02:00
Vexu
ab6fe57462
translate-c-2 for loops
2019-12-17 01:40:06 +02:00
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
Merlyn Morgan-Graham
89ef635b35
Add boolean and, boolean or binary ops in translate-c-2
2019-12-16 01:34:05 -08:00
Merlyn Morgan-Graham
acff2d407b
Add bit shift binary ops in translate-c-2
2019-12-16 01:34:04 -08:00
Merlyn Morgan-Graham
c8c89648b0
Add comparison and bitwise binary ops in translate-c-2
2019-12-16 01:34:04 -08: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
Jimmi Holst Christensen
a77b2a0810
Implemented enough of translate-c to translate assert
...
This required the following
* __extention__
* ({})
* Fixing if (0) ; else ;
2019-03-15 16:12:41 +01:00
Jimmi Holst Christensen
3ef9b899e4
workaround for #2043
2019-03-15 11:17:21 +01:00
Sahnvour
9b99356551
translate-c: additional test case for integer suffixes on 0
2019-03-11 16:36:27 -04:00
Sahnvour
fa9fcab620
translate-c: add support for integer suffixes on 0 (zero) litteral inside macro definitions
2019-03-10 14:56:35 -04:00
LemonBoy
e280dce30f
Translate parameterless C functions ( #1978 )
...
Both FunctionNoProto and FunctionProto are subclasses of FunctionType,
the only difference is that the former is parameterless.
2019-02-18 10:26:45 -05:00
Andrew Kelley
f57182456d
Merge pull request #1898 from Sahnvour/translate-c-arrays
...
Translate c arrays
2019-02-16 14:07:41 -05:00
Andrew Kelley
d6e0d82c32
translate-c: back to *c_void for opaque types
...
See #1059
2019-02-14 23:09:31 -05:00
Andrew Kelley
342bca7f46
C pointer comparison and arithmetic
...
See #1059
2019-02-11 15:31:09 -05:00
Andrew Kelley
d9e01be973
translate-c: use C pointer type everywhere
...
See #1059
2019-02-11 14:56:59 -05:00
Sahnvour
075fda3c73
translate-c: add tests. Commented for now as the output is currently empty until #646 is fixed.
2019-02-05 20:36:57 +01:00
Jimmi Holst Christensen
8139c5a516
New Zig formal grammar ( #1685 )
...
Reverted #1628 and changed the grammar+parser of the language to not allow certain expr where types are expected
2018-11-13 05:08:37 -08:00
Jimmi Holst Christensen
378d3e4403
Solve the return type ambiguity ( #1628 )
...
Changed container and initializer syntax
* <container> { ... } -> <container> . { ... }
* <exrp> { ... } -> <expr> . { ...}
2018-10-15 09:51:15 -04:00
Andrew Kelley
877036e7ef
fix translate-c test expecting incorrect C ABI on windows
2018-09-24 15:14:20 -04:00
Andrew Kelley
004c383292
fix translate-c incorrectly translating negative enum init values
...
closes #1360
2018-09-24 12:19:16 -04:00
Andrew Kelley
b2917e6be0
Revert "Merge branch 'mtn-translate-c-enum-vals'"
...
This reverts commit 937b822fa9
, reversing
changes made to dd4b13ac03
.
Tests failing on Windows.
Re-opens #1360
2018-08-21 20:50:03 -04:00
kristopher tate
b023db2e82
src/translate_c.cpp: correctly bridge llvm::APSInt with Zig BigInt;
...
ACHTUNG: llvm::APSInt stores an int's sign inside of its getRawData; Internally to Zig we store an integer's sign outside of getRawData! (~aps_int) calls .flip() internally on the raw data to match Zig.
test/translate_c.zig: enum: add wider range of values (u64) to try;
2018-08-20 22:46:11 -04:00
Michael Noronha
7e7e59d881
translate-c: Correctly translate enum init values, addressing #1360
2018-08-20 22:45:19 -04:00
Andrew Kelley
dd4b13ac03
Revert "translate-c: Correctly translate enum init values, addressing #1360 ( #1377 )"
...
This reverts commit b8ce8f219c
.
Squashing the commits from the pull request resulted in kristopher tate
from being omitted from the authors. A future commit will merge
the code correctly.
2018-08-20 22:39:39 -04:00
Michael Noronha
b8ce8f219c
translate-c: Correctly translate enum init values, addressing #1360 ( #1377 )
...
* translate-c: Correctly translate enum init values
* translate-c: Test enum initialization
* translate-c: Flip to positive using APSInt builtins
* src/translate_c.cpp: correctly bridge llvm::APSInt with Zig BigInt;
ACHTUNG: llvm::APSInt stores an int's sign inside of its getRawData; Internally to Zig we store an integer's sign outside of getRawData! (~aps_int) calls .flip() internally on the raw data to match Zig.
* test/translate_c.zig: enum: add wider range of values (u64) to try;
closes #1360
2018-08-20 14:29:26 -04:00
Andrew Kelley
63a23e848a
translate-c: fix for loops with var init and empty body
2018-08-05 18:40:14 -04:00
Andrew Kelley
387fab60a6
translate-c: fix do while with empty body
2018-08-05 18:32:38 -04:00
Andrew Kelley
c420b234cc
translate-c: handle for loop with empty body
2018-08-05 18:18:24 -04:00