Age | Commit message (Collapse) | Author | |
---|---|---|---|
2021-10-21 | pp: Separate function-like macro expansion to its own function | Michael Forney | |
2021-09-13 | Revert "Add stringconcat function to concatenate adjacent string literals" | Michael Forney | |
This reverts commit c16f07acf655b9f4fb006d8256b4027fb5a13aa8. This incorrectly allows octal escapes to span between adjacent string literals (e.g. "\0" "1" is not the same as "\01"). | |||
2021-09-03 | pp: Set location column to 1 after line directive | Michael Forney | |
2021-09-02 | pp: Implement #line directives and gcc line markers | Michael Forney | |
Fixes #66. | |||
2021-06-28 | Add stringconcat function to concatenate adjacent string literals | Michael Forney | |
This function also ensures that the string prefixes (if any) are compatible. It should make it easier to implement wide string support. | |||
2020-06-05 | Help gcc see that variables are not used uninitialized | Michael Forney | |
2020-03-22 | pp: Don't add leading space for first stringized token | Michael Forney | |
2020-03-22 | pp: Implement variadic macros | Michael Forney | |
2020-03-22 | pp: Style | Michael Forney | |
2020-03-18 | pp: Remove some unnecessary conditionals | Michael Forney | |
It is fine to just pass NULL, or the result of malloc(0) to free(). | |||
2020-03-18 | pp: Fix possible use-after-free | Michael Forney | |
Restructure the loop slightly to avoid accessing the macro identifier token after we have checked for the open parenthesis; it might belong to a previous macro argument that has since been freed. | |||
2020-03-18 | pp: Don't expand argument tokens if we don't need them | Michael Forney | |
2020-03-18 | pp: Handle #define without trailing newline | Michael Forney | |
2020-03-18 | pp: Minor style changes | Michael Forney | |
2020-03-18 | pp: Finish '#' operator | Michael Forney | |
2020-03-17 | pp: Use tokencheck in a few more places | Michael Forney | |
2020-03-17 | pp: Fix some whitespace after preprocessing | Michael Forney | |
2020-03-17 | pp: Add support for macro definition and expansion | Michael Forney | |
The token pasting operator `##` still needs to be implemented. | |||
2020-03-16 | token: Add tokencheck utility function | Michael Forney | |
This function is like expect(), but operates on a specific token and does not read the following token. | |||
2020-03-16 | token: Rename some functions | Michael Forney | |
2020-03-16 | Allow multiple inputs to main compiler process | Michael Forney | |
This way, we can implement -include in the driver by just passing an additional input to the compiler. | |||
2019-06-18 | pp: Add __typeof as an alternate keyword for __typeof__ | Michael Forney | |
2019-05-24 | Add __attribute__ keyword | Michael Forney | |
This will be needed for weak references and hidden visibility. | |||
2019-05-21 | Handle alternate keywords in the compiler itself | Michael Forney | |
2019-05-13 | Use enum type for expect argument | Michael Forney | |
2019-04-29 | Add __asm__ keyword | Michael Forney | |
2019-04-17 | Improve token descriptions in errors | Michael Forney | |
2019-04-04 | Merge headers into cc.h | Michael Forney | |
2019-02-27 | Implement __typeof__. | Andrew Chambers | |
2019-02-25 | Use a stack of scanners | Michael Forney | |
This is necessary to implement the #include directive. | |||
2019-02-24 | Remove unnecessary spaces in keyword list | Michael Forney | |
This used to contain __builtin_va_list, so was longer than necessary. | |||
2019-02-16 | Allow labels with same name as typedef | Michael Forney | |
2019-02-13 | Make __builtin_va_list a built-in declaration, not keyword | Michael Forney | |
2019-02-12 | Initial import | Michael Forney | |