Commit graph

220 commits

Author SHA1 Message Date
zik.saleeba 7c9b3c1c8a Added tests for "for" and arrays
git-svn-id: http://picoc.googlecode.com/svn/trunk@70 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-02-10 11:18:50 +00:00
zik.saleeba 51afc538be struct are now working
git-svn-id: http://picoc.googlecode.com/svn/trunk@69 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-02-10 08:42:09 +00:00
zik.saleeba 3a2c0552d6 Added struct test
git-svn-id: http://picoc.googlecode.com/svn/trunk@68 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-02-10 06:17:28 +00:00
zik.saleeba d6a7ac7c14 Redesigned the test system
git-svn-id: http://picoc.googlecode.com/svn/trunk@67 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-02-10 06:13:14 +00:00
zik.saleeba a8b4b08d93 Implemented the '.' operator for struct/union member access
git-svn-id: http://picoc.googlecode.com/svn/trunk@66 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-02-09 11:40:56 +00:00
zik.saleeba c9abac9fad Fixed an EOF lexing problem.
Added some optional debug.
Turned debug off.
Fixed handling of LValues to work with stack frames better.
Fixed the handling of stack frames in function calls.
Fixed a bug in popping variable stack frames.

git-svn-id: http://picoc.googlecode.com/svn/trunk@65 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-02-04 00:17:30 +00:00
zik.saleeba a9494ff382 Put a better (but slower) string hash function back in since it's only used at lex time now.
git-svn-id: http://picoc.googlecode.com/svn/trunk@64 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-02-03 22:05:11 +00:00
zik.saleeba 70cc4eae49 Fixed lexer EOF handling when whitespace at end of file
git-svn-id: http://picoc.googlecode.com/svn/trunk@63 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-02-03 11:09:07 +00:00
zik.saleeba bd30654f74 Fixed a problem with VariableAllocValueAndData() allocating the wrong amount of memory.
Fixed a problem with type parsing.


git-svn-id: http://picoc.googlecode.com/svn/trunk@62 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-02-03 10:39:48 +00:00
zik.saleeba 943aa9cf97 Added some heap debug
git-svn-id: http://picoc.googlecode.com/svn/trunk@61 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-02-03 06:27:34 +00:00
zik.saleeba c009864bbb Fixed type parsing error
git-svn-id: http://picoc.googlecode.com/svn/trunk@60 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-02-03 00:46:02 +00:00
zik.saleeba d95e7debf8 Fixed off-by-one error in LexGetToken()
git-svn-id: http://picoc.googlecode.com/svn/trunk@59 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-02-03 00:43:13 +00:00
zik.saleeba 11fd7f0f16 Fixed handling of interactive input at EOF
git-svn-id: http://picoc.googlecode.com/svn/trunk@58 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-02-03 00:23:13 +00:00
zik.saleeba 5b1d4a611f More compact storage of lex token values
git-svn-id: http://picoc.googlecode.com/svn/trunk@57 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-02-03 00:13:50 +00:00
zik.saleeba 44117cde04 Fixed fallthrough problem in lexer
git-svn-id: http://picoc.googlecode.com/svn/trunk@56 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-02-02 23:45:34 +00:00
zik.saleeba 0547bcaff0 Increased heap size to 8k
git-svn-id: http://picoc.googlecode.com/svn/trunk@55 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-02-02 22:35:59 +00:00
zik.saleeba e267efdb96 Changed order of initialisation to fix reserved word bug
git-svn-id: http://picoc.googlecode.com/svn/trunk@54 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-02-02 22:35:34 +00:00
zik.saleeba 7cd75ae05b Some cleanup of memory references
git-svn-id: http://picoc.googlecode.com/svn/trunk@53 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-02-02 22:33:51 +00:00
zik.saleeba b0c3f9d63d Uninitialised memory bug fixed
git-svn-id: http://picoc.googlecode.com/svn/trunk@52 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-02-02 22:33:07 +00:00
zik.saleeba 8fcc680dd2 Size error in big allocation fixed
git-svn-id: http://picoc.googlecode.com/svn/trunk@51 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-02-02 22:32:24 +00:00
zik.saleeba bd37037d5f Freeing tokens after intrinsic parse
git-svn-id: http://picoc.googlecode.com/svn/trunk@50 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-02-02 11:51:45 +00:00
zik.saleeba 1389084b36 Fixed some egrerious bugs
git-svn-id: http://picoc.googlecode.com/svn/trunk@49 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-02-02 11:50:55 +00:00
zik.saleeba 956efab67f Parser is now updated to work with the new lexer and string system.
System now compiles - needs debug.


git-svn-id: http://picoc.googlecode.com/svn/trunk@48 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-02-02 11:08:36 +00:00
zik.saleeba f8216bb79f Type system now works with the new lexer.
git-svn-id: http://picoc.googlecode.com/svn/trunk@47 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-02-02 05:27:15 +00:00
zik.saleeba 0c0ac9b332 Lexer now supports interactive input.
Lexer now pre-scans the source and returns a buffer of tokens.
Heap can provide unallocated memory for a temporary buffer.

git-svn-id: http://picoc.googlecode.com/svn/trunk@46 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-02-02 04:53:45 +00:00
zik.saleeba 8bd1c18d24 Converting to use shared strings
git-svn-id: http://picoc.googlecode.com/svn/trunk@45 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-02-02 03:27:05 +00:00
zik.saleeba a9a93f3aa4 Now uses the benefits of shared strings to simplify the hash table for value lookups.
Added a more compact way of storing shared string hash chains.

git-svn-id: http://picoc.googlecode.com/svn/trunk@44 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-02-02 03:25:15 +00:00
zik.saleeba 86af5318da Bulko lexer change for more efficient pre-scanned tokens.
Removed Str type - replaced with standard C strings.
Added hashed string tables for efficient string storage.


git-svn-id: http://picoc.googlecode.com/svn/trunk@43 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-02-01 11:31:18 +00:00
zik.saleeba 921ccdf17d Fixed a bug in HeapFree().
Allowed for coalescing frees on the bottom of the heap.


git-svn-id: http://picoc.googlecode.com/svn/trunk@42 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-02-01 03:39:16 +00:00
zik.saleeba 2d7b467b96 Changed from a linear probing hash table to a hash chain method since we now have better storage allocation. This is more space efficient and removes the static limits on local variable table sizes.
git-svn-id: http://picoc.googlecode.com/svn/trunk@41 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-01-29 22:26:04 +00:00
zik.saleeba b2396d3eda Now stack frames appear on our new stack as they should. The old static
limits are gone.


git-svn-id: http://picoc.googlecode.com/svn/trunk@40 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-01-29 11:10:46 +00:00
zik.saleeba 86cea880e3 Changed away from old FunctionStore approach now that I have dynamic
allocation available.


git-svn-id: http://picoc.googlecode.com/svn/trunk@39 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-01-29 10:56:50 +00:00
zik.saleeba 75e45704e8 Bulk changes to accomodate the new storage model.
The system now compiles again (probably doesn't run though).


git-svn-id: http://picoc.googlecode.com/svn/trunk@38 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-01-26 08:57:32 +00:00
zik.saleeba 4524270e50 Changing everything to handled heap-allocated values
git-svn-id: http://picoc.googlecode.com/svn/trunk@37 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-01-25 02:09:44 +00:00
zik.saleeba b9e1086cbb Moving towards a working new type system
git-svn-id: http://picoc.googlecode.com/svn/trunk@36 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-01-24 03:15:02 +00:00
zik.saleeba fad5c6db69 Big changes and progress towards the new type system. Doesn't compile right now. Maybe tomorrow.
git-svn-id: http://picoc.googlecode.com/svn/trunk@35 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-01-23 11:34:12 +00:00
zik.saleeba a59be13de3 Now compiles with some of the new structure in place
git-svn-id: http://picoc.googlecode.com/svn/trunk@34 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-01-21 09:02:05 +00:00
zik.saleeba 626c29a639 Working on the heap and the new type system. Doesn't compile right now.
git-svn-id: http://picoc.googlecode.com/svn/trunk@33 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-01-21 00:52:42 +00:00
zik.saleeba df1d001b76 Added TODO file
git-svn-id: http://picoc.googlecode.com/svn/trunk@32 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-01-05 11:30:12 +00:00
zik.saleeba f400c36949 Added comment test case
git-svn-id: http://picoc.googlecode.com/svn/trunk@31 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-01-05 10:53:44 +00:00
zik.saleeba a15cf7dd36 Fixed a problem with passing unnamed parameters.
Fixed a problem with file reading.

git-svn-id: http://picoc.googlecode.com/svn/trunk@30 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-01-05 05:50:04 +00:00
zik.saleeba ef8969d975 Added lexer token caching for improved performance
git-svn-id: http://picoc.googlecode.com/svn/trunk@29 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-01-05 04:52:33 +00:00
zik.saleeba 883c862474 #include implemented
git-svn-id: http://picoc.googlecode.com/svn/trunk@28 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-01-05 04:38:19 +00:00
zik.saleeba 93a6dffee4 #define macros implemented
git-svn-id: http://picoc.googlecode.com/svn/trunk@27 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-01-05 04:28:54 +00:00
zik.saleeba 995266ce9c Added test framework.
Implemented preprocessor-style directives (not finished yet).


git-svn-id: http://picoc.googlecode.com/svn/trunk@26 21eae674-98b7-11dd-bd71-f92a316d2d60
2009-01-04 04:08:49 +00:00
zik.saleeba 939c68cd4d Intrinsic functions implemented
git-svn-id: http://picoc.googlecode.com/svn/trunk@25 21eae674-98b7-11dd-bd71-f92a316d2d60
2008-12-27 04:36:45 +00:00
zik.saleeba bf0fe101e5 Support for floating point output added
git-svn-id: http://picoc.googlecode.com/svn/trunk@24 21eae674-98b7-11dd-bd71-f92a316d2d60
2008-12-27 03:04:58 +00:00
zik.saleeba 224a90dca3 Fixed bug in scoping accessing all stack frames, not just local and
global


git-svn-id: http://picoc.googlecode.com/svn/trunk@23 21eae674-98b7-11dd-bd71-f92a316d2d60
2008-12-27 02:28:29 +00:00
zik.saleeba 704f20e1c4 Added floating point support
git-svn-id: http://picoc.googlecode.com/svn/trunk@22 21eae674-98b7-11dd-bd71-f92a316d2d60
2008-12-27 02:25:49 +00:00
zik.saleeba a8008e9ac7 Function calls now work.
git-svn-id: http://picoc.googlecode.com/svn/trunk@21 21eae674-98b7-11dd-bd71-f92a316d2d60
2008-12-24 03:27:53 +00:00