Andrius Štikonas
a495e6faf6
Update error message to include riscv32.
2021-12-04 18:35:00 +00:00
Andrius Štikonas
1e784f5afb
Add riscv32 port.
2021-12-02 22:41:27 +00:00
Andrius Štikonas
646bd15b19
Remove old function.
2021-11-22 00:41:06 +00:00
Andrius Štikonas
185ef7a7c2
Improve handling of compound assignment operators.
...
Previously, compound assignment operators were replaced in preprocessor.
This only worked for simple cases where we only had 1-token variable.
This commit switches to proper implementation in the parser.
2021-11-15 00:06:08 +00:00
Andrius Štikonas
b2414918cc
Add support for assignment operators.
2021-11-11 21:18:14 +00:00
Andrius Štikonas
e3651879a5
Define arch specific variables.
2021-11-01 20:50:11 +00:00
Jeremiah Orians
ffe4e5f66e
better validate arguments passed
2021-10-04 20:49:44 -04:00
Jeremiah Orians
ae9e700592
Release_1.9.0
2021-10-03 09:34:22 -04:00
Andrius Štikonas
ae48dbd6cb
Add riscv64 port.
2021-10-02 11:59:21 +01:00
Jeremiah Orians
a3c14bcd1b
Fixed Memory leak, thanks melg8
2021-06-23 07:58:11 -04:00
Jeremiah Orians
d80d8a652b
Move more functionality into M2libc
2021-04-03 22:41:52 -04:00
Jeremiah Orians
46cf81af83
Replace file_print with fputs
2021-04-03 18:56:55 -04:00
Jeremiah Orians
a9d88e8e6c
Add support for -D variable and -D variable=value
2021-02-05 21:34:00 -05:00
Jeremiah Orians
8007ae9ce6
Add support for #if defined(__M2__) to enable M2-Planet specific functionality
2021-02-05 20:39:54 -05:00
Sanne Wouda
a8551f2fcd
Implement --bootstrap-mode for preprocessor
...
- // and # lines always appear in the result of read_all_tokens
- in bootstrap mode, // tokens (but not the subsequent lines) and #
lines are stripped. no preprocessing happens.
- in non-bootstrap mode, // lines are stripped and # lines stay for the
preprocessing phase
- updates tests to pass --bootstrap-mode when necessary
2021-01-09 17:38:50 +00:00
Sanne Wouda
7b8a99db3c
Add a preprocessor-only mode
...
- Very useful for testing and debugging
- Add preprocess() stub and skip compilation in preprocessor mode
2021-01-05 22:53:04 +00:00
Sanne Wouda
a18e0c1782
Add newline tokens to parse stream
...
- needed to determine start and end of macro directives
- the main parser doesn't need them, so strip out the newline tokens
before parsing to avoid changing it
2021-01-05 22:23:15 +00:00
Jeremiah Orians
921cc86ce6
First generation implemention of typedef
2021-01-02 22:00:02 -05:00
Jeremiah Orians
358b6cfb96
Fix modulus behavior that is wrong.
...
Thank you janneke
2021-01-01 16:39:27 -05:00
Michael Schierl
91bab2ef98
Close files that were fopen:ed
2020-12-21 16:57:17 +01:00
Jeremiah Orians
e7a0ecd244
Cleared out non-essential string primitives and added support for --max-string
2020-12-19 09:46:22 -05:00
Jeremiah Orians
57264eb157
Catch potential segfaulting behavior in generated binaries
2020-11-08 21:13:12 -05:00
Jeremiah Orians
71062011cd
Release 1.5.0
2020-02-01 16:21:10 -05:00
deesix
0bded017b9
aarch64: recognize the new AArch64 target architecture
...
Now, aarch64 is valid for --architecture on the command-line. Accordingly,
the global variable Architecture is set to the new AARCH64 constant.
Manual page updated.
Register size is configured to 8 bytes.
2020-02-01 21:23:49 +01:00
Jeremiah Orians
0709770730
Enabled forgotten cleanup scripts and add logic to catch ?alloc errors
2020-01-25 14:15:45 -05:00
Jeremiah Orians
f43aa4a44c
Minor tweaks to better match amd64 assembly
2019-06-03 21:01:14 -04:00
Jeremiah Orians
27cf071ee9
Release_1.3.0
2019-04-22 19:30:08 -04:00
Jeremiah Orians
420f8b62b9
1/24 working tests for AMD64 Port
2019-04-17 20:19:17 -04:00
Jeremiah Orians
d1036c60c8
First working test for ARMv7l
2019-03-09 20:22:29 -05:00
Jeremiah Orians
577f19dea9
Upgraded to 14/24 working tests
2019-02-26 18:04:49 -05:00
Jeremiah Orians
b085022577
Added initial draft of knight-posix support and first knight-posix test
2019-02-23 18:33:57 -05:00
Jeremiah Orians
a456bcc21d
Prepare for major change involving multi-arch support
2019-02-23 15:08:59 -05:00
Jeremiah Orians
9a2c6b4019
Harmonized License headers and added missing license headers
2018-10-17 19:27:06 -04:00
Jeremiah Orians
608d85b820
Fixed version number bug
2018-08-31 16:32:53 -04:00
Jeremiah Orians
95b1fe029f
Broke out OUT and FUNCTION to silence a single GCC warning
2018-08-18 15:23:58 -04:00
Jeremiah Orians
eb8b3e4eb4
Reduced Memory usage by another 50%
2018-07-26 19:51:44 -04:00
Jeremiah Orians
7833cd5660
Reduced Memory allocation from 4KB per token string to size of string
...
+ fixed null padding
2018-07-26 18:27:32 -04:00
Jeremiah Orians
c454008656
Adding initial support for global initializers
2018-06-26 17:03:17 -04:00
Jeremiah Orians
688b546281
Added debug support for M2-Planet output
2018-06-06 21:37:19 -04:00
Jeremiah Orians
cba66b015b
Catching up on enhancements
2018-05-26 16:33:00 -04:00
Jeremiah Orians
a035d955e9
Add support for anonymous unions inside of structs
2018-04-27 15:57:48 -04:00
Jeremiah Orians
3f9808a19a
Added type promotion to allow progress on mes.c
2018-04-23 21:35:27 -04:00
Jeremiah Orians
426a92ab09
Finally became self-hosting
2018-02-23 21:18:23 -05:00
Jeremiah Orians
f6752b2802
Added additional functionality such as mixed structs, do while loops,
...
gotos and tests for the new functionality
2018-01-24 20:00:22 -05:00
Jeremiah Orians
4602adb0b1
Converted from legacy M2-Planet Input.c Output.c to M2-Planet -f input.c ... -f inputN.c -o output.M1
2018-01-20 22:56:50 -05:00
Jeremiah Orians
cb866c127b
Initial prototype for struct support in M2-Planet (it is still very ugly)
2018-01-11 21:46:20 -05:00
Jeremiah Orians
92eae5b771
Started to move type information out of hard-coded logic
2018-01-11 16:31:32 -05:00
Jeremiah Orians
3b3e8f73f6
Added support for <. >= and > expressions
2018-01-09 20:45:10 -05:00
Jeremiah Orians
9fe1a878cc
Added CONSTANT to the language and fixed Capitalization problems
2017-12-19 15:44:27 -05:00
Jeremiah Orians
18e433def4
Broke out globals and now reduce the memory churn in string creation
2017-12-15 18:17:29 -05:00