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
Josh Wolfe
c89f77dd8e
parsing variable declaration
2015-12-02 16:33:06 -07:00
Andrew Kelley
08a2311efd
support if conditionals
2015-12-01 21:19:38 -07:00
Josh Wolfe
1ed926c321
implicit void statements and all tests pass with type checking
2015-12-01 15:54:46 -07:00
Andrew Kelley
29f24e3c50
add --color cli arg to override tty detection
2015-12-01 01:06:10 -07:00
Andrew Kelley
257cf09472
colored error messages that tell the source file
2015-12-01 00:50:11 -07:00
Andrew Kelley
55b8472374
refactor code to prepare for multiple files
...
verbose compiler output is now behind --verbose flag
2015-11-30 20:00:39 -07:00