-
Notifications
You must be signed in to change notification settings - Fork 4.3k
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
Add QuickBASIC #7080
Add QuickBASIC #7080
Conversation
1ec7328
to
1068e73
Compare
Related issue: #3216 |
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.
See inline comment
@lildude due to the potential interactions between my 2 other open PRs, would it be OK if I rebase them onto one another such that this one is at the top (while still being separate PRs)? This would be better for testing while this PR is being worked on and it should avoid any conflicts at merge time. |
Due to the similarities between QuickBASIC and FreeBASIC, I'm going to need to improve FreeBASIC's heuristics as well. I have a few improvements ready to be committed, but I should rebase on #7072 since it also make changes for FreeBASIC. |
Possibly. I'm not sure how well it'll work with the merge queue that we use. |
ce40350
to
b20ff57
Compare
b20ff57
to
4e618b9
Compare
Not well it seems. Can you please address the conflicts. |
Done. |
Description
This PR adds QuickBASIC (QB) as a langauge for the
.bas
extension.Note that there exists a modern version of QuickBASIC known as QB64 that is still compatible with Classic QB. Since Classic QB and QB64 haven't reached the popularity threshold by their own at the moment, I've kept them combined, but we could separate them in the future if popularity justifies it.
The grammar used is the one for QB64, since it is also compatible with Classic QB.
Regarding heuristics, due to the similarities between FreeBASIC and QuickBASIC, this PR improves FreeBASIC's heuristics as well as adding new rules for QuickBASIC to make sure they are distinguished properly. Note that heuristics for QuickBASIC should always appear after FreeBASIC to work correctly.
FreeBASIC:
dim as name1 DataType
instead ofdim name1 as DataType
)QuickBASIC:
Checklist:
#008080