|
7 | 7 |
|
8 | 8 |
|
9 | 9 | def format_const_statement(statement: Tree, context: Context) -> Outcome:
|
10 |
| - if len(statement.children) == 4: |
11 |
| - prefix = f"const {statement.children[1].value} = " |
12 |
| - elif len(statement.children) == 5: |
13 |
| - prefix = f"const {statement.children[1].value} := " |
14 |
| - elif len(statement.children) == 6: |
15 |
| - prefix = ( |
16 |
| - f"const {statement.children[1].value}: {statement.children[3].value} = " |
17 |
| - ) |
| 10 | + concrete_const_stmt = statement.children[0] |
| 11 | + handlers = { |
| 12 | + "const_assigned": _format_const_assigned_statement, |
| 13 | + "const_typed_assigned": _format_const_typed_assigned_statement, |
| 14 | + "const_inf": _format_const_inferred_statement, |
| 15 | + } |
| 16 | + return handlers[concrete_const_stmt.data](concrete_const_stmt, context) |
| 17 | + |
| 18 | + |
| 19 | +def _format_const_assigned_statement(statement: Tree, context: Context) -> Outcome: |
| 20 | + expression_context = ExpressionContext( |
| 21 | + f"const {statement.children[0].value} = ", |
| 22 | + get_line(statement), |
| 23 | + "", |
| 24 | + get_end_line(statement), |
| 25 | + ) |
| 26 | + return format_expression(statement.children[-1], expression_context, context) |
| 27 | + |
| 28 | + |
| 29 | +def _format_const_typed_assigned_statement( |
| 30 | + statement: Tree, context: Context |
| 31 | +) -> Outcome: |
| 32 | + expression_context = ExpressionContext( |
| 33 | + f"const {statement.children[0].value}: {statement.children[1].value} = ", |
| 34 | + get_line(statement), |
| 35 | + "", |
| 36 | + get_end_line(statement), |
| 37 | + ) |
| 38 | + return format_expression(statement.children[-1], expression_context, context) |
| 39 | + |
| 40 | + |
| 41 | +def _format_const_inferred_statement(statement: Tree, context: Context) -> Outcome: |
18 | 42 | expression_context = ExpressionContext(
|
19 |
| - prefix, get_line(statement), "", get_end_line(statement) |
| 43 | + f"const {statement.children[0].value} := ", |
| 44 | + get_line(statement), |
| 45 | + "", |
| 46 | + get_end_line(statement), |
20 | 47 | )
|
21 | 48 | return format_expression(statement.children[-1], expression_context, context)
|
0 commit comments