@@ -2,7 +2,6 @@ import { NonterminalKind } from '@nomicfoundation/slang/cst';
22import { doc } from 'prettier' ;
33import { printSeparatedList } from '../slang-printers/print-separated-list.js' ;
44import { printIndentedGroupOrSpacedDocument } from '../slang-printers/print-indented-group-or-spaced-document.js' ;
5- import { printVariant } from '../slang-printers/print-variant.js' ;
65import { extractVariant } from '../slang-utils/extract-variant.js' ;
76import { SlangNode } from './SlangNode.js' ;
87import { ForStatementInitialization } from './ForStatementInitialization.js' ;
@@ -20,9 +19,9 @@ const { line } = doc.builders;
2019export class ForStatement extends SlangNode {
2120 readonly kind = NonterminalKind . ForStatement ;
2221
23- initialization : ForStatementInitialization ;
22+ initialization : ForStatementInitialization [ 'variant' ] ;
2423
25- condition : ForStatementCondition ;
24+ condition : ForStatementCondition [ 'variant' ] ;
2625
2726 iterator ?: Expression [ 'variant' ] ;
2827
@@ -31,11 +30,12 @@ export class ForStatement extends SlangNode {
3130 constructor ( ast : ast . ForStatement , options : ParserOptions < AstNode > ) {
3231 super ( ast ) ;
3332
34- this . initialization = new ForStatementInitialization (
35- ast . initialization ,
36- options
33+ this . initialization = extractVariant (
34+ new ForStatementInitialization ( ast . initialization , options )
35+ ) ;
36+ this . condition = extractVariant (
37+ new ForStatementCondition ( ast . condition , options )
3738 ) ;
38- this . condition = new ForStatementCondition ( ast . condition , options ) ;
3939 if ( ast . iterator ) {
4040 this . iterator = extractVariant ( new Expression ( ast . iterator , options ) ) ;
4141 }
@@ -50,8 +50,8 @@ export class ForStatement extends SlangNode {
5050 }
5151
5252 print ( path : AstPath < ForStatement > , print : PrintFunction ) : Doc {
53- const initialization = path . call ( printVariant ( print ) , 'initialization' ) ;
54- const condition = path . call ( printVariant ( print ) , 'condition' ) ;
53+ const initialization = path . call ( print , 'initialization' ) ;
54+ const condition = path . call ( print , 'condition' ) ;
5555 const iterator = path . call ( print , 'iterator' ) ;
5656
5757 return [
0 commit comments