%%%
%% Section 3.8: Identifiers
%%
%% @author Martin Bravenboer <martin.bravenboer@gmail.com>
%%%
module languages/java-15/lexical/Identifiers
imports
languages/java-15/lexical/Keywords
exports
sorts
Id
ID
context-free syntax
ID -> Id {cons("Id")}
lexical syntax
[A-Za-z\_\$][A-Za-z0-9\_\$]* -> ID
Keyword -> ID {reject}
"true" -> ID {reject}
"false" -> ID {reject}
"null" -> ID {reject}
lexical restrictions
ID -/- [a-zA-Z0-9\_\$]