@@ -606,6 +606,26 @@ public void GenerateCode(SourceProductionContext context)
606606 IdentifierName ( "right" ) ,
607607 IdentifierName ( "Value" ) ) ) ) ) ) )
608608 . WithSemicolonToken ( Token ( SyntaxKind . SemicolonToken ) ) ,
609+
610+ OperatorDeclaration ( IdentifierName ( quantity . Name ) , Token ( SyntaxKind . PercentToken ) )
611+ . WithModifiers ( TokenList ( Token ( SyntaxKind . PublicKeyword ) , Token ( SyntaxKind . StaticKeyword ) ) )
612+ . WithAttributeLists ( [ GeneratedCodeAttribute ( typeof ( QuantityStructGenerator ) ) ] )
613+ . WithParameterList ( ParameterList (
614+ [
615+ Parameter ( Identifier ( "left" ) ) . WithType ( IdentifierName ( quantity . Name ) ) ,
616+ Parameter ( Identifier ( "right" ) ) . WithType ( IdentifierName ( quantity . Name ) )
617+ ] ) )
618+ . WithExpressionBody ( ArrowExpressionClause ( CastExpression ( IdentifierName ( quantity . Name ) ,
619+ ParenthesizedExpression ( BinaryExpression ( SyntaxKind . ModuloExpression ,
620+ MemberAccessExpression (
621+ SyntaxKind . SimpleMemberAccessExpression ,
622+ IdentifierName ( "left" ) ,
623+ IdentifierName ( "Value" ) ) ,
624+ MemberAccessExpression (
625+ SyntaxKind . SimpleMemberAccessExpression ,
626+ IdentifierName ( "right" ) ,
627+ IdentifierName ( "Value" ) ) ) ) ) ) )
628+ . WithSemicolonToken ( Token ( SyntaxKind . SemicolonToken ) ) ,
609629
610630 OperatorDeclaration ( IdentifierName ( quantity . Name ) , Token ( SyntaxKind . SlashToken ) )
611631 . WithModifiers ( TokenList ( Token ( SyntaxKind . PublicKeyword ) ,
0 commit comments