Ayke van Laethem
d555ad93d7
Add support for structs
2018-04-16 01:01:11 +02:00
Ayke van Laethem
de0ff3b3af
Various changes
...
* Don't skip init function
* Add global variables and constants
* Add unary operations
* Use import path instead of package name (except for main)
* ...more
2018-04-15 04:50:28 +02:00
Ayke van Laethem
5dfcb5f085
Reorganize packages
2018-04-15 03:38:01 +02:00
Ayke van Laethem
60a01a43a3
Implement strings the way Go itself does
...
This makes string slicing cheap.
2018-04-14 19:24:21 +02:00
Ayke van Laethem
7cc2301621
Print LLVM IR on verify failure
2018-04-14 19:09:19 +02:00
Ayke van Laethem
63a545540d
Add Jump and Phi support, to enable things like for loops
2018-04-14 19:07:29 +02:00
Ayke van Laethem
ad98a29a6f
Add first branching support (if)
2018-04-13 22:19:13 +02:00
Ayke van Laethem
fdf907c96c
Add some more binops
2018-04-13 22:17:49 +02:00
Ayke van Laethem
cc5a29d759
Add a load of binops
2018-04-13 21:03:35 +02:00
Ayke van Laethem
6607cff14e
Print IR before optimization
...
This makes invalid IR easier to spot (see previous commit).
2018-04-13 20:30:45 +02:00
Ayke van Laethem
01ee0c456c
Handle local variables correctly
...
They were computed again and again each time they were used.
2018-04-13 20:29:52 +02:00
Ayke van Laethem
e0e04b88cb
Make expression statement more generic; introduce *Frame for func state
2018-04-13 20:19:54 +02:00
Ayke van Laethem
9d8d0b9e03
Treat llvm.Value as a pointer
2018-04-13 20:03:35 +02:00
Ayke van Laethem
30931ab3a6
Makefile cleanup
2018-04-13 02:12:36 +02:00
Ayke van Laethem
6a8dc7ca9a
Support functions with parameters
2018-04-13 02:11:12 +02:00
Ayke van Laethem
e0da91f753
Add return values
2018-04-13 00:18:28 +02:00
Ayke van Laethem
7be746e2f3
Make 'int' platform-dependent
...
Or rather, provide abstraction to make this feature easy to add in the
future.
2018-04-13 00:14:16 +02:00
Ayke van Laethem
ea6ec58241
Fix function order - no random failures anymore!
2018-04-12 23:21:47 +02:00
Ayke van Laethem
e8eae65ba1
BinOp expression and function call
...
Not complete, depends on map iteration order!
2018-04-12 23:12:31 +02:00
Ayke van Laethem
005e08d5b5
Use SSA parser from Go tools
...
Hopefully this makes the conversion a lot easier: now both sides of the
conversion are in SSA form.
2018-04-12 21:04:37 +02:00
Ayke van Laethem
2478bb71f9
support print(int)
2018-04-12 15:19:20 +02:00
Ayke van Laethem
e1b04abd46
Use proper string types with embedded length
2018-04-12 14:44:33 +02:00
Ayke van Laethem
0e99366568
Better validation and error reporting
2018-04-11 20:42:38 +02:00
Ayke van Laethem
0f1e11319c
Don't hardcode default triple
2018-04-11 20:41:54 +02:00
Ayke van Laethem
d08ff64d1d
Move string printing to runtime
2018-04-11 20:41:09 +02:00
Ayke van Laethem
7ffb73b407
Switch to go/loader
...
This does typechecking internally and makes importing packages a whole
lot easier in the future.
2018-04-11 16:56:50 +02:00
Ayke van Laethem
bc28975c8c
Hello world!
2018-04-11 16:17:14 +02:00