-
-
Notifications
You must be signed in to change notification settings - Fork 9
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
Feature Modifiers and Eigenclasses #346
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good! ❤️
src/Language/Mulang/Ast.hs
Outdated
@@ -159,6 +174,9 @@ data Expression | |||
-- ^ Object oriented interface implementation | |||
| Include Expression | |||
-- ^ Object oriented mixin inclusion | |||
| Decorator [Modifier] Expression | |||
-- ^ Generic expression decorator for language modifiers and user-defined annotations | |||
-- ^ Eigenclass object |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
leftover comment I think?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yup :(
Also, added support for simple marker java annotations
e70a19c
to
8019d38
Compare
🎯 Goal
To add support for several frequent modifiers like
private
,protected
,static
andabstract
in the Mulang AST. It also adds support for eigen-like OOP constructions, just as eigenclasses and eigenmethods - which are rare but essential to the Ruby language.Very basic support for simple annotations is also added.
📝 Details
This PR does not introduce new expectations, only new
Expression
nodes:Decorator
for adding metadata to methods, classes, attributes and other - mostly OOP - constructions. It takes it name from the Python language concept of decorator which is similar to the annotation concept in Java and attribute in C#, but is usually used to also implement very basic OOP constructs like class and static methods.EigenClass
for opening instances and editing its eigenclass👁️ See also
Related to #190
Related to #163
Related to #173
Fixes #174