Commit graph

704 commits

Author SHA1 Message Date
Russell Joyce 62969cb0ee
Added handling of 'const' type qualifier keyword
There is currently no enforcement of a variable being constant, and the
actual type is the same as if 'const' wasn't present.
2020-06-11 11:30:51 +01:00
Russell Joyce 9fd31b6d37
Added handling of "long int" type specifier
Just consumes and discards the "int" token and treats as if it was only
a "long".
2020-06-10 18:24:12 +01:00
Russell Joyce b403e76600
Added handling of trailing type qualifiers/storage classes
Handles situations such as `int volatile x` rather than `volatile int x`
by consuming the keywords as part of the type specifier.
2020-06-10 18:21:35 +01:00
Russell Joyce 9abf00e2d3
Added basic pragma parsing
Actual contents of the pragma are currently just discarded. This
supports both #pragma and _Pragma() definitions, but the pragma must end
the line it is on and cannot be in the middle of a statement.
2020-06-09 19:21:00 +01:00
Russell Joyce a96902717c
Added stats code to Makefile
For when not using CMake, e.g. when running tests with 'make test'.
2020-06-09 12:52:35 +01:00
Russell Joyce 2597008035
Small modification to loop C test code 2020-06-09 12:31:20 +01:00
Russell Joyce 45d85111f0
Added parsing of volatile qualifier
This doesn't affect code execution, but is exposed through TypeParse().
2020-06-09 12:30:47 +01:00
Russell Joyce 409f520b61
Added functions to log and count parsing of statements and expressions
Currently prints all expressions and statements to stderr, then outputs
a total count of each token to stderr after program execution.
2020-05-13 18:44:09 +01:00
Russell Joyce 72dff522b3
Added some basic example C files for use with debugging/testing 2020-05-13 18:01:14 +01:00
Russell Joyce 4d3a9715ae
Fixed building on MacOS
'F_FULLSYNC' should be 'F_FULLFSYNC', and sbrk system call is deprecated.
2020-05-13 17:13:11 +01:00
Russell Joyce d57c0044b5
Added CMake/CLion project and associated files 2020-05-13 17:11:53 +01:00
Joseph Poirier a97d94fa3d
Merge pull request #21 from jpoirier/develop
Develop
2018-01-17 08:33:58 -06:00
Joseph Poirier f84bf504d9
fix typo in readme 2018-01-17 08:33:04 -06:00
Joseph Poirier b9ffe4eeb6
delete unused code 2018-01-17 01:49:48 -06:00
Joseph Poirier bb3c5ef926
Merge pull request #20 from jpoirier/develop
add the last bits of the hack
2018-01-17 00:57:35 -06:00
Joseph Poirier 676addf333
add the last bits of the hack 2018-01-17 00:55:24 -06:00
Joseph Poirier 2e35505e26
Merge pull request #19 from jpoirier/develop
make the ugly hack uglier
2018-01-17 00:44:32 -06:00
Joseph Poirier aad3648fc0
make the ugly hack uglier 2018-01-17 00:31:08 -06:00
Joseph Poirier 345b1defbd
Merge pull request #18 from jpoirier/develop
properly print large long values
2018-01-16 21:08:39 -06:00
Joseph Poirier b8b4c48637
properly print large long values 2018-01-16 21:06:52 -06:00
Joseph Poirier 4930d786c8
Merge pull request #17 from jpoirier/develop
fix parsing typedef outside of declaration, don't decrement loop counter
2018-01-16 16:16:21 -06:00
Joseph Poirier e8a2a13595
fix parsing typedef usage outside of the actual declaration, don't decrement loop counter 2018-01-16 16:12:07 -06:00
Joseph Poirier 7008ce7f9e
Merge pull request #15 from jpoirier/develop
Develop
2018-01-11 23:06:56 -06:00
Joseph Poirier e96fabfe56
fix linked list test 2018-01-11 23:04:24 -06:00
Joseph Poirier c053f13e4f
back to original left shift code due to test regression from commit ba652ebe584 2018-01-11 21:49:58 -06:00
Joseph Poirier a9e185ae4d
printf tweaks 2017-08-15 00:33:14 -05:00
Joseph Poirier 3b800edbde
initial long printf fix 2017-08-15 00:23:31 -05:00
Joseph Poirier 3a0bf87bb0
proper typecast, L/R shift fixes 2017-08-14 23:53:36 -05:00
Joseph Poirier e4a559a1dc
remove some tabs 2017-08-14 22:54:09 -05:00
Joseph Poirier df15ea775c
type fixes 2017-08-14 22:50:16 -05:00
Joseph Poirier e1f6569393 test 2015-07-06 04:17:31 -05:00
Joseph Poirier 6ed4aa1b63 formatting 2015-06-22 14:16:49 -05:00
Joseph Poirier f551e28a49 formatting 2015-06-21 20:54:56 -05:00
Joseph Poirier 6e1c3aa71d formatting 2015-06-20 06:16:30 -05:00
Joseph Poirier 44ec8b0ccf line continuation handling, not fully working 2015-06-20 00:08:39 -05:00
Joseph Poirier 57190f3366 tokenize 2015-06-19 05:06:51 -05:00
Joseph Poirier 9316233d16 formatting, initial multiline macro support 2015-06-19 04:45:51 -05:00
Joseph Poirier 27b73e91de formatting 2015-06-18 23:49:13 -05:00
Joseph Poirier b117a0a132 explicit typecast 2015-06-18 23:45:12 -05:00
Joseph Poirier 255b19e51b formatting 2015-06-18 23:20:10 -05:00
Joseph Poirier 9c05060820 initialize 2015-06-18 22:49:47 -05:00
Joseph Poirier 26b21d04be formatting 2015-06-18 15:53:11 -05:00
Joseph Poirier 011ee0f3eb explicit casts, add includes 2015-06-17 16:57:50 -05:00
Joseph Poirier 97fbbaaf8f system includes before user includes, and cleanup 2015-06-17 16:34:26 -05:00
Joseph Poirier 96ee5bc665 rewrap debugger functions 2015-06-17 16:12:42 -05:00
Joseph Poirier bfc8d1a786 expose debugger functions 2015-06-17 16:09:30 -05:00
Joseph Poirier 0ac0f71fc0 proper static prototypes 2015-06-17 04:30:27 -05:00
Joseph Poirier bbcf2fdd95 formatting 2015-06-17 03:51:29 -05:00
Joseph Poirier e58eac4ae6 minor formatting 2015-06-16 22:56:37 -05:00
Joseph Poirier 5ab2a6660e minor formatting 2015-06-16 22:53:32 -05:00