You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Gypsum has a lot of "magic" syntax -- things that seem simple to write (as long as you know how to write them), but are fairly ambiguous and are difficult to compile. It can be annoyingly difficult and unintuitive to fix syntax errors.
Lots of issues off the top of my head:
Layout analysis is too magical. I hate having braces and semicolons all over the place, but Python does a much better job interpreting indentation as blocks.
Gypsum classes are difficult to write because so much stuff needs to go on the first line. It's hard to break the lines in a way that satisfies layout analysis and makes sense.
Function and method calls without explicit argument lists are confusing. I'm trying to be too much like Scala here.
Function definitions should have an explicit parameter list, even if it's empty, to match calls.
Lambdas look weird if they don't have an explicit parameter list.
Parenthesized expressions may need to be treated differently by the compiler. This should be reflected in the AST. For example, a.b() should be interpreted as a method call or a closure call (depending on what b is), but (a.b)() is definitely a closure call.
The text was updated successfully, but these errors were encountered:
Gypsum has a lot of "magic" syntax -- things that seem simple to write (as long as you know how to write them), but are fairly ambiguous and are difficult to compile. It can be annoyingly difficult and unintuitive to fix syntax errors.
Lots of issues off the top of my head:
a.b()
should be interpreted as a method call or a closure call (depending on whatb
is), but(a.b)()
is definitely a closure call.The text was updated successfully, but these errors were encountered: