11import { NonterminalKind } from '@nomicfoundation/slang/cst' ;
22import { doc } from 'prettier' ;
33import { printVariant } from '../slang-printers/print-variant.js' ;
4+ import { extractVariant } from '../slang-utils/extract-variant.js' ;
45import { SlangNode } from './SlangNode.js' ;
56import { YulPaths } from './YulPaths.js' ;
67import { YulAssignmentOperator } from './YulAssignmentOperator.js' ;
@@ -18,7 +19,7 @@ export class YulVariableAssignmentStatement extends SlangNode {
1819
1920 variables : YulPaths ;
2021
21- assignment : YulAssignmentOperator ;
22+ assignment : YulAssignmentOperator [ 'variant' ] ;
2223
2324 expression : YulExpression ;
2425
@@ -29,7 +30,7 @@ export class YulVariableAssignmentStatement extends SlangNode {
2930 super ( ast ) ;
3031
3132 this . variables = new YulPaths ( ast . variables ) ;
32- this . assignment = new YulAssignmentOperator ( ast . assignment ) ;
33+ this . assignment = extractVariant ( new YulAssignmentOperator ( ast . assignment ) ) ;
3334 this . expression = new YulExpression ( ast . expression , options ) ;
3435
3536 this . updateMetadata ( this . variables , this . assignment , this . expression ) ;
@@ -41,7 +42,7 @@ export class YulVariableAssignmentStatement extends SlangNode {
4142 ) : Doc {
4243 return join ( ' ' , [
4344 path . call ( print , 'variables' ) ,
44- path . call ( printVariant ( print ) , 'assignment' ) ,
45+ path . call ( print , 'assignment' ) ,
4546 path . call ( printVariant ( print ) , 'expression' )
4647 ] ) ;
4748 }
0 commit comments