Skip to content

Commit

Permalink
Get rid of the '=>' arrow and use '->' everywhere instead.
Browse files Browse the repository at this point in the history
  • Loading branch information
alexrp committed Feb 19, 2023
1 parent b6ae575 commit 53f45a6
Show file tree
Hide file tree
Showing 10 changed files with 10 additions and 24 deletions.
1 change: 0 additions & 1 deletion doc/language/lexical-structure/punctuators.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ punctuator ::= '.' |
'::' |
';' |
'->' |
'=>' |
'@' |
'#' |
'?' |
Expand Down
2 changes: 1 addition & 1 deletion doc/language/syntactic-structure/expressions/call.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,6 @@ call-argument ::= expression
```ebnf
call-expression-try ::= '?' call-expression-try-catch?
call-expression-try-catch ::= 'catch' '{' call-expression-try-catch-arm (',' call-expression-try-catch-arm)* ','? '}'
call-expression-try-catch-arm ::= try-catch-pattern call-expression-try-catch-arm-guard? '=>' expression
call-expression-try-catch-arm ::= try-catch-pattern call-expression-try-catch-arm-guard? '->' expression
call-expression-try-catch-arm-guard ::= 'if' expression
```
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@

```ebnf
condition-expression ::= 'cond' '{' condition-expression-arm (',' condition-expression-arm)* ','? '}'
condition-expression-arm ::= expression '=>' expression
condition-expression-arm ::= expression '->' expression
```
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@

```ebnf
match-expression ::= 'match' expression '{' match-expression-arm (',' match-expression-arm)* ','? '}'
match-expression-arm ::= pattern match-expression-arm-guard? '=>' expression
match-expression-arm ::= pattern match-expression-arm-guard? '->' expression
match-expression-arm-guard ::= 'if' expression
```
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

```ebnf
receive-expression ::= 'recv' '{' receive-expression-arm (',' receive-expression-arm)* ','? '}' receive-expression-else?
receive-expression-arm ::= lower-identifier receive-parameter-list receive-expression-arm-guard? '=>' expression ';'
receive-expression-arm ::= lower-identifier receive-parameter-list receive-expression-arm-guard? '->' expression ';'
receive-expression-arm-guard ::= 'if' expression
receive-expression-else ::= 'else' block-expression
receive-parameter-list ::= '(' (receive-parameter (',' receive-parameter)*)? ')'
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Lambda Expression

```ebnf
lambda-expression ::= 'fn' lambda-parameter-list '=>' expression
lambda-expression ::= 'fn' lambda-parameter-list '->' expression
lambda-parameter-list ::= '(' (lambda-parameter (',' lambda-parameter)*)? ')'
lambda-parameter ::= attribute* lambda-parameter-binding
lambda-parameter-binding ::= lower-identifier |
Expand Down
4 changes: 1 addition & 3 deletions src/syntax/LanguageLexer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,6 @@ SyntaxTokenKind.Colon or
SyntaxTokenKind.ColonColon or
SyntaxTokenKind.Semicolon or
SyntaxTokenKind.MinusCloseAngle or
SyntaxTokenKind.EqualsCloseAngle or
SyntaxTokenKind.At or
SyntaxTokenKind.Hash or
SyntaxTokenKind.Question or
Expand Down Expand Up @@ -461,7 +460,6 @@ private void LexComment(SourceLocation location, ImmutableArray<SyntaxTrivia>.Bu
('!', '=') => SyntaxTokenKind.ExclamationEquals,
('<', '=') => SyntaxTokenKind.OpenAngleEquals,
('=', '=') => SyntaxTokenKind.EqualsEquals,
('=', '>') => SyntaxTokenKind.EqualsCloseAngle,
('=', _) => SyntaxTokenKind.Equals,
_ => default(SyntaxTokenKind?),
};
Expand Down Expand Up @@ -490,7 +488,7 @@ private void LexComment(SourceLocation location, ImmutableArray<SyntaxTrivia>.Bu
parts++;
}

// Handle remaining special operators and custom operators.
// Handle remaining special operators, and then custom operators.
return (parts, ch1, ch2) switch
{
(1, '<', _) => (location, SyntaxTokenKind.OpenAngle),
Expand Down
8 changes: 4 additions & 4 deletions src/syntax/LanguageParser.cs
Original file line number Diff line number Diff line change
Expand Up @@ -1406,7 +1406,7 @@ private LambdaExpressionSyntax ParseLambdaExpression()
{
var fn = Read();
var parms = ParseLambdaParameterList();
var arrow = Expect(SyntaxTokenKind.EqualsCloseAngle);
var arrow = Expect(SyntaxTokenKind.MinusCloseAngle);
var body = ParseExpression();

return new(fn, parms, arrow, body);
Expand Down Expand Up @@ -1470,7 +1470,7 @@ private ConditionExpressionSyntax ParseConditionExpression()
private ConditionExpressionArmSyntax ParseConditionExpressionArm()
{
var condition = ParseExpression();
var arrow = Expect(SyntaxTokenKind.EqualsCloseAngle);
var arrow = Expect(SyntaxTokenKind.MinusCloseAngle);
var body = ParseExpression();

return new(condition, arrow, body);
Expand All @@ -1496,7 +1496,7 @@ private ExpressionPatternArmSyntax ParseExpressionPatternArm()
{
var pat = ParsePattern();
var guard = ParseOptional(SyntaxTokenKind.IfKeyword, static @this => @this.ParseExpressionArmGuard());
var arrow = Expect(SyntaxTokenKind.EqualsCloseAngle);
var arrow = Expect(SyntaxTokenKind.MinusCloseAngle);
var body = ParseExpression();

return new(pat, guard, arrow, body);
Expand Down Expand Up @@ -1531,7 +1531,7 @@ private ReceiveExpressionArmSyntax ParseReceiveExpressionArm()
var name = ExpectCodeIdentifier();
var parms = ParseReceiveParameterList();
var guard = ParseOptional(SyntaxTokenKind.IfKeyword, static @this => @this.ParseExpressionArmGuard());
var arrow = Expect(SyntaxTokenKind.EqualsCloseAngle);
var arrow = Expect(SyntaxTokenKind.MinusCloseAngle);
var body = ParseExpression();

return new(name, parms, guard, arrow, body);
Expand Down
10 changes: 0 additions & 10 deletions src/syntax/SyntaxFacts.cs
Original file line number Diff line number Diff line change
Expand Up @@ -325,7 +325,6 @@ internal static string GetFriendlyName(SyntaxTokenKind kind)
SyntaxTokenKind.ColonColon => "'::'",
SyntaxTokenKind.Semicolon => "';'",
SyntaxTokenKind.MinusCloseAngle => "'->'",
SyntaxTokenKind.EqualsCloseAngle => "'=>'",
SyntaxTokenKind.At => "'@'",
SyntaxTokenKind.Hash => "'#'",
SyntaxTokenKind.Question => "'?'",
Expand Down Expand Up @@ -378,15 +377,6 @@ internal static string GetFriendlyName(SyntaxTokenKind kind)
SyntaxTokenKind.RealKeyword => "'real' keyword",
SyntaxTokenKind.RefKeyword => "'ref' keyword",
SyntaxTokenKind.StrKeyword => "'str' keyword",
SyntaxTokenKind.FriendKeyword => "'friend' keyword",
SyntaxTokenKind.MacroKeyword => "'macro' keyword",
SyntaxTokenKind.MetaKeyword => "'meta' keyword",
SyntaxTokenKind.PragmaKeyword => "'pragma' keyword",
SyntaxTokenKind.QuoteKeyword => "'quote' keyword",
SyntaxTokenKind.TryKeyword => "'try' keyword",
SyntaxTokenKind.UnquoteKeyword => "'unquote' keyword",
SyntaxTokenKind.WithKeyword => "'with' keyword",
SyntaxTokenKind.YieldKeyword => "'yield' keyword",
SyntaxTokenKind.UpperIdentifier => "uppercase identifier",
SyntaxTokenKind.LowerIdentifier => "lowercase identifier",
SyntaxTokenKind.DiscardIdentifier => "discard identifier",
Expand Down
1 change: 0 additions & 1 deletion src/syntax/Tree/SyntaxTokenKind.cs
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ public enum SyntaxTokenKind
ColonColon,
Semicolon,
MinusCloseAngle,
EqualsCloseAngle,
At,
Hash,
Question,
Expand Down

0 comments on commit 53f45a6

Please sign in to comment.