mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-10-05 22:02:55 +01:00
Support lexing and parsing positional params (#7651)
This implements lexing and parsing positional parameters such as `$0`.
This commit is contained in:
@@ -18,6 +18,12 @@ fn foo(bar: i64, baz: i64) {
|
||||
foo(baz, bar + baz);
|
||||
}
|
||||
|
||||
// --- with_positional_params.carbon
|
||||
|
||||
fn foo {
|
||||
foo($0, $42.0 + $86);
|
||||
}
|
||||
|
||||
// --- with_return_type.carbon
|
||||
|
||||
fn foo() -> f64 {
|
||||
@@ -116,6 +122,25 @@ fn TestRecoveryFromSpuriousEquals();
|
||||
// CHECK:STDOUT: ├─FunctionDefinition '}'
|
||||
// CHECK:STDOUT: ├─FileEnd ''
|
||||
// CHECK:STDOUT: (root)
|
||||
// CHECK:STDOUT: - filename: with_positional_params.carbon
|
||||
// CHECK:STDOUT: ╭─FileStart ''
|
||||
// CHECK:STDOUT: │ ╭─FunctionIntroducer 'fn'
|
||||
// CHECK:STDOUT: │ ├─IdentifierNameNotBeforeSignature 'foo'
|
||||
// CHECK:STDOUT: │ ╭─FunctionDefinitionStart '{'
|
||||
// CHECK:STDOUT: │ │ ╭─IdentifierNameExpr 'foo'
|
||||
// CHECK:STDOUT: │ │ ╭─CallExprStart '('
|
||||
// CHECK:STDOUT: │ │ ├─PositionalParamExpr '$0'
|
||||
// CHECK:STDOUT: │ │ ├─TupleLiteralComma ','
|
||||
// CHECK:STDOUT: │ │ │ ╭─PositionalParamExpr '$42'
|
||||
// CHECK:STDOUT: │ │ │ ├─IntLiteral '0'
|
||||
// CHECK:STDOUT: │ │ │ ╭─MemberAccessExpr '.'
|
||||
// CHECK:STDOUT: │ │ │ ├─PositionalParamExpr '$86'
|
||||
// CHECK:STDOUT: │ │ ├─InfixOperatorPlus '+'
|
||||
// CHECK:STDOUT: │ │ ╭─CallExpr ')'
|
||||
// CHECK:STDOUT: │ ├─ExprStatement ';'
|
||||
// CHECK:STDOUT: ├─FunctionDefinition '}'
|
||||
// CHECK:STDOUT: ├─FileEnd ''
|
||||
// CHECK:STDOUT: (root)
|
||||
// CHECK:STDOUT: - filename: with_return_type.carbon
|
||||
// CHECK:STDOUT: ╭─FileStart ''
|
||||
// CHECK:STDOUT: │ ╭─FunctionIntroducer 'fn'
|
||||
|
||||
Reference in New Issue
Block a user