Skip to content

Support function-like macro #68

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 5 commits into from
Aug 8, 2023
Merged

Conversation

vacantron
Copy link
Collaborator

The implementation redirects the pointer to the source to the beginning of the body of the macro, like how the copy and paste works. Because of this, the answer of the second test is 7, not 9.

The __VA_ARGS__ identifier will expand the remained arguments that are undeclared. It is useful to write the more readable codes.

Not support nested macro yet.

The implementation redirects the pointer to the source to the beginning
of the body of the macro, like how the copy and paste works. Because of
this, the answer of the second test is 7, not 9.

The '__VA_ARGS__' identifier will expand the remained arguments that
are undeclared. It is useful to write the more readable codes.

Not support nested macro yet.
Copy link
Collaborator

@jserv jserv left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Update README.md for improving the features described in section "Compatibility."

Both the arguments declared in function and macro can be accessed in
thier children blocks. If we know which function or macro a block
belongs to, we can trace its variables. The simple way to do this is
recording them in the `block_t` structure.

Drop `prev_return_idx` in `macro_t` because we only support non-nested
macro. It used to record the return index of its parent.

Change the prototype of `add_block` in `src/globals.c` to keep the
semantics clear.
@jserv jserv merged commit 22bf1ff into sysprog21:master Aug 8, 2023
@jserv
Copy link
Collaborator

jserv commented Aug 8, 2023

Thank @vacantron for contributing!

@vacantron vacantron deleted the variadic-macro branch August 9, 2023 17:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants