Issue Kind
Parse of Valid Source Produced Invalid Syntax Tree
Source Code
UIColor(white: 216.0/255.0, alpha: 44.0/255.0)
Description
The Swift Parser thinks this is a regex literal: regexLiteral("/255.0, alpha: 44.0/")
Here are the full parse trees from the 5.7 release and the Swift Parser:
SwiftSyntax @ 0.50700.0 :
▿ SwiftSyntax.SourceFileSyntax
▿ statements: SwiftSyntax.CodeBlockItemListSyntax
▿ SwiftSyntax.CodeBlockItemSyntax
▿ item: SwiftSyntax.FunctionCallExprSyntax
▿ calledExpression: SwiftSyntax.IdentifierExprSyntax
▿ identifier: SwiftSyntax.TokenSyntax
- text: "UIColor"
▿ leadingTrivia: SwiftSyntax.Trivia
- pieces: 0 elements
▿ trailingTrivia: SwiftSyntax.Trivia
- pieces: 0 elements
▿ tokenKind: SwiftSyntax.TokenKind.identifier
- identifier: "UIColor"
- declNameArguments: nil
▿ leftParen: Optional(SwiftSyntax.TokenSyntax)
▿ some: SwiftSyntax.TokenSyntax
- text: "("
▿ leadingTrivia: SwiftSyntax.Trivia
- pieces: 0 elements
▿ trailingTrivia: SwiftSyntax.Trivia
- pieces: 0 elements
- tokenKind: SwiftSyntax.TokenKind.leftParen
▿ argumentList: SwiftSyntax.TupleExprElementListSyntax
▿ SwiftSyntax.TupleExprElementSyntax
▿ label: Optional(SwiftSyntax.TokenSyntax)
▿ some: SwiftSyntax.TokenSyntax
- text: "white"
▿ leadingTrivia: SwiftSyntax.Trivia
- pieces: 0 elements
▿ trailingTrivia: SwiftSyntax.Trivia
- pieces: 0 elements
▿ tokenKind: SwiftSyntax.TokenKind.identifier
- identifier: "white"
▿ colon: Optional(SwiftSyntax.TokenSyntax)
▿ some: SwiftSyntax.TokenSyntax
- text: ":"
▿ leadingTrivia: SwiftSyntax.Trivia
- pieces: 0 elements
▿ trailingTrivia: SwiftSyntax.Trivia
▿ pieces: 1 element
▿ TriviaPiece
- spaces: 1
- tokenKind: SwiftSyntax.TokenKind.colon
▿ expression: SwiftSyntax.SequenceExprSyntax
▿ elements: SwiftSyntax.ExprListSyntax
▿ SwiftSyntax.ExprSyntax
▿ floatingDigits: SwiftSyntax.TokenSyntax
- text: "216.0"
▿ leadingTrivia: SwiftSyntax.Trivia
- pieces: 0 elements
▿ trailingTrivia: SwiftSyntax.Trivia
- pieces: 0 elements
▿ tokenKind: SwiftSyntax.TokenKind.floatingLiteral
- floatingLiteral: "216.0"
▿ SwiftSyntax.ExprSyntax
▿ operatorToken: SwiftSyntax.TokenSyntax
- text: "/"
▿ leadingTrivia: SwiftSyntax.Trivia
- pieces: 0 elements
▿ trailingTrivia: SwiftSyntax.Trivia
- pieces: 0 elements
▿ tokenKind: SwiftSyntax.TokenKind.unspacedBinaryOperator
- unspacedBinaryOperator: "/"
▿ SwiftSyntax.ExprSyntax
▿ floatingDigits: SwiftSyntax.TokenSyntax
- text: "255.0"
▿ leadingTrivia: SwiftSyntax.Trivia
- pieces: 0 elements
▿ trailingTrivia: SwiftSyntax.Trivia
- pieces: 0 elements
▿ tokenKind: SwiftSyntax.TokenKind.floatingLiteral
- floatingLiteral: "255.0"
▿ trailingComma: Optional(SwiftSyntax.TokenSyntax)
▿ some: SwiftSyntax.TokenSyntax
- text: ","
▿ leadingTrivia: SwiftSyntax.Trivia
- pieces: 0 elements
▿ trailingTrivia: SwiftSyntax.Trivia
▿ pieces: 1 element
▿ TriviaPiece
- spaces: 1
- tokenKind: SwiftSyntax.TokenKind.comma
▿ SwiftSyntax.TupleExprElementSyntax
▿ label: Optional(SwiftSyntax.TokenSyntax)
▿ some: SwiftSyntax.TokenSyntax
- text: "alpha"
▿ leadingTrivia: SwiftSyntax.Trivia
- pieces: 0 elements
▿ trailingTrivia: SwiftSyntax.Trivia
- pieces: 0 elements
▿ tokenKind: SwiftSyntax.TokenKind.identifier
- identifier: "alpha"
▿ colon: Optional(SwiftSyntax.TokenSyntax)
▿ some: SwiftSyntax.TokenSyntax
- text: ":"
▿ leadingTrivia: SwiftSyntax.Trivia
- pieces: 0 elements
▿ trailingTrivia: SwiftSyntax.Trivia
▿ pieces: 1 element
▿ TriviaPiece
- spaces: 1
- tokenKind: SwiftSyntax.TokenKind.colon
▿ expression: SwiftSyntax.SequenceExprSyntax
▿ elements: SwiftSyntax.ExprListSyntax
▿ SwiftSyntax.ExprSyntax
▿ floatingDigits: SwiftSyntax.TokenSyntax
- text: "44.0"
▿ leadingTrivia: SwiftSyntax.Trivia
- pieces: 0 elements
▿ trailingTrivia: SwiftSyntax.Trivia
- pieces: 0 elements
▿ tokenKind: SwiftSyntax.TokenKind.floatingLiteral
- floatingLiteral: "44.0"
▿ SwiftSyntax.ExprSyntax
▿ operatorToken: SwiftSyntax.TokenSyntax
- text: "/"
▿ leadingTrivia: SwiftSyntax.Trivia
- pieces: 0 elements
▿ trailingTrivia: SwiftSyntax.Trivia
- pieces: 0 elements
▿ tokenKind: SwiftSyntax.TokenKind.unspacedBinaryOperator
- unspacedBinaryOperator: "/"
▿ SwiftSyntax.ExprSyntax
▿ floatingDigits: SwiftSyntax.TokenSyntax
- text: "255.0"
▿ leadingTrivia: SwiftSyntax.Trivia
- pieces: 0 elements
▿ trailingTrivia: SwiftSyntax.Trivia
- pieces: 0 elements
▿ tokenKind: SwiftSyntax.TokenKind.floatingLiteral
- floatingLiteral: "255.0"
- trailingComma: nil
▿ rightParen: Optional(SwiftSyntax.TokenSyntax)
▿ some: SwiftSyntax.TokenSyntax
- text: ")"
▿ leadingTrivia: SwiftSyntax.Trivia
- pieces: 0 elements
▿ trailingTrivia: SwiftSyntax.Trivia
- pieces: 0 elements
- tokenKind: SwiftSyntax.TokenKind.rightParen
- trailingClosure: nil
- additionalTrailingClosures: nil
- semicolon: nil
- errorTokens: nil
▿ eofToken: SwiftSyntax.TokenSyntax
- text: ""
▿ leadingTrivia: SwiftSyntax.Trivia
- pieces: 0 elements
▿ trailingTrivia: SwiftSyntax.Trivia
- pieces: 0 elements
- tokenKind: SwiftSyntax.TokenKind.eof
SwiftSyntax @ 598ff22 :
▿ SourceFileSyntax
- unexpectedBeforeStatements: nil
▿ statements: CodeBlockItemListSyntax
▿ CodeBlockItemSyntax
- unexpectedBeforeItem: nil
▿ item: FunctionCallExprSyntax
- unexpectedBeforeCalledExpression: nil
▿ calledExpression: IdentifierExprSyntax
- unexpectedBeforeIdentifier: nil
▿ identifier: identifier("UIColor")
- text: "UIColor"
▿ leadingTrivia: []
- pieces: 0 elements
▿ trailingTrivia: []
- pieces: 0 elements
▿ tokenKind: SwiftSyntax.TokenKind.identifier
- identifier: "UIColor"
- unexpectedBetweenIdentifierAndDeclNameArguments: nil
- declNameArguments: nil
- unexpectedBetweenCalledExpressionAndLeftParen: nil
▿ leftParen: Optional(leftParen)
▿ some: leftParen
- text: "("
▿ leadingTrivia: []
- pieces: 0 elements
▿ trailingTrivia: []
- pieces: 0 elements
- tokenKind: SwiftSyntax.TokenKind.leftParen
- unexpectedBetweenLeftParenAndArgumentList: nil
▿ argumentList: TupleExprElementListSyntax
▿ TupleExprElementSyntax
- unexpectedBeforeLabel: nil
▿ label: Optional(identifier("white"))
▿ some: identifier("white")
- text: "white"
▿ leadingTrivia: []
- pieces: 0 elements
▿ trailingTrivia: []
- pieces: 0 elements
▿ tokenKind: SwiftSyntax.TokenKind.identifier
- identifier: "white"
- unexpectedBetweenLabelAndColon: nil
▿ colon: Optional(colon)
▿ some: colon
- text: ":"
▿ leadingTrivia: []
- pieces: 0 elements
▿ trailingTrivia: spaces(1)
▿ pieces: 1 element
▿ spaces(1)
- spaces: 1
- tokenKind: SwiftSyntax.TokenKind.colon
- unexpectedBetweenColonAndExpression: nil
▿ expression: FloatLiteralExprSyntax
- unexpectedBeforeFloatingDigits: nil
▿ floatingDigits: floatingLiteral("216.0")
- text: "216.0"
▿ leadingTrivia: []
- pieces: 0 elements
▿ trailingTrivia: []
- pieces: 0 elements
▿ tokenKind: SwiftSyntax.TokenKind.floatingLiteral
- floatingLiteral: "216.0"
- unexpectedBetweenExpressionAndTrailingComma: nil
- trailingComma: nil
▿ unexpectedBetweenArgumentListAndRightParen: Optional(UnexpectedNodesSyntax)
▿ some: UnexpectedNodesSyntax
▿ regexLiteral("/255.0, alpha: 44.0/")
- text: "/255.0, alpha: 44.0/"
▿ leadingTrivia: []
- pieces: 0 elements
▿ trailingTrivia: []
- pieces: 0 elements
▿ tokenKind: SwiftSyntax.TokenKind.regexLiteral
- regexLiteral: "/255.0, alpha: 44.0/"
▿ floatingLiteral("255.0")
- text: "255.0"
▿ leadingTrivia: []
- pieces: 0 elements
▿ trailingTrivia: []
- pieces: 0 elements
▿ tokenKind: SwiftSyntax.TokenKind.floatingLiteral
- floatingLiteral: "255.0"
▿ rightParen: Optional(rightParen)
▿ some: rightParen
- text: ")"
▿ leadingTrivia: []
- pieces: 0 elements
▿ trailingTrivia: []
- pieces: 0 elements
- tokenKind: SwiftSyntax.TokenKind.rightParen
- unexpectedBetweenRightParenAndTrailingClosure: nil
- trailingClosure: nil
- unexpectedBetweenTrailingClosureAndAdditionalTrailingClosures: nil
- additionalTrailingClosures: nil
- unexpectedBetweenItemAndSemicolon: nil
- semicolon: nil
- unexpectedBetweenSemicolonAndErrorTokens: nil
- errorTokens: nil
- unexpectedBetweenStatementsAndEOFToken: nil
▿ eofToken: eof
- text: ""
▿ leadingTrivia: []
- pieces: 0 elements
▿ trailingTrivia: []
- pieces: 0 elements
- tokenKind: SwiftSyntax.TokenKind.eof
Issue Kind
Parse of Valid Source Produced Invalid Syntax Tree
Source Code
Description
The Swift Parser thinks this is a regex literal:
regexLiteral("/255.0, alpha: 44.0/")Here are the full parse trees from the 5.7 release and the Swift Parser:
SwiftSyntax @ 0.50700.0 :
SwiftSyntax @ 598ff22 :