Search code examples
javajls

How should I read the syntax descriptions in the JLS?


From the Java Language Specification (third edition), section 3.10.5:

StringLiteral:
        " StringCharactersopt "

StringCharacters:
        StringCharacter
        StringCharacters StringCharacter

StringCharacter:
        InputCharacter but not " or \
        EscapeSequence

Can someone please help me understand this syntax pattern? What could xx: " xxxopt" mean?


Solution

  • It means a StringLiteral is a double-quote, an optional StringCharacters token, and a double quote. "opt" means optional.

    StringCharacters is defined as one or more StringCharacter tokens.

    StringCharacter is either an InputCharacter (defined elsewhere) except for a double-quote or a backslach; or an EscapeSequence (also defined elsewhere)