%%%
%% Section 3.7: Comments
%%
%% @author Martin Bravenboer <martin.bravenboer@gmail.com>
%%%
module languages/java-15/lexical/Comments
imports
languages/java-15/lexical/LineTerminators
exports
sorts
Comment
EOLCommentChars
CommentPart
UnicodeEscape
BlockCommentChars
Asterisk
EscEscChar
EscChar
lexical syntax
Comment -> LAYOUT
"//" EOLCommentChars LineTerminator -> Comment
~[\n\r]* -> EOLCommentChars
"/*" CommentPart* "*/" -> Comment
"/**" CommentPart* "*/" -> Comment
"/**/" -> Comment %% Strange javadoc comment
BlockCommentChars -> CommentPart
EscChar -> CommentPart
EscEscChar -> CommentPart
Asterisk -> CommentPart
UnicodeEscape -> CommentPart
~[\*\\]+ -> BlockCommentChars
"*" -> Asterisk
"\\\\" -> EscEscChar
"\\" -> EscChar
"\\" [u]+ [0-9a-fA-F] [0-9a-fA-F] [0-9a-fA-F] [0-9a-fA-F] -> UnicodeEscape
lexical restrictions
"/**" -/- [\/]
"/*" -/- [\*]
Asterisk -/- [\/]
EscChar -/- [\\u]
BlockCommentChars -/- ~[\*\\]
EOLCommentChars -/- ~[\n\13]
context-free restrictions
LAYOUT? -/- [\/].[\*]
LAYOUT? -/- [\/].[\/]