		save
		listing off   ; kein Listing über diesen File

;****************************************************************************
;*                                                                          *
;*   AS 1.40 - Datei CTYPE.INC                                              *
;*   								            *
;*   Sinn : enthält Funktionen zur Untersuchung von Zeichen                 *
;* 									    *
;*   letzte Änderungen : 20. 3.1993                                         *
;*                       11. 9.1993 Meldung nur im 1.Pass                   *
;*                       19. 2.1994 Funktionen vervollständigt,             *
;*                                  isascii dem C-Standard angepaßt         *
;*									    *
;* ACHTUNG!  isalpha berücksichtigt keine landesspezifischen Sonderzeichen! *
;*									    *
;****************************************************************************

		ifndef   ctypeinc       ; verhindert Mehrfacheinbindung

ctypeinc        equ      1

		if	 mompass=1
		 message "Standardzeichenfunktionen (C) 1993 Alfred Arnold"
		endif

;----------------------------------------------------------------------------
; liefert TRUE, falls das Argument eine Ziffer ist:

isdigit         function ch,(ch>='0')&&(ch<='9')

;----------------------------------------------------------------------------
; liefert TRUE, falls das Argument eine hexadezimale Ziffer ist:

isxdigit	function ch,(isdigit(ch))||((toupper(ch)>='A')&&(toupper(ch)<='F'))

;----------------------------------------------------------------------------
; liefert TRUE, falls das Argument im Bereich normaler ASCII-Zeichen liegt:

isascii         function ch,(ch>=0)&&(ch<128)

;----------------------------------------------------------------------------
; liefert TRUE, falls das Argument ein Großbuchstabe ist:

isupper		function ch,(ch>='A')&&(ch<='Z')

;----------------------------------------------------------------------------
; liefert TRUE, falls das Argument ein Kleinbuchstabe ist:

islower		function ch,(ch>='a')&&(ch<='z')

;----------------------------------------------------------------------------
; liefert TRUE, falls das Argument ein Buchstabe ist:

isalpha         function ch,(toupper(ch)>='A')&&(toupper(ch)<='Z')

;----------------------------------------------------------------------------
; liefert TRUE, falls das Argument Ziffer oder Buchstabe ist:

isalnum         function ch,isdigit(ch)||isalpha(ch)

;----------------------------------------------------------------------------
; liefert TRUE, falls das Argument ein Leerzeichen ist:
; Hinweis: 11=vertikaler Tabulator

isspace		function ch,(ch=' ')||(ch=12)||(ch='\n')||(ch='\r')||(ch='\t')||(ch=11)

;----------------------------------------------------------------------------
; liefert TRUE, falls das Argument ein druckbares Zeichen ist:
; strenggenommen müßte man DEL (127) ausnehmen, aber auf dem PC ist das ein
; druckbares Zeichen

isprint		function ch,(ch>31)&&(ch<255)

;----------------------------------------------------------------------------
; liefert TRUE, falls das Argument ein Steuerzeichen ist:

iscntrl		function ch,~~isprint(ch)

;----------------------------------------------------------------------------
; liefert TRUE, falls das Argument ein druckbares, sichtbares Zeichen ist:

isgraph		function ch,isprint(ch)&&(~~isspace(ch))

;----------------------------------------------------------------------------
; liefert TRUE, falls das Argument ein Sonderzeichen ist:

ispunct		function ch,isprint(ch)&&(~~isspace(ch))&&(~~isalnum(ch))

		endif

		restore                 ; wieder erlauben


