core :: String :: is_valid_macro_name
self
a valid macro identifier?A macro identifier is valid if:
starts with an uppercase letter
contains only numers, uppercase letters or '_'
assert "NAME".is_valid_macro_name assert "FIRST_NAME".is_valid_macro_name assert "BLOCK1".is_valid_macro_name
assert not "1BLOCK".is_valid_macro_name assert not "_BLOCK".is_valid_macro_name assert not "FIRST NAME".is_valid_macro_name assert not "name".is_valid_macro_name
# Is `self` a valid macro identifier?
#
# A macro identifier is valid if:
#
# * starts with an uppercase letter
# * contains only numers, uppercase letters or '_'
#
# # valid
# assert "NAME".is_valid_macro_name
# assert "FIRST_NAME".is_valid_macro_name
# assert "BLOCK1".is_valid_macro_name
# # invalid
# assert not "1BLOCK".is_valid_macro_name
# assert not "_BLOCK".is_valid_macro_name
# assert not "FIRST NAME".is_valid_macro_name
# assert not "name".is_valid_macro_name
fun is_valid_macro_name: Bool do
if not first.is_upper then return false
for c in self do
if not c.is_upper and c != '_' and not c.is_digit then return false
end
return true
end
lib/template/macro.nit:336,2--358,4