Commit graph

89 commits

Author SHA1 Message Date
zik.saleeba 436b0cafc0 Conditional support for #include for surveyor
git-svn-id: http://picoc.googlecode.com/svn/trunk@202 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-03-12 20:44:50 +00:00
zik.saleeba 48a6472c68 All allocations are now cleaned up neatly on exit. This is probably unnecessary given that we run our own heap but gives confidence that there are no internal memory leaks.
git-svn-id: http://picoc.googlecode.com/svn/trunk@199 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-03-11 23:49:10 +00:00
zik.saleeba 6a586cee75 Fixed bug in enum declaration requiring a variable name
git-svn-id: http://picoc.googlecode.com/svn/trunk@187 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-03-10 08:03:10 +00:00
zik.saleeba 9769bd432b Fixed problem with 'return' parsing which was causing the factorial example to fail
git-svn-id: http://picoc.googlecode.com/svn/trunk@185 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-03-10 02:18:17 +00:00
zik.saleeba 8d76edfe4b #include now works
git-svn-id: http://picoc.googlecode.com/svn/trunk@182 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-03-10 01:01:57 +00:00
zik.saleeba 23bce9d38a enums implemented
git-svn-id: http://picoc.googlecode.com/svn/trunk@180 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-03-09 22:36:01 +00:00
zik.saleeba b9990d2c39 Functions returning void fixed
git-svn-id: http://picoc.googlecode.com/svn/trunk@176 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-03-09 00:43:31 +00:00
zik.saleeba 1b312544d9 'else' fixed, along with semicolon handling
git-svn-id: http://picoc.googlecode.com/svn/trunk@175 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-03-09 00:34:32 +00:00
zik.saleeba 1169e6f909 Prompt changes
git-svn-id: http://picoc.googlecode.com/svn/trunk@172 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-03-08 23:03:59 +00:00
zik.saleeba dc04ba8dd0 Split parsing across two files parse.c and the new expression.c
git-svn-id: http://picoc.googlecode.com/svn/trunk@170 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-03-08 07:56:28 +00:00
zik.saleeba 46c4bad533 Interactive mode now works.
git-svn-id: http://picoc.googlecode.com/svn/trunk@167 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-03-08 04:26:28 +00:00
zik.saleeba 05d377e49d First stab at interactive mode needs debug.
git-svn-id: http://picoc.googlecode.com/svn/trunk@164 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-03-07 11:23:42 +00:00
zik.saleeba f5fac3fdf2 First stab at making lists of tokens from interactive input. Not ready yet.
git-svn-id: http://picoc.googlecode.com/svn/trunk@162 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-03-07 07:49:17 +00:00
zik.saleeba 8a5ed05fd2 Now copying function tokens so when we're in interactive mode we can free the original tokens without
losing the box and dice.


git-svn-id: http://picoc.googlecode.com/svn/trunk@161 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-03-07 06:17:11 +00:00
zik.saleeba 86bb48b158 #define now works for simple unparameterised expression macros
git-svn-id: http://picoc.googlecode.com/svn/trunk@159 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-03-06 07:27:45 +00:00
zik.saleeba 3bdbb51d5c Now allowing multiple declarations in one statement
git-svn-id: http://picoc.googlecode.com/svn/trunk@157 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-03-06 06:00:51 +00:00
zik.saleeba 8b410241ee Declarations can now assign an initial value
git-svn-id: http://picoc.googlecode.com/svn/trunk@156 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-03-06 04:55:11 +00:00
zik.saleeba d137fdcbeb More expression parser tinkering
git-svn-id: http://picoc.googlecode.com/svn/trunk@154 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-03-05 04:05:15 +00:00
zik.saleeba 8020a9ca57 Expression fiddling
git-svn-id: http://picoc.googlecode.com/svn/trunk@151 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-03-04 10:09:56 +00:00
zik.saleeba a3ab81ca23 Starting to code the new expression system
git-svn-id: http://picoc.googlecode.com/svn/trunk@148 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-03-03 10:53:45 +00:00
zik.saleeba 7003b55ead Library functions now get Parser as a parameter
git-svn-id: http://picoc.googlecode.com/svn/trunk@134 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-02-28 22:14:55 +00:00
zik.saleeba cebff6d290 Thinking about pointers to struct and array elements
git-svn-id: http://picoc.googlecode.com/svn/trunk@119 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-02-26 10:44:06 +00:00
zik.saleeba 71aa142c96 Pointers now work
git-svn-id: http://picoc.googlecode.com/svn/trunk@118 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-02-26 10:16:49 +00:00
zik.saleeba 73d91b6202 Change to add extra lvalue information to values
git-svn-id: http://picoc.googlecode.com/svn/trunk@117 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-02-26 09:56:22 +00:00
zik.saleeba 3558506261 Fiddling with pointers
git-svn-id: http://picoc.googlecode.com/svn/trunk@115 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-02-25 11:14:46 +00:00
zik.saleeba 20fb2407ef Big reorganisation to make it easier to port to different targets
git-svn-id: http://picoc.googlecode.com/svn/trunk@110 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-02-24 11:16:37 +00:00
zik.saleeba aa213f4129 Fixed local conflicts
git-svn-id: http://picoc.googlecode.com/svn/trunk@108 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-02-24 08:00:53 +00:00
zik.saleeba cf28c7513c Fixed some inconsistencies in array handling
git-svn-id: http://picoc.googlecode.com/svn/trunk@105 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-02-24 02:28:35 +00:00
zik.saleeba e94767ba98 New NO_FP compile option allows removal of all floating point support
git-svn-id: http://picoc.googlecode.com/svn/trunk@101 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-02-24 00:21:17 +00:00
zik.saleeba 93a6a0e9d0 Fixed a bug in array allocation (regression)
git-svn-id: http://picoc.googlecode.com/svn/trunk@100 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-02-24 00:08:11 +00:00
zik.saleeba 4b11999dea stdarg parameter type checking bug sorted
git-svn-id: http://picoc.googlecode.com/svn/trunk@99 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-02-21 23:38:07 +00:00
zik.saleeba 4821d689ad Big changes to string constants.
Got rid of str.c.
First attempt at stdarg params in printf()


git-svn-id: http://picoc.googlecode.com/svn/trunk@97 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-02-21 02:35:52 +00:00
zik.saleeba 89e5c66189 Implemented ellipsis for stdargs and stdarg stack handling
git-svn-id: http://picoc.googlecode.com/svn/trunk@95 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-02-20 09:04:45 +00:00
zik.saleeba a128b58610 Implemented 'return'.
All tests now pass.

git-svn-id: http://picoc.googlecode.com/svn/trunk@93 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-02-20 00:12:58 +00:00
zik.saleeba 957b620703 Revised stack and parameter handling in intrinsic functions
git-svn-id: http://picoc.googlecode.com/svn/trunk@92 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-02-19 23:55:40 +00:00
zik.saleeba ebc32dc1f0 Removed unnecessary ResultOnHeap parameters - they just added code for no reason.
Arguments are now stored fully on the stack to fix a bug with nested function calls.

git-svn-id: http://picoc.googlecode.com/svn/trunk@91 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-02-19 23:29:35 +00:00
zik.saleeba b428c0f544 Small fix for parameter count
git-svn-id: http://picoc.googlecode.com/svn/trunk@90 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-02-19 11:07:56 +00:00
zik.saleeba 2ba0598f1c Fixed a bug in do..while - now works
git-svn-id: http://picoc.googlecode.com/svn/trunk@89 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-02-19 11:01:14 +00:00
zik.saleeba 6a1d28c1dc switch is now working.
did some work on break / continue in loops.


git-svn-id: http://picoc.googlecode.com/svn/trunk@87 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-02-19 09:07:00 +00:00
zik.saleeba 2f5523f400 Fixed a parser bug with token checking
git-svn-id: http://picoc.googlecode.com/svn/trunk@83 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-02-18 11:03:14 +00:00
zik.saleeba fdad9f8d30 Changes to help with implementing switch/case/break/continue/return
git-svn-id: http://picoc.googlecode.com/svn/trunk@82 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-02-18 08:19:06 +00:00
zik.saleeba d94b70212b Syntax of "switch" is now handled. Not semantics though.
git-svn-id: http://picoc.googlecode.com/svn/trunk@81 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-02-17 23:36:09 +00:00
zik.saleeba 2e545deb6a Arrays debugged and working
git-svn-id: http://picoc.googlecode.com/svn/trunk@80 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-02-15 07:39:41 +00:00
zik.saleeba 78e0ff8bc1 Implemented array lookup
git-svn-id: http://picoc.googlecode.com/svn/trunk@79 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-02-15 06:46:37 +00:00
zik.saleeba 038431067f Arithmetic fixed to work with new system. "for" now works correctly again.
git-svn-id: http://picoc.googlecode.com/svn/trunk@78 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-02-15 06:16:54 +00:00
zik.saleeba b073f187f8 Revamped the way lvalues work. Now both structs and '.' should work.
git-svn-id: http://picoc.googlecode.com/svn/trunk@77 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-02-15 05:52:03 +00:00
zik.saleeba f3b46b9afc Fixed bugs in "for"
git-svn-id: http://picoc.googlecode.com/svn/trunk@76 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-02-12 12:15:25 +00:00
zik.saleeba bd5fe4b73c Made a cleaner interface to creating shared values
git-svn-id: http://picoc.googlecode.com/svn/trunk@74 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-02-11 06:47:36 +00:00
zik.saleeba 177c2a549b '*' dereference operator implemented
git-svn-id: http://picoc.googlecode.com/svn/trunk@73 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-02-11 06:42:30 +00:00
zik.saleeba e348021c51 Fixed some egregious bugs
git-svn-id: http://picoc.googlecode.com/svn/trunk@72 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-02-10 22:25:20 +00:00