Commit Graph

12 Commits

Author SHA1 Message Date
Jack Palevich 188a5a7a3a Support nested macros. (Still don't support macro arguments.)
Now you can say:

    #define A B
    #define B C
    #define C 4

int x = A;

And it will work as expected.

Print an error message rather than assert when we're expecting a
function value, but don't find one.
2009-10-27 17:23:20 -07:00
Jack Palevich 66d487487f Print out error message when symbol lookup fails. 2009-10-27 13:58:08 -07:00
Jack Palevich 1c60e46e0e Produce error rather than assert when encountering a nested function.
Remove extra '\n' characters from error messages.

Dynamically allocate error message buffer.
2009-09-18 15:03:03 -07:00
Jack Palevich d5315573d7 Move ARM disassembler out of libacc and into the acc command-line tool. 2009-09-09 13:19:34 -07:00
Jack Palevich 8c246a9dc2 Add accRegisterSymbolCallback API to control external symbol linkage.
Until now dlsym was used to lookup external symbols. Now you can
register your own function to be called when an undefined symbol is
used.
2009-07-14 21:14:10 -07:00
-b master 422972cb12 Align ARM stack pointer to an 8-byte boundary when calling functions.
This is required by the ARM EABI standard.
2009-06-17 19:13:52 -07:00
Jack Palevich 2db168f12f Use a separate table for keywords. 2009-06-11 14:29:47 -07:00
Jack Palevich 36d9414f72 Make a host version of acc for testing.
Don't run the code we've compiled unless the -R option is present.
2009-06-08 15:55:32 -07:00
Jack Palevich b7c81e9952 Switch to ANSI C style C function declarations.
main(argc, argv) --> int main(int argc, char** argv)

Although we accept int, void, and char types, and pointers to same,
we actually still treat everything as an int.
2009-06-04 19:56:13 -07:00
Jack Palevich eedf9d2083 Add support for #pragma foo(bar)
Report unsupported/unknown preprocessor directives.
Report line number of error rather than character offset.
2009-06-04 16:38:35 -07:00
Jack Palevich ac0e95eb60 Improve ACC error reporting.
Now return an error code and an error message, rather than just
printing to stderr or calling exit().

Check to see we don't exceed our code size.
2009-05-29 13:53:44 -07:00
Jack Palevich 1cdef20774 Convert libacc into a shared library.
Document internal CodeGenerator interface

Move license to a separate license file.

Define a public API for calling libacc.

Update the "acc" test program to use the public API.
Move "main.cpp" and test scripts into the tests subdirectory.
Move test data from tests to tests/data
Remove stale test data.
2009-05-22 12:09:55 -07:00