Code: Select all
Structure AsciiArray
a.a[0]
EndStructure
Define IsLetter.i
Define *IsLetter.AsciiArray = ?IsLetter
Define *IsLetterCharacter.Character
Macro IsLetterMacro(String)
IsLetter = 0
*IsLetterCharacter = @String
If *IsLetterCharacter\c < 128
IsLetter = *IsLetter\a[*IsLetterCharacter\c]
EndIf
EndMacro
DataSection
IsLetter:
Data.a 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
Data.a 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
Data.a 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
Data.a 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
Data.a 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
Data.a 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1
Data.a 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
Data.a 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0
EndDataSection
IsLetterMacro("a")
Debug IsLetter
IsLetterMacro("_")
Debug IsLetter
IsLetterMacro("ß")
Debug IsLetter
IsLetterMacro("1")
Debug IsLetter