-
Notifications
You must be signed in to change notification settings - Fork 165
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
Docs update #364
base: dev
Are you sure you want to change the base?
Docs update #364
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.
This would be great to have merged. I was reviewing a treesitter implementation for Koka (over at helix-editor/helix#8727), when I noticed that the grammar docs did not align with all of the present features.
Let me know if you see any more discrepancies |
'interface', 'break', 'continue', 'unsafe', | ||
'co', 'rec', 'open', 'extend', 'behind', | ||
'linear', 'value', 'reference', | ||
'linear', 'value', 'reference', |
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.
Not entirely sure about this, but isn't ref
(a few lines down from here) a keyword too rather than a builtin
?
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.
Actually it is a built-in identifier. It is also the way to create a mutable reference cell.
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.
Oh right, so it has a different meaning depending on the context. I guess that is not easy to encode in the pygments file, so the identifier was chosen here.
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.
Yeah, it's a tricky one.
'module', 'import', 'as', | ||
'pub', 'abstract', | ||
'module', 'import', 'as', 'mod' | ||
'pub', 'abstract', 'ctx' |
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.
What does ctx
mean as a keyword?
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.
https://www.microsoft.com/en-us/research/uploads/prod/2023/07/fiptree-tr-v3.pdf
First class constructor contexts. You can start at section 3 of the paper, if you just want to get the high level idea of it. If you want to read the rest of the paper, and not just section 3 I would start at the beginning.
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.
Interesting. I see it is used only in the dev branch, so I hadn't spotted it before. Shouldn't this keyword also be mentioned in the parser and lexer definitions?
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.
Yeah, I'll have to look at the Haskell parser to see how it is done. It's used both in a type context, and as a keyword in the creation of a constructor context.
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.
Noticed two other things
Over at https://github.com/helix-editor/helix/pull/8727/files @mtoohey31 noticed that the |
I should have checked. For whatever reason I thought Koka had shortened module to mod with all of the other keywords that got shortened. My bad. |
869e701
to
c7fb71d
Compare
c7fb71d
to
9b2a7f7
Compare
Add fip fbip and tail keywords to documentation, spec and bison/yacc, as well as some documentation on named handlers.