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

Parser rewrite #274

Merged
merged 156 commits into from
Jan 20, 2024
Merged

Parser rewrite #274

merged 156 commits into from
Jan 20, 2024

Conversation

Kampfkarren
Copy link
Owner

@Kampfkarren Kampfkarren commented Apr 5, 2023

Won't be merged into main until I get help with other parsers.

JohnnyMorganz and others added 22 commits October 15, 2023 11:55
* Initial start of Luau parsers

* Fix compilation

* Parse compound assignments

* Parse context sensitive keywords

* Fix parse continue last stmt

* Make "luau" and "roblox" feature flag interchangable

* Parse luau binary numbers and num separators

* Add ->, |, &, ? to Luau lexer

* Parse generic types and type declaration

* Function and Table type parsing

* Parse type specifiers in function body

* Update snapshots for associativity

We fix the associativity of type union / intersection.
They should be left associative, when we originally had them as right associative

* Parse if expressions and type assertions

* Parse generic type lists and type packs

* Fix compilation

* Parse varargs, return type packs, and indexed type info

* Update snapshot for associativitiy

* Update snapshot for variadic vs variadicpack - i don't know why variadicpack was added?

* Allow generic type pack annotations on varargs

* Update snapshots - turns out we had some bugs here!

* Review comments

* Add test case for intersection precedence
Fixes #286

* Add test case for variadic types in a generic type

Fixes #285

* Add test case for generic types with no parameters of a module

Fixes #275

* Update snapshots

* Reformat parsers

* Fix roblox parser fail test cases

* Construct error token in generic declaration no name

* Error generic types come before generic type packs

* Accept fail case snapshots

* Don't throw error on lexer moved

* Add error when function return type uses `->`

* Improve error message for generic default not type pack and add test

* Do not allow single vararg wrapped in parens in func type parsing

* Recover from no right brace in type table

* Ignore extra nodes in snapshot yamls

* Cleanup rewrite todos

* Interpolated string support

* Add test case for #290

* update

* Apply suggestions from code review

Co-authored-by: Chris Chang <[email protected]>

* Simplify interpolated string parser

---------

Co-authored-by: Kampfkarren <[email protected]>
Co-authored-by: Chris Chang <[email protected]>
@Kampfkarren Kampfkarren marked this pull request as ready for review January 20, 2024 21:24
@Kampfkarren Kampfkarren merged commit 1a658d9 into main Jan 20, 2024
2 checks passed
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