Skip to content

Commit 8b7763e

Browse files
committed
adding a printVariant helper
1 parent 9b7d940 commit 8b7763e

19 files changed

Lines changed: 53 additions & 52 deletions

src/slang-nodes/ConstructorAttribute.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { NonterminalKind, TerminalNode } from '@nomicfoundation/slang/cst';
2+
import { printVariant } from '../slang-printers/print-variant.js';
23
import { SlangNode } from './SlangNode.js';
34
import { ModifierInvocation } from './ModifierInvocation.js';
45

@@ -25,8 +26,6 @@ export class ConstructorAttribute extends SlangNode {
2526
}
2627

2728
print(path: AstPath<ConstructorAttribute>, print: PrintFunction): Doc {
28-
return typeof this.variant === 'string'
29-
? this.variant
30-
: path.call(print, 'variant');
29+
return printVariant(this, path, print);
3130
}
3231
}

src/slang-nodes/ElementaryType.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { NonterminalKind, TerminalNode } from '@nomicfoundation/slang/cst';
2+
import { printVariant } from '../slang-printers/print-variant.js';
23
import { SlangNode } from './SlangNode.js';
34
import { AddressType } from './AddressType.js';
45

@@ -24,8 +25,6 @@ export class ElementaryType extends SlangNode {
2425
}
2526

2627
print(path: AstPath<ElementaryType>, print: PrintFunction): Doc {
27-
return typeof this.variant === 'string'
28-
? this.variant
29-
: path.call(print, 'variant');
28+
return printVariant(this, path, print);
3029
}
3130
}

src/slang-nodes/FallbackFunctionAttribute.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { NonterminalKind, TerminalNode } from '@nomicfoundation/slang/cst';
2+
import { printVariant } from '../slang-printers/print-variant.js';
23
import { SlangNode } from './SlangNode.js';
34
import { ModifierInvocation } from './ModifierInvocation.js';
45
import { OverrideSpecifier } from './OverrideSpecifier.js';
@@ -43,8 +44,6 @@ export class FallbackFunctionAttribute extends SlangNode {
4344
}
4445

4546
print(path: AstPath<FallbackFunctionAttribute>, print: PrintFunction): Doc {
46-
return typeof this.variant === 'string'
47-
? this.variant
48-
: path.call(print, 'variant');
47+
return printVariant(this, path, print);
4948
}
5049
}

src/slang-nodes/ForStatementCondition.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { NonterminalKind, TerminalNode } from '@nomicfoundation/slang/cst';
2+
import { printVariant } from '../slang-printers/print-variant.js';
23
import { SlangNode } from './SlangNode.js';
34
import { ExpressionStatement } from './ExpressionStatement.js';
45

@@ -25,8 +26,6 @@ export class ForStatementCondition extends SlangNode {
2526
}
2627

2728
print(path: AstPath<ForStatementCondition>, print: PrintFunction): Doc {
28-
return typeof this.variant === 'string'
29-
? this.variant
30-
: path.call(print, 'variant');
29+
return printVariant(this, path, print);
3130
}
3231
}

src/slang-nodes/ForStatementInitialization.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { NonterminalKind, TerminalNode } from '@nomicfoundation/slang/cst';
2+
import { printVariant } from '../slang-printers/print-variant.js';
23
import { SlangNode } from './SlangNode.js';
34
import { ExpressionStatement } from './ExpressionStatement.js';
45
import { VariableDeclarationStatement } from './VariableDeclarationStatement.js';
@@ -55,8 +56,6 @@ export class ForStatementInitialization extends SlangNode {
5556
}
5657

5758
print(path: AstPath<ForStatementInitialization>, print: PrintFunction): Doc {
58-
return typeof this.variant === 'string'
59-
? this.variant
60-
: path.call(print, 'variant');
59+
return printVariant(this, path, print);
6160
}
6261
}

src/slang-nodes/FunctionAttribute.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { NonterminalKind, TerminalNode } from '@nomicfoundation/slang/cst';
2+
import { printVariant } from '../slang-printers/print-variant.js';
23
import { SlangNode } from './SlangNode.js';
34
import { ModifierInvocation } from './ModifierInvocation.js';
45
import { OverrideSpecifier } from './OverrideSpecifier.js';
@@ -40,8 +41,6 @@ export class FunctionAttribute extends SlangNode {
4041
}
4142

4243
print(path: AstPath<FunctionAttribute>, print: PrintFunction): Doc {
43-
return typeof this.variant === 'string'
44-
? this.variant
45-
: path.call(print, 'variant');
44+
return printVariant(this, path, print);
4645
}
4746
}

src/slang-nodes/FunctionBody.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { NonterminalKind, TerminalNode } from '@nomicfoundation/slang/cst';
2+
import { printVariant } from '../slang-printers/print-variant.js';
23
import { SlangNode } from './SlangNode.js';
34
import { Block } from './Block.js';
45

@@ -25,8 +26,6 @@ export class FunctionBody extends SlangNode {
2526
}
2627

2728
print(path: AstPath<FunctionBody>, print: PrintFunction): Doc {
28-
return typeof this.variant === 'string'
29-
? this.variant
30-
: path.call(print, 'variant');
29+
return printVariant(this, path, print);
3130
}
3231
}

src/slang-nodes/ModifierAttribute.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { NonterminalKind, TerminalNode } from '@nomicfoundation/slang/cst';
2+
import { printVariant } from '../slang-printers/print-variant.js';
23
import { SlangNode } from './SlangNode.js';
34
import { OverrideSpecifier } from './OverrideSpecifier.js';
45

@@ -24,8 +25,6 @@ export class ModifierAttribute extends SlangNode {
2425
}
2526

2627
print(path: AstPath<ModifierAttribute>, print: PrintFunction): Doc {
27-
return typeof this.variant === 'string'
28-
? this.variant
29-
: path.call(print, 'variant');
28+
return printVariant(this, path, print);
3029
}
3130
}

src/slang-nodes/ReceiveFunctionAttribute.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { NonterminalKind, TerminalNode } from '@nomicfoundation/slang/cst';
2+
import { printVariant } from '../slang-printers/print-variant.js';
23
import { SlangNode } from './SlangNode.js';
34
import { ModifierInvocation } from './ModifierInvocation.js';
45
import { OverrideSpecifier } from './OverrideSpecifier.js';
@@ -43,8 +44,6 @@ export class ReceiveFunctionAttribute extends SlangNode {
4344
}
4445

4546
print(path: AstPath<ReceiveFunctionAttribute>, print: PrintFunction): Doc {
46-
return typeof this.variant === 'string'
47-
? this.variant
48-
: path.call(print, 'variant');
47+
return printVariant(this, path, print);
4948
}
5049
}

src/slang-nodes/StateVariableAttribute.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { NonterminalKind, TerminalNode } from '@nomicfoundation/slang/cst';
2+
import { printVariant } from '../slang-printers/print-variant.js';
23
import { SlangNode } from './SlangNode.js';
34
import { OverrideSpecifier } from './OverrideSpecifier.js';
45

@@ -24,8 +25,6 @@ export class StateVariableAttribute extends SlangNode {
2425
}
2526

2627
print(path: AstPath<StateVariableAttribute>, print: PrintFunction): Doc {
27-
return typeof this.variant === 'string'
28-
? this.variant
29-
: path.call(print, 'variant');
28+
return printVariant(this, path, print);
3029
}
3130
}

0 commit comments

Comments
 (0)