Commit Graph

80 Commits

Author SHA1 Message Date
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
Andrew Kelley ccadcbc715 fix examples and rename std.rand.Rand to std.rand.Random 2018-03-29 12:33:29 -04:00
Jimmi Holst Christensen bb80daf509 Ast Render no longer outputs erroneous semicolon
closes #813
2018-03-07 10:39:32 +01:00
Andrew Kelley 57ea6e8c9f fix up msvc stuff to make it work on linux and macos too 2017-09-13 02:40:02 -04:00
Jonathan Marler 7c81cd30de Add support for MSVC 2017-09-11 09:26:26 -06:00
Andrew Kelley ee9d1d0414 c-to-zig: return statement 2017-09-01 03:16:35 -04:00
Andrew Kelley c3b603fdf9 remove AST cloning code and add AST render for while loops 2016-11-17 21:17:58 -05:00
Andrew Kelley 78d4fb20c4 inline parameters
This replaces the current generic syntax for functions and replaces
it with the concept of inline parameters.

This paves the way for the "all structs anonymous" proposal.

Closes #151.
2016-07-25 22:55:15 -07:00
Andrew Kelley 1d4c66b56b support multiple generic function instances
See #22
2016-04-07 10:34:54 -07:00
Andrew Kelley 67152f7294 support simple generic functions 2016-04-06 12:58:54 -07:00
Andrew Kelley 272fe1c54c implicit casts rewrite the AST 2016-01-22 15:31:35 -07:00
Andrew Kelley 32e2196257 number literal rework 2016-01-21 03:02:25 -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 3ef2f7058b refactor out the horrible beast that was codegen_node 2016-01-10 15:13:39 -07:00
Andrew Kelley d4b8852d78 parsing enum declarations 2016-01-10 11:48:54 -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 bdca82ea66 implement pub const 2016-01-09 00:37:48 -07:00
Andrew Kelley 0c24ed8a81 rename restrict to noalias 2016-01-08 23:48:24 -07:00
Andrew Kelley b7dd88ad68 suport checked arithmetic operations via intrinsics
closes #32
2016-01-08 23:41:40 -07:00
Andrew Kelley 14b9cbd43c add restrict qualifier on pointer arguments 2016-01-08 20:59:47 -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 5e64c4d92f support pub structs. move rand to std lib.
guess number example prints the answer now
2016-01-06 04:41: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 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 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 968b85ad77 closer to guess number example working 2016-01-02 03:38:45 -07:00
Andrew Kelley b3ac5c16ec block expressions require parens
closes #39
2015-12-31 16:04:13 -07:00
Andrew Kelley 1f8e3871ee parse if maybe expression 2015-12-26 15:05:27 -07:00
Andrew Kelley 5943f99510 implement continue expression
closes #6
2015-12-24 15:36:49 -07:00
Andrew Kelley 5ceaae288c add break expression 2015-12-24 15:09:47 -07:00
Andrew Kelley a030b60aeb add while loop 2015-12-24 14:37:43 -07:00
Andrew Kelley 50357dad45 add struct value expression 2015-12-24 00:00:23 -07:00
Andrew Kelley 5a8822c714 fix assignment operators for struct fields 2015-12-15 19:17:39 -07:00
Josh Wolfe f2a9b40231 more number literal syntax is supported. floats still need work 2015-12-15 04:05:53 -07:00
Andrew Kelley a292eb8d64 support inline assembly expressions with return type 2015-12-15 00:46:56 -07:00
Andrew Kelley e411467e1d add number literal type
it gets implicitly casted to whatever is needed.

closes #24
2015-12-14 02:46:37 -07:00
Josh Wolfe 5cb5f5dbf6 parsing assignment operators 2015-12-12 19:07:29 -07:00
Andrew Kelley a10277bd94 prepare codebase for struct and string support
parsing code for structs, strings, and c string literals
partial semantic analyzing code for structs, strings, and c string literals
2015-12-12 00:10:37 -07:00
Andrew Kelley d697404f64 hello world working without libc 2015-12-11 03:55:26 -07:00
Andrew Kelley 0dbee2300e add inline assembly support 2015-12-10 15:34:38 -07:00
Andrew Kelley dfda85e870 ability to call external variadic functions 2015-12-09 01:03:04 -07:00
Andrew Kelley 75efc31329 add array access syntax 2015-12-08 14:15:34 -07:00
Josh Wolfe f6eecfe5f4 getting started on array types 2015-12-07 08:29:19 -07:00
Andrew Kelley 3c3be10a60 add mutable local variables 2015-12-06 23:09:46 -07:00
Josh Wolfe f1aaf1353e add bool literals 2015-12-03 12:15:07 -07:00
Andrew Kelley f8ca6c70c7 add labels and goto 2015-12-03 00:47:35 -07:00