pub fn expression_to_string(expr: &LicenseExpression) -> String
String representation of the expression
Parentheses are added when needed to preserve semantic meaning based on operator precedence (WITH > AND > OR). This matches the Python license-expression library behavior. Convert a license expression to its string representation.