Skip to content
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

Further semantic analyses #12

Merged
merged 16 commits into from
Feb 21, 2022
Merged

Further semantic analyses #12

merged 16 commits into from
Feb 21, 2022

Conversation

dekrain
Copy link
Contributor

@dekrain dekrain commented Feb 11, 2022

Introduces implicit conversions (yay!), alloca construct, short, differential location printing, and also some platform support "improvements".

dekrain added 16 commits August 13, 2021 02:52
Now type-based checks can be disabled
Also added alloca as temporary replacement for arrays
Centralize color handling
Add debug utilities for unreachable branches
Conversions were based on how C does it, but it's open for changes
Conversions are applied when a certain type of expression is required.
This includes:
- Unary operators
- Binary operators (operand's types are used to deduce a common type)
- Operations that require rvalues
- Variable initializers & assignments
- Operations where a boolean is expected (if's and while's)

Conversions currently not supported:
- Function arguments (this requires function type information at call site, currently only stores return type)
- Pointer arithmetic
- Conversions between different pointer types (such as constness cast)
Scopes are tied to symbols (which can be unnamed and local). This allows for lookup within a scope when a name is encountered.

## Name lookup
There are two kinds of lookup: unqualified and qualified. An unqualified lookup usually occurs when an identefier is to be resolved.
Copy link
Contributor

Choose a reason for hiding this comment

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

Typo

@adamhutchings
Copy link
Contributor

So @binkiklou are you going to review and merge this or what

@binkiklou binkiklou merged commit 46ec517 into chirp-language:main Feb 21, 2022
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.

3 participants