Skip to content

Conversation

@Lut99
Copy link
Member

@Lut99 Lut99 commented Nov 4, 2024

This PR fixes the incorrect grammar rule that array indices can only follow array literals. Instead, it is modelled as a special kind of unary operator which follows its operand.

Fixes #29

@DanielVoogsgerd
Copy link
Member

I am missing precedence rules for unary operators, I think. Assuming left to right as a base rule. This would mean that !array[0] would fail for example

@Lut99
Copy link
Member Author

Lut99 commented Nov 5, 2024

I’d have to double-check, but I’m quite sure that, due an implementation quirk of the pratt parser we have, it actually matches any prefixed unary expressions first, and then it does binary & postfix unary. Which should result in the correct binding, in your example. But please double-check by finding out 😇

Not sure how to encode that in the grammar, though. Aren’t they included in the association & precedence tables?

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.

Branescript syntax does not support array indexing on identifiers.

3 participants